Compare commits
No commits in common. "master" and "v1.0.0-beta" have entirely different histories.
master
...
v1.0.0-bet
121 changed files with 10240 additions and 17710 deletions
24
.gitignore
vendored
24
.gitignore
vendored
|
@ -1,11 +1,13 @@
|
|||
/objs/
|
||||
/autom4te.cache/
|
||||
/config.h
|
||||
*~
|
||||
/dep/
|
||||
/libs/
|
||||
/bin/
|
||||
/config.log
|
||||
/config.status
|
||||
/Makefile
|
||||
/commit.h
|
||||
*.o
|
||||
*.so
|
||||
tg/
|
||||
auto/
|
||||
autom4te.cache/
|
||||
config.h
|
||||
config.h.in~
|
||||
dep/
|
||||
libs/
|
||||
bin/
|
||||
config.log
|
||||
config.status
|
||||
Makefile
|
||||
|
|
1
.gitmodules
vendored
1
.gitmodules
vendored
|
@ -1,4 +1,3 @@
|
|||
[submodule "tgl"]
|
||||
path = tgl
|
||||
branch = test
|
||||
url = https://github.com/majn/tgl
|
||||
|
|
48
.travis.yml
48
.travis.yml
|
@ -1,48 +0,0 @@
|
|||
language: c
|
||||
# Select Trusty Tahr.
|
||||
sudo: required
|
||||
dist: trusty
|
||||
# Travis' git submodule support is ... broken? half-broken? Maybe intentional?
|
||||
git:
|
||||
submodules: false
|
||||
depth: 3
|
||||
before_install:
|
||||
- git submodule update --init --recursive
|
||||
- sudo apt-get update -qq
|
||||
- sudo apt-get install -qq libssl-dev libgcrypt20-dev libpurple-dev libwebp-dev
|
||||
script:
|
||||
- ./configure $CONFIGURE_FLAGS
|
||||
- make -j2
|
||||
- make check
|
||||
compiler:
|
||||
- clang
|
||||
- gcc
|
||||
env:
|
||||
# Try to be nice to the builder
|
||||
- CONFIGURE_FLAGS=""
|
||||
- CONFIGURE_FLAGS="--disable-gcrypt"
|
||||
- CONFIGURE_FLAGS=" --disable-libwebp"
|
||||
# - CONFIGURE_FLAGS="--disable-gcrypt --disable-libwebp"
|
||||
- CONFIGURE_FLAGS=" --disable-translation"
|
||||
# - CONFIGURE_FLAGS="--disable-gcrypt --disable-translation"
|
||||
# - CONFIGURE_FLAGS=" --disable-libwebp --disable-translation"
|
||||
- CONFIGURE_FLAGS="--disable-gcrypt --disable-libwebp --disable-translation"
|
||||
matrix:
|
||||
# Be even nicer by excluding half of the combinations
|
||||
exclude:
|
||||
- compiler: clang
|
||||
env: CONFIGURE_FLAGS=""
|
||||
- compiler: gcc
|
||||
env: CONFIGURE_FLAGS="--disable-gcrypt"
|
||||
- compiler: clang
|
||||
env: CONFIGURE_FLAGS=" --disable-libwebp"
|
||||
# - compiler: XXX
|
||||
# env: CONFIGURE_FLAGS="--disable-gcrypt --disable-libwebp"
|
||||
- compiler: gcc
|
||||
env: CONFIGURE_FLAGS=" --disable-translation"
|
||||
# - compiler: clang
|
||||
# env: CONFIGURE_FLAGS="--disable-gcrypt --disable-translation"
|
||||
# - compiler: gcc
|
||||
# env: CONFIGURE_FLAGS=" --disable-libwebp --disable-translation"
|
||||
- compiler: clang
|
||||
env: CONFIGURE_FLAGS="--disable-gcrypt --disable-libwebp --disable-translation"
|
4
AUTHORS
4
AUTHORS
|
@ -1,4 +0,0 @@
|
|||
Matthias Jentsch <mtthsjntsch@gmail.com>
|
||||
Ben Wiederhake <Ben.Wiederhake@gmail.com>
|
||||
Vitaly Valtman <vvaltman@aurum>
|
||||
Christopher Althaus <althaus.christopher@gmail.com>
|
|
@ -1,45 +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 Ben Wiederhake 2016
|
||||
|
||||
# This file is NOT meant for inclusion into the main Makefile.
|
||||
|
||||
LOCALES=$(shell cat po/LINGUAS)
|
||||
LOCALE_MOS=$(addprefix po/,$(addsuffix .mo,$(LOCALES)))
|
||||
# Hardcoded, since this should only be run on very few machines anyway,
|
||||
# which are expected to have msgfmt on their $PATH
|
||||
MSGFMT_PATH=msgfmt
|
||||
|
||||
all: translate
|
||||
|
||||
po/%.mo: po/%.po
|
||||
${MSGFMT_PATH} -cf -o $@ $<
|
||||
|
||||
po/telegram-purple.metainfo.xml.pot: telegram-purple.metainfo.untranslated.xml as-metainfo.its
|
||||
itstool -i as-metainfo.its -o $@ $<
|
||||
|
||||
# CAREFUL WHEN EDITING!
|
||||
# "-j raw.xml *.mo" must be the last options!
|
||||
telegram-purple.metainfo.xml: as-metainfo.its telegram-purple.metainfo.untranslated.xml $(LOCALE_MOS) po/LINGUAS
|
||||
itstool -i as-metainfo.its -o $@ \
|
||||
-j telegram-purple.metainfo.untranslated.xml $(LOCALE_MOS)
|
||||
|
||||
.PHONY: potfile
|
||||
potfile: po/telegram-purple.metainfo.xml.pot
|
||||
|
||||
.PHONY: translate
|
||||
translate: telegram-purple.metainfo.xml
|
|
@ -1,23 +0,0 @@
|
|||
<!-- Copyright © 2012-2015 Matthias Klumpp.
|
||||
This material may only be distributed subject to the terms and
|
||||
conditions set forth in the GNU Free Documentation License (GFDL),
|
||||
V1.2 with no invariant sections or later (the latest version is
|
||||
presently available at http://www.gnu.org/licenses/fdl.txt).
|
||||
|
||||
This file bases on the "Quickstart Translation using itstool":
|
||||
http://www.freedesktop.org/software/appstream/docs/sect-Quickstart-Translation.html
|
||||
|
||||
The copyright for the base transformer was found at:
|
||||
http://www.freedesktop.org/software/appstream/docs/index.html
|
||||
-->
|
||||
<its:rules
|
||||
xmlns:its="http://www.w3.org/2005/11/its"
|
||||
version="1.0">
|
||||
<its:translateRule translate="no" selector="/component"/>
|
||||
<its:translateRule translate="yes"
|
||||
selector="/component/name |
|
||||
/component/summary |
|
||||
/component/description |
|
||||
/component/screenshots/screenshot/caption |
|
||||
/component/developer_name"/>
|
||||
</its:rules>
|
1
AppStream/po/.gitignore
vendored
1
AppStream/po/.gitignore
vendored
|
@ -1 +0,0 @@
|
|||
/*.mo
|
|
@ -1,12 +0,0 @@
|
|||
bg
|
||||
cs_CZ
|
||||
de_DE
|
||||
es
|
||||
es_AR
|
||||
fr
|
||||
it_IT
|
||||
nl
|
||||
pl_PL
|
||||
ru_RU
|
||||
sq
|
||||
uk
|
|
@ -1,25 +0,0 @@
|
|||
#
|
||||
# Translators:
|
||||
# Любомир Василев, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: telegram-purple\n"
|
||||
"POT-Creation-Date: 2016-01-07 23:23+0100\n"
|
||||
"PO-Revision-Date: 2016-10-19 14:07+0000\n"
|
||||
"Last-Translator: Любомир Василев\n"
|
||||
"Language-Team: Bulgarian (http://www.transifex.com/telegram-purple-developers/telegram-purple/language/bg/)\n"
|
||||
"MIME-Version: 1.0\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"
|
||||
|
||||
#. (itstool) path: component/name
|
||||
#: telegram-purple.metainfo.untranslated.xml:9
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#. (itstool) path: component/summary
|
||||
#: telegram-purple.metainfo.untranslated.xml:10
|
||||
msgid "A plugin that adds support for Telegram"
|
||||
msgstr "Добавка, която добавя поддръжка на Telegram"
|
|
@ -1,25 +0,0 @@
|
|||
#
|
||||
# Translators:
|
||||
# Jan Breuer <j123b567@jaybee.cz>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: telegram-purple\n"
|
||||
"POT-Creation-Date: 2016-01-07 23:23+0100\n"
|
||||
"PO-Revision-Date: 2016-02-18 14:45+0000\n"
|
||||
"Last-Translator: Jan Breuer <j123b567@jaybee.cz>\n"
|
||||
"Language-Team: Czech (Czech Republic) (http://www.transifex.com/telegram-purple-developers/telegram-purple/language/cs_CZ/)\n"
|
||||
"MIME-Version: 1.0\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"
|
||||
|
||||
#. (itstool) path: component/name
|
||||
#: telegram-purple.metainfo.untranslated.xml:9
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#. (itstool) path: component/summary
|
||||
#: telegram-purple.metainfo.untranslated.xml:10
|
||||
msgid "A plugin that adds support for Telegram"
|
||||
msgstr "Zásuvný modul, který přidá podporu pro Telegram"
|
|
@ -1,25 +0,0 @@
|
|||
#
|
||||
# Translators:
|
||||
# Ben Wiederhake <BenWiederhake.GitHub@gmx.de>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: telegram-purple\n"
|
||||
"POT-Creation-Date: 2016-01-07 23:23+0100\n"
|
||||
"PO-Revision-Date: 2016-01-09 13:14+0000\n"
|
||||
"Last-Translator: Ben Wiederhake <BenWiederhake.GitHub@gmx.de>\n"
|
||||
"Language-Team: German (Germany) (http://www.transifex.com/telegram-purple-developers/telegram-purple/language/de_DE/)\n"
|
||||
"MIME-Version: 1.0\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"
|
||||
|
||||
#. (itstool) path: component/name
|
||||
#: telegram-purple.metainfo.untranslated.xml:9
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#. (itstool) path: component/summary
|
||||
#: telegram-purple.metainfo.untranslated.xml:10
|
||||
msgid "A plugin that adds support for Telegram"
|
||||
msgstr "Plugin zur Unterstützung von Telegram"
|
|
@ -1,25 +0,0 @@
|
|||
#
|
||||
# Translators:
|
||||
# aguador <aguador@openmailbox.org>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: telegram-purple\n"
|
||||
"POT-Creation-Date: 2016-01-07 23:23+0100\n"
|
||||
"PO-Revision-Date: 2017-02-27 09:08+0000\n"
|
||||
"Last-Translator: aguador <aguador@openmailbox.org>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/telegram-purple-developers/telegram-purple/language/es/)\n"
|
||||
"MIME-Version: 1.0\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"
|
||||
|
||||
#. (itstool) path: component/name
|
||||
#: telegram-purple.metainfo.untranslated.xml:9
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#. (itstool) path: component/summary
|
||||
#: telegram-purple.metainfo.untranslated.xml:10
|
||||
msgid "A plugin that adds support for Telegram"
|
||||
msgstr "Un plugin que añade soporte para Telegram"
|
|
@ -1,25 +0,0 @@
|
|||
#
|
||||
# Translators:
|
||||
# KNTRO <kntro@msn.com>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: telegram-purple\n"
|
||||
"POT-Creation-Date: 2016-01-07 23:23+0100\n"
|
||||
"PO-Revision-Date: 2016-10-08 19:37+0000\n"
|
||||
"Last-Translator: KNTRO <kntro@msn.com>\n"
|
||||
"Language-Team: Spanish (Argentina) (http://www.transifex.com/telegram-purple-developers/telegram-purple/language/es_AR/)\n"
|
||||
"MIME-Version: 1.0\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"
|
||||
|
||||
#. (itstool) path: component/name
|
||||
#: telegram-purple.metainfo.untranslated.xml:9
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#. (itstool) path: component/summary
|
||||
#: telegram-purple.metainfo.untranslated.xml:10
|
||||
msgid "A plugin that adds support for Telegram"
|
||||
msgstr "Un plugin que agrega soporte para Telegram"
|
|
@ -1,25 +0,0 @@
|
|||
#
|
||||
# Translators:
|
||||
# Javier Sixto, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: telegram-purple\n"
|
||||
"POT-Creation-Date: 2016-01-07 23:23+0100\n"
|
||||
"PO-Revision-Date: 2016-04-14 19:51+0000\n"
|
||||
"Last-Translator: Javier Sixto\n"
|
||||
"Language-Team: French (http://www.transifex.com/telegram-purple-developers/telegram-purple/language/fr/)\n"
|
||||
"MIME-Version: 1.0\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"
|
||||
|
||||
#. (itstool) path: component/name
|
||||
#: telegram-purple.metainfo.untranslated.xml:9
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#. (itstool) path: component/summary
|
||||
#: telegram-purple.metainfo.untranslated.xml:10
|
||||
msgid "A plugin that adds support for Telegram"
|
||||
msgstr "Une extension qui ajoute le support pour Telegram"
|
|
@ -1,25 +0,0 @@
|
|||
#
|
||||
# Translators:
|
||||
# Giuseppe Pignataro (Fasbyte01) <rogepix@gmail.com>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: telegram-purple\n"
|
||||
"POT-Creation-Date: 2016-01-07 23:23+0100\n"
|
||||
"PO-Revision-Date: 2017-02-27 09:08+0000\n"
|
||||
"Last-Translator: Giuseppe Pignataro (Fasbyte01) <rogepix@gmail.com>\n"
|
||||
"Language-Team: Italian (Italy) (http://www.transifex.com/telegram-purple-developers/telegram-purple/language/it_IT/)\n"
|
||||
"MIME-Version: 1.0\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"
|
||||
|
||||
#. (itstool) path: component/name
|
||||
#: telegram-purple.metainfo.untranslated.xml:9
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#. (itstool) path: component/summary
|
||||
#: telegram-purple.metainfo.untranslated.xml:10
|
||||
msgid "A plugin that adds support for Telegram"
|
||||
msgstr "Un plugin che aggiunge il supporto per Telegram"
|
|
@ -1,25 +0,0 @@
|
|||
#
|
||||
# Translators:
|
||||
# justin [notsupplied] <inactive+justin50@transifex.com>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: telegram-purple\n"
|
||||
"POT-Creation-Date: 2016-01-07 23:23+0100\n"
|
||||
"PO-Revision-Date: 2016-10-19 17:56+0000\n"
|
||||
"Last-Translator: justin [notsupplied] <inactive+justin50@transifex.com>\n"
|
||||
"Language-Team: Dutch (http://www.transifex.com/telegram-purple-developers/telegram-purple/language/nl/)\n"
|
||||
"MIME-Version: 1.0\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"
|
||||
|
||||
#. (itstool) path: component/name
|
||||
#: telegram-purple.metainfo.untranslated.xml:9
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#. (itstool) path: component/summary
|
||||
#: telegram-purple.metainfo.untranslated.xml:10
|
||||
msgid "A plugin that adds support for Telegram"
|
||||
msgstr "Een plug-in die ondersteuning voor Telegram toevoegt"
|
|
@ -1,25 +0,0 @@
|
|||
#
|
||||
# Translators:
|
||||
# Piotr Drąg <piotrdrag@gmail.com>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: telegram-purple\n"
|
||||
"POT-Creation-Date: 2016-01-07 23:23+0100\n"
|
||||
"PO-Revision-Date: 2017-02-27 09:08+0000\n"
|
||||
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
|
||||
"Language-Team: Polish (Poland) (http://www.transifex.com/telegram-purple-developers/telegram-purple/language/pl_PL/)\n"
|
||||
"MIME-Version: 1.0\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"
|
||||
|
||||
#. (itstool) path: component/name
|
||||
#: telegram-purple.metainfo.untranslated.xml:9
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#. (itstool) path: component/summary
|
||||
#: telegram-purple.metainfo.untranslated.xml:10
|
||||
msgid "A plugin that adds support for Telegram"
|
||||
msgstr "Wtyczka dodająca obsługę protokołu Telegram"
|
|
@ -1,25 +0,0 @@
|
|||
#
|
||||
# Translators:
|
||||
# Vladimir <TurbaVladimir@yandex.ru>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: telegram-purple\n"
|
||||
"POT-Creation-Date: 2016-01-07 23:23+0100\n"
|
||||
"PO-Revision-Date: 2016-02-18 14:45+0000\n"
|
||||
"Last-Translator: Vladimir <TurbaVladimir@yandex.ru>\n"
|
||||
"Language-Team: Russian (Russia) (http://www.transifex.com/telegram-purple-developers/telegram-purple/language/ru_RU/)\n"
|
||||
"MIME-Version: 1.0\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"
|
||||
|
||||
#. (itstool) path: component/name
|
||||
#: telegram-purple.metainfo.untranslated.xml:9
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#. (itstool) path: component/summary
|
||||
#: telegram-purple.metainfo.untranslated.xml:10
|
||||
msgid "A plugin that adds support for Telegram"
|
||||
msgstr "Плагин, добавляющий поддержку Telegram"
|
|
@ -1,25 +0,0 @@
|
|||
#
|
||||
# Translators:
|
||||
# Besnik <besnik@programeshqip.org>, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: telegram-purple\n"
|
||||
"POT-Creation-Date: 2016-01-07 23:23+0100\n"
|
||||
"PO-Revision-Date: 2016-02-18 14:45+0000\n"
|
||||
"Last-Translator: Besnik <besnik@programeshqip.org>\n"
|
||||
"Language-Team: Albanian (http://www.transifex.com/telegram-purple-developers/telegram-purple/language/sq/)\n"
|
||||
"MIME-Version: 1.0\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"
|
||||
|
||||
#. (itstool) path: component/name
|
||||
#: telegram-purple.metainfo.untranslated.xml:9
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#. (itstool) path: component/summary
|
||||
#: telegram-purple.metainfo.untranslated.xml:10
|
||||
msgid "A plugin that adds support for Telegram"
|
||||
msgstr "Një shtojcë që shton mbulim për Telegram-in"
|
|
@ -1,21 +0,0 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2016-01-07 23:23+0100\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"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. (itstool) path: component/name
|
||||
#: telegram-purple.metainfo.untranslated.xml:9
|
||||
msgid "Telegram"
|
||||
msgstr ""
|
||||
|
||||
#. (itstool) path: component/summary
|
||||
#: telegram-purple.metainfo.untranslated.xml:10
|
||||
msgid "A plugin that adds support for Telegram"
|
||||
msgstr ""
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
#
|
||||
# Translators:
|
||||
# Самохвалов Антон <samant.ua@mail.ru>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: telegram-purple\n"
|
||||
"POT-Creation-Date: 2016-01-07 23:23+0100\n"
|
||||
"PO-Revision-Date: 2017-03-04 06:36+0000\n"
|
||||
"Last-Translator: Самохвалов Антон <samant.ua@mail.ru>\n"
|
||||
"Language-Team: Ukrainian (http://www.transifex.com/telegram-purple-developers/telegram-purple/language/uk/)\n"
|
||||
"MIME-Version: 1.0\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"
|
||||
|
||||
#. (itstool) path: component/name
|
||||
#: telegram-purple.metainfo.untranslated.xml:9
|
||||
msgid "Telegram"
|
||||
msgstr "Телеграм"
|
||||
|
||||
#. (itstool) path: component/summary
|
||||
#: telegram-purple.metainfo.untranslated.xml:10
|
||||
msgid "A plugin that adds support for Telegram"
|
||||
msgstr "Плагін, що додає підтримку у Телеграм"
|
|
@ -1,16 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2015 Jiri Eischmann <eischmann@redhat.com>
|
||||
It is very important that this file does *not* receive any
|
||||
Invariant Sections as per GFDL.
|
||||
-->
|
||||
<component type="addon">
|
||||
<id>telegram-purple</id>
|
||||
<extends>pidgin.desktop</extends>
|
||||
<name>Telegram</name>
|
||||
<summary>A plugin that adds support for Telegram</summary>
|
||||
<url type="homepage">https://github.com/majn/telegram-purple</url>
|
||||
<url type="bugtracker">https://github.com/majn/telegram-purple/issues/</url>
|
||||
<metadata_license>GFDL-1.3</metadata_license>
|
||||
<project_license>GPL-2.0+</project_license>
|
||||
<update_contact>eischmann_at_redhat.com</update_contact>
|
||||
</component>
|
|
@ -1,40 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2015 Jiri Eischmann <eischmann@redhat.com>
|
||||
It is very important that this file does *not* receive any
|
||||
Invariant Sections as per GFDL.
|
||||
-->
|
||||
<component type="addon">
|
||||
<id>telegram-purple</id>
|
||||
<extends>pidgin.desktop</extends>
|
||||
<name>Telegram</name>
|
||||
<name xml:lang="bg">Telegram</name>
|
||||
<name xml:lang="cs-CZ">Telegram</name>
|
||||
<name xml:lang="de-DE">Telegram</name>
|
||||
<name xml:lang="es">Telegram</name>
|
||||
<name xml:lang="es-AR">Telegram</name>
|
||||
<name xml:lang="fr">Telegram</name>
|
||||
<name xml:lang="it-IT">Telegram</name>
|
||||
<name xml:lang="nl">Telegram</name>
|
||||
<name xml:lang="pl-PL">Telegram</name>
|
||||
<name xml:lang="ru-RU">Telegram</name>
|
||||
<name xml:lang="sq">Telegram</name>
|
||||
<name xml:lang="uk">Телеграм</name>
|
||||
<summary>A plugin that adds support for Telegram</summary>
|
||||
<summary xml:lang="bg">Добавка, която добавя поддръжка на Telegram</summary>
|
||||
<summary xml:lang="cs-CZ">Zásuvný modul, který přidá podporu pro Telegram</summary>
|
||||
<summary xml:lang="de-DE">Plugin zur Unterstützung von Telegram</summary>
|
||||
<summary xml:lang="es">Un plugin que añade soporte para Telegram</summary>
|
||||
<summary xml:lang="es-AR">Un plugin que agrega soporte para Telegram</summary>
|
||||
<summary xml:lang="fr">Une extension qui ajoute le support pour Telegram</summary>
|
||||
<summary xml:lang="it-IT">Un plugin che aggiunge il supporto per Telegram</summary>
|
||||
<summary xml:lang="nl">Een plug-in die ondersteuning voor Telegram toevoegt</summary>
|
||||
<summary xml:lang="pl-PL">Wtyczka dodająca obsługę protokołu Telegram</summary>
|
||||
<summary xml:lang="ru-RU">Плагин, добавляющий поддержку Telegram</summary>
|
||||
<summary xml:lang="sq">Një shtojcë që shton mbulim për Telegram-in</summary>
|
||||
<summary xml:lang="uk">Плагін, що додає підтримку у Телеграм</summary>
|
||||
<url type="homepage">https://github.com/majn/telegram-purple</url>
|
||||
<url type="bugtracker">https://github.com/majn/telegram-purple/issues/</url>
|
||||
<metadata_license>GFDL-1.3</metadata_license>
|
||||
<project_license>GPL-2.0+</project_license>
|
||||
<update_contact>eischmann_at_redhat.com</update_contact>
|
||||
</component>
|
109
CHANGELOG.md
109
CHANGELOG.md
|
@ -1,115 +1,6 @@
|
|||
Changelog
|
||||
---------
|
||||
|
||||
##### 1.3.1
|
||||
|
||||
- Stability improvements
|
||||
- Support auto-loading for documents
|
||||
- Add support for "typing" in group chats (using group-typing-notifications plugin)
|
||||
- Add support for /kick command in group chats
|
||||
|
||||
##### 1.3.0
|
||||
|
||||
- channel/supergroup support
|
||||
- support sending code tags in markdown "backtick" format (see README for example)
|
||||
- reduce amount of file-transfer popups in Pidgin, auto-load media in the background
|
||||
- fix stability issues for the win32 build
|
||||
- fix multiple crashes in libtgl
|
||||
|
||||
##### 1.2.6
|
||||
|
||||
- Include libtgl bugfix "use-after-not-created for photos"
|
||||
- Fix Adium bundle version incompatibillity for newest version
|
||||
|
||||
##### 1.2.5
|
||||
|
||||
- Include libtgl fix to prevent crashes on certain channel messages
|
||||
- Improve error handling to be more graceful
|
||||
|
||||
##### 1.2.4
|
||||
|
||||
- Fix crash on unknown media type
|
||||
- Fix crash on logout after cancelling a file transfer
|
||||
|
||||
##### 1.2.3
|
||||
|
||||
- Build: Allow compilation on Windows #52 Thanks Eion!
|
||||
- Build: Drop dependency on LodePNG, Thanks Ben!
|
||||
- Build: Gettext is now optional
|
||||
|
||||
- Fix issue that prevented to send messages to deleted users in certain cases (#174)
|
||||
- Fix own user being added to the buddy list in certain cases
|
||||
- Fix that read recipes of own messages are being displayed (#139)
|
||||
- Fix encoding inconsistencies with Unicode characters (#177)
|
||||
- Fix auto-joining for chats (#179)
|
||||
- Fix client not reconnecting anymore under certain circumstances (#173)
|
||||
- Fix crash on compat-verification (PullRequest #183)
|
||||
|
||||
- Remove pointless "create chat" confirmation dialogue
|
||||
- Improve logging messages
|
||||
- Always send read recipes when the user is typing or sending a message
|
||||
- Improve translation and user messages (#139)
|
||||
- Use native password prompts (Adium)
|
||||
|
||||
|
||||
##### 1.2.2
|
||||
|
||||
- fix some licensing issues by not depending on OpenSSL any longer (thanks Ben!)
|
||||
- add tons of translations (thanks to anyone helping!)
|
||||
- fix issue that caused empty files
|
||||
- fix pidgin not reconnecting after hibernation
|
||||
- fix adium not reconnecting after hibernation
|
||||
- fix secret chat fingerprint not being displayed after restart
|
||||
- fix secret chat name not being displayed after restart
|
||||
|
||||
##### 1.2.1
|
||||
|
||||
##### Bugfixes
|
||||
|
||||
- Fix buggy group chat handling
|
||||
* Assure that foreign users are always listed by their full name instead of the user ID
|
||||
* Don't automatically add group chats to buddy list to prevent incompatibillities with some libpurple clients
|
||||
* Fix issue that caused the buddy list to not be correctly updated on joining / leaving participants
|
||||
* Fix an issue that caused the user list to be printed on every group chat message in Finch
|
||||
|
||||
- Fetch chat information lazily to reduce traffic and prevent flood errors
|
||||
- Improve input validation for phone numbers
|
||||
|
||||
###### Features
|
||||
|
||||
- Support leaving chats
|
||||
- Implement the roomlist-API to allow listing of all active chats
|
||||
|
||||
|
||||
##### Version 1.2.0 (Beta 3)
|
||||
|
||||
##### Bugfixes
|
||||
|
||||
- Fix error in incoming message handling that caused segmentation faults
|
||||
- Fix failing audio and video transfers
|
||||
- Mark messages read on other devices as 'deferred' to avoid needless notifications
|
||||
- Improved buddy list handling (should avoid "unknown" contacts popping up)
|
||||
- Many small issues (see commit history)
|
||||
- Fix issues that caused audio and video downloads to not have a proper file ending
|
||||
- Fix issue that caused very old unused chats to not be available
|
||||
|
||||
###### Features
|
||||
|
||||
- Allow creation of new group chats
|
||||
- Allow joining chats by invite link
|
||||
- Allow exporting chats by invite link
|
||||
- Support displaying and sending GIFs
|
||||
- Support joining chats by invite link
|
||||
|
||||
##### Version 1.1.0 (Beta 2)
|
||||
|
||||
- update to libtgl 2
|
||||
- support two-factor authentication
|
||||
- improve sticker support
|
||||
- add option to control message read recipes
|
||||
- many bugfixes
|
||||
|
||||
|
||||
##### Version 1.0.0 (Beta 1)
|
||||
|
||||
- Move state files into .purple/telegram-purple directory
|
||||
|
|
339
COPYING
339
COPYING
|
@ -1,339 +0,0 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
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 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
|
@ -1,38 +0,0 @@
|
|||
# Hacking on the build system
|
||||
|
||||
This list was previously maintained as [issue #242](https://github.com/majn/telegram-purple/issues/242), until we realized that this needs proper version-control. (Duh!)
|
||||
|
||||
## Exhaustive list of requirements on the build system:
|
||||
|
||||
1. `commit.h` must change whenever it disagrees with the current git commit
|
||||
1. `commit.h` must not change whenever it agrees with the current git commit
|
||||
1. Must call `cd tgl && ./configure` with appropriate options whenever `tgl/Makefile` is missing, or notices that `./configure` was run. ("Too often" is acceptable as long as `make && make` isn't violated.)
|
||||
1. Must call `make -C tgl` whenever this might have any effect. ("Too often" is acceptable as long as `make && make` isn't violated.)
|
||||
1. Any changes due to `make -C tgl` must cause all necessary rebuilds in telegram-purple during the same invocation of make. ("Too often" is acceptable as long as `make && make` isn't violated.)
|
||||
1. If `tgl/Makefile.in` is missing, explain that we need submodules, and stop.
|
||||
1. `make -j12` must work fine
|
||||
1. Must support out-of-CVS builds.
|
||||
|
||||
## While ensuring that:
|
||||
|
||||
- Must not `-include tgl/Makefile` as it doesn't really support that, and I'm not going to try and convince @vysheng to do that. Also, it's too fragile. You know how he ticks.
|
||||
- `make && make` must not create any files in the second run (otherwise, `sudo make install` would become hairy)
|
||||
- Compatibility with other makes
|
||||
|
||||
## Approach:
|
||||
|
||||
- `commit.h` is a regular file which depends on a .PHONY target `commit`. Building `commit.h` *only* touches `commit.h` if necessary and possible. (=> 1, 2, half of 8)
|
||||
- Have a target `tgl/Makefile` which depends on `Makefile`. (=> 3)
|
||||
- The central target `${PRPL_LIBNAME}` shall depend on the .PHONY `submade`, which depends on `tgl/Makefile`, and essentially executes `make -C tgl`. (=> 4, time constraint of 5)
|
||||
- All objects of telegram-purple depend on `tgl/libs/libtgl.a`. Rationale: if `tgl/libs/libtgl.a` stays the same, then nothing in tgl changed. If `tgl/libs/libtgl.a` changes, then due to lots of black preprocessor magic within tgl, it can't be safely determined which, if any, objects of telegram-purple can be re-used. Also, if tgl got recompiled (~ 1 minute), then tgp can be recompiled, too (~ 5 seconds). (=> dependency constraint of 5)
|
||||
- Let `tgl/Makefile` depend on `tgl/Makefile.in`, and put the warning into the rule for the latter. (=> 6)
|
||||
- The above already implies a dependency DAG that is completely known to make; except at one point: let `tgl/libs/libtgl.a` depend on `submade`, without any own code. Now make ensure thread-safety on it's own. (=> 7)
|
||||
- Bundle commit.h into the origtar (=> other half of 8)
|
||||
|
||||
## Side effects:
|
||||
|
||||
- Should be ultimately robust. Then again, that's what I thought about the last few attempts, and they didn't last long.
|
||||
- This reduces the number of .PHONYs drastically, making it easier to read, and making it easier to prove that `make && make` doesn't change anything.
|
||||
- Even though `submade` should trigger once and only once, this can handle multiple invocations just fine, too.
|
||||
- All files dependent on `commit.h` need to be mentioned explicitly as dependents in the Makefile. This is ugly, but (as far as I can see) unavoidable. Thankfully, any errors here will get detected by automated testing.
|
||||
- We currently use only one GNU make specific extension. See https://github.com/majn/telegram-purple/issues/137#issuecomment-167970054
|
20
HACKING.md
20
HACKING.md
|
@ -1,20 +0,0 @@
|
|||
# Contributing
|
||||
|
||||
This is Open Source Software. We realized that we didn't pass the Patch Test
|
||||
|
||||
## What to contribute
|
||||
|
||||
Here's a few places to start:
|
||||
|
||||
- Report any bugs you find.
|
||||
- No, seriously! Most of the bugs don't even get reported, or the reporter only writes "Doesn't work for me" and then vanishes.
|
||||
- ["help wanted" issues](https://github.com/majn/telegram-purple/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+-label%3A%22in-pipeline%22), especially automated testing
|
||||
- ["secret chat" issues](https://github.com/majn/telegram-purple/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3A%22secret+chats%22+-label%3A%22in-pipeline%22+)
|
||||
- Portability (especially endianness) of tgl (external project)
|
||||
- [Issues of tgl](https://github.com/vysheng/tgl/issues) -- lots and lots of false or obsolete reports
|
||||
- Slim down the size of the generated files in `tgl/auto`, as this currently dominates the build time. Yuk!
|
||||
- Make sure that the libpurple-devs don't break libpurple any further.
|
||||
|
||||
## 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).
|
214
Makefile.in
214
Makefile.in
|
@ -1,74 +1,41 @@
|
|||
# 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 2014-2015
|
||||
|
||||
srcdir=@srcdir@
|
||||
prefix=@prefix@
|
||||
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
|
||||
CFLAGS=@CFLAGS@ @PURPLE_CFLAGS@ @DEFS@ -Wall -Wextra -Wno-deprecated-declarations -Wno-unused-parameter -I${srcdir} -I. -fno-strict-aliasing -fPIC
|
||||
LDFLAGS=@LDFLAGS@ @OPENSSL_LDFLAGS@ @PURPLE_LIBS@ @LIBS@ -lcrypto -rdynamic -ggdb
|
||||
CPPFLAGS=@CPPFLAGS@ -DFLAGS
|
||||
COMPILE_FLAGS=${CFLAGS} ${CPPFLAGS}
|
||||
LINK_FLAGS=${LDFLAGS}
|
||||
DIR_PERM=0755
|
||||
FILE_PERM=0644
|
||||
|
||||
CC=@CC@
|
||||
PKG_CONFIG=@PKG_CONFIG@
|
||||
MSGFMT_PATH=@MSGFMT_PATH@
|
||||
|
||||
# Check if -fstack-protector-strong is supported before enabling it
|
||||
SPUNSUPPORTED = $(shell $(CC) -fstack-protector-strong 2>&1 | grep -c 'stack-protector-strong')
|
||||
ifeq "$(SPUNSUPPORTED)" "0"
|
||||
CFLAGS += -fstack-protector-strong
|
||||
endif
|
||||
|
||||
DEP=dep
|
||||
AUTO=auto
|
||||
EXE=bin
|
||||
OBJ=objs
|
||||
DIR_LIST=${DEP} ${EXE} ${OBJ}
|
||||
LIB=libs
|
||||
DIR_LIST=${DEP} ${AUTO} ${EXE} ${OBJ} ${LIB} ${DEP}/auto ${OBJ}/auto ${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}/tgp-info.o
|
||||
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}/lodepng/lodepng.o
|
||||
ALL_OBJS=${PLUGIN_OBJECTS}
|
||||
|
||||
ifdef MSGFMT_PATH
|
||||
LOCALES=$(shell cat po/LINGUAS)
|
||||
LOCALE_MOS=$(addprefix po/,$(addsuffix .mo,$(LOCALES)))
|
||||
endif
|
||||
|
||||
.SUFFIXES:
|
||||
|
||||
.SUFFIXES: .c .h .o
|
||||
|
||||
PRPL_NAME=telegram-purple.so
|
||||
PRPL_LIBNAME=${EXE}/${PRPL_NAME}
|
||||
all: ${PRPL_LIBNAME} $(LOCALE_MOS)
|
||||
all: ${PRPL_LIBNAME}
|
||||
|
||||
PLUGIN_DIR_PURPLE=$(shell ${PKG_CONFIG} --variable=plugindir purple)
|
||||
DATA_ROOT_DIR_PURPLE=$(shell ${PKG_CONFIG} --variable=datarootdir purple)
|
||||
CRYPTO_FLAG=@CRYPTO_FLAG@
|
||||
PLUGIN_DIR_PURPLE=$(shell pkg-config --variable=plugindir purple)
|
||||
DATA_ROOT_DIR_PURPLE=$(shell pkg-config --variable=datarootdir purple)
|
||||
|
||||
include ${srcdir}/Makefile.tl-parser
|
||||
include ${srcdir}/Makefile.tgl
|
||||
|
||||
### == '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.
|
||||
|
||||
.PHONY: create_dirs
|
||||
create_dirs: ${DIR_LIST}
|
||||
create_dirs_and_headers: ${DIR_LIST} ${AUTO}/auto.c ${AUTO}/auto-header.h ${AUTO}/constants.h
|
||||
|
||||
${DIR_LIST}:
|
||||
@test -d $@ || mkdir -p $@
|
||||
|
@ -77,119 +44,48 @@ DEPENDENCE=$(subst ${OBJ}/,${DEP}/,$(patsubst %.o,%.d,${ALL_OBJS}))
|
|||
DEPENDENCE_LIST=${DEPENDENCE}
|
||||
-include ${DEPENDENCE_LIST}
|
||||
|
||||
tgl/Makefile.in:
|
||||
@echo "tgl/Makefile.in not found. Maybe you need to 'git submodule update --init --recursive' ?" && exit 1
|
||||
|
||||
tgl/Makefile: tgl/Makefile.in Makefile
|
||||
cd tgl && ./configure -q ${CRYPTO_FLAG} --disable-extf CFLAGS="@CFLAGS@" LDFLAGS="@LDFLAGS@"
|
||||
${PLUGIN_OBJECTS}: ${OBJ}/%.o: ${srcdir}/%.c | create_dirs_and_headers
|
||||
echo $@ && ${CC} ${CFLAGS} ${CPPFLAGS} -I ${srcdir}/tgl -I ${srcdir}/lodepng -c -MP -MD -MF ${DEP}/$*.d -MQ ${OBJ}/$*.o -o $@ $<
|
||||
|
||||
tgl/libs/libtgl.a: tgl/Makefile
|
||||
+${MAKE} -C tgl libs/libtgl.a
|
||||
|
||||
.PHONY: commit
|
||||
commit:
|
||||
|
||||
# The *commands* for commit.h shall always be executed, but the
|
||||
# *file* commit.h should only be considered to have changed in rare cases.
|
||||
GIT_COMMIT=$(shell git rev-parse HEAD | cut -c1-10)
|
||||
commit.h: commit
|
||||
@./commit.h.gen
|
||||
|
||||
# Ugly, but necessary, because otherwise commit.h would not get generated:
|
||||
test/loadtest.c: commit.h
|
||||
|
||||
# Ugly, but necessary, because otherwise commit.h would not get generated:
|
||||
telegram-purple.c: commit.h
|
||||
|
||||
|
||||
### == 'Normal' build. == ###
|
||||
|
||||
${PLUGIN_OBJECTS}: ${OBJ}/%.o: ${srcdir}/%.c tgl/libs/libtgl.a | create_dirs
|
||||
echo $@ && ${CC} ${CFLAGS} ${CPPFLAGS} -I ${srcdir}/tgl -c -MP -MD -MF ${DEP}/$*.d -MQ ${OBJ}/$*.o -o $@ $<
|
||||
|
||||
po/%.mo: po/%.po
|
||||
${MSGFMT_PATH} -cf -o $@ $< >/dev/null 2>&1
|
||||
|
||||
${PRPL_LIBNAME}: ${PLUGIN_OBJECTS} tgl/libs/libtgl.a | create_dirs
|
||||
${PRPL_LIBNAME}: ${PLUGIN_OBJECTS} ${LIB}/libtgl.a | create_dirs
|
||||
${CC} -shared -o $@ $^ ${LDFLAGS}
|
||||
|
||||
|
||||
### == noicon_{,un}install targets. Use only if you know that you don't need icons. Note that pidgin uses those files. == ###
|
||||
|
||||
.PHONY: noicon_install
|
||||
noicon_install: $(PRPL_LIBNAME) $(LOCALE_MOS)
|
||||
.PHONY: plugin
|
||||
plugin: $(PRPL_LIBNAME)
|
||||
|
||||
|
||||
.PHONY: strip
|
||||
strip: $(PRPL_LIBNAME)
|
||||
$(STRIP) --strip-unneeded $(PRPL_LIBNAME)
|
||||
|
||||
.PHONY: install
|
||||
install: $(PRPL_LIBNAME)
|
||||
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; \
|
||||
echo "installing po/$$lang.mo to $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(gettext_package).mo"; \
|
||||
install -m $(FILE_PERM) po/$$lang.mo $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(gettext_package).mo; \
|
||||
done
|
||||
|
||||
.PHONY: noicon_uninstall
|
||||
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
|
||||
# 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"; \
|
||||
rm -f $(localedir)/$$lang/LC_MESSAGES/$(gettext_package).mo; \
|
||||
done
|
||||
|
||||
|
||||
### == Main {,un}install targets. This should satisfy most needs. == ###
|
||||
|
||||
.PHONY: install
|
||||
install: noicon_install
|
||||
install -m $(FILE_PERM) tg-server.pub $(DESTDIR)/etc/telegram-purple/server.pub
|
||||
mkdir -m $(DIR_PERM) -p $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/16
|
||||
install -m $(FILE_PERM) imgs/telegram16.png $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/16/telegram.png
|
||||
mkdir -m $(DIR_PERM) -p $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/22
|
||||
install -m $(FILE_PERM) imgs/telegram22.png $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/22/telegram.png
|
||||
mkdir -m $(DIR_PERM) -p $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/48
|
||||
install -m $(FILE_PERM) imgs/telegram48.png $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/48/telegram.png
|
||||
mkdir -m $(DIR_PERM) -p $(DESTDIR)$(datarootdir)/appdata
|
||||
install -m $(FILE_PERM) AppStream/telegram-purple.metainfo.xml $(DESTDIR)$(datarootdir)/appdata/telegram-purple.metainfo.xml
|
||||
|
||||
.PHONY: uninstall
|
||||
uninstall: noicon_uninstall
|
||||
rm -f $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/16/telegram.png
|
||||
rm -f $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/22/telegram.png
|
||||
rm -f $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/48/telegram.png
|
||||
rm -f $(DESTDIR)$(datarootdir)/appdata/telegram-purple.metainfo.xml
|
||||
|
||||
|
||||
### == The local_{,un}install targets, in case you're not root. == ###
|
||||
|
||||
.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
|
||||
install $(PRPL_LIBNAME) ${HOME}/.purple/plugins/$(PRPL_NAME)
|
||||
|
||||
.PHONY: local_uninstall
|
||||
local_uninstall:
|
||||
rm -f $(DESTDIR)$(HOME)/.purple/plugins/$(PRPL_NAME)
|
||||
rm -f $(DESTDIR)$(HOME)/.purple/telegram-purple/server.tglpub
|
||||
|
||||
|
||||
### == Handling and maintenance. Subject to rapid change, shouldn't be used in scripts. == ###
|
||||
|
||||
.PHONY: plugin
|
||||
plugin: $(PRPL_LIBNAME)
|
||||
|
||||
.PHONY: strip
|
||||
strip: $(PRPL_LIBNAME)
|
||||
$(STRIP) --strip-unneeded $(PRPL_LIBNAME)
|
||||
|
||||
.PHONY: build-nsi
|
||||
build-nsi: telegram-purple.nsi.awk telegram-purple.nsi.awk-in
|
||||
awk -f telegram-purple.nsi.awk telegram-purple.nsi.awk-in > telegram-purple.nsi
|
||||
.PHONY: uninstall
|
||||
uninstall:
|
||||
rm -f $(DESTDIR)$(PLUGIN_DIR_PURPLE)/$(PRPL_NAME)
|
||||
rm -f $(DESTDIR)/etc/telegram-purple/server.pub
|
||||
rm -f $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/16/telegram.png
|
||||
rm -f $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/22/telegram.png
|
||||
rm -f $(DESTDIR)$(DATA_ROOT_DIR_PURPLE)/pixmaps/pidgin/protocols/48/telegram.png
|
||||
rm -f ${HOME}/.purple/plugins/$(PRPL_NAME)
|
||||
|
||||
.PHONY: run
|
||||
run:
|
||||
|
@ -199,36 +95,6 @@ run:
|
|||
debug: install
|
||||
ddd pidgin
|
||||
|
||||
DIST_ERR_MSG="Working directory is not git clean.\
|
||||
Run 'git status' to show what files are causing this.\
|
||||
Please note that 'make dist' packages the state in git, not the one on your disk."
|
||||
clean:
|
||||
rm -rf ${DIR_LIST} *.so *.a *.o telegram config.log config.status $(PRPL_C_OBJS) $(PRPL_LIBNAME) > /dev/null || echo "all clean"
|
||||
|
||||
SUBMOD_ERR_MSG="Couldn't find tgl/tl-parser/tl-parser.c\
|
||||
Are all submodules properly initialized and updated?"
|
||||
|
||||
# Not PHONY
|
||||
.git:
|
||||
@echo "Not in a git folder. Features that require git are disabled."; exit 1
|
||||
|
||||
.PHONY: check-clean
|
||||
check-clean: .git
|
||||
@test "x" = x"`git status --porcelain`" || (echo ${DIST_ERR_MSG}; exit 1)
|
||||
@test -r tgl/tl-parser/.git || (echo ${SUBMOD_ERR_MSG}; exit 1)
|
||||
|
||||
# Feel free to remove the "check-clean" dependency if you know what you're doing.
|
||||
.PHONY: dist
|
||||
dist: check-clean commit.h .git create_dirs
|
||||
./gen-origtar
|
||||
|
||||
|
||||
### == Cleaning in various flavors == ###
|
||||
|
||||
.PHONY: clean-here
|
||||
clean-here:
|
||||
rm -rf ${DIR_LIST} $(PRPL_LIBNAME) po/*.mo autom4te.cache AppStream/po/*.mo
|
||||
|
||||
-include test/Makefile
|
||||
|
||||
.PHONY: clean
|
||||
clean: clean-here clean-test tgl/Makefile
|
||||
+${MAKE} -C tgl clean
|
||||
|
|
173
Makefile.mingw
173
Makefile.mingw
|
@ -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
|
49
Makefile.tgl
Normal file
49
Makefile.tgl
Normal file
|
@ -0,0 +1,49 @@
|
|||
TGL_OBJECTS=${OBJ}/mtproto-common.o ${OBJ}/mtproto-client.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
|
||||
TLD_OBJECTS=${OBJ}/dump-tl-file.o
|
||||
GENERATE_OBJECTS=${OBJ}/generate.o
|
||||
TGL_COMMON_OBJECTS=${OBJ}/tools.o
|
||||
TGL_OBJ_C=${GENERATE_OBJECTS} ${TGL_COMMON_OBJECTS} ${TGL_OBJECTS} ${TLD_OBJECTS}
|
||||
|
||||
ALL_OBJS+=${TGL_OBJ_C}
|
||||
|
||||
.SUFFIXES:
|
||||
|
||||
.SUFFIXES: .c .h .o
|
||||
|
||||
dump-tl: ${EXE}/dump-tl-file
|
||||
|
||||
${OBJ}/auto/auto.o ${TGL_OBJECTS}: ${AUTO}/constants.h ${AUTO}/auto-header.h
|
||||
|
||||
${TGL_OBJ_C}: ${OBJ}/%.o: ${srcdir}/tgl/%.c | create_dirs
|
||||
${CC} ${INCLUDE} ${COMPILE_FLAGS} -iquote ${srcdir}/tgl -c -MP -MD -MF ${DEP}/$*.d -MQ ${OBJ}/$*.o -o $@ $<
|
||||
|
||||
${OBJ}/auto/auto.o: ${AUTO}/auto.c
|
||||
${CC} ${INCLUDE} ${COMPILE_FLAGS} -iquote ${srcdir}/tgl -c -MP -MD -MF ${DEP}/auto/auto.d -MQ ${OBJ}/auto/auto.o -o $@ $<
|
||||
|
||||
${LIB}/libtgl.a: ${TGL_OBJECTS} ${TGL_COMMON_OBJECTS} ${OBJ}/auto/auto.o
|
||||
ar ruv $@ $^
|
||||
|
||||
${EXE}/generate: ${GENERATE_OBJECTS} ${TGL_COMMON_OBJECTS}
|
||||
${CC} ${GENERATE_OBJECTS} ${TGL_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}/tgl/scheme.tl ${srcdir}/tgl/encrypted_scheme.tl ${srcdir}/tgl/binlog.tl ${srcdir}/tgl/append.tl ${srcdir}/tgl/mtproto.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-header.h: ${AUTO}/scheme.tlo ${EXE}/generate
|
||||
${EXE}/generate -H ${AUTO}/scheme.tlo > $@
|
||||
|
||||
${AUTO}/constants.h: ${AUTO}/scheme2.tl ${srcdir}/tgl/gen_constants_h.awk
|
||||
awk -f ${srcdir}/tgl/gen_constants_h.awk < $< > $@
|
||||
|
||||
${EXE}/dump-tl-file: ${OBJ}/auto/auto.o ${TLD_OBJECTS}
|
||||
${CC} ${OBJ}/auto/auto.o ${TLD_OBJECTS} ${LINK_FLAGS} -o $@
|
||||
|
|
@ -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}
|
||||
|
9
Makefile.tl-parser
Normal file
9
Makefile.tl-parser
Normal file
|
@ -0,0 +1,9 @@
|
|||
|
||||
TL_PARSER_OBJECTS=${OBJ}/tl-parser.o ${OBJ}/tlc.o ${OBJ}/crc32.o
|
||||
ALL_OBJS+=${TL_PARSER_OBJS}
|
||||
|
||||
${TL_PARSER_OBJECTS}: ${OBJ}/%.o: ${srcdir}/tgl/tl-parser/%.c | create_dirs
|
||||
${CC} ${INCLUDE} ${COMPILE_FLAGS} -iquote ${srcdir}/tgl/tl-parser -c -MP -MD -MF ${DEP}/$*.d -MQ ${OBJ}/$*.o -o $@ $<
|
||||
|
||||
${EXE}/tl-parser: ${TL_PARSER_OBJECTS}
|
||||
${CC} $^ ${LINK_FLAGS} -o $@
|
280
README.md
280
README.md
|
@ -1,111 +1,47 @@
|
|||
Telegram-Purple Unofficial (Beta)
|
||||
=================================
|
||||
Telegram-Purple (Beta)
|
||||
===============
|
||||
|
||||
Telegram-purple is a Libpurple protocol plugin that adds support for the Telegram messenger.
|
||||
|
||||
I keep getting many questions about this plugin in my E-mail, so I've created a [telegram group chat](https://goo.gl/VudXys) for
|
||||
telegram-purple related discussions or questions.
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
If you are just interested in using the plugin you probably want to use one of the following binary distributions. Please note that I do not control most of those package sources and the version may lag behind.
|
||||
|
||||
If your platform is not supported or you want to contribute by testing or development, scroll down to "Building form Source".
|
||||
Telegram-purple is a Libpurple plugin that adds support for the Telegram messenger.
|
||||
|
||||
|
||||
#### OSX (Adium)
|
||||
Beta 1
|
||||
------
|
||||
|
||||
1. Download and execute the [Telegram-Adium bundle] (https://github.com/majn/telegram-purple/releases/download/v1.3.0/telegram-adium-1.3.0.AdiumLibpurplePlugin.zip)
|
||||
2. Restart Adium
|
||||
If you migrate from an older version, the Telegram authentication files have been moved to .purple/telegram-purple. If you want to keep your old secret chats, please copy it manually from ~/.telegram-purple, otherwise you will just be prompted for a new SMS code.
|
||||
|
||||
#### Windows
|
||||
Build
|
||||
-----
|
||||
|
||||
Eion Robb provides a binary for Windows users:
|
||||
|
||||
1. Download and execute the setup from http://eion.robbmob.com/telegram/
|
||||
2. Restart Pidgin
|
||||
|
||||
#### Fedora (22, 23)
|
||||
|
||||
The package is available in the Fedora 22 and 23 testing repositories:
|
||||
|
||||
dnf config-manager --set-enabled updates-testing
|
||||
dnf install purple-telegram
|
||||
|
||||
|
||||
#### Arch Linux (AUR)
|
||||
|
||||
https://aur.archlinux.org/packages/telegram-purple/
|
||||
|
||||
|
||||
#### Debian
|
||||
|
||||
At the time of writing, the package hasn't been accepted yet.
|
||||
Please first check if it's already available to you: `sudo apt-get install telegram-purple`
|
||||
|
||||
If this doesn't work because the package doesn't exist (yet), please build it from source.
|
||||
|
||||
|
||||
Building From Source
|
||||
--------------------
|
||||
|
||||
Below, you will find the instructions for how to build the libpurple protocol plugin from source.
|
||||
Below, you will find instructions on how to build the libpurple protocol plugin. If you just want to use the plugin in Adium, [download precompiled packages here.](https://github.com/majn/telegram-purple/releases)
|
||||
|
||||
#### 1. Clone
|
||||
|
||||
This repository has submodules, so you need to clone recursively.
|
||||
This repository has submodules, so you need to clone recursively
|
||||
|
||||
|
||||
git clone --recursive https://github.com/majn/telegram-purple
|
||||
cd telegram-purple
|
||||
|
||||
|
||||
#### 1b. Cloning if you're a packager
|
||||
|
||||
If you are unsure about whether you need this, then you are not a
|
||||
packager and don't have any use for this.
|
||||
|
||||
If you need an "orig-tarball", it can be generated by `make dist`. Note
|
||||
that this automatically generates an appropriate version number like
|
||||
`1.2.4-58-g8e3cebf`. You can truncate the git suffix (`-g8e3cebf`). If
|
||||
the `-58` part exists, it means that you're using a development
|
||||
version, which is probably not what you want. If you still want to
|
||||
package this, please leave the commit number (i.e., `58`) intact, as
|
||||
this indicates that this version is in fact much further than just
|
||||
`1.2.4`.
|
||||
|
||||
|
||||
#### 2. Fetch all dependencies
|
||||
|
||||
##### Fedora
|
||||
|
||||
sudo dnf install gcc gettext libgcrypt-devel libwebp-devel libpurple-devel zlib-devel
|
||||
sudo yum install gcc openssl-devel glib2-devel libpurple-devel
|
||||
|
||||
|
||||
##### Debian / Ubuntu
|
||||
###### Debian
|
||||
|
||||
We are working on a Debian package! Please first check if it's already available to you: `sudo apt-get install telegram-purple`
|
||||
|
||||
If the above works, then you should stop here: It is now installed.
|
||||
|
||||
If the above fails: Don't worry, just continue building it by yourself. Next you need to install these dependencies:
|
||||
|
||||
sudo apt-get install libgcrypt20-dev libpurple-dev libwebp-dev gettext build-essential
|
||||
sudo apt-get install libssl-dev libglib2.0-dev libpurple-dev
|
||||
|
||||
|
||||
##### OpenSUSE
|
||||
###### OpenSUSE
|
||||
|
||||
sudo zypper install gcc glib glib-devel libpurple libpurple-devel zlib-devel libwebp-devel
|
||||
|
||||
And the development files for gcrypt, probably `gcrypt-devel` or something. (FIXME)
|
||||
sudo zypper install gcc glib glib-devel libpurple libpurple-devel zlib-devel openssl libopenssl-devel
|
||||
|
||||
|
||||
#### 3. Compile and install
|
||||
|
||||
If libwebp is not available, you can disable sticker support by calling ./configure --disable-libweb instead.
|
||||
Please note that this is usually not necessary.
|
||||
|
||||
./configure
|
||||
make
|
||||
sudo make install
|
||||
|
@ -114,11 +50,10 @@ Please note that this is usually not necessary.
|
|||
Pulling Updates
|
||||
---------------
|
||||
|
||||
This repository contains submodules, and a simple pull just won't be enough to update all the submodules’ files. Pull new changes with:
|
||||
This repository contains submodules and just a simple pull won't be enough to update all submodule files. Pull new changes with:
|
||||
|
||||
|
||||
git pull
|
||||
git submodule sync # just in case the configuration has changed
|
||||
git submodule update --recursive
|
||||
|
||||
|
||||
|
@ -127,31 +62,25 @@ Usage
|
|||
|
||||
#### First Login
|
||||
|
||||
The username is your current phone number, including your full country prefix. For Germany, this would be '+49', resulting in a user name like '+49151123456'. Telegram will verify your phone number by sending you a code via SMS. You will be prompted for this code, once that happens.
|
||||
|
||||
#### Buddy List
|
||||
|
||||
Like in the official Telegram apps, the displayed buddy list consists of all active conversations.
|
||||
|
||||
##### Foreign Users
|
||||
|
||||
Foreign users, like for example people you only know through a group chat but never had any conversation with, will not be part of your buddy list by default. You can add those users to the buddy list by clicking on "Add contact..." in the users context menu.
|
||||
The username is your current phone number, including your full country prefix. For Germany, this would be '+49', resulting in a user name like '+49151123456'. Telegram will verify your phone number by sending you a code via sms. You will be prompted for this code, once that happens.
|
||||
|
||||
#### Using secret chats
|
||||
|
||||
You can use Telegram secret chats with this plugin, they will show up as a new buddy with a '!' in front of the buddy name.
|
||||
|
||||
One caveat of secret chats in Telegram is that they can only have one endpoint, this is a limitation of the protocol. This means that if you create a secret chat in Pidgin you will not be able to use that chat on your phone. You will be asked whether to accept each secret chat, so you can always choose to accept the chat on a different device if you want. You can set a default behavior for dealing with secret chats (Accept or Decline) in the account settings, if you don't want that prompt to appear every time.
|
||||
One caveat of secret chats in Telegram is that they can only have one endpoint, this is a limitation of the protocol. This means that if you create a secret chat in Pidgin you will not be able to use that chat on your phone. You will be asked whether to accept each secret chat, so you can always choose to accept the chat on a different device if you want. You can set a default behavior for dealing with secret chats (Accept or Decline) in the account settings if you don't want that prompt to appear every time.
|
||||
|
||||
Self destructive messages will be ignored, since I don't know any way to delete them from the conversation and the history.
|
||||
|
||||
##### Confirming the key authenticity
|
||||
|
||||
Click on the buddy in the buddy list and click on "Show Info" to visualize the key fingerprint.
|
||||
Click on the buddy in the buddy list and click on "Show Info" to visualize the key fingerprint.
|
||||
|
||||

|
||||
|
||||
##### Initiate secret chats
|
||||
|
||||
To initiate a secret chat from Pidgin, click on a Buddy in the Buddy List and hit "Start Secret Chat"
|
||||
To initiate a secret chat from Pidgin, click on a Buddy in the Buddy List and hit ``Start Secret Chat''
|
||||
|
||||
##### Deleting secret chats
|
||||
|
||||
|
@ -164,164 +93,29 @@ The Telegram phone applications for iOS and Android make use of standardized Uni
|
|||
does not display those smileys natively, but you can install a custom smiley theme like (https://github.com/stv0g/unicode-emoji) or (https://github.com/VxJasonxV/emoji-for-pidgin) and activate it under Settings > Themes > Smiley Theme.
|
||||
|
||||
|
||||
#### Code-Tags
|
||||
Troubleshooting
|
||||
---------------
|
||||
|
||||
Since 1.3.0 it is possible to write messages in monospaced fonts using the markdown backtick syntax.
|
||||
If you encounter problems running this plugin and you have updated from an older version,
|
||||
deleting your old user-data might be helpful. WARNING: This will require you to enter a new authentication
|
||||
code and delete all your secret chat keys.
|
||||
|
||||
##### Example
|
||||
To clean all your user files run:
|
||||
|
||||
``` if (true) {
|
||||
// do smth
|
||||
}```
|
||||
|
||||
##### Result
|
||||
|
||||
if (true) {
|
||||
// do smth
|
||||
}
|
||||
make purge
|
||||
|
||||
|
||||
|
||||
Building the Adium Plugin
|
||||
-------------------------
|
||||
|
||||
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:
|
||||
Compiling with XCode is a little bit problematic, since it requries you to compile Adium first to get the necessary framework files. My advice is to just use the [prebuild bundle](https://github.com/majn/telegram-purple/releases), but if you really want to do it, follow those 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
|
||||
2. Open the Adium source code, go to ./Frameworks and copy libglib.framework and libpurple.framework into telegram-adium/Frameworks/Adium
|
||||
3. Build the tgl submodule and delete libtgl.so from libs/ (it should only contain libtgl.a)
|
||||
4. Install libwebp, libgcrypt and gnupg with homebrew:
|
||||
|
||||
brew install webp
|
||||
brew install libgcrypt libgpg-error
|
||||
|
||||
5. If you already downloaded libwebp/libgcrypt in previous builds make sure that the binaries are up-to-date
|
||||
|
||||
brew update
|
||||
brew upgrade webp libgcrypt
|
||||
|
||||
6. Install with homebrew and move it into the appropriate directory so that XCode can find them. Note that the versions might differ, use the one that is
|
||||
|
||||
mkdir -p ./telegram-adium/Frameworks/Adium
|
||||
cp /usr/local/Cellar/webp/0.4.3/lib/libwebp.a ./telegram-adium/Frameworks
|
||||
cp /usr/local/Cellar/libgcrypt/1.6.4/lib/libgcrypt.20.dylib ./telegram-adium/Frameworks/Adium
|
||||
cp /usr/local/Cellar/libgpg-error/1.20_1/lib/libgpg-error.0.dylib ./telegram-adium/Frameworks/Adium
|
||||
|
||||
7. Update the paths in the dylibs, to assure that the resulting binary will load them form within the bundle.
|
||||
|
||||
cd ./telegram-adium/Frameworks/Adium
|
||||
install_name_tool -id "@loader_path/../Resources/libgcrypt.20.dylib" ./libgcrypt.20.dylib
|
||||
install_name_tool -id "@loader_path/../Resources/libgpg-error.0.dylib" ./libgpg-error.0.dylib
|
||||
install_name_tool -change "/usr/local/lib/libgpg-error.0.dylib" "@loader_path/../Resources/libgpg-error.0.dylib" ./libgcrypt.20.dylib
|
||||
|
||||
7. Build the XCode-Project and execute the created bundle
|
||||
|
||||
|
||||
Building the Debian Package
|
||||
---------------------------
|
||||
|
||||
If you just need a `.deb`, simply do:
|
||||
|
||||
sudo apt-get install debhelper
|
||||
git checkout debian-master
|
||||
git submodule update --recursive
|
||||
fakeroot ./debian/rules binary
|
||||
|
||||
And you're done! The `.deb` is in the directory at which you started.
|
||||
To show some info about it, try this:
|
||||
|
||||
dpkg --info telegram-purple_*.deb
|
||||
|
||||
`debian-master` always points to a version that was submitted to Debian. (Note that this doesn't exist yet, as we haven't released to Debian yet.)
|
||||
`debian-develop` is the candidate for the next submission.
|
||||
|
||||
#### 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
|
||||
|
||||
Note that these are incompatible with the old `debian/genorigtar.sh`
|
||||
tarballs, and can't be made compatible easily. If you need the tarball
|
||||
from "back then", see the documentation there.
|
||||
|
||||
This command requires the original tar to exist (and will fail otherwise,
|
||||
although the error message will be misleading) will build all further files,
|
||||
specifically `.debian.tar.xz`, `.dsc`, `.deb`, and `.changes`:
|
||||
|
||||
dpkg-buildpackage
|
||||
|
||||
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 .
|
||||
|
||||
|
||||
Discussion / Help
|
||||
-----------------
|
||||
|
||||
#### Custom pubkeys
|
||||
|
||||
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)
|
||||
|
||||
You can also write your own conversion tool if you prefer. The format is really simple:
|
||||
|
||||
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.)
|
||||
|
||||
If you are interested in developing a non-OpenSSL-licensed converter, look into [insane-triangle-banana](https://github.com/BenWiederhake/insane-triangle-banana).
|
||||
|
||||
|
||||
FAQ
|
||||
---
|
||||
|
||||
- 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.
|
||||
|
||||
- I receive RPC_CALL_FAIL_401: SESSION REVOKED
|
||||
|
||||
* A: This basically means your session has been terminated but the program
|
||||
doesn't handle terminated sessions properly yet. You have to clean the
|
||||
~/.purple/telegram-purple/$PHONENUMBER directory to fix this issue.
|
||||
|
||||
For Arch Linux users that use Bitlbee you can find this directory in
|
||||
`/var/lib/bitlbee/purple/telegram-purple/`
|
||||
|
||||
#### Group chat
|
||||
|
||||
Telegram group chat for telegram-purple or libtgl related discussions or questions:
|
||||
|
||||
- https://goo.gl/VudXys
|
||||
|
||||
|
||||
Submitting Bug Reports
|
||||
----------------------
|
||||
|
||||
**IMPORTANT**: if you report bugs PLEASE make sure to always **include as much information as possible**. This should always include **at least the telegram-purple version and (if possible) commit**, where you got telegram-purple from (Source build, package repository, etc.), the Pidgin version (if you use a different messenger please state that too!) and your OS Version.
|
||||
|
||||
If you describe some issue please be as precise as possible. Descriptions like "XY doesn't work" will not help me. Describe what you are doing what kind of issue you are experiencing: "If I click on X, Y happens, but instead I would expect Z to happen".
|
||||
|
||||
For error reports please include the application logs. To get Pidgin to print a log, [start it from command line, specifying the -d option](https://developer.pidgin.im/wiki/GetABacktrace#TheEasyWay). **ATTENTION**: This log will contain personal information like your phone number, message content or contact or chat names. If you plan on uploading it somewhere public mask those entries in the log.
|
||||
|
||||
Bug reports regarding crashes should include a backtrace if possible, there is extended documentation available on [how to get a backtrace for crashes](https://developer.pidgin.im/wiki/GetABacktrace)
|
||||
|
||||
Empathy / libtelepathy
|
||||
----------------------
|
||||
|
||||
Empathy doesn't natively support libpurple plugins since its based on libtelepathy, but there is a compatibillity layer called telepathy-haze that can be used to execute libpurple
|
||||
plugins. This means that you can basically run this plugin thanks to telepathy-haze but you will usually get less features and worse usability compared to real libpurple clients. If you use Empathy (or anything else based on libtelepathy) I recommend [telepathy-morse](https://projects.kde.org/projects/playground/network/telepathy/telepathy-morse/repository) which is a connection manager written specifically for your messenger.
|
||||
4. Build the XCode-Project and execute the created bundle
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
@ -330,10 +124,18 @@ Telegram-Purple was written by:
|
|||
|
||||
- Matthias Jentsch <mtthsjntsch@gmail.com>
|
||||
- Vitaly Valtman
|
||||
- Ben Wiederhake <Ben.Wiederhake@gmail.com>
|
||||
- Christopher Althaus <althaus.christopher@gmail.com>
|
||||
- Markus Endres <endresma45241@th-nuernberg.de>
|
||||
|
||||
|
||||
Acknowledgements
|
||||
----------------
|
||||
|
||||
This software is based on the library [Libtgl](https://github.com/vysheng/tgl), which was written by Vitaly Valtman <mail@vysheng.ru> and others, see (https://github.com/vysheng/tgl/)
|
||||
This software is based on the library [Libtgl](https://github.com/vysheng/tgl), which was written by Vitaly Valtman <mail@vysheng.ru> and others, see (http://github.com/vysheng/tgl)
|
||||
|
||||
For PNG rendering, it includes the [lodepng library](http://lodev.org/lodepng/).
|
||||
|
||||
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)
|
||||
|
||||
This product includes cryptographic software written by Eric Young (eay@cryptsoft.com)
|
||||
|
||||
|
|
16
autogen.sh
16
autogen.sh
|
@ -1,16 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
autoreconf
|
||||
|
||||
(
|
||||
cd po
|
||||
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.
|
||||
)
|
||||
|
||||
test -r Makefile || (echo "Autoreconf didn't create Makefile?!"; exit 1)
|
||||
make --quiet build-nsi
|
45
commit.h.gen
45
commit.h.gen
|
@ -1,45 +0,0 @@
|
|||
#!/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 Matthias Jentsch, Ben Wiederhake 2016
|
||||
|
||||
set -e
|
||||
|
||||
if ! (command -v git && git status) >/dev/null 2>&1
|
||||
then
|
||||
if test -r commit.h
|
||||
then
|
||||
echo "No git available. Assuming everything is up-to-date."
|
||||
exit 0
|
||||
else
|
||||
echo >&2 "No git available. Can't reconstruct commit.h"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
GIT_COMMIT=`git rev-parse HEAD | cut -c1-10`
|
||||
|
||||
if grep -scq "${GIT_COMMIT}" commit.h
|
||||
then
|
||||
echo "commit.h is up-to-date"
|
||||
else
|
||||
echo "Refresh commit.h"
|
||||
echo "#ifndef GIT_COMMIT" > commit.h
|
||||
echo "# define GIT_COMMIT \"${GIT_COMMIT}\"" >> commit.h
|
||||
echo "#endif" >> commit.h
|
||||
fi
|
10
config.h.in
10
config.h.in
|
@ -1,8 +1,5 @@
|
|||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define the gettext package to be used */
|
||||
#undef GETTEXT_PACKAGE
|
||||
|
||||
/* Define to 1 if you have the <arpa/inet.h> header file. */
|
||||
#undef HAVE_ARPA_INET_H
|
||||
|
||||
|
@ -12,15 +9,12 @@
|
|||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the `gcrypt' library (-lgcrypt). */
|
||||
#undef HAVE_LIBGCRYPT
|
||||
/* Define to 1 if you have the `m' library (-lm). */
|
||||
#undef HAVE_LIBM
|
||||
|
||||
/* Define to 1 if you have the `rt' library (-lrt). */
|
||||
#undef HAVE_LIBRT
|
||||
|
||||
/* Define to 1 if you have the `webp' library (-lwebp). */
|
||||
#undef HAVE_LIBWEBP
|
||||
|
||||
/* Define to 1 if you have `z' library (-lz) */
|
||||
#undef HAVE_LIBZ
|
||||
|
||||
|
|
116
config.h.mingw
116
config.h.mingw
|
@ -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 */
|
|
@ -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
|
375
configure
vendored
375
configure
vendored
|
@ -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.0.0.
|
||||
#
|
||||
#
|
||||
# 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.0.0'
|
||||
PACKAGE_STRING='telegram-purple 1.0.0'
|
||||
PACKAGE_BUGREPORT=''
|
||||
PACKAGE_URL=''
|
||||
|
||||
|
@ -620,9 +620,6 @@ ac_includes_default="\
|
|||
#endif"
|
||||
|
||||
ac_subst_vars='LTLIBOBJS
|
||||
GETTEXT_PACKAGE
|
||||
MSGFMT_PATH
|
||||
CHECK_GETTEXT
|
||||
PURPLE_CPPFLAGS
|
||||
LIBOBJS
|
||||
PURPLE_LIBS
|
||||
|
@ -636,7 +633,6 @@ OPENSSL_LDFLAGS
|
|||
OPENSSL_LIBS
|
||||
OPENSSL_INCLUDES
|
||||
PKG_CONFIG
|
||||
CRYPTO_FLAG
|
||||
INSTALL_DATA
|
||||
INSTALL_SCRIPT
|
||||
INSTALL_PROGRAM
|
||||
|
@ -688,12 +684,8 @@ SHELL'
|
|||
ac_subst_files=''
|
||||
ac_user_opts='
|
||||
enable_option_checking
|
||||
enable_gcrypt
|
||||
with_openssl
|
||||
with_zlib
|
||||
enable_libwebp
|
||||
enable_icons
|
||||
enable_translation
|
||||
'
|
||||
ac_precious_vars='build_alias
|
||||
host_alias
|
||||
|
@ -1249,7 +1241,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.0.0 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
|
@ -1310,22 +1302,10 @@ 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.0.0:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
Optional Features:
|
||||
--disable-option-checking ignore unrecognized --enable/--with options
|
||||
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
|
||||
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
|
||||
--disable-gcrypt Disable gcrypt, use OpenSSL instead. DO NOT
|
||||
DISTRIBUTE BINARIES!
|
||||
--disable-libwebp Disable libwebp, stickers won't be displayed in the
|
||||
chat
|
||||
--disable-icons Unsupported option. Use 'make noicon_install'
|
||||
instead.
|
||||
--disable-translation Disable gettext translation
|
||||
|
||||
Optional Packages:
|
||||
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
|
||||
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
|
||||
|
@ -1418,7 +1398,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.0.0
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
|
@ -1837,7 +1817,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.0.0, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
|
@ -2333,92 +2313,6 @@ ac_config_headers="$ac_config_headers config.h"
|
|||
|
||||
|
||||
|
||||
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
||||
# serial 1 (pkg-config-0.24)
|
||||
#
|
||||
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# PKG_PROG_PKG_CONFIG([MIN-VERSION])
|
||||
# ----------------------------------
|
||||
# PKG_PROG_PKG_CONFIG
|
||||
|
||||
# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||
#
|
||||
# Check to see whether a particular set of modules exists. Similar
|
||||
# to PKG_CHECK_MODULES(), but does not set variables or print errors.
|
||||
#
|
||||
# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||
# only at the first occurence in configure.ac, so if the first place
|
||||
# it's called might be skipped (such as if it is within an "if", you
|
||||
# have to call PKG_CHECK_EXISTS manually
|
||||
# --------------------------------------------------------------
|
||||
|
||||
|
||||
# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
|
||||
# ---------------------------------------------
|
||||
# _PKG_CONFIG
|
||||
|
||||
# _PKG_SHORT_ERRORS_SUPPORTED
|
||||
# -----------------------------
|
||||
# _PKG_SHORT_ERRORS_SUPPORTED
|
||||
|
||||
|
||||
# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
||||
# [ACTION-IF-NOT-FOUND])
|
||||
#
|
||||
#
|
||||
# Note that if there is a possibility the first call to
|
||||
# PKG_CHECK_MODULES might not happen, you should be sure to include an
|
||||
# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
|
||||
#
|
||||
#
|
||||
# --------------------------------------------------------------
|
||||
# PKG_CHECK_MODULES
|
||||
|
||||
|
||||
# PKG_INSTALLDIR(DIRECTORY)
|
||||
# -------------------------
|
||||
# Substitutes the variable pkgconfigdir as the location where a module
|
||||
# should install pkg-config .pc files. By default the directory is
|
||||
# $libdir/pkgconfig, but the default can be changed by passing
|
||||
# DIRECTORY. The user can override through the --with-pkgconfigdir
|
||||
# parameter.
|
||||
|
||||
|
||||
# PKG_NOARCH_INSTALLDIR(DIRECTORY)
|
||||
# -------------------------
|
||||
# Substitutes the variable noarch_pkgconfigdir as the location where a
|
||||
# module should install arch-independent pkg-config .pc files. By
|
||||
# default the directory is $datadir/pkgconfig, but the default can be
|
||||
# changed by passing DIRECTORY. The user can override through the
|
||||
# --with-noarch-pkgconfigdir parameter.
|
||||
|
||||
|
||||
# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
|
||||
# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||
# -------------------------------------------
|
||||
# Retrieves the value of the pkg-config variable for the given module.
|
||||
# PKG_CHECK_VAR
|
||||
|
||||
|
||||
# Checks for programs.
|
||||
ac_ext=c
|
||||
|
@ -3334,6 +3228,51 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
|
|||
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqrt in -lm" >&5
|
||||
$as_echo_n "checking for sqrt in -lm... " >&6; }
|
||||
if ${ac_cv_lib_m_sqrt+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-lm $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 sqrt ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return sqrt ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_lib_m_sqrt=yes
|
||||
else
|
||||
ac_cv_lib_m_sqrt=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_m_sqrt" >&5
|
||||
$as_echo "$ac_cv_lib_m_sqrt" >&6; }
|
||||
if test "x$ac_cv_lib_m_sqrt" = xyes; then :
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_LIBM 1
|
||||
_ACEOF
|
||||
|
||||
LIBS="-lm $LIBS"
|
||||
|
||||
fi
|
||||
|
||||
{ $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 :
|
||||
|
@ -3380,71 +3319,6 @@ _ACEOF
|
|||
fi
|
||||
|
||||
|
||||
# Check whether --enable-gcrypt was given.
|
||||
if test "${enable_gcrypt+set}" = set; then :
|
||||
enableval=$enable_gcrypt;
|
||||
fi
|
||||
|
||||
|
||||
if test "x$enable_gcrypt" != "xno"; then :
|
||||
|
||||
# Even though tgl/configure will do this too, still call our own libgcrypt check to assure that -lgcrypt is added to our makefile
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcry_mpi_snatch in -lgcrypt" >&5
|
||||
$as_echo_n "checking for gcry_mpi_snatch in -lgcrypt... " >&6; }
|
||||
if ${ac_cv_lib_gcrypt_gcry_mpi_snatch+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-lgcrypt $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 gcry_mpi_snatch ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return gcry_mpi_snatch ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_lib_gcrypt_gcry_mpi_snatch=yes
|
||||
else
|
||||
ac_cv_lib_gcrypt_gcry_mpi_snatch=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_gcrypt_gcry_mpi_snatch" >&5
|
||||
$as_echo "$ac_cv_lib_gcrypt_gcry_mpi_snatch" >&6; }
|
||||
if test "x$ac_cv_lib_gcrypt_gcry_mpi_snatch" = xyes; then :
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_LIBGCRYPT 1
|
||||
_ACEOF
|
||||
|
||||
LIBS="-lgcrypt $LIBS"
|
||||
|
||||
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
|
||||
|
||||
fi
|
||||
|
||||
CRYPTO_FLAG=--disable-openssl
|
||||
|
||||
|
||||
else
|
||||
|
||||
|
||||
found=false
|
||||
|
||||
# Check whether --with-openssl was given.
|
||||
|
@ -3582,7 +3456,7 @@ else
|
|||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
No openssl found.
|
||||
as_fn_error $? "No openssl found" "$LINENO" 5
|
||||
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
|
@ -3595,10 +3469,6 @@ rm -f core conftest.err conftest.$ac_objext \
|
|||
|
||||
|
||||
|
||||
|
||||
fi
|
||||
|
||||
|
||||
ac_ext=c
|
||||
ac_cpp='$CPP $CPPFLAGS'
|
||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||
|
@ -4342,79 +4212,6 @@ $as_echo "yes" >&6; }
|
|||
|
||||
fi
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libwebp" >&5
|
||||
$as_echo_n "checking for libwebp... " >&6; }
|
||||
# Check whether --enable-libwebp was given.
|
||||
if test "${enable_libwebp+set}" = set; then :
|
||||
enableval=$enable_libwebp;
|
||||
fi
|
||||
|
||||
|
||||
if test "x$enable_libwebp" != "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 WebPDecodeRGBA in -lwebp" >&5
|
||||
$as_echo_n "checking for WebPDecodeRGBA in -lwebp... " >&6; }
|
||||
if ${ac_cv_lib_webp_WebPDecodeRGBA+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-lwebp $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
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_lib_webp_WebPDecodeRGBA=yes
|
||||
else
|
||||
ac_cv_lib_webp_WebPDecodeRGBA=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_webp_WebPDecodeRGBA" >&5
|
||||
$as_echo "$ac_cv_lib_webp_WebPDecodeRGBA" >&6; }
|
||||
if test "x$ac_cv_lib_webp_WebPDecodeRGBA" = xyes; then :
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_LIBWEBP 1
|
||||
_ACEOF
|
||||
|
||||
LIBS="-lwebp $LIBS"
|
||||
|
||||
else
|
||||
as_fn_error $? "no libwebp found, try --disable-libwebp, but stickers won't be displayed in the chat" "$LINENO" 5
|
||||
fi
|
||||
|
||||
|
||||
fi
|
||||
|
||||
# Check whether --enable-icons was given.
|
||||
if test "${enable_icons+set}" = set; then :
|
||||
enableval=$enable_icons;
|
||||
fi
|
||||
|
||||
if test "x$enable_icons" == "xno"; then :
|
||||
|
||||
as_fn_error $? "--disable-icons is now obsolete. Please use 'make noicon_install' for the same effect." "$LINENO" 5
|
||||
|
||||
fi
|
||||
|
||||
# Checks for header files.
|
||||
for ac_header in arpa/inet.h fcntl.h netdb.h netinet/in.h stdlib.h string.h sys/socket.h sys/time.h unistd.h
|
||||
do :
|
||||
|
@ -4528,68 +4325,6 @@ done
|
|||
|
||||
|
||||
|
||||
# Check whether --enable-translation was given.
|
||||
if test "${enable_translation+set}" = set; then :
|
||||
enableval=$enable_translation;
|
||||
fi
|
||||
|
||||
if test "x$enable_translation" != "xno"; then :
|
||||
|
||||
# Extract the first word of "msgfmt", so it can be a program name with args.
|
||||
set dummy msgfmt; ac_word=$2
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||
$as_echo_n "checking for $ac_word... " >&6; }
|
||||
if ${ac_cv_prog_CHECK_GETTEXT+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
if test -n "$CHECK_GETTEXT"; then
|
||||
ac_cv_prog_CHECK_GETTEXT="$CHECK_GETTEXT" # Let the user override the test.
|
||||
else
|
||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
for as_dir in $PATH
|
||||
do
|
||||
IFS=$as_save_IFS
|
||||
test -z "$as_dir" && as_dir=.
|
||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
ac_cv_prog_CHECK_GETTEXT=""yes""
|
||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
IFS=$as_save_IFS
|
||||
|
||||
test -z "$ac_cv_prog_CHECK_GETTEXT" && ac_cv_prog_CHECK_GETTEXT=""no""
|
||||
fi
|
||||
fi
|
||||
CHECK_GETTEXT=$ac_cv_prog_CHECK_GETTEXT
|
||||
if test -n "$CHECK_GETTEXT"; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHECK_GETTEXT" >&5
|
||||
$as_echo "$CHECK_GETTEXT" >&6; }
|
||||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
|
||||
|
||||
if test x"$CHECK_GETTEXT" != x"yes" ; then
|
||||
as_fn_error $? "no gettext found, use --disable-translation if you dont need it." "$LINENO" 5
|
||||
fi
|
||||
MSGFMT_PATH=$(which msgfmt)
|
||||
|
||||
|
||||
fi
|
||||
|
||||
# Define the domain name for the translated words
|
||||
GETTEXT_PACKAGE=$PACKAGE_NAME
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE"
|
||||
_ACEOF
|
||||
|
||||
|
||||
ac_config_files="$ac_config_files Makefile"
|
||||
|
||||
cat >confcache <<\_ACEOF
|
||||
|
@ -5098,7 +4833,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.0.0, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
|
@ -5160,7 +4895,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.0.0
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
|
71
configure.ac
71
configure.ac
|
@ -1,72 +1,24 @@
|
|||
# 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 2014-2015
|
||||
|
||||
# -*- Autoconf -*-
|
||||
# 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.0.0])
|
||||
AC_CONFIG_SRCDIR([config.h.in])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
|
||||
m4_include([m4_ax_check_openssl.m4])
|
||||
m4_include([m4_ax_check_zlib.m4])
|
||||
m4_include([m4_ax_pkg_config.m4])
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_CC
|
||||
AC_PROG_INSTALL
|
||||
|
||||
AC_CHECK_LIB([m], [sqrt])
|
||||
AC_CHECK_LIB([rt], [clock_gettime])
|
||||
|
||||
AC_ARG_ENABLE([gcrypt],
|
||||
AS_HELP_STRING([--disable-gcrypt], [Disable gcrypt, use OpenSSL instead. DO NOT DISTRIBUTE BINARIES!]))
|
||||
|
||||
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_SUBST([CRYPTO_FLAG], [--disable-openssl])
|
||||
], [
|
||||
AX_CHECK_OPENSSL([], [No openssl found.])
|
||||
])
|
||||
|
||||
|
||||
AX_CHECK_OPENSSL(,[AC_MSG_ERROR([No openssl found])])
|
||||
AX_CHECK_ZLIB(, [AC_MSG_ERROR([No zlib found])])
|
||||
|
||||
PKG_CHECK_MODULES([PURPLE], [purple])
|
||||
|
||||
AC_MSG_CHECKING([for libwebp])
|
||||
AC_ARG_ENABLE([libwebp],
|
||||
AS_HELP_STRING([--disable-libwebp], [Disable libwebp, stickers won't be displayed in the chat]))
|
||||
|
||||
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_ARG_ENABLE([icons],
|
||||
AS_HELP_STRING([--disable-icons], [Unsupported option. Use 'make noicon_install' instead.]))
|
||||
AS_IF([test "x$enable_icons" == "xno"], [
|
||||
AC_MSG_ERROR([--disable-icons is now obsolete. Please use 'make noicon_install' for the same effect.])
|
||||
])
|
||||
PKG_CHECK_MODULES([PURPLE], [purple], )
|
||||
|
||||
# Checks for header files.
|
||||
AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h stdlib.h string.h sys/socket.h sys/time.h unistd.h])
|
||||
|
@ -82,20 +34,5 @@ AC_SUBST(PURPLE_CFLAGS)
|
|||
AC_SUBST(PURPLE_CPPFLAGS)
|
||||
AC_SUBST(PURPLE_LIBS)
|
||||
|
||||
AC_ARG_ENABLE([translation],
|
||||
AS_HELP_STRING([--disable-translation], [Disable gettext translation]))
|
||||
AS_IF([test "x$enable_translation" != "xno"], [
|
||||
AC_CHECK_PROG(CHECK_GETTEXT, msgfmt, "yes", "no", $PATH)
|
||||
if test x"$CHECK_GETTEXT" != x"yes" ; then
|
||||
AC_MSG_ERROR([no gettext found, use --disable-translation if you dont need it.])
|
||||
fi
|
||||
AC_SUBST(MSGFMT_PATH, $(which msgfmt))
|
||||
])
|
||||
|
||||
# Define the domain name for the translated words
|
||||
GETTEXT_PACKAGE=$PACKAGE_NAME
|
||||
AC_SUBST(GETTEXT_PACKAGE)
|
||||
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define the gettext package to be used])
|
||||
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_OUTPUT
|
||||
|
|
53
gen-origtar
53
gen-origtar
|
@ -1,53 +0,0 @@
|
|||
#!/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 Matthias Jentsch, Ben Wiederhake 2016
|
||||
|
||||
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
|
||||
|
||||
# -- 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.
|
||||
# --sort --mtime --owner --group => be reproducible (same commit produces binarily identical files)
|
||||
# --transform => be in the same "tar-folder" as the rest
|
||||
# (absence of --numeric-ids) => have identical behavior as git-archive
|
||||
# --mode=664 => have identical behavior as git-archive
|
||||
# http://www.gelato.unsw.edu.au/archives/git/0701/36326.html
|
||||
# This is hacky. TODO: Find a better way to unify permissions.
|
||||
tar --sort=name --mtime="1970-01-01 00:00Z" --owner=root --group=root --transform s%^%telegram-purple/% --mode=664 -cf bin/commit.h.tar commit.h
|
||||
|
||||
# -- 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
|
||||
|
||||
# -- Determine name and move
|
||||
TARNAME="telegram-purple_`git describe --tags | sed s/^v// `.orig.tar.gz"
|
||||
# "mv -f" means "overwrite, if necessary"
|
||||
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
|
6104
lodepng/lodepng.c
Executable file
6104
lodepng/lodepng.c
Executable file
File diff suppressed because it is too large
Load diff
1702
lodepng/lodepng.h
Executable file
1702
lodepng/lodepng.h
Executable file
File diff suppressed because it is too large
Load diff
|
@ -1,214 +0,0 @@
|
|||
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
||||
# serial 1 (pkg-config-0.24)
|
||||
#
|
||||
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# PKG_PROG_PKG_CONFIG([MIN-VERSION])
|
||||
# ----------------------------------
|
||||
AC_DEFUN([PKG_PROG_PKG_CONFIG],
|
||||
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
|
||||
m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
|
||||
m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
|
||||
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
|
||||
AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
|
||||
AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
|
||||
|
||||
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
||||
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
|
||||
fi
|
||||
if test -n "$PKG_CONFIG"; then
|
||||
_pkg_min_version=m4_default([$1], [0.9.0])
|
||||
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
PKG_CONFIG=""
|
||||
fi
|
||||
fi[]dnl
|
||||
])# PKG_PROG_PKG_CONFIG
|
||||
|
||||
# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||
#
|
||||
# Check to see whether a particular set of modules exists. Similar
|
||||
# to PKG_CHECK_MODULES(), but does not set variables or print errors.
|
||||
#
|
||||
# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||
# only at the first occurence in configure.ac, so if the first place
|
||||
# it's called might be skipped (such as if it is within an "if", you
|
||||
# have to call PKG_CHECK_EXISTS manually
|
||||
# --------------------------------------------------------------
|
||||
AC_DEFUN([PKG_CHECK_EXISTS],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||
if test -n "$PKG_CONFIG" && \
|
||||
AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
|
||||
m4_default([$2], [:])
|
||||
m4_ifvaln([$3], [else
|
||||
$3])dnl
|
||||
fi])
|
||||
|
||||
# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
|
||||
# ---------------------------------------------
|
||||
m4_define([_PKG_CONFIG],
|
||||
[if test -n "$$1"; then
|
||||
pkg_cv_[]$1="$$1"
|
||||
elif test -n "$PKG_CONFIG"; then
|
||||
PKG_CHECK_EXISTS([$3],
|
||||
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
|
||||
test "x$?" != "x0" && pkg_failed=yes ],
|
||||
[pkg_failed=yes])
|
||||
else
|
||||
pkg_failed=untried
|
||||
fi[]dnl
|
||||
])# _PKG_CONFIG
|
||||
|
||||
# _PKG_SHORT_ERRORS_SUPPORTED
|
||||
# -----------------------------
|
||||
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
||||
_pkg_short_errors_supported=yes
|
||||
else
|
||||
_pkg_short_errors_supported=no
|
||||
fi[]dnl
|
||||
])# _PKG_SHORT_ERRORS_SUPPORTED
|
||||
|
||||
|
||||
# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
||||
# [ACTION-IF-NOT-FOUND])
|
||||
#
|
||||
#
|
||||
# Note that if there is a possibility the first call to
|
||||
# PKG_CHECK_MODULES might not happen, you should be sure to include an
|
||||
# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
|
||||
#
|
||||
#
|
||||
# --------------------------------------------------------------
|
||||
AC_DEFUN([PKG_CHECK_MODULES],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
|
||||
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
|
||||
|
||||
pkg_failed=no
|
||||
AC_MSG_CHECKING([for $1])
|
||||
|
||||
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
|
||||
_PKG_CONFIG([$1][_LIBS], [libs], [$2])
|
||||
|
||||
m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
|
||||
and $1[]_LIBS to avoid the need to call pkg-config.
|
||||
See the pkg-config man page for more details.])
|
||||
|
||||
if test $pkg_failed = yes; then
|
||||
AC_MSG_RESULT([no])
|
||||
_PKG_SHORT_ERRORS_SUPPORTED
|
||||
if test $_pkg_short_errors_supported = yes; then
|
||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
|
||||
else
|
||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
|
||||
fi
|
||||
# Put the nasty error message in config.log where it belongs
|
||||
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
|
||||
|
||||
m4_default([$4], [AC_MSG_ERROR(
|
||||
[Package requirements ($2) were not met:
|
||||
|
||||
$$1_PKG_ERRORS
|
||||
|
||||
Consider adjusting the PKG_CONFIG_PATH environment variable if you
|
||||
installed software in a non-standard prefix.
|
||||
|
||||
_PKG_TEXT])[]dnl
|
||||
])
|
||||
elif test $pkg_failed = untried; then
|
||||
AC_MSG_RESULT([no])
|
||||
m4_default([$4], [AC_MSG_FAILURE(
|
||||
[The pkg-config script could not be found or is too old. Make sure it
|
||||
is in your PATH or set the PKG_CONFIG environment variable to the full
|
||||
path to pkg-config.
|
||||
|
||||
_PKG_TEXT
|
||||
|
||||
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
|
||||
])
|
||||
else
|
||||
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
|
||||
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
|
||||
AC_MSG_RESULT([yes])
|
||||
$3
|
||||
fi[]dnl
|
||||
])# PKG_CHECK_MODULES
|
||||
|
||||
|
||||
# PKG_INSTALLDIR(DIRECTORY)
|
||||
# -------------------------
|
||||
# Substitutes the variable pkgconfigdir as the location where a module
|
||||
# should install pkg-config .pc files. By default the directory is
|
||||
# $libdir/pkgconfig, but the default can be changed by passing
|
||||
# DIRECTORY. The user can override through the --with-pkgconfigdir
|
||||
# parameter.
|
||||
AC_DEFUN([PKG_INSTALLDIR],
|
||||
[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
|
||||
m4_pushdef([pkg_description],
|
||||
[pkg-config installation directory @<:@]pkg_default[@:>@])
|
||||
AC_ARG_WITH([pkgconfigdir],
|
||||
[AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
|
||||
[with_pkgconfigdir=]pkg_default)
|
||||
AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
|
||||
m4_popdef([pkg_default])
|
||||
m4_popdef([pkg_description])
|
||||
]) dnl PKG_INSTALLDIR
|
||||
|
||||
|
||||
# PKG_NOARCH_INSTALLDIR(DIRECTORY)
|
||||
# -------------------------
|
||||
# Substitutes the variable noarch_pkgconfigdir as the location where a
|
||||
# module should install arch-independent pkg-config .pc files. By
|
||||
# default the directory is $datadir/pkgconfig, but the default can be
|
||||
# changed by passing DIRECTORY. The user can override through the
|
||||
# --with-noarch-pkgconfigdir parameter.
|
||||
AC_DEFUN([PKG_NOARCH_INSTALLDIR],
|
||||
[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
|
||||
m4_pushdef([pkg_description],
|
||||
[pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
|
||||
AC_ARG_WITH([noarch-pkgconfigdir],
|
||||
[AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
|
||||
[with_noarch_pkgconfigdir=]pkg_default)
|
||||
AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
|
||||
m4_popdef([pkg_default])
|
||||
m4_popdef([pkg_description])
|
||||
]) dnl PKG_NOARCH_INSTALLDIR
|
||||
|
||||
|
||||
# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
|
||||
# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||
# -------------------------------------------
|
||||
# Retrieves the value of the pkg-config variable for the given module.
|
||||
AC_DEFUN([PKG_CHECK_VAR],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||
AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
|
||||
|
||||
_PKG_CONFIG([$1], [variable="][$3]["], [$2])
|
||||
AS_VAR_COPY([$1], [pkg_cv_][$1])
|
||||
|
||||
AS_VAR_IF([$1], [""], [$5], [$4])dnl
|
||||
])# PKG_CHECK_VAR
|
1
mime.types
Symbolic link
1
mime.types
Symbolic link
|
@ -0,0 +1 @@
|
|||
tgl/mime.types
|
99
msglog.c
99
msglog.c
|
@ -19,6 +19,7 @@
|
|||
*/
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <debug.h>
|
||||
#include "telegram-purple.h"
|
||||
|
||||
/*
|
||||
|
@ -72,101 +73,3 @@ void fatal(const char* format, ...) {
|
|||
info ("\n");
|
||||
}
|
||||
|
||||
const char *print_flags (const char **names, int len, unsigned flags) {
|
||||
static char *text = NULL;
|
||||
if (text) {
|
||||
g_free (text);
|
||||
text = NULL;
|
||||
}
|
||||
int i;
|
||||
for (i = 0; i < len; i ++) {
|
||||
if (flags & 1) {
|
||||
char *new;
|
||||
if (text) {
|
||||
new = g_strconcat (text, " ", names[i], NULL);
|
||||
g_free (text);
|
||||
} else {
|
||||
new = g_strdup (names[i]);
|
||||
}
|
||||
text = new;
|
||||
}
|
||||
flags >>= 1;
|
||||
}
|
||||
return (const char*)text;
|
||||
}
|
||||
|
||||
const char *print_flags_peer (unsigned flags) {
|
||||
const char *names[] = {
|
||||
"CREATED",
|
||||
"HAS_PHOTO",
|
||||
"DELETED",
|
||||
"OFFICIAL",
|
||||
"KICKED",
|
||||
"ADMIN",
|
||||
"CREATOR",
|
||||
"LEFT",
|
||||
"DEACTIVATED"
|
||||
};
|
||||
return print_flags (names, 9, flags);
|
||||
}
|
||||
|
||||
const char *print_flags_channel (unsigned flags) {
|
||||
static char *text;
|
||||
if (text) {
|
||||
g_free (text);
|
||||
text = NULL;
|
||||
}
|
||||
const char *names[] = {
|
||||
"BROADCAST",
|
||||
"EDITOR",
|
||||
"MODERATOR",
|
||||
"MEGAGROUP"
|
||||
};
|
||||
text = g_strdup (print_flags_peer (flags));
|
||||
char *old = text;
|
||||
text = g_strconcat (text, " ", print_flags (names, 4, flags >> 16), NULL);
|
||||
g_free (old);
|
||||
return text;
|
||||
}
|
||||
|
||||
const char *print_flags_user (unsigned flags) {
|
||||
static char *text;
|
||||
if (text) {
|
||||
g_free (text);
|
||||
text = NULL;
|
||||
}
|
||||
const char *names[] = {
|
||||
"CONTACT",
|
||||
"MUTUAL_CONTACT",
|
||||
"BLOCKED",
|
||||
"SELF",
|
||||
"BOT"
|
||||
};
|
||||
text = g_strdup (print_flags_peer (flags));
|
||||
char *old = text;
|
||||
text = g_strconcat (text, " ", print_flags (names, 5, flags >> 16), NULL);
|
||||
g_free (old);
|
||||
return text;
|
||||
}
|
||||
|
||||
const char *print_flags_update (unsigned flags) {
|
||||
const char *names[] = {
|
||||
"CREATED",
|
||||
"DELETED",
|
||||
"PHONE",
|
||||
"CONTACT",
|
||||
"PHOTO",
|
||||
"BLOCKED",
|
||||
"REAL_NAME",
|
||||
"NAME",
|
||||
"REQUESTED",
|
||||
"WORKING",
|
||||
"FLAGS",
|
||||
"TITLE",
|
||||
"ADMIN",
|
||||
"MEMBERS",
|
||||
"ACCESS_HASH",
|
||||
"USERNAME"
|
||||
};
|
||||
return print_flags (names, 16, flags);
|
||||
}
|
||||
|
|
5
msglog.h
5
msglog.h
|
@ -24,7 +24,4 @@ void info(const char* format, ...);
|
|||
void warning(const char* format, ...);
|
||||
void failure(const char* format, ...);
|
||||
void fatal(const char* format, ...);
|
||||
const char *print_flags_update (unsigned update);
|
||||
const char *print_flags_channel (unsigned flags);
|
||||
const char *print_flags_peer (unsigned flags);
|
||||
const char *print_flags_user (unsigned flags);
|
||||
|
||||
|
|
1
po/.gitignore
vendored
1
po/.gitignore
vendored
|
@ -1 +0,0 @@
|
|||
/*.mo
|
11
po/LINGUAS
11
po/LINGUAS
|
@ -1,11 +0,0 @@
|
|||
bg
|
||||
cs_CZ
|
||||
de_DE
|
||||
es_AR
|
||||
fr
|
||||
it_IT
|
||||
nl
|
||||
pl_PL
|
||||
ru_RU
|
||||
sq
|
||||
uk
|
|
@ -1,6 +0,0 @@
|
|||
# This file lists translations that are too bad or incomplete for installation.
|
||||
# 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
|
|
@ -1,11 +0,0 @@
|
|||
# List of source files containing translatable strings.
|
||||
|
||||
telegram-base.c
|
||||
telegram-purple.c
|
||||
tgp-2prpl.c
|
||||
tgp-msg.c
|
||||
tgp-net.c
|
||||
tgp-request.c
|
||||
tgp-utils.c
|
||||
tgp-chat.c
|
||||
|
614
po/bg.po
614
po/bg.po
|
@ -1,614 +0,0 @@
|
|||
# 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"
|
||||
"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"
|
||||
"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-Transfer-Encoding: 8bit\n"
|
||||
"Language: bg\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ../telegram-base.c:500
|
||||
msgid "Couldn't create group"
|
||||
msgstr "Неуспешно създаване на група"
|
||||
|
||||
#: ../telegram-base.c:501
|
||||
msgid "Please select at least one other user."
|
||||
msgstr "Моля, изберете поне един друг потребител:"
|
||||
|
||||
#: ../telegram-base.c:555
|
||||
msgid "Query Failed"
|
||||
msgstr "Заявката беше неуспешна"
|
||||
|
||||
#: ../telegram-purple.c:162
|
||||
msgid "Secret chat ready."
|
||||
msgstr "Тайният разговор е готов."
|
||||
|
||||
#: ../telegram-purple.c:170
|
||||
msgid "Secret chat terminated."
|
||||
msgstr "Тайният разговор беше приключен."
|
||||
|
||||
#: ../telegram-purple.c:182
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#: ../telegram-purple.c:229
|
||||
msgid "Message marked as read."
|
||||
msgstr "Съобщението е отбелязано като прочетено."
|
||||
|
||||
#: ../telegram-purple.c:339
|
||||
#, c-format
|
||||
msgid "Invite link: %s"
|
||||
msgstr "Връзка за покана: %s"
|
||||
|
||||
#. FIXME: Can TGLCHF_MODERATOR export links?
|
||||
#: ../telegram-purple.c:350
|
||||
msgid "Creating chat link failed"
|
||||
msgstr "Създаването на връзка беше неуспешно"
|
||||
|
||||
#: ../telegram-purple.c:351
|
||||
msgid "You need to be admin of the group to do that."
|
||||
msgstr "Само администраторите на групата могат да правят това."
|
||||
|
||||
#: ../telegram-purple.c:416
|
||||
msgid "Chat joined"
|
||||
msgstr "Присъединихте се към разговора"
|
||||
|
||||
#: ../telegram-purple.c:417
|
||||
msgid "Chat added to list of chat rooms."
|
||||
msgstr "Разговорът беше добавен към списъка от стаи за разговори."
|
||||
|
||||
#: ../telegram-purple.c:443
|
||||
msgid "Start secret chat..."
|
||||
msgstr "Започване на таен разговор…"
|
||||
|
||||
#. Generate Public Link
|
||||
#: ../telegram-purple.c:450
|
||||
msgid "Invite users by link..."
|
||||
msgstr "Покана на потребители чрез връзка…"
|
||||
|
||||
#. Delete self from chat
|
||||
#: ../telegram-purple.c:458
|
||||
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
|
||||
#, 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 ""
|
||||
"Неуспешно вписване като %s: има проблем с вътрешната библиотека „tgl“. Моля,"
|
||||
" изпратете доклад за грешката, заедно с журнала."
|
||||
|
||||
#: ../telegram-purple.c:576
|
||||
msgid "Problem in tgl"
|
||||
msgstr "Проблем в „tgl“"
|
||||
|
||||
#. TRANSLATORS: Please fill in your own prefix!
|
||||
#: ../telegram-purple.c:584
|
||||
#, 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 ""
|
||||
"Неуспешно вписване като %s: телефонният код не съдържа код на страната. "
|
||||
"Номерата трябва да започват с пълния международен телефонен код на страната,"
|
||||
" например +359 за България."
|
||||
|
||||
#: ../telegram-purple.c:589
|
||||
msgid "Incomplete phone number"
|
||||
msgstr "Непълен телефонен номер"
|
||||
|
||||
#: ../telegram-purple.c:642
|
||||
msgid "Secret chat was already deleted"
|
||||
msgstr "Тайният разговор вече е изтрит"
|
||||
|
||||
#: ../telegram-purple.c:644
|
||||
msgid "Secret chat is not ready"
|
||||
msgstr "Тайният разговор не е готов"
|
||||
|
||||
#: ../telegram-purple.c:652
|
||||
msgid "Only the creator of a channel can post messages."
|
||||
msgstr "Само създателят на канала може да публикува съобщения."
|
||||
|
||||
#: ../telegram-purple.c:695
|
||||
msgid "Cannot invite buddy to chat"
|
||||
msgstr "Неуспешно канене на приятел в разговора"
|
||||
|
||||
#: ../telegram-purple.c:696
|
||||
msgid "Specified user does not exist."
|
||||
msgstr "Посоченият потребител не съществува."
|
||||
|
||||
#: ../telegram-purple.c:709
|
||||
msgid "phone no. (+ country prefix)"
|
||||
msgstr "тел. номер (+ код на страната)"
|
||||
|
||||
#. Login
|
||||
#: ../telegram-purple.c:817
|
||||
msgid "Password (two factor authentication)"
|
||||
msgstr "Парола (двустепенно удостоверяване)"
|
||||
|
||||
#: ../telegram-purple.c:822
|
||||
msgid ""
|
||||
"Fallback SMS verification\n"
|
||||
"(Helps when not using Pidgin and you aren't being prompted for the code)"
|
||||
msgstr ""
|
||||
"Резервно удостоверяване чрез КС\n"
|
||||
"(Помага, когато не използвате „Pidgin“ и от Вас не се изисква кода)"
|
||||
|
||||
#: ../telegram-purple.c:828
|
||||
msgid "always"
|
||||
msgstr "винаги"
|
||||
|
||||
#: ../telegram-purple.c:829
|
||||
msgid "never"
|
||||
msgstr "никога"
|
||||
|
||||
#: ../telegram-purple.c:830
|
||||
msgid "ask"
|
||||
msgstr "питане всеки път"
|
||||
|
||||
#: ../telegram-purple.c:832
|
||||
msgid "Accept secret chats"
|
||||
msgstr "Приемане на тайни разговори"
|
||||
|
||||
#: ../telegram-purple.c:836
|
||||
msgid "Display buddies offline after (days)"
|
||||
msgstr "Показване на приятелите извън линия след (брой дни)"
|
||||
|
||||
#: ../telegram-purple.c:840
|
||||
msgid ""
|
||||
"Don't fetch history older than (days)\n"
|
||||
"(0 for unlimited)"
|
||||
msgstr ""
|
||||
"Да не се изтегля историята, по-стара от (брой дни)\n"
|
||||
"(0 = неограничено)"
|
||||
|
||||
#. Media
|
||||
#: ../telegram-purple.c:845
|
||||
msgid "Autoload media size (kb)"
|
||||
msgstr "Размер за авто. зареждане на медийни файлове (кбит)"
|
||||
|
||||
#. Chats
|
||||
#: ../telegram-purple.c:850
|
||||
msgid "Add all group chats to buddy list"
|
||||
msgstr "Добавяне на всички групови разговори в списъка с приятели"
|
||||
|
||||
#. Read notifications
|
||||
#: ../telegram-purple.c:855
|
||||
msgid "Display notices of receipt"
|
||||
msgstr "Показване на уведомления за получаване"
|
||||
|
||||
#: ../telegram-purple.c:859
|
||||
msgid "Send notices of receipt when present"
|
||||
msgstr "Изпращане на уведомления за получаване при присъствие"
|
||||
|
||||
#: ../telegram-purple.c:884
|
||||
msgid "Telegram Protocol Plugin."
|
||||
msgstr "Добавка за протокола „Telegram“."
|
||||
|
||||
#: ../tgp-msg.c:58
|
||||
#, c-format
|
||||
msgid "%2$s created chat %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“."
|
||||
|
||||
#: ../tgp-msg.c:64
|
||||
#, c-format
|
||||
msgid "%s changed photo."
|
||||
msgstr "%s промени снимката си."
|
||||
|
||||
#: ../tgp-msg.c:67
|
||||
#, c-format
|
||||
msgid "%s deleted photo."
|
||||
msgstr "%s изтри снимка."
|
||||
|
||||
#: ../tgp-msg.c:75
|
||||
#, c-format
|
||||
msgid "%1$s added user %2$s by link."
|
||||
msgstr "%1$s добави потребителя %2$s чрез връзка."
|
||||
|
||||
#: ../tgp-msg.c:90
|
||||
#, c-format
|
||||
msgid "%2$s added user %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."
|
||||
|
||||
#: ../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 настрои брояч за самоунищожение на %1$d секунда."
|
||||
msgstr[1] "%2$s настрои брояч за самоунищожение на %1$d секунди."
|
||||
|
||||
#: ../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 отбеляза %1$d съобщение като прочетено."
|
||||
msgstr[1] "%2$s отбеляза %1$d съобщения като прочетени."
|
||||
|
||||
#: ../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 изтри %1$d съобщение."
|
||||
msgstr[1] "%2$s изтри %1$d съобщения."
|
||||
|
||||
#: ../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 направи снимка на %1$d съобщение."
|
||||
msgstr[1] "%2$s направи снимка на %1$d съобщения."
|
||||
|
||||
#: ../tgp-msg.c:162
|
||||
#, c-format
|
||||
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
|
||||
msgid "Telegram Channels"
|
||||
msgstr "Канали в Telegram"
|
||||
|
||||
#: ../tgp-msg.c:191
|
||||
msgid "Sending message failed."
|
||||
msgstr "Неуспешно изпращане на съобщението."
|
||||
|
||||
#: ../tgp-msg.c:253
|
||||
msgid "Sending image failed."
|
||||
msgstr "Неуспешно изпращане на изображениео."
|
||||
|
||||
#: ../tgp-msg.c:417
|
||||
#, 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:515
|
||||
msgid "[audio]"
|
||||
msgstr "[звук]"
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[video]"
|
||||
msgstr "[видео]"
|
||||
|
||||
#: ../tgp-msg.c:604
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message from: %s</b><br>%s"
|
||||
msgstr "<b>Препратено съобщение от: %s</b><br>%s"
|
||||
|
||||
#. FIXME: sometimes users aren't part of the response when receiving a
|
||||
#. forwarded message
|
||||
#: ../tgp-msg.c:607
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message:</b><br>%s"
|
||||
msgstr "<b>Препратено съобщение:</b><br>%s"
|
||||
|
||||
#: ../tgp-msg.c:720
|
||||
msgid "loading document or picture failed"
|
||||
msgstr "неуспешно зареждане на документ или изображение"
|
||||
|
||||
#: ../tgp-net.c:281
|
||||
msgid "Cannot connect to main server"
|
||||
msgstr "Неуспешно свързване с главния сървър"
|
||||
|
||||
#: ../tgp-net.c:322
|
||||
msgid "Cannot connect to server: Ping timeout."
|
||||
msgstr "Неуспешно свързване със сървъра. Изтече времето за изчакване."
|
||||
|
||||
#: ../tgp-net.c:365
|
||||
msgid "Lost connection to the server..."
|
||||
msgstr "Връзката със сървъра беше прекъсната…"
|
||||
|
||||
#: ../tgp-request.c:51
|
||||
msgid ""
|
||||
"Telegram wants to verify your identity. Please enter the login code that you"
|
||||
" have received via SMS."
|
||||
msgstr ""
|
||||
"Telegram иска да потвърди самоличността Ви. Моля, въведете кода за влизане, "
|
||||
"който трябва да сте получили чрез КС."
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Login code"
|
||||
msgstr "Код за влизане"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Enter login code"
|
||||
msgstr "Въведете кода за влизане"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "the code"
|
||||
msgstr "кодът"
|
||||
|
||||
#: ../tgp-request.c:54 ../tgp-request.c:104 ../tgp-request.c:198
|
||||
#: ../tgp-request.c:233 ../tgp-request.c:263
|
||||
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
|
||||
msgid "Cancel"
|
||||
msgstr "Отказ"
|
||||
|
||||
#: ../tgp-request.c:95
|
||||
msgid "Registration"
|
||||
msgstr "Регистрация"
|
||||
|
||||
#: ../tgp-request.c:96
|
||||
msgid "First name"
|
||||
msgstr "Собствено име"
|
||||
|
||||
#: ../tgp-request.c:99
|
||||
msgid "Last name"
|
||||
msgstr "Фамилия"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Register"
|
||||
msgstr "Регистриране"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Please register your phone number."
|
||||
msgstr "Моля, регистрирайте телефонния си номер"
|
||||
|
||||
#. purple_request API not available
|
||||
#: ../tgp-request.c:108
|
||||
msgid ""
|
||||
"Phone number is not registered. Please register your phone on a different "
|
||||
"client."
|
||||
msgstr ""
|
||||
"Телефонният номер не е регистриран. Моля, регистрирайте телефона си чрез "
|
||||
"друг клиент."
|
||||
|
||||
#: ../tgp-request.c:110
|
||||
msgid "Not registered"
|
||||
msgstr "Нерегистриран"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Password needed"
|
||||
msgstr "Нужна е парола"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Enter password for two factor authentication"
|
||||
msgstr "Въведете парола за двустепенно удостоверяване"
|
||||
|
||||
#: ../tgp-request.c:123
|
||||
msgid "Ok"
|
||||
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"
|
||||
msgstr "Паролата е грешна"
|
||||
|
||||
#: ../tgp-request.c:150
|
||||
#, c-format
|
||||
msgid "Accept secret chat '%s' on this device?"
|
||||
msgstr "Приемане на тайния разговор „%s“ на това устройство?"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
msgid "Secret chat"
|
||||
msgstr "Таен разговор"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
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
|
||||
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 ""
|
||||
"Поканете поне още един потребител, като посочите\n"
|
||||
" пълното му име (разполагате с авт. допълване).\n"
|
||||
"Можете да добавите повече потребители и след началото на разговора."
|
||||
|
||||
#: ../tgp-request.c:185 ../tgp-request.c:189 ../tgp-request.c:193
|
||||
msgid "Username"
|
||||
msgstr "Потребителско име"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Create group chat"
|
||||
msgstr "Създаване на групов разговор"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Invite users"
|
||||
msgstr "Канене на потребители"
|
||||
|
||||
#: ../tgp-request.c:217 ../tgp-request.c:232
|
||||
msgid "Change password"
|
||||
msgstr "Промяна на паролата"
|
||||
|
||||
#: ../tgp-request.c:219
|
||||
msgid "Current"
|
||||
msgstr "Текуща"
|
||||
|
||||
#: ../tgp-request.c:223 ../tgp-request.c:253
|
||||
msgid "Password"
|
||||
msgstr "Парола"
|
||||
|
||||
#: ../tgp-request.c:227 ../tgp-request.c:257
|
||||
msgid "Confirm"
|
||||
msgstr "Потвърждаване"
|
||||
|
||||
#: ../tgp-request.c:251 ../tgp-request.c:262
|
||||
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
|
||||
msgid "Invalid phone number"
|
||||
msgstr "Грешен телефонен номер"
|
||||
|
||||
#: ../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 ""
|
||||
"Моля, въвеждайте само цифри във формата за международен телефонен номер: знака +, следван от кода на страната и телефонния номер.\n"
|
||||
"Не използвайте други специални знаци."
|
||||
|
||||
#: ../tgp-request.c:370
|
||||
msgid "Leave Chat"
|
||||
msgstr "Напускане на разговора"
|
||||
|
||||
#: ../tgp-request.c:372
|
||||
msgid "Do you want to leave this chat permantently?"
|
||||
msgstr "Наистина ли искате да напуснете този разговор завинаги?"
|
||||
|
||||
#: ../tgp-request.c:377
|
||||
msgid "Abort Secret Chat"
|
||||
msgstr "Край на тайния разговор"
|
||||
|
||||
#: ../tgp-request.c:379
|
||||
msgid "Do you want to terminate this secret chat permantently?"
|
||||
msgstr "Наистина ли искате да прекратите този таен разговор завинаги?"
|
||||
|
||||
#: ../tgp-request.c:384
|
||||
msgid "Delete Contact"
|
||||
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 "Напускане на канала"
|
||||
|
||||
#: ../tgp-request.c:403
|
||||
msgid "Do you want to leave this channel?"
|
||||
msgstr "Наистина ли искате да напуснете този канал?"
|
||||
|
||||
#. This should be the language's timestamp format. This is preceded by a
|
||||
#. colon.
|
||||
#: ../tgp-utils.c:27
|
||||
msgid "%d.%m.%Y %H:%M"
|
||||
msgstr "%d.%m.%Y %H:%M"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:48
|
||||
msgid "recently"
|
||||
msgstr "наскоро"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:52
|
||||
msgid "last week"
|
||||
msgstr "последната седмица"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:56
|
||||
msgid "last month"
|
||||
msgstr "последния месец"
|
||||
|
||||
#. This is preceded by a colon. It refers to a point on time.
|
||||
#: ../tgp-utils.c:60
|
||||
msgid "unknown"
|
||||
msgstr "неизвестно"
|
||||
|
||||
#: ../tgp-chat.c:108 ../tgp-chat.c:582
|
||||
msgid "Telegram Chats"
|
||||
msgstr "Разговори в Telegram"
|
||||
|
||||
#: ../tgp-chat.c:113
|
||||
msgid "You have already left this chat."
|
||||
msgstr "Вече сте напуснали този разговор"
|
||||
|
||||
#: ../tgp-chat.c:224
|
||||
msgid "Subject:"
|
||||
msgstr "Тема:"
|
||||
|
||||
#: ../tgp-chat.c:230
|
||||
msgid "Invite link:"
|
||||
msgstr "Връзка за покана:"
|
||||
|
||||
#: ../tgp-chat.c:236
|
||||
msgid "Chat ID:"
|
||||
msgstr "Ид. на разговора:"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Supergroup"
|
||||
msgstr "Надгрупа"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Channel"
|
||||
msgstr "Канал"
|
||||
|
||||
#: ../tgp-chat.c:345
|
||||
msgid "Group"
|
||||
msgstr "Група"
|
||||
|
||||
#: ../tgp-chat.c:367
|
||||
msgid "Users in chat"
|
||||
msgstr "Потребители в разговора"
|
||||
|
||||
#: ../tgp-chat.c:370
|
||||
msgid "Type"
|
||||
msgstr "Вид"
|
616
po/cs_CZ.po
616
po/cs_CZ.po
|
@ -1,616 +0,0 @@
|
|||
# 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"
|
||||
"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"
|
||||
"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-Transfer-Encoding: 8bit\n"
|
||||
"Language: cs_CZ\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
|
||||
#: ../telegram-base.c:500
|
||||
msgid "Couldn't create group"
|
||||
msgstr "Nelze vytvořit skupinu"
|
||||
|
||||
#: ../telegram-base.c:501
|
||||
msgid "Please select at least one other user."
|
||||
msgstr "Prosím vyberte alespoň jednoho dalšího uživatele."
|
||||
|
||||
#: ../telegram-base.c:555
|
||||
msgid "Query Failed"
|
||||
msgstr "Dotaz selhal"
|
||||
|
||||
#: ../telegram-purple.c:162
|
||||
msgid "Secret chat ready."
|
||||
msgstr "Tajný chat připraven."
|
||||
|
||||
#: ../telegram-purple.c:170
|
||||
msgid "Secret chat terminated."
|
||||
msgstr "Tajný chat ukončen."
|
||||
|
||||
#: ../telegram-purple.c:182
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#: ../telegram-purple.c:229
|
||||
msgid "Message marked as read."
|
||||
msgstr "Zpráva označena jako přečtená."
|
||||
|
||||
#: ../telegram-purple.c:339
|
||||
#, c-format
|
||||
msgid "Invite link: %s"
|
||||
msgstr "Odkaz pozvánky: %s"
|
||||
|
||||
#. FIXME: Can TGLCHF_MODERATOR export links?
|
||||
#: ../telegram-purple.c:350
|
||||
msgid "Creating chat link failed"
|
||||
msgstr "Vytváření odkazu pro chat selhalo"
|
||||
|
||||
#: ../telegram-purple.c:351
|
||||
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
|
||||
msgid "Chat joined"
|
||||
msgstr "Připojeno k chatu"
|
||||
|
||||
#: ../telegram-purple.c:417
|
||||
msgid "Chat added to list of chat rooms."
|
||||
msgstr "Chat přidán do seznamu chatovacích místností"
|
||||
|
||||
#: ../telegram-purple.c:443
|
||||
msgid "Start secret chat..."
|
||||
msgstr "Začít tajný chat..."
|
||||
|
||||
#. Generate Public Link
|
||||
#: ../telegram-purple.c:450
|
||||
msgid "Invite users by link..."
|
||||
msgstr "Pozvat uživatele odkazem..."
|
||||
|
||||
#. Delete self from chat
|
||||
#: ../telegram-purple.c:458
|
||||
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
|
||||
#, 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 ""
|
||||
"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
|
||||
msgid "Problem in tgl"
|
||||
msgstr "Problém v tgl"
|
||||
|
||||
#. TRANSLATORS: Please fill in your own prefix!
|
||||
#: ../telegram-purple.c:584
|
||||
#, 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 ""
|
||||
"Nelze se přihlásit jako %s: telefonnímu číslu chybí předčíslí země. Čísla "
|
||||
"musí začínat s plným mezinárodním předčíslím, např. +420 pro Českou "
|
||||
"republiku."
|
||||
|
||||
#: ../telegram-purple.c:589
|
||||
msgid "Incomplete phone number"
|
||||
msgstr "Nekompletní telefonní číslo"
|
||||
|
||||
#: ../telegram-purple.c:642
|
||||
msgid "Secret chat was already deleted"
|
||||
msgstr "Tajný chat byl již smazán"
|
||||
|
||||
#: ../telegram-purple.c:644
|
||||
msgid "Secret chat is not ready"
|
||||
msgstr "Tajný chat není připraven"
|
||||
|
||||
#: ../telegram-purple.c:652
|
||||
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
|
||||
msgid "Cannot invite buddy to chat"
|
||||
msgstr "Nelze pozvat kamaráda do chatu"
|
||||
|
||||
#: ../telegram-purple.c:696
|
||||
msgid "Specified user does not exist."
|
||||
msgstr "Zadaný uživatel neexistuje."
|
||||
|
||||
#: ../telegram-purple.c:709
|
||||
msgid "phone no. (+ country prefix)"
|
||||
msgstr "telefonní číslo (+ předčíslí země)"
|
||||
|
||||
#. Login
|
||||
#: ../telegram-purple.c:817
|
||||
msgid "Password (two factor authentication)"
|
||||
msgstr "Heslo (dvoufaktorová autentizace)"
|
||||
|
||||
#: ../telegram-purple.c:822
|
||||
msgid ""
|
||||
"Fallback SMS verification\n"
|
||||
"(Helps when not using Pidgin and you aren't being prompted for the code)"
|
||||
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"
|
||||
|
||||
#: ../telegram-purple.c:829
|
||||
msgid "never"
|
||||
msgstr "nikdy"
|
||||
|
||||
#: ../telegram-purple.c:830
|
||||
msgid "ask"
|
||||
msgstr "zeptat se"
|
||||
|
||||
#: ../telegram-purple.c:832
|
||||
msgid "Accept secret chats"
|
||||
msgstr "Přijímat tajné chaty"
|
||||
|
||||
#: ../telegram-purple.c:836
|
||||
msgid "Display buddies offline after (days)"
|
||||
msgstr "Zobrazit odpojené kamarády po (dny)"
|
||||
|
||||
#: ../telegram-purple.c:840
|
||||
msgid ""
|
||||
"Don't fetch history older than (days)\n"
|
||||
"(0 for unlimited)"
|
||||
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)"
|
||||
|
||||
#. Chats
|
||||
#: ../telegram-purple.c:850
|
||||
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
|
||||
msgid "Display notices of receipt"
|
||||
msgstr "Zobrazit oznámení o doručení"
|
||||
|
||||
#: ../telegram-purple.c:859
|
||||
msgid "Send notices of receipt when present"
|
||||
msgstr "V přítomnosti zasílat oznámení o doručení"
|
||||
|
||||
#: ../telegram-purple.c:884
|
||||
msgid "Telegram Protocol Plugin."
|
||||
msgstr "Zásuvný modul protokolu Telegram."
|
||||
|
||||
#: ../tgp-msg.c:58
|
||||
#, c-format
|
||||
msgid "%2$s created chat %1$s."
|
||||
msgstr "%2$s vytvořil(a) chat %1$s."
|
||||
|
||||
#: ../tgp-msg.c:61
|
||||
#, c-format
|
||||
msgid "%2$s changed title to %1$s."
|
||||
msgstr "%2$s změnil(a) titulek na %1$s."
|
||||
|
||||
#: ../tgp-msg.c:64
|
||||
#, c-format
|
||||
msgid "%s changed photo."
|
||||
msgstr "%s změnil(a) fotografii."
|
||||
|
||||
#: ../tgp-msg.c:67
|
||||
#, c-format
|
||||
msgid "%s deleted photo."
|
||||
msgstr "%s smazal(a) fotografii."
|
||||
|
||||
#: ../tgp-msg.c:75
|
||||
#, c-format
|
||||
msgid "%1$s added user %2$s by link."
|
||||
msgstr "%1$s přidal(a) uživatele %2$s odkazem."
|
||||
|
||||
#: ../tgp-msg.c:90
|
||||
#, c-format
|
||||
msgid "%2$s added user %1$s."
|
||||
msgstr "%2$s přidal(a) uživatele %1$s."
|
||||
|
||||
#: ../tgp-msg.c:114 ../tgp-msg.c:131
|
||||
#, c-format
|
||||
msgid "%2$s deleted user %1$s."
|
||||
msgstr "%2$s smazal(a) uživatele %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 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."
|
||||
|
||||
#: ../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 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é."
|
||||
|
||||
#: ../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 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."
|
||||
|
||||
#: ../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 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."
|
||||
|
||||
#: ../tgp-msg.c:162
|
||||
#, c-format
|
||||
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
|
||||
msgid "Telegram Channels"
|
||||
msgstr "Kanály Telegramu"
|
||||
|
||||
#: ../tgp-msg.c:191
|
||||
msgid "Sending message failed."
|
||||
msgstr "Odeslání zprávy selhalo."
|
||||
|
||||
#: ../tgp-msg.c:253
|
||||
msgid "Sending image failed."
|
||||
msgstr "Odeslání obrázku selhalo."
|
||||
|
||||
#: ../tgp-msg.c:417
|
||||
#, 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:515
|
||||
msgid "[audio]"
|
||||
msgstr "[audio]"
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[video]"
|
||||
msgstr "[video]"
|
||||
|
||||
#: ../tgp-msg.c:604
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message from: %s</b><br>%s"
|
||||
msgstr "<b>Zpráva přeposlaná od:%s</b><br>%s"
|
||||
|
||||
#. FIXME: sometimes users aren't part of the response when receiving a
|
||||
#. forwarded message
|
||||
#: ../tgp-msg.c:607
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message:</b><br>%s"
|
||||
msgstr "<b>Přeposlaná zpráva:</b><br>%s"
|
||||
|
||||
#: ../tgp-msg.c:720
|
||||
msgid "loading document or picture failed"
|
||||
msgstr "nahrávání dokumentu nebo obrázku sehlalo"
|
||||
|
||||
#: ../tgp-net.c:281
|
||||
msgid "Cannot connect to main server"
|
||||
msgstr "Nelze se připojit k hlavnímu serveru"
|
||||
|
||||
#: ../tgp-net.c:322
|
||||
msgid "Cannot connect to server: Ping timeout."
|
||||
msgstr "Nelze se připojit k serveru: Vypršel časový limit pingu"
|
||||
|
||||
#: ../tgp-net.c:365
|
||||
msgid "Lost connection to the server..."
|
||||
msgstr "Ztraceno spojení se serverem..."
|
||||
|
||||
#: ../tgp-request.c:51
|
||||
msgid ""
|
||||
"Telegram wants to verify your identity. Please enter the login code that you"
|
||||
" have received via SMS."
|
||||
msgstr ""
|
||||
"Telegram potřebuje ověřit identitu. Prosím zadejte přihlašovací kód, který "
|
||||
"jste obdrželi v SMS."
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Login code"
|
||||
msgstr "Přihlašovací kód"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Enter login code"
|
||||
msgstr "Zadejte přihlašovací kód"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "the code"
|
||||
msgstr "kód"
|
||||
|
||||
#: ../tgp-request.c:54 ../tgp-request.c:104 ../tgp-request.c:198
|
||||
#: ../tgp-request.c:233 ../tgp-request.c:263
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
|
||||
#: ../tgp-request.c:55 ../tgp-request.c:104 ../tgp-request.c:123
|
||||
#: ../tgp-request.c:199 ../tgp-request.c:234 ../tgp-request.c:264
|
||||
msgid "Cancel"
|
||||
msgstr "Zrušit"
|
||||
|
||||
#: ../tgp-request.c:95
|
||||
msgid "Registration"
|
||||
msgstr "Registrace"
|
||||
|
||||
#: ../tgp-request.c:96
|
||||
msgid "First name"
|
||||
msgstr "Jméno"
|
||||
|
||||
#: ../tgp-request.c:99
|
||||
msgid "Last name"
|
||||
msgstr "Příjmení"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Register"
|
||||
msgstr "Registrovat"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Please register your phone number."
|
||||
msgstr "Prosím zaregistrujte své telefonní číslo."
|
||||
|
||||
#. purple_request API not available
|
||||
#: ../tgp-request.c:108
|
||||
msgid ""
|
||||
"Phone number is not registered. Please register your phone on a different "
|
||||
"client."
|
||||
msgstr ""
|
||||
"Telefonní číslo není zaregistrované. Prosím zaregistrujte své telefonní "
|
||||
"číslo v jiné aplikaci."
|
||||
|
||||
#: ../tgp-request.c:110
|
||||
msgid "Not registered"
|
||||
msgstr "Neregistrován"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Password needed"
|
||||
msgstr "Vyžadováno heslo"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Enter password for two factor authentication"
|
||||
msgstr "Zadejte heslo pro dvoufaktorovou autentizaci"
|
||||
|
||||
#: ../tgp-request.c:123
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: ../tgp-request.c:125
|
||||
msgid ""
|
||||
"No password set for two factor authentication. Please enter it in the "
|
||||
"extended settings."
|
||||
msgstr ""
|
||||
"Není zadáno heslo pro dvoufaktorovou autentizaci. Prosím zadejte jej v "
|
||||
"pokročilém nastavení."
|
||||
|
||||
#: ../tgp-request.c:127
|
||||
msgid "Password invalid"
|
||||
msgstr "Neplatné heslo"
|
||||
|
||||
#: ../tgp-request.c:150
|
||||
#, c-format
|
||||
msgid "Accept secret chat '%s' on this device?"
|
||||
msgstr "Přijmout tajný chat '%s' na tomto zařízení?"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
msgid "Secret chat"
|
||||
msgstr "Tajný chat"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
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 ""
|
||||
"Tajný chat může mít pouze jeden koncový bod. Pokud přijmete tajný chat na "
|
||||
"tomto zařízení, zprávy nebudou dostupné nikde jinde. Pokud odmítnete, můžete"
|
||||
" stále přijmout chat na jiném zařízení."
|
||||
|
||||
#: ../tgp-request.c:182
|
||||
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 ""
|
||||
"Pozvěte minimálně jednoho dalšího uživatele tím,\n"
|
||||
"že zadáte jeho celé jméno (automatické doplňování dostupné).\n"
|
||||
"Můžete přidat více uživatelů po té, co je chat vytvořen."
|
||||
|
||||
#: ../tgp-request.c:185 ../tgp-request.c:189 ../tgp-request.c:193
|
||||
msgid "Username"
|
||||
msgstr "Uživatelské jméno"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Create group chat"
|
||||
msgstr "Vytvořit skupinový chat"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Invite users"
|
||||
msgstr "Pozvat uživatele"
|
||||
|
||||
#: ../tgp-request.c:217 ../tgp-request.c:232
|
||||
msgid "Change password"
|
||||
msgstr "Změnit heslo"
|
||||
|
||||
#: ../tgp-request.c:219
|
||||
msgid "Current"
|
||||
msgstr "Aktuální"
|
||||
|
||||
#: ../tgp-request.c:223 ../tgp-request.c:253
|
||||
msgid "Password"
|
||||
msgstr "Heslo"
|
||||
|
||||
#: ../tgp-request.c:227 ../tgp-request.c:257
|
||||
msgid "Confirm"
|
||||
msgstr "Potvrdit"
|
||||
|
||||
#: ../tgp-request.c:251 ../tgp-request.c:262
|
||||
msgid "New password"
|
||||
msgstr "Nové heslo"
|
||||
|
||||
#. 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
|
||||
msgid "Invalid phone number"
|
||||
msgstr "Neplatné telefonní číslo"
|
||||
|
||||
#: ../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 ""
|
||||
"Prosím zadejte pouze čísla v mezinárodním telefonním formátu, počáteční + následované mezinárodním předčíslím a telefonním číslem.\n"
|
||||
"Nepoužívejte žádné jiné speciální znaky."
|
||||
|
||||
#: ../tgp-request.c:370
|
||||
msgid "Leave Chat"
|
||||
msgstr "Opustit chat"
|
||||
|
||||
#: ../tgp-request.c:372
|
||||
msgid "Do you want to leave this chat permantently?"
|
||||
msgstr "Chcete tento chat opustit trvale?"
|
||||
|
||||
#: ../tgp-request.c:377
|
||||
msgid "Abort Secret Chat"
|
||||
msgstr "Ukončit tajný chat"
|
||||
|
||||
#: ../tgp-request.c:379
|
||||
msgid "Do you want to terminate this secret chat permantently?"
|
||||
msgstr "Chcete ukončit tento tajný chat trvale?"
|
||||
|
||||
#: ../tgp-request.c:384
|
||||
msgid "Delete Contact"
|
||||
msgstr "Smazat kontant"
|
||||
|
||||
#: ../tgp-request.c:386
|
||||
msgid "Do you want to remove this user from your global contact list?"
|
||||
msgstr "Chcete tohoto uživatele odstranit ze seznamu kontaktů?"
|
||||
|
||||
#: ../tgp-request.c:401
|
||||
msgid "Leave Channel"
|
||||
msgstr "Opustit kanál"
|
||||
|
||||
#: ../tgp-request.c:403
|
||||
msgid "Do you want to leave this channel?"
|
||||
msgstr "Chcete opustit tento kanál?"
|
||||
|
||||
#. This should be the language's timestamp format. This is preceded by a
|
||||
#. colon.
|
||||
#: ../tgp-utils.c:27
|
||||
msgid "%d.%m.%Y %H:%M"
|
||||
msgstr "%d.%m.%Y %H:%M"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:48
|
||||
msgid "recently"
|
||||
msgstr "nedávno"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:52
|
||||
msgid "last week"
|
||||
msgstr "poslední týden"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:56
|
||||
msgid "last month"
|
||||
msgstr "poslední měsíc"
|
||||
|
||||
#. This is preceded by a colon. It refers to a point on time.
|
||||
#: ../tgp-utils.c:60
|
||||
msgid "unknown"
|
||||
msgstr "neznámé"
|
||||
|
||||
#: ../tgp-chat.c:108 ../tgp-chat.c:582
|
||||
msgid "Telegram Chats"
|
||||
msgstr "Chaty Telegramu"
|
||||
|
||||
#: ../tgp-chat.c:113
|
||||
msgid "You have already left this chat."
|
||||
msgstr "Již jste tento chat opistili."
|
||||
|
||||
#: ../tgp-chat.c:224
|
||||
msgid "Subject:"
|
||||
msgstr "Předmět:"
|
||||
|
||||
#: ../tgp-chat.c:230
|
||||
msgid "Invite link:"
|
||||
msgstr "Odkaz pozvánky:"
|
||||
|
||||
#: ../tgp-chat.c:236
|
||||
msgid "Chat ID:"
|
||||
msgstr "ID Chatu:"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Supergroup"
|
||||
msgstr "Superskupina"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Channel"
|
||||
msgstr "Kanál"
|
||||
|
||||
#: ../tgp-chat.c:345
|
||||
msgid "Group"
|
||||
msgstr "Skupina"
|
||||
|
||||
#: ../tgp-chat.c:367
|
||||
msgid "Users in chat"
|
||||
msgstr "Uživatelé v chatu"
|
||||
|
||||
#: ../tgp-chat.c:370
|
||||
msgid "Type"
|
||||
msgstr "Typ"
|
588
po/da.po
588
po/da.po
|
@ -1,588 +0,0 @@
|
|||
# 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"
|
||||
"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"
|
||||
"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-Transfer-Encoding: 8bit\n"
|
||||
"Language: da\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ../telegram-base.c:500
|
||||
msgid "Couldn't create group"
|
||||
msgstr "Kunne ikke lave gruppe"
|
||||
|
||||
#: ../telegram-base.c:501
|
||||
msgid "Please select at least one other user."
|
||||
msgstr "Vælg mindst én anden bruger."
|
||||
|
||||
#: ../telegram-base.c:555
|
||||
msgid "Query Failed"
|
||||
msgstr "Forespørgsel fejlede"
|
||||
|
||||
#: ../telegram-purple.c:162
|
||||
msgid "Secret chat ready."
|
||||
msgstr "Hemmelig chat klar."
|
||||
|
||||
#: ../telegram-purple.c:170
|
||||
msgid "Secret chat terminated."
|
||||
msgstr "Hemmelig chat afsluttet."
|
||||
|
||||
#: ../telegram-purple.c:182
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#: ../telegram-purple.c:229
|
||||
msgid "Message marked as read."
|
||||
msgstr "Besked markeret som læst."
|
||||
|
||||
#: ../telegram-purple.c:339
|
||||
#, c-format
|
||||
msgid "Invite link: %s"
|
||||
msgstr "Invitationslink: %s"
|
||||
|
||||
#. FIXME: Can TGLCHF_MODERATOR export links?
|
||||
#: ../telegram-purple.c:350
|
||||
msgid "Creating chat link failed"
|
||||
msgstr "Oprettelse af chatlink fejlede"
|
||||
|
||||
#: ../telegram-purple.c:351
|
||||
msgid "You need to be admin of the group to do that."
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:416
|
||||
msgid "Chat joined"
|
||||
msgstr "Chat tilsluttet"
|
||||
|
||||
#: ../telegram-purple.c:417
|
||||
msgid "Chat added to list of chat rooms."
|
||||
msgstr "Chat tilføjet listen af chatrum."
|
||||
|
||||
#: ../telegram-purple.c:443
|
||||
msgid "Start secret chat..."
|
||||
msgstr "Start hemmelig chat..."
|
||||
|
||||
#. Generate Public Link
|
||||
#: ../telegram-purple.c:450
|
||||
msgid "Invite users by link..."
|
||||
msgstr "Invitér brugere med link..."
|
||||
|
||||
#. Delete self from chat
|
||||
#: ../telegram-purple.c:458
|
||||
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
|
||||
#, 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
|
||||
msgid "Problem in tgl"
|
||||
msgstr "Problem i tgl"
|
||||
|
||||
#. TRANSLATORS: Please fill in your own prefix!
|
||||
#: ../telegram-purple.c:584
|
||||
#, 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
|
||||
msgid "Incomplete phone number"
|
||||
msgstr "Ugyldigt telefonnummer"
|
||||
|
||||
#: ../telegram-purple.c:642
|
||||
msgid "Secret chat was already deleted"
|
||||
msgstr "Hemmelig chat er allerede slettet"
|
||||
|
||||
#: ../telegram-purple.c:644
|
||||
msgid "Secret chat is not ready"
|
||||
msgstr "Hemmelig chat er ikke klar"
|
||||
|
||||
#: ../telegram-purple.c:652
|
||||
msgid "Only the creator of a channel can post messages."
|
||||
msgstr "Kun den der opretter en kanal kan skrive beskeder."
|
||||
|
||||
#: ../telegram-purple.c:695
|
||||
msgid "Cannot invite buddy to chat"
|
||||
msgstr "Kan ikke invitere ven til chat"
|
||||
|
||||
#: ../telegram-purple.c:696
|
||||
msgid "Specified user does not exist."
|
||||
msgstr "Angivet bruger eksisterer ikke."
|
||||
|
||||
#: ../telegram-purple.c:709
|
||||
msgid "phone no. (+ country prefix)"
|
||||
msgstr "Telefon nr. (+ landekode)"
|
||||
|
||||
#. Login
|
||||
#: ../telegram-purple.c:817
|
||||
msgid "Password (two factor authentication)"
|
||||
msgstr "Kodeord (to-vejs godkendelse)"
|
||||
|
||||
#: ../telegram-purple.c:822
|
||||
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"
|
||||
|
||||
#: ../telegram-purple.c:829
|
||||
msgid "never"
|
||||
msgstr "aldrig"
|
||||
|
||||
#: ../telegram-purple.c:830
|
||||
msgid "ask"
|
||||
msgstr "spørg"
|
||||
|
||||
#: ../telegram-purple.c:832
|
||||
msgid "Accept secret chats"
|
||||
msgstr "Acceptér hemmelige chats"
|
||||
|
||||
#: ../telegram-purple.c:836
|
||||
msgid "Display buddies offline after (days)"
|
||||
msgstr "Vis venner som offline efter (dage)"
|
||||
|
||||
#: ../telegram-purple.c:840
|
||||
msgid ""
|
||||
"Don't fetch history older than (days)\n"
|
||||
"(0 for unlimited)"
|
||||
msgstr ""
|
||||
"Hent ikke historie ældre end (dage)\n"
|
||||
"(0 for ubegrænset)"
|
||||
|
||||
#. Media
|
||||
#: ../telegram-purple.c:845
|
||||
msgid "Autoload media size (kb)"
|
||||
msgstr ""
|
||||
|
||||
#. Chats
|
||||
#: ../telegram-purple.c:850
|
||||
msgid "Add all group chats to buddy list"
|
||||
msgstr ""
|
||||
|
||||
#. Read notifications
|
||||
#: ../telegram-purple.c:855
|
||||
msgid "Display notices of receipt"
|
||||
msgstr "Vis modtagelseskvittering"
|
||||
|
||||
#: ../telegram-purple.c:859
|
||||
msgid "Send notices of receipt when present"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:884
|
||||
msgid "Telegram Protocol Plugin."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:58
|
||||
#, c-format
|
||||
msgid "%2$s created chat %1$s."
|
||||
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."
|
||||
|
||||
#: ../tgp-msg.c:64
|
||||
#, c-format
|
||||
msgid "%s changed photo."
|
||||
msgstr "%s ændrede foto."
|
||||
|
||||
#: ../tgp-msg.c:67
|
||||
#, c-format
|
||||
msgid "%s deleted photo."
|
||||
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."
|
||||
|
||||
#: ../tgp-msg.c:90
|
||||
#, c-format
|
||||
msgid "%2$s added user %1$s."
|
||||
msgstr "%2$s tilføjede bruger %1$s."
|
||||
|
||||
#: ../tgp-msg.c:114 ../tgp-msg.c:131
|
||||
#, c-format
|
||||
msgid "%2$s deleted user %1$s."
|
||||
msgstr "%2$s slettede bruger %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] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../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] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../tgp-msg.c:150
|
||||
#, c-format
|
||||
msgid "%2$s deleted %1$d message."
|
||||
msgid_plural "%2$s deleted %1$d messages."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../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] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../tgp-msg.c:162
|
||||
#, c-format
|
||||
msgid "Channel %1$s created"
|
||||
msgstr ""
|
||||
|
||||
#. FIXME: check if this makes sense
|
||||
#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:576
|
||||
msgid "Telegram Channels"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:191
|
||||
msgid "Sending message failed."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:253
|
||||
msgid "Sending image failed."
|
||||
msgstr "Afsendelse af billede fejlede."
|
||||
|
||||
#: ../tgp-msg.c:417
|
||||
#, c-format
|
||||
msgid "%s sent a sticker."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:463
|
||||
msgid "failed loading message"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:498
|
||||
msgid "[animation]"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[audio]"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[video]"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:604
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message from: %s</b><br>%s"
|
||||
msgstr ""
|
||||
|
||||
#. FIXME: sometimes users aren't part of the response when receiving a
|
||||
#. forwarded message
|
||||
#: ../tgp-msg.c:607
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message:</b><br>%s"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:720
|
||||
msgid "loading document or picture failed"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-net.c:281
|
||||
msgid "Cannot connect to main server"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-net.c:322
|
||||
msgid "Cannot connect to server: Ping timeout."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-net.c:365
|
||||
msgid "Lost connection to the server..."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:51
|
||||
msgid ""
|
||||
"Telegram wants to verify your identity. Please enter the login code that you"
|
||||
" have received via SMS."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Login code"
|
||||
msgstr "Log ind kode"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Enter login code"
|
||||
msgstr "Indtast log ind kode"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "the code"
|
||||
msgstr "koden"
|
||||
|
||||
#: ../tgp-request.c:54 ../tgp-request.c:104 ../tgp-request.c:198
|
||||
#: ../tgp-request.c:233 ../tgp-request.c:263
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
|
||||
#: ../tgp-request.c:55 ../tgp-request.c:104 ../tgp-request.c:123
|
||||
#: ../tgp-request.c:199 ../tgp-request.c:234 ../tgp-request.c:264
|
||||
msgid "Cancel"
|
||||
msgstr "Afbryd"
|
||||
|
||||
#: ../tgp-request.c:95
|
||||
msgid "Registration"
|
||||
msgstr "Registrering"
|
||||
|
||||
#: ../tgp-request.c:96
|
||||
msgid "First name"
|
||||
msgstr "Fornavn"
|
||||
|
||||
#: ../tgp-request.c:99
|
||||
msgid "Last name"
|
||||
msgstr "Efternavn"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Register"
|
||||
msgstr "Registrér"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Please register your phone number."
|
||||
msgstr "Registrér venligst dit telefonnummer"
|
||||
|
||||
#. purple_request API not available
|
||||
#: ../tgp-request.c:108
|
||||
msgid ""
|
||||
"Phone number is not registered. Please register your phone on a different "
|
||||
"client."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:110
|
||||
msgid "Not registered"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Password needed"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Enter password for two factor authentication"
|
||||
msgstr "Indtast kodeord til to-vejs godkendelse"
|
||||
|
||||
#: ../tgp-request.c:123
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:125
|
||||
msgid ""
|
||||
"No password set for two factor authentication. Please enter it in the "
|
||||
"extended settings."
|
||||
msgstr ""
|
||||
"Intet kodeord sat til to-vejs godkendelse. Indtast det venligst i de "
|
||||
"udvidede indstillinger."
|
||||
|
||||
#: ../tgp-request.c:127
|
||||
msgid "Password invalid"
|
||||
msgstr "Ugyldigt kodeord"
|
||||
|
||||
#: ../tgp-request.c:150
|
||||
#, c-format
|
||||
msgid "Accept secret chat '%s' on this device?"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
msgid "Secret chat"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
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
|
||||
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
|
||||
msgid "Username"
|
||||
msgstr "Brugernavn"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Create group chat"
|
||||
msgstr "Lav gruppechat"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Invite users"
|
||||
msgstr "Invitér brugere"
|
||||
|
||||
#: ../tgp-request.c:217 ../tgp-request.c:232
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:219
|
||||
msgid "Current"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:223 ../tgp-request.c:253
|
||||
msgid "Password"
|
||||
msgstr "Kodeord"
|
||||
|
||||
#: ../tgp-request.c:227 ../tgp-request.c:257
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:251 ../tgp-request.c:262
|
||||
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
|
||||
msgid "Invalid phone number"
|
||||
msgstr "Ugyldigt telefonnummer"
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../tgp-request.c:370
|
||||
msgid "Leave Chat"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:372
|
||||
msgid "Do you want to leave this chat permantently?"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:377
|
||||
msgid "Abort Secret Chat"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:379
|
||||
msgid "Do you want to terminate this secret chat permantently?"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:384
|
||||
msgid "Delete Contact"
|
||||
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 ""
|
||||
|
||||
#: ../tgp-request.c:403
|
||||
msgid "Do you want to leave this channel?"
|
||||
msgstr ""
|
||||
|
||||
#. This should be the language's timestamp format. This is preceded by a
|
||||
#. colon.
|
||||
#: ../tgp-utils.c:27
|
||||
msgid "%d.%m.%Y %H:%M"
|
||||
msgstr "%d.%m.%Y %H:%M"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:48
|
||||
msgid "recently"
|
||||
msgstr "for nyligt"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:52
|
||||
msgid "last week"
|
||||
msgstr "sidste uge"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:56
|
||||
msgid "last month"
|
||||
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
|
||||
msgid "Telegram Chats"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:113
|
||||
msgid "You have already left this chat."
|
||||
msgstr "Du har allerede forladt denne chat."
|
||||
|
||||
#: ../tgp-chat.c:224
|
||||
msgid "Subject:"
|
||||
msgstr "Emne:"
|
||||
|
||||
#: ../tgp-chat.c:230
|
||||
msgid "Invite link:"
|
||||
msgstr "Invitationslink:"
|
||||
|
||||
#: ../tgp-chat.c:236
|
||||
msgid "Chat ID:"
|
||||
msgstr "Chat ID:"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Supergroup"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:345
|
||||
msgid "Group"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:367
|
||||
msgid "Users in chat"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:370
|
||||
msgid "Type"
|
||||
msgstr ""
|
617
po/de_DE.po
617
po/de_DE.po
|
@ -1,617 +0,0 @@
|
|||
# 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"
|
||||
"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"
|
||||
"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-Transfer-Encoding: 8bit\n"
|
||||
"Language: de_DE\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ../telegram-base.c:500
|
||||
msgid "Couldn't create group"
|
||||
msgstr "Konnte Gruppe nicht erstellen."
|
||||
|
||||
#: ../telegram-base.c:501
|
||||
msgid "Please select at least one other user."
|
||||
msgstr "Wählen Sie mindestens einen weiteren Benutzer."
|
||||
|
||||
#: ../telegram-base.c:555
|
||||
msgid "Query Failed"
|
||||
msgstr "Anfrage fehlgeschlagen"
|
||||
|
||||
#: ../telegram-purple.c:162
|
||||
msgid "Secret chat ready."
|
||||
msgstr "Geheimer Chat ist bereit."
|
||||
|
||||
#: ../telegram-purple.c:170
|
||||
msgid "Secret chat terminated."
|
||||
msgstr "Geheimer Chat wurde beendet."
|
||||
|
||||
#: ../telegram-purple.c:182
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#: ../telegram-purple.c:229
|
||||
msgid "Message marked as read."
|
||||
msgstr "Nachricht als gelesen markiert."
|
||||
|
||||
#: ../telegram-purple.c:339
|
||||
#, c-format
|
||||
msgid "Invite link: %s"
|
||||
msgstr "Einladungslink: %s"
|
||||
|
||||
#. FIXME: Can TGLCHF_MODERATOR export links?
|
||||
#: ../telegram-purple.c:350
|
||||
msgid "Creating chat link failed"
|
||||
msgstr "Konnte keinen Link zum Chat erstellen"
|
||||
|
||||
#: ../telegram-purple.c:351
|
||||
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
|
||||
msgid "Chat joined"
|
||||
msgstr "Chat beigetreten"
|
||||
|
||||
#: ../telegram-purple.c:417
|
||||
msgid "Chat added to list of chat rooms."
|
||||
msgstr "Chat der Liste von Chat-Räumen hinzugefügt."
|
||||
|
||||
#: ../telegram-purple.c:443
|
||||
msgid "Start secret chat..."
|
||||
msgstr "Beginne geheimen Chat ..."
|
||||
|
||||
#. Generate Public Link
|
||||
#: ../telegram-purple.c:450
|
||||
msgid "Invite users by link..."
|
||||
msgstr "Nutzer per Link einladen ..."
|
||||
|
||||
#. Delete self from chat
|
||||
#: ../telegram-purple.c:458
|
||||
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
|
||||
#, 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 ""
|
||||
"Konnte nicht als %s einloggen: Problem in der Bibliothek 'tgl'. Bitte "
|
||||
"erstelle einen Bigreport mit Debug-Log."
|
||||
|
||||
#: ../telegram-purple.c:576
|
||||
msgid "Problem in tgl"
|
||||
msgstr "Problem in tgl"
|
||||
|
||||
#. TRANSLATORS: Please fill in your own prefix!
|
||||
#: ../telegram-purple.c:584
|
||||
#, 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 ""
|
||||
"Konnte nicht als %s einloggen: Telefonnummer hat kein Präfix. Telefonnummern"
|
||||
" müssen mit dem vollen internationalen Präfix-Code starten, z.B. +49 für "
|
||||
"Deutschland."
|
||||
|
||||
#: ../telegram-purple.c:589
|
||||
msgid "Incomplete phone number"
|
||||
msgstr "Unvollständige Telefonnummer"
|
||||
|
||||
#: ../telegram-purple.c:642
|
||||
msgid "Secret chat was already deleted"
|
||||
msgstr "Geheimer Chat wurde bereits gelöscht."
|
||||
|
||||
#: ../telegram-purple.c:644
|
||||
msgid "Secret chat is not ready"
|
||||
msgstr "Geheimer Chat ist noch nicht bereit."
|
||||
|
||||
#: ../telegram-purple.c:652
|
||||
msgid "Only the creator of a channel can post messages."
|
||||
msgstr "Nur der Ersteller eines Kanals kann Nachrichten senden."
|
||||
|
||||
#: ../telegram-purple.c:695
|
||||
msgid "Cannot invite buddy to chat"
|
||||
msgstr "Kann den Freund nicht zum Chat einladen"
|
||||
|
||||
#: ../telegram-purple.c:696
|
||||
msgid "Specified user does not exist."
|
||||
msgstr "Angegebener Benutzer existiert nicht."
|
||||
|
||||
#: ../telegram-purple.c:709
|
||||
msgid "phone no. (+ country prefix)"
|
||||
msgstr "Telefonnummer (+ Länder-Präfix)"
|
||||
|
||||
#. Login
|
||||
#: ../telegram-purple.c:817
|
||||
msgid "Password (two factor authentication)"
|
||||
msgstr "Passwort (Zwei-Faktor-Authentifizierung)"
|
||||
|
||||
#: ../telegram-purple.c:822
|
||||
msgid ""
|
||||
"Fallback SMS verification\n"
|
||||
"(Helps when not using Pidgin and you aren't being prompted for the code)"
|
||||
msgstr ""
|
||||
"Ausweich SMS-Verifizierung\n"
|
||||
"(Hilfreich wenn Sie nicht Pidgin verwenden, und die Frage\n"
|
||||
"nach dem SMS-Code aus bleibt)"
|
||||
|
||||
#: ../telegram-purple.c:828
|
||||
msgid "always"
|
||||
msgstr "immer"
|
||||
|
||||
#: ../telegram-purple.c:829
|
||||
msgid "never"
|
||||
msgstr "nie"
|
||||
|
||||
#: ../telegram-purple.c:830
|
||||
msgid "ask"
|
||||
msgstr "nachfragen"
|
||||
|
||||
#: ../telegram-purple.c:832
|
||||
msgid "Accept secret chats"
|
||||
msgstr "Geheime Chats akzeptieren"
|
||||
|
||||
#: ../telegram-purple.c:836
|
||||
msgid "Display buddies offline after (days)"
|
||||
msgstr "Freunde als offline anzeigen nach (Tage)"
|
||||
|
||||
#: ../telegram-purple.c:840
|
||||
msgid ""
|
||||
"Don't fetch history older than (days)\n"
|
||||
"(0 for unlimited)"
|
||||
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)"
|
||||
|
||||
#. Chats
|
||||
#: ../telegram-purple.c:850
|
||||
msgid "Add all group chats to buddy list"
|
||||
msgstr "Alle Gruppenchats in die Freundesliste einfügen"
|
||||
|
||||
#. Read notifications
|
||||
#: ../telegram-purple.c:855
|
||||
msgid "Display notices of receipt"
|
||||
msgstr "Empfangsbestätigungen anzeigen"
|
||||
|
||||
#: ../telegram-purple.c:859
|
||||
msgid "Send notices of receipt when present"
|
||||
msgstr "Empfangsbestätigungen senden wenn anwesend"
|
||||
|
||||
#: ../telegram-purple.c:884
|
||||
msgid "Telegram Protocol Plugin."
|
||||
msgstr "Plugin für das Telegram Protokoll."
|
||||
|
||||
#: ../tgp-msg.c:58
|
||||
#, c-format
|
||||
msgid "%2$s created chat %1$s."
|
||||
msgstr "%2$s hat den Chat %1$s erstellt."
|
||||
|
||||
#: ../tgp-msg.c:61
|
||||
#, c-format
|
||||
msgid "%2$s changed title to %1$s."
|
||||
msgstr "%2$s hat den Titel zu %1$s geändert."
|
||||
|
||||
#: ../tgp-msg.c:64
|
||||
#, c-format
|
||||
msgid "%s changed photo."
|
||||
msgstr "%s hat das Photo geändert."
|
||||
|
||||
#: ../tgp-msg.c:67
|
||||
#, c-format
|
||||
msgid "%s deleted photo."
|
||||
msgstr "%s hat das Photo gelöscht."
|
||||
|
||||
#: ../tgp-msg.c:75
|
||||
#, c-format
|
||||
msgid "%1$s added user %2$s by link."
|
||||
msgstr "%1$s fügte Benutzer %2$s per Link hinzu."
|
||||
|
||||
#: ../tgp-msg.c:90
|
||||
#, c-format
|
||||
msgid "%2$s added user %1$s."
|
||||
msgstr "%2$s hat den Nutzer %1$s hinzufügt."
|
||||
|
||||
#: ../tgp-msg.c:114 ../tgp-msg.c:131
|
||||
#, c-format
|
||||
msgid "%2$s deleted user %1$s."
|
||||
msgstr "%2$s entfernte Benutzer %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 setzte Selbstzerstörungs-Timer auf %1$d Sekunde."
|
||||
msgstr[1] "%2$s setzte Selbstzerstörungs-Timer auf %1$d Sekunden."
|
||||
|
||||
#: ../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 markierte %1$d Nachricht als gelesen."
|
||||
msgstr[1] "%2$s markierte %1$d Nachrichten als gelesen."
|
||||
|
||||
#: ../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 entfernte %1$d Nachricht."
|
||||
msgstr[1] "%2$s entfernte %1$d Nachrichten."
|
||||
|
||||
#: ../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 machte einen Screenshot von %1$d Nachricht."
|
||||
msgstr[1] "%2$s machte einen Screenshot von %1$d Nachrichten."
|
||||
|
||||
#: ../tgp-msg.c:162
|
||||
#, c-format
|
||||
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
|
||||
msgid "Telegram Channels"
|
||||
msgstr "Telegram Kanäle"
|
||||
|
||||
#: ../tgp-msg.c:191
|
||||
msgid "Sending message failed."
|
||||
msgstr "Absenden der Nachricht fehlgeschlagen."
|
||||
|
||||
#: ../tgp-msg.c:253
|
||||
msgid "Sending image failed."
|
||||
msgstr "Absenden des Bilds fehlgeschlagen."
|
||||
|
||||
#: ../tgp-msg.c:417
|
||||
#, 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:498
|
||||
msgid "[animation]"
|
||||
msgstr "[Animation]"
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[audio]"
|
||||
msgstr "[Audio]"
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[video]"
|
||||
msgstr "[Video]"
|
||||
|
||||
#: ../tgp-msg.c:604
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message from: %s</b><br>%s"
|
||||
msgstr "<b>Weitergeleitet von: %s</b> %s"
|
||||
|
||||
#. FIXME: sometimes users aren't part of the response when receiving a
|
||||
#. forwarded message
|
||||
#: ../tgp-msg.c:607
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message:</b><br>%s"
|
||||
msgstr "<b>Weitergeleitete Nachricht:</b> %s"
|
||||
|
||||
#: ../tgp-msg.c:720
|
||||
msgid "loading document or picture failed"
|
||||
msgstr "konnte Dokument oder Datei nicht laden"
|
||||
|
||||
#: ../tgp-net.c:281
|
||||
msgid "Cannot connect to main server"
|
||||
msgstr "Keine Verbindung zum Haupt-Server"
|
||||
|
||||
#: ../tgp-net.c:322
|
||||
msgid "Cannot connect to server: Ping timeout."
|
||||
msgstr "Keine Verbindung zum Server: Zeitüberschreitung"
|
||||
|
||||
#: ../tgp-net.c:365
|
||||
msgid "Lost connection to the server..."
|
||||
msgstr "Verbindung zum Server verloren ..."
|
||||
|
||||
#: ../tgp-request.c:51
|
||||
msgid ""
|
||||
"Telegram wants to verify your identity. Please enter the login code that you"
|
||||
" have received via SMS."
|
||||
msgstr ""
|
||||
"Telegram möchte Ihre Identität prüfen. Bitte geben Sie den Login-Code ein, "
|
||||
"den Sie per SMS erhalten haben."
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Login code"
|
||||
msgstr "Login-Code"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Enter login code"
|
||||
msgstr "Login-Code eingeben"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "the code"
|
||||
msgstr "der Login-Code"
|
||||
|
||||
#: ../tgp-request.c:54 ../tgp-request.c:104 ../tgp-request.c:198
|
||||
#: ../tgp-request.c:233 ../tgp-request.c:263
|
||||
msgid "OK"
|
||||
msgstr "Ok"
|
||||
|
||||
#: ../tgp-request.c:55 ../tgp-request.c:104 ../tgp-request.c:123
|
||||
#: ../tgp-request.c:199 ../tgp-request.c:234 ../tgp-request.c:264
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#: ../tgp-request.c:95
|
||||
msgid "Registration"
|
||||
msgstr "Anmeldung"
|
||||
|
||||
#: ../tgp-request.c:96
|
||||
msgid "First name"
|
||||
msgstr "Vorname"
|
||||
|
||||
#: ../tgp-request.c:99
|
||||
msgid "Last name"
|
||||
msgstr "Nachname"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Register"
|
||||
msgstr "Anmelden"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Please register your phone number."
|
||||
msgstr "Bitte registriere deine Telefonnummer."
|
||||
|
||||
#. purple_request API not available
|
||||
#: ../tgp-request.c:108
|
||||
msgid ""
|
||||
"Phone number is not registered. Please register your phone on a different "
|
||||
"client."
|
||||
msgstr ""
|
||||
"Telefonnummer wurde noch nicht bei Telegram registriert. Bitte registrieren "
|
||||
"Sie Ihre Telefonnummer mit einem anderen Client."
|
||||
|
||||
#: ../tgp-request.c:110
|
||||
msgid "Not registered"
|
||||
msgstr "Nicht registriert"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Password needed"
|
||||
msgstr "Passwort benötigt"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Enter password for two factor authentication"
|
||||
msgstr "Passwort für die Zwei-Faktor-Authentifizierung angeben"
|
||||
|
||||
#: ../tgp-request.c:123
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: ../tgp-request.c:125
|
||||
msgid ""
|
||||
"No password set for two factor authentication. Please enter it in the "
|
||||
"extended settings."
|
||||
msgstr ""
|
||||
"Kein Passwort für die Zwei-Faktor-Authentifizierung gesetzt, bitte\n"
|
||||
"spezifizieren Sie dies in den erweiterten Einstellungen."
|
||||
|
||||
#: ../tgp-request.c:127
|
||||
msgid "Password invalid"
|
||||
msgstr "Passwort ungültig"
|
||||
|
||||
#: ../tgp-request.c:150
|
||||
#, c-format
|
||||
msgid "Accept secret chat '%s' on this device?"
|
||||
msgstr "Geheimen Chat '%s' auf diesem Gerät akzeptieren?"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
msgid "Secret chat"
|
||||
msgstr "Geheimer Chat"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
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 ""
|
||||
"Geheime Chats können nur einen Endpunkt haben. Wenn du den geheimen Chat auf"
|
||||
" diesem Geräte akzeptierst werden die Nachrichten nirgendwo anders verfügbar"
|
||||
" sein. Wenn du ablehnst kannst du den Chat immernoch auf anderen Geräten "
|
||||
"akzeptieren."
|
||||
|
||||
#: ../tgp-request.c:182
|
||||
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 ""
|
||||
"Lade noch mindestens einen zusätzlichen Benutzer\n"
|
||||
"durch Eingabe des vollständigen Namens ein\n"
|
||||
"(Autovervollständigung verfügbar).\n"
|
||||
"Sie können später weitere Nutzer einladen, sobald\n"
|
||||
"der Chat erstellt wurde."
|
||||
|
||||
#: ../tgp-request.c:185 ../tgp-request.c:189 ../tgp-request.c:193
|
||||
msgid "Username"
|
||||
msgstr "Benutzername"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Create group chat"
|
||||
msgstr "Gruppenchat erstellen"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Invite users"
|
||||
msgstr "Benutzer einladen"
|
||||
|
||||
#: ../tgp-request.c:217 ../tgp-request.c:232
|
||||
msgid "Change password"
|
||||
msgstr "Passwort ändern"
|
||||
|
||||
#: ../tgp-request.c:219
|
||||
msgid "Current"
|
||||
msgstr "Momentan"
|
||||
|
||||
#: ../tgp-request.c:223 ../tgp-request.c:253
|
||||
msgid "Password"
|
||||
msgstr "Passwort"
|
||||
|
||||
#: ../tgp-request.c:227 ../tgp-request.c:257
|
||||
msgid "Confirm"
|
||||
msgstr "Bestätigen"
|
||||
|
||||
#: ../tgp-request.c:251 ../tgp-request.c:262
|
||||
msgid "New password"
|
||||
msgstr "Neues Passwort"
|
||||
|
||||
#. 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
|
||||
msgid "Invalid phone number"
|
||||
msgstr "Ungültige Telefonnummer"
|
||||
|
||||
#: ../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 ""
|
||||
"Bitte geben Sie Telefonnummern im internationalen Format ein, bestehend aus einem führenden + gefolgt vom Länderpräfix\n"
|
||||
"und der Rufnummer. Verwenden Sie keine anderen Sonderzeichen."
|
||||
|
||||
#: ../tgp-request.c:370
|
||||
msgid "Leave Chat"
|
||||
msgstr "Chat verlassen"
|
||||
|
||||
#: ../tgp-request.c:372
|
||||
msgid "Do you want to leave this chat permantently?"
|
||||
msgstr "Möchten Sie diesen Chat dauerhaft verlassen?"
|
||||
|
||||
#: ../tgp-request.c:377
|
||||
msgid "Abort Secret Chat"
|
||||
msgstr "Geheimen Chat abbrechen"
|
||||
|
||||
#: ../tgp-request.c:379
|
||||
msgid "Do you want to terminate this secret chat permantently?"
|
||||
msgstr "Möchten Sie diesen geheimen Chat dauerhaft verlassen?"
|
||||
|
||||
#: ../tgp-request.c:384
|
||||
msgid "Delete Contact"
|
||||
msgstr "Kontakt löschen"
|
||||
|
||||
#: ../tgp-request.c:386
|
||||
msgid "Do you want to remove this user from your global contact list?"
|
||||
msgstr "Möchten Sie diesen Kontakt global löschen?"
|
||||
|
||||
#: ../tgp-request.c:401
|
||||
msgid "Leave Channel"
|
||||
msgstr "Kanal verlassen"
|
||||
|
||||
#: ../tgp-request.c:403
|
||||
msgid "Do you want to leave this channel?"
|
||||
msgstr "Möchten Sie diesen Kanal dauerhaft verlassen?"
|
||||
|
||||
#. This should be the language's timestamp format. This is preceded by a
|
||||
#. colon.
|
||||
#: ../tgp-utils.c:27
|
||||
msgid "%d.%m.%Y %H:%M"
|
||||
msgstr "%d.%m.%Y %H:%M"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:48
|
||||
msgid "recently"
|
||||
msgstr "Kürzlich"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:52
|
||||
msgid "last week"
|
||||
msgstr "Letzte Woche"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:56
|
||||
msgid "last month"
|
||||
msgstr "Letzten Monat"
|
||||
|
||||
#. This is preceded by a colon. It refers to a point on time.
|
||||
#: ../tgp-utils.c:60
|
||||
msgid "unknown"
|
||||
msgstr "Unbekannt"
|
||||
|
||||
#: ../tgp-chat.c:108 ../tgp-chat.c:582
|
||||
msgid "Telegram Chats"
|
||||
msgstr "Telegram Unterhaltugen"
|
||||
|
||||
#: ../tgp-chat.c:113
|
||||
msgid "You have already left this chat."
|
||||
msgstr "Du hast diesen Chat bereits verlassen."
|
||||
|
||||
#: ../tgp-chat.c:224
|
||||
msgid "Subject:"
|
||||
msgstr "Thema:"
|
||||
|
||||
#: ../tgp-chat.c:230
|
||||
msgid "Invite link:"
|
||||
msgstr "Einladungslink:"
|
||||
|
||||
#: ../tgp-chat.c:236
|
||||
msgid "Chat ID:"
|
||||
msgstr "Chat ID:"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Supergroup"
|
||||
msgstr "Über-Gruppe"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Channel"
|
||||
msgstr "Kanal"
|
||||
|
||||
#: ../tgp-chat.c:345
|
||||
msgid "Group"
|
||||
msgstr "Gruppe"
|
||||
|
||||
#: ../tgp-chat.c:367
|
||||
msgid "Users in chat"
|
||||
msgstr "Benutzer im Chat"
|
||||
|
||||
#: ../tgp-chat.c:370
|
||||
msgid "Type"
|
||||
msgstr "Typ"
|
615
po/es.po
615
po/es.po
|
@ -1,615 +0,0 @@
|
|||
# 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"
|
||||
"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"
|
||||
"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-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ../telegram-base.c:500
|
||||
msgid "Couldn't create group"
|
||||
msgstr "No se pudo crear el grupo"
|
||||
|
||||
#: ../telegram-base.c:501
|
||||
msgid "Please select at least one other user."
|
||||
msgstr "Por favor, seleccioná al menos otro usuario."
|
||||
|
||||
#: ../telegram-base.c:555
|
||||
msgid "Query Failed"
|
||||
msgstr "Falló la consulta"
|
||||
|
||||
#: ../telegram-purple.c:162
|
||||
msgid "Secret chat ready."
|
||||
msgstr "Conversación secreta lista."
|
||||
|
||||
#: ../telegram-purple.c:170
|
||||
msgid "Secret chat terminated."
|
||||
msgstr "Finalizó la conversación secreta."
|
||||
|
||||
#: ../telegram-purple.c:182
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#: ../telegram-purple.c:229
|
||||
msgid "Message marked as read."
|
||||
msgstr "Mensaje marcado como leído."
|
||||
|
||||
#: ../telegram-purple.c:339
|
||||
#, c-format
|
||||
msgid "Invite link: %s"
|
||||
msgstr "Enlace de invitación: %s"
|
||||
|
||||
#. FIXME: Can TGLCHF_MODERATOR export links?
|
||||
#: ../telegram-purple.c:350
|
||||
msgid "Creating chat link failed"
|
||||
msgstr "Falló la creación del enlace de converesación"
|
||||
|
||||
#: ../telegram-purple.c:351
|
||||
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
|
||||
msgid "Chat joined"
|
||||
msgstr "Unido a la conversación"
|
||||
|
||||
#: ../telegram-purple.c:417
|
||||
msgid "Chat added to list of chat rooms."
|
||||
msgstr "Conversación agregada a la lista de salas de conversaciones."
|
||||
|
||||
#: ../telegram-purple.c:443
|
||||
msgid "Start secret chat..."
|
||||
msgstr "Iniciar conversación secreta..."
|
||||
|
||||
#. Generate Public Link
|
||||
#: ../telegram-purple.c:450
|
||||
msgid "Invite users by link..."
|
||||
msgstr "Invitar a usuarios por enlace..."
|
||||
|
||||
#. Delete self from chat
|
||||
#: ../telegram-purple.c:458
|
||||
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
|
||||
#, 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."
|
||||
|
||||
#: ../telegram-purple.c:576
|
||||
msgid "Problem in tgl"
|
||||
msgstr "Problema en tgl"
|
||||
|
||||
#. TRANSLATORS: Please fill in your own prefix!
|
||||
#: ../telegram-purple.c:584
|
||||
#, 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."
|
||||
|
||||
#: ../telegram-purple.c:589
|
||||
msgid "Incomplete phone number"
|
||||
msgstr "Número de teléfono incompleto"
|
||||
|
||||
#: ../telegram-purple.c:642
|
||||
msgid "Secret chat was already deleted"
|
||||
msgstr "Ya se eliminó la conversación secreta"
|
||||
|
||||
#: ../telegram-purple.c:644
|
||||
msgid "Secret chat is not ready"
|
||||
msgstr "La conversación secreta no está lista"
|
||||
|
||||
#: ../telegram-purple.c:652
|
||||
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
|
||||
msgid "Cannot invite buddy to chat"
|
||||
msgstr "No se pudo invitar al contacto a la conversación"
|
||||
|
||||
#: ../telegram-purple.c:696
|
||||
msgid "Specified user does not exist."
|
||||
msgstr "El usuario especificado no existe."
|
||||
|
||||
#: ../telegram-purple.c:709
|
||||
msgid "phone no. (+ country prefix)"
|
||||
msgstr "Núm. tlf. (+ prefijo país)"
|
||||
|
||||
#. Login
|
||||
#: ../telegram-purple.c:817
|
||||
msgid "Password (two factor authentication)"
|
||||
msgstr "Contraseña (autenticación de dos pasos)"
|
||||
|
||||
#: ../telegram-purple.c:822
|
||||
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)"
|
||||
|
||||
#: ../telegram-purple.c:828
|
||||
msgid "always"
|
||||
msgstr "siempre"
|
||||
|
||||
#: ../telegram-purple.c:829
|
||||
msgid "never"
|
||||
msgstr "nunca"
|
||||
|
||||
#: ../telegram-purple.c:830
|
||||
msgid "ask"
|
||||
msgstr "pedir"
|
||||
|
||||
#: ../telegram-purple.c:832
|
||||
msgid "Accept secret chats"
|
||||
msgstr "Aceptar conversaciones secretas"
|
||||
|
||||
#: ../telegram-purple.c:836
|
||||
msgid "Display buddies offline after (days)"
|
||||
msgstr "Mostrar contactos desconectados después de (días)"
|
||||
|
||||
#: ../telegram-purple.c:840
|
||||
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)"
|
||||
|
||||
#. Media
|
||||
#: ../telegram-purple.c:845
|
||||
msgid "Autoload media size (kb)"
|
||||
msgstr "Tamaño del medio de carga automático (kb)"
|
||||
|
||||
#. Chats
|
||||
#: ../telegram-purple.c:850
|
||||
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
|
||||
msgid "Display notices of receipt"
|
||||
msgstr "Mostrar acuses de recibo"
|
||||
|
||||
#: ../telegram-purple.c:859
|
||||
msgid "Send notices of receipt when present"
|
||||
msgstr "Enviar acuses de recibo al estar presente"
|
||||
|
||||
#: ../telegram-purple.c:884
|
||||
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."
|
||||
|
||||
#: ../tgp-msg.c:61
|
||||
#, c-format
|
||||
msgid "%2$s changed title to %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."
|
||||
|
||||
#: ../tgp-msg.c:67
|
||||
#, c-format
|
||||
msgid "%s deleted photo."
|
||||
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."
|
||||
|
||||
#: ../tgp-msg.c:90
|
||||
#, c-format
|
||||
msgid "%2$s added user %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."
|
||||
|
||||
#: ../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."
|
||||
|
||||
#: ../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."
|
||||
|
||||
#: ../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."
|
||||
|
||||
#: ../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."
|
||||
|
||||
#: ../tgp-msg.c:162
|
||||
#, c-format
|
||||
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
|
||||
msgid "Telegram Channels"
|
||||
msgstr "Canales de Telegram"
|
||||
|
||||
#: ../tgp-msg.c:191
|
||||
msgid "Sending message failed."
|
||||
msgstr "Falló el envío de mensajes."
|
||||
|
||||
#: ../tgp-msg.c:253
|
||||
msgid "Sending image failed."
|
||||
msgstr "Falló el envío de imágenes."
|
||||
|
||||
#: ../tgp-msg.c:417
|
||||
#, 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:498
|
||||
msgid "[animation]"
|
||||
msgstr "[animación]"
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[audio]"
|
||||
msgstr "[audio]"
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[video]"
|
||||
msgstr "[vídeo]"
|
||||
|
||||
#: ../tgp-msg.c:604
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message from: %s</b><br>%s"
|
||||
msgstr "<b>Mensaje reenviado de: %s</b><br>%s"
|
||||
|
||||
#. FIXME: sometimes users aren't part of the response when receiving a
|
||||
#. forwarded message
|
||||
#: ../tgp-msg.c:607
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message:</b><br>%s"
|
||||
msgstr "<b>Mensaje reenviado:</b><br>%s"
|
||||
|
||||
#: ../tgp-msg.c:720
|
||||
msgid "loading document or picture failed"
|
||||
msgstr "falló la carga del documento o imagen"
|
||||
|
||||
#: ../tgp-net.c:281
|
||||
msgid "Cannot connect to main server"
|
||||
msgstr "No se puede conectar al servidor principal"
|
||||
|
||||
#: ../tgp-net.c:322
|
||||
msgid "Cannot connect to server: Ping timeout."
|
||||
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..."
|
||||
|
||||
#: ../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."
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Login code"
|
||||
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"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "the code"
|
||||
msgstr "el código"
|
||||
|
||||
#: ../tgp-request.c:54 ../tgp-request.c:104 ../tgp-request.c:198
|
||||
#: ../tgp-request.c:233 ../tgp-request.c:263
|
||||
msgid "OK"
|
||||
msgstr "Aceptar"
|
||||
|
||||
#: ../tgp-request.c:55 ../tgp-request.c:104 ../tgp-request.c:123
|
||||
#: ../tgp-request.c:199 ../tgp-request.c:234 ../tgp-request.c:264
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: ../tgp-request.c:95
|
||||
msgid "Registration"
|
||||
msgstr "Registro"
|
||||
|
||||
#: ../tgp-request.c:96
|
||||
msgid "First name"
|
||||
msgstr "Nombre"
|
||||
|
||||
#: ../tgp-request.c:99
|
||||
msgid "Last name"
|
||||
msgstr "Apellido"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Register"
|
||||
msgstr "Registrar"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Please register your phone number."
|
||||
msgstr "Por favor, registre su número de teléfono."
|
||||
|
||||
#. purple_request API not available
|
||||
#: ../tgp-request.c:108
|
||||
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."
|
||||
|
||||
#: ../tgp-request.c:110
|
||||
msgid "Not registered"
|
||||
msgstr "No registrado"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Password needed"
|
||||
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"
|
||||
|
||||
#: ../tgp-request.c:123
|
||||
msgid "Ok"
|
||||
msgstr "Aceptar"
|
||||
|
||||
#: ../tgp-request.c:125
|
||||
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."
|
||||
|
||||
#: ../tgp-request.c:127
|
||||
msgid "Password invalid"
|
||||
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?"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
msgid "Secret chat"
|
||||
msgstr "Conversación secreta"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
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 ""
|
||||
"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 ""
|
||||
"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 ""
|
||||
"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."
|
||||
|
||||
#: ../tgp-request.c:185 ../tgp-request.c:189 ../tgp-request.c:193
|
||||
msgid "Username"
|
||||
msgstr "Nombre de usuario"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Create group chat"
|
||||
msgstr "Crear conversación grupal"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Invite users"
|
||||
msgstr "Invitar a los usuarios"
|
||||
|
||||
#: ../tgp-request.c:217 ../tgp-request.c:232
|
||||
msgid "Change password"
|
||||
msgstr "Cambiar contraseña"
|
||||
|
||||
#: ../tgp-request.c:219
|
||||
msgid "Current"
|
||||
msgstr "Actual"
|
||||
|
||||
#: ../tgp-request.c:223 ../tgp-request.c:253
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
#: ../tgp-request.c:227 ../tgp-request.c:257
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmar"
|
||||
|
||||
#: ../tgp-request.c:251 ../tgp-request.c:262
|
||||
msgid "New password"
|
||||
msgstr "Nueva contraseña"
|
||||
|
||||
#. 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
|
||||
msgid "Invalid phone number"
|
||||
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."
|
||||
|
||||
#: ../tgp-request.c:370
|
||||
msgid "Leave Chat"
|
||||
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?"
|
||||
|
||||
#: ../tgp-request.c:377
|
||||
msgid "Abort Secret Chat"
|
||||
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?"
|
||||
|
||||
#: ../tgp-request.c:384
|
||||
msgid "Delete Contact"
|
||||
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?"
|
||||
|
||||
#: ../tgp-request.c:401
|
||||
msgid "Leave Channel"
|
||||
msgstr "Abandonar canal"
|
||||
|
||||
#: ../tgp-request.c:403
|
||||
msgid "Do you want to leave this channel?"
|
||||
msgstr "¿Quiere abandonar este canal?"
|
||||
|
||||
#. This should be the language's timestamp format. This is preceded by a
|
||||
#. colon.
|
||||
#: ../tgp-utils.c:27
|
||||
msgid "%d.%m.%Y %H:%M"
|
||||
msgstr "%d.%m.%Y - %H:%M"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:48
|
||||
msgid "recently"
|
||||
msgstr "recientemente"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:52
|
||||
msgid "last week"
|
||||
msgstr "la semana pasada"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:56
|
||||
msgid "last month"
|
||||
msgstr "el mes pasado"
|
||||
|
||||
#. This is preceded by a colon. It refers to a point on time.
|
||||
#: ../tgp-utils.c:60
|
||||
msgid "unknown"
|
||||
msgstr "desconocido"
|
||||
|
||||
#: ../tgp-chat.c:108 ../tgp-chat.c:582
|
||||
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."
|
||||
|
||||
#: ../tgp-chat.c:224
|
||||
msgid "Subject:"
|
||||
msgstr "Asunto:"
|
||||
|
||||
#: ../tgp-chat.c:230
|
||||
msgid "Invite link:"
|
||||
msgstr "Enlace de invitación:"
|
||||
|
||||
#: ../tgp-chat.c:236
|
||||
msgid "Chat ID:"
|
||||
msgstr "Identificación de conversación:"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Supergroup"
|
||||
msgstr "Súpergrupo"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Channel"
|
||||
msgstr "Canal"
|
||||
|
||||
#: ../tgp-chat.c:345
|
||||
msgid "Group"
|
||||
msgstr "Grupo"
|
||||
|
||||
#: ../tgp-chat.c:367
|
||||
msgid "Users in chat"
|
||||
msgstr "Usuarios en la conversación"
|
||||
|
||||
#: ../tgp-chat.c:370
|
||||
msgid "Type"
|
||||
msgstr "Tipo"
|
616
po/es_AR.po
616
po/es_AR.po
|
@ -1,616 +0,0 @@
|
|||
# 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"
|
||||
"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"
|
||||
"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-Transfer-Encoding: 8bit\n"
|
||||
"Language: es_AR\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ../telegram-base.c:500
|
||||
msgid "Couldn't create group"
|
||||
msgstr "No se pudo crear el grupo"
|
||||
|
||||
#: ../telegram-base.c:501
|
||||
msgid "Please select at least one other user."
|
||||
msgstr "Por favor, seleccioná al menos otro usuario."
|
||||
|
||||
#: ../telegram-base.c:555
|
||||
msgid "Query Failed"
|
||||
msgstr "Falló la consulta"
|
||||
|
||||
#: ../telegram-purple.c:162
|
||||
msgid "Secret chat ready."
|
||||
msgstr "Conversación secreta lista."
|
||||
|
||||
#: ../telegram-purple.c:170
|
||||
msgid "Secret chat terminated."
|
||||
msgstr "Finalizó la conversación secreta."
|
||||
|
||||
#: ../telegram-purple.c:182
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#: ../telegram-purple.c:229
|
||||
msgid "Message marked as read."
|
||||
msgstr "Mensaje marcado como leído."
|
||||
|
||||
#: ../telegram-purple.c:339
|
||||
#, c-format
|
||||
msgid "Invite link: %s"
|
||||
msgstr "Enlace de invitación: %s"
|
||||
|
||||
#. FIXME: Can TGLCHF_MODERATOR export links?
|
||||
#: ../telegram-purple.c:350
|
||||
msgid "Creating chat link failed"
|
||||
msgstr "Falló la creación del enlace de conversación"
|
||||
|
||||
#: ../telegram-purple.c:351
|
||||
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
|
||||
msgid "Chat joined"
|
||||
msgstr "Unido a la conversación"
|
||||
|
||||
#: ../telegram-purple.c:417
|
||||
msgid "Chat added to list of chat rooms."
|
||||
msgstr "Conversación agregada a la lista de salas de conversaciones."
|
||||
|
||||
#: ../telegram-purple.c:443
|
||||
msgid "Start secret chat..."
|
||||
msgstr "Iniciar conversación secreta..."
|
||||
|
||||
#. Generate Public Link
|
||||
#: ../telegram-purple.c:450
|
||||
msgid "Invite users by link..."
|
||||
msgstr "Invitar a usuarios por enlace..."
|
||||
|
||||
#. Delete self from chat
|
||||
#: ../telegram-purple.c:458
|
||||
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
|
||||
#, 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: hay un problema con la biblioteca "
|
||||
"\"tgl\". Por favor, enviá un informe de errores con el registro de "
|
||||
"depuración."
|
||||
|
||||
#: ../telegram-purple.c:576
|
||||
msgid "Problem in tgl"
|
||||
msgstr "Problema en tgl"
|
||||
|
||||
#. TRANSLATORS: Please fill in your own prefix!
|
||||
#: ../telegram-purple.c:584
|
||||
#, 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: +54 para Argentina."
|
||||
|
||||
#: ../telegram-purple.c:589
|
||||
msgid "Incomplete phone number"
|
||||
msgstr "Número de teléfono incompleto"
|
||||
|
||||
#: ../telegram-purple.c:642
|
||||
msgid "Secret chat was already deleted"
|
||||
msgstr "Ya se eliminó la conversación secreta"
|
||||
|
||||
#: ../telegram-purple.c:644
|
||||
msgid "Secret chat is not ready"
|
||||
msgstr "La conversación secreta no está lista"
|
||||
|
||||
#: ../telegram-purple.c:652
|
||||
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
|
||||
msgid "Cannot invite buddy to chat"
|
||||
msgstr "No se pudo invitar al contacto a la conversación"
|
||||
|
||||
#: ../telegram-purple.c:696
|
||||
msgid "Specified user does not exist."
|
||||
msgstr "El usuario especificado no existe."
|
||||
|
||||
#: ../telegram-purple.c:709
|
||||
msgid "phone no. (+ country prefix)"
|
||||
msgstr "Número de teléfono (+ prefijo de país)"
|
||||
|
||||
#. Login
|
||||
#: ../telegram-purple.c:817
|
||||
msgid "Password (two factor authentication)"
|
||||
msgstr "Contraseña (autenticación de 2 pasos)"
|
||||
|
||||
#: ../telegram-purple.c:822
|
||||
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ás usando Pidgin y no se te pide el código)"
|
||||
|
||||
#: ../telegram-purple.c:828
|
||||
msgid "always"
|
||||
msgstr "siempre"
|
||||
|
||||
#: ../telegram-purple.c:829
|
||||
msgid "never"
|
||||
msgstr "nunca"
|
||||
|
||||
#: ../telegram-purple.c:830
|
||||
msgid "ask"
|
||||
msgstr "preguntar"
|
||||
|
||||
#: ../telegram-purple.c:832
|
||||
msgid "Accept secret chats"
|
||||
msgstr "Aceptar conversaciones secretas"
|
||||
|
||||
#: ../telegram-purple.c:836
|
||||
msgid "Display buddies offline after (days)"
|
||||
msgstr "Mostrar contactos desconectados después de (días)"
|
||||
|
||||
#: ../telegram-purple.c:840
|
||||
msgid ""
|
||||
"Don't fetch history older than (days)\n"
|
||||
"(0 for unlimited)"
|
||||
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)"
|
||||
|
||||
#. Chats
|
||||
#: ../telegram-purple.c:850
|
||||
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
|
||||
msgid "Display notices of receipt"
|
||||
msgstr "Mostrar acuses de recibo"
|
||||
|
||||
#: ../telegram-purple.c:859
|
||||
msgid "Send notices of receipt when present"
|
||||
msgstr "Enviar acuses de recibo al estar presente"
|
||||
|
||||
#: ../telegram-purple.c:884
|
||||
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."
|
||||
|
||||
#: ../tgp-msg.c:61
|
||||
#, c-format
|
||||
msgid "%2$s changed title to %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."
|
||||
|
||||
#: ../tgp-msg.c:67
|
||||
#, c-format
|
||||
msgid "%s deleted photo."
|
||||
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."
|
||||
|
||||
#: ../tgp-msg.c:90
|
||||
#, c-format
|
||||
msgid "%2$s added user %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."
|
||||
|
||||
#: ../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 contador autodestructivo a %1$d segundo."
|
||||
msgstr[1] "%2$s estableció un contador 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."
|
||||
|
||||
#: ../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."
|
||||
|
||||
#: ../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."
|
||||
|
||||
#: ../tgp-msg.c:162
|
||||
#, c-format
|
||||
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
|
||||
msgid "Telegram Channels"
|
||||
msgstr "Canales de Telegram"
|
||||
|
||||
#: ../tgp-msg.c:191
|
||||
msgid "Sending message failed."
|
||||
msgstr "Falló el envío de mensajes."
|
||||
|
||||
#: ../tgp-msg.c:253
|
||||
msgid "Sending image failed."
|
||||
msgstr "Falló el envío de imágenes."
|
||||
|
||||
#: ../tgp-msg.c:417
|
||||
#, 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:498
|
||||
msgid "[animation]"
|
||||
msgstr "[animación]"
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[audio]"
|
||||
msgstr "[audio]"
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[video]"
|
||||
msgstr "[video]"
|
||||
|
||||
#: ../tgp-msg.c:604
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message from: %s</b><br>%s"
|
||||
msgstr "<b>Mensaje reenviado de: %s</b><br>%s"
|
||||
|
||||
#. FIXME: sometimes users aren't part of the response when receiving a
|
||||
#. forwarded message
|
||||
#: ../tgp-msg.c:607
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message:</b><br>%s"
|
||||
msgstr "<b>Mensaje reenviado:</b><br>%s"
|
||||
|
||||
#: ../tgp-msg.c:720
|
||||
msgid "loading document or picture failed"
|
||||
msgstr "falló la carga del documento o imagen"
|
||||
|
||||
#: ../tgp-net.c:281
|
||||
msgid "Cannot connect to main server"
|
||||
msgstr "No se puede conectar al servidor principal"
|
||||
|
||||
#: ../tgp-net.c:322
|
||||
msgid "Cannot connect to server: Ping timeout."
|
||||
msgstr "No se puede conectar al servidor: tiempo de respuesta agotado."
|
||||
|
||||
#: ../tgp-net.c:365
|
||||
msgid "Lost connection to the server..."
|
||||
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 tu identidad. Por favor, ingresá el código que "
|
||||
"recibiste en un mensaje de texto."
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Login code"
|
||||
msgstr "Código de inicio de sesión"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Enter login code"
|
||||
msgstr "Ingresar código de inicio de sesión"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "the code"
|
||||
msgstr "el código"
|
||||
|
||||
#: ../tgp-request.c:54 ../tgp-request.c:104 ../tgp-request.c:198
|
||||
#: ../tgp-request.c:233 ../tgp-request.c:263
|
||||
msgid "OK"
|
||||
msgstr "Aceptar"
|
||||
|
||||
#: ../tgp-request.c:55 ../tgp-request.c:104 ../tgp-request.c:123
|
||||
#: ../tgp-request.c:199 ../tgp-request.c:234 ../tgp-request.c:264
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: ../tgp-request.c:95
|
||||
msgid "Registration"
|
||||
msgstr "Registro"
|
||||
|
||||
#: ../tgp-request.c:96
|
||||
msgid "First name"
|
||||
msgstr "Nombre"
|
||||
|
||||
#: ../tgp-request.c:99
|
||||
msgid "Last name"
|
||||
msgstr "Apellido"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Register"
|
||||
msgstr "Registrar"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Please register your phone number."
|
||||
msgstr "Por favor, registrá tu número de teléfono."
|
||||
|
||||
#. purple_request API not available
|
||||
#: ../tgp-request.c:108
|
||||
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, registrá tu teléfono en un "
|
||||
"cliente diferente."
|
||||
|
||||
#: ../tgp-request.c:110
|
||||
msgid "Not registered"
|
||||
msgstr "No registrado"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Password needed"
|
||||
msgstr "Se necesita la contraseña"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Enter password for two factor authentication"
|
||||
msgstr "Ingresar contraseña para la autenticación de 2 pasos"
|
||||
|
||||
#: ../tgp-request.c:123
|
||||
msgid "Ok"
|
||||
msgstr "Aceptar"
|
||||
|
||||
#: ../tgp-request.c:125
|
||||
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 2 pasos. Por favor, "
|
||||
"ingresala en la configuración extendida."
|
||||
|
||||
#: ../tgp-request.c:127
|
||||
msgid "Password invalid"
|
||||
msgstr "Contraseña no válida"
|
||||
|
||||
#: ../tgp-request.c:150
|
||||
#, c-format
|
||||
msgid "Accept secret chat '%s' on this device?"
|
||||
msgstr "¿Aceptás la conversación secreta \"%s\" en este dispositivo?"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
msgid "Secret chat"
|
||||
msgstr "Conversación secreta"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
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 ""
|
||||
"Las conversaciones secretas son uno a uno. Si aceptás una conversación "
|
||||
"secreta en este dispositivo, la misma no estará disponible en ningún otro "
|
||||
"lado. Si declinás, podés aceptar la conversación en otro dispositivo."
|
||||
|
||||
#: ../tgp-request.c:182
|
||||
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 ""
|
||||
"Invitá al menos a un usuario más especificando\n"
|
||||
"su nombre completo (disponible autocompletado).\n"
|
||||
"Podés 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"
|
||||
msgstr "Nombre de usuario"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Create group chat"
|
||||
msgstr "Crear conversación grupal"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Invite users"
|
||||
msgstr "Invitar a usuarios"
|
||||
|
||||
#: ../tgp-request.c:217 ../tgp-request.c:232
|
||||
msgid "Change password"
|
||||
msgstr "Cambiar contraseña"
|
||||
|
||||
#: ../tgp-request.c:219
|
||||
msgid "Current"
|
||||
msgstr "Actual"
|
||||
|
||||
#: ../tgp-request.c:223 ../tgp-request.c:253
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
#: ../tgp-request.c:227 ../tgp-request.c:257
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmar"
|
||||
|
||||
#: ../tgp-request.c:251 ../tgp-request.c:262
|
||||
msgid "New password"
|
||||
msgstr "Nueva contraseña"
|
||||
|
||||
#. 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
|
||||
msgid "Invalid phone number"
|
||||
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, ingresá 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 usés ningún otro caracter."
|
||||
|
||||
#: ../tgp-request.c:370
|
||||
msgid "Leave Chat"
|
||||
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?"
|
||||
|
||||
#: ../tgp-request.c:377
|
||||
msgid "Abort Secret Chat"
|
||||
msgstr "Cancelar conversación secreta"
|
||||
|
||||
#: ../tgp-request.c:379
|
||||
msgid "Do you want to terminate this secret chat permantently?"
|
||||
msgstr ""
|
||||
"¿Estás seguro que querés eliminar esta conversación secreta permanentemente?"
|
||||
|
||||
#: ../tgp-request.c:384
|
||||
msgid "Delete Contact"
|
||||
msgstr "Eliminar contacto"
|
||||
|
||||
#: ../tgp-request.c:386
|
||||
msgid "Do you want to remove this user from your global contact list?"
|
||||
msgstr "¿Querés quitar este usuario de tu lista global de contactos?"
|
||||
|
||||
#: ../tgp-request.c:401
|
||||
msgid "Leave Channel"
|
||||
msgstr "Abandonar canal"
|
||||
|
||||
#: ../tgp-request.c:403
|
||||
msgid "Do you want to leave this channel?"
|
||||
msgstr "¿Querés abandonar este canal?"
|
||||
|
||||
#. This should be the language's timestamp format. This is preceded by a
|
||||
#. colon.
|
||||
#: ../tgp-utils.c:27
|
||||
msgid "%d.%m.%Y %H:%M"
|
||||
msgstr "%Y.%m.%d - %H:%M"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:48
|
||||
msgid "recently"
|
||||
msgstr "recientemente"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:52
|
||||
msgid "last week"
|
||||
msgstr "la semana pasada"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:56
|
||||
msgid "last month"
|
||||
msgstr "el mes pasado"
|
||||
|
||||
#. This is preceded by a colon. It refers to a point on time.
|
||||
#: ../tgp-utils.c:60
|
||||
msgid "unknown"
|
||||
msgstr "[desconocido]"
|
||||
|
||||
#: ../tgp-chat.c:108 ../tgp-chat.c:582
|
||||
msgid "Telegram Chats"
|
||||
msgstr "Conversaciones de Telegram"
|
||||
|
||||
#: ../tgp-chat.c:113
|
||||
msgid "You have already left this chat."
|
||||
msgstr "Ya abandonaste esta conversación."
|
||||
|
||||
#: ../tgp-chat.c:224
|
||||
msgid "Subject:"
|
||||
msgstr "Asunto:"
|
||||
|
||||
#: ../tgp-chat.c:230
|
||||
msgid "Invite link:"
|
||||
msgstr "Enlace de invitación:"
|
||||
|
||||
#: ../tgp-chat.c:236
|
||||
msgid "Chat ID:"
|
||||
msgstr "Identificación de conversación:"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Supergroup"
|
||||
msgstr "Súpergrupo"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Channel"
|
||||
msgstr "Canal"
|
||||
|
||||
#: ../tgp-chat.c:345
|
||||
msgid "Group"
|
||||
msgstr "Grupo"
|
||||
|
||||
#: ../tgp-chat.c:367
|
||||
msgid "Users in chat"
|
||||
msgstr "Usuarios en la conversación"
|
||||
|
||||
#: ../tgp-chat.c:370
|
||||
msgid "Type"
|
||||
msgstr "Tipo"
|
615
po/fr.po
615
po/fr.po
|
@ -1,615 +0,0 @@
|
|||
# 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"
|
||||
"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"
|
||||
"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-Transfer-Encoding: 8bit\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: ../telegram-base.c:500
|
||||
msgid "Couldn't create group"
|
||||
msgstr "N'a pas pu créer le groupe"
|
||||
|
||||
#: ../telegram-base.c:501
|
||||
msgid "Please select at least one other user."
|
||||
msgstr "Veuillez sélectionner au moins un autre utilisateur."
|
||||
|
||||
#: ../telegram-base.c:555
|
||||
msgid "Query Failed"
|
||||
msgstr "Requête échouée"
|
||||
|
||||
#: ../telegram-purple.c:162
|
||||
msgid "Secret chat ready."
|
||||
msgstr "Conversation secrète prête."
|
||||
|
||||
#: ../telegram-purple.c:170
|
||||
msgid "Secret chat terminated."
|
||||
msgstr "Conversation secrète terminée."
|
||||
|
||||
#: ../telegram-purple.c:182
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#: ../telegram-purple.c:229
|
||||
msgid "Message marked as read."
|
||||
msgstr "Message marqué comme lu."
|
||||
|
||||
#: ../telegram-purple.c:339
|
||||
#, c-format
|
||||
msgid "Invite link: %s"
|
||||
msgstr "Lien d'invitation : %s"
|
||||
|
||||
#. FIXME: Can TGLCHF_MODERATOR export links?
|
||||
#: ../telegram-purple.c:350
|
||||
msgid "Creating chat link failed"
|
||||
msgstr "Création du lien d'invitation échouée"
|
||||
|
||||
#: ../telegram-purple.c:351
|
||||
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
|
||||
msgid "Chat joined"
|
||||
msgstr "Conversation atteinte."
|
||||
|
||||
#: ../telegram-purple.c:417
|
||||
msgid "Chat added to list of chat rooms."
|
||||
msgstr "Conversation ajoutée dans la liste des conversations."
|
||||
|
||||
#: ../telegram-purple.c:443
|
||||
msgid "Start secret chat..."
|
||||
msgstr "Commencer une conversation secrète..."
|
||||
|
||||
#. Generate Public Link
|
||||
#: ../telegram-purple.c:450
|
||||
msgid "Invite users by link..."
|
||||
msgstr "Inviter des utilisateurs avec un lien..."
|
||||
|
||||
#. Delete self from chat
|
||||
#: ../telegram-purple.c:458
|
||||
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
|
||||
#, 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 ""
|
||||
"Impossible de s'identifier comme %s : Problème avec la librairie sous-"
|
||||
"jacente 'tgl'. Veuillez svp soumettre un rapport de bug incluant des "
|
||||
"informations de débug."
|
||||
|
||||
#: ../telegram-purple.c:576
|
||||
msgid "Problem in tgl"
|
||||
msgstr "Problème relatif à Tgl"
|
||||
|
||||
#. TRANSLATORS: Please fill in your own prefix!
|
||||
#: ../telegram-purple.c:584
|
||||
#, 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 ""
|
||||
"Impossible de se connecter avec %s : le préfixe de pays est manquant. Le "
|
||||
"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
|
||||
msgid "Incomplete phone number"
|
||||
msgstr "Numéro de téléphone incomplet"
|
||||
|
||||
#: ../telegram-purple.c:642
|
||||
msgid "Secret chat was already deleted"
|
||||
msgstr "Conversation secrète déjà supprimée."
|
||||
|
||||
#: ../telegram-purple.c:644
|
||||
msgid "Secret chat is not ready"
|
||||
msgstr "Conversation secrète non prête"
|
||||
|
||||
#: ../telegram-purple.c:652
|
||||
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
|
||||
msgid "Cannot invite buddy to chat"
|
||||
msgstr "Impossible d'ajouter le contact à la conversation"
|
||||
|
||||
#: ../telegram-purple.c:696
|
||||
msgid "Specified user does not exist."
|
||||
msgstr "L'utilisateur spécifié n'existe pas."
|
||||
|
||||
#: ../telegram-purple.c:709
|
||||
msgid "phone no. (+ country prefix)"
|
||||
msgstr "n° téléphone (+ préfixe pays)"
|
||||
|
||||
#. Login
|
||||
#: ../telegram-purple.c:817
|
||||
msgid "Password (two factor authentication)"
|
||||
msgstr "Mot de passe (authentification à deux facteurs)"
|
||||
|
||||
#: ../telegram-purple.c:822
|
||||
msgid ""
|
||||
"Fallback SMS verification\n"
|
||||
"(Helps when not using Pidgin and you aren't being prompted for the code)"
|
||||
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"
|
||||
|
||||
#: ../telegram-purple.c:829
|
||||
msgid "never"
|
||||
msgstr "jamais"
|
||||
|
||||
#: ../telegram-purple.c:830
|
||||
msgid "ask"
|
||||
msgstr "demander"
|
||||
|
||||
#: ../telegram-purple.c:832
|
||||
msgid "Accept secret chats"
|
||||
msgstr "Accepter la conversation secrète"
|
||||
|
||||
#: ../telegram-purple.c:836
|
||||
msgid "Display buddies offline after (days)"
|
||||
msgstr "Afficher les contacts déconnectés après (jours)"
|
||||
|
||||
#: ../telegram-purple.c:840
|
||||
msgid ""
|
||||
"Don't fetch history older than (days)\n"
|
||||
"(0 for unlimited)"
|
||||
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)"
|
||||
|
||||
#. Chats
|
||||
#: ../telegram-purple.c:850
|
||||
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
|
||||
msgid "Display notices of receipt"
|
||||
msgstr "Afficher les notifications de réception"
|
||||
|
||||
#: ../telegram-purple.c:859
|
||||
msgid "Send notices of receipt when present"
|
||||
msgstr "Envoyer des notifications de réception quand vous êtes présent."
|
||||
|
||||
#: ../telegram-purple.c:884
|
||||
msgid "Telegram Protocol Plugin."
|
||||
msgstr "Extension Protocole Telegram"
|
||||
|
||||
#: ../tgp-msg.c:58
|
||||
#, c-format
|
||||
msgid "%2$s created chat %1$s."
|
||||
msgstr "%2$s a créé la conversation %1$s."
|
||||
|
||||
#: ../tgp-msg.c:61
|
||||
#, c-format
|
||||
msgid "%2$s changed title to %1$s."
|
||||
msgstr "%2$s a changé le titre pour %1$s."
|
||||
|
||||
#: ../tgp-msg.c:64
|
||||
#, c-format
|
||||
msgid "%s changed photo."
|
||||
msgstr "%s a changé sa photo."
|
||||
|
||||
#: ../tgp-msg.c:67
|
||||
#, c-format
|
||||
msgid "%s deleted photo."
|
||||
msgstr "%s a supprimé la photo."
|
||||
|
||||
#: ../tgp-msg.c:75
|
||||
#, c-format
|
||||
msgid "%1$s added user %2$s by link."
|
||||
msgstr "%1$s a ajouté l'utilisateur %2$s avec un lien."
|
||||
|
||||
#: ../tgp-msg.c:90
|
||||
#, c-format
|
||||
msgid "%2$s added user %1$s."
|
||||
msgstr "%2$s a ajouté l'utilisateur %1$s."
|
||||
|
||||
#: ../tgp-msg.c:114 ../tgp-msg.c:131
|
||||
#, c-format
|
||||
msgid "%2$s deleted user %1$s."
|
||||
msgstr "%2$s a supprimé l'utilisateur %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 a mis le compte a rebours d'auto destruction à %1$d secondes."
|
||||
msgstr[1] "%2$s a mis le compte à rebours d'auto destruction à %1$d secondes."
|
||||
|
||||
#: ../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 a marqué les messages de %1$d lu."
|
||||
msgstr[1] "%2$s a marqué les messages de %1$d lus."
|
||||
|
||||
#: ../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 a supprimé les messages de %1$d."
|
||||
msgstr[1] "%2$s a supprimé les messages de %1$d."
|
||||
|
||||
#: ../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 a pris un copie d'écran des messages de %1$d."
|
||||
msgstr[1] "%2$s a pris une copie d'écran des messages de %1$d."
|
||||
|
||||
#: ../tgp-msg.c:162
|
||||
#, c-format
|
||||
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
|
||||
msgid "Telegram Channels"
|
||||
msgstr "Canaux Telegram"
|
||||
|
||||
#: ../tgp-msg.c:191
|
||||
msgid "Sending message failed."
|
||||
msgstr "L'envoi du message a échoué."
|
||||
|
||||
#: ../tgp-msg.c:253
|
||||
msgid "Sending image failed."
|
||||
msgstr "L'envoi de l'image a échoué."
|
||||
|
||||
#: ../tgp-msg.c:417
|
||||
#, 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:515
|
||||
msgid "[audio]"
|
||||
msgstr "[audio]"
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[video]"
|
||||
msgstr "[video]"
|
||||
|
||||
#: ../tgp-msg.c:604
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message from: %s</b><br>%s"
|
||||
msgstr "<b>Message transféré depuis : %s</b><br>%s"
|
||||
|
||||
#. FIXME: sometimes users aren't part of the response when receiving a
|
||||
#. forwarded message
|
||||
#: ../tgp-msg.c:607
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message:</b><br>%s"
|
||||
msgstr "<b>Message transféré :</b><br>%s"
|
||||
|
||||
#: ../tgp-msg.c:720
|
||||
msgid "loading document or picture failed"
|
||||
msgstr "échec au chargement du document ou de l'image"
|
||||
|
||||
#: ../tgp-net.c:281
|
||||
msgid "Cannot connect to main server"
|
||||
msgstr "Impossible de se connecter au serveur principal"
|
||||
|
||||
#: ../tgp-net.c:322
|
||||
msgid "Cannot connect to server: Ping timeout."
|
||||
msgstr "Impossible de se connecter avec le serveur : Délai d'attente dépassé."
|
||||
|
||||
#: ../tgp-net.c:365
|
||||
msgid "Lost connection to the server..."
|
||||
msgstr "Connexion au serveur perdue..."
|
||||
|
||||
#: ../tgp-request.c:51
|
||||
msgid ""
|
||||
"Telegram wants to verify your identity. Please enter the login code that you"
|
||||
" have received via SMS."
|
||||
msgstr ""
|
||||
"Telegram veut vérifier votre identité, Entrez le code que vous avez reçu par"
|
||||
" SMS."
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Login code"
|
||||
msgstr "Code de connexion"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Enter login code"
|
||||
msgstr "Entrez le code de connexion"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "the code"
|
||||
msgstr "le code"
|
||||
|
||||
#: ../tgp-request.c:54 ../tgp-request.c:104 ../tgp-request.c:198
|
||||
#: ../tgp-request.c:233 ../tgp-request.c:263
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
|
||||
#: ../tgp-request.c:55 ../tgp-request.c:104 ../tgp-request.c:123
|
||||
#: ../tgp-request.c:199 ../tgp-request.c:234 ../tgp-request.c:264
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
#: ../tgp-request.c:95
|
||||
msgid "Registration"
|
||||
msgstr "Enregistrement"
|
||||
|
||||
#: ../tgp-request.c:96
|
||||
msgid "First name"
|
||||
msgstr "Prénom"
|
||||
|
||||
#: ../tgp-request.c:99
|
||||
msgid "Last name"
|
||||
msgstr "Nom de famille"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Register"
|
||||
msgstr "Enregistrer"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Please register your phone number."
|
||||
msgstr "Enregistrez votre numéro de téléphone."
|
||||
|
||||
#. purple_request API not available
|
||||
#: ../tgp-request.c:108
|
||||
msgid ""
|
||||
"Phone number is not registered. Please register your phone on a different "
|
||||
"client."
|
||||
msgstr ""
|
||||
"Numéro de téléphone non enregistré. Enregistrez un numéro de téléphone sur "
|
||||
"un appareil différent."
|
||||
|
||||
#: ../tgp-request.c:110
|
||||
msgid "Not registered"
|
||||
msgstr "Non enregistré"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Password needed"
|
||||
msgstr "Besoin du mot de passe"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Enter password for two factor authentication"
|
||||
msgstr "Entrez le mot de passe pour l'authentification à deux facteurs"
|
||||
|
||||
#: ../tgp-request.c:123
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: ../tgp-request.c:125
|
||||
msgid ""
|
||||
"No password set for two factor authentication. Please enter it in the "
|
||||
"extended settings."
|
||||
msgstr ""
|
||||
"Pas de mot de passe à deux facteurs spécifié. Entrez-en un dans la "
|
||||
"configuration étendue."
|
||||
|
||||
#: ../tgp-request.c:127
|
||||
msgid "Password invalid"
|
||||
msgstr "Mot de passe invalide"
|
||||
|
||||
#: ../tgp-request.c:150
|
||||
#, c-format
|
||||
msgid "Accept secret chat '%s' on this device?"
|
||||
msgstr "Accepter la conversation secrète %s sur cet appareil ?"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
msgid "Secret chat"
|
||||
msgstr "Conversation secrète"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
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 ""
|
||||
"Les conversations secrètes ne peuvent être vues que sur un seul appareil. Si"
|
||||
" vous acceptez la conversation secrète sur cet appareil, elle ne sera pas "
|
||||
"disponible ailleurs. Si vous refusez, vous pourrez toujours accepter cette "
|
||||
"conversation sur un autre appareil."
|
||||
|
||||
#: ../tgp-request.c:182
|
||||
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 ""
|
||||
"Invitez au moins un autre utilisateur (auto-complétion disponible).\n"
|
||||
"Vous pouvez ajouter plus d'utilisateurs une fois la conversation créée."
|
||||
|
||||
#: ../tgp-request.c:185 ../tgp-request.c:189 ../tgp-request.c:193
|
||||
msgid "Username"
|
||||
msgstr "Nom d'utilisateur"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Create group chat"
|
||||
msgstr "Créer une conversation de groupe"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Invite users"
|
||||
msgstr "Inviter des utilisateurs"
|
||||
|
||||
#: ../tgp-request.c:217 ../tgp-request.c:232
|
||||
msgid "Change password"
|
||||
msgstr "Changer le mot de passe"
|
||||
|
||||
#: ../tgp-request.c:219
|
||||
msgid "Current"
|
||||
msgstr "Courrant"
|
||||
|
||||
#: ../tgp-request.c:223 ../tgp-request.c:253
|
||||
msgid "Password"
|
||||
msgstr "Mot de passe"
|
||||
|
||||
#: ../tgp-request.c:227 ../tgp-request.c:257
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmer"
|
||||
|
||||
#: ../tgp-request.c:251 ../tgp-request.c:262
|
||||
msgid "New password"
|
||||
msgstr "Nouveau mot de passe"
|
||||
|
||||
#. 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
|
||||
msgid "Invalid phone number"
|
||||
msgstr "Numéro de téléphone invalide"
|
||||
|
||||
#: ../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 ""
|
||||
"Entrez seulement des numéros dans le champs pour le numéro international, un + suivi du préfixe de pays et du numéro de téléphone.\n"
|
||||
"N'utilisez aucun autre caractère spécial."
|
||||
|
||||
#: ../tgp-request.c:370
|
||||
msgid "Leave Chat"
|
||||
msgstr "Quitter la conversation"
|
||||
|
||||
#: ../tgp-request.c:372
|
||||
msgid "Do you want to leave this chat permantently?"
|
||||
msgstr "Voulez-vous quitter cette discussion définitivement ?"
|
||||
|
||||
#: ../tgp-request.c:377
|
||||
msgid "Abort Secret Chat"
|
||||
msgstr "Abandonner la conversation secrète"
|
||||
|
||||
#: ../tgp-request.c:379
|
||||
msgid "Do you want to terminate this secret chat permantently?"
|
||||
msgstr "Voulez-vous clore cette conversation définitivement ?"
|
||||
|
||||
#: ../tgp-request.c:384
|
||||
msgid "Delete Contact"
|
||||
msgstr "Supprimer ce contact"
|
||||
|
||||
#: ../tgp-request.c:386
|
||||
msgid "Do you want to remove this user from your global contact list?"
|
||||
msgstr ""
|
||||
"Voulez-vous supprimer cet utilisateur de votre liste de contacts globale ?"
|
||||
|
||||
#: ../tgp-request.c:401
|
||||
msgid "Leave Channel"
|
||||
msgstr "Quitter le canal"
|
||||
|
||||
#: ../tgp-request.c:403
|
||||
msgid "Do you want to leave this channel?"
|
||||
msgstr "Voulez-vous quitter ce canal ?"
|
||||
|
||||
#. This should be the language's timestamp format. This is preceded by a
|
||||
#. colon.
|
||||
#: ../tgp-utils.c:27
|
||||
msgid "%d.%m.%Y %H:%M"
|
||||
msgstr "%d.%m.%Y %H:%M"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:48
|
||||
msgid "recently"
|
||||
msgstr "récemment"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:52
|
||||
msgid "last week"
|
||||
msgstr "semaine précédente"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:56
|
||||
msgid "last month"
|
||||
msgstr "mois précédent"
|
||||
|
||||
#. This is preceded by a colon. It refers to a point on time.
|
||||
#: ../tgp-utils.c:60
|
||||
msgid "unknown"
|
||||
msgstr "inconnue"
|
||||
|
||||
#: ../tgp-chat.c:108 ../tgp-chat.c:582
|
||||
msgid "Telegram Chats"
|
||||
msgstr "Conversations de Telegram"
|
||||
|
||||
#: ../tgp-chat.c:113
|
||||
msgid "You have already left this chat."
|
||||
msgstr "Vous avez déjà quitté cette conversation."
|
||||
|
||||
#: ../tgp-chat.c:224
|
||||
msgid "Subject:"
|
||||
msgstr "Sujet :"
|
||||
|
||||
#: ../tgp-chat.c:230
|
||||
msgid "Invite link:"
|
||||
msgstr "Lien d'invitation :"
|
||||
|
||||
#: ../tgp-chat.c:236
|
||||
msgid "Chat ID:"
|
||||
msgstr "Chat ID :"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Supergroup"
|
||||
msgstr "Supergroup"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Channel"
|
||||
msgstr "Canal"
|
||||
|
||||
#: ../tgp-chat.c:345
|
||||
msgid "Group"
|
||||
msgstr "Groupe"
|
||||
|
||||
#: ../tgp-chat.c:367
|
||||
msgid "Users in chat"
|
||||
msgstr "Utilisateurs dans la conversation"
|
||||
|
||||
#: ../tgp-chat.c:370
|
||||
msgid "Type"
|
||||
msgstr "Type"
|
613
po/it_IT.po
613
po/it_IT.po
|
@ -1,613 +0,0 @@
|
|||
# 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"
|
||||
"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"
|
||||
"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-Transfer-Encoding: 8bit\n"
|
||||
"Language: it_IT\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ../telegram-base.c:500
|
||||
msgid "Couldn't create group"
|
||||
msgstr "Impossibile creare un gruppo"
|
||||
|
||||
#: ../telegram-base.c:501
|
||||
msgid "Please select at least one other user."
|
||||
msgstr "Seleziona almeno un altro utente"
|
||||
|
||||
#: ../telegram-base.c:555
|
||||
msgid "Query Failed"
|
||||
msgstr "Richiesta fallita"
|
||||
|
||||
#: ../telegram-purple.c:162
|
||||
msgid "Secret chat ready."
|
||||
msgstr "Chat segreta pronta."
|
||||
|
||||
#: ../telegram-purple.c:170
|
||||
msgid "Secret chat terminated."
|
||||
msgstr "Chat segreta terminata."
|
||||
|
||||
#: ../telegram-purple.c:182
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#: ../telegram-purple.c:229
|
||||
msgid "Message marked as read."
|
||||
msgstr "Messaggio contrassegnato come letto."
|
||||
|
||||
#: ../telegram-purple.c:339
|
||||
#, c-format
|
||||
msgid "Invite link: %s"
|
||||
msgstr "Link d'invito: %s"
|
||||
|
||||
#. FIXME: Can TGLCHF_MODERATOR export links?
|
||||
#: ../telegram-purple.c:350
|
||||
msgid "Creating chat link failed"
|
||||
msgstr "Creazione del link della chat fallito"
|
||||
|
||||
#: ../telegram-purple.c:351
|
||||
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
|
||||
msgid "Chat joined"
|
||||
msgstr "Entrato nella chat"
|
||||
|
||||
#: ../telegram-purple.c:417
|
||||
msgid "Chat added to list of chat rooms."
|
||||
msgstr "Chat aggiunta alla lista delle chat rooms"
|
||||
|
||||
#: ../telegram-purple.c:443
|
||||
msgid "Start secret chat..."
|
||||
msgstr "Inizia chat segreta..."
|
||||
|
||||
#. Generate Public Link
|
||||
#: ../telegram-purple.c:450
|
||||
msgid "Invite users by link..."
|
||||
msgstr "Invita utenti tramite link..."
|
||||
|
||||
#. Delete self from chat
|
||||
#: ../telegram-purple.c:458
|
||||
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
|
||||
#, 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 ""
|
||||
"Impossibile entrare come %s: problema con la libreria 'tgl'. Invia un bug "
|
||||
"report con il log di debug."
|
||||
|
||||
#: ../telegram-purple.c:576
|
||||
msgid "Problem in tgl"
|
||||
msgstr "Problema in tgl"
|
||||
|
||||
#. TRANSLATORS: Please fill in your own prefix!
|
||||
#: ../telegram-purple.c:584
|
||||
#, 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 ""
|
||||
"Impossibile accedere come %s: il numero telefonico manca del prefisso "
|
||||
"internazionale.I numeri devono iniziare con il prefisso internazionale "
|
||||
"completo, p.e. +39 per Italia."
|
||||
|
||||
#: ../telegram-purple.c:589
|
||||
msgid "Incomplete phone number"
|
||||
msgstr "Numero di telefono incompleto"
|
||||
|
||||
#: ../telegram-purple.c:642
|
||||
msgid "Secret chat was already deleted"
|
||||
msgstr "La chat segreta è già stata eliminata"
|
||||
|
||||
#: ../telegram-purple.c:644
|
||||
msgid "Secret chat is not ready"
|
||||
msgstr "La chat segreta non è pronta"
|
||||
|
||||
#: ../telegram-purple.c:652
|
||||
msgid "Only the creator of a channel can post messages."
|
||||
msgstr "Solo il creatore di un canale può postare messaggi."
|
||||
|
||||
#: ../telegram-purple.c:695
|
||||
msgid "Cannot invite buddy to chat"
|
||||
msgstr "Impossibile invitare il contatto alla chat."
|
||||
|
||||
#: ../telegram-purple.c:696
|
||||
msgid "Specified user does not exist."
|
||||
msgstr "L'utente specificato non esiste."
|
||||
|
||||
#: ../telegram-purple.c:709
|
||||
msgid "phone no. (+ country prefix)"
|
||||
msgstr "num. telefono ( + prefisso internazionale)"
|
||||
|
||||
#. Login
|
||||
#: ../telegram-purple.c:817
|
||||
msgid "Password (two factor authentication)"
|
||||
msgstr "Password (autenticazione a due fattori)"
|
||||
|
||||
#: ../telegram-purple.c:822
|
||||
msgid ""
|
||||
"Fallback SMS verification\n"
|
||||
"(Helps when not using Pidgin and you aren't being prompted for the code)"
|
||||
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"
|
||||
|
||||
#: ../telegram-purple.c:829
|
||||
msgid "never"
|
||||
msgstr "mai"
|
||||
|
||||
#: ../telegram-purple.c:830
|
||||
msgid "ask"
|
||||
msgstr "chiedi"
|
||||
|
||||
#: ../telegram-purple.c:832
|
||||
msgid "Accept secret chats"
|
||||
msgstr "Accetta chat segrete"
|
||||
|
||||
#: ../telegram-purple.c:836
|
||||
msgid "Display buddies offline after (days)"
|
||||
msgstr "Mostra utenti offline dopo (giorni)"
|
||||
|
||||
#: ../telegram-purple.c:840
|
||||
msgid ""
|
||||
"Don't fetch history older than (days)\n"
|
||||
"(0 for unlimited)"
|
||||
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)"
|
||||
|
||||
#. Chats
|
||||
#: ../telegram-purple.c:850
|
||||
msgid "Add all group chats to buddy list"
|
||||
msgstr "Aggiungi tutte le chat di gruppo alla lista contatti"
|
||||
|
||||
#. Read notifications
|
||||
#: ../telegram-purple.c:855
|
||||
msgid "Display notices of receipt"
|
||||
msgstr "Mostra notifiche di ricezione"
|
||||
|
||||
#: ../telegram-purple.c:859
|
||||
msgid "Send notices of receipt when present"
|
||||
msgstr "Invia notifiche di ricezione quando presente"
|
||||
|
||||
#: ../telegram-purple.c:884
|
||||
msgid "Telegram Protocol Plugin."
|
||||
msgstr "Plugin di protocollo Telegram"
|
||||
|
||||
#: ../tgp-msg.c:58
|
||||
#, c-format
|
||||
msgid "%2$s created chat %1$s."
|
||||
msgstr "%2$s ha creato la chat %1$s."
|
||||
|
||||
#: ../tgp-msg.c:61
|
||||
#, c-format
|
||||
msgid "%2$s changed title to %1$s."
|
||||
msgstr "%2$s ha cambiato titolo a %1$s."
|
||||
|
||||
#: ../tgp-msg.c:64
|
||||
#, c-format
|
||||
msgid "%s changed photo."
|
||||
msgstr "%s ha cambiato la foto."
|
||||
|
||||
#: ../tgp-msg.c:67
|
||||
#, c-format
|
||||
msgid "%s deleted photo."
|
||||
msgstr "%s ha cancellato la foto."
|
||||
|
||||
#: ../tgp-msg.c:75
|
||||
#, c-format
|
||||
msgid "%1$s added user %2$s by link."
|
||||
msgstr "%1$s ha aggiunto l'utente %2$s tramite link."
|
||||
|
||||
#: ../tgp-msg.c:90
|
||||
#, c-format
|
||||
msgid "%2$s added user %1$s."
|
||||
msgstr "%2$s ha aggiunto l'utente %1$s."
|
||||
|
||||
#: ../tgp-msg.c:114 ../tgp-msg.c:131
|
||||
#, c-format
|
||||
msgid "%2$s deleted user %1$s."
|
||||
msgstr "%2$s ha eliminato l'utente %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 ha impostato il timer di autodistruzione a %1$d secondi."
|
||||
msgstr[1] "%2$s ha impostato il timer di autodistruzione a %1$d secondi."
|
||||
|
||||
#: ../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 ha contrassegnato come letti i messaggi %1$d "
|
||||
msgstr[1] "%2$s ha contrassegnato come letti i messaggi %1$d "
|
||||
|
||||
#: ../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 ha cancellato %1$d messaggi."
|
||||
msgstr[1] "%2$s ha cancellato %1$d messaggi."
|
||||
|
||||
#: ../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 ha creato una immagine dello schermo dei messaggi %1$d."
|
||||
msgstr[1] "%2$s ha creato una immagine dello schermo dei messaggi %1$d."
|
||||
|
||||
#: ../tgp-msg.c:162
|
||||
#, c-format
|
||||
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
|
||||
msgid "Telegram Channels"
|
||||
msgstr "Canali Telegram"
|
||||
|
||||
#: ../tgp-msg.c:191
|
||||
msgid "Sending message failed."
|
||||
msgstr "Invio immagine fallito."
|
||||
|
||||
#: ../tgp-msg.c:253
|
||||
msgid "Sending image failed."
|
||||
msgstr "Invio immagine fallito."
|
||||
|
||||
#: ../tgp-msg.c:417
|
||||
#, 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:515
|
||||
msgid "[audio]"
|
||||
msgstr "[audio]"
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[video]"
|
||||
msgstr "[video]"
|
||||
|
||||
#: ../tgp-msg.c:604
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message from: %s</b><br>%s"
|
||||
msgstr "<b>Messaggio inoltrato da: %s</b><br>%s"
|
||||
|
||||
#. FIXME: sometimes users aren't part of the response when receiving a
|
||||
#. forwarded message
|
||||
#: ../tgp-msg.c:607
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message:</b><br>%s"
|
||||
msgstr "<b>Messaggio inoltrato:</b><br>%s"
|
||||
|
||||
#: ../tgp-msg.c:720
|
||||
msgid "loading document or picture failed"
|
||||
msgstr "caricamento del documento o della foto fallito"
|
||||
|
||||
#: ../tgp-net.c:281
|
||||
msgid "Cannot connect to main server"
|
||||
msgstr "Impossibile connettersi col server"
|
||||
|
||||
#: ../tgp-net.c:322
|
||||
msgid "Cannot connect to server: Ping timeout."
|
||||
msgstr "Impossibile connettersi al server: Ping timeout."
|
||||
|
||||
#: ../tgp-net.c:365
|
||||
msgid "Lost connection to the server..."
|
||||
msgstr "Connessione al server fallita..."
|
||||
|
||||
#: ../tgp-request.c:51
|
||||
msgid ""
|
||||
"Telegram wants to verify your identity. Please enter the login code that you"
|
||||
" have received via SMS."
|
||||
msgstr ""
|
||||
"Telegram vuole verificare la tua identità, Prego inserisci il codice "
|
||||
"ricevuto via SMS."
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Login code"
|
||||
msgstr "Codice di accesso (login)"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Enter login code"
|
||||
msgstr "Inserire codice d'accesso (login)"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "the code"
|
||||
msgstr "il codice"
|
||||
|
||||
#: ../tgp-request.c:54 ../tgp-request.c:104 ../tgp-request.c:198
|
||||
#: ../tgp-request.c:233 ../tgp-request.c:263
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
|
||||
#: ../tgp-request.c:55 ../tgp-request.c:104 ../tgp-request.c:123
|
||||
#: ../tgp-request.c:199 ../tgp-request.c:234 ../tgp-request.c:264
|
||||
msgid "Cancel"
|
||||
msgstr "Annulla"
|
||||
|
||||
#: ../tgp-request.c:95
|
||||
msgid "Registration"
|
||||
msgstr "Registrazione"
|
||||
|
||||
#: ../tgp-request.c:96
|
||||
msgid "First name"
|
||||
msgstr "Nome"
|
||||
|
||||
#: ../tgp-request.c:99
|
||||
msgid "Last name"
|
||||
msgstr "Cognome"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Register"
|
||||
msgstr "Registrati"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Please register your phone number."
|
||||
msgstr "Per favore registra il tuo numero di telefono."
|
||||
|
||||
#. purple_request API not available
|
||||
#: ../tgp-request.c:108
|
||||
msgid ""
|
||||
"Phone number is not registered. Please register your phone on a different "
|
||||
"client."
|
||||
msgstr ""
|
||||
"Numero telefonico non registrato. Per favore registra il tuo numero "
|
||||
"telefonico con un client differente."
|
||||
|
||||
#: ../tgp-request.c:110
|
||||
msgid "Not registered"
|
||||
msgstr "Non registrato"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Password needed"
|
||||
msgstr "Password necessaria"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Enter password for two factor authentication"
|
||||
msgstr "Inserire password per autenticazione a due fattori"
|
||||
|
||||
#: ../tgp-request.c:123
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: ../tgp-request.c:125
|
||||
msgid ""
|
||||
"No password set for two factor authentication. Please enter it in the "
|
||||
"extended settings."
|
||||
msgstr ""
|
||||
"Nessuna password impostata per l'autenticazione a due fattori.Prego "
|
||||
"impostarla nelle impostazioni estese"
|
||||
|
||||
#: ../tgp-request.c:127
|
||||
msgid "Password invalid"
|
||||
msgstr "Password non valida"
|
||||
|
||||
#: ../tgp-request.c:150
|
||||
#, c-format
|
||||
msgid "Accept secret chat '%s' on this device?"
|
||||
msgstr "Accetti la Chat Segreta '%s'?"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
msgid "Secret chat"
|
||||
msgstr "Chat Segreta"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
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 ""
|
||||
"Le Chat Segrete possono avere un solo punto terminale. Se accetti la chat "
|
||||
"segreta su questo dispositivo, i messaggi dentro di essa non saranno "
|
||||
"disponibili da nessun altra parte. Se declini, potrai accettare la chat su "
|
||||
"altri dispositivi."
|
||||
|
||||
#: ../tgp-request.c:182
|
||||
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 ""
|
||||
"Invita almeno un altro utente specificando\n"
|
||||
" il suo nome completo (autocompletamento disponibile).\n"
|
||||
"Puoi aggiungere più utenti una volta che la chat è stata creata."
|
||||
|
||||
#: ../tgp-request.c:185 ../tgp-request.c:189 ../tgp-request.c:193
|
||||
msgid "Username"
|
||||
msgstr "Nome utente"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Create group chat"
|
||||
msgstr "Crea chat di gruppo"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Invite users"
|
||||
msgstr "Invita utenti"
|
||||
|
||||
#: ../tgp-request.c:217 ../tgp-request.c:232
|
||||
msgid "Change password"
|
||||
msgstr "Cambia password"
|
||||
|
||||
#: ../tgp-request.c:219
|
||||
msgid "Current"
|
||||
msgstr "Corrente"
|
||||
|
||||
#: ../tgp-request.c:223 ../tgp-request.c:253
|
||||
msgid "Password"
|
||||
msgstr "Password"
|
||||
|
||||
#: ../tgp-request.c:227 ../tgp-request.c:257
|
||||
msgid "Confirm"
|
||||
msgstr "Conferma"
|
||||
|
||||
#: ../tgp-request.c:251 ../tgp-request.c:262
|
||||
msgid "New password"
|
||||
msgstr "Nuova password"
|
||||
|
||||
#. 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
|
||||
msgid "Invalid phone number"
|
||||
msgstr "Numero di telefono non valido"
|
||||
|
||||
#: ../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 ""
|
||||
"Inserire solo numeri nel formato telefonico internazionale, un + iniziale, seguito dal prefisso internazionale e al numero telefonico completo. \n"
|
||||
"Non usare altri caratteri speciali."
|
||||
|
||||
#: ../tgp-request.c:370
|
||||
msgid "Leave Chat"
|
||||
msgstr "Lascia chat"
|
||||
|
||||
#: ../tgp-request.c:372
|
||||
msgid "Do you want to leave this chat permantently?"
|
||||
msgstr "Vuoi lasciare questa chat in modo permanente?"
|
||||
|
||||
#: ../tgp-request.c:377
|
||||
msgid "Abort Secret Chat"
|
||||
msgstr "Annulla Chat Segreta"
|
||||
|
||||
#: ../tgp-request.c:379
|
||||
msgid "Do you want to terminate this secret chat permantently?"
|
||||
msgstr "Vuoi terminare questa chat segreta in modo permanente?"
|
||||
|
||||
#: ../tgp-request.c:384
|
||||
msgid "Delete Contact"
|
||||
msgstr "Elimina contatto"
|
||||
|
||||
#: ../tgp-request.c:386
|
||||
msgid "Do you want to remove this user from your global contact list?"
|
||||
msgstr "Vuoi rimuovere questo utente dal tuo elenco dei contatti globale?"
|
||||
|
||||
#: ../tgp-request.c:401
|
||||
msgid "Leave Channel"
|
||||
msgstr "Lascia il canale"
|
||||
|
||||
#: ../tgp-request.c:403
|
||||
msgid "Do you want to leave this channel?"
|
||||
msgstr "Vuoi lasciare questo canale?"
|
||||
|
||||
#. This should be the language's timestamp format. This is preceded by a
|
||||
#. colon.
|
||||
#: ../tgp-utils.c:27
|
||||
msgid "%d.%m.%Y %H:%M"
|
||||
msgstr "%d.%m.%Y %H:%M"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:48
|
||||
msgid "recently"
|
||||
msgstr "recentemente"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:52
|
||||
msgid "last week"
|
||||
msgstr "ultima settimana"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:56
|
||||
msgid "last month"
|
||||
msgstr "ultimo mese"
|
||||
|
||||
#. This is preceded by a colon. It refers to a point on time.
|
||||
#: ../tgp-utils.c:60
|
||||
msgid "unknown"
|
||||
msgstr "sconosciuto"
|
||||
|
||||
#: ../tgp-chat.c:108 ../tgp-chat.c:582
|
||||
msgid "Telegram Chats"
|
||||
msgstr "Chat di Telegram"
|
||||
|
||||
#: ../tgp-chat.c:113
|
||||
msgid "You have already left this chat."
|
||||
msgstr "Hai già lasciato questa chat."
|
||||
|
||||
#: ../tgp-chat.c:224
|
||||
msgid "Subject:"
|
||||
msgstr "Oggetto:"
|
||||
|
||||
#: ../tgp-chat.c:230
|
||||
msgid "Invite link:"
|
||||
msgstr "Link d'invito:"
|
||||
|
||||
#: ../tgp-chat.c:236
|
||||
msgid "Chat ID:"
|
||||
msgstr "ID chat:"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Supergroup"
|
||||
msgstr "Supergruppo"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Channel"
|
||||
msgstr "Canale"
|
||||
|
||||
#: ../tgp-chat.c:345
|
||||
msgid "Group"
|
||||
msgstr "Gruppo"
|
||||
|
||||
#: ../tgp-chat.c:367
|
||||
msgid "Users in chat"
|
||||
msgstr "Utenti in chat."
|
||||
|
||||
#: ../tgp-chat.c:370
|
||||
msgid "Type"
|
||||
msgstr "Tipo"
|
613
po/nl.po
613
po/nl.po
|
@ -1,613 +0,0 @@
|
|||
# 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"
|
||||
"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"
|
||||
"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-Transfer-Encoding: 8bit\n"
|
||||
"Language: nl\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ../telegram-base.c:500
|
||||
msgid "Couldn't create group"
|
||||
msgstr "Kon groep niet aanmaken"
|
||||
|
||||
#: ../telegram-base.c:501
|
||||
msgid "Please select at least one other user."
|
||||
msgstr "Selecteer minimaal één andere gebruiker."
|
||||
|
||||
#: ../telegram-base.c:555
|
||||
msgid "Query Failed"
|
||||
msgstr "Zoekopdracht mislukt"
|
||||
|
||||
#: ../telegram-purple.c:162
|
||||
msgid "Secret chat ready."
|
||||
msgstr "Geheime chat gereed."
|
||||
|
||||
#: ../telegram-purple.c:170
|
||||
msgid "Secret chat terminated."
|
||||
msgstr "Geheime chat beëindigd."
|
||||
|
||||
#: ../telegram-purple.c:182
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#: ../telegram-purple.c:229
|
||||
msgid "Message marked as read."
|
||||
msgstr "Bericht gemarkeerd als gelezen."
|
||||
|
||||
#: ../telegram-purple.c:339
|
||||
#, c-format
|
||||
msgid "Invite link: %s"
|
||||
msgstr "Uitnodigingkoppeling: %s"
|
||||
|
||||
#. FIXME: Can TGLCHF_MODERATOR export links?
|
||||
#: ../telegram-purple.c:350
|
||||
msgid "Creating chat link failed"
|
||||
msgstr "Chatkoppeling aanmaken mislukt"
|
||||
|
||||
#: ../telegram-purple.c:351
|
||||
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
|
||||
msgid "Chat joined"
|
||||
msgstr "Bij chat binnengekomen"
|
||||
|
||||
#: ../telegram-purple.c:417
|
||||
msgid "Chat added to list of chat rooms."
|
||||
msgstr "Chat toegevoegd aan de chatruimtelijst."
|
||||
|
||||
#: ../telegram-purple.c:443
|
||||
msgid "Start secret chat..."
|
||||
msgstr "Geheime chat starten..."
|
||||
|
||||
#. Generate Public Link
|
||||
#: ../telegram-purple.c:450
|
||||
msgid "Invite users by link..."
|
||||
msgstr "Gebruikers met koppeling uitnodigen..."
|
||||
|
||||
#. Delete self from chat
|
||||
#: ../telegram-purple.c:458
|
||||
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
|
||||
#, 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 ""
|
||||
"Kon niet aanmelden als %s: probleem in de onderliggende bibliotheek ‘tgl’. "
|
||||
"Verstuur alstublieft een foutenrapport met het debuglogboek."
|
||||
|
||||
#: ../telegram-purple.c:576
|
||||
msgid "Problem in tgl"
|
||||
msgstr "Probleem in tgl"
|
||||
|
||||
#. TRANSLATORS: Please fill in your own prefix!
|
||||
#: ../telegram-purple.c:584
|
||||
#, 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 ""
|
||||
"Kon niet aanmelden als %s: landnummer ontbreekt in telefoonnummer. Nummers "
|
||||
"moeten starten met het volledige internationale landnummer, bijvoorbeeld +31"
|
||||
" voor Nederland."
|
||||
|
||||
#: ../telegram-purple.c:589
|
||||
msgid "Incomplete phone number"
|
||||
msgstr "Onvolledig telefoonnummer"
|
||||
|
||||
#: ../telegram-purple.c:642
|
||||
msgid "Secret chat was already deleted"
|
||||
msgstr "Geheime chat was al verwijderd"
|
||||
|
||||
#: ../telegram-purple.c:644
|
||||
msgid "Secret chat is not ready"
|
||||
msgstr "Geheime chat is niet gereed"
|
||||
|
||||
#: ../telegram-purple.c:652
|
||||
msgid "Only the creator of a channel can post messages."
|
||||
msgstr "Alleen de maker van een kanaal kan berichten plaatsen."
|
||||
|
||||
#: ../telegram-purple.c:695
|
||||
msgid "Cannot invite buddy to chat"
|
||||
msgstr "Kan vriend niet uitnodigen om te chatten"
|
||||
|
||||
#: ../telegram-purple.c:696
|
||||
msgid "Specified user does not exist."
|
||||
msgstr "Opgegeven gebruiker bestaat niet."
|
||||
|
||||
#: ../telegram-purple.c:709
|
||||
msgid "phone no. (+ country prefix)"
|
||||
msgstr "telefoonnummer (+ landnummer)"
|
||||
|
||||
#. Login
|
||||
#: ../telegram-purple.c:817
|
||||
msgid "Password (two factor authentication)"
|
||||
msgstr "Wachtwoord (authentificatie in twee stappen)"
|
||||
|
||||
#: ../telegram-purple.c:822
|
||||
msgid ""
|
||||
"Fallback SMS verification\n"
|
||||
"(Helps when not using Pidgin and you aren't being prompted for the code)"
|
||||
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"
|
||||
|
||||
#: ../telegram-purple.c:829
|
||||
msgid "never"
|
||||
msgstr "nooit"
|
||||
|
||||
#: ../telegram-purple.c:830
|
||||
msgid "ask"
|
||||
msgstr "vragen"
|
||||
|
||||
#: ../telegram-purple.c:832
|
||||
msgid "Accept secret chats"
|
||||
msgstr "Geheime chats accepteren"
|
||||
|
||||
#: ../telegram-purple.c:836
|
||||
msgid "Display buddies offline after (days)"
|
||||
msgstr "Vrienden offline weergeven na (dagen)"
|
||||
|
||||
#: ../telegram-purple.c:840
|
||||
msgid ""
|
||||
"Don't fetch history older than (days)\n"
|
||||
"(0 for unlimited)"
|
||||
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)"
|
||||
|
||||
#. Chats
|
||||
#: ../telegram-purple.c:850
|
||||
msgid "Add all group chats to buddy list"
|
||||
msgstr "Alle groepschats aan de vriendenlijst toevoegen"
|
||||
|
||||
#. Read notifications
|
||||
#: ../telegram-purple.c:855
|
||||
msgid "Display notices of receipt"
|
||||
msgstr "Ontvangstmeldingen tonen"
|
||||
|
||||
#: ../telegram-purple.c:859
|
||||
msgid "Send notices of receipt when present"
|
||||
msgstr "Ontvangstmeldingen versturen indien aanwezig"
|
||||
|
||||
#: ../telegram-purple.c:884
|
||||
msgid "Telegram Protocol Plugin."
|
||||
msgstr "Telegram-protocol-plug-in."
|
||||
|
||||
#: ../tgp-msg.c:58
|
||||
#, c-format
|
||||
msgid "%2$s created chat %1$s."
|
||||
msgstr "%2$s heeft geheime chat %1$s aangemaakt."
|
||||
|
||||
#: ../tgp-msg.c:61
|
||||
#, c-format
|
||||
msgid "%2$s changed title to %1$s."
|
||||
msgstr "%2$s heeft titel naar %1$s gewijzigd."
|
||||
|
||||
#: ../tgp-msg.c:64
|
||||
#, c-format
|
||||
msgid "%s changed photo."
|
||||
msgstr "%s heeft foto gewijzigd."
|
||||
|
||||
#: ../tgp-msg.c:67
|
||||
#, c-format
|
||||
msgid "%s deleted photo."
|
||||
msgstr "%s heeft foto verwijderd."
|
||||
|
||||
#: ../tgp-msg.c:75
|
||||
#, c-format
|
||||
msgid "%1$s added user %2$s by link."
|
||||
msgstr "%1$s heeft gebruiker %2$s toegevoegd met koppeling."
|
||||
|
||||
#: ../tgp-msg.c:90
|
||||
#, c-format
|
||||
msgid "%2$s added user %1$s."
|
||||
msgstr "%2$s heeft gebruiker %1$s toegevoegd."
|
||||
|
||||
#: ../tgp-msg.c:114 ../tgp-msg.c:131
|
||||
#, c-format
|
||||
msgid "%2$s deleted user %1$s."
|
||||
msgstr "%2$s heeft gebruiker %1$s verwijderd."
|
||||
|
||||
#: ../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 heeft zelfvernietigingstimer ingesteld op %1$d seconde."
|
||||
msgstr[1] "%2$s heeft zelfvernietigingstimer ingesteld op %1$d seconden."
|
||||
|
||||
#: ../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 heeft %1$d bericht als gelezen gemarkeerd."
|
||||
msgstr[1] "%2$s heeft %1$d berichten als gelezen gemarkeerd."
|
||||
|
||||
#: ../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 heeft %1$d bericht verwijderd."
|
||||
msgstr[1] "%2$s heeft %1$d berichten verwijderd."
|
||||
|
||||
#: ../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 heeft een schermafdruk gemaakt van %1$d bericht."
|
||||
msgstr[1] "%2$s heeft een schermafdruk gemaakt van %1$d berichten."
|
||||
|
||||
#: ../tgp-msg.c:162
|
||||
#, c-format
|
||||
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
|
||||
msgid "Telegram Channels"
|
||||
msgstr "Telegram-kanalen"
|
||||
|
||||
#: ../tgp-msg.c:191
|
||||
msgid "Sending message failed."
|
||||
msgstr "Bericht versturen mislukt."
|
||||
|
||||
#: ../tgp-msg.c:253
|
||||
msgid "Sending image failed."
|
||||
msgstr "Afbeelding versturen mislukt."
|
||||
|
||||
#: ../tgp-msg.c:417
|
||||
#, 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:515
|
||||
msgid "[audio]"
|
||||
msgstr "[audio]"
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[video]"
|
||||
msgstr "[video]"
|
||||
|
||||
#: ../tgp-msg.c:604
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message from: %s</b><br>%s"
|
||||
msgstr "<b>Doorgestuurd bericht van: %s</b><br>%s"
|
||||
|
||||
#. FIXME: sometimes users aren't part of the response when receiving a
|
||||
#. forwarded message
|
||||
#: ../tgp-msg.c:607
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message:</b><br>%s"
|
||||
msgstr "<b>Doorgestuurd bericht:</b><br>%s"
|
||||
|
||||
#: ../tgp-msg.c:720
|
||||
msgid "loading document or picture failed"
|
||||
msgstr "document of foto laden mislukt"
|
||||
|
||||
#: ../tgp-net.c:281
|
||||
msgid "Cannot connect to main server"
|
||||
msgstr "Kan niet verbinden met hoofdserver"
|
||||
|
||||
#: ../tgp-net.c:322
|
||||
msgid "Cannot connect to server: Ping timeout."
|
||||
msgstr "Kan niet verbinden met server: ping-timeout"
|
||||
|
||||
#: ../tgp-net.c:365
|
||||
msgid "Lost connection to the server..."
|
||||
msgstr "Verbinding met de server verloren..."
|
||||
|
||||
#: ../tgp-request.c:51
|
||||
msgid ""
|
||||
"Telegram wants to verify your identity. Please enter the login code that you"
|
||||
" have received via SMS."
|
||||
msgstr ""
|
||||
"Telegram wil uw identiteit graag controleren. Voer de inlogcode in die u per"
|
||||
" SMS heeft ontvangen."
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Login code"
|
||||
msgstr "Inlogcode"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Enter login code"
|
||||
msgstr "Inlogcode invoeren"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "the code"
|
||||
msgstr "de code"
|
||||
|
||||
#: ../tgp-request.c:54 ../tgp-request.c:104 ../tgp-request.c:198
|
||||
#: ../tgp-request.c:233 ../tgp-request.c:263
|
||||
msgid "OK"
|
||||
msgstr "Ok"
|
||||
|
||||
#: ../tgp-request.c:55 ../tgp-request.c:104 ../tgp-request.c:123
|
||||
#: ../tgp-request.c:199 ../tgp-request.c:234 ../tgp-request.c:264
|
||||
msgid "Cancel"
|
||||
msgstr "Annuleren"
|
||||
|
||||
#: ../tgp-request.c:95
|
||||
msgid "Registration"
|
||||
msgstr "Registratie"
|
||||
|
||||
#: ../tgp-request.c:96
|
||||
msgid "First name"
|
||||
msgstr "Voornaam"
|
||||
|
||||
#: ../tgp-request.c:99
|
||||
msgid "Last name"
|
||||
msgstr "Achternaam"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Register"
|
||||
msgstr "Registreren"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Please register your phone number."
|
||||
msgstr "Registreer uw telefoonnummer."
|
||||
|
||||
#. purple_request API not available
|
||||
#: ../tgp-request.c:108
|
||||
msgid ""
|
||||
"Phone number is not registered. Please register your phone on a different "
|
||||
"client."
|
||||
msgstr ""
|
||||
"Uw telefoonnummer is niet geregistreerd. Registreer uw telefoon op een ander"
|
||||
" apparaat."
|
||||
|
||||
#: ../tgp-request.c:110
|
||||
msgid "Not registered"
|
||||
msgstr "Niet geregistreerd"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Password needed"
|
||||
msgstr "Wachtwoord benodigd"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Enter password for two factor authentication"
|
||||
msgstr "Wachtwoord invoeren voor authentificatie in twee stappen"
|
||||
|
||||
#: ../tgp-request.c:123
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: ../tgp-request.c:125
|
||||
msgid ""
|
||||
"No password set for two factor authentication. Please enter it in the "
|
||||
"extended settings."
|
||||
msgstr ""
|
||||
"Geen wachtwoord ingesteld voor authentificatie in twee stappen. Voer deze in"
|
||||
" bij de uitgebreide instellingen."
|
||||
|
||||
#: ../tgp-request.c:127
|
||||
msgid "Password invalid"
|
||||
msgstr "Wachtwoord ongeldig"
|
||||
|
||||
#: ../tgp-request.c:150
|
||||
#, c-format
|
||||
msgid "Accept secret chat '%s' on this device?"
|
||||
msgstr "Geheime chat ‘%s’ op dit apparaat accepteren?"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
msgid "Secret chat"
|
||||
msgstr "Geheime chat"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
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 ""
|
||||
"Geheime chat kunnen slechts één afleverpunt bevatten. Als u een geheime chat"
|
||||
" op dit apparaat accepteert kunt u deze berichten nergens anders bekijken. "
|
||||
"Als u weigert kunt u de chat nog steeds op andere apparaten accepteren."
|
||||
|
||||
#: ../tgp-request.c:182
|
||||
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 ""
|
||||
"Nodig minimaal één andere gebruiker uit door\n"
|
||||
" volledige namen op te geven (automatisch \n"
|
||||
"aanvullen is beschikbaar). U kunt meer gebruikers\n"
|
||||
"toevoegen als de chat aangemaakt is."
|
||||
|
||||
#: ../tgp-request.c:185 ../tgp-request.c:189 ../tgp-request.c:193
|
||||
msgid "Username"
|
||||
msgstr "Gebruikersnaam"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Create group chat"
|
||||
msgstr "Groepschat aanmaken"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Invite users"
|
||||
msgstr "Gebruikers uitnodigen"
|
||||
|
||||
#: ../tgp-request.c:217 ../tgp-request.c:232
|
||||
msgid "Change password"
|
||||
msgstr "Wachtwoord wijzigen"
|
||||
|
||||
#: ../tgp-request.c:219
|
||||
msgid "Current"
|
||||
msgstr "Huidig"
|
||||
|
||||
#: ../tgp-request.c:223 ../tgp-request.c:253
|
||||
msgid "Password"
|
||||
msgstr "Wachtwoord"
|
||||
|
||||
#: ../tgp-request.c:227 ../tgp-request.c:257
|
||||
msgid "Confirm"
|
||||
msgstr "Bevestigen"
|
||||
|
||||
#: ../tgp-request.c:251 ../tgp-request.c:262
|
||||
msgid "New password"
|
||||
msgstr "Nieuw wachtwoord"
|
||||
|
||||
#. 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
|
||||
msgid "Invalid phone number"
|
||||
msgstr "Onvolledig telefoonnummer"
|
||||
|
||||
#: ../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 ""
|
||||
"Voer alleen cijfers in in het internationale telefoonnummerformaat, dus om te beginnen een + gevolgd door het landnummer en het telefoonnummer.\n"
|
||||
"Gebruik geen andere speciale tekens."
|
||||
|
||||
#: ../tgp-request.c:370
|
||||
msgid "Leave Chat"
|
||||
msgstr "Chat verlaten"
|
||||
|
||||
#: ../tgp-request.c:372
|
||||
msgid "Do you want to leave this chat permantently?"
|
||||
msgstr "Wilt u deze chat permanent verlaten?"
|
||||
|
||||
#: ../tgp-request.c:377
|
||||
msgid "Abort Secret Chat"
|
||||
msgstr "Geheime chat beëindigen"
|
||||
|
||||
#: ../tgp-request.c:379
|
||||
msgid "Do you want to terminate this secret chat permantently?"
|
||||
msgstr "Wilt u deze geheime chat permanent beëindigen?"
|
||||
|
||||
#: ../tgp-request.c:384
|
||||
msgid "Delete Contact"
|
||||
msgstr "Contact verwijderen"
|
||||
|
||||
#: ../tgp-request.c:386
|
||||
msgid "Do you want to remove this user from your global contact list?"
|
||||
msgstr "Wil u deze gebruiker uit uw algemene contactenlijst verwijderen?"
|
||||
|
||||
#: ../tgp-request.c:401
|
||||
msgid "Leave Channel"
|
||||
msgstr "Kanaal verlaten"
|
||||
|
||||
#: ../tgp-request.c:403
|
||||
msgid "Do you want to leave this channel?"
|
||||
msgstr "Wilt u dit kanaal verlaten?"
|
||||
|
||||
#. This should be the language's timestamp format. This is preceded by a
|
||||
#. colon.
|
||||
#: ../tgp-utils.c:27
|
||||
msgid "%d.%m.%Y %H:%M"
|
||||
msgstr "%d-%m-%Y %H:%M"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:48
|
||||
msgid "recently"
|
||||
msgstr "recent"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:52
|
||||
msgid "last week"
|
||||
msgstr "afgelopen week"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:56
|
||||
msgid "last month"
|
||||
msgstr "afgelopen maand"
|
||||
|
||||
#. This is preceded by a colon. It refers to a point on time.
|
||||
#: ../tgp-utils.c:60
|
||||
msgid "unknown"
|
||||
msgstr "onbekend"
|
||||
|
||||
#: ../tgp-chat.c:108 ../tgp-chat.c:582
|
||||
msgid "Telegram Chats"
|
||||
msgstr "Telegram-chats"
|
||||
|
||||
#: ../tgp-chat.c:113
|
||||
msgid "You have already left this chat."
|
||||
msgstr "U heeft dit kanaal al verlaten."
|
||||
|
||||
#: ../tgp-chat.c:224
|
||||
msgid "Subject:"
|
||||
msgstr "Onderwerp:"
|
||||
|
||||
#: ../tgp-chat.c:230
|
||||
msgid "Invite link:"
|
||||
msgstr "Uitnodigingskoppeling:"
|
||||
|
||||
#: ../tgp-chat.c:236
|
||||
msgid "Chat ID:"
|
||||
msgstr "Chat-ID:"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Supergroup"
|
||||
msgstr "Supergroep"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Channel"
|
||||
msgstr "Kanaal"
|
||||
|
||||
#: ../tgp-chat.c:345
|
||||
msgid "Group"
|
||||
msgstr "Groep"
|
||||
|
||||
#: ../tgp-chat.c:367
|
||||
msgid "Users in chat"
|
||||
msgstr "Gebruikers in chat"
|
||||
|
||||
#: ../tgp-chat.c:370
|
||||
msgid "Type"
|
||||
msgstr "Soort"
|
623
po/pl_PL.po
623
po/pl_PL.po
|
@ -1,623 +0,0 @@
|
|||
# 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"
|
||||
"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"
|
||||
"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-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"
|
||||
|
||||
#: ../telegram-base.c:500
|
||||
msgid "Couldn't create group"
|
||||
msgstr "Nie można utworzyć grupy"
|
||||
|
||||
#: ../telegram-base.c:501
|
||||
msgid "Please select at least one other user."
|
||||
msgstr "Należy wybrać co najmniej jednego użytkownika."
|
||||
|
||||
#: ../telegram-base.c:555
|
||||
msgid "Query Failed"
|
||||
msgstr "Zapytanie się nie powiodło"
|
||||
|
||||
#: ../telegram-purple.c:162
|
||||
msgid "Secret chat ready."
|
||||
msgstr "Tajna rozmowa jest gotowa."
|
||||
|
||||
#: ../telegram-purple.c:170
|
||||
msgid "Secret chat terminated."
|
||||
msgstr "Zakończono tajną rozmowę."
|
||||
|
||||
#: ../telegram-purple.c:182
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#: ../telegram-purple.c:229
|
||||
msgid "Message marked as read."
|
||||
msgstr "Oznaczono wiadomość jako przeczytaną."
|
||||
|
||||
#: ../telegram-purple.c:339
|
||||
#, c-format
|
||||
msgid "Invite link: %s"
|
||||
msgstr "Odnośnik do zaproszenia: %s"
|
||||
|
||||
#. FIXME: Can TGLCHF_MODERATOR export links?
|
||||
#: ../telegram-purple.c:350
|
||||
msgid "Creating chat link failed"
|
||||
msgstr "Utworzenie odnośnika do rozmowy się nie powiodło"
|
||||
|
||||
#: ../telegram-purple.c:351
|
||||
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
|
||||
msgid "Chat joined"
|
||||
msgstr "Dołączono do rozmowy"
|
||||
|
||||
#: ../telegram-purple.c:417
|
||||
msgid "Chat added to list of chat rooms."
|
||||
msgstr "Dodano rozmowę do listy pokojów rozmów."
|
||||
|
||||
#: ../telegram-purple.c:443
|
||||
msgid "Start secret chat..."
|
||||
msgstr "Rozpocznij tajną rozmowę…"
|
||||
|
||||
#. Generate Public Link
|
||||
#: ../telegram-purple.c:450
|
||||
msgid "Invite users by link..."
|
||||
msgstr "Zaproś użytkowników przez odnośnik…"
|
||||
|
||||
#. Delete self from chat
|
||||
#: ../telegram-purple.c:458
|
||||
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
|
||||
#, 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 ""
|
||||
"Nie można zalogować jako %s: problem w bibliotece „tgl”. Proszę zgłosić błąd"
|
||||
" z dziennikiem debugowania."
|
||||
|
||||
#: ../telegram-purple.c:576
|
||||
msgid "Problem in tgl"
|
||||
msgstr "Problem w bibliotece tgl"
|
||||
|
||||
#. TRANSLATORS: Please fill in your own prefix!
|
||||
#: ../telegram-purple.c:584
|
||||
#, 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 ""
|
||||
"Nie można zalogować jako %s: numer telefonu nie ma przedrostka kraju. Numery"
|
||||
" muszą zaczynać się od pełnego międzynarodowego przedrostka, np. +48 dla "
|
||||
"Polski."
|
||||
|
||||
#: ../telegram-purple.c:589
|
||||
msgid "Incomplete phone number"
|
||||
msgstr "Niepełny numer telefonu"
|
||||
|
||||
#: ../telegram-purple.c:642
|
||||
msgid "Secret chat was already deleted"
|
||||
msgstr "Już usunięto tajną rozmowę"
|
||||
|
||||
#: ../telegram-purple.c:644
|
||||
msgid "Secret chat is not ready"
|
||||
msgstr "Tajna rozmowa nie jest gotowa"
|
||||
|
||||
#: ../telegram-purple.c:652
|
||||
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
|
||||
msgid "Cannot invite buddy to chat"
|
||||
msgstr "Nie można zaprosić znajomego do rozmowy"
|
||||
|
||||
#: ../telegram-purple.c:696
|
||||
msgid "Specified user does not exist."
|
||||
msgstr "Podany użytkownik nie istnieje."
|
||||
|
||||
#: ../telegram-purple.c:709
|
||||
msgid "phone no. (+ country prefix)"
|
||||
msgstr "numer telefonu (+ przedrostek kraju)"
|
||||
|
||||
#. Login
|
||||
#: ../telegram-purple.c:817
|
||||
msgid "Password (two factor authentication)"
|
||||
msgstr "Hasło (uwierzytelnianie dwustopniowe)"
|
||||
|
||||
#: ../telegram-purple.c:822
|
||||
msgid ""
|
||||
"Fallback SMS verification\n"
|
||||
"(Helps when not using Pidgin and you aren't being prompted for the code)"
|
||||
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"
|
||||
|
||||
#: ../telegram-purple.c:829
|
||||
msgid "never"
|
||||
msgstr "nigdy"
|
||||
|
||||
#: ../telegram-purple.c:830
|
||||
msgid "ask"
|
||||
msgstr "pytanie"
|
||||
|
||||
#: ../telegram-purple.c:832
|
||||
msgid "Accept secret chats"
|
||||
msgstr "Odbieranie tajnych rozmów"
|
||||
|
||||
#: ../telegram-purple.c:836
|
||||
msgid "Display buddies offline after (days)"
|
||||
msgstr "Wyświetlanie znajomych jako w trybie offline po (w dniach)"
|
||||
|
||||
#: ../telegram-purple.c:840
|
||||
msgid ""
|
||||
"Don't fetch history older than (days)\n"
|
||||
"(0 for unlimited)"
|
||||
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)"
|
||||
|
||||
#. Chats
|
||||
#: ../telegram-purple.c:850
|
||||
msgid "Add all group chats to buddy list"
|
||||
msgstr "Dodawanie wszystkich rozmów grupowych do listy znajomych"
|
||||
|
||||
#. Read notifications
|
||||
#: ../telegram-purple.c:855
|
||||
msgid "Display notices of receipt"
|
||||
msgstr "Wyświetlanie powiadomień o odebraniu"
|
||||
|
||||
#: ../telegram-purple.c:859
|
||||
msgid "Send notices of receipt when present"
|
||||
msgstr "Wysyłanie powiadomień o odebraniu podczas obecności"
|
||||
|
||||
#: ../telegram-purple.c:884
|
||||
msgid "Telegram Protocol Plugin."
|
||||
msgstr "Wtyczka protokołu Telegram."
|
||||
|
||||
#: ../tgp-msg.c:58
|
||||
#, c-format
|
||||
msgid "%2$s created chat %1$s."
|
||||
msgstr "Użytkownik %2$s utworzył rozmowę %1$s."
|
||||
|
||||
#: ../tgp-msg.c:61
|
||||
#, c-format
|
||||
msgid "%2$s changed title to %1$s."
|
||||
msgstr "Użytkownik %2$s zmienił tytuł na %1$s."
|
||||
|
||||
#: ../tgp-msg.c:64
|
||||
#, c-format
|
||||
msgid "%s changed photo."
|
||||
msgstr "Użytkownik %s zmienił zdjęcie."
|
||||
|
||||
#: ../tgp-msg.c:67
|
||||
#, c-format
|
||||
msgid "%s deleted photo."
|
||||
msgstr "Użytkownik %s usunął zdjęcie."
|
||||
|
||||
#: ../tgp-msg.c:75
|
||||
#, c-format
|
||||
msgid "%1$s added user %2$s by link."
|
||||
msgstr "Użytkownik %1$s dodał użytkownika %2$s przez odnośnik."
|
||||
|
||||
#: ../tgp-msg.c:90
|
||||
#, c-format
|
||||
msgid "%2$s added user %1$s."
|
||||
msgstr "Użytkownik %2$s dodał użytkownika %1$s."
|
||||
|
||||
#: ../tgp-msg.c:114 ../tgp-msg.c:131
|
||||
#, c-format
|
||||
msgid "%2$s deleted user %1$s."
|
||||
msgstr "Użytkownik %2$s usunął użytkownika %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] "Użytkownik %2$s ustawił czas samozniszczenia na %1$d sekundę."
|
||||
msgstr[1] "Użytkownik %2$s ustawił czas samozniszczenia na %1$d sekundy."
|
||||
msgstr[2] "Użytkownik %2$s ustawił czas samozniszczenia na %1$d sekund."
|
||||
msgstr[3] "Użytkownik %2$s ustawił czas samozniszczenia na %1$d sekund."
|
||||
|
||||
#: ../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] "Użytkownik %2$s oznaczył %1$d wiadomość jako przeczytaną."
|
||||
msgstr[1] "Użytkownik %2$s oznaczył %1$d wiadomości jako przeczytane."
|
||||
msgstr[2] "Użytkownik %2$s oznaczył %1$d wiadomości jako przeczytane."
|
||||
msgstr[3] "Użytkownik %2$s oznaczył %1$d wiadomości jako przeczytane."
|
||||
|
||||
#: ../tgp-msg.c:150
|
||||
#, c-format
|
||||
msgid "%2$s deleted %1$d message."
|
||||
msgid_plural "%2$s deleted %1$d messages."
|
||||
msgstr[0] "Użytkownik %2$s usunął %1$d wiadomość."
|
||||
msgstr[1] "Użytkownik %2$s usunął %1$d wiadomości."
|
||||
msgstr[2] "Użytkownik %2$s usunął %1$d wiadomości."
|
||||
msgstr[3] "Użytkownik %2$s usunął %1$d wiadomości."
|
||||
|
||||
#: ../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] "Użytkownik %2$s utworzył zrzut ekranu %1$d wiadomości."
|
||||
msgstr[1] "Użytkownik %2$s utworzył zrzut ekranu %1$d wiadomości."
|
||||
msgstr[2] "Użytkownik %2$s utworzył zrzut ekranu %1$d wiadomości."
|
||||
msgstr[3] "Użytkownik %2$s utworzył zrzut ekranu %1$d wiadomości."
|
||||
|
||||
#: ../tgp-msg.c:162
|
||||
#, c-format
|
||||
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
|
||||
msgid "Telegram Channels"
|
||||
msgstr "Kanały Telegram"
|
||||
|
||||
#: ../tgp-msg.c:191
|
||||
msgid "Sending message failed."
|
||||
msgstr "Wysłanie wiadomości się nie powiodło."
|
||||
|
||||
#: ../tgp-msg.c:253
|
||||
msgid "Sending image failed."
|
||||
msgstr "Wysłanie obrazu się nie powiodło."
|
||||
|
||||
#: ../tgp-msg.c:417
|
||||
#, 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:498
|
||||
msgid "[animation]"
|
||||
msgstr "[animacja]"
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[audio]"
|
||||
msgstr "[dźwięk]"
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[video]"
|
||||
msgstr "[film]"
|
||||
|
||||
#: ../tgp-msg.c:604
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message from: %s</b><br>%s"
|
||||
msgstr "<b>Przekazana wiadomość od: %s</b><br>%s"
|
||||
|
||||
#. FIXME: sometimes users aren't part of the response when receiving a
|
||||
#. forwarded message
|
||||
#: ../tgp-msg.c:607
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message:</b><br>%s"
|
||||
msgstr "<b>Przekazana wiadomość:</b><br>%s"
|
||||
|
||||
#: ../tgp-msg.c:720
|
||||
msgid "loading document or picture failed"
|
||||
msgstr "wczytywanie dokumentu lub obrazu się nie powiodło"
|
||||
|
||||
#: ../tgp-net.c:281
|
||||
msgid "Cannot connect to main server"
|
||||
msgstr "Nie można połączyć z głównym serwerem"
|
||||
|
||||
#: ../tgp-net.c:322
|
||||
msgid "Cannot connect to server: Ping timeout."
|
||||
msgstr ""
|
||||
"Nie można połączyć z serwerem: przekroczono czas oczekiwania na odpowiedź."
|
||||
|
||||
#: ../tgp-net.c:365
|
||||
msgid "Lost connection to the server..."
|
||||
msgstr "Utracono połączenie z serwerem…"
|
||||
|
||||
#: ../tgp-request.c:51
|
||||
msgid ""
|
||||
"Telegram wants to verify your identity. Please enter the login code that you"
|
||||
" have received via SMS."
|
||||
msgstr ""
|
||||
"Usługa Telegram musi zweryfikować tożsamość użytkownika. Proszę podać kod "
|
||||
"logowania otrzymany w wiadomości SMS."
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Login code"
|
||||
msgstr "Kod logowania"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Enter login code"
|
||||
msgstr "Proszę podać kod logowania"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "the code"
|
||||
msgstr "kod"
|
||||
|
||||
#: ../tgp-request.c:54 ../tgp-request.c:104 ../tgp-request.c:198
|
||||
#: ../tgp-request.c:233 ../tgp-request.c:263
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
|
||||
#: ../tgp-request.c:55 ../tgp-request.c:104 ../tgp-request.c:123
|
||||
#: ../tgp-request.c:199 ../tgp-request.c:234 ../tgp-request.c:264
|
||||
msgid "Cancel"
|
||||
msgstr "Anuluj"
|
||||
|
||||
#: ../tgp-request.c:95
|
||||
msgid "Registration"
|
||||
msgstr "Rejestracja"
|
||||
|
||||
#: ../tgp-request.c:96
|
||||
msgid "First name"
|
||||
msgstr "Imię"
|
||||
|
||||
#: ../tgp-request.c:99
|
||||
msgid "Last name"
|
||||
msgstr "Nazwisko"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Register"
|
||||
msgstr "Zarejestruj"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Please register your phone number."
|
||||
msgstr "Proszę zarejestrować numer telefonu."
|
||||
|
||||
#. purple_request API not available
|
||||
#: ../tgp-request.c:108
|
||||
msgid ""
|
||||
"Phone number is not registered. Please register your phone on a different "
|
||||
"client."
|
||||
msgstr ""
|
||||
"Numer telefonu nie jest zarejestrowany. Proszę go zarejestrować w innym "
|
||||
"kliencie."
|
||||
|
||||
#: ../tgp-request.c:110
|
||||
msgid "Not registered"
|
||||
msgstr "Niezarejestrowany"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Password needed"
|
||||
msgstr "Wymagane jest hasło"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Enter password for two factor authentication"
|
||||
msgstr "Proszę podać hasło dla uwierzytelniania dwustopniowego"
|
||||
|
||||
#: ../tgp-request.c:123
|
||||
msgid "Ok"
|
||||
msgstr "OK"
|
||||
|
||||
#: ../tgp-request.c:125
|
||||
msgid ""
|
||||
"No password set for two factor authentication. Please enter it in the "
|
||||
"extended settings."
|
||||
msgstr ""
|
||||
"Nie ustawiono hasła dla uwierzytelniania dwustopniowego. Proszę podać je w "
|
||||
"rozszerzonych ustawieniach."
|
||||
|
||||
#: ../tgp-request.c:127
|
||||
msgid "Password invalid"
|
||||
msgstr "Nieprawidłowe hasło"
|
||||
|
||||
#: ../tgp-request.c:150
|
||||
#, c-format
|
||||
msgid "Accept secret chat '%s' on this device?"
|
||||
msgstr "Odebrać tajną rozmowę „%s” na tym urządzeniu?"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
msgid "Secret chat"
|
||||
msgstr "Tajna rozmowa"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
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 ""
|
||||
"Tajne rozmowy mogą mieć tylko jeden punkt wyjściowy. Jeśli tajna rozmowa "
|
||||
"zostanie odebrana na tym urządzeniu, to jej wiadomości nie będą dostępne "
|
||||
"nigdzie indziej. Jeśli zostanie odrzucona, to nadal można ją odebrać na "
|
||||
"innych urządzeniach."
|
||||
|
||||
#: ../tgp-request.c:182
|
||||
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 ""
|
||||
"Należy zaprosić co najmniej jednego użytkownika podając\n"
|
||||
"jego imię i nazwisko (automatyczne uzupełnianie jest dostępne).\n"
|
||||
"Można dodać więcej użytkowników po utworzeniu rozmowy."
|
||||
|
||||
#: ../tgp-request.c:185 ../tgp-request.c:189 ../tgp-request.c:193
|
||||
msgid "Username"
|
||||
msgstr "Nazwa użytkownika"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Create group chat"
|
||||
msgstr "Utwórz rozmowę grupową"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Invite users"
|
||||
msgstr "Zaproś użytkowników"
|
||||
|
||||
#: ../tgp-request.c:217 ../tgp-request.c:232
|
||||
msgid "Change password"
|
||||
msgstr "Zmień hasło"
|
||||
|
||||
#: ../tgp-request.c:219
|
||||
msgid "Current"
|
||||
msgstr "Bieżące"
|
||||
|
||||
#: ../tgp-request.c:223 ../tgp-request.c:253
|
||||
msgid "Password"
|
||||
msgstr "Hasło"
|
||||
|
||||
#: ../tgp-request.c:227 ../tgp-request.c:257
|
||||
msgid "Confirm"
|
||||
msgstr "Potwierdzenie"
|
||||
|
||||
#: ../tgp-request.c:251 ../tgp-request.c:262
|
||||
msgid "New password"
|
||||
msgstr "Nowe hasło"
|
||||
|
||||
#. 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
|
||||
msgid "Invalid phone number"
|
||||
msgstr "Nieprawidłowy numer telefonu"
|
||||
|
||||
#: ../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 ""
|
||||
"Proszę podać tylko numery w międzynarodowym formacie numerów telefonu, czyli + z przedrostkiem kraju i numer telefonu.\n"
|
||||
"Nie należy używać innych znaków specjalnych."
|
||||
|
||||
#: ../tgp-request.c:370
|
||||
msgid "Leave Chat"
|
||||
msgstr "Opuść rozmowę"
|
||||
|
||||
#: ../tgp-request.c:372
|
||||
msgid "Do you want to leave this chat permantently?"
|
||||
msgstr "Trwale opuścić tę rozmowę?"
|
||||
|
||||
#: ../tgp-request.c:377
|
||||
msgid "Abort Secret Chat"
|
||||
msgstr "Przerwij tajną rozmowę"
|
||||
|
||||
#: ../tgp-request.c:379
|
||||
msgid "Do you want to terminate this secret chat permantently?"
|
||||
msgstr "Trwale zakończyć tę tajną rozmowę?"
|
||||
|
||||
#: ../tgp-request.c:384
|
||||
msgid "Delete Contact"
|
||||
msgstr "Usuń kontakt"
|
||||
|
||||
#: ../tgp-request.c:386
|
||||
msgid "Do you want to remove this user from your global contact list?"
|
||||
msgstr "Usunąć tego użytkownika z globalnej listy kontaktów?"
|
||||
|
||||
#: ../tgp-request.c:401
|
||||
msgid "Leave Channel"
|
||||
msgstr "Opuść kanał"
|
||||
|
||||
#: ../tgp-request.c:403
|
||||
msgid "Do you want to leave this channel?"
|
||||
msgstr "Opuścić ten kanał?"
|
||||
|
||||
#. This should be the language's timestamp format. This is preceded by a
|
||||
#. colon.
|
||||
#: ../tgp-utils.c:27
|
||||
msgid "%d.%m.%Y %H:%M"
|
||||
msgstr "%d.%m.%Y %H∶%M"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:48
|
||||
msgid "recently"
|
||||
msgstr "niedawno"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:52
|
||||
msgid "last week"
|
||||
msgstr "ostatni tydzień"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:56
|
||||
msgid "last month"
|
||||
msgstr "ostatni miesiąc"
|
||||
|
||||
#. This is preceded by a colon. It refers to a point on time.
|
||||
#: ../tgp-utils.c:60
|
||||
msgid "unknown"
|
||||
msgstr "nieznane"
|
||||
|
||||
#: ../tgp-chat.c:108 ../tgp-chat.c:582
|
||||
msgid "Telegram Chats"
|
||||
msgstr "Rozmowy Telegram"
|
||||
|
||||
#: ../tgp-chat.c:113
|
||||
msgid "You have already left this chat."
|
||||
msgstr "Już opuszczoną tę rozmowę."
|
||||
|
||||
#: ../tgp-chat.c:224
|
||||
msgid "Subject:"
|
||||
msgstr "Temat:"
|
||||
|
||||
#: ../tgp-chat.c:230
|
||||
msgid "Invite link:"
|
||||
msgstr "Odnośnik do zaproszenia:"
|
||||
|
||||
#: ../tgp-chat.c:236
|
||||
msgid "Chat ID:"
|
||||
msgstr "Identyfikator rozmowy:"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Supergroup"
|
||||
msgstr "Supergrupa"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Channel"
|
||||
msgstr "Kanał"
|
||||
|
||||
#: ../tgp-chat.c:345
|
||||
msgid "Group"
|
||||
msgstr "Grupa"
|
||||
|
||||
#: ../tgp-chat.c:367
|
||||
msgid "Users in chat"
|
||||
msgstr "Użytkownicy w rozmowie"
|
||||
|
||||
#: ../tgp-chat.c:370
|
||||
msgid "Type"
|
||||
msgstr "Typ"
|
608
po/pt_BR.po
608
po/pt_BR.po
|
@ -1,608 +0,0 @@
|
|||
# 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"
|
||||
"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"
|
||||
"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-Transfer-Encoding: 8bit\n"
|
||||
"Language: pt_BR\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: ../telegram-base.c:500
|
||||
msgid "Couldn't create group"
|
||||
msgstr "Não foi possível criar o grupo"
|
||||
|
||||
#: ../telegram-base.c:501
|
||||
msgid "Please select at least one other user."
|
||||
msgstr "Por favor, selecione pelo menos 1 usuário."
|
||||
|
||||
#: ../telegram-base.c:555
|
||||
msgid "Query Failed"
|
||||
msgstr "Falha na fila"
|
||||
|
||||
#: ../telegram-purple.c:162
|
||||
msgid "Secret chat ready."
|
||||
msgstr "Conversa secreta pronta"
|
||||
|
||||
#: ../telegram-purple.c:170
|
||||
msgid "Secret chat terminated."
|
||||
msgstr "Conversa secreta terminada."
|
||||
|
||||
#: ../telegram-purple.c:182
|
||||
msgid "Telegram"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:229
|
||||
msgid "Message marked as read."
|
||||
msgstr "Mensagem marcada como \"lida\"."
|
||||
|
||||
#: ../telegram-purple.c:339
|
||||
#, c-format
|
||||
msgid "Invite link: %s"
|
||||
msgstr "Link de convite: %s"
|
||||
|
||||
#. FIXME: Can TGLCHF_MODERATOR export links?
|
||||
#: ../telegram-purple.c:350
|
||||
msgid "Creating chat link failed"
|
||||
msgstr "Falha na criação do link para a conversa"
|
||||
|
||||
#: ../telegram-purple.c:351
|
||||
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
|
||||
msgid "Chat joined"
|
||||
msgstr "Entrou na conversa"
|
||||
|
||||
#: ../telegram-purple.c:417
|
||||
msgid "Chat added to list of chat rooms."
|
||||
msgstr "Conversa adicionada a listas de salas de conversa"
|
||||
|
||||
#: ../telegram-purple.c:443
|
||||
msgid "Start secret chat..."
|
||||
msgstr "Começar conversa secreta..."
|
||||
|
||||
#. Generate Public Link
|
||||
#: ../telegram-purple.c:450
|
||||
msgid "Invite users by link..."
|
||||
msgstr "Convidar usuários pelo link..."
|
||||
|
||||
#. Delete self from chat
|
||||
#: ../telegram-purple.c:458
|
||||
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
|
||||
#, 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
|
||||
msgid "Problem in tgl"
|
||||
msgstr ""
|
||||
|
||||
#. TRANSLATORS: Please fill in your own prefix!
|
||||
#: ../telegram-purple.c:584
|
||||
#, 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
|
||||
msgid "Incomplete phone number"
|
||||
msgstr "Número de telefone inválido"
|
||||
|
||||
#: ../telegram-purple.c:642
|
||||
msgid "Secret chat was already deleted"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:644
|
||||
msgid "Secret chat is not ready"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:652
|
||||
msgid "Only the creator of a channel can post messages."
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:695
|
||||
msgid "Cannot invite buddy to chat"
|
||||
msgstr "Não foi possível convidar o amigo para a conversa"
|
||||
|
||||
#: ../telegram-purple.c:696
|
||||
msgid "Specified user does not exist."
|
||||
msgstr "O usuário especificado não existe."
|
||||
|
||||
#: ../telegram-purple.c:709
|
||||
msgid "phone no. (+ country prefix)"
|
||||
msgstr ""
|
||||
|
||||
#. Login
|
||||
#: ../telegram-purple.c:817
|
||||
msgid "Password (two factor authentication)"
|
||||
msgstr "Senha (dois processos de autenticação)"
|
||||
|
||||
#: ../telegram-purple.c:822
|
||||
msgid ""
|
||||
"Fallback SMS verification\n"
|
||||
"(Helps when not using Pidgin and you aren't being prompted for the code)"
|
||||
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"
|
||||
|
||||
#: ../telegram-purple.c:829
|
||||
msgid "never"
|
||||
msgstr "nunca"
|
||||
|
||||
#: ../telegram-purple.c:830
|
||||
msgid "ask"
|
||||
msgstr "pergunta"
|
||||
|
||||
#: ../telegram-purple.c:832
|
||||
msgid "Accept secret chats"
|
||||
msgstr "Aceitar conversa secrete"
|
||||
|
||||
#: ../telegram-purple.c:836
|
||||
msgid "Display buddies offline after (days)"
|
||||
msgstr "Mostrar período que os amigos estão offline (dias)"
|
||||
|
||||
#: ../telegram-purple.c:840
|
||||
msgid ""
|
||||
"Don't fetch history older than (days)\n"
|
||||
"(0 for unlimited)"
|
||||
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 ""
|
||||
|
||||
#. Chats
|
||||
#: ../telegram-purple.c:850
|
||||
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
|
||||
msgid "Display notices of receipt"
|
||||
msgstr "Mostrar avisos de recebimento"
|
||||
|
||||
#: ../telegram-purple.c:859
|
||||
msgid "Send notices of receipt when present"
|
||||
msgstr "Mandar avisos de recebimento quando estiver online"
|
||||
|
||||
#: ../telegram-purple.c:884
|
||||
msgid "Telegram Protocol Plugin."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:58
|
||||
#, c-format
|
||||
msgid "%2$s created chat %1$s."
|
||||
msgstr "%2$s criouo a conversa %1$s."
|
||||
|
||||
#: ../tgp-msg.c:61
|
||||
#, c-format
|
||||
msgid "%2$s changed title to %1$s."
|
||||
msgstr "%2$s mudou o assunto para %1$s,"
|
||||
|
||||
#: ../tgp-msg.c:64
|
||||
#, c-format
|
||||
msgid "%s changed photo."
|
||||
msgstr "%s mudou a foto."
|
||||
|
||||
#: ../tgp-msg.c:67
|
||||
#, c-format
|
||||
msgid "%s deleted photo."
|
||||
msgstr "%s deletou a foto."
|
||||
|
||||
#: ../tgp-msg.c:75
|
||||
#, c-format
|
||||
msgid "%1$s added user %2$s by link."
|
||||
msgstr "%1$s adicionou o usuário %2$s por link."
|
||||
|
||||
#: ../tgp-msg.c:90
|
||||
#, c-format
|
||||
msgid "%2$s added user %1$s."
|
||||
msgstr "%2$s adicionou o usuário %1$s."
|
||||
|
||||
#: ../tgp-msg.c:114 ../tgp-msg.c:131
|
||||
#, c-format
|
||||
msgid "%2$s deleted user %1$s."
|
||||
msgstr "%2$s reoveu o usuário %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 tempo para auto destruição configurado para %1$d segundos."
|
||||
msgstr[1] "%2$s tempo para auto destruição configurado para %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 marcou %1$d mensagens como lidas."
|
||||
msgstr[1] "%2$s marcou %1$d mensagens como lidas."
|
||||
|
||||
#: ../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 deletou %1$d mensagens."
|
||||
msgstr[1] "%2$s deletou %1$d mensagens."
|
||||
|
||||
#: ../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 capturou a tela de %1$d mensagens."
|
||||
msgstr[1] "%2$s capturou a tela de %1$d mensagens."
|
||||
|
||||
#: ../tgp-msg.c:162
|
||||
#, c-format
|
||||
msgid "Channel %1$s created"
|
||||
msgstr ""
|
||||
|
||||
#. FIXME: check if this makes sense
|
||||
#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:576
|
||||
msgid "Telegram Channels"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:191
|
||||
msgid "Sending message failed."
|
||||
msgstr "Envio de imagem falhou."
|
||||
|
||||
#: ../tgp-msg.c:253
|
||||
msgid "Sending image failed."
|
||||
msgstr "Envio de imagem falhou."
|
||||
|
||||
#: ../tgp-msg.c:417
|
||||
#, 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:515
|
||||
msgid "[audio]"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[video]"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:604
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message from: %s</b><br>%s"
|
||||
msgstr ""
|
||||
|
||||
#. FIXME: sometimes users aren't part of the response when receiving a
|
||||
#. forwarded message
|
||||
#: ../tgp-msg.c:607
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message:</b><br>%s"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:720
|
||||
msgid "loading document or picture failed"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-net.c:281
|
||||
msgid "Cannot connect to main server"
|
||||
msgstr "Não pode se conectar no servidor principal"
|
||||
|
||||
#: ../tgp-net.c:322
|
||||
msgid "Cannot connect to server: Ping timeout."
|
||||
msgstr "Não pode se conectar no servidor: Ping timeout."
|
||||
|
||||
#: ../tgp-net.c:365
|
||||
msgid "Lost connection to the server..."
|
||||
msgstr "Conexão com o servidor foi perdida..."
|
||||
|
||||
#: ../tgp-request.c:51
|
||||
msgid ""
|
||||
"Telegram wants to verify your identity. Please enter the login code that you"
|
||||
" have received via SMS."
|
||||
msgstr ""
|
||||
"Telegram quer confirmar sua identidade. Por favor insira o código recebido "
|
||||
"por SMS."
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Login code"
|
||||
msgstr "Código de login"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Enter login code"
|
||||
msgstr "Insira o código de login"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "the code"
|
||||
msgstr "o código"
|
||||
|
||||
#: ../tgp-request.c:54 ../tgp-request.c:104 ../tgp-request.c:198
|
||||
#: ../tgp-request.c:233 ../tgp-request.c:263
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
|
||||
#: ../tgp-request.c:55 ../tgp-request.c:104 ../tgp-request.c:123
|
||||
#: ../tgp-request.c:199 ../tgp-request.c:234 ../tgp-request.c:264
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: ../tgp-request.c:95
|
||||
msgid "Registration"
|
||||
msgstr "Registrar"
|
||||
|
||||
#: ../tgp-request.c:96
|
||||
msgid "First name"
|
||||
msgstr "Primeiro nome"
|
||||
|
||||
#: ../tgp-request.c:99
|
||||
msgid "Last name"
|
||||
msgstr "Último nome"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Register"
|
||||
msgstr "Registrar"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Please register your phone number."
|
||||
msgstr "Por favor registre seu número de telefone."
|
||||
|
||||
#. purple_request API not available
|
||||
#: ../tgp-request.c:108
|
||||
msgid ""
|
||||
"Phone number is not registered. Please register your phone on a different "
|
||||
"client."
|
||||
msgstr ""
|
||||
"Número de telefone não registrado. Por favor registre seu número de telefone"
|
||||
" com um cliente diferente."
|
||||
|
||||
#: ../tgp-request.c:110
|
||||
msgid "Not registered"
|
||||
msgstr "Não Registrado"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Password needed"
|
||||
msgstr "Senha necessária"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Enter password for two factor authentication"
|
||||
msgstr "Insira a senha para o processo de autenticação dupla"
|
||||
|
||||
#: ../tgp-request.c:123
|
||||
msgid "Ok"
|
||||
msgstr "OK"
|
||||
|
||||
#: ../tgp-request.c:125
|
||||
msgid ""
|
||||
"No password set for two factor authentication. Please enter it in the "
|
||||
"extended settings."
|
||||
msgstr ""
|
||||
"Não há senha configurado para o processo de autenticação dupla. Por favor "
|
||||
"insira nas configurações expandidas."
|
||||
|
||||
#: ../tgp-request.c:127
|
||||
msgid "Password invalid"
|
||||
msgstr "Senha inválida."
|
||||
|
||||
#: ../tgp-request.c:150
|
||||
#, c-format
|
||||
msgid "Accept secret chat '%s' on this device?"
|
||||
msgstr "Aceitar conversa Secreta '%s'?"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
msgid "Secret chat"
|
||||
msgstr "Conversa Secreta"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
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 ""
|
||||
"Conversas secretas podem ocorrer em apenas um local. Se você aceitar uma "
|
||||
"conversa secreta nesse dispositivo, essas mensagens não estarão disponíveis "
|
||||
"em nenhum outro local. Se você rejeitar, pode aceitar a conversa em outros "
|
||||
"dispositivos."
|
||||
|
||||
#: ../tgp-request.c:182
|
||||
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 ""
|
||||
"Convidar ao menos mais um usuário\n"
|
||||
"pelo nome completo (autocompletar disponível).\n"
|
||||
"Você pode adicionar mais usuários depois que a conversa for criada."
|
||||
|
||||
#: ../tgp-request.c:185 ../tgp-request.c:189 ../tgp-request.c:193
|
||||
msgid "Username"
|
||||
msgstr "Nome de usuário"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Create group chat"
|
||||
msgstr "Criar conversa em grupo"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Invite users"
|
||||
msgstr "Convidar usuários"
|
||||
|
||||
#: ../tgp-request.c:217 ../tgp-request.c:232
|
||||
msgid "Change password"
|
||||
msgstr "Mudar senha"
|
||||
|
||||
#: ../tgp-request.c:219
|
||||
msgid "Current"
|
||||
msgstr "Atual"
|
||||
|
||||
#: ../tgp-request.c:223 ../tgp-request.c:253
|
||||
msgid "Password"
|
||||
msgstr "Senha"
|
||||
|
||||
#: ../tgp-request.c:227 ../tgp-request.c:257
|
||||
msgid "Confirm"
|
||||
msgstr "Confirma"
|
||||
|
||||
#: ../tgp-request.c:251 ../tgp-request.c:262
|
||||
msgid "New password"
|
||||
msgstr "Nova senha"
|
||||
|
||||
#. 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
|
||||
msgid "Invalid phone number"
|
||||
msgstr "Número de telefone invá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 insira apenas número no formato de número telefônico internacional, começando com + seguido pelo código do país e o número do telefone.\n"
|
||||
"Não use caractéres especiais."
|
||||
|
||||
#: ../tgp-request.c:370
|
||||
msgid "Leave Chat"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:372
|
||||
msgid "Do you want to leave this chat permantently?"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:377
|
||||
msgid "Abort Secret Chat"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:379
|
||||
msgid "Do you want to terminate this secret chat permantently?"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:384
|
||||
msgid "Delete Contact"
|
||||
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 ""
|
||||
|
||||
#: ../tgp-request.c:403
|
||||
msgid "Do you want to leave this channel?"
|
||||
msgstr ""
|
||||
|
||||
#. This should be the language's timestamp format. This is preceded by a
|
||||
#. colon.
|
||||
#: ../tgp-utils.c:27
|
||||
msgid "%d.%m.%Y %H:%M"
|
||||
msgstr "%d.%m.%Y %H:%M"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:48
|
||||
msgid "recently"
|
||||
msgstr "recentemente"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:52
|
||||
msgid "last week"
|
||||
msgstr "semana passada"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:56
|
||||
msgid "last month"
|
||||
msgstr "mês passado"
|
||||
|
||||
#. This is preceded by a colon. It refers to a point on time.
|
||||
#: ../tgp-utils.c:60
|
||||
msgid "unknown"
|
||||
msgstr "desconhecido"
|
||||
|
||||
#: ../tgp-chat.c:108 ../tgp-chat.c:582
|
||||
msgid "Telegram Chats"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:113
|
||||
msgid "You have already left this chat."
|
||||
msgstr "Você já saiu dessa conversa."
|
||||
|
||||
#: ../tgp-chat.c:224
|
||||
msgid "Subject:"
|
||||
msgstr "Assunto:"
|
||||
|
||||
#: ../tgp-chat.c:230
|
||||
msgid "Invite link:"
|
||||
msgstr "Link do convite:"
|
||||
|
||||
#: ../tgp-chat.c:236
|
||||
msgid "Chat ID:"
|
||||
msgstr "Identificação da conversa:"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Supergroup"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:345
|
||||
msgid "Group"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:367
|
||||
msgid "Users in chat"
|
||||
msgstr "Usuários no chat."
|
||||
|
||||
#: ../tgp-chat.c:370
|
||||
msgid "Type"
|
||||
msgstr ""
|
619
po/ru_RU.po
619
po/ru_RU.po
|
@ -1,619 +0,0 @@
|
|||
# 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"
|
||||
"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"
|
||||
"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-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
|
||||
msgid "Couldn't create group"
|
||||
msgstr "Не удалось создать группу"
|
||||
|
||||
#: ../telegram-base.c:501
|
||||
msgid "Please select at least one other user."
|
||||
msgstr "Пожалуйста, выберите хотя бы одного другого пользователя."
|
||||
|
||||
#: ../telegram-base.c:555
|
||||
msgid "Query Failed"
|
||||
msgstr "Ошибка запроса"
|
||||
|
||||
#: ../telegram-purple.c:162
|
||||
msgid "Secret chat ready."
|
||||
msgstr "Секретный чат готов."
|
||||
|
||||
#: ../telegram-purple.c:170
|
||||
msgid "Secret chat terminated."
|
||||
msgstr "Защищенный чат завершен"
|
||||
|
||||
#: ../telegram-purple.c:182
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#: ../telegram-purple.c:229
|
||||
msgid "Message marked as read."
|
||||
msgstr "Сообщение помечено как прочитанное"
|
||||
|
||||
#: ../telegram-purple.c:339
|
||||
#, c-format
|
||||
msgid "Invite link: %s"
|
||||
msgstr "Пригласительная ссылка: %s"
|
||||
|
||||
#. FIXME: Can TGLCHF_MODERATOR export links?
|
||||
#: ../telegram-purple.c:350
|
||||
msgid "Creating chat link failed"
|
||||
msgstr "Не удалось создать ссылку чата"
|
||||
|
||||
#: ../telegram-purple.c:351
|
||||
msgid "You need to be admin of the group to do that."
|
||||
msgstr "Вы должны быть администратором группы, чтобы сделать это."
|
||||
|
||||
#: ../telegram-purple.c:416
|
||||
msgid "Chat joined"
|
||||
msgstr "Присоединился к чату"
|
||||
|
||||
#: ../telegram-purple.c:417
|
||||
msgid "Chat added to list of chat rooms."
|
||||
msgstr "Чат добавлен в список чатов."
|
||||
|
||||
#: ../telegram-purple.c:443
|
||||
msgid "Start secret chat..."
|
||||
msgstr "Начать секретный чат…"
|
||||
|
||||
#. Generate Public Link
|
||||
#: ../telegram-purple.c:450
|
||||
msgid "Invite users by link..."
|
||||
msgstr "Пригласить пользователей по ссылке..."
|
||||
|
||||
#. Delete self from chat
|
||||
#: ../telegram-purple.c:458
|
||||
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
|
||||
#, 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
|
||||
msgid "Problem in tgl"
|
||||
msgstr "Проблема в tgl"
|
||||
|
||||
#. TRANSLATORS: Please fill in your own prefix!
|
||||
#: ../telegram-purple.c:584
|
||||
#, 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 ""
|
||||
"Не удалось войти как %s: номер телефона не содержит кода страны. Номера "
|
||||
"должны начинаться с международного кода, +7 для России."
|
||||
|
||||
#: ../telegram-purple.c:589
|
||||
msgid "Incomplete phone number"
|
||||
msgstr "Неполный номер телефона"
|
||||
|
||||
#: ../telegram-purple.c:642
|
||||
msgid "Secret chat was already deleted"
|
||||
msgstr "Секретный чат уже был удален"
|
||||
|
||||
#: ../telegram-purple.c:644
|
||||
msgid "Secret chat is not ready"
|
||||
msgstr "Секретный чат не готов"
|
||||
|
||||
#: ../telegram-purple.c:652
|
||||
msgid "Only the creator of a channel can post messages."
|
||||
msgstr "Только создатель канала может отправлять сообщения."
|
||||
|
||||
#: ../telegram-purple.c:695
|
||||
msgid "Cannot invite buddy to chat"
|
||||
msgstr "Не могу пригласить пользователя в чат"
|
||||
|
||||
#: ../telegram-purple.c:696
|
||||
msgid "Specified user does not exist."
|
||||
msgstr "Указанный пользователь не существует."
|
||||
|
||||
#: ../telegram-purple.c:709
|
||||
msgid "phone no. (+ country prefix)"
|
||||
msgstr "номер телефона. (+ префикс страны)"
|
||||
|
||||
#. Login
|
||||
#: ../telegram-purple.c:817
|
||||
msgid "Password (two factor authentication)"
|
||||
msgstr "Пароль (двухфакторная аутентификация) "
|
||||
|
||||
#: ../telegram-purple.c:822
|
||||
msgid ""
|
||||
"Fallback SMS verification\n"
|
||||
"(Helps when not using Pidgin and you aren't being prompted for the code)"
|
||||
msgstr ""
|
||||
"Альтернативная СМС верификация\n"
|
||||
"(Помогает когда не используется pidgin и вас не просило ввести код)"
|
||||
|
||||
#: ../telegram-purple.c:828
|
||||
msgid "always"
|
||||
msgstr "всегда"
|
||||
|
||||
#: ../telegram-purple.c:829
|
||||
msgid "never"
|
||||
msgstr "никогда"
|
||||
|
||||
#: ../telegram-purple.c:830
|
||||
msgid "ask"
|
||||
msgstr "Спрашивать"
|
||||
|
||||
#: ../telegram-purple.c:832
|
||||
msgid "Accept secret chats"
|
||||
msgstr "Присоединится к защищенным чатам"
|
||||
|
||||
#: ../telegram-purple.c:836
|
||||
msgid "Display buddies offline after (days)"
|
||||
msgstr "Показывать друзей оффлайн через(дней)"
|
||||
|
||||
#: ../telegram-purple.c:840
|
||||
msgid ""
|
||||
"Don't fetch history older than (days)\n"
|
||||
"(0 for unlimited)"
|
||||
msgstr ""
|
||||
"Не загружать историю старше N дней\n"
|
||||
"(0 без ограничений)"
|
||||
|
||||
#. Media
|
||||
#: ../telegram-purple.c:845
|
||||
msgid "Autoload media size (kb)"
|
||||
msgstr ""
|
||||
|
||||
#. Chats
|
||||
#: ../telegram-purple.c:850
|
||||
msgid "Add all group chats to buddy list"
|
||||
msgstr "Добавить все групповые чаты в контактлист"
|
||||
|
||||
#. Read notifications
|
||||
#: ../telegram-purple.c:855
|
||||
msgid "Display notices of receipt"
|
||||
msgstr "Показать уведомления о получении"
|
||||
|
||||
#: ../telegram-purple.c:859
|
||||
msgid "Send notices of receipt when present"
|
||||
msgstr "Показать уведомления о получении"
|
||||
|
||||
#: ../telegram-purple.c:884
|
||||
msgid "Telegram Protocol Plugin."
|
||||
msgstr "Telegram Protocol Плагин."
|
||||
|
||||
#: ../tgp-msg.c:58
|
||||
#, c-format
|
||||
msgid "%2$s created chat %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."
|
||||
|
||||
#: ../tgp-msg.c:64
|
||||
#, c-format
|
||||
msgid "%s changed photo."
|
||||
msgstr "%s фото изменено."
|
||||
|
||||
#: ../tgp-msg.c:67
|
||||
#, c-format
|
||||
msgid "%s deleted photo."
|
||||
msgstr "%s фото удалено."
|
||||
|
||||
#: ../tgp-msg.c:75
|
||||
#, c-format
|
||||
msgid "%1$s added user %2$s by link."
|
||||
msgstr "%1$s пользователи добавлены %2$s по ссылке"
|
||||
|
||||
#: ../tgp-msg.c:90
|
||||
#, c-format
|
||||
msgid "%2$s added user %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."
|
||||
|
||||
#: ../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 установил таймер самоуничтожения на %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
|
||||
msgid "%2$s marked %1$d message read."
|
||||
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
|
||||
msgid "%2$s deleted %1$d message."
|
||||
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
|
||||
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 сообщений."
|
||||
|
||||
#: ../tgp-msg.c:162
|
||||
#, c-format
|
||||
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
|
||||
msgid "Telegram Channels"
|
||||
msgstr "Telegram Каналы"
|
||||
|
||||
#: ../tgp-msg.c:191
|
||||
msgid "Sending message failed."
|
||||
msgstr "Отправка сообщения не удалась."
|
||||
|
||||
#: ../tgp-msg.c:253
|
||||
msgid "Sending image failed."
|
||||
msgstr "Ошибка при отправке изображения."
|
||||
|
||||
#: ../tgp-msg.c:417
|
||||
#, 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:515
|
||||
msgid "[audio]"
|
||||
msgstr "[аудио]"
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[video]"
|
||||
msgstr "[видео]"
|
||||
|
||||
#: ../tgp-msg.c:604
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message from: %s</b><br>%s"
|
||||
msgstr ""
|
||||
|
||||
#. FIXME: sometimes users aren't part of the response when receiving a
|
||||
#. forwarded message
|
||||
#: ../tgp-msg.c:607
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message:</b><br>%s"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:720
|
||||
msgid "loading document or picture failed"
|
||||
msgstr "загрузка документа или изображения не удалась"
|
||||
|
||||
#: ../tgp-net.c:281
|
||||
msgid "Cannot connect to main server"
|
||||
msgstr "Не удается подключится к главному серверу"
|
||||
|
||||
#: ../tgp-net.c:322
|
||||
msgid "Cannot connect to server: Ping timeout."
|
||||
msgstr "Не удается подключиться к серверу: пинг тайм-аут."
|
||||
|
||||
#: ../tgp-net.c:365
|
||||
msgid "Lost connection to the server..."
|
||||
msgstr "Потеряно соединение с сервером..."
|
||||
|
||||
#: ../tgp-request.c:51
|
||||
msgid ""
|
||||
"Telegram wants to verify your identity. Please enter the login code that you"
|
||||
" have received via SMS."
|
||||
msgstr ""
|
||||
"Telegram хочет проверить вашу личность. Пожалуйста введите код, полученный "
|
||||
"вами через СМС."
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Login code"
|
||||
msgstr "Код входа"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Enter login code"
|
||||
msgstr "Введите код входа"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "the code"
|
||||
msgstr "код"
|
||||
|
||||
#: ../tgp-request.c:54 ../tgp-request.c:104 ../tgp-request.c:198
|
||||
#: ../tgp-request.c:233 ../tgp-request.c:263
|
||||
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
|
||||
msgid "Cancel"
|
||||
msgstr "Отмена"
|
||||
|
||||
#: ../tgp-request.c:95
|
||||
msgid "Registration"
|
||||
msgstr "Регистрация"
|
||||
|
||||
#: ../tgp-request.c:96
|
||||
msgid "First name"
|
||||
msgstr "Имя"
|
||||
|
||||
#: ../tgp-request.c:99
|
||||
msgid "Last name"
|
||||
msgstr "Фамилия"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Register"
|
||||
msgstr "Зарегистрирован"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Please register your phone number."
|
||||
msgstr "Пожалуйста, зарегистрируйте свой номер телефона."
|
||||
|
||||
#. purple_request API not available
|
||||
#: ../tgp-request.c:108
|
||||
msgid ""
|
||||
"Phone number is not registered. Please register your phone on a different "
|
||||
"client."
|
||||
msgstr ""
|
||||
"Номер телефона не зарегистрирован. Пожалуйста зарегистрируйте ваш телефон в "
|
||||
"другом клиенте."
|
||||
|
||||
#: ../tgp-request.c:110
|
||||
msgid "Not registered"
|
||||
msgstr "Не зарегистрирован"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Password needed"
|
||||
msgstr "Необходим пароль"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Enter password for two factor authentication"
|
||||
msgstr "Введите пароль для двухфакторной аутентификации"
|
||||
|
||||
#: ../tgp-request.c:123
|
||||
msgid "Ok"
|
||||
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"
|
||||
msgstr "Неверный пароль"
|
||||
|
||||
#: ../tgp-request.c:150
|
||||
#, c-format
|
||||
msgid "Accept secret chat '%s' on this device?"
|
||||
msgstr "Присоединится к секретному чату '%s' на этом устройстве?"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
msgid "Secret chat"
|
||||
msgstr "Секретный чат"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
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
|
||||
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 ""
|
||||
"Пригласите хотя бы одного дополнительного пользователя, указав их полные имена (автодополнение доступно).\n"
|
||||
"Вы можете добавить больше пользователей после создания чата."
|
||||
|
||||
#: ../tgp-request.c:185 ../tgp-request.c:189 ../tgp-request.c:193
|
||||
msgid "Username"
|
||||
msgstr "Пользователь"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Create group chat"
|
||||
msgstr "Создать групповой чат"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Invite users"
|
||||
msgstr "Приглашенные собеседники"
|
||||
|
||||
#: ../tgp-request.c:217 ../tgp-request.c:232
|
||||
msgid "Change password"
|
||||
msgstr "Сменить пароль"
|
||||
|
||||
#: ../tgp-request.c:219
|
||||
msgid "Current"
|
||||
msgstr "Текущий"
|
||||
|
||||
#: ../tgp-request.c:223 ../tgp-request.c:253
|
||||
msgid "Password"
|
||||
msgstr "Пароль"
|
||||
|
||||
#: ../tgp-request.c:227 ../tgp-request.c:257
|
||||
msgid "Confirm"
|
||||
msgstr "Подтвердить"
|
||||
|
||||
#: ../tgp-request.c:251 ../tgp-request.c:262
|
||||
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
|
||||
msgid "Invalid phone number"
|
||||
msgstr "Неправильный номер телефона"
|
||||
|
||||
#: ../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 ""
|
||||
"Пожалуйста, введите только цифры в международном формате телефонного номера. Начиная с +, префикса страны и заканчивая телефонным номером. \n"
|
||||
"Не используйте никакие другие специальные символы."
|
||||
|
||||
#: ../tgp-request.c:370
|
||||
msgid "Leave Chat"
|
||||
msgstr "Покинуть Чат"
|
||||
|
||||
#: ../tgp-request.c:372
|
||||
msgid "Do you want to leave this chat permantently?"
|
||||
msgstr "Вы хотите покинуть этот чат навсегда?"
|
||||
|
||||
#: ../tgp-request.c:377
|
||||
msgid "Abort Secret Chat"
|
||||
msgstr "Отменить Секретный Чат"
|
||||
|
||||
#: ../tgp-request.c:379
|
||||
msgid "Do you want to terminate this secret chat permantently?"
|
||||
msgstr "Вы хотите отменить этот чат навсегда?"
|
||||
|
||||
#: ../tgp-request.c:384
|
||||
msgid "Delete Contact"
|
||||
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 "Покинуть Канал"
|
||||
|
||||
#: ../tgp-request.c:403
|
||||
msgid "Do you want to leave this channel?"
|
||||
msgstr "Вы хотите покинуть этот канал?"
|
||||
|
||||
#. This should be the language's timestamp format. This is preceded by a
|
||||
#. colon.
|
||||
#: ../tgp-utils.c:27
|
||||
msgid "%d.%m.%Y %H:%M"
|
||||
msgstr "%d.%m.%Y %H:%M"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:48
|
||||
msgid "recently"
|
||||
msgstr "недавно"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:52
|
||||
msgid "last week"
|
||||
msgstr "последняя неделя"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:56
|
||||
msgid "last month"
|
||||
msgstr "последний месяц"
|
||||
|
||||
#. This is preceded by a colon. It refers to a point on time.
|
||||
#: ../tgp-utils.c:60
|
||||
msgid "unknown"
|
||||
msgstr "неизвестно"
|
||||
|
||||
#: ../tgp-chat.c:108 ../tgp-chat.c:582
|
||||
msgid "Telegram Chats"
|
||||
msgstr "Telegram Чаты"
|
||||
|
||||
#: ../tgp-chat.c:113
|
||||
msgid "You have already left this chat."
|
||||
msgstr "Вы уже покинули этот чат."
|
||||
|
||||
#: ../tgp-chat.c:224
|
||||
msgid "Subject:"
|
||||
msgstr "Заголовок:"
|
||||
|
||||
#: ../tgp-chat.c:230
|
||||
msgid "Invite link:"
|
||||
msgstr "Пригласительная ссылка:"
|
||||
|
||||
#: ../tgp-chat.c:236
|
||||
msgid "Chat ID:"
|
||||
msgstr "Чат ID:"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Supergroup"
|
||||
msgstr "Супергруппа"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Channel"
|
||||
msgstr "Канал"
|
||||
|
||||
#: ../tgp-chat.c:345
|
||||
msgid "Group"
|
||||
msgstr "Группа"
|
||||
|
||||
#: ../tgp-chat.c:367
|
||||
msgid "Users in chat"
|
||||
msgstr "Пользователи в чате"
|
||||
|
||||
#: ../tgp-chat.c:370
|
||||
msgid "Type"
|
||||
msgstr ""
|
614
po/sq.po
614
po/sq.po
|
@ -1,614 +0,0 @@
|
|||
# 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"
|
||||
"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"
|
||||
"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-Transfer-Encoding: 8bit\n"
|
||||
"Language: sq\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: ../telegram-base.c:500
|
||||
msgid "Couldn't create group"
|
||||
msgstr "S’u krijua dot grup"
|
||||
|
||||
#: ../telegram-base.c:501
|
||||
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
|
||||
msgid "Query Failed"
|
||||
msgstr "Kërkesa Dështoi"
|
||||
|
||||
#: ../telegram-purple.c:162
|
||||
msgid "Secret chat ready."
|
||||
msgstr "Fjalosje e fshehtë gati."
|
||||
|
||||
#: ../telegram-purple.c:170
|
||||
msgid "Secret chat terminated."
|
||||
msgstr "Fjalosja e fshehtë përfundoi."
|
||||
|
||||
#: ../telegram-purple.c:182
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#: ../telegram-purple.c:229
|
||||
msgid "Message marked as read."
|
||||
msgstr "Mesazh i shënuar si i lexuar."
|
||||
|
||||
#: ../telegram-purple.c:339
|
||||
#, c-format
|
||||
msgid "Invite link: %s"
|
||||
msgstr "Lidhje ftese: %s"
|
||||
|
||||
#. FIXME: Can TGLCHF_MODERATOR export links?
|
||||
#: ../telegram-purple.c:350
|
||||
msgid "Creating chat link failed"
|
||||
msgstr "Krijimi i lidhjes së fjalosjes dështoi"
|
||||
|
||||
#: ../telegram-purple.c:351
|
||||
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
|
||||
msgid "Chat joined"
|
||||
msgstr "U hy në fjalosje"
|
||||
|
||||
#: ../telegram-purple.c:417
|
||||
msgid "Chat added to list of chat rooms."
|
||||
msgstr "Fjalosja u shtua te listë dhomash fjalosjeje."
|
||||
|
||||
#: ../telegram-purple.c:443
|
||||
msgid "Start secret chat..."
|
||||
msgstr "Filloni fjalosje të fshehtë..."
|
||||
|
||||
#. Generate Public Link
|
||||
#: ../telegram-purple.c:450
|
||||
msgid "Invite users by link..."
|
||||
msgstr "Ftoni përdorues përmes lidhjesh..."
|
||||
|
||||
#. Delete self from chat
|
||||
#: ../telegram-purple.c:458
|
||||
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
|
||||
#, 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 ""
|
||||
"S’arrihet të hyhet si %s: problem në librarinë përkatëse 'tgl'. Ju lutemi, "
|
||||
"parashtroni një njoftim të metash të shoqëruar nga regjistrimi i "
|
||||
"diagnostikimit."
|
||||
|
||||
#: ../telegram-purple.c:576
|
||||
msgid "Problem in tgl"
|
||||
msgstr "Problem në tgl"
|
||||
|
||||
#. TRANSLATORS: Please fill in your own prefix!
|
||||
#: ../telegram-purple.c:584
|
||||
#, 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 ""
|
||||
"I pazoti të hyjë si %s: numrit të telefonit i mungon prefiksi i vendit. "
|
||||
"Numrat duhet të fillojnë me kodin e plotë prefiksi ndërkombëtar, p.sh. +355 "
|
||||
"për Shqipërinë."
|
||||
|
||||
#: ../telegram-purple.c:589
|
||||
msgid "Incomplete phone number"
|
||||
msgstr "Numër telefoni jo i plotë"
|
||||
|
||||
#: ../telegram-purple.c:642
|
||||
msgid "Secret chat was already deleted"
|
||||
msgstr "Fjalosja e fshehtë qe fshirë tashmë"
|
||||
|
||||
#: ../telegram-purple.c:644
|
||||
msgid "Secret chat is not ready"
|
||||
msgstr "Fjalosja e fshehtë s’është gati"
|
||||
|
||||
#: ../telegram-purple.c:652
|
||||
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
|
||||
msgid "Cannot invite buddy to chat"
|
||||
msgstr "S’ftohet dot shok në fjalosje"
|
||||
|
||||
#: ../telegram-purple.c:696
|
||||
msgid "Specified user does not exist."
|
||||
msgstr "Përdoruesi i treguar nuk ekziston."
|
||||
|
||||
#: ../telegram-purple.c:709
|
||||
msgid "phone no. (+ country prefix)"
|
||||
msgstr "nr. telefoni (+ prefiks vendi)"
|
||||
|
||||
#. Login
|
||||
#: ../telegram-purple.c:817
|
||||
msgid "Password (two factor authentication)"
|
||||
msgstr "Fjalëkalim (mirëfilltësim dyfaktorësh)"
|
||||
|
||||
#: ../telegram-purple.c:822
|
||||
msgid ""
|
||||
"Fallback SMS verification\n"
|
||||
"(Helps when not using Pidgin and you aren't being prompted for the code)"
|
||||
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ë"
|
||||
|
||||
#: ../telegram-purple.c:829
|
||||
msgid "never"
|
||||
msgstr "kurrë"
|
||||
|
||||
#: ../telegram-purple.c:830
|
||||
msgid "ask"
|
||||
msgstr "pyet"
|
||||
|
||||
#: ../telegram-purple.c:832
|
||||
msgid "Accept secret chats"
|
||||
msgstr "Prano fjalosje të fshehta"
|
||||
|
||||
#: ../telegram-purple.c:836
|
||||
msgid "Display buddies offline after (days)"
|
||||
msgstr "Shfaqi shokët si jo të lidhur pas (ditësh)"
|
||||
|
||||
#: ../telegram-purple.c:840
|
||||
msgid ""
|
||||
"Don't fetch history older than (days)\n"
|
||||
"(0 for unlimited)"
|
||||
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)"
|
||||
|
||||
#. Chats
|
||||
#: ../telegram-purple.c:850
|
||||
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
|
||||
msgid "Display notices of receipt"
|
||||
msgstr "Shfaq njoftime dëftese"
|
||||
|
||||
#: ../telegram-purple.c:859
|
||||
msgid "Send notices of receipt when present"
|
||||
msgstr "Dërgo njoftime dëftese kur ka"
|
||||
|
||||
#: ../telegram-purple.c:884
|
||||
msgid "Telegram Protocol Plugin."
|
||||
msgstr "Shtojcë Protokolli Telegram."
|
||||
|
||||
#: ../tgp-msg.c:58
|
||||
#, c-format
|
||||
msgid "%2$s created chat %1$s."
|
||||
msgstr "%2$s krijoi fjalosjen %1$s."
|
||||
|
||||
#: ../tgp-msg.c:61
|
||||
#, c-format
|
||||
msgid "%2$s changed title to %1$s."
|
||||
msgstr "%2$s ndryshoi titullin te %1$s."
|
||||
|
||||
#: ../tgp-msg.c:64
|
||||
#, c-format
|
||||
msgid "%s changed photo."
|
||||
msgstr "%s ndryshoi foton."
|
||||
|
||||
#: ../tgp-msg.c:67
|
||||
#, c-format
|
||||
msgid "%s deleted photo."
|
||||
msgstr "%s fshiu foton."
|
||||
|
||||
#: ../tgp-msg.c:75
|
||||
#, c-format
|
||||
msgid "%1$s added user %2$s by link."
|
||||
msgstr "%1$s shtoi përdoruesin %2$s përmes lidhjeje."
|
||||
|
||||
#: ../tgp-msg.c:90
|
||||
#, c-format
|
||||
msgid "%2$s added user %1$s."
|
||||
msgstr "%2$s shtoi përdoruesin %1$s."
|
||||
|
||||
#: ../tgp-msg.c:114 ../tgp-msg.c:131
|
||||
#, c-format
|
||||
msgid "%2$s deleted user %1$s."
|
||||
msgstr "%2$s fshiu përdoruesin %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 e vendosi kohëmatësin e vetëshkatërrimit në %1$d sekondë."
|
||||
msgstr[1] "%2$s e vendosi kohëmatësin e vetëshkatërrimit në %1$d sekonda."
|
||||
|
||||
#: ../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 shënoi %1$d mesazh si të lexuar."
|
||||
msgstr[1] "%2$s shënoi %1$d mesazhe si të lexuar."
|
||||
|
||||
#: ../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 fshiu %1$d mesazh."
|
||||
msgstr[1] "%2$s fshiu %1$d mesazhe."
|
||||
|
||||
#: ../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 bëri një foto ekrani të %1$d mesazhi."
|
||||
msgstr[1] "%2$s bëri një foto ekrani të %1$d mesazheve."
|
||||
|
||||
#: ../tgp-msg.c:162
|
||||
#, c-format
|
||||
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
|
||||
msgid "Telegram Channels"
|
||||
msgstr "Kanale Telegram-i"
|
||||
|
||||
#: ../tgp-msg.c:191
|
||||
msgid "Sending message failed."
|
||||
msgstr "Dërgimi i mesazhit dështoi."
|
||||
|
||||
#: ../tgp-msg.c:253
|
||||
msgid "Sending image failed."
|
||||
msgstr "Dërgimi i figurës dështoi."
|
||||
|
||||
#: ../tgp-msg.c:417
|
||||
#, 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:515
|
||||
msgid "[audio]"
|
||||
msgstr "[audio]"
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[video]"
|
||||
msgstr "[video]"
|
||||
|
||||
#: ../tgp-msg.c:604
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message from: %s</b><br>%s"
|
||||
msgstr "<b>Mesazh i përcjellë nga: %s</b><br>%s"
|
||||
|
||||
#. FIXME: sometimes users aren't part of the response when receiving a
|
||||
#. forwarded message
|
||||
#: ../tgp-msg.c:607
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message:</b><br>%s"
|
||||
msgstr "<b>Mesazh i përcjellë:</b><br>%s"
|
||||
|
||||
#: ../tgp-msg.c:720
|
||||
msgid "loading document or picture failed"
|
||||
msgstr "Ngarkimi i dokumentit ose fotos dështoi"
|
||||
|
||||
#: ../tgp-net.c:281
|
||||
msgid "Cannot connect to main server"
|
||||
msgstr "S’lidhet dot te shërbyesi kryesor"
|
||||
|
||||
#: ../tgp-net.c:322
|
||||
msgid "Cannot connect to server: Ping timeout."
|
||||
msgstr "S’lidhet dot te shërbyesi: Ping-ut i mbaroi koha."
|
||||
|
||||
#: ../tgp-net.c:365
|
||||
msgid "Lost connection to the server..."
|
||||
msgstr "Humbi lidhja me shërbyesin..."
|
||||
|
||||
#: ../tgp-request.c:51
|
||||
msgid ""
|
||||
"Telegram wants to verify your identity. Please enter the login code that you"
|
||||
" have received via SMS."
|
||||
msgstr ""
|
||||
"Telegram-i dëshiron të verifikojë identitetin tuaj. Ju lutemi, jepni kodin e"
|
||||
" hyrjes që keni marrë përmes SMS-je."
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Login code"
|
||||
msgstr "Kod hyrjeje"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Enter login code"
|
||||
msgstr "Jepni kodin e hyrjes postar"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "the code"
|
||||
msgstr "kodi"
|
||||
|
||||
#: ../tgp-request.c:54 ../tgp-request.c:104 ../tgp-request.c:198
|
||||
#: ../tgp-request.c:233 ../tgp-request.c:263
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
|
||||
#: ../tgp-request.c:55 ../tgp-request.c:104 ../tgp-request.c:123
|
||||
#: ../tgp-request.c:199 ../tgp-request.c:234 ../tgp-request.c:264
|
||||
msgid "Cancel"
|
||||
msgstr "Anuloje"
|
||||
|
||||
#: ../tgp-request.c:95
|
||||
msgid "Registration"
|
||||
msgstr "Regjistrim"
|
||||
|
||||
#: ../tgp-request.c:96
|
||||
msgid "First name"
|
||||
msgstr "Emër"
|
||||
|
||||
#: ../tgp-request.c:99
|
||||
msgid "Last name"
|
||||
msgstr "Mbiemër"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Register"
|
||||
msgstr "Regjistrohuni"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Please register your phone number."
|
||||
msgstr "Ju lutemi, regjistroni numrin tuaj të telefonit."
|
||||
|
||||
#. purple_request API not available
|
||||
#: ../tgp-request.c:108
|
||||
msgid ""
|
||||
"Phone number is not registered. Please register your phone on a different "
|
||||
"client."
|
||||
msgstr ""
|
||||
"Numri i telefonit s’është i regjistruar. Ju lutemi, regjistroni telefonin "
|
||||
"tuaj me një klient tjetër."
|
||||
|
||||
#: ../tgp-request.c:110
|
||||
msgid "Not registered"
|
||||
msgstr "I paregjistruar"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Password needed"
|
||||
msgstr "Lypset fjalëkalim"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Enter password for two factor authentication"
|
||||
msgstr "Jepni fjalëkalim për mirëfilltësim dyfaktorësh"
|
||||
|
||||
#: ../tgp-request.c:123
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: ../tgp-request.c:125
|
||||
msgid ""
|
||||
"No password set for two factor authentication. Please enter it in the "
|
||||
"extended settings."
|
||||
msgstr ""
|
||||
"Pa fjalëkalim të caktuar, për mirëfilltësim dyfaktorësh. Ju lutemi, jepeni "
|
||||
"te rregullimet e thelluara."
|
||||
|
||||
#: ../tgp-request.c:127
|
||||
msgid "Password invalid"
|
||||
msgstr "Fjalëkalim i pavlefshëm"
|
||||
|
||||
#: ../tgp-request.c:150
|
||||
#, c-format
|
||||
msgid "Accept secret chat '%s' on this device?"
|
||||
msgstr "Të pranohet fjalosja e fshehtë '%s' në këtë pajisje?"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
msgid "Secret chat"
|
||||
msgstr "Fjalosje e fshehtë"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
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 ""
|
||||
"Fjalosjet e fshehta mund të kenë vetëm një pikë marrjeje. Nëse pranoni një "
|
||||
"fjalosje të fshehtë në këtë pajisje, mesazhet e saj nuk do të jenë të "
|
||||
"dukshme gjetiu. Nëse nuk e pranoni, mund ta pranoni fjalosjen në pajisje të "
|
||||
"tjera."
|
||||
|
||||
#: ../tgp-request.c:182
|
||||
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 ""
|
||||
"Ftoni të paktën një përdorues shtesë duke dhënë\n"
|
||||
" emrat e tyre të plotë (mund të përdoret vetëplotësimi).\n"
|
||||
"Pasi fjalosja të jetë krijuar, mund të shtoni më tepër përdorues."
|
||||
|
||||
#: ../tgp-request.c:185 ../tgp-request.c:189 ../tgp-request.c:193
|
||||
msgid "Username"
|
||||
msgstr "Emër përdoruesi"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Create group chat"
|
||||
msgstr "Krijoni fjalosje grupi"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Invite users"
|
||||
msgstr "Ftoni përdorues"
|
||||
|
||||
#: ../tgp-request.c:217 ../tgp-request.c:232
|
||||
msgid "Change password"
|
||||
msgstr "Ndryshoni fjalëkalimin"
|
||||
|
||||
#: ../tgp-request.c:219
|
||||
msgid "Current"
|
||||
msgstr "I tanishmi"
|
||||
|
||||
#: ../tgp-request.c:223 ../tgp-request.c:253
|
||||
msgid "Password"
|
||||
msgstr "Fjalëkalim"
|
||||
|
||||
#: ../tgp-request.c:227 ../tgp-request.c:257
|
||||
msgid "Confirm"
|
||||
msgstr "Ripohojeni"
|
||||
|
||||
#: ../tgp-request.c:251 ../tgp-request.c:262
|
||||
msgid "New password"
|
||||
msgstr "Fjalëkalimi i ri"
|
||||
|
||||
#. 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
|
||||
msgid "Invalid phone number"
|
||||
msgstr "Numër telefoni i pavlefshëm"
|
||||
|
||||
#: ../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 ""
|
||||
"Ju lutemi, jepni vetëm numra në formatin për numra telefonash ndërkombëtarë, një + paraprijës të ndjekur nga prefiksi i vendit dhe numri i telefonit.\n"
|
||||
"Mos përdorni shenja të tjera speciale."
|
||||
|
||||
#: ../tgp-request.c:370
|
||||
msgid "Leave Chat"
|
||||
msgstr "Braktise Fjalosjen"
|
||||
|
||||
#: ../tgp-request.c:372
|
||||
msgid "Do you want to leave this chat permantently?"
|
||||
msgstr "Doni të dilni përgjithmonë nga kjo fjalosje?"
|
||||
|
||||
#: ../tgp-request.c:377
|
||||
msgid "Abort Secret Chat"
|
||||
msgstr "Ndërprite Fjalosjen e Fshehtë"
|
||||
|
||||
#: ../tgp-request.c:379
|
||||
msgid "Do you want to terminate this secret chat permantently?"
|
||||
msgstr "Doni ta përfundoni përgjithmonë këtë fjalosje të fshehtë?"
|
||||
|
||||
#: ../tgp-request.c:384
|
||||
msgid "Delete Contact"
|
||||
msgstr "Fshije Kontaktin"
|
||||
|
||||
#: ../tgp-request.c:386
|
||||
msgid "Do you want to remove this user from your global contact list?"
|
||||
msgstr "Doni të hiqet ky përdorues prej listës suaj globale të kontakteve?"
|
||||
|
||||
#: ../tgp-request.c:401
|
||||
msgid "Leave Channel"
|
||||
msgstr "Braktise Kanalin"
|
||||
|
||||
#: ../tgp-request.c:403
|
||||
msgid "Do you want to leave this channel?"
|
||||
msgstr "Doni ta braktisni këtë kanal?"
|
||||
|
||||
#. This should be the language's timestamp format. This is preceded by a
|
||||
#. colon.
|
||||
#: ../tgp-utils.c:27
|
||||
msgid "%d.%m.%Y %H:%M"
|
||||
msgstr "%d.%m.%Y %H:%M"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:48
|
||||
msgid "recently"
|
||||
msgstr "së fundi"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:52
|
||||
msgid "last week"
|
||||
msgstr "javën e fundit"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:56
|
||||
msgid "last month"
|
||||
msgstr "muajin e fundit"
|
||||
|
||||
#. This is preceded by a colon. It refers to a point on time.
|
||||
#: ../tgp-utils.c:60
|
||||
msgid "unknown"
|
||||
msgstr "e panjohur"
|
||||
|
||||
#: ../tgp-chat.c:108 ../tgp-chat.c:582
|
||||
msgid "Telegram Chats"
|
||||
msgstr "Fjalosje Telegram-i"
|
||||
|
||||
#: ../tgp-chat.c:113
|
||||
msgid "You have already left this chat."
|
||||
msgstr "E keni lëndë tashmë këtë fjalosje."
|
||||
|
||||
#: ../tgp-chat.c:224
|
||||
msgid "Subject:"
|
||||
msgstr "Subjekt:"
|
||||
|
||||
#: ../tgp-chat.c:230
|
||||
msgid "Invite link:"
|
||||
msgstr "Lidhje ftese:"
|
||||
|
||||
#: ../tgp-chat.c:236
|
||||
msgid "Chat ID:"
|
||||
msgstr "ID Fjalosjeje:"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Supergroup"
|
||||
msgstr "Supergrup"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Channel"
|
||||
msgstr "Kanal"
|
||||
|
||||
#: ../tgp-chat.c:345
|
||||
msgid "Group"
|
||||
msgstr "Grup"
|
||||
|
||||
#: ../tgp-chat.c:367
|
||||
msgid "Users in chat"
|
||||
msgstr "Përdorues në fjalosje"
|
||||
|
||||
#: ../tgp-chat.c:370
|
||||
msgid "Type"
|
||||
msgstr "Lloj"
|
|
@ -1,581 +0,0 @@
|
|||
# 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"
|
||||
"POT-Creation-Date: 2016-08-31 22:53+0200\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"
|
||||
|
||||
#: ../telegram-base.c:500
|
||||
msgid "Couldn't create group"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-base.c:501
|
||||
msgid "Please select at least one other user."
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-base.c:555
|
||||
msgid "Query Failed"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:162
|
||||
msgid "Secret chat ready."
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:170
|
||||
msgid "Secret chat terminated."
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:182
|
||||
msgid "Telegram"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:229
|
||||
msgid "Message marked as read."
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:339
|
||||
#, c-format
|
||||
msgid "Invite link: %s"
|
||||
msgstr ""
|
||||
|
||||
#. FIXME: Can TGLCHF_MODERATOR export links?
|
||||
#: ../telegram-purple.c:350
|
||||
msgid "Creating chat link failed"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:351
|
||||
msgid "You need to be admin of the group to do that."
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:416
|
||||
msgid "Chat joined"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:417
|
||||
msgid "Chat added to list of chat rooms."
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:443
|
||||
msgid "Start secret chat..."
|
||||
msgstr ""
|
||||
|
||||
#. Generate Public Link
|
||||
#: ../telegram-purple.c:450
|
||||
msgid "Invite users by link..."
|
||||
msgstr ""
|
||||
|
||||
#. Delete self from chat
|
||||
#: ../telegram-purple.c:458
|
||||
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
|
||||
#, 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
|
||||
msgid "Problem in tgl"
|
||||
msgstr ""
|
||||
|
||||
#. TRANSLATORS: Please fill in your own prefix!
|
||||
#: ../telegram-purple.c:584
|
||||
#, 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
|
||||
msgid "Incomplete phone number"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:642
|
||||
msgid "Secret chat was already deleted"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:644
|
||||
msgid "Secret chat is not ready"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:652
|
||||
msgid "Only the creator of a channel can post messages."
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:695
|
||||
msgid "Cannot invite buddy to chat"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:696
|
||||
msgid "Specified user does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:709
|
||||
msgid "phone no. (+ country prefix)"
|
||||
msgstr ""
|
||||
|
||||
#. Login
|
||||
#: ../telegram-purple.c:817
|
||||
msgid "Password (two factor authentication)"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:822
|
||||
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 ""
|
||||
|
||||
#: ../telegram-purple.c:829
|
||||
msgid "never"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:830
|
||||
msgid "ask"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:832
|
||||
msgid "Accept secret chats"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:836
|
||||
msgid "Display buddies offline after (days)"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:840
|
||||
msgid ""
|
||||
"Don't fetch history older than (days)\n"
|
||||
"(0 for unlimited)"
|
||||
msgstr ""
|
||||
|
||||
#. Media
|
||||
#: ../telegram-purple.c:845
|
||||
msgid "Autoload media size (kb)"
|
||||
msgstr ""
|
||||
|
||||
#. Chats
|
||||
#: ../telegram-purple.c:850
|
||||
msgid "Add all group chats to buddy list"
|
||||
msgstr ""
|
||||
|
||||
#. Read notifications
|
||||
#: ../telegram-purple.c:855
|
||||
msgid "Display notices of receipt"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:859
|
||||
msgid "Send notices of receipt when present"
|
||||
msgstr ""
|
||||
|
||||
#: ../telegram-purple.c:884
|
||||
msgid "Telegram Protocol Plugin."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:58
|
||||
#, c-format
|
||||
msgid "%2$s created chat %1$s."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:61
|
||||
#, c-format
|
||||
msgid "%2$s changed title to %1$s."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:64
|
||||
#, c-format
|
||||
msgid "%s changed photo."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:67
|
||||
#, c-format
|
||||
msgid "%s deleted photo."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:75
|
||||
#, c-format
|
||||
msgid "%1$s added user %2$s by link."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:90
|
||||
#, c-format
|
||||
msgid "%2$s added user %1$s."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:114 ../tgp-msg.c:131
|
||||
#, c-format
|
||||
msgid "%2$s deleted user %1$s."
|
||||
msgstr ""
|
||||
|
||||
#: ../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] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../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] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../tgp-msg.c:150
|
||||
#, c-format
|
||||
msgid "%2$s deleted %1$d message."
|
||||
msgid_plural "%2$s deleted %1$d messages."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../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] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../tgp-msg.c:162
|
||||
#, c-format
|
||||
msgid "Channel %1$s created"
|
||||
msgstr ""
|
||||
|
||||
#. FIXME: check if this makes sense
|
||||
#: ../tgp-msg.c:165 ../tgp-chat.c:124 ../tgp-chat.c:576
|
||||
msgid "Telegram Channels"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:191
|
||||
msgid "Sending message failed."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:253
|
||||
msgid "Sending image failed."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:417
|
||||
#, c-format
|
||||
msgid "%s sent a sticker."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:463
|
||||
msgid "failed loading message"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:498
|
||||
msgid "[animation]"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[audio]"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[video]"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:604
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message from: %s</b><br>%s"
|
||||
msgstr ""
|
||||
|
||||
#. FIXME: sometimes users aren't part of the response when receiving a forwarded message
|
||||
#: ../tgp-msg.c:607
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message:</b><br>%s"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-msg.c:720
|
||||
msgid "loading document or picture failed"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-net.c:281
|
||||
msgid "Cannot connect to main server"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-net.c:322
|
||||
msgid "Cannot connect to server: Ping timeout."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-net.c:365
|
||||
msgid "Lost connection to the server..."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:51
|
||||
msgid ""
|
||||
"Telegram wants to verify your identity. Please enter the login code that you "
|
||||
"have received via SMS."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Login code"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Enter login code"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "the code"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:54 ../tgp-request.c:104 ../tgp-request.c:198
|
||||
#: ../tgp-request.c:233 ../tgp-request.c:263
|
||||
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
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:95
|
||||
msgid "Registration"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:96
|
||||
msgid "First name"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:99
|
||||
msgid "Last name"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Register"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Please register your phone number."
|
||||
msgstr ""
|
||||
|
||||
#. purple_request API not available
|
||||
#: ../tgp-request.c:108
|
||||
msgid ""
|
||||
"Phone number is not registered. Please register your phone on a different "
|
||||
"client."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:110
|
||||
msgid "Not registered"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Password needed"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Enter password for two factor authentication"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:123
|
||||
msgid "Ok"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:150
|
||||
#, c-format
|
||||
msgid "Accept secret chat '%s' on this device?"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
msgid "Secret chat"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
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
|
||||
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
|
||||
msgid "Username"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Create group chat"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Invite users"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:217 ../tgp-request.c:232
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:219
|
||||
msgid "Current"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:223 ../tgp-request.c:253
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:227 ../tgp-request.c:257
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:251 ../tgp-request.c:262
|
||||
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
|
||||
msgid "Invalid phone number"
|
||||
msgstr ""
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../tgp-request.c:370
|
||||
msgid "Leave Chat"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:372
|
||||
msgid "Do you want to leave this chat permantently?"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:377
|
||||
msgid "Abort Secret Chat"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:379
|
||||
msgid "Do you want to terminate this secret chat permantently?"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-request.c:384
|
||||
msgid "Delete Contact"
|
||||
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 ""
|
||||
|
||||
#: ../tgp-request.c:403
|
||||
msgid "Do you want to leave this channel?"
|
||||
msgstr ""
|
||||
|
||||
#. This should be the language's timestamp format. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:27
|
||||
msgid "%d.%m.%Y %H:%M"
|
||||
msgstr ""
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:48
|
||||
msgid "recently"
|
||||
msgstr ""
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:52
|
||||
msgid "last week"
|
||||
msgstr ""
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:56
|
||||
msgid "last month"
|
||||
msgstr ""
|
||||
|
||||
#. This is preceded by a colon. It refers to a point on time.
|
||||
#: ../tgp-utils.c:60
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:108 ../tgp-chat.c:582
|
||||
msgid "Telegram Chats"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:113
|
||||
msgid "You have already left this chat."
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:224
|
||||
msgid "Subject:"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:230
|
||||
msgid "Invite link:"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:236
|
||||
msgid "Chat ID:"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Supergroup"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:345
|
||||
msgid "Group"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:367
|
||||
msgid "Users in chat"
|
||||
msgstr ""
|
||||
|
||||
#: ../tgp-chat.c:370
|
||||
msgid "Type"
|
||||
msgstr ""
|
616
po/uk.po
616
po/uk.po
|
@ -1,616 +0,0 @@
|
|||
# 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"
|
||||
"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"
|
||||
"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-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"
|
||||
|
||||
#: ../telegram-base.c:500
|
||||
msgid "Couldn't create group"
|
||||
msgstr "Не вдається створити групу"
|
||||
|
||||
#: ../telegram-base.c:501
|
||||
msgid "Please select at least one other user."
|
||||
msgstr "Будь ласка, виберіть ще хоча б одного іншого користувача"
|
||||
|
||||
#: ../telegram-base.c:555
|
||||
msgid "Query Failed"
|
||||
msgstr "Запит не вдався"
|
||||
|
||||
#: ../telegram-purple.c:162
|
||||
msgid "Secret chat ready."
|
||||
msgstr "Таємний чат готовий."
|
||||
|
||||
#: ../telegram-purple.c:170
|
||||
msgid "Secret chat terminated."
|
||||
msgstr "Таємний чат перерваний."
|
||||
|
||||
#: ../telegram-purple.c:182
|
||||
msgid "Telegram"
|
||||
msgstr "Telegram"
|
||||
|
||||
#: ../telegram-purple.c:229
|
||||
msgid "Message marked as read."
|
||||
msgstr "Повідомлення помічено як прочитане."
|
||||
|
||||
#: ../telegram-purple.c:339
|
||||
#, c-format
|
||||
msgid "Invite link: %s"
|
||||
msgstr "Адреса для запрошення: %s"
|
||||
|
||||
#. FIXME: Can TGLCHF_MODERATOR export links?
|
||||
#: ../telegram-purple.c:350
|
||||
msgid "Creating chat link failed"
|
||||
msgstr "Створення посилання на чат не вдалося"
|
||||
|
||||
#: ../telegram-purple.c:351
|
||||
msgid "You need to be admin of the group to do that."
|
||||
msgstr "Для цього ви маєте бути адміном групи."
|
||||
|
||||
#: ../telegram-purple.c:416
|
||||
msgid "Chat joined"
|
||||
msgstr "Чат підключений"
|
||||
|
||||
#: ../telegram-purple.c:417
|
||||
msgid "Chat added to list of chat rooms."
|
||||
msgstr "Чат доданий до списку чат-кімнат"
|
||||
|
||||
#: ../telegram-purple.c:443
|
||||
msgid "Start secret chat..."
|
||||
msgstr "Запустити таємний чат..."
|
||||
|
||||
#. Generate Public Link
|
||||
#: ../telegram-purple.c:450
|
||||
msgid "Invite users by link..."
|
||||
msgstr "Запросити користувачів посиланням..."
|
||||
|
||||
#. Delete self from chat
|
||||
#: ../telegram-purple.c:458
|
||||
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
|
||||
#, 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 ""
|
||||
"Не вдається увійти як %s: проблема в існуючій бібліотеці 'tgl'. Будь ласка, "
|
||||
"відправте звіт про помилку в журнал помилок."
|
||||
|
||||
#: ../telegram-purple.c:576
|
||||
msgid "Problem in tgl"
|
||||
msgstr "Проблема в tgl"
|
||||
|
||||
#. TRANSLATORS: Please fill in your own prefix!
|
||||
#: ../telegram-purple.c:584
|
||||
#, 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 ""
|
||||
"Не вдалось зайти як %s: в номері телефону не вистачає префікса країни. "
|
||||
"Номери повинні починатись з повного міжнародного префіксу-коду, напр., +38 "
|
||||
"для України."
|
||||
|
||||
#: ../telegram-purple.c:589
|
||||
msgid "Incomplete phone number"
|
||||
msgstr "Неповноцінний номер телефону"
|
||||
|
||||
#: ../telegram-purple.c:642
|
||||
msgid "Secret chat was already deleted"
|
||||
msgstr "Таємний чат вже видалений."
|
||||
|
||||
#: ../telegram-purple.c:644
|
||||
msgid "Secret chat is not ready"
|
||||
msgstr "Таємний чат не готовий."
|
||||
|
||||
#: ../telegram-purple.c:652
|
||||
msgid "Only the creator of a channel can post messages."
|
||||
msgstr "Писати повідомлення може тільки автор каналу."
|
||||
|
||||
#: ../telegram-purple.c:695
|
||||
msgid "Cannot invite buddy to chat"
|
||||
msgstr "Не вдається запросити друга в чат"
|
||||
|
||||
#: ../telegram-purple.c:696
|
||||
msgid "Specified user does not exist."
|
||||
msgstr "Такого користувача немає."
|
||||
|
||||
#: ../telegram-purple.c:709
|
||||
msgid "phone no. (+ country prefix)"
|
||||
msgstr "№ телефону (+ код країни)"
|
||||
|
||||
#. Login
|
||||
#: ../telegram-purple.c:817
|
||||
msgid "Password (two factor authentication)"
|
||||
msgstr "Пароль (двух-факторна аутентифікація)"
|
||||
|
||||
#: ../telegram-purple.c:822
|
||||
msgid ""
|
||||
"Fallback SMS verification\n"
|
||||
"(Helps when not using Pidgin and you aren't being prompted for the code)"
|
||||
msgstr ""
|
||||
"Резервна SMS-перевірка\n"
|
||||
"(Допомагає, коли ви не використовуєте Піджин, і вас не запрошено до кодування)"
|
||||
|
||||
#: ../telegram-purple.c:828
|
||||
msgid "always"
|
||||
msgstr "завжди"
|
||||
|
||||
#: ../telegram-purple.c:829
|
||||
msgid "never"
|
||||
msgstr "ніколи"
|
||||
|
||||
#: ../telegram-purple.c:830
|
||||
msgid "ask"
|
||||
msgstr "запитати"
|
||||
|
||||
#: ../telegram-purple.c:832
|
||||
msgid "Accept secret chats"
|
||||
msgstr "Приймати таємні чати"
|
||||
|
||||
#: ../telegram-purple.c:836
|
||||
msgid "Display buddies offline after (days)"
|
||||
msgstr "Відображати друзів, що оффлайн (днів)"
|
||||
|
||||
#: ../telegram-purple.c:840
|
||||
msgid ""
|
||||
"Don't fetch history older than (days)\n"
|
||||
"(0 for unlimited)"
|
||||
msgstr ""
|
||||
"Не піднімати історію, старшу за (днів)\n"
|
||||
"(піднімати усю - 0)"
|
||||
|
||||
#. Media
|
||||
#: ../telegram-purple.c:845
|
||||
msgid "Autoload media size (kb)"
|
||||
msgstr "Автозавантаження розміру медіа (кб)"
|
||||
|
||||
#. Chats
|
||||
#: ../telegram-purple.c:850
|
||||
msgid "Add all group chats to buddy list"
|
||||
msgstr "Додати усі групові чати в список контактів"
|
||||
|
||||
#. Read notifications
|
||||
#: ../telegram-purple.c:855
|
||||
msgid "Display notices of receipt"
|
||||
msgstr "Показувати повідомлення про отримання"
|
||||
|
||||
#: ../telegram-purple.c:859
|
||||
msgid "Send notices of receipt when present"
|
||||
msgstr "Відправляти повідомлення про отримання, якщо воно є"
|
||||
|
||||
#: ../telegram-purple.c:884
|
||||
msgid "Telegram Protocol Plugin."
|
||||
msgstr "Плагін Протоколу Telegram"
|
||||
|
||||
#: ../tgp-msg.c:58
|
||||
#, c-format
|
||||
msgid "%2$s created chat %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."
|
||||
|
||||
#: ../tgp-msg.c:64
|
||||
#, c-format
|
||||
msgid "%s changed photo."
|
||||
msgstr "%s змінив фото."
|
||||
|
||||
#: ../tgp-msg.c:67
|
||||
#, c-format
|
||||
msgid "%s deleted photo."
|
||||
msgstr "%s видалив фото."
|
||||
|
||||
#: ../tgp-msg.c:75
|
||||
#, c-format
|
||||
msgid "%1$s added user %2$s by link."
|
||||
msgstr "%1$s додав %2$s за посиланням."
|
||||
|
||||
#: ../tgp-msg.c:90
|
||||
#, c-format
|
||||
msgid "%2$s added user %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."
|
||||
|
||||
#: ../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 встановив таймер самознищення на %1$d секунду."
|
||||
msgstr[1] "%2$s встановив таймер самознищення на %1$d секунди."
|
||||
msgstr[2] "%2$s встановив таймер самознищення на %1$d секунд."
|
||||
|
||||
#: ../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 помітив %1$d повідомлення як прочитане."
|
||||
msgstr[1] "%2$s помітив %1$d повідомлення як прочитані."
|
||||
msgstr[2] "%2$s помітив %1$d повідомленнь як прочитані."
|
||||
|
||||
#: ../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 видалив %1$d повідомлення."
|
||||
msgstr[1] "%2$s видалив %1$d повідомлення."
|
||||
msgstr[2] "%2$s видалив %1$d повідомленнь."
|
||||
|
||||
#: ../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 зробив скріншот %1$d повідомлення."
|
||||
msgstr[1] "%2$s зробив скріншот %1$d повідомлень."
|
||||
msgstr[2] "%2$s зробив скріншот %1$d повідомленнь."
|
||||
|
||||
#: ../tgp-msg.c:162
|
||||
#, c-format
|
||||
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
|
||||
msgid "Telegram Channels"
|
||||
msgstr "Канали Telegram"
|
||||
|
||||
#: ../tgp-msg.c:191
|
||||
msgid "Sending message failed."
|
||||
msgstr "Відправка повідомлення не вдалась."
|
||||
|
||||
#: ../tgp-msg.c:253
|
||||
msgid "Sending image failed."
|
||||
msgstr "Відправка зображення не вдалася"
|
||||
|
||||
#: ../tgp-msg.c:417
|
||||
#, 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:515
|
||||
msgid "[audio]"
|
||||
msgstr "[аудіо]"
|
||||
|
||||
#: ../tgp-msg.c:515
|
||||
msgid "[video]"
|
||||
msgstr "[відео]"
|
||||
|
||||
#: ../tgp-msg.c:604
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message from: %s</b><br>%s"
|
||||
msgstr "<b>Перенаправлене повідомлення від %s</b><br>%s"
|
||||
|
||||
#. FIXME: sometimes users aren't part of the response when receiving a
|
||||
#. forwarded message
|
||||
#: ../tgp-msg.c:607
|
||||
#, c-format
|
||||
msgid "<b>Forwarded message:</b><br>%s"
|
||||
msgstr "<b>Перенаправлене повідомлення:</b><br>%s"
|
||||
|
||||
#: ../tgp-msg.c:720
|
||||
msgid "loading document or picture failed"
|
||||
msgstr "завантаження документу чи картинки не вдалось"
|
||||
|
||||
#: ../tgp-net.c:281
|
||||
msgid "Cannot connect to main server"
|
||||
msgstr "Не вдається підключитись до головного сервера"
|
||||
|
||||
#: ../tgp-net.c:322
|
||||
msgid "Cannot connect to server: Ping timeout."
|
||||
msgstr "Не вдається підключитись до сервера: сервер не відповідає."
|
||||
|
||||
#: ../tgp-net.c:365
|
||||
msgid "Lost connection to the server..."
|
||||
msgstr "Зв'язок із сервером втрачений..."
|
||||
|
||||
#: ../tgp-request.c:51
|
||||
msgid ""
|
||||
"Telegram wants to verify your identity. Please enter the login code that you"
|
||||
" have received via SMS."
|
||||
msgstr ""
|
||||
"Telegram хоче перевірити вашу особистість. Будь ласка, введіть логін, що "
|
||||
"отримали по SMS."
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Login code"
|
||||
msgstr "Код входу"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "Enter login code"
|
||||
msgstr "Введіть код входу"
|
||||
|
||||
#: ../tgp-request.c:54
|
||||
msgid "the code"
|
||||
msgstr "код"
|
||||
|
||||
#: ../tgp-request.c:54 ../tgp-request.c:104 ../tgp-request.c:198
|
||||
#: ../tgp-request.c:233 ../tgp-request.c:263
|
||||
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
|
||||
msgid "Cancel"
|
||||
msgstr "Відміна"
|
||||
|
||||
#: ../tgp-request.c:95
|
||||
msgid "Registration"
|
||||
msgstr "Регістрація"
|
||||
|
||||
#: ../tgp-request.c:96
|
||||
msgid "First name"
|
||||
msgstr "Ім'я"
|
||||
|
||||
#: ../tgp-request.c:99
|
||||
msgid "Last name"
|
||||
msgstr "Прізвище"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Register"
|
||||
msgstr "Зарегіструватись"
|
||||
|
||||
#: ../tgp-request.c:103
|
||||
msgid "Please register your phone number."
|
||||
msgstr "Будь ласка, зареєструйте ваш номер телефону."
|
||||
|
||||
#. purple_request API not available
|
||||
#: ../tgp-request.c:108
|
||||
msgid ""
|
||||
"Phone number is not registered. Please register your phone on a different "
|
||||
"client."
|
||||
msgstr ""
|
||||
"Номер телефону не зареєстрований. Будь ласка, зареєструйте ваш телефон на "
|
||||
"іншого кліента."
|
||||
|
||||
#: ../tgp-request.c:110
|
||||
msgid "Not registered"
|
||||
msgstr "Не зареєстрований"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Password needed"
|
||||
msgstr "Потрібен пароль"
|
||||
|
||||
#: ../tgp-request.c:122
|
||||
msgid "Enter password for two factor authentication"
|
||||
msgstr "Введіть пароль для двофакторної авторизації"
|
||||
|
||||
#: ../tgp-request.c:123
|
||||
msgid "Ok"
|
||||
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"
|
||||
msgstr "Пароль невірний"
|
||||
|
||||
#: ../tgp-request.c:150
|
||||
#, c-format
|
||||
msgid "Accept secret chat '%s' on this device?"
|
||||
msgstr "Прийняти таємний чат '%s' на цьому пристрої?"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
msgid "Secret chat"
|
||||
msgstr "Таємний чат"
|
||||
|
||||
#: ../tgp-request.c:151
|
||||
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
|
||||
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 ""
|
||||
"Запросіть щонайменше одного додаткового користувача вказанням його повного імені (автозавершення доступне).\n"
|
||||
"Ви можете додати більше користувачів одразу після створення чата."
|
||||
|
||||
#: ../tgp-request.c:185 ../tgp-request.c:189 ../tgp-request.c:193
|
||||
msgid "Username"
|
||||
msgstr "Ім'я користувача"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Create group chat"
|
||||
msgstr "Створити груповий чат"
|
||||
|
||||
#: ../tgp-request.c:198
|
||||
msgid "Invite users"
|
||||
msgstr "Запросити користувачів"
|
||||
|
||||
#: ../tgp-request.c:217 ../tgp-request.c:232
|
||||
msgid "Change password"
|
||||
msgstr "Змінити пароль"
|
||||
|
||||
#: ../tgp-request.c:219
|
||||
msgid "Current"
|
||||
msgstr "Поточний"
|
||||
|
||||
#: ../tgp-request.c:223 ../tgp-request.c:253
|
||||
msgid "Password"
|
||||
msgstr "Пароль"
|
||||
|
||||
#: ../tgp-request.c:227 ../tgp-request.c:257
|
||||
msgid "Confirm"
|
||||
msgstr "Підтвердити"
|
||||
|
||||
#: ../tgp-request.c:251 ../tgp-request.c:262
|
||||
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
|
||||
msgid "Invalid phone number"
|
||||
msgstr "Невірний номер телефону"
|
||||
|
||||
#: ../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 ""
|
||||
"Будь ласка, введіть номер тільки цифри в міжнародному телефонному форматі. Значок +, потім код країни і номер абонента.\n"
|
||||
"Не використовуйте інших символів."
|
||||
|
||||
#: ../tgp-request.c:370
|
||||
msgid "Leave Chat"
|
||||
msgstr "Покинути чат"
|
||||
|
||||
#: ../tgp-request.c:372
|
||||
msgid "Do you want to leave this chat permantently?"
|
||||
msgstr "Бажаєте надовго покинути цей таємний чат?"
|
||||
|
||||
#: ../tgp-request.c:377
|
||||
msgid "Abort Secret Chat"
|
||||
msgstr "Про таємний чат"
|
||||
|
||||
#: ../tgp-request.c:379
|
||||
msgid "Do you want to terminate this secret chat permantently?"
|
||||
msgstr "Бажаєте надовго перервати цей таємний чат?"
|
||||
|
||||
#: ../tgp-request.c:384
|
||||
msgid "Delete Contact"
|
||||
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 "Покинути канал"
|
||||
|
||||
#: ../tgp-request.c:403
|
||||
msgid "Do you want to leave this channel?"
|
||||
msgstr "Бажаєте покинути цей канал?"
|
||||
|
||||
#. This should be the language's timestamp format. This is preceded by a
|
||||
#. colon.
|
||||
#: ../tgp-utils.c:27
|
||||
msgid "%d.%m.%Y %H:%M"
|
||||
msgstr "%d.%m.%Y %H:%M"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:48
|
||||
msgid "recently"
|
||||
msgstr "нещодавно"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:52
|
||||
msgid "last week"
|
||||
msgstr "на тому тижні"
|
||||
|
||||
#. This is preceded by a colon.
|
||||
#: ../tgp-utils.c:56
|
||||
msgid "last month"
|
||||
msgstr "минулого місяця"
|
||||
|
||||
#. This is preceded by a colon. It refers to a point on time.
|
||||
#: ../tgp-utils.c:60
|
||||
msgid "unknown"
|
||||
msgstr "невідомо"
|
||||
|
||||
#: ../tgp-chat.c:108 ../tgp-chat.c:582
|
||||
msgid "Telegram Chats"
|
||||
msgstr "Чати Telegram"
|
||||
|
||||
#: ../tgp-chat.c:113
|
||||
msgid "You have already left this chat."
|
||||
msgstr "Ви вже покинули цей чат."
|
||||
|
||||
#: ../tgp-chat.c:224
|
||||
msgid "Subject:"
|
||||
msgstr "Тема:"
|
||||
|
||||
#: ../tgp-chat.c:230
|
||||
msgid "Invite link:"
|
||||
msgstr "Посилання для запрошення:"
|
||||
|
||||
#: ../tgp-chat.c:236
|
||||
msgid "Chat ID:"
|
||||
msgstr "ID чата:"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Supergroup"
|
||||
msgstr "Супергрупа"
|
||||
|
||||
#: ../tgp-chat.c:342
|
||||
msgid "Channel"
|
||||
msgstr "Канал"
|
||||
|
||||
#: ../tgp-chat.c:345
|
||||
msgid "Group"
|
||||
msgstr "Група"
|
||||
|
||||
#: ../tgp-chat.c:367
|
||||
msgid "Users in chat"
|
||||
msgstr "Користувачі у чаті"
|
||||
|
||||
#: ../tgp-chat.c:370
|
||||
msgid "Type"
|
||||
msgstr "Тип"
|
|
@ -1,69 +0,0 @@
|
|||
Name: purple-telegram
|
||||
Version: 1.3.1
|
||||
Release: 1%{?dist}
|
||||
Summary: Adds support for Libpurple based messengers
|
||||
Group: Applications/Internet
|
||||
License: GPLv2+
|
||||
URL: https://github.com/majn/telegram-purple
|
||||
Source0: https://codeload.github.com/majn/telegram-purple/tar.gz/v%{version}.tar.gz
|
||||
|
||||
BuildRequires: gettext, libgcrypt-devel >= 1.6, pkgconfig(zlib), pkgconfig(purple), pkgconfig(libwebp)
|
||||
BuildRequires: pkgconfig(appstream-glib)
|
||||
|
||||
%description
|
||||
Adds support for Telegram to Pidgin, Adium, Finch
|
||||
and other Libpurple based messengers.
|
||||
|
||||
%prep
|
||||
%autosetup
|
||||
|
||||
%build
|
||||
%configure
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
%make_install
|
||||
chmod 755 %{buildroot}/%{_libdir}/purple-2/telegram-purple.so
|
||||
%find_lang telegram-purple
|
||||
|
||||
%check
|
||||
appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/telegram-purple.metainfo.xml
|
||||
|
||||
%files -f telegram-purple.lang
|
||||
%doc README* CHANGELOG*
|
||||
%{_libdir}/purple-2/telegram-purple.so
|
||||
%config %{_sysconfdir}/telegram-purple/*
|
||||
%{_datadir}/appdata/telegram-purple.metainfo.xml
|
||||
%{_datadir}/pixmaps/pidgin/protocols/16/telegram.png
|
||||
%{_datadir}/pixmaps/pidgin/protocols/22/telegram.png
|
||||
%{_datadir}/pixmaps/pidgin/protocols/48/telegram.png
|
||||
|
||||
%changelog
|
||||
* Sun Apr 9 2017 mjentsch 1.3.1-1
|
||||
- Build for 1.3.1
|
||||
|
||||
* Thu Dec 10 2015 tuxmaster 1.3.0-1
|
||||
- Build for 1.3.0
|
||||
|
||||
* Sat Jan 23 mjentsch 1.2.5-1
|
||||
- build for 1.2.5
|
||||
|
||||
* Thu Dec 10 2015 tuxmaster 1.2.4-2
|
||||
- Fix build for appdata.
|
||||
|
||||
* Thu Dec 10 2015 mjentsch 1.2.4-1
|
||||
- build for 1.2.4
|
||||
|
||||
* Thu Dec 10 2015 tuxmaster 1.2.4-2
|
||||
- Fix build for appdata.
|
||||
|
||||
* Wed Nov 18 2015 tuxmaster 1.2.2-3
|
||||
- Add required version for libgcrypt.
|
||||
|
||||
* Wed Oct 14 2015 tuxmaster 1.2.2-2
|
||||
- Use the better pkconfig for build requires.
|
||||
- Add translations.
|
||||
- Switch to libgcrypt from openssl.
|
||||
|
||||
* Wed Oct 07 2015 mjentsch 1.2.2-1
|
||||
- update version to 1.2.2
|
4
telegram-adium/.gitignore
vendored
4
telegram-adium/.gitignore
vendored
|
@ -1,2 +1,2 @@
|
|||
/telegram-adium.xcodeproj/project.xcworkspace/xcuserdata/
|
||||
/telegram-adium.xcodeproj/xcuserdata/
|
||||
telegram-adium.xcodeproj/project.xcworkspace/xcuserdata/
|
||||
telegram-adium.xcodeproj/xcuserdata/matj.xcuserdatad/xcdebugger/
|
||||
|
|
|
@ -17,13 +17,10 @@
|
|||
*/
|
||||
|
||||
#import "TelegramAccount.h"
|
||||
#import "tgp-ft.h"
|
||||
|
||||
#import <libpurple/conversation.h>
|
||||
#import <Adium/ESFileTransfer.h>
|
||||
#import <Adium/AIListContact.h>
|
||||
#import <Adium/AIMenuControllerProtocol.h>
|
||||
#import <Adium/AIHTMLDecoder.h>
|
||||
#import <AIUtilities/AIMenuAdditions.h>
|
||||
#import "tgp-ft.h"
|
||||
|
||||
#include "telegram-purple.h"
|
||||
|
||||
|
@ -49,37 +46,11 @@
|
|||
return 443;
|
||||
}
|
||||
|
||||
- (void)didConnect
|
||||
{
|
||||
[super didConnect];
|
||||
[self purpleAccount];
|
||||
|
||||
// FIXME: Crashed after going online
|
||||
|
||||
// Storing chats in the blist breaks Adium bookmarks. Adium doesn't
|
||||
// show those chats anyway, so we can just safely delete those.
|
||||
PurpleBlistNode *node = purple_blist_get_root();
|
||||
while (node) {
|
||||
if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
|
||||
PurpleChat *ch = PURPLE_CHAT(node);
|
||||
if (purple_chat_get_account(ch) == account) {
|
||||
NSLog (@"Removing chat from blist: %s", ch->alias);
|
||||
purple_blist_remove_chat (ch);
|
||||
}
|
||||
}
|
||||
node = purple_blist_node_next (node, 0);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)configurePurpleAccount
|
||||
{
|
||||
[super configurePurpleAccount];
|
||||
|
||||
purple_account_set_string (account, TGP_KEY_PASSWORD_TWO_FACTOR,
|
||||
[[self preferenceForKey:@"Telegram:"TGP_KEY_PASSWORD_TWO_FACTOR
|
||||
group:GROUP_ACCOUNT_STATUS]
|
||||
UTF8String]);
|
||||
|
||||
purple_account_set_string (account, TGP_KEY_ACCEPT_SECRET_CHATS,
|
||||
[[self preferenceForKey:@"Telegram:"TGP_KEY_ACCEPT_SECRET_CHATS
|
||||
group:GROUP_ACCOUNT_STATUS]
|
||||
|
@ -90,11 +61,11 @@
|
|||
group:GROUP_ACCOUNT_STATUS]
|
||||
boolValue]);
|
||||
|
||||
purple_account_set_bool (account, TGP_KEY_SEND_READ_NOTIFICATIONS,
|
||||
[[self preferenceForKey:@"Telegram:"TGP_KEY_SEND_READ_NOTIFICATIONS
|
||||
group:GROUP_ACCOUNT_STATUS]
|
||||
boolValue]);
|
||||
|
||||
purple_account_set_bool (account, TGP_KEY_HISTORY_SYNC_ALL,
|
||||
[[self preferenceForKey:@"Telegram:"TGP_KEY_HISTORY_SYNC_ALL
|
||||
group:GROUP_ACCOUNT_STATUS]
|
||||
boolValue]);
|
||||
|
||||
purple_account_set_int (account, TGP_KEY_HISTORY_RETRIEVAL_THRESHOLD,
|
||||
[[self preferenceForKey:@"Telegram:"TGP_KEY_HISTORY_RETRIEVAL_THRESHOLD
|
||||
group:GROUP_ACCOUNT_STATUS]
|
||||
|
@ -106,58 +77,6 @@
|
|||
intValue]);
|
||||
}
|
||||
|
||||
#pragma mark Action Menu
|
||||
-(NSMenu*)actionMenuForChat:(AIChat*)chat
|
||||
{
|
||||
NSArray *listObjects = nil;
|
||||
AIListObject *listObject = nil;
|
||||
|
||||
if (listObjects.count) {
|
||||
listObject = [listObjects objectAtIndex:0];
|
||||
}
|
||||
|
||||
NSMenu *menu = [adium.menuController
|
||||
contextualMenuWithLocations: [NSArray arrayWithObjects:
|
||||
[NSNumber numberWithInteger: Context_GroupChat_Manage],
|
||||
[NSNumber numberWithInteger: Context_Group_Manage],
|
||||
[NSNumber numberWithInteger: Context_GroupChat_Action],
|
||||
nil] forChat: chat];
|
||||
[menu addItem:[NSMenuItem separatorItem]];
|
||||
|
||||
[menu addItemWithTitle:@"Invite users by link..."
|
||||
target:self
|
||||
action:@selector(addUserByLink)
|
||||
keyEquivalent:@""
|
||||
tag:0];
|
||||
|
||||
[menu addItemWithTitle:@"Delete and exit..."
|
||||
target:self
|
||||
action:@selector(deleteAndExit)
|
||||
keyEquivalent:@""
|
||||
tag:0];
|
||||
|
||||
return menu;
|
||||
}
|
||||
|
||||
- (void)addUserByLink
|
||||
{
|
||||
connection_data *conn = purple_connection_get_protocol_data (purple_account_get_connection(account));
|
||||
AIChat *chat = adium.interfaceController.activeChat;
|
||||
if (chat) {
|
||||
export_chat_link_by_name (conn->TLS, [chat.name UTF8String]);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)deleteAndExit
|
||||
{
|
||||
connection_data *conn = purple_connection_get_protocol_data (purple_account_get_connection(account));
|
||||
AIChat *chat = adium.interfaceController.activeChat;
|
||||
if (chat) {
|
||||
leave_and_delete_chat_by_name (conn->TLS, [chat.name UTF8String]);
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark File transfer
|
||||
- (BOOL)canSendOfflineMessageToContact:(AIListContact *)inContact
|
||||
{
|
||||
return YES;
|
||||
|
@ -183,42 +102,4 @@
|
|||
[super cancelFileTransfer:fileTransfer];
|
||||
}
|
||||
|
||||
- (NSString *)encodedAttributedString:(NSAttributedString *)inAttributedString forListObject:(AIListObject *)inListObject
|
||||
{
|
||||
static AIHTMLDecoder *htmlEncoder = nil;
|
||||
if (!htmlEncoder) {
|
||||
htmlEncoder = [[AIHTMLDecoder alloc] init];
|
||||
[htmlEncoder setIncludesHeaders:NO];
|
||||
[htmlEncoder setIncludesFontTags:NO];
|
||||
[htmlEncoder setClosesFontTags:YES];
|
||||
[htmlEncoder setIncludesStyleTags:NO];
|
||||
[htmlEncoder setIncludesColorTags:NO];
|
||||
[htmlEncoder setEncodesNonASCII:NO];
|
||||
[htmlEncoder setPreservesAllSpaces:NO];
|
||||
[htmlEncoder setUsesAttachmentTextEquivalents:YES];
|
||||
}
|
||||
|
||||
return [htmlEncoder encodeHTML:inAttributedString imagesPath:nil];
|
||||
}
|
||||
|
||||
#pragma mark Group Chats
|
||||
|
||||
/*!
|
||||
* @brief Re-create the chat's join options.
|
||||
*/
|
||||
- (NSDictionary *)extractChatCreationDictionaryFromConversation:(PurpleConversation *)conv
|
||||
{
|
||||
connection_data *conn = purple_connection_get_protocol_data (purple_conversation_get_gc (conv));
|
||||
|
||||
const char *name = purple_conversation_get_name (conv);
|
||||
tgl_peer_t *P = tgp_blist_lookup_peer_get (conn->TLS, purple_conversation_get_title (conv));
|
||||
if (P) {
|
||||
return [NSMutableDictionary dictionaryWithObjectsAndKeys:
|
||||
[NSString stringWithFormat:@"%d", tgl_get_peer_id(P->id)], @"id",
|
||||
[NSString stringWithUTF8String: name], @"subject",
|
||||
nil];
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -1,20 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9531" systemVersion="15C50" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="6751" systemVersion="14C1510" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9531"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="6751"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="TelegramAccountViewController">
|
||||
<connections>
|
||||
<outlet property="checkbox_displayReadNotifications" destination="Tat-1e-jqI" id="1m9-1n-bKm"/>
|
||||
<outlet property="checkbox_sendReadNotifications" destination="4Xx-hY-Mzh" id="OMa-pG-ePd"/>
|
||||
<outlet property="checkbox_historySyncAll" destination="Qob-Rq-UJj" id="1dM-ig-DQa"/>
|
||||
<outlet property="radio_Encryption" destination="RGC-Jo-M5e" id="gMv-Gj-Dyg"/>
|
||||
<outlet property="textField_accountUID" destination="Mv3-b8-21b" id="Cxi-GZ-5oi"/>
|
||||
<outlet property="textField_accountUIDLabel" destination="yae-v6-YMB" id="XHk-zX-T5y"/>
|
||||
<outlet property="textField_historyRetrieveDays" destination="gKj-Oj-qll" id="tvW-aI-8ws"/>
|
||||
<outlet property="textField_inactiveDaysOffline" destination="Nvv-1I-L31" id="8Sn-4f-M5j"/>
|
||||
<outlet property="textField_passwordTwoFactor" destination="Hkg-uU-btb" id="LvJ-1q-ud2"/>
|
||||
<outlet property="view_options" destination="DGa-mQ-g3C" id="L0S-pj-8w4"/>
|
||||
<outlet property="view_setup" destination="c22-O7-iKe" id="xp5-o5-fb9"/>
|
||||
</connections>
|
||||
|
@ -22,11 +21,11 @@
|
|||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<customView id="c22-O7-iKe" userLabel="Setup">
|
||||
<rect key="frame" x="0.0" y="0.0" width="321" height="150"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="321" height="100"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Mv3-b8-21b">
|
||||
<rect key="frame" x="124" y="106" width="177" height="22"/>
|
||||
<rect key="frame" x="124" y="56" width="177" height="22"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="+491573123456" drawsBackground="YES" id="ddM-ki-WMe">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
|
@ -34,73 +33,47 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="yae-v6-YMB">
|
||||
<rect key="frame" x="-54" y="109" width="172" height="17"/>
|
||||
<rect key="frame" x="-54" y="59" width="172" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Phone Number:" id="0UB-Dx-PpB">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="CGg-HM-Fxl">
|
||||
<rect key="frame" x="-54" y="39" width="172" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Password:" id="8u1-y6-XZw">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="MCb-6Q-kUW">
|
||||
<rect key="frame" x="22" y="70" width="274" height="28"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="left" title="Your phone number in the international format, a leading '+' and without any other special chars." id="2C9-SB-kKZ">
|
||||
<rect key="frame" x="28" y="20" width="264" height="28"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Your phone number in the international format, a leading '+' and without any other special chars." id="2C9-SB-kKZ">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="PaN-W9-uI1">
|
||||
<rect key="frame" x="22" y="0.0" width="285" height="28"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="left" title="Needed when using two factor authentication." id="cCC-Jv-B6B">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<secureTextField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Hkg-uU-btb">
|
||||
<rect key="frame" x="124" y="36" width="177" height="22"/>
|
||||
<secureTextFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" usesSingleLineMode="YES" id="xzm-aB-xvz">
|
||||
</subviews>
|
||||
<point key="canvasLocation" x="380.5" y="13"/>
|
||||
</customView>
|
||||
<customView id="DGa-mQ-g3C" userLabel="Options">
|
||||
<rect key="frame" x="0.0" y="0.0" width="272" height="167"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Nvv-1I-L31">
|
||||
<rect key="frame" x="176" y="4" width="49" height="22"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="Pm0-Jw-ayL">
|
||||
<numberFormatter key="formatter" formatterBehavior="default10_4" numberStyle="decimal" minimumIntegerDigits="1" maximumIntegerDigits="2000000000" maximumFractionDigits="3" id="L9W-52-Xg9"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
<allowedInputSourceLocales>
|
||||
<string>NSAllRomanInputSourcesLocaleIdentifier</string>
|
||||
</allowedInputSourceLocales>
|
||||
</secureTextFieldCell>
|
||||
</secureTextField>
|
||||
</subviews>
|
||||
<point key="canvasLocation" x="380.5" y="38"/>
|
||||
</customView>
|
||||
<customView id="DGa-mQ-g3C" userLabel="Options">
|
||||
<rect key="frame" x="0.0" y="0.0" width="272" height="206"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zRH-KJ-uvC" userLabel="Accept Secret Chats">
|
||||
<rect key="frame" x="6" y="52" width="168" height="17"/>
|
||||
<rect key="frame" x="6" y="34" width="160" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="Ignore history older than" id="MSN-Hj-aRS">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="C4T-Hq-g5C" userLabel="Accept Secret Chats">
|
||||
<rect key="frame" x="6" y="0.0" width="138" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" id="ARj-qB-Q5Z">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="gKj-Oj-qll">
|
||||
<rect key="frame" x="176" y="47" width="49" height="22"/>
|
||||
<rect key="frame" x="176" y="29" width="49" height="22"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="lVr-43-iAS">
|
||||
<numberFormatter key="formatter" formatterBehavior="default10_4" numberStyle="decimal" minimumIntegerDigits="1" maximumIntegerDigits="2000000000" maximumFractionDigits="3" id="tH1-pY-m7Q"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
|
@ -109,9 +82,9 @@
|
|||
</textFieldCell>
|
||||
</textField>
|
||||
<matrix verticalHuggingPriority="750" fixedFrame="YES" allowsEmptySelection="NO" autorecalculatesCellSize="YES" translatesAutoresizingMaskIntoConstraints="NO" id="RGC-Jo-M5e">
|
||||
<rect key="frame" x="176" y="135" width="76" height="58"/>
|
||||
<rect key="frame" x="176" y="103" width="76" height="58"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
<size key="cellSize" width="65" height="18"/>
|
||||
<size key="cellSize" width="66" height="18"/>
|
||||
<size key="intercellSpacing" width="4" height="2"/>
|
||||
<buttonCell key="prototype" type="radio" title="Radio" imagePosition="left" alignment="left" inset="2" id="XXf-7E-yhf">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
|
@ -134,71 +107,54 @@
|
|||
</column>
|
||||
</cells>
|
||||
</matrix>
|
||||
<textField verticalHuggingPriority="750" fixedFrame="YES" preferredMaxLayoutWidth="122" translatesAutoresizingMaskIntoConstraints="NO" id="sb8-oa-s84">
|
||||
<rect key="frame" x="231" y="52" width="126" height="14"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="left" title="Days" id="cOl-DG-CvA">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" fixedFrame="YES" preferredMaxLayoutWidth="122" translatesAutoresizingMaskIntoConstraints="NO" id="EEO-n2-kS3">
|
||||
<rect key="frame" x="6" y="37" width="126" height="14"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="left" title="(0 days for unlimited)" id="TQS-UR-EnH">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="4Xx-hY-Mzh">
|
||||
<rect key="frame" x="6" y="75" width="251" height="24"/>
|
||||
<buttonCell key="cell" type="check" title="Send read notifications when present" bezelStyle="regularSquare" imagePosition="left" scrollable="YES" lineBreakMode="clipping" state="on" inset="2" id="vdV-Ig-yub">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
</button>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="4Mf-Qx-mrn" userLabel="Accept Secret Chats">
|
||||
<rect key="frame" x="6" y="176" width="135" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" userInterfaceLayoutDirection="rightToLeft" alignment="left" title="Accept secret chats?" id="t4Q-j1-35n">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Nvv-1I-L31">
|
||||
<rect key="frame" x="176" y="12" width="49" height="22"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="Pm0-Jw-ayL">
|
||||
<numberFormatter key="formatter" formatterBehavior="default10_4" numberStyle="decimal" minimumIntegerDigits="1" maximumIntegerDigits="2000000000" maximumFractionDigits="3" id="L9W-52-Xg9"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="m95-No-oJH" userLabel="Accept Secret Chats">
|
||||
<rect key="frame" x="6" y="17" width="168" height="17"/>
|
||||
<rect key="frame" x="6" y="9" width="168" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" userInterfaceLayoutDirection="rightToLeft" alignment="left" title="Display users offline after" id="zJx-0I-fdw">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" fixedFrame="YES" preferredMaxLayoutWidth="122" translatesAutoresizingMaskIntoConstraints="NO" id="TaV-3x-dxE">
|
||||
<rect key="frame" x="231" y="17" width="126" height="14"/>
|
||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="TaV-3x-dxE">
|
||||
<rect key="frame" x="231" y="9" width="126" height="14"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="left" title="Days" id="Aav-dA-OrQ">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="sb8-oa-s84">
|
||||
<rect key="frame" x="231" y="34" width="126" height="14"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="left" title="Days" id="cOl-DG-CvA">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Tat-1e-jqI">
|
||||
<rect key="frame" x="6" y="105" width="178" height="24"/>
|
||||
<rect key="frame" x="6" y="77" width="178" height="24"/>
|
||||
<buttonCell key="cell" type="check" title="Display read notifications" bezelStyle="regularSquare" imagePosition="left" scrollable="YES" lineBreakMode="clipping" state="on" inset="2" id="l1g-r5-pNb">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
</button>
|
||||
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Qob-Rq-UJj">
|
||||
<rect key="frame" x="6" y="57" width="213" height="18"/>
|
||||
<buttonCell key="cell" type="check" title="Fetch past history on first login" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="uu6-Td-pzN">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
</button>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="4Mf-Qx-mrn" userLabel="Accept Secret Chats">
|
||||
<rect key="frame" x="6" y="144" width="135" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" userInterfaceLayoutDirection="rightToLeft" alignment="left" title="Accept secret chats?" id="t4Q-j1-35n">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<point key="canvasLocation" x="356" y="302"/>
|
||||
<point key="canvasLocation" x="356" y="201.5"/>
|
||||
</customView>
|
||||
<userDefaultsController representsSharedInstance="YES" id="OjL-yD-9te"/>
|
||||
</objects>
|
||||
|
|
|
@ -1,19 +1,17 @@
|
|||
/**
|
||||
* 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 2014-2015
|
||||
/*
|
||||
* Adium is the legal property of its developers, whose names are listed in the copyright file included
|
||||
* with this source distribution.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU
|
||||
* General Public License as published by the Free Software Foundation; either version 2 of the License,
|
||||
* or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
|
||||
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
* Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with this program; if not,
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#import <Adium/AIAccountViewController.h>
|
||||
|
@ -22,12 +20,10 @@
|
|||
@interface TelegramAccountViewController : PurpleAccountViewController {
|
||||
IBOutlet NSButton *checkbox_historySyncAll;
|
||||
IBOutlet NSButton *checkbox_displayReadNotifications;
|
||||
IBOutlet NSButton *checkbox_sendReadNotifications;
|
||||
|
||||
IBOutlet NSTextField *textField_maxMsgSplitCount;
|
||||
IBOutlet NSTextField *textField_inactiveDaysOffline;
|
||||
IBOutlet NSTextField *textField_historyRetrieveDays;
|
||||
IBOutlet NSSecureTextField *textField_passwordTwoFactor;
|
||||
|
||||
IBOutlet NSMatrix *radio_Encryption;
|
||||
}
|
||||
|
|
|
@ -1,24 +1,27 @@
|
|||
/**
|
||||
* 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 2014-2015
|
||||
/*
|
||||
* Adium is the legal property of its developers, whose names are listed in the copyright file included
|
||||
* with this source distribution.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU
|
||||
* General Public License as published by the Free Software Foundation; either version 2 of the License,
|
||||
* or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
|
||||
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
* Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with this program; if not,
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#import "TelegramAccountViewController.h"
|
||||
#import "TelegramAccount.h"
|
||||
|
||||
#import <Adium/AIService.h>
|
||||
#import <AIUtilities/AIStringFormatter.h>
|
||||
#import <AIUtilities/AIAttributedStringAdditions.h>
|
||||
#import <AIUtilities/AIPopUpButtonAdditions.h>
|
||||
|
||||
#include "telegram-purple.h"
|
||||
|
||||
@implementation TelegramAccountViewController
|
||||
|
@ -43,15 +46,11 @@
|
|||
}
|
||||
[radio_Encryption selectCellAtRow:row column:0];
|
||||
|
||||
NSString *passwordTwoFactor = [account preferenceForKey:@"Telegram:"TGP_KEY_PASSWORD_TWO_FACTOR
|
||||
group:GROUP_ACCOUNT_STATUS] ?: @"";
|
||||
[textField_password setStringValue:passwordTwoFactor];
|
||||
id s = [account preferenceForKey:@"Telegram:"TGP_KEY_HISTORY_SYNC_ALL group:GROUP_ACCOUNT_STATUS];
|
||||
[checkbox_historySyncAll setState:[s boolValue]];
|
||||
|
||||
id read = [account preferenceForKey:@"Telegram:"TGP_KEY_DISPLAY_READ_NOTIFICATIONS group:GROUP_ACCOUNT_STATUS];
|
||||
[checkbox_displayReadNotifications setState:[read boolValue]];
|
||||
|
||||
id send = [account preferenceForKey:@"Telegram:"TGP_KEY_SEND_READ_NOTIFICATIONS group:GROUP_ACCOUNT_STATUS];
|
||||
[checkbox_sendReadNotifications setState:[send boolValue]];
|
||||
id s4 = [account preferenceForKey:@"Telegram:"TGP_KEY_DISPLAY_READ_NOTIFICATIONS group:GROUP_ACCOUNT_STATUS];
|
||||
[checkbox_displayReadNotifications setState:[s4 boolValue]];
|
||||
|
||||
NSString *inactiveDaysOffline = [account
|
||||
preferenceForKey:@"Telegram:"TGP_KEY_INACTIVE_DAYS_OFFLINE
|
||||
|
@ -70,20 +69,16 @@
|
|||
|
||||
NSArray *selections = @[@"ask", @"always", @"never"];
|
||||
|
||||
[account setPreference:[textField_password stringValue]
|
||||
forKey:@"Telegram:"TGP_KEY_PASSWORD_TWO_FACTOR
|
||||
group:GROUP_ACCOUNT_STATUS];
|
||||
|
||||
[account setPreference:selections[[radio_Encryption selectedRow]]
|
||||
forKey:@"Telegram:"TGP_KEY_ACCEPT_SECRET_CHATS
|
||||
group:GROUP_ACCOUNT_STATUS];
|
||||
|
||||
[account setPreference:[NSNumber numberWithBool:[checkbox_displayReadNotifications state]]
|
||||
forKey:@"Telegram:"TGP_KEY_DISPLAY_READ_NOTIFICATIONS
|
||||
[account setPreference:[NSNumber numberWithBool:[checkbox_historySyncAll state]]
|
||||
forKey:@"Telegram:"TGP_KEY_HISTORY_SYNC_ALL
|
||||
group:GROUP_ACCOUNT_STATUS];
|
||||
|
||||
[account setPreference:[NSNumber numberWithBool: [checkbox_sendReadNotifications state]]
|
||||
forKey:@"Telegram:"TGP_KEY_SEND_READ_NOTIFICATIONS
|
||||
[account setPreference:[NSNumber numberWithBool:[checkbox_displayReadNotifications state]]
|
||||
forKey:@"Telegram:"TGP_KEY_DISPLAY_READ_NOTIFICATIONS
|
||||
group:GROUP_ACCOUNT_STATUS];
|
||||
|
||||
[account setPreference:[textField_historyRetrieveDays stringValue]
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
/**
|
||||
* 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 2014-2015
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#include <tgl.h>
|
||||
|
||||
@interface TelegramAutocompletionDelegate : NSObject<NSTokenFieldDelegate> {
|
||||
@private
|
||||
struct tgl_state *TLS;
|
||||
}
|
||||
- (void)setTLS:(struct tgl_state *)TLS;
|
||||
@end
|
|
@ -1,60 +0,0 @@
|
|||
/**
|
||||
* 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 2014-2015
|
||||
*/
|
||||
|
||||
#import "TelegramAutocompletionDelegate.h"
|
||||
|
||||
@implementation TelegramAutocompletionDelegate
|
||||
|
||||
- (NSArray *)tokenField:(NSTokenField *)tokenField
|
||||
completionsForSubstring:(NSString *)substring
|
||||
indexOfToken:(NSInteger)tokenIndex
|
||||
indexOfSelectedItem:(NSInteger *)selectedIndex
|
||||
{
|
||||
NSMutableArray *matchingUsers = [NSMutableArray new];
|
||||
const char *startsWith = [substring UTF8String];
|
||||
if (TLS) {
|
||||
int i = 0;
|
||||
while (i != -1) {
|
||||
char *R = NULL;
|
||||
i = tgl_complete_user_list (TLS, i, startsWith, (int) strlen(startsWith), &R);
|
||||
if (R) {
|
||||
[matchingUsers addObject: [[NSString alloc] initWithUTF8String:R]];
|
||||
}
|
||||
}
|
||||
}
|
||||
return matchingUsers;
|
||||
}
|
||||
|
||||
- (id)tokenField:(NSTokenField *)tokenField
|
||||
representedObjectForEditingString:(NSString *)editingString
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (NSString *)tokenField:(NSTokenField *)tokenField
|
||||
displayStringForRepresentedObject:(id)representedObject
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (void)setTLS:(struct tgl_state *)_TLS
|
||||
{
|
||||
TLS = _TLS;
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,28 +1,24 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9060" systemVersion="15C50" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="6751" systemVersion="14C1514" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9060"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="6751"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="TelegramJoinChatViewController">
|
||||
<connections>
|
||||
<outlet property="popupButton_existingChat" destination="vmH-Cu-psq" id="15U-eW-T0i"/>
|
||||
<outlet property="textField_createChatName" destination="k91-zE-a20" id="AGg-hH-XJg"/>
|
||||
<outlet property="textField_joinByLink" destination="Es2-Po-Hhy" id="zR1-oE-U47"/>
|
||||
<outlet property="tokenField_createChatUsers" destination="ePS-oV-elo" id="gC2-bj-Lfw"/>
|
||||
<outlet property="view" destination="c22-O7-iKe" id="4pN-H1-fp0"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<customView id="c22-O7-iKe">
|
||||
<rect key="frame" x="0.0" y="0.0" width="267" height="283"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="267" height="46"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vmH-Cu-psq">
|
||||
<rect key="frame" x="77" y="234" width="193" height="26"/>
|
||||
<animations/>
|
||||
<rect key="frame" x="92" y="10" width="158" height="26"/>
|
||||
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="BgB-2f-ODq">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
|
@ -30,102 +26,15 @@
|
|||
</popUpButtonCell>
|
||||
</popUpButton>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="qUU-2Z-89E">
|
||||
<rect key="frame" x="-17" y="236" width="90" height="22"/>
|
||||
<animations/>
|
||||
<rect key="frame" x="-2" y="13" width="90" height="22"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Chats:" id="Muj-XM-wKR">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="xKr-Pk-3H9">
|
||||
<rect key="frame" x="-17" y="181" width="90" height="22"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="URL:" id="xk2-6u-fhc">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="5Y6-yq-7ij">
|
||||
<rect key="frame" x="3" y="266" width="156" height="17"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Existing Chat" id="p5e-BJ-qkk">
|
||||
<font key="font" metaFont="systemBold"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="EvQ-LK-kqY">
|
||||
<rect key="frame" x="3" y="211" width="156" height="17"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Invite Link" id="Yqm-PU-A0k">
|
||||
<font key="font" metaFont="systemBold"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="S6h-IH-jYG">
|
||||
<rect key="frame" x="3" y="156" width="156" height="17"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="New Chat" id="My5-HH-wQ1">
|
||||
<font key="font" metaFont="systemBold"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Es2-Po-Hhy">
|
||||
<rect key="frame" x="79" y="181" width="188" height="22"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="LNp-ss-QGh">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="1cY-r0-Vto">
|
||||
<rect key="frame" x="-17" y="96" width="90" height="22"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Users:" id="VJ5-Dw-l4u">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Wlx-74-lZm">
|
||||
<rect key="frame" x="-17" y="126" width="90" height="22"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Name:" id="H32-jj-MND">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="k91-zE-a20">
|
||||
<rect key="frame" x="79" y="126" width="188" height="22"/>
|
||||
<animations/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="oC9-uP-Ndd">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<tokenField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ePS-oV-elo">
|
||||
<rect key="frame" x="79" y="0.0" width="188" height="118"/>
|
||||
<animations/>
|
||||
<tokenFieldCell key="cell" selectable="YES" editable="YES" borderStyle="bezel" alignment="left" drawsBackground="YES" allowsEditingTextAttributes="YES" id="JI7-av-DMv">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</tokenFieldCell>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="PIL-cf-p9L" id="NwD-Tz-gJR"/>
|
||||
</connections>
|
||||
</tokenField>
|
||||
</subviews>
|
||||
<animations/>
|
||||
<point key="canvasLocation" x="-111.5" y="-128.5"/>
|
||||
<point key="canvasLocation" x="279.5" y="442"/>
|
||||
</customView>
|
||||
<customObject id="PIL-cf-p9L" customClass="TelegramAutocompletionDelegate"/>
|
||||
</objects>
|
||||
</document>
|
||||
|
|
|
@ -1,30 +1,26 @@
|
|||
/**
|
||||
* 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 2014-2015
|
||||
/*
|
||||
* Adium is the legal property of its developers, whose names are listed in the copyright file included
|
||||
* with this source distribution.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU
|
||||
* General Public License as published by the Free Software Foundation; either version 2 of the License,
|
||||
* or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
|
||||
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
* Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with this program; if not,
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#import <Adium/DCJoinChatViewController.h>
|
||||
|
||||
@class AIAccount, AICompletingTextField;
|
||||
|
||||
@interface TelegramJoinChatViewController : DCJoinChatViewController <NSTokenFieldDelegate> {
|
||||
@interface TelegramJoinChatViewController : DCJoinChatViewController {
|
||||
// IBOutlet NSTextField *textField_newChat;
|
||||
IBOutlet NSPopUpButton *popupButton_existingChat;
|
||||
IBOutlet NSTextField *textField_joinByLink;
|
||||
IBOutlet NSTextField *textField_createChatName;
|
||||
IBOutlet NSTokenField *tokenField_createChatUsers;
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,28 +1,29 @@
|
|||
/**
|
||||
* 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 2014-2015
|
||||
/*
|
||||
* Adium is the legal property of its developers, whose names are listed in the copyright file included
|
||||
* with this source distribution.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU
|
||||
* General Public License as published by the Free Software Foundation; either version 2 of the License,
|
||||
* or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
|
||||
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
* Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with this program; if not,
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include "telegram-purple.h"
|
||||
|
||||
#include <tgl.h>
|
||||
#include "TelegramJoinChatViewController.h"
|
||||
#include "TelegramAutocompletionDelegate.h"
|
||||
#include "telegram-purple.h"
|
||||
#include "tgp-structs.h"
|
||||
#include "tgp-chat.h"
|
||||
|
||||
#import <Adium/AIContactControllerProtocol.h>
|
||||
#import <AIUtilities/AICompletingTextField.h>
|
||||
#import <Adium/AIListContact.h>
|
||||
#import <Adium/AIWindowController.h>
|
||||
#import <AdiumLibpurple/CBPurpleAccount.h>
|
||||
|
||||
@interface NSObject (JointChatViewDelegate)
|
||||
|
@ -31,19 +32,10 @@
|
|||
|
||||
@implementation TelegramJoinChatViewController
|
||||
|
||||
static void tgl_chat_iterator_cb (tgl_peer_t *peer, void *extra) {
|
||||
static void tgl_peer_iterator_cb (tgl_peer_t *peer, void *extra) {
|
||||
NSMutableArray *A = (__bridge NSMutableArray *)(extra);
|
||||
|
||||
if (tgl_get_peer_type (peer->id) == TGL_PEER_CHAT && !(peer->chat.flags & TGLCF_LEFT)) {
|
||||
[A addObject: [NSString stringWithUTF8String: peer->print_name]];
|
||||
}
|
||||
}
|
||||
|
||||
static void tgl_channel_iterator_cb (tgl_peer_t *peer, void *extra) {
|
||||
NSMutableArray *A = (__bridge NSMutableArray *)(extra);
|
||||
|
||||
if (tgl_get_peer_type (peer->id) == TGL_PEER_CHANNEL && !(peer->channel.flags & TGLCHF_LEFT)) {
|
||||
[A addObject: [NSString stringWithUTF8String: peer->print_name]];
|
||||
if (tgl_get_peer_type (peer->id) == TGL_PEER_CHAT) {
|
||||
[A addObject: [NSValue valueWithPointer: peer]];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -56,64 +48,49 @@ static void tgl_channel_iterator_cb (tgl_peer_t *peer, void *extra) {
|
|||
if (gc && PURPLE_CONNECTION_IS_CONNECTED(gc)) {
|
||||
connection_data *conn = purple_connection_get_protocol_data (gc);
|
||||
|
||||
// fetch all active chats and put them into the select box
|
||||
[popupButton_existingChat removeAllItems];
|
||||
|
||||
NSMutableArray *a = [NSMutableArray new];
|
||||
tgl_peer_iterator_ex (conn->TLS, tgl_peer_iterator_cb, (__bridge void *)(a));
|
||||
|
||||
NSMutableArray *chats = [NSMutableArray new];
|
||||
|
||||
tgl_peer_iterator_ex (conn->TLS, tgl_chat_iterator_cb, (__bridge void *)(chats));
|
||||
tgl_peer_iterator_ex (conn->TLS, tgl_channel_iterator_cb, (__bridge void *)(chats));
|
||||
|
||||
[popupButton_existingChat
|
||||
addItemsWithTitles: [chats sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)]];
|
||||
|
||||
// provide the current TLS instance for access by the autocompletion
|
||||
TelegramAutocompletionDelegate *D = [tokenField_createChatUsers delegate];
|
||||
if (D != nil) {
|
||||
[D setTLS:conn->TLS];
|
||||
NSMutableArray *leftChats = [NSMutableArray new];
|
||||
for (NSValue *V in a) {
|
||||
tgl_peer_t *P = [V pointerValue];
|
||||
NSString *name = [[NSString alloc] initWithUTF8String:P->print_name];
|
||||
if (chat_is_member (conn->TLS->our_id, &P->chat)) {
|
||||
[chats addObject: name];
|
||||
}
|
||||
else {
|
||||
[leftChats addObject: name];
|
||||
}
|
||||
}
|
||||
|
||||
NSArray *sortedChats = [chats sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
|
||||
return [(NSString*)a
|
||||
compare:b
|
||||
options:NSDiacriticInsensitiveSearch | NSCaseInsensitiveSearch];
|
||||
}];
|
||||
[popupButton_existingChat addItemsWithTitles: sortedChats];
|
||||
|
||||
// TODO: Display left chats with a grey font to indicate that those are no
|
||||
// longer, but still allow the user to view the history
|
||||
// [popupButton_existingChat addItemsWithTitles: leftChats];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)joinChatWithAccount:(AIAccount *)inAccount
|
||||
{
|
||||
PurpleAccount *pa = [(CBPurpleAccount *)inAccount purpleAccount];
|
||||
PurpleConnection *gc = purple_account_get_connection(pa);
|
||||
if (gc && PURPLE_CONNECTION_IS_CONNECTED(gc)) {
|
||||
connection_data *conn = purple_connection_get_protocol_data (gc);
|
||||
|
||||
// Join by link
|
||||
NSString *link = [textField_joinByLink stringValue];
|
||||
if ([link length]) {
|
||||
import_chat_link (conn->TLS, [link UTF8String]);
|
||||
return;
|
||||
}
|
||||
|
||||
// Create a new chat with provided participants
|
||||
NSString *createChatName = [textField_createChatName stringValue];
|
||||
NSArray *tokens = [tokenField_createChatUsers objectValue];
|
||||
if ([createChatName length] && [tokens count]) {
|
||||
int i, cnt = (int)[tokens count];
|
||||
const char **users = g_malloc(cnt * sizeof(char*));
|
||||
for (i = 0; i < cnt; i++) {
|
||||
users[i] = [tokens[i] UTF8String];
|
||||
}
|
||||
tgp_create_group_chat_by_usernames (conn->TLS, [createChatName UTF8String], users, i, TRUE);
|
||||
g_free (users);
|
||||
return;
|
||||
}
|
||||
|
||||
// Pass the joining to the prpl
|
||||
const char *name = [[[popupButton_existingChat selectedItem] title] UTF8String];
|
||||
PurpleChat *purpleChat = purple_blist_find_chat (conn->pa, name);
|
||||
if (purpleChat) {
|
||||
serv_join_chat (conn->gc, purple_chat_get_components (purpleChat));
|
||||
} else {
|
||||
GHashTable *chatCreationInfo = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, g_free);
|
||||
g_hash_table_insert (chatCreationInfo, "subject", g_strdup (name));
|
||||
serv_join_chat (conn->gc, chatCreationInfo);
|
||||
g_hash_table_destroy (chatCreationInfo);
|
||||
}
|
||||
}
|
||||
NSString *room = [[popupButton_existingChat selectedItem] title];
|
||||
|
||||
NSDictionary *chatCreationInfo = [NSDictionary
|
||||
dictionaryWithObjectsAndKeys:room, @"subject", nil];
|
||||
|
||||
[self doJoinChatWithName:room
|
||||
onAccount:inAccount
|
||||
chatCreationInfo:chatCreationInfo
|
||||
invitingContacts:@[]
|
||||
withInvitationMessage:@""];
|
||||
}
|
||||
|
||||
- (NSString *)nibName
|
||||
|
@ -121,4 +98,5 @@ static void tgl_channel_iterator_cb (tgl_peer_t *peer, void *extra) {
|
|||
return @"TelegramJoinChatView";
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
|
|
@ -20,11 +20,10 @@
|
|||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include "../commit.h"
|
||||
|
||||
#import "TelegramPlugin.h"
|
||||
#import "TelegramService.h"
|
||||
#import "telegram-purple.h"
|
||||
#import <tgl.h>
|
||||
|
||||
extern void purple_init_telegram_plugin();
|
||||
|
||||
|
@ -32,9 +31,9 @@ extern void purple_init_telegram_plugin();
|
|||
|
||||
- (void) installPlugin
|
||||
{
|
||||
pk_path = [self getPkName];
|
||||
purple_init_telegram_plugin();
|
||||
[TelegramService registerService];
|
||||
pk_path = [self getPkName];
|
||||
purple_init_telegram_plugin();
|
||||
[TelegramService registerService];
|
||||
}
|
||||
|
||||
- (void) installLibpurplePlugin
|
||||
|
@ -51,22 +50,22 @@ extern void purple_init_telegram_plugin();
|
|||
|
||||
- (NSString *)pluginAuthor
|
||||
{
|
||||
return @PLUGIN_AUTHOR;
|
||||
return @TG_AUTHOR;
|
||||
}
|
||||
|
||||
-(NSString *)pluginVersion
|
||||
{
|
||||
return @PACKAGE_VERSION "\n\t\t\tcommit: " GIT_COMMIT "\n\t\t\tlibtgl: " TGL_VERSION;
|
||||
return @PACKAGE_VERSION;
|
||||
}
|
||||
|
||||
-(NSString *)pluginDescription
|
||||
{
|
||||
return @"Telegram Protocol Plugin";
|
||||
return @TG_DESCRIPTION;
|
||||
}
|
||||
|
||||
-(char*)getPkName
|
||||
{
|
||||
const char* utf8String = (char *)[[[NSBundle bundleForClass: [self class]] pathForResource: @"tg-server" ofType: @"tglpub"] UTF8String];
|
||||
const char* utf8String = (char *)[[[NSBundle bundleForClass: [self class]] pathForResource: @"tg-server" ofType: @"pub"] UTF8String];
|
||||
size_t len = strlen(utf8String) + 1;
|
||||
char *buf = malloc(len);
|
||||
memcpy(buf, utf8String, len);
|
||||
|
|
|
@ -93,28 +93,25 @@
|
|||
return NO;
|
||||
}
|
||||
|
||||
- (AIServiceImportance)serviceImportance
|
||||
{
|
||||
return AIServiceSecondary;
|
||||
- (AIServiceImportance)serviceImportance{
|
||||
return AIServiceSecondary;
|
||||
}
|
||||
|
||||
- (NSCharacterSet *)allowedCharacters{
|
||||
return [[NSCharacterSet illegalCharacterSet] invertedSet];
|
||||
}
|
||||
|
||||
- (NSCharacterSet *)allowedCharactersForAccountName
|
||||
{
|
||||
return ([NSCharacterSet characterSetWithCharactersInString: @"+1234567890"]);
|
||||
return ([NSCharacterSet characterSetWithCharactersInString: @"+1234567890"]);
|
||||
}
|
||||
|
||||
- (NSUInteger)allowedLengthForAccountName
|
||||
{
|
||||
return 16;
|
||||
return 16;
|
||||
}
|
||||
|
||||
- (BOOL)caseSensitive
|
||||
{
|
||||
return YES;
|
||||
- (BOOL)caseSensitive{
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (NSImage *)defaultServiceIconOfType:(AIServiceIconType)iconType
|
||||
|
@ -134,8 +131,7 @@
|
|||
return [[NSBundle bundleForClass:[self class]] pathForImageResource:@"telegram"];
|
||||
}
|
||||
|
||||
- (void)registerStatuses
|
||||
{
|
||||
- (void)registerStatuses {
|
||||
#define ADDSTATUS(name, type) \
|
||||
[adium.statusController registerStatus:name \
|
||||
withDescription:[adium.statusController localizedDescriptionForCoreStatusName:name] \
|
||||
|
@ -148,10 +144,4 @@ ofType:type forService:self]
|
|||
ADDSTATUS(STATUS_NAME_OFFLINE, AIOfflineStatusType);
|
||||
}
|
||||
|
||||
- (NSString *)normalizeChatName:(NSString *)inChatName
|
||||
{
|
||||
// prevent Adium from normalizing chat names, which would break searching chats by user names
|
||||
return inChatName;
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -7,9 +7,9 @@
|
|||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
33070C10341336CD4EC97534 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 33070D636377BD8BA47CBF63 /* InfoPlist.strings */; };
|
||||
C40564871A7937C600A293B9 /* AdiumLibpurple.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C40564861A7937C600A293B9 /* AdiumLibpurple.framework */; };
|
||||
C410948A19BB2D7D0083BF3F /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C410948919BB2D7D0083BF3F /* CoreFoundation.framework */; };
|
||||
C410949019BB2D7D0083BF3F /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C410948E19BB2D7D0083BF3F /* InfoPlist.strings */; };
|
||||
C410949B19BB337A0083BF3F /* TelegramPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = C410949A19BB337A0083BF3F /* TelegramPlugin.m */; };
|
||||
C41D58411A16D88E00B22448 /* tgp-2prpl.c in Sources */ = {isa = PBXBuildFile; fileRef = C41D58401A16D88E00B22448 /* tgp-2prpl.c */; };
|
||||
C425F9181A7069C300361AFC /* tgp-utils.c in Sources */ = {isa = PBXBuildFile; fileRef = C425F9161A7069C300361AFC /* tgp-utils.c */; };
|
||||
|
@ -18,18 +18,18 @@
|
|||
C438CE281A12BEAF00E1DA0F /* telegram16.png in Resources */ = {isa = PBXBuildFile; fileRef = C438CE241A12BEAF00E1DA0F /* telegram16.png */; };
|
||||
C438CE291A12BEAF00E1DA0F /* telegram22.png in Resources */ = {isa = PBXBuildFile; fileRef = C438CE251A12BEAF00E1DA0F /* telegram22.png */; };
|
||||
C438CE2A1A12BEAF00E1DA0F /* telegram48.png in Resources */ = {isa = PBXBuildFile; fileRef = C438CE261A12BEAF00E1DA0F /* telegram48.png */; };
|
||||
C438CE2C1A12BF3400E1DA0F /* libtgl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C438CE2B1A12BF3400E1DA0F /* libtgl.a */; };
|
||||
C438CE321A12C07800E1DA0F /* msglog.c in Sources */ = {isa = PBXBuildFile; fileRef = C438CE2D1A12C07800E1DA0F /* msglog.c */; };
|
||||
C438CE331A12C07800E1DA0F /* telegram-base.c in Sources */ = {isa = PBXBuildFile; fileRef = C438CE2E1A12C07800E1DA0F /* telegram-base.c */; };
|
||||
C438CE341A12C07800E1DA0F /* telegram-purple.c in Sources */ = {isa = PBXBuildFile; fileRef = C438CE2F1A12C07800E1DA0F /* telegram-purple.c */; };
|
||||
C438CE351A12C07800E1DA0F /* tgp-net.c in Sources */ = {isa = PBXBuildFile; fileRef = C438CE301A12C07800E1DA0F /* tgp-net.c */; };
|
||||
C438CE361A12C07800E1DA0F /* tgp-timers.c in Sources */ = {isa = PBXBuildFile; fileRef = C438CE311A12C07800E1DA0F /* tgp-timers.c */; };
|
||||
C438CE3D1A12C15100E1DA0F /* tg-server.pub in Resources */ = {isa = PBXBuildFile; fileRef = C438CE3C1A12C15100E1DA0F /* tg-server.pub */; };
|
||||
C448ADA71AB0789A001B7ECD /* tgp-msg.c in Sources */ = {isa = PBXBuildFile; fileRef = C448ADA61AB0789A001B7ECD /* tgp-msg.c */; };
|
||||
C465FC211C0D0191001CCEE8 /* libgcrypt.20.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = C465FC1B1C0CF43A001CCEE8 /* libgcrypt.20.dylib */; };
|
||||
C465FC231C0D01B5001CCEE8 /* libgcrypt.20.dylib in Resources */ = {isa = PBXBuildFile; fileRef = C465FC221C0D01B5001CCEE8 /* libgcrypt.20.dylib */; };
|
||||
C466937819E703370036A108 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C466937719E703370036A108 /* AppKit.framework */; };
|
||||
C479A8021BB69C2100C153DF /* tgp-request.c in Sources */ = {isa = PBXBuildFile; fileRef = C479A8001BB69C2100C153DF /* tgp-request.c */; };
|
||||
C4877C1819BB37EA006FA91F /* TelegramService.m in Sources */ = {isa = PBXBuildFile; fileRef = C4877C1719BB37EA006FA91F /* TelegramService.m */; };
|
||||
C4877C1E19BB676B006FA91F /* TelegramAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = C4877C1D19BB676B006FA91F /* TelegramAccount.m */; };
|
||||
C487A17B1A792CF00044F135 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = C487A17A1A792CF00044F135 /* libcrypto.dylib */; };
|
||||
C487A18C1A792E9B0044F135 /* Adium.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C487A1891A792E9B0044F135 /* Adium.framework */; };
|
||||
C487A18E1A792E9B0044F135 /* AIUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C487A18B1A792E9B0044F135 /* AIUtilities.framework */; };
|
||||
C487A1911A792EA50044F135 /* libglib.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C487A18F1A792EA50044F135 /* libglib.framework */; };
|
||||
|
@ -40,26 +40,18 @@
|
|||
C4B4BE331AB4536F0064AC17 /* PurpleDefaultsTelegram.plist in Resources */ = {isa = PBXBuildFile; fileRef = C4B4BE321AB4536F0064AC17 /* PurpleDefaultsTelegram.plist */; };
|
||||
C4B4BE371AB5FB5C0064AC17 /* TelegramJoinChatViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C4B4BE351AB5FB5C0064AC17 /* TelegramJoinChatViewController.m */; };
|
||||
C4B4BE391AB613950064AC17 /* TelegramJoinChatView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C4B4BE381AB613950064AC17 /* TelegramJoinChatView.xib */; };
|
||||
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 */; };
|
||||
C4D819031A5C85FE0044CBA9 /* lodepng.c in Sources */ = {isa = PBXBuildFile; fileRef = C4D819011A5C85FE0044CBA9 /* lodepng.c */; };
|
||||
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 */; };
|
||||
C4E528111A8A907200C4B915 /* tgp-ft.c in Sources */ = {isa = PBXBuildFile; fileRef = C4E5280F1A8A907200C4B915 /* tgp-ft.c */; };
|
||||
C4EA965A1B204C67006CBAD0 /* libwebp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C4EA96591B204C67006CBAD0 /* libwebp.a */; };
|
||||
C4FFD0DC1B5FC48B00939D8A /* TelegramAutocompletionDelegate.h in Sources */ = {isa = PBXBuildFile; fileRef = C4FFD0DB1B5FC48B00939D8A /* TelegramAutocompletionDelegate.h */; };
|
||||
C4FFD0DE1B5FC68400939D8A /* TelegramAutocompletionDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C4FFD0DD1B5FC68400939D8A /* TelegramAutocompletionDelegate.m */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
33070918C1B3F67A227F6286 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
33070A9DBCF625AD9E07CE94 /* telegram-adium-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.info; path = "telegram-adium-Info.plist"; sourceTree = "<group>"; };
|
||||
33070CD59974365A33795EAF /* telegram-adium-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "telegram-adium-Prefix.pch"; sourceTree = "<group>"; };
|
||||
C40564861A7937C600A293B9 /* AdiumLibpurple.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AdiumLibpurple.framework; path = Frameworks/Adium/AdiumLibpurple.framework; sourceTree = "<group>"; };
|
||||
C410948619BB2D7D0083BF3F /* telegram-adium.AdiumLibpurplePlugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "telegram-adium.AdiumLibpurplePlugin"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
C410948919BB2D7D0083BF3F /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
|
||||
C410948D19BB2D7D0083BF3F /* telegram-adium-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "telegram-adium-Info.plist"; sourceTree = "<group>"; };
|
||||
C410948F19BB2D7D0083BF3F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
C410949119BB2D7D0083BF3F /* telegram-adium-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "telegram-adium-Prefix.pch"; sourceTree = "<group>"; };
|
||||
C410949919BB337A0083BF3F /* TelegramPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TelegramPlugin.h; sourceTree = "<group>"; };
|
||||
C410949A19BB337A0083BF3F /* TelegramPlugin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TelegramPlugin.m; sourceTree = "<group>"; };
|
||||
C41D583F1A16D86A00B22448 /* tgp-2prpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "tgp-2prpl.h"; path = "../tgp-2prpl.h"; sourceTree = "<group>"; };
|
||||
|
@ -86,17 +78,13 @@
|
|||
C438CE3C1A12C15100E1DA0F /* tg-server.pub */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "tg-server.pub"; path = "../tg-server.pub"; sourceTree = "<group>"; };
|
||||
C448ADA61AB0789A001B7ECD /* tgp-msg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "tgp-msg.c"; path = "../tgp-msg.c"; sourceTree = "<group>"; };
|
||||
C448ADA81AB078BB001B7ECD /* tgp-msg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "tgp-msg.h"; path = "../tgp-msg.h"; sourceTree = "<group>"; };
|
||||
C465FC1B1C0CF43A001CCEE8 /* libgcrypt.20.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libgcrypt.20.dylib; path = Frameworks/Adium/libgcrypt.20.dylib; sourceTree = "<group>"; };
|
||||
C465FC221C0D01B5001CCEE8 /* libgcrypt.20.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libgcrypt.20.dylib; path = Frameworks/Adium/libgcrypt.20.dylib; sourceTree = "<group>"; };
|
||||
C466937719E703370036A108 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/AppKit.framework; sourceTree = DEVELOPER_DIR; };
|
||||
C479A7FE1BB1C95300C153DF /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = Frameworks/libcrypto.a; sourceTree = "<group>"; };
|
||||
C479A8001BB69C2100C153DF /* tgp-request.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "tgp-request.c"; path = "../tgp-request.c"; sourceTree = "<group>"; };
|
||||
C479A8011BB69C2100C153DF /* tgp-request.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "tgp-request.h"; path = "../tgp-request.h"; sourceTree = "<group>"; };
|
||||
C4877C1619BB37EA006FA91F /* TelegramService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TelegramService.h; sourceTree = "<group>"; };
|
||||
C4877C1719BB37EA006FA91F /* TelegramService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TelegramService.m; sourceTree = "<group>"; };
|
||||
C4877C1C19BB676B006FA91F /* TelegramAccount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TelegramAccount.h; sourceTree = "<group>"; };
|
||||
C4877C1D19BB676B006FA91F /* TelegramAccount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TelegramAccount.m; sourceTree = "<group>"; };
|
||||
C487A1781A792CD80044F135 /* libssl.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libssl.dylib; path = usr/lib/libssl.dylib; sourceTree = SDKROOT; };
|
||||
C487A17A1A792CF00044F135 /* libcrypto.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcrypto.dylib; path = usr/lib/libcrypto.dylib; sourceTree = SDKROOT; };
|
||||
C487A1891A792E9B0044F135 /* Adium.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Adium.framework; path = Frameworks/Adium/Adium.framework; sourceTree = "<group>"; };
|
||||
C487A18B1A792E9B0044F135 /* AIUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AIUtilities.framework; path = Frameworks/Adium/AIUtilities.framework; sourceTree = "<group>"; };
|
||||
C487A18F1A792EA50044F135 /* libglib.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libglib.framework; path = Frameworks/Adium/libglib.framework; sourceTree = "<group>"; };
|
||||
|
@ -109,24 +97,12 @@
|
|||
C4B4BE351AB5FB5C0064AC17 /* TelegramJoinChatViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TelegramJoinChatViewController.m; sourceTree = "<group>"; };
|
||||
C4B4BE361AB5FB5C0064AC17 /* TelegramJoinChatViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TelegramJoinChatViewController.h; sourceTree = "<group>"; };
|
||||
C4B4BE381AB613950064AC17 /* TelegramJoinChatView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TelegramJoinChatView.xib; sourceTree = "<group>"; };
|
||||
C4B57BE51B109E6D006997F4 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = "<group>"; };
|
||||
C4B57BE81B10D814006997F4 /* configure.ac */ = {isa = PBXFileReference; lastKnownFileType = text; name = configure.ac; path = ../configure.ac; sourceTree = "<group>"; };
|
||||
C4B57BE91B10D822006997F4 /* Makefile.in */ = {isa = PBXFileReference; lastKnownFileType = text; name = Makefile.in; path = ../Makefile.in; sourceTree = "<group>"; };
|
||||
C4B57BED1B1598BE006997F4 /* telegram-purple */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "telegram-purple"; path = ..; sourceTree = "<group>"; };
|
||||
C4B57BEF1B1598D4006997F4 /* libtgl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtgl.a; path = ../libs/libtgl.a; sourceTree = "<group>"; };
|
||||
C4D12DEE1BC534CF00C0F6E1 /* tgp-blist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "tgp-blist.h"; path = "../tgp-blist.h"; sourceTree = "<group>"; };
|
||||
C4D12DEF1BC534CF00C0F6E1 /* tgp-blist.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "tgp-blist.c"; path = "../tgp-blist.c"; sourceTree = "<group>"; };
|
||||
C4D3EB581C3824C5003C895B /* tgp-info.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "tgp-info.c"; path = "../tgp-info.c"; sourceTree = "<group>"; };
|
||||
C4D3EB591C3824C5003C895B /* tgp-info.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "tgp-info.h"; path = "../tgp-info.h"; sourceTree = "<group>"; };
|
||||
C4D432D71BC2783C00561667 /* tg-server.tglpub */ = {isa = PBXFileReference; lastKnownFileType = file; name = "tg-server.tglpub"; path = "../tg-server.tglpub"; sourceTree = "<group>"; };
|
||||
C4D819011A5C85FE0044CBA9 /* lodepng.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lodepng.c; sourceTree = "<group>"; };
|
||||
C4D819021A5C85FE0044CBA9 /* lodepng.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lodepng.h; sourceTree = "<group>"; };
|
||||
C4D819041A5C862E0044CBA9 /* tgp-structs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "tgp-structs.c"; path = "../tgp-structs.c"; sourceTree = "<group>"; };
|
||||
C4D819051A5C862E0044CBA9 /* tgp-structs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "tgp-structs.h"; path = "../tgp-structs.h"; sourceTree = "<group>"; };
|
||||
C4D9185A1C1C6B3900AECCA2 /* libgpg-error.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libgpg-error.0.dylib"; path = "Frameworks/Adium/libgpg-error.0.dylib"; sourceTree = "<group>"; };
|
||||
C4E5280F1A8A907200C4B915 /* tgp-ft.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "tgp-ft.c"; path = "../tgp-ft.c"; sourceTree = "<group>"; };
|
||||
C4E528101A8A907200C4B915 /* tgp-ft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "tgp-ft.h"; path = "../tgp-ft.h"; sourceTree = "<group>"; };
|
||||
C4EA96591B204C67006CBAD0 /* libwebp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libwebp.a; path = Frameworks/libwebp.a; sourceTree = "<group>"; };
|
||||
C4FFD0DB1B5FC48B00939D8A /* TelegramAutocompletionDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TelegramAutocompletionDelegate.h; sourceTree = "<group>"; };
|
||||
C4FFD0DD1B5FC68400939D8A /* TelegramAutocompletionDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TelegramAutocompletionDelegate.m; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
|
@ -134,17 +110,15 @@
|
|||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
C4D9185C1C1C6B9C00AECCA2 /* libgpg-error.0.dylib in Frameworks */,
|
||||
C465FC211C0D0191001CCEE8 /* libgcrypt.20.dylib in Frameworks */,
|
||||
C49A915819BBC5C5001B3DC0 /* libz.dylib in Frameworks */,
|
||||
C466937819E703370036A108 /* AppKit.framework in Frameworks */,
|
||||
C4B57BF01B1598D4006997F4 /* libtgl.a in Frameworks */,
|
||||
C4EA965A1B204C67006CBAD0 /* libwebp.a in Frameworks */,
|
||||
C40564871A7937C600A293B9 /* AdiumLibpurple.framework in Frameworks */,
|
||||
C487A18C1A792E9B0044F135 /* Adium.framework in Frameworks */,
|
||||
C487A18E1A792E9B0044F135 /* AIUtilities.framework in Frameworks */,
|
||||
C487A1911A792EA50044F135 /* libglib.framework in Frameworks */,
|
||||
C487A1921A792EA50044F135 /* libpurple.framework in Frameworks */,
|
||||
C487A17B1A792CF00044F135 /* libcrypto.dylib in Frameworks */,
|
||||
C466937819E703370036A108 /* AppKit.framework in Frameworks */,
|
||||
C49A915819BBC5C5001B3DC0 /* libz.dylib in Frameworks */,
|
||||
C438CE2C1A12BF3400E1DA0F /* libtgl.a in Frameworks */,
|
||||
C410948A19BB2D7D0083BF3F /* CoreFoundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
@ -152,29 +126,9 @@
|
|||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
330704C72BA03B848124B6F7 /* telegram-adium */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3307063DD9566C77D08006F9 /* Supporting Files */,
|
||||
);
|
||||
path = "telegram-adium";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3307063DD9566C77D08006F9 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
33070A9DBCF625AD9E07CE94 /* telegram-adium-Info.plist */,
|
||||
33070D636377BD8BA47CBF63 /* InfoPlist.strings */,
|
||||
33070CD59974365A33795EAF /* telegram-adium-Prefix.pch */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
C410947D19BB2D7D0083BF3F = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C4FFD0DB1B5FC48B00939D8A /* TelegramAutocompletionDelegate.h */,
|
||||
C4FFD0DD1B5FC68400939D8A /* TelegramAutocompletionDelegate.m */,
|
||||
C4B4BE321AB4536F0064AC17 /* PurpleDefaultsTelegram.plist */,
|
||||
C438CE251A12BEAF00E1DA0F /* telegram22.png */,
|
||||
C438CE231A12BEAF00E1DA0F /* telegram.png */,
|
||||
|
@ -188,15 +142,15 @@
|
|||
C4877C1D19BB676B006FA91F /* TelegramAccount.m */,
|
||||
C4B4BE361AB5FB5C0064AC17 /* TelegramJoinChatViewController.h */,
|
||||
C4B4BE351AB5FB5C0064AC17 /* TelegramJoinChatViewController.m */,
|
||||
C4B4BE2F1AB393800064AC17 /* TelegramAccountViewController.m */,
|
||||
C4B4BE381AB613950064AC17 /* TelegramJoinChatView.xib */,
|
||||
C4B4BE301AB393800064AC17 /* TelegramAccountViewController.h */,
|
||||
C4B4BE2F1AB393800064AC17 /* TelegramAccountViewController.m */,
|
||||
C4B4BE2D1AB392F80064AC17 /* TelegramAccountView.xib */,
|
||||
C465FC221C0D01B5001CCEE8 /* libgcrypt.20.dylib */,
|
||||
C4D9185A1C1C6B3900AECCA2 /* libgpg-error.0.dylib */,
|
||||
C4BF990319BB8B200038D507 /* telegram-purple */,
|
||||
C410948B19BB2D7D0083BF3F /* telegram-adium */,
|
||||
C410948819BB2D7D0083BF3F /* Frameworks */,
|
||||
C410948719BB2D7D0083BF3F /* Products */,
|
||||
C4D819001A5C85FE0044CBA9 /* lodepng */,
|
||||
C4877C2919BB6D22006FA91F /* Resources */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
|
@ -212,16 +166,12 @@
|
|||
C410948819BB2D7D0083BF3F /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C465FC1B1C0CF43A001CCEE8 /* libgcrypt.20.dylib */,
|
||||
C479A7FE1BB1C95300C153DF /* libcrypto.a */,
|
||||
C4B57BEF1B1598D4006997F4 /* libtgl.a */,
|
||||
C4EA96591B204C67006CBAD0 /* libwebp.a */,
|
||||
C4B57BED1B1598BE006997F4 /* telegram-purple */,
|
||||
C40564861A7937C600A293B9 /* AdiumLibpurple.framework */,
|
||||
C487A18F1A792EA50044F135 /* libglib.framework */,
|
||||
C487A1901A792EA50044F135 /* libpurple.framework */,
|
||||
C487A1891A792E9B0044F135 /* Adium.framework */,
|
||||
C487A18B1A792E9B0044F135 /* AIUtilities.framework */,
|
||||
C487A17A1A792CF00044F135 /* libcrypto.dylib */,
|
||||
C49A915719BBC5C5001B3DC0 /* libz.dylib */,
|
||||
C487A1781A792CD80044F135 /* libssl.dylib */,
|
||||
C438CE2B1A12BF3400E1DA0F /* libtgl.a */,
|
||||
|
@ -231,6 +181,24 @@
|
|||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
C410948B19BB2D7D0083BF3F /* telegram-adium */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C410948C19BB2D7D0083BF3F /* Supporting Files */,
|
||||
);
|
||||
path = "telegram-adium";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
C410948C19BB2D7D0083BF3F /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C410948D19BB2D7D0083BF3F /* telegram-adium-Info.plist */,
|
||||
C410948E19BB2D7D0083BF3F /* InfoPlist.strings */,
|
||||
C410949119BB2D7D0083BF3F /* telegram-adium-Prefix.pch */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
C4877C2919BB6D22006FA91F /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -242,10 +210,6 @@
|
|||
C4BF990319BB8B200038D507 /* telegram-purple */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C4D432D71BC2783C00561667 /* tg-server.tglpub */,
|
||||
C4B57BE81B10D814006997F4 /* configure.ac */,
|
||||
C4B57BE91B10D822006997F4 /* Makefile.in */,
|
||||
C4B57BE51B109E6D006997F4 /* README.md */,
|
||||
C425F9161A7069C300361AFC /* tgp-utils.c */,
|
||||
C425F9171A7069C300361AFC /* tgp-utils.h */,
|
||||
C4D819041A5C862E0044CBA9 /* tgp-structs.c */,
|
||||
|
@ -268,17 +232,20 @@
|
|||
C431EB7C1A76C737006521CB /* tgp-chat.h */,
|
||||
C4E5280F1A8A907200C4B915 /* tgp-ft.c */,
|
||||
C4E528101A8A907200C4B915 /* tgp-ft.h */,
|
||||
C479A8001BB69C2100C153DF /* tgp-request.c */,
|
||||
C479A8011BB69C2100C153DF /* tgp-request.h */,
|
||||
C4D12DEE1BC534CF00C0F6E1 /* tgp-blist.h */,
|
||||
C4D12DEF1BC534CF00C0F6E1 /* tgp-blist.c */,
|
||||
C4D3EB591C3824C5003C895B /* tgp-info.h */,
|
||||
C4D3EB581C3824C5003C895B /* tgp-info.c */,
|
||||
330704C72BA03B848124B6F7 /* telegram-adium */,
|
||||
);
|
||||
name = "telegram-purple";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
C4D819001A5C85FE0044CBA9 /* lodepng */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C4D819011A5C85FE0044CBA9 /* lodepng.c */,
|
||||
C4D819021A5C85FE0044CBA9 /* lodepng.h */,
|
||||
);
|
||||
name = lodepng;
|
||||
path = ../lodepng;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
|
@ -289,7 +256,6 @@
|
|||
C410948219BB2D7D0083BF3F /* Sources */,
|
||||
C410948319BB2D7D0083BF3F /* Frameworks */,
|
||||
C410948419BB2D7D0083BF3F /* Resources */,
|
||||
C4C325A11C91BD230020D32E /* ShellScript */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
|
@ -331,74 +297,52 @@
|
|||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
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 */,
|
||||
C438CE281A12BEAF00E1DA0F /* telegram16.png in Resources */,
|
||||
C438CE291A12BEAF00E1DA0F /* telegram22.png in Resources */,
|
||||
C438CE2A1A12BEAF00E1DA0F /* telegram48.png in Resources */,
|
||||
C410949019BB2D7D0083BF3F /* InfoPlist.strings in Resources */,
|
||||
C438CE3D1A12C15100E1DA0F /* tg-server.pub in Resources */,
|
||||
C4B4BE331AB4536F0064AC17 /* PurpleDefaultsTelegram.plist in Resources */,
|
||||
33070C10341336CD4EC97534 /* InfoPlist.strings in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
C4C325A11C91BD230020D32E /* ShellScript */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "install_name_tool -change \"@executable_path/../Frameworks/libglib.framework/Versions/2.38.1/libglib\" \"@executable_path/../Frameworks/libglib.framework/libglib\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.$WRAPPER_EXTENSION/Contents/MacOS/$PRODUCT_NAME\"\ninstall_name_tool -change \"@executable_path/../Frameworks/libpurple.framework/Versions/2.10.7rd8d96a636413/libpurple\" \"@executable_path/../Frameworks/libpurple.framework/libpurple\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.$WRAPPER_EXTENSION/Contents/MacOS/$PRODUCT_NAME\"\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
C410948219BB2D7D0083BF3F /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
C4FFD0DC1B5FC48B00939D8A /* TelegramAutocompletionDelegate.h in Sources */,
|
||||
C438CE321A12C07800E1DA0F /* msglog.c in Sources */,
|
||||
C438CE351A12C07800E1DA0F /* tgp-net.c in Sources */,
|
||||
C438CE331A12C07800E1DA0F /* telegram-base.c in Sources */,
|
||||
C4B4BE371AB5FB5C0064AC17 /* TelegramJoinChatViewController.m in Sources */,
|
||||
C438CE341A12C07800E1DA0F /* telegram-purple.c in Sources */,
|
||||
C4877C1819BB37EA006FA91F /* TelegramService.m in Sources */,
|
||||
C4D12DF01BC534CF00C0F6E1 /* tgp-blist.c in Sources */,
|
||||
C448ADA71AB0789A001B7ECD /* tgp-msg.c in Sources */,
|
||||
C4FFD0DE1B5FC68400939D8A /* TelegramAutocompletionDelegate.m in Sources */,
|
||||
C4E528111A8A907200C4B915 /* tgp-ft.c in Sources */,
|
||||
C438CE361A12C07800E1DA0F /* tgp-timers.c in Sources */,
|
||||
C410949B19BB337A0083BF3F /* TelegramPlugin.m in Sources */,
|
||||
C4B4BE311AB393800064AC17 /* TelegramAccountViewController.m in Sources */,
|
||||
C4877C1E19BB676B006FA91F /* TelegramAccount.m in Sources */,
|
||||
C41D58411A16D88E00B22448 /* tgp-2prpl.c in Sources */,
|
||||
C479A8021BB69C2100C153DF /* tgp-request.c in Sources */,
|
||||
C425F9181A7069C300361AFC /* tgp-utils.c in Sources */,
|
||||
C4D819031A5C85FE0044CBA9 /* lodepng.c in Sources */,
|
||||
C4D819061A5C862E0044CBA9 /* tgp-structs.c in Sources */,
|
||||
C431EB7D1A76C737006521CB /* tgp-chat.c in Sources */,
|
||||
C4D3EB5A1C3824C5003C895B /* tgp-info.c in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
33070D636377BD8BA47CBF63 /* InfoPlist.strings */ = {
|
||||
C410948E19BB2D7D0083BF3F /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
33070918C1B3F67A227F6286 /* en */,
|
||||
C410948F19BB2D7D0083BF3F /* en */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -430,7 +374,6 @@
|
|||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
HAVE_CONFIG_H,
|
||||
HAVE_LIBWEBP,
|
||||
DEBUG,
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
|
@ -441,9 +384,9 @@
|
|||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.8;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = macosx10.12;
|
||||
SDKROOT = macosx10.8;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
|
@ -469,10 +412,7 @@
|
|||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = s;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
HAVE_CONFIG_H,
|
||||
HAVE_LIBWEBP,
|
||||
);
|
||||
GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
|
@ -480,8 +420,8 @@
|
|||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
SDKROOT = macosx10.12;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.8;
|
||||
SDKROOT = macosx10.8;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
|
@ -502,25 +442,20 @@
|
|||
GCC_PREFIX_HEADER = "telegram-adium/telegram-adium-Prefix.pch";
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/../auto",
|
||||
"$(PROJECT_DIR)/../tgl",
|
||||
"$(PROJECT_DIR)/Frameworks/Adium/libpurple.framework/Headers",
|
||||
"$(PROJECT_DIR)/Frameworks/Adium/libglib.framework/Headers",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
/usr/local/include,
|
||||
);
|
||||
INFOPLIST_FILE = "telegram-adium/telegram-adium-Info.plist";
|
||||
INSTALL_PATH = "$(HOME)/Library/Application Support/Adium 2.0/PlugIns/";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/../tgl/libs",
|
||||
"$(PROJECT_DIR)",
|
||||
"$(PROJECT_DIR)/Frameworks",
|
||||
"$(PROJECT_DIR)/Frameworks/Adium",
|
||||
);
|
||||
OTHER_CFLAGS = "-DPURPLE_STATIC_PRPL";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = macosx10.12;
|
||||
SDKROOT = macosx10.8;
|
||||
WRAPPER_EXTENSION = AdiumLibpurplePlugin;
|
||||
};
|
||||
name = Debug;
|
||||
|
@ -542,24 +477,20 @@
|
|||
GCC_PREFIX_HEADER = "telegram-adium/telegram-adium-Prefix.pch";
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/../auto",
|
||||
"$(PROJECT_DIR)/../tgl",
|
||||
"$(PROJECT_DIR)/Frameworks/Adium/libpurple.framework/Headers",
|
||||
"$(PROJECT_DIR)/Frameworks/Adium/libglib.framework/Headers",
|
||||
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
|
||||
/usr/local/include,
|
||||
);
|
||||
INFOPLIST_FILE = "telegram-adium/telegram-adium-Info.plist";
|
||||
INSTALL_PATH = "$(HOME)/Library/Application Support/Adium 2.0/PlugIns/";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(PROJECT_DIR)",
|
||||
"$(PROJECT_DIR)/../tgl/libs",
|
||||
"$(PROJECT_DIR)/Frameworks",
|
||||
"$(PROJECT_DIR)/Frameworks/Adium",
|
||||
);
|
||||
OTHER_CFLAGS = "-DPURPLE_STATIC_PRPL";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = macosx10.12;
|
||||
SDKROOT = macosx10.8;
|
||||
WRAPPER_EXTENSION = AdiumLibpurplePlugin;
|
||||
};
|
||||
name = Release;
|
||||
|
|
|
@ -1,44 +0,0 @@
|
|||
{
|
||||
"DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "41D8FEA2FB3AAB94D0D4027A64957635038B427E",
|
||||
"DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : {
|
||||
|
||||
},
|
||||
"DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : {
|
||||
"32693D74F7AAA18802B0105461C73E1FD01CF3A3" : 0,
|
||||
"2BAF9F6AF710B4D765F611851696219A50533669" : 0,
|
||||
"41D8FEA2FB3AAB94D0D4027A64957635038B427E" : 0,
|
||||
"78234520DB6A5DE1B463A6198C9122A9D1A44221" : 0
|
||||
},
|
||||
"DVTSourceControlWorkspaceBlueprintIdentifierKey" : "1C5A3335-4726-410A-8E70-801C8879E269",
|
||||
"DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : {
|
||||
"32693D74F7AAA18802B0105461C73E1FD01CF3A3" : "telegram-purple\/tgl\/",
|
||||
"2BAF9F6AF710B4D765F611851696219A50533669" : "tg\/",
|
||||
"41D8FEA2FB3AAB94D0D4027A64957635038B427E" : "telegram-purple\/",
|
||||
"78234520DB6A5DE1B463A6198C9122A9D1A44221" : "telegram-purple\/tgl\/tl-parser\/"
|
||||
},
|
||||
"DVTSourceControlWorkspaceBlueprintNameKey" : "telegram-adium",
|
||||
"DVTSourceControlWorkspaceBlueprintVersion" : 204,
|
||||
"DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "telegram-adium\/telegram-adium.xcodeproj",
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [
|
||||
{
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/vysheng\/tg",
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "2BAF9F6AF710B4D765F611851696219A50533669"
|
||||
},
|
||||
{
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/vysheng\/tgl",
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "32693D74F7AAA18802B0105461C73E1FD01CF3A3"
|
||||
},
|
||||
{
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/majn\/telegram-purple.git",
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "41D8FEA2FB3AAB94D0D4027A64957635038B427E"
|
||||
},
|
||||
{
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/vysheng\/tl-parser",
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
|
||||
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "78234520DB6A5DE1B463A6198C9122A9D1A44221"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,80 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0630"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "C4B57BF11B160950006997F4"
|
||||
BuildableName = "telegram-purple"
|
||||
BlueprintName = "telegram-purple"
|
||||
ReferencedContainer = "container:telegram-adium.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "C4B57BF11B160950006997F4"
|
||||
BuildableName = "telegram-purple"
|
||||
BlueprintName = "telegram-purple"
|
||||
ReferencedContainer = "container:telegram-adium.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "C4B57BF11B160950006997F4"
|
||||
BuildableName = "telegram-purple"
|
||||
BlueprintName = "telegram-purple"
|
||||
ReferencedContainer = "container:telegram-adium.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -23,28 +23,23 @@
|
|||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<PathRunnable
|
||||
runnableDebuggingMode = "0"
|
||||
BundleIdentifier = "com.adiumX.adiumX"
|
||||
FilePath = "/Applications/Adium.app">
|
||||
</PathRunnable>
|
||||
<MacroExpansion>
|
||||
|
@ -60,10 +55,10 @@
|
|||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
|
@ -23,27 +23,23 @@
|
|||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Release">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<PathRunnable
|
||||
runnableDebuggingMode = "0"
|
||||
FilePath = "/Applications/Adium.app">
|
||||
</PathRunnable>
|
||||
<MacroExpansion>
|
||||
|
@ -59,10 +55,10 @@
|
|||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>telegram-adium.xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>telegrma-adium Release.xcscheme</key>
|
||||
<dict>
|
||||
<key>isShown</key>
|
||||
<false/>
|
||||
<key>orderHint</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>C410948519BB2D7D0083BF3F</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
|
@ -3,7 +3,7 @@
|
|||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>AIMinimumAdiumVersionRequirement</key>
|
||||
<string>1.5.10</string>
|
||||
<string>1.4</string>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
|
@ -19,11 +19,11 @@
|
|||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.3.1</string>
|
||||
<string>1.0.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>AdIM</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.3.1</string>
|
||||
<string>1</string>
|
||||
<key>CFPlugInDynamicRegisterFunction</key>
|
||||
<string></string>
|
||||
<key>CFPlugInDynamicRegistration</key>
|
||||
|
@ -43,7 +43,7 @@
|
|||
<key>CFPlugInUnloadFunction</key>
|
||||
<string></string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright © 2014-2017 Matthias Jentsch.</string>
|
||||
<string>Copyright © 2014 Matthias Jentsch.</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>TelegramPlugin</string>
|
||||
</dict>
|
||||
|
|
482
telegram-base.c
482
telegram-base.c
|
@ -15,93 +15,43 @@
|
|||
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, Ben Wiederhake, Christopher Althaus 2014-2015
|
||||
Copyright Matthias Jentsch, Vitaly Valtman, Christopher Althaus, Markus Endres 2014-2015
|
||||
*/
|
||||
|
||||
#define _GNU_SOURCE
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <cipher.h>
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include "telegram-base.h"
|
||||
#include <tgl.h>
|
||||
#include <tgl-binlog.h>
|
||||
|
||||
#include <glib.h>
|
||||
#include <request.h>
|
||||
#include <openssl/sha.h>
|
||||
|
||||
#include "telegram-purple.h"
|
||||
#include "msglog.h"
|
||||
#include "tgp-2prpl.h"
|
||||
#include "tgp-structs.h"
|
||||
#include "lodepng/lodepng.h"
|
||||
|
||||
// O_BINARY exists on windows and must be defined, but doesn't exist on unix-based systems
|
||||
#ifndef O_BINARY
|
||||
#define O_BINARY 0
|
||||
#endif
|
||||
|
||||
#define DC_SERIALIZED_MAGIC 0x868aa81d
|
||||
#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");
|
||||
if (asprintf (&name, "%s/%s", TLS->base_path, "state") < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
int state_file_fd = open (name, O_CREAT | O_RDWR | O_BINARY, 0600);
|
||||
int state_file_fd = open (name, O_CREAT | O_RDWR, 0600);
|
||||
free (name);
|
||||
|
||||
if (state_file_fd < 0) {
|
||||
|
@ -125,7 +75,6 @@ void read_state_file (struct tgl_state *TLS) {
|
|||
bl_do_set_pts (TLS, pts);
|
||||
bl_do_set_qts (TLS, qts);
|
||||
bl_do_set_date (TLS, date);
|
||||
info ("read state file: seq=%d pts=%d qts=%d date=%d", seq, pts, qts, date);
|
||||
}
|
||||
|
||||
void write_state_file (struct tgl_state *TLS) {
|
||||
|
@ -136,9 +85,11 @@ void write_state_file (struct tgl_state *TLS) {
|
|||
wseq = TLS->seq; wpts = TLS->pts; wqts = TLS->qts; wdate = TLS->date;
|
||||
|
||||
char *name = 0;
|
||||
name = g_strdup_printf("%s/%s", TLS->base_path, "state");
|
||||
if (asprintf (&name, "%s/%s", TLS->base_path, "state") < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
int state_file_fd = open (name, O_CREAT | O_RDWR | O_BINARY, 0600);
|
||||
int state_file_fd = open (name, O_CREAT | O_RDWR, 0600);
|
||||
free (name);
|
||||
|
||||
if (state_file_fd < 0) {
|
||||
|
@ -152,25 +103,23 @@ void write_state_file (struct tgl_state *TLS) {
|
|||
x[4] = wseq;
|
||||
x[5] = wdate;
|
||||
assert (write (state_file_fd, x, 24) == 24);
|
||||
close (state_file_fd);
|
||||
info ("wrote state file: wpts=%d wqts=%d wseq=%d wdate=%d", wpts, wqts, wseq, wdate);
|
||||
close (state_file_fd);
|
||||
}
|
||||
|
||||
static gboolean write_files_gw (gpointer data) {
|
||||
static gboolean write_state_file_gw (gpointer data) {
|
||||
struct tgl_state *TLS = data;
|
||||
|
||||
((connection_data *)TLS->ev_base)->write_timer = 0;
|
||||
write_state_file (TLS);
|
||||
write_secret_chat_file (TLS);
|
||||
write_state_file ((struct tgl_state *)TLS);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void write_files_schedule (struct tgl_state *TLS) {
|
||||
void write_state_file_schedule (struct tgl_state *TLS) {
|
||||
connection_data *conn = TLS->ev_base;
|
||||
|
||||
if (! conn->write_timer) {
|
||||
conn->write_timer = purple_timeout_add (0, write_files_gw, TLS);
|
||||
conn->write_timer = purple_timeout_add (0, write_state_file_gw, TLS);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -185,20 +134,22 @@ void write_dc (struct tgl_dc *DC, void *extra) {
|
|||
assert (write (auth_file_fd, &x, 4) == 4);
|
||||
}
|
||||
|
||||
assert (DC->flags & TGLDCF_LOGGED_IN);
|
||||
assert (DC->has_auth);
|
||||
|
||||
assert (write (auth_file_fd, &DC->options[0]->port, 4) == 4);
|
||||
int l = strlen (DC->options[0]->ip);
|
||||
assert (write (auth_file_fd, &DC->port, 4) == 4);
|
||||
int l = strlen (DC->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->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) {
|
||||
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);
|
||||
if (asprintf (&name, "%s/%s", TLS->base_path, "auth") < 0) {
|
||||
return;
|
||||
}
|
||||
int auth_file_fd = open (name, O_CREAT | O_RDWR, 0600);
|
||||
free (name);
|
||||
if (auth_file_fd < 0) { return; }
|
||||
int x = DC_SERIALIZED_MAGIC;
|
||||
|
@ -210,7 +161,6 @@ void write_auth_file (struct tgl_state *TLS) {
|
|||
|
||||
assert (write (auth_file_fd, &TLS->our_id, 4) == 4);
|
||||
close (auth_file_fd);
|
||||
info ("wrote auth file: magic=%d max_dc_num=%d dc_working_num=%d", x, TLS->max_dc_num, TLS->dc_working_num);
|
||||
}
|
||||
|
||||
void read_dc (struct tgl_state *TLS, int auth_file_fd, int id, unsigned ver) {
|
||||
|
@ -228,43 +178,45 @@ 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_set_auth_key (TLS, id, auth_key);
|
||||
bl_do_dc_option (TLS, id, 2, "DC", l, ip, port);
|
||||
bl_do_set_auth_key_id (TLS, id, auth_key);
|
||||
bl_do_dc_signed (TLS, id);
|
||||
debug ("read dc: id=%d", id);
|
||||
}
|
||||
|
||||
int tgp_error_if_false (struct tgl_state *TLS, int val, const char *cause, const char *msg) {
|
||||
if (! val) {
|
||||
int error_if_val_false (struct tgl_state *TLS, int val, const char *cause, const char *msg) {
|
||||
if (!val) {
|
||||
connection_data *conn = TLS->ev_base;
|
||||
purple_connection_error_reason (conn->gc, PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED, msg);
|
||||
purple_notify_message (_telegram_protocol, PURPLE_NOTIFY_MSG_ERROR, cause, msg, NULL, NULL, NULL);
|
||||
|
||||
purple_notify_message (_telegram_protocol, PURPLE_NOTIFY_MSG_ERROR,
|
||||
cause, msg, NULL, NULL, NULL);
|
||||
return TRUE;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void empty_auth_file (struct tgl_state *TLS) {
|
||||
info ("initializing empty auth file");
|
||||
if (TLS->test_mode) {
|
||||
bl_do_dc_option (TLS, 0, 1, "", 0, TG_SERVER_TEST_1, strlen (TG_SERVER_TEST_1), 443);
|
||||
bl_do_dc_option (TLS, 0, 2, "", 0, TG_SERVER_TEST_2, strlen (TG_SERVER_TEST_2), 443);
|
||||
bl_do_dc_option (TLS, 0, 3, "", 0, TG_SERVER_TEST_3, strlen (TG_SERVER_TEST_3), 443);
|
||||
bl_do_dc_option (TLS, 1, 0, "", strlen (TG_SERVER_TEST_1), TG_SERVER_TEST_1, 443);
|
||||
bl_do_dc_option (TLS, 2, 0, "", strlen (TG_SERVER_TEST_2), TG_SERVER_TEST_2, 443);
|
||||
bl_do_dc_option (TLS, 3, 0, "", strlen (TG_SERVER_TEST_3), 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);
|
||||
bl_do_set_working_dc (TLS, TG_SERVER_DEFAULT);
|
||||
bl_do_dc_option (TLS, 1, 0, "", strlen (TG_SERVER_1), TG_SERVER_1, 443);
|
||||
bl_do_dc_option (TLS, 2, 0, "", strlen (TG_SERVER_2), TG_SERVER_2, 443);
|
||||
bl_do_dc_option (TLS, 3, 0, "", strlen (TG_SERVER_3), TG_SERVER_3, 443);
|
||||
bl_do_dc_option (TLS, 4, 0, "", strlen (TG_SERVER_4), TG_SERVER_4, 443);
|
||||
bl_do_dc_option (TLS, 5, 0, "", strlen (TG_SERVER_5), TG_SERVER_5, 443);
|
||||
bl_do_set_working_dc (TLS, TG_SERVER_DEFAULT);;
|
||||
}
|
||||
}
|
||||
|
||||
void read_auth_file (struct tgl_state *TLS) {
|
||||
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);
|
||||
if (asprintf (&name, "%s/%s", TLS->base_path, "auth") < 0) {
|
||||
return;
|
||||
}
|
||||
int auth_file_fd = open (name, O_CREAT | O_RDWR, 0600);
|
||||
free (name);
|
||||
if (auth_file_fd < 0) {
|
||||
empty_auth_file (TLS);
|
||||
|
@ -298,12 +250,12 @@ void read_auth_file (struct tgl_state *TLS) {
|
|||
assert (!l);
|
||||
}
|
||||
if (our_id) {
|
||||
bl_do_set_our_id (TLS, TGL_MK_USER (our_id));
|
||||
bl_do_set_our_id (TLS, our_id);
|
||||
}
|
||||
close (auth_file_fd);
|
||||
info ("read auth file: dcs=%d dc_working_num=%d our_id=%d", x, dc_working_num, our_id);
|
||||
}
|
||||
|
||||
|
||||
void write_secret_chat (tgl_peer_t *_P, void *extra) {
|
||||
struct tgl_secret_chat *P = (void *)_P;
|
||||
if (tgl_get_peer_type (P->id) != TGL_PEER_ENCR_CHAT) { return; }
|
||||
|
@ -330,13 +282,14 @@ void write_secret_chat (tgl_peer_t *_P, void *extra) {
|
|||
assert (write (fd, &P->in_seq_no, 4) == 4);
|
||||
assert (write (fd, &P->last_in_seq_no, 4) == 4);
|
||||
assert (write (fd, &P->out_seq_no, 4) == 4);
|
||||
debug ("wrote secret chat: %s, state=%d, in_seq_no=%d, out_seq_no=%d", P->print_name, P->state, P->in_seq_no, P->out_seq_no);
|
||||
}
|
||||
|
||||
void write_secret_chat_file (struct tgl_state *TLS) {
|
||||
char *name = 0;
|
||||
name = g_strdup_printf("%s/%s", TLS->base_path, "secret");
|
||||
int secret_chat_fd = open (name, O_CREAT | O_RDWR | O_BINARY, 0600);
|
||||
if (asprintf (&name, "%s/%s", TLS->base_path, "secret") < 0) {
|
||||
return;
|
||||
}
|
||||
int secret_chat_fd = open (name, O_CREAT | O_RDWR, 0600);
|
||||
free (name);
|
||||
assert (secret_chat_fd >= 0);
|
||||
int x = SECRET_CHAT_FILE_MAGIC;
|
||||
|
@ -354,7 +307,6 @@ void write_secret_chat_file (struct tgl_state *TLS) {
|
|||
lseek (secret_chat_fd, 8, SEEK_SET);
|
||||
assert (write (secret_chat_fd, &y[1], 4) == 4);
|
||||
close (secret_chat_fd);
|
||||
info ("wrote secret chat file: %d chats written.", y[1]);
|
||||
}
|
||||
|
||||
void read_secret_chat (struct tgl_state *TLS, int fd, int v) {
|
||||
|
@ -365,7 +317,7 @@ void read_secret_chat (struct tgl_state *TLS, int fd, int v) {
|
|||
static unsigned char sha[20];
|
||||
assert (read (fd, &id, 4) == 4);
|
||||
assert (read (fd, &l, 4) == 4);
|
||||
assert (l > 0 && l < 999);
|
||||
assert (l > 0 && l < 1000);
|
||||
assert (read (fd, s, l) == l);
|
||||
assert (read (fd, &user_id, 4) == 4);
|
||||
assert (read (fd, &admin_id, 4) == 4);
|
||||
|
@ -378,12 +330,6 @@ void read_secret_chat (struct tgl_state *TLS, int fd, int v) {
|
|||
assert (read (fd, &key, 256) == 256);
|
||||
if (v >= 2) {
|
||||
assert (read (fd, sha, 20) == 20);
|
||||
} else {
|
||||
PurpleCipher *sha1_cipher = purple_ciphers_find_cipher("sha1");
|
||||
PurpleCipherContext *sha1_ctx = purple_cipher_context_new(sha1_cipher, NULL);
|
||||
purple_cipher_context_append(sha1_ctx, key, 256);
|
||||
purple_cipher_context_digest(sha1_ctx, 20, sha, NULL);
|
||||
purple_cipher_context_destroy(sha1_ctx);
|
||||
}
|
||||
int in_seq_no = 0, out_seq_no = 0, last_in_seq_no = 0;
|
||||
if (v >= 1) {
|
||||
|
@ -392,19 +338,33 @@ void read_secret_chat (struct tgl_state *TLS, int fd, int v) {
|
|||
assert (read (fd, &out_seq_no, 4) == 4);
|
||||
}
|
||||
|
||||
s[l] = '\0';
|
||||
debug ("read secret chat: %s, state=%d, in_seq_no=%d, last_in_seq_no=%d, out_seq_no=%d",
|
||||
s, state, in_seq_no, last_in_seq_no, out_seq_no);
|
||||
bl_do_encr_chat (TLS, id, &access_hash, &date, &admin_id, &user_id, key, NULL, sha, &state, &ttl,
|
||||
&layer, &in_seq_no, &last_in_seq_no, &out_seq_no, &key_fingerprint, TGLECF_CREATE | TGLECF_CREATED,
|
||||
s, l);
|
||||
bl_do_encr_chat_create (TLS, id, user_id, admin_id, s, l);
|
||||
struct tgl_secret_chat *P = (void *)tgl_peer_get (TLS, TGL_MK_ENCR_CHAT (id));
|
||||
assert (P && (P->flags & FLAG_CREATED));
|
||||
bl_do_encr_chat_set_date (TLS, P, date);
|
||||
bl_do_encr_chat_set_ttl (TLS, P, ttl);
|
||||
bl_do_encr_chat_set_layer (TLS ,P, layer);
|
||||
bl_do_encr_chat_set_state (TLS, P, state);
|
||||
bl_do_encr_chat_set_key (TLS, P, key, key_fingerprint);
|
||||
if (v >= 2) {
|
||||
bl_do_encr_chat_set_sha (TLS, P, sha);
|
||||
} else {
|
||||
SHA1 ((void *)key, 256, sha);
|
||||
bl_do_encr_chat_set_sha (TLS, P, sha);
|
||||
}
|
||||
if (v >= 1) {
|
||||
bl_do_encr_chat_set_seq (TLS, P, in_seq_no, last_in_seq_no, out_seq_no);
|
||||
}
|
||||
bl_do_encr_chat_set_access_hash (TLS, P, access_hash);
|
||||
}
|
||||
|
||||
void read_secret_chat_file (struct tgl_state *TLS) {
|
||||
char *name = 0;
|
||||
name = g_strdup_printf("%s/%s", TLS->base_path, "secret");
|
||||
if (asprintf (&name, "%s/%s", TLS->base_path, "secret") < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
int secret_chat_fd = open (name, O_RDWR | O_BINARY, 0600);
|
||||
int secret_chat_fd = open (name, O_RDWR, 0600);
|
||||
free (name);
|
||||
|
||||
if (secret_chat_fd < 0) { return; }
|
||||
|
@ -417,95 +377,195 @@ void read_secret_chat_file (struct tgl_state *TLS) {
|
|||
assert (v == 0 || v == 1 || v == 2); // version
|
||||
assert (read (secret_chat_fd, &x, 4) == 4);
|
||||
assert (x >= 0);
|
||||
int cnt = x;
|
||||
while (x -- > 0) {
|
||||
read_secret_chat (TLS, secret_chat_fd, v);
|
||||
}
|
||||
close (secret_chat_fd);
|
||||
info ("read secret chat file: %d chats read", cnt);
|
||||
}
|
||||
|
||||
gchar *get_config_dir (char const *username) {
|
||||
gchar *dir = g_strconcat (purple_user_dir(), G_DIR_SEPARATOR_S, config_dir,
|
||||
G_DIR_SEPARATOR_S, username, NULL);
|
||||
|
||||
if (g_str_has_prefix (dir, g_get_tmp_dir())) {
|
||||
// telepathy-haze will set purple user dir to a tmp path,
|
||||
// but we need the files to be persistent
|
||||
g_free (dir);
|
||||
dir = g_strconcat (g_get_home_dir(), G_DIR_SEPARATOR_S, ".telegram-purple",
|
||||
G_DIR_SEPARATOR_S, username, NULL);
|
||||
void telegram_export_authorization (struct tgl_state *TLS);
|
||||
void export_auth_callback (struct tgl_state *TLS, void *extra, int success) {
|
||||
if (!error_if_val_false(TLS, success, "Login Canceled", "Authentication export failed.")) {
|
||||
telegram_export_authorization (TLS);
|
||||
}
|
||||
g_mkdir_with_parents (dir, 0700);
|
||||
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;
|
||||
if (dir) {
|
||||
g_free (dir);
|
||||
}
|
||||
dir = g_strconcat (TLS->base_path, G_DIR_SEPARATOR_S, "downloads", NULL);
|
||||
g_mkdir_with_parents (dir, 0700);
|
||||
return dir;
|
||||
}
|
||||
|
||||
void write_secret_chat_gw (struct tgl_state *TLS, void *extra, int success, struct tgl_secret_chat *_) {
|
||||
if (!success) {
|
||||
tgp_notify_on_error_gw (TLS, NULL, success);
|
||||
void telegram_export_authorization (struct tgl_state *TLS) {
|
||||
int i;
|
||||
for (i = 0; i <= TLS->max_dc_num; i++) if (TLS->DC_list[i] && !tgl_signed_dc (TLS, TLS->DC_list[i])) {
|
||||
debug ("tgl_do_export_auth(%d)", i);
|
||||
tgl_do_export_auth (TLS, i, export_auth_callback, (void*)(long)TLS->DC_list[i]);
|
||||
return;
|
||||
}
|
||||
write_secret_chat_file (TLS);
|
||||
write_auth_file (TLS);
|
||||
on_ready (TLS);
|
||||
}
|
||||
|
||||
void tgp_create_group_chat_by_usernames (struct tgl_state *TLS, const char *title, const char **users,
|
||||
int num_users, int use_print_names) {
|
||||
tgl_peer_id_t ids[num_users + 1];
|
||||
int i, j = 0;
|
||||
ids[j++] = TLS->our_id;
|
||||
for (i = 0; i < num_users; i++) if (str_not_empty (users[i])) {
|
||||
tgl_peer_t *P = NULL;
|
||||
if (use_print_names) {
|
||||
// used by Adium autocompletion that is based on print_names
|
||||
P = tgl_peer_get_by_name (TLS, users[i]);
|
||||
} else {
|
||||
P = tgp_blist_lookup_peer_get (TLS, users[i]);
|
||||
}
|
||||
if (P && tgl_get_peer_id (P->id) != tgl_get_peer_id (TLS->our_id)) {
|
||||
debug ("Adding %s: %d", P->print_name, tgl_get_peer_id (P->id));
|
||||
ids[j++] = P->id;
|
||||
} else {
|
||||
debug ("User %s not found in peer list", users[j]);
|
||||
}
|
||||
}
|
||||
if (j > 1) {
|
||||
tgl_do_create_group_chat (TLS, j, ids, title, (int) strlen(title),
|
||||
tgp_notify_on_error_gw, g_strdup (title));
|
||||
static void request_code (struct tgl_state *TLS);
|
||||
static void request_name_and_code (struct tgl_state *TLS);
|
||||
static void code_receive_result (struct tgl_state *TLS, void *extra, int success, struct tgl_user *U) {
|
||||
if (!success) {
|
||||
debug ("Bad code...");
|
||||
request_code (TLS);
|
||||
} else {
|
||||
purple_notify_message (_telegram_protocol, PURPLE_NOTIFY_MSG_INFO, _("Couldn't create group"),
|
||||
_("Please select at least one other user."), NULL, NULL, NULL);
|
||||
telegram_export_authorization (TLS);
|
||||
}
|
||||
}
|
||||
|
||||
static void code_auth_receive_result (struct tgl_state *TLS, void *extra, int success, struct tgl_user *U) {
|
||||
if (!success) {
|
||||
debug ("Bad code...");
|
||||
request_name_and_code (TLS);
|
||||
} else {
|
||||
telegram_export_authorization (TLS);
|
||||
}
|
||||
}
|
||||
|
||||
void request_code_entered (gpointer data, const gchar *code) {
|
||||
struct tgl_state *TLS = data;
|
||||
connection_data *conn = TLS->ev_base;
|
||||
char const *username = purple_account_get_username(conn->pa);
|
||||
tgl_do_send_code_result (TLS, username, conn->hash, code, code_receive_result, 0) ;
|
||||
}
|
||||
|
||||
static void request_code_canceled (gpointer data) {
|
||||
struct tgl_state *TLS = data;
|
||||
connection_data *conn = TLS->ev_base;
|
||||
|
||||
purple_connection_error_reason(conn->gc,
|
||||
PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED, "registration canceled");
|
||||
}
|
||||
|
||||
static void request_name_code_entered (PurpleConnection* gc, PurpleRequestFields* fields) {
|
||||
connection_data *conn = purple_connection_get_protocol_data(gc);
|
||||
struct tgl_state *TLS = conn->TLS;
|
||||
char const *username = purple_account_get_username(conn->pa);
|
||||
|
||||
const char* first = purple_request_fields_get_string(fields, "first_name");
|
||||
const char* last = purple_request_fields_get_string(fields, "last_name");
|
||||
const char* code = purple_request_fields_get_string(fields, "code");
|
||||
if (!first || !last || !code) {
|
||||
request_name_and_code (TLS);
|
||||
return;
|
||||
}
|
||||
|
||||
tgl_do_send_code_result_auth (TLS, username, conn->hash, code, first, last, code_auth_receive_result, NULL);
|
||||
}
|
||||
|
||||
static void request_code (struct tgl_state *TLS) {
|
||||
debug ("Client is not registered, registering...");
|
||||
connection_data *conn = TLS->ev_base;
|
||||
int compat = purple_account_get_bool (tg_get_acc(TLS), "compat-verification", 0);
|
||||
|
||||
if (compat || ! purple_request_input (conn->gc, "Telegram Code", "Enter Telegram Code",
|
||||
"Telegram wants to verify your identity, please enter the code, that you have received via SMS.",
|
||||
NULL, 0, 0, "code", "OK", G_CALLBACK(request_code_entered), "Cancel",
|
||||
G_CALLBACK(request_code_canceled), conn->pa, NULL, NULL, TLS)) {
|
||||
|
||||
// purple request API is not available, so we create a new conversation (the Telegram system
|
||||
// account "7770000") to prompt the user for the code
|
||||
|
||||
conn->in_fallback_chat = 1;
|
||||
purple_connection_set_state (conn->gc, PURPLE_CONNECTED);
|
||||
PurpleConversation *conv = purple_conversation_new (PURPLE_CONV_TYPE_IM, conn->pa, "777000");
|
||||
purple_conversation_write (conv, "777000", "What is your SMS verification code?",
|
||||
PURPLE_MESSAGE_RECV | PURPLE_MESSAGE_SYSTEM, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static void request_name_and_code (struct tgl_state *TLS) {
|
||||
debug ("Phone is not registered, registering...");
|
||||
|
||||
connection_data *conn = TLS->ev_base;
|
||||
|
||||
PurpleRequestFields* fields = purple_request_fields_new();
|
||||
PurpleRequestField* field = 0;
|
||||
|
||||
PurpleRequestFieldGroup* group = purple_request_field_group_new("Registration");
|
||||
field = purple_request_field_string_new("first_name", "First Name", "", 0);
|
||||
purple_request_field_group_add_field(group, field);
|
||||
field = purple_request_field_string_new("last_name", "Last Name", "", 0);
|
||||
purple_request_field_group_add_field(group, field);
|
||||
purple_request_fields_add_group(fields, group);
|
||||
|
||||
group = purple_request_field_group_new("Authorization");
|
||||
field = purple_request_field_string_new("code", "Telegram Code", "", 0);
|
||||
purple_request_field_group_add_field(group, field);
|
||||
purple_request_fields_add_group(fields, group);
|
||||
|
||||
if (!purple_request_fields (conn->gc, "Register", "Please register your phone number.", NULL, fields, "Ok",
|
||||
G_CALLBACK( request_name_code_entered ), "Cancel", NULL, conn->pa, NULL, NULL, conn->gc)) {
|
||||
// purple_request API not available
|
||||
const char *error = "Phone number is not registered, please register your phone on a different client.";
|
||||
purple_connection_error_reason (conn->gc, PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED, error);
|
||||
purple_notify_error(_telegram_protocol, "Not Registered", "Not Registered", error);
|
||||
}
|
||||
}
|
||||
|
||||
static void sign_in_callback (struct tgl_state *TLS, void *extra, int success, int registered, const char *mhash) {
|
||||
connection_data *conn = TLS->ev_base;
|
||||
if (!error_if_val_false (TLS, success, "Invalid phone number",
|
||||
"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.")) {
|
||||
conn->hash = strdup (mhash);
|
||||
if (registered) {
|
||||
request_code (TLS);
|
||||
} else {
|
||||
request_name_and_code (TLS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void telegram_send_sms (struct tgl_state *TLS) {
|
||||
if (tgl_signed_dc (TLS, TLS->DC_working)) {
|
||||
telegram_export_authorization (TLS);
|
||||
return;
|
||||
}
|
||||
connection_data *conn = TLS->ev_base;
|
||||
char const *username = purple_account_get_username(conn->pa);
|
||||
tgl_do_send_code (TLS, username, sign_in_callback, 0);
|
||||
}
|
||||
|
||||
static int all_authorized (struct tgl_state *TLS) {
|
||||
int i;
|
||||
for (i = 0; i <= TLS->max_dc_num; i++) if (TLS->DC_list[i]) {
|
||||
if (!tgl_authorized_dc (TLS, TLS->DC_list[i])) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int check_all_authorized (gpointer arg) {
|
||||
struct tgl_state *TLS = arg;
|
||||
|
||||
if (all_authorized (TLS)) {
|
||||
((connection_data *)TLS->ev_base)->login_timer = 0;
|
||||
telegram_send_sms (TLS);
|
||||
return FALSE;
|
||||
} else {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
void telegram_login (struct tgl_state *TLS) {
|
||||
connection_data *conn = TLS->ev_base;
|
||||
|
||||
read_auth_file (TLS);
|
||||
read_state_file (TLS);
|
||||
read_secret_chat_file (TLS);
|
||||
if (all_authorized (TLS)) {
|
||||
telegram_send_sms (TLS);
|
||||
return;
|
||||
}
|
||||
conn->login_timer = purple_timeout_add (100, check_all_authorized, TLS);
|
||||
}
|
||||
|
||||
/**
|
||||
* This function generates a png image to visualize the sha1 key from an encrypted chat.
|
||||
*/
|
||||
int tgp_visualize_key (struct tgl_state *TLS, unsigned char* sha1_key) {
|
||||
int generate_ident_icon (struct tgl_state *TLS, unsigned char* sha1_key) {
|
||||
int colors[4] = {
|
||||
0xffffff,
|
||||
0xd5e6f3,
|
||||
|
@ -525,7 +585,7 @@ int tgp_visualize_key (struct tgl_state *TLS, unsigned char* sha1_key) {
|
|||
int offset = bitpointer / 8;
|
||||
int shiftOffset = bitpointer % 8;
|
||||
int val = sha1_key[offset + 3] << 24 | sha1_key[offset + 2] << 16 | sha1_key[offset + 1] << 8 | sha1_key[offset];
|
||||
idx = abs ((val >> shiftOffset) & 3) % 4;
|
||||
idx = abs((val >> shiftOffset) & 3) % 4;
|
||||
bitpointer += 2;
|
||||
unsigned offset_x = x * 4 * (img_size / 8);
|
||||
for (i = 0; i < img_size / 8; i++)
|
||||
|
@ -534,27 +594,23 @@ int tgp_visualize_key (struct tgl_state *TLS, unsigned char* sha1_key) {
|
|||
for (j = 0; j < img_size / 8; j++)
|
||||
{
|
||||
unsigned off_x = offset_x + j * 4;
|
||||
image[off_y + off_x + 0] = colors[idx] & 0xFF;
|
||||
image[off_y + off_x + 0] = (colors[idx] >> 16) & 0xFF;
|
||||
image[off_y + off_x + 1] = (colors[idx] >> 8) & 0xFF;
|
||||
image[off_y + off_x + 2] = (colors[idx] >> 16) & 0xFF;
|
||||
image[off_y + off_x + 2] = colors[idx] & 0xFF;
|
||||
image[off_y + off_x + 3] = 0xFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
int imgStoreId = p2tgl_imgstore_add_with_id_raw(image, img_size, img_size);
|
||||
used_images_add ((connection_data*)TLS->ev_base, imgStoreId);
|
||||
g_free (image);
|
||||
unsigned char* png;
|
||||
size_t pngsize;
|
||||
unsigned error = lodepng_encode32(&png, &pngsize, image, img_size, img_size);
|
||||
int imgStoreId = -1;
|
||||
if(!error)
|
||||
{
|
||||
imgStoreId = purple_imgstore_add_with_id (png, pngsize, NULL);
|
||||
used_images_add ((connection_data*)TLS->ev_base, imgStoreId);
|
||||
}
|
||||
g_free(image);
|
||||
return imgStoreId;
|
||||
}
|
||||
|
||||
void tgp_notify_on_error_gw (struct tgl_state *TLS, void *extra, int success) {
|
||||
if (!success) {
|
||||
char *errormsg = g_strdup_printf ("%d: %s", TLS->error_code, TLS->error);
|
||||
failure (errormsg);
|
||||
purple_notify_message (_telegram_protocol, PURPLE_NOTIFY_MSG_ERROR, _("Query Failed"),
|
||||
errormsg, NULL, NULL, NULL);
|
||||
g_free (errormsg);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,38 +15,23 @@
|
|||
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, Ben Wiederhake 2014-2015
|
||||
Copyright Matthias Jentsch, Vitaly Valtman, Christopher Althaus, Markus Endres 2014-2015
|
||||
*/
|
||||
#ifndef __TELEGRAM_BASE_H__
|
||||
#define __TELEGRAM_BASE_H__
|
||||
|
||||
#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);
|
||||
void write_state_file (struct tgl_state *TLS);
|
||||
void write_files_schedule (struct tgl_state *TLS);
|
||||
void write_state_file_schedule (struct tgl_state *TLS);
|
||||
void read_secret_chat_file (struct tgl_state *TLS);
|
||||
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);
|
||||
void telegram_login (struct tgl_state *TLS);
|
||||
void request_code_entered (gpointer data, const gchar *code);
|
||||
int generate_ident_icon(struct tgl_state *TLS, unsigned char* sha1_key);
|
||||
|
||||
int tgp_visualize_key (struct tgl_state *TLS, unsigned char* sha1_key);
|
||||
void tgp_create_group_chat_by_usernames (struct tgl_state *TLS, const char *title,
|
||||
const char *users[], int num_users, int print_names);
|
||||
|
||||
void tgp_notify_on_error_gw (struct tgl_state *TLS, void *extra, int success);
|
||||
int tgp_error_if_false (struct tgl_state *TLS, int val, const char *cause, const char *msg);
|
||||
#endif
|
||||
|
|
1221
telegram-purple.c
Normal file → Executable file
1221
telegram-purple.c
Normal file → Executable file
File diff suppressed because it is too large
Load diff
|
@ -15,96 +15,49 @@
|
|||
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, Ben Wiederhake 2014-2015
|
||||
Copyright Matthias Jentsch, Vitaly Valtman, Christopher Althaus, Markus Endres 2014-2015
|
||||
*/
|
||||
#ifndef __TG_PURPLE_H__
|
||||
#define __TG_PURPLE_H__
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
// Define macros for gettext translation, ENABLE_NLS should be set if configure has detected
|
||||
// libintl.h. If this is not the case a dummy macro is defined to bypass the translation functions
|
||||
#ifdef ENABLE_NLS
|
||||
# include <glib/gi18n-lib.h>
|
||||
# define P_(Singular,Plural,N) ((char *) g_dngettext (GETTEXT_PACKAGE, Singular, Plural, N))
|
||||
#else
|
||||
# define _(String) String
|
||||
# define P_(Singular,Plural,N) Plural
|
||||
# define N_(String) String
|
||||
# define gettext(String) String
|
||||
#endif
|
||||
|
||||
#include <tgl.h>
|
||||
#include <tgl-binlog.h>
|
||||
#include <tgl-queries.h>
|
||||
#include <tgl-structures.h>
|
||||
|
||||
#include <glib.h>
|
||||
#include <purple.h>
|
||||
|
||||
#include "telegram-base.h"
|
||||
#include "tgp-blist.h"
|
||||
#include "tgp-structs.h"
|
||||
#include "tgp-2prpl.h"
|
||||
#include "tgp-net.h"
|
||||
#include "tgp-timers.h"
|
||||
#include "tgp-utils.h"
|
||||
#include "tgp-chat.h"
|
||||
#include "tgp-ft.h"
|
||||
#include "tgp-msg.h"
|
||||
#include "tgp-request.h"
|
||||
#include "tgp-info.h"
|
||||
#include "msglog.h"
|
||||
|
||||
#define PLUGIN_ID "prpl-telegram"
|
||||
#define PLUGIN_AUTHOR "Matthias Jentsch <mtthsjntsch@gmail.com>\n\t\t\tVitaly Valtman\n\t\t\tBen Wiederhake\n\t\t\tChristopher Althaus <althaus.christopher@gmail.com>"
|
||||
#define TG_AUTHOR "Matthias Jentsch <mtthsjntsch@gmail.com>, Vitaly Valtman, Christopher Althaus <althaus.christopher@gmail.com>, Markus Endres <endresma45241@th-nuernberg.de>. Based on libtgl by Vitaly Valtman."
|
||||
#define TG_DESCRIPTION "Telegram protocol."
|
||||
#define TG_BUILD "11"
|
||||
|
||||
#include <notify.h>
|
||||
#include <plugin.h>
|
||||
#include <version.h>
|
||||
#include <account.h>
|
||||
#include <connection.h>
|
||||
|
||||
#define TGP_APP_HASH "99428c722d0ed59b9cd844e4577cb4bb"
|
||||
#define TGP_APP_ID 16154
|
||||
|
||||
#define TGP_MAX_MSG_SIZE 4096
|
||||
#define TGP_DEFAULT_MAX_MSG_SPLIT_COUNT 4
|
||||
|
||||
#define TGP_DEFAULT_MEDIA_SIZE 32768
|
||||
#define TGP_KEY_MEDIA_SIZE "media-size-threshold"
|
||||
|
||||
#define TGP_KEY_PASSWORD_TWO_FACTOR "password-two-factor"
|
||||
|
||||
#define TGP_DEFAULT_ACCEPT_SECRET_CHATS "ask"
|
||||
#define TGP_KEY_ACCEPT_SECRET_CHATS "accept-secret-chats"
|
||||
|
||||
#define TGP_DEFAULT_INACTIVE_DAYS_OFFLINE 7
|
||||
#define TGP_KEY_INACTIVE_DAYS_OFFLINE "inactive-days-offline"
|
||||
|
||||
#define TGP_DEFAULT_HISTORY_RETRIEVAL_THRESHOLD 14
|
||||
#define TGP_KEY_HISTORY_RETRIEVAL_THRESHOLD "history-retrieve-days"
|
||||
|
||||
#define TGP_DEFAULT_JOIN_GROUP_CHATS TRUE
|
||||
#define TGP_KEY_JOIN_GROUP_CHATS "auto-join-group-chats"
|
||||
|
||||
#define TGP_DEFAULT_DISPLAY_READ_NOTIFICATIONS FALSE
|
||||
#define TGP_KEY_DISPLAY_READ_NOTIFICATIONS "display-read-notifications"
|
||||
|
||||
#define TGP_DEFAULT_SEND_READ_NOTIFICATIONS TRUE
|
||||
#define TGP_KEY_SEND_READ_NOTIFICATIONS "send-read-notifications"
|
||||
#define TGP_DEFAULT_HISTORY_RETRIEVAL_THRESHOLD 14
|
||||
#define TGP_KEY_HISTORY_RETRIEVAL_THRESHOLD "history-retrieve-days"
|
||||
|
||||
#define TGP_DEFAULT_CHANNEL_MEMBERS 500
|
||||
#define TGP_KEY_CHANNEL_MEMBERS "channel-member-count"
|
||||
|
||||
#define TGP_KEY_RESET_AUTH "reset-authorization"
|
||||
|
||||
#define TGP_CHANNEL_HISTORY_LIMIT 500
|
||||
#define TGP_KEY_HISTORY_SYNC_ALL "history-sync-all"
|
||||
#define TGP_DEFAULT_HISTORY_SYNC_ALL FALSE
|
||||
|
||||
void on_chat_get_info (struct tgl_state *TLS, void *extra, int success, struct tgl_chat *C);
|
||||
void on_ready (struct tgl_state *TLS);
|
||||
extern const char *pk_path;
|
||||
extern const char *user_pk_filename;
|
||||
extern const char *config_dir;
|
||||
extern PurplePlugin *_telegram_protocol;
|
||||
void import_chat_link (struct tgl_state *TLS, const char *link);
|
||||
void export_chat_link_by_name (struct tgl_state *TLS, const char *name);
|
||||
void leave_and_delete_chat (struct tgl_state *TLS, tgl_peer_t *P);
|
||||
void leave_and_delete_chat_by_name (struct tgl_state *TLS, const char *name);
|
||||
void channel_load_photo (struct tgl_state *TLS, void *extra, int success, struct tgl_channel *C);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -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
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
{
|
||||
if (match($0,"%")) {
|
||||
do {
|
||||
prev=lang;
|
||||
getline lang<"po/LINGUAS";
|
||||
l=$0;
|
||||
gsub("%",lang,l);
|
||||
if (prev!=lang) {print l}
|
||||
} while (prev!=lang);
|
||||
close("po/LINGUAS")
|
||||
} else {
|
||||
print $0
|
||||
}
|
||||
}
|
|
@ -1,120 +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=%\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"
|
||||
|
||||
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
|
||||
|
2
test/.gitignore
vendored
2
test/.gitignore
vendored
|
@ -1,2 +0,0 @@
|
|||
/bin
|
||||
/tmp
|
|
@ -1,25 +0,0 @@
|
|||
PLUGIN_TESTS:=probetest loadtest
|
||||
PLUGIN_TEST_BINS:=$(addprefix test/bin/,${PLUGIN_TESTS})
|
||||
|
||||
test/bin:
|
||||
mkdir -p $@
|
||||
|
||||
test/tmp/%:
|
||||
mkdir -p $@
|
||||
|
||||
test/bin/%: test/%.c test/bin bin/telegram-purple.so
|
||||
${CC} ${CFLAGS} ${CPPFLAGS} -I ${srcdir}/tgl -o $@ $< ${LDFLAGS}
|
||||
|
||||
.PHONY: ${PLUGIN_TESTS}
|
||||
${PLUGIN_TESTS}: %: test/bin/% test/tmp/user
|
||||
$< bin/telegram-purple.so
|
||||
|
||||
.PHONY: check
|
||||
check: ${PLUGIN_TESTS} test/tmp/user
|
||||
|
||||
.PHONY: recheck
|
||||
recheck: clean-test check
|
||||
|
||||
.PHONY: clean-test
|
||||
clean-test:
|
||||
rm -rf test/bin test/tmp
|
286
test/loadtest.c
286
test/loadtest.c
|
@ -1,286 +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 Ben Wiederhake 2016, Purple developers 2007-2015
|
||||
|
||||
Derived from the nullclient.c example at
|
||||
https://github.com/Tasssadar/libpurple/blob/master/example/nullclient.c
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <glib.h>
|
||||
#include <purple.h>
|
||||
#include <signal.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "../commit.h"
|
||||
#include "../telegram-purple.h"
|
||||
|
||||
// The following eventloop functions are used in both pidgin and purple-text. If your application uses glib mainloop, you can safely use this verbatim.
|
||||
#define PURPLE_GLIB_READ_COND (G_IO_IN | G_IO_HUP | G_IO_ERR)
|
||||
#define PURPLE_GLIB_WRITE_COND (G_IO_OUT | G_IO_HUP | G_IO_ERR | G_IO_NVAL)
|
||||
|
||||
typedef struct TdfGLibIOClosure {
|
||||
PurpleInputFunction function;
|
||||
guint result;
|
||||
gpointer data;
|
||||
} TdfGLibIOClosure;
|
||||
|
||||
typedef struct TdfAccountRequestInfo {
|
||||
PurpleAccountRequestType type;
|
||||
PurpleAccount *account;
|
||||
void *ui_handle;
|
||||
char *user;
|
||||
gpointer userdata;
|
||||
PurpleAccountRequestAuthorizationCb auth_cb;
|
||||
PurpleAccountRequestAuthorizationCb deny_cb;
|
||||
guint ref;
|
||||
} TdfAccountRequestInfo;
|
||||
|
||||
static void tdf_glib_io_destroy (gpointer data) {
|
||||
g_free (data);
|
||||
}
|
||||
|
||||
static gboolean tdf_glib_io_invoke (GIOChannel *source, GIOCondition condition, gpointer data) {
|
||||
TdfGLibIOClosure *closure = data;
|
||||
PurpleInputCondition purple_cond = 0;
|
||||
|
||||
if (condition & PURPLE_GLIB_READ_COND)
|
||||
purple_cond |= PURPLE_INPUT_READ;
|
||||
if (condition & PURPLE_GLIB_WRITE_COND)
|
||||
purple_cond |= PURPLE_INPUT_WRITE;
|
||||
|
||||
closure->function (closure->data, g_io_channel_unix_get_fd (source), purple_cond);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static guint tdf_glib_input_add (gint fd, PurpleInputCondition condition, PurpleInputFunction function, gpointer data) {
|
||||
TdfGLibIOClosure *closure = g_new0(TdfGLibIOClosure, 1);
|
||||
GIOChannel *channel;
|
||||
GIOCondition cond = 0;
|
||||
|
||||
closure->function = function;
|
||||
closure->data = data;
|
||||
|
||||
if (condition & PURPLE_INPUT_READ)
|
||||
cond |= PURPLE_GLIB_READ_COND;
|
||||
if (condition & PURPLE_INPUT_WRITE)
|
||||
cond |= PURPLE_GLIB_WRITE_COND;
|
||||
|
||||
channel = g_io_channel_unix_new (fd);
|
||||
closure->result = g_io_add_watch_full (channel, G_PRIORITY_DEFAULT, cond, tdf_glib_io_invoke, closure, tdf_glib_io_destroy);
|
||||
|
||||
g_io_channel_unref (channel);
|
||||
return closure->result;
|
||||
}
|
||||
|
||||
static PurpleEventLoopUiOps tdf_glib_eventloop_ops = {
|
||||
g_timeout_add,
|
||||
g_source_remove,
|
||||
tdf_glib_input_add,
|
||||
g_source_remove,
|
||||
NULL,
|
||||
#if GLIB_CHECK_VERSION(2,14,0)
|
||||
g_timeout_add_seconds,
|
||||
#else
|
||||
NULL,
|
||||
#endif
|
||||
// padding
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
};
|
||||
// End of the eventloop functions.
|
||||
|
||||
static PurpleConnectionUiOps connection_uiops = {
|
||||
NULL, // connect_progress
|
||||
NULL, // connected
|
||||
NULL, // disconnected
|
||||
NULL, // notice
|
||||
NULL, // report_disconnect
|
||||
NULL, // network_connected
|
||||
NULL, // network_disconnected
|
||||
NULL, // report_disconnect_reason
|
||||
// padding
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
};
|
||||
|
||||
static void tdf_init (void) {
|
||||
// This should initialize the UI components for all the modules.
|
||||
purple_connections_set_ui_ops (&connection_uiops);
|
||||
}
|
||||
|
||||
static PurpleCoreUiOps tdf_core_uiops = {
|
||||
NULL,
|
||||
NULL,
|
||||
tdf_init,
|
||||
NULL,
|
||||
// padding
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
};
|
||||
|
||||
PurplePlugin *tgp = NULL;
|
||||
|
||||
static void display_search_paths (GList *elem) {
|
||||
printf ("Search paths:");
|
||||
for (; elem; elem = elem->next) {
|
||||
printf (" %s", (char *)elem->data);
|
||||
}
|
||||
printf ("\n");
|
||||
}
|
||||
|
||||
static void tdf_inject_plugin (void) {
|
||||
printf ("Injecting our module into purple_plugins_* ...\n");
|
||||
purple_plugins_init ();
|
||||
GList *search_paths = purple_plugins_get_search_paths ();
|
||||
assert (!search_paths->prev && !search_paths->next && search_paths->data);
|
||||
GList *new_paths = g_list_append (search_paths, g_strdup ("bin/"));
|
||||
assert (new_paths == search_paths);
|
||||
// Load "my" path before the default.
|
||||
assert (search_paths->next && search_paths->next->data);
|
||||
{
|
||||
// swap(search_paths->data, search_paths->next->data);
|
||||
gchar* tmp = search_paths->data;
|
||||
search_paths->data = search_paths->next->data;
|
||||
search_paths->next->data = tmp;
|
||||
}
|
||||
}
|
||||
|
||||
gboolean tdf_is_in_ci (void) {
|
||||
gchar* envvar = getenv ("CONTINUOUS_INTEGRATION");
|
||||
return envvar && g_str_equal ("true", envvar);
|
||||
}
|
||||
|
||||
static void init_libpurple (void) {
|
||||
// Set a custom user directory (optional)
|
||||
purple_util_set_user_dir ("test/tmp/user");
|
||||
|
||||
// We *do* want debugging. However, this is just too much noise.
|
||||
// Then again, this doesn't hurt if Travis does it. Query the environment to check whether we're in CI or not.
|
||||
purple_debug_set_enabled (tdf_is_in_ci ());
|
||||
|
||||
/* Set the core-uiops, which is used to
|
||||
* - initialize the ui specific preferences.
|
||||
* - initialize the debug ui.
|
||||
* - initialize the ui components for all the modules.
|
||||
* - uninitialize the ui components for all the modules when the core terminates.
|
||||
*/
|
||||
purple_core_set_ui_ops (&tdf_core_uiops);
|
||||
|
||||
// Set the uiops for the eventloop. Since our client is glib-based, you can safely copy this verbatim. */
|
||||
purple_eventloop_set_ui_ops (&tdf_glib_eventloop_ops);
|
||||
|
||||
tdf_inject_plugin ();
|
||||
display_search_paths (purple_plugins_get_search_paths ());
|
||||
|
||||
// Now that all the essential stuff has been set, let's try to init the core.
|
||||
printf ("Enter purple_core_init ...\n");
|
||||
if (!purple_core_init ("tgp-dummy")) {
|
||||
// Initializing the core failed. Terminate.
|
||||
fprintf (stderr, "libpurple initialization failed. Abort.\n");
|
||||
abort ();
|
||||
}
|
||||
printf ("Core initialized.\n");
|
||||
|
||||
// Create and load the buddylist.
|
||||
purple_set_blist (purple_blist_new ());
|
||||
|
||||
// Find our plugin
|
||||
printf ("Checking version:\n");
|
||||
tgp = purple_plugins_find_with_id (PLUGIN_ID);
|
||||
if (!tgp) {
|
||||
printf ("Huh! Can't find plugin! Expected ID \"" PLUGIN_ID "\"");
|
||||
abort ();
|
||||
}
|
||||
|
||||
// Make sure we loaded the correct plugin
|
||||
printf ("This is what we loaded:\n\t\t\tversion: %s\n", tgp->info->version);
|
||||
gchar *pos = g_strrstr (tgp->info->version, "commit: " GIT_COMMIT);
|
||||
if (pos == NULL) {
|
||||
printf ("This is the wrong version, we built for commit %s. Abort!\n", GIT_COMMIT);
|
||||
abort ();
|
||||
} else {
|
||||
printf ("Looks like the right version, because we also expected commit %s.\n", GIT_COMMIT);
|
||||
}
|
||||
}
|
||||
|
||||
//static void signed_on (PurpleConnection *gc) {
|
||||
// PurpleAccount *account = purple_connection_get_account (gc);
|
||||
// printf("Account connected: \"%s\" (%s)\n", purple_account_get_username(account), purple_account_get_protocol_id(account));
|
||||
//}
|
||||
//
|
||||
//static void received_im_msg (PurpleAccount *account, char *sender, char *message, PurpleConversation *conv, PurpleMessageFlags flags) {
|
||||
// if (conv==NULL) {
|
||||
// conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, sender);
|
||||
// }
|
||||
//
|
||||
// printf("(%s) %s (%s): %s\n", purple_utf8_strftime("%H:%M:%S", NULL), sender, purple_conversation_get_name(conv), message);
|
||||
//}
|
||||
//
|
||||
//static void connect_to_signals(void)
|
||||
//{
|
||||
//
|
||||
// static int handle;
|
||||
//
|
||||
// purple_signal_connect(purple_connections_get_handle(), "signed-on", &handle,
|
||||
// PURPLE_CALLBACK(signed_on), NULL);
|
||||
//
|
||||
// purple_signal_connect(purple_conversations_get_handle(), "received-im-msg", &handle,
|
||||
// PURPLE_CALLBACK(received_im_msg), NULL);
|
||||
//
|
||||
//}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
printf ("Running loadtest on %s.\n", argv[1]);
|
||||
GMainLoop *loop = g_main_loop_new(NULL, FALSE);
|
||||
|
||||
/* libpurple's built-in DNS resolution forks processes to perform
|
||||
* blocking lookups without blocking the main process. It does not
|
||||
* handle SIGCHLD itself, so if the UI does not you quickly get an army
|
||||
* of zombie subprocesses marching around.
|
||||
*/
|
||||
signal(SIGCHLD, SIG_IGN);
|
||||
|
||||
printf ("Enter init_libpurple\n");
|
||||
init_libpurple ();
|
||||
printf ("libpurple %s initialized.\n", purple_core_get_version());
|
||||
|
||||
// Since we do not yet do anything useful, simply terminate after a few seconds.
|
||||
purple_timeout_add (2000, purple_core_quit_cb, NULL);
|
||||
g_timeout_add (4000, (GSourceFunc)g_main_loop_quit, loop);
|
||||
|
||||
// connect_to_signals();
|
||||
|
||||
// PurpleAccount *account = purple_account_new("YOUR_IM_ACCOUNTS_USERNAME_HERE", "prpl-IM_NETWORK_HERE"); //this could be prpl-aim, prpl-yahoo, prpl-msn, prpl-icq, etc.
|
||||
// purple_account_set_password(account, "YOUR_IM_ACCOUNTS_PASSWORD_HERE");
|
||||
// purple_accounts_add(account);
|
||||
// purple_account_set_enabled(account, UI_ID, TRUE);
|
||||
|
||||
g_main_loop_run (loop);
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,46 +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 Ben Wiederhake 2016
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <purple.h>
|
||||
|
||||
// Just try to probe (pre-load) the plugin. If that's successful, then probably a lot of stuff works.
|
||||
int main (int argc, char **argv) {
|
||||
assert(argc == 2);
|
||||
printf ("Running probetest on %s.\n", argv[1]);
|
||||
PurplePlugin *tgp = purple_plugin_probe (argv[1]);
|
||||
if (!tgp) {
|
||||
printf ("Looks like there was a problem! Aborting.\n");
|
||||
return 1;
|
||||
}
|
||||
printf ("Looks good. Here's what I can read:\n");
|
||||
PurplePluginInfo *info = tgp->info;
|
||||
#define BLURB(x) printf (#x " = %s\n", info->x);
|
||||
BLURB(id)
|
||||
BLURB(name)
|
||||
BLURB(version)
|
||||
BLURB(summary)
|
||||
BLURB(description)
|
||||
BLURB(author)
|
||||
BLURB(homepage)
|
||||
return 0;
|
||||
}
|
8
tg-server.pub
Normal file
8
tg-server.pub
Normal file
|
@ -0,0 +1,8 @@
|
|||
-----BEGIN RSA PUBLIC KEY-----
|
||||
MIIBCgKCAQEAwVACPi9w23mF3tBkdZz+zwrzKOaaQdr01vAbU4E1pvkfj4sqDsm6
|
||||
lyDONS789sVoD/xCS9Y0hkkC3gtL1tSfTlgCMOOul9lcixlEKzwKENj1Yz/s7daS
|
||||
an9tqw3bfUV/nqgbhGX81v/+7RFAEd+RwFnK7a+XYl9sluzHRyVVaTTveB2GazTw
|
||||
Efzk2DWgkBluml8OREmvfraX3bkHZJTKX4EQSjBbbdJ2ZXIsRrYOXfaA+xayEGB+
|
||||
8hdlLmAjbCVfaigxX0CDqWeR1yFL9kwd9P0NsZRPsmoqVwMbMu7mStFai6aIhc3n
|
||||
Slv8kg9qv1m6XHVQY3PnEw+QQtqSIXklHwIDAQAB
|
||||
-----END RSA PUBLIC KEY-----
|
BIN
tg-server.tglpub
BIN
tg-server.tglpub
Binary file not shown.
2
tgl
2
tgl
|
@ -1 +1 @@
|
|||
Subproject commit 3ce5b5d856e537fe4693a99c26b5d17f7200f674
|
||||
Subproject commit 5e36b2bc84f47656eb82bb0039dadb4c5133c996
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue