diff --git a/README.md b/README.md index c007791..4401476 100644 --- a/README.md +++ b/README.md @@ -33,24 +33,25 @@ Toxygen is cross-platform [Tox](https://tox.chat/) client written on Python - [x] File resuming - [x] Save file encryption - [x] Plugins support +- [x] Read receipts +- [x] Faux offline messaging - [ ] Video - [ ] Group chats -- [ ] Read receipts -- [ ] Faux offline messaging - [ ] Desktop sharing ###Downloads +[Releases](https://github.com/xveduk/toxygen/releases) + [Download last stable version](https://github.com/xveduk/toxygen/archive/master.zip) [Download develop version](https://github.com/xveduk/toxygen/archive/develop.zip) -[Releases](https://github.com/xveduk/toxygen/releases) - ###Screenshots *Toxygen on Ubuntu and Windows* ![Ubuntu](/docs/ubuntu.png) ![Windows](/docs/windows.png) + ###Docs [Check /docs/ for more info](/docs/) diff --git a/docs/contributing.md b/docs/contributing.md index 32b835e..2eeb453 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -9,13 +9,13 @@ Help us find all bugs in Toxygen! Please provide following info: - Toxygen executable info - .py or precompiled binary - Steps to reproduce the bug -Want to see new feature in Toxygen? [Open issue!](https://github.com/xveduk/toxygen/issues) +Want to see new feature in Toxygen? [Ask for it!](https://github.com/xveduk/toxygen/issues) #Pull requests Developer? Feel free to open pull request. Our dev team is small so we glad to get help. -Don't know what to do? Impove UI, fix [issues](https://github.com/xveduk/toxygen/issues) or implement features from our TODO list. -You can find our TODO's in code and [here](/README.md) +Don't know what to do? Improve UI, fix [issues](https://github.com/xveduk/toxygen/issues) or implement features from our TODO list. +You can find our TODO's in code and [here](/README.md). Also you can implement plugins for Toxygen. #Translations diff --git a/docs/plugins.md b/docs/plugins.md index 3fb13b7..36981c0 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -1,6 +1,6 @@ #Plugins -Toxygen is the first [Tox](https://tox.chat/) client with plugins support. Plugin is Python module and directory with plugin's data which provide some additional functionality. +Toxygen is the first [Tox](https://tox.chat/) client with plugins support. Plugin is Python module (.py file) and directory with plugin's data which provide some additional functionality. #How to write plugin diff --git a/src/menu.py b/src/menu.py index 689d1d6..8b7c6be 100644 --- a/src/menu.py +++ b/src/menu.py @@ -548,6 +548,9 @@ class InterfaceSettings(CenteredWidget): class AudioSettings(CenteredWidget): + """ + Audio calls settings form + """ def __init__(self): super(AudioSettings, self).__init__() @@ -601,6 +604,9 @@ class AudioSettings(CenteredWidget): class PluginsSettings(CenteredWidget): + """ + Plugins settings form + """ def __init__(self): super(PluginsSettings, self).__init__() diff --git a/src/profile.py b/src/profile.py index 3074f85..8a71797 100644 --- a/src/profile.py +++ b/src/profile.py @@ -506,6 +506,7 @@ class Profile(Contact, Singleton): """ Friend with specified number quit """ + # TODO: fix self.get_friend_by_number(friend_number).status = None self.friend_typing(friend_number, False) if friend_number in self._call: diff --git a/src/translations/en_GB.ts b/src/translations/en_GB.ts index 87c2b31..50ae041 100644 --- a/src/translations/en_GB.ts +++ b/src/translations/en_GB.ts @@ -3,50 +3,63 @@ AddContact - + Add contact Add contact - + TOX ID: TOX ID: - + Message: Message: + + + TOX ID or public key of contact + + + + + Callback + + + File from + + Form - + Send request Send request - + IPv6 IPv6 - + UDP UDP - + Proxy Proxy - + IP: IP: - + Port: Port: @@ -56,12 +69,12 @@ Online contacts - + HTTP HTTP - + WARNING: using proxy with enabled UDP can produce IP leak @@ -71,103 +84,103 @@ can produce IP leak MainWindow - + Profile - + Settings - + About - + Add contact - + Privacy - + Interface - + Notifications - + Network - + About program - + User {} wants to add you to contact list. Message: {} - + Friend request - + Choose file Choose file - + Disallow auto accept - + Allow auto accept - + Set alias - + Clear history - + Copy public key - + Remove friend - + Enter new alias for friend {} or leave empty to use friend's name: Enter new alias for friend {} or leave empty to use friend's name: - + Audio Audio @@ -177,82 +190,137 @@ can produce IP leak Find contact - + Friend added Friend added - + Toxygen is Tox client written on Python. Version: Toxygen is Tox client written on Python. Version: - + Friend added without sending friend request Friend added without sending friend request - + Choose folder Choose folder - + Send screenshot Send screenshot - + Send file Send file - + Send message Send message - + Start audio call with friend Start audio call with friend - + Plugins - + List of plugins - + Search - + All - + Online + + + Notes + + + + + Notes about user + + + + + Copy link location + + + + + Copy + + + + + Select all + + + + + Delete + + + + + Paste + + + + + Cut + + + + + Undo + + + + + Redo + + + + + Save + + NetworkSettings - + Network settings Network settings - + Restart TOX core Restart Tox core @@ -260,12 +328,12 @@ Version: PluginWindow - + List of commands for plugin {} - + No commands available @@ -273,125 +341,130 @@ Version: PluginsForm - + Plugins - + Open selected plugin - + No GUI found for this plugin - + No description available - + Disable plugin - + Enable plugin + + + No plugins found + + ProfileSettingsForm - + Export profile - + Profile settings - + Name: - + Status: - + TOX ID: - + Copy TOX ID - + New avatar - + Reset avatar - + New NoSpam New NoSpam - + Profile password - + Password (at least 8 symbols) - + Confirm password - + Set password - + Passwords do not match - + Leaving blank will reset current password - + There is no way to recover lost passwords - + Password must be at least 8 symbols - + Choose avatar @@ -399,17 +472,17 @@ Version: audioSettingsForm - + Audio settings Audio settings - + Input device: Input device: - + Output device: Output device: @@ -417,12 +490,12 @@ Version: incoming_call - + Incoming video call Incoming video call - + Incoming audio call Incoming audio call @@ -430,17 +503,17 @@ Version: interfaceForm - + Interface settings - + Theme: - + Language: @@ -496,22 +569,22 @@ Version: notificationsForm - + Notification settings - + Enable notifications - + Enable call's sound - + Enable sound notifications @@ -519,77 +592,77 @@ Version: privacySettings - + Privacy settings - + Save chat history - + Allow file auto accept - + Send typing notifications - + Auto accept default path: - + Change - + Allow inlines - + Chat history - + History will be cleaned! Continue? - + Blocked users: Blocked users: - + Unblock Unblock - + Block user Block user - + Add to friend list Add to friend list - + Do you want to add this user to friend list? Do you want to add this user to friend list? - + Block by TOX ID: Block by TOX ID: diff --git a/src/translations/fr_FR.ts b/src/translations/fr_FR.ts index 5755033..4824ecf 100644 --- a/src/translations/fr_FR.ts +++ b/src/translations/fr_FR.ts @@ -3,50 +3,63 @@ AddContact - + Add contact Rajouter un contact - + TOX ID: ID TOX : - + Message: Message : + + + TOX ID or public key of contact + + + + + Callback + + + File from + + Form - + Send request Envoyer une demande - + IPv6 IPv6 - + UDP UDP - + Proxy Proxy - + IP: IP : - + Port: Port : @@ -56,12 +69,12 @@ Contacts connectés - + HTTP HTTP - + WARNING: using proxy with enabled UDP can produce IP leak @@ -71,58 +84,58 @@ can produce IP leak MainWindow - + Profile Profile - + Settings Paramêtres - + About À Propos - + Add contact Rajouter un contact - + Privacy Confidentialité - + Interface Interface - + Notifications Notifications - + Network Réseau - + About program À propos du programme - + User {} wants to add you to contact list. Message: {} L'Utilisateur {} veut vout rajouter à sa liste de contacts. Message : {} - + Friend request Demande d'amis @@ -132,47 +145,47 @@ can produce IP leak Toxygen est un client Tox écris en Python 2.7. Version : - + Choose file Choisir un fichier - + Disallow auto accept Désactiver l'auto-réception - + Allow auto accept Activer l'auto-réception - + Set alias Définir un alias - + Clear history Vider l'historique - + Copy public key Copier la clé publique - + Remove friend Retirer un ami - + Enter new alias for friend {} or leave empty to use friend's name: Entrez un nouvel alias pour l'ami {} ou laissez vide pour garder son nom de base : - + Audio Audio @@ -182,82 +195,137 @@ can produce IP leak Trouver le contact - + Friend added Ami rajouté - + Toxygen is Tox client written on Python. Version: Toxygen est un client Tox écrit en Python. Version : - + Friend added without sending friend request Ami rajouté sans avoir envoyé de demande - + Choose folder Choisir le dossier - + Send screenshot Envoyer une capture d'écran - + Send file Envoyer le fichier - + Send message Envoyer le message - + Start audio call with friend Lancer un appel audio avec un ami - + Plugins - + List of plugins - + Search - + All - + Online + + + Notes + + + + + Notes about user + + + + + Copy link location + + + + + Copy + + + + + Select all + + + + + Delete + + + + + Paste + + + + + Cut + + + + + Undo + + + + + Redo + + + + + Save + + NetworkSettings - + Network settings Paramètres réseaux - + Restart TOX core Relancer le noyau TOX @@ -265,12 +333,12 @@ Version : PluginWindow - + List of commands for plugin {} - + No commands available @@ -278,125 +346,130 @@ Version : PluginsForm - + Plugins - + Open selected plugin - + No GUI found for this plugin - + No description available - + Disable plugin - + Enable plugin + + + No plugins found + + ProfileSettingsForm - + Export profile Exporter le profile - + Profile settings Paramêtres du profil - + Name: Nom : - + Status: Status : - + TOX ID: ID TOX : - + Copy TOX ID Copier l'ID TOX - + New avatar Nouvel avatar - + Reset avatar Réinitialiser l'avatar - + New NoSpam Nouveau NoSpam - + Profile password - + Password (at least 8 symbols) - + Confirm password - + Set password - + Passwords do not match - + Leaving blank will reset current password - + There is no way to recover lost passwords - + Password must be at least 8 symbols - + Choose avatar @@ -404,17 +477,17 @@ Version : audioSettingsForm - + Audio settings Paramètres audio - + Input device: Péripherique d'entrée : - + Output device: Péripherique de sortie : @@ -422,12 +495,12 @@ Version : incoming_call - + Incoming video call Appel vidéo entrant - + Incoming audio call Appel audio entrant @@ -435,17 +508,17 @@ Version : interfaceForm - + Interface settings Paramêtres de l'interface - + Theme: Thème : - + Language: Langue : @@ -501,22 +574,22 @@ Version : notificationsForm - + Notification settings Paramêtres de notification - + Enable notifications Activer les notifications - + Enable call's sound Activer les sons d'appel - + Enable sound notifications Activer les sons de notifications @@ -524,77 +597,77 @@ Version : privacySettings - + Privacy settings Paramêtres de confidentialité - + Save chat history Sauvegarder l'historique de chat - + Allow file auto accept Autoriser les fichier automatiquement - + Send typing notifications Notifier la frappe - + Auto accept default path: Chemin d'accès des fichiers acceptés automatiquement : - + Change Modifier - + Allow inlines Activer l'auto-réception - + Chat history Historique de chat - + History will be cleaned! Continue? L'Historique va être nettoyé ! Confirmer ? - + Blocked users: Utilisateurs bloqués : - + Unblock Débloquer - + Block user Bloquer l'utilisateur - + Add to friend list Ajouter à la liste des amis - + Do you want to add this user to friend list? Voulez vous rajouter cet utilisateur à votre liste d'amis ? - + Block by TOX ID: Bloquer l'ID TOX : diff --git a/src/translations/ru_RU.qm b/src/translations/ru_RU.qm index dffe08c..bf98ef1 100644 Binary files a/src/translations/ru_RU.qm and b/src/translations/ru_RU.qm differ diff --git a/src/translations/ru_RU.ts b/src/translations/ru_RU.ts index 83723b0..d6a8cd3 100644 --- a/src/translations/ru_RU.ts +++ b/src/translations/ru_RU.ts @@ -4,50 +4,63 @@ AddContact - + Add contact Добавить контакт - + TOX ID: TOX ID: - + Message: Сообщение: + + + TOX ID or public key of contact + TOX ID или публичный ключ контакта + + + + Callback + + + File from + Файл от + Form - + Send request Отправить запрос - + IPv6 IPv6 - + UDP UDP - + Proxy Прокси - + IP: IP: - + Port: Порт: @@ -57,16 +70,16 @@ Контакты в сети - + HTTP HTTP - + WARNING: using proxy with enabled UDP can produce IP leak - Предупреждение: + Предупреждение: использование прокси с UDP может привести к утечке IP @@ -74,104 +87,104 @@ can produce IP leak MainWindow - + Profile Профиль - + Settings Настройки - + About О программе - + Add contact Добавить контакт - + Privacy Приватность - + Interface Интерфейс - + Notifications Уведомления - + Network Сеть - + About program О программе - + User {} wants to add you to contact list. Message: {} Пользователь {} хочет добавить Вас в список контактов. Сообщение: {} - + Friend request Запрос на добавление в друзья - + Choose file Выберите файл - + Disallow auto accept Запретить автоматическое получение файлов - + Allow auto accept Разрешить автоматическое получение файлов - + Set alias Изменить псевдоним - + Clear history Очистить историю - + Copy public key Копировать публичный ключ - + Remove friend Удалить друга - + Enter new alias for friend {} or leave empty to use friend's name: Введите новый псевдоним для друга {} или оставьте пустым для использования его имени: - + Audio Аудио @@ -181,81 +194,136 @@ can produce IP leak Найти контакт - + Friend added Друг добавлен - + Toxygen is Tox client written on Python. Version: Toxygen - клиент для мессенджера Tox, написанный на Python. Версия: - + Friend added without sending friend request Друг добавлен без отправки запроса на добавление в друзья - + Choose folder Выбрать папку - + Send screenshot Отправить снимок экрана - + Send file Отправить файл - + Send message Отправить сообщение - + Start audio call with friend Начать аудиозвонок с другом - + Plugins Плагины - + List of plugins Список плагинов - + Search Поиск - + All Все - + Online Онлайн + + + Notes + Заметки + + + + Notes about user + Заметки о пользователе + + + + Copy link location + Копировать адрес ссылки + + + + Copy + Копировать + + + + Select all + Выделить всё + + + + Delete + Удалить + + + + Paste + Вставить + + + + Cut + Вырезать + + + + Undo + Отменить + + + + Redo + Повторить + + + + Save + Сохранить + NetworkSettings - + Network settings Настройки сети - + Restart TOX core Перезапустить ядро TOX @@ -263,12 +331,12 @@ Version: PluginWindow - + List of commands for plugin {} Список команд для плагина {} - + No commands available Команды не найдены @@ -276,65 +344,70 @@ Version: PluginsForm - + Plugins Плагины - + Open selected plugin Открыть выбранный плагин - + No GUI found for this plugin GUI для данного плагина не найден - + No description available Описание недоступно - + Disable plugin Отключить плагин - + Enable plugin Включить плагин + + + No plugins found + Плагины не найдены + ProfileSettingsForm - + Export profile Экспорт профиля - + Profile settings Настройки профиля - + Name: Имя: - + Status: Статус: - + TOX ID: TOX ID: - + Copy TOX ID Копировать TOX ID @@ -344,62 +417,62 @@ Version: Язык: - + New avatar Новый аватар - + Reset avatar Сбросить аватар - + New NoSpam Новый NoSpam - + Profile password Пароль профиля - + Password (at least 8 symbols) Пароль (минимум 8 символов) - + Confirm password Подтверждение пароля - + Set password Изменить пароль - + Passwords do not match Пароли не совпадают - + Leaving blank will reset current password Пустое поле сбросит текущий пароль - + There is no way to recover lost passwords Восстановление забытых паролей не поддерживается - + Password must be at least 8 symbols Пароль должен быть длиной не менее 8 символов - + Choose avatar Выбрать аватар @@ -407,17 +480,17 @@ Version: audioSettingsForm - + Audio settings Настройки аудио - + Input device: Устройство ввода: - + Output device: Устройство вывода: @@ -425,12 +498,12 @@ Version: incoming_call - + Incoming video call Входящий видеозвонок - + Incoming audio call Входящий аудиозвонок @@ -438,17 +511,17 @@ Version: interfaceForm - + Interface settings Настройки интерфейса - + Theme: Тема: - + Language: Язык: @@ -504,22 +577,22 @@ Version: notificationsForm - + Notification settings Настройки уведомлений - + Enable notifications Включить уведомления - + Enable call's sound Включить звук звонка - + Enable sound notifications Включить звуковые уведомления @@ -528,77 +601,77 @@ Version: privacySettings - + Privacy settings Настройки приватности - + Save chat history Сохранять историю переписки - + Allow file auto accept Разрешить автополучение файлов - + Send typing notifications Посылать уведомления о наборе текста - + Auto accept default path: Путь автоприема файлов: - + Change Изменить - + Allow inlines Разрешать инлайны - + Chat history История чата - + History will be cleaned! Continue? История переписки будет очищена! Продолжить? - + Blocked users: Заблокированные пользователи: - + Unblock Разблокировать - + Block user Заблокировать пользователя - + Add to friend list Добавить в список друзей - + Do you want to add this user to friend list? Добавить этого пользователя в список друзей? - + Block by TOX ID: Блокировать по TOX ID: diff --git a/src/widgets.py b/src/widgets.py index 51121fc..3fdccf3 100644 --- a/src/widgets.py +++ b/src/widgets.py @@ -5,6 +5,9 @@ except ImportError: class DataLabel(QtGui.QLabel): + """ + Label with elided text + """ def paintEvent(self, event): painter = QtGui.QPainter(self) @@ -27,6 +30,9 @@ class CenteredWidget(QtGui.QWidget): class QRightClickButton(QtGui.QPushButton): + """ + Button with right click support + """ def __init__(self, parent): super(QRightClickButton, self).__init__(parent) @@ -56,10 +62,13 @@ class RubberBand(QtGui.QRubberBand): def create_menu(menu): + """ + :return translated menu + """ for action in menu.actions(): text = action.text() if 'Link Location' in text: - text = text.replace('Copy Link Location', + text = text.replace('Copy &Link Location', QtGui.QApplication.translate("MainWindow", "Copy link location", None, QtGui.QApplication.UnicodeUTF8)) elif '&Copy' in text: