welcome screen

This commit is contained in:
ingvar1995 2016-07-04 23:30:45 +03:00
parent 326ebc155c
commit 27cf1a7348
8 changed files with 373 additions and 130 deletions

View File

@ -16,6 +16,8 @@ class MainWindow(QtGui.QMainWindow):
self.tray = tray
self.setAcceptDrops(True)
self.initUI(tox)
if settings.Settings.get_instance()['show_welcome_screen']:
self.ws = WelcomeScreen()
def setup_menu(self, MainWindow):
self.menubar = QtGui.QMenuBar(MainWindow)

View File

@ -2,7 +2,7 @@ try:
from PySide import QtCore, QtGui
except ImportError:
from PyQt4 import QtCore, QtGui
from widgets import RubberBand, create_menu, QRightClickButton
from widgets import RubberBand, create_menu, QRightClickButton, CenteredWidget
from profile import Profile
import smileys
import util
@ -312,3 +312,67 @@ class StickerWindow(QtGui.QWidget):
self.close()
class WelcomeScreen(CenteredWidget):
def __init__(self):
super().__init__()
self.setMaximumSize(250, 200)
self.setMinimumSize(250, 200)
self.center()
self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
self.text = QtGui.QTextBrowser(self)
self.text.setGeometry(QtCore.QRect(0, 0, 250, 170))
self.text.setOpenExternalLinks(True)
self.checkbox = QtGui.QCheckBox(self)
self.checkbox.setGeometry(QtCore.QRect(5, 170, 240, 30))
self.checkbox.setText(QtGui.QApplication.translate('WelcomeScreen', "Don't show again",
None, QtGui.QApplication.UnicodeUTF8))
self.setWindowTitle(QtGui.QApplication.translate('WelcomeScreen', 'Tip of the day',
None, QtGui.QApplication.UnicodeUTF8))
import random
num = random.randint(0, 8)
if num == 0:
text = QtGui.QApplication.translate('WelcomeScreen', 'Press Esc if you want hide app to tray.',
None, QtGui.QApplication.UnicodeUTF8)
elif num == 1:
text = QtGui.QApplication.translate('WelcomeScreen',
'Right click on screenshot button hides app to tray during screenshot.',
None, QtGui.QApplication.UnicodeUTF8)
elif num == 2:
text = QtGui.QApplication.translate('WelcomeScreen',
'You can use Tox over Tor. For more info read <a href="https://wiki.tox.chat/users/tox_over_tor_tot">this post</a>',
None, QtGui.QApplication.UnicodeUTF8)
elif num == 3:
text = QtGui.QApplication.translate('WelcomeScreen',
'Use Settings -> Interface to customize interface.',
None, QtGui.QApplication.UnicodeUTF8)
elif num == 4:
text = QtGui.QApplication.translate('WelcomeScreen',
'Set profile password via Profile -> Settings. Password allows Toxygen encrypt your history and settings.',
None, QtGui.QApplication.UnicodeUTF8)
elif num == 5:
text = QtGui.QApplication.translate('WelcomeScreen',
'Since v0.1.3 Toxygen supports plugins. <a href="https://github.com/xveduk/toxygen/blob/master/docs/plugins.md">Read more</a>',
None, QtGui.QApplication.UnicodeUTF8)
elif num == 6:
text = QtGui.QApplication.translate('WelcomeScreen',
'New in Toxygen v0.2.2:<br>Users can lock application using profile password.<br>Compact contact list support<br>Bug fixes<br>Tox DNS improvements',
None, QtGui.QApplication.UnicodeUTF8)
elif num == 7:
text = QtGui.QApplication.translate('WelcomeScreen',
'Toxygen supports faux offline messages and file transfers. Send message or file to offline friend and he will get it later.',
None, QtGui.QApplication.UnicodeUTF8)
else:
text = QtGui.QApplication.translate('WelcomeScreen',
'Set new NoSpam to avoid spam friend requests: Profile -> Settings -> Set new NoSpam.',
None, QtGui.QApplication.UnicodeUTF8)
self.text.setHtml(text)
self.checkbox.stateChanged.connect(self.not_show)
QtCore.QTimer.singleShot(1000, self.show)
def not_show(self):
import settings
s = settings.Settings.get_instance()
s['show_welcome_screen'] = False
s.save()

View File

@ -229,6 +229,7 @@ class Profile(contact.Contact, Singleton):
self._screen.account_avatar.setScaledContents(False)
self._screen.account_avatar.setPixmap(pixmap.scaled(64, 64, QtCore.Qt.KeepAspectRatio))
self._screen.account_avatar.repaint() # comment?
self.update_filtration()
except Exception as ex: # no friend found. ignore
log('Friend value: ' + str(value))
log('Error: ' + str(ex))
@ -778,6 +779,7 @@ class Profile(contact.Contact, Singleton):
self.status = None
for friend in self._friends:
friend.status = None
self.update_filtration()
def close(self):
if hasattr(self, '_call'):

View File

@ -125,7 +125,8 @@ class Settings(dict, Singleton):
'message_font_size': 14,
'unread_color': 'red',
'save_unsent_only': False,
'compact_mode': False
'compact_mode': False,
'show_welcome_screen': True
}
@staticmethod

View File

@ -84,103 +84,103 @@ can produce IP leak</source>
<context>
<name>MainWindow</name>
<message>
<location filename="mainscreen.py" line="99"/>
<location filename="mainscreen.py" line="102"/>
<source>Profile</source>
<translation></translation>
</message>
<message>
<location filename="mainscreen.py" line="105"/>
<location filename="mainscreen.py" line="108"/>
<source>Settings</source>
<translation></translation>
</message>
<message>
<location filename="mainscreen.py" line="357"/>
<location filename="mainscreen.py" line="360"/>
<source>About</source>
<translation></translation>
</message>
<message>
<location filename="mainscreen.py" line="98"/>
<location filename="mainscreen.py" line="101"/>
<source>Add contact</source>
<translation></translation>
</message>
<message>
<location filename="mainscreen.py" line="100"/>
<location filename="mainscreen.py" line="103"/>
<source>Privacy</source>
<translation></translation>
</message>
<message>
<location filename="mainscreen.py" line="101"/>
<location filename="mainscreen.py" line="104"/>
<source>Interface</source>
<translation></translation>
</message>
<message>
<location filename="mainscreen.py" line="102"/>
<location filename="mainscreen.py" line="105"/>
<source>Notifications</source>
<translation></translation>
</message>
<message>
<location filename="mainscreen.py" line="103"/>
<location filename="mainscreen.py" line="106"/>
<source>Network</source>
<translation></translation>
</message>
<message>
<location filename="mainscreen.py" line="104"/>
<location filename="mainscreen.py" line="107"/>
<source>About program</source>
<translation></translation>
</message>
<message>
<location filename="profile.py" line="752"/>
<location filename="profile.py" line="753"/>
<source>User {} wants to add you to contact list. Message:
{}</source>
<translation></translation>
</message>
<message>
<location filename="profile.py" line="754"/>
<location filename="profile.py" line="755"/>
<source>Friend request</source>
<translation></translation>
</message>
<message>
<location filename="mainscreen.py" line="428"/>
<location filename="mainscreen.py" line="431"/>
<source>Choose file</source>
<translation>Choose file</translation>
</message>
<message>
<location filename="mainscreen.py" line="491"/>
<location filename="mainscreen.py" line="494"/>
<source>Disallow auto accept</source>
<translation></translation>
</message>
<message>
<location filename="mainscreen.py" line="492"/>
<location filename="mainscreen.py" line="495"/>
<source>Allow auto accept</source>
<translation></translation>
</message>
<message>
<location filename="mainscreen.py" line="494"/>
<location filename="mainscreen.py" line="497"/>
<source>Set alias</source>
<translation></translation>
</message>
<message>
<location filename="mainscreen.py" line="495"/>
<location filename="mainscreen.py" line="498"/>
<source>Clear history</source>
<translation></translation>
</message>
<message>
<location filename="mainscreen.py" line="496"/>
<location filename="mainscreen.py" line="499"/>
<source>Copy public key</source>
<translation></translation>
</message>
<message>
<location filename="mainscreen.py" line="498"/>
<location filename="mainscreen.py" line="501"/>
<source>Remove friend</source>
<translation></translation>
</message>
<message>
<location filename="profile.py" line="591"/>
<location filename="profile.py" line="592"/>
<source>Enter new alias for friend {} or leave empty to use friend&apos;s name:</source>
<translation>Enter new alias for friend {} or leave empty to use friend&apos;s name:</translation>
</message>
<message>
<location filename="mainscreen.py" line="106"/>
<location filename="mainscreen.py" line="109"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
@ -190,19 +190,19 @@ can produce IP leak</source>
<translation type="obsolete">Find contact</translation>
</message>
<message>
<location filename="profile.py" line="724"/>
<location filename="profile.py" line="725"/>
<source>Friend added</source>
<translation>Friend added</translation>
</message>
<message>
<location filename="mainscreen.py" line="358"/>
<location filename="mainscreen.py" line="361"/>
<source>Toxygen is Tox client written on Python.
Version: </source>
<translation>Toxygen is Tox client written on Python.
Version:</translation>
</message>
<message>
<location filename="profile.py" line="725"/>
<location filename="profile.py" line="726"/>
<source>Friend added without sending friend request</source>
<translation>Friend added without sending friend request</translation>
</message>
@ -222,47 +222,47 @@ Version:</translation>
<translation type="obsolete">Send file</translation>
</message>
<message>
<location filename="mainscreen.py" line="108"/>
<location filename="mainscreen.py" line="111"/>
<source>Send message</source>
<translation>Send message</translation>
</message>
<message>
<location filename="mainscreen.py" line="109"/>
<location filename="mainscreen.py" line="112"/>
<source>Start audio call with friend</source>
<translation>Start audio call with friend</translation>
</message>
<message>
<location filename="mainscreen.py" line="503"/>
<location filename="mainscreen.py" line="506"/>
<source>Plugins</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen.py" line="94"/>
<location filename="mainscreen.py" line="97"/>
<source>List of plugins</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen.py" line="107"/>
<location filename="mainscreen.py" line="110"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen.py" line="111"/>
<location filename="mainscreen.py" line="114"/>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen.py" line="112"/>
<location filename="mainscreen.py" line="115"/>
<source>Online</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen.py" line="499"/>
<location filename="mainscreen.py" line="502"/>
<source>Notes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen.py" line="519"/>
<location filename="mainscreen.py" line="522"/>
<source>Notes about user</source>
<translation type="unfinished"></translation>
</message>
@ -312,7 +312,7 @@ Version:</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="profile.py" line="258"/>
<location filename="profile.py" line="259"/>
<source>User {} is now known as {}</source>
<translation type="unfinished"></translation>
</message>
@ -322,17 +322,17 @@ Version:</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen.py" line="92"/>
<location filename="mainscreen.py" line="95"/>
<source>Lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen.py" line="401"/>
<location filename="mainscreen.py" line="404"/>
<source>Cannot lock app</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen.py" line="404"/>
<location filename="mainscreen.py" line="407"/>
<source>Error. Profile password is not set.</source>
<translation type="unfinished"></translation>
</message>
@ -572,6 +572,64 @@ Version:</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WelcomeScreen</name>
<message>
<location filename="mainscreen_widgets.py" line="331"/>
<source>Don&apos;t show again</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="333"/>
<source>Tip of the day</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="339"/>
<source>Press Esc if you want hide app to tray.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="343"/>
<source>Right click on screenshot button hides app to tray during screenshot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="347"/>
<source>You can use Tox over Tor. For more info read &lt;a href=&quot;https://wiki.tox.chat/users/tox_over_tor_tot&quot;&gt;this post&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="351"/>
<source>Use Settings -&gt; Interface to customize interface</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="355"/>
<source>Set profile password via Profile -&gt; Settings. Password allows Toxygen encrypt your history and settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="359"/>
<source>Since v0.1.3 Toxygen supports plugins. &lt;a href=&quot;https://github.com/xveduk/toxygen/blob/master/docs/plugins.md&quot;&gt;Read more&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="363"/>
<source>New in Toxygen v0.2.2:&lt;br&gt;Users can lock application using profile password.&lt;br&gt;Compact contact list support&lt;br&gt;Bug fixes&lt;br&gt;Tox DNS improvements</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="367"/>
<source>Toxygen supports faux offline messages and file transfers. Send message or file to offline friend and he will get it later</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="371"/>
<source>Set new NoSpam to avoid spam friend requests: Profile -&gt; Settings -&gt; Set new NoSpam</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>audioSettingsForm</name>
<message>
@ -593,32 +651,32 @@ Version:</translation>
<context>
<name>incoming_call</name>
<message>
<location filename="profile.py" line="1130"/>
<location filename="profile.py" line="1132"/>
<source>Incoming video call</source>
<translation>Incoming video call</translation>
</message>
<message>
<location filename="profile.py" line="1133"/>
<location filename="profile.py" line="1135"/>
<source>Incoming audio call</source>
<translation>Incoming audio call</translation>
</message>
<message>
<location filename="profile.py" line="1113"/>
<location filename="profile.py" line="1115"/>
<source>Outgoing video call</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="profile.py" line="1116"/>
<location filename="profile.py" line="1118"/>
<source>Outgoing audio call</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="profile.py" line="1162"/>
<location filename="profile.py" line="1164"/>
<source>Call declined</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="profile.py" line="1164"/>
<location filename="profile.py" line="1166"/>
<source>Call finished</source>
<translation type="unfinished"></translation>
</message>

View File

@ -84,58 +84,58 @@ can produce IP leak</source>
<context>
<name>MainWindow</name>
<message>
<location filename="mainscreen.py" line="99"/>
<location filename="mainscreen.py" line="102"/>
<source>Profile</source>
<translation>Profile</translation>
</message>
<message>
<location filename="mainscreen.py" line="105"/>
<location filename="mainscreen.py" line="108"/>
<source>Settings</source>
<translation>Paramêtres</translation>
</message>
<message>
<location filename="mainscreen.py" line="357"/>
<location filename="mainscreen.py" line="360"/>
<source>About</source>
<translation>À Propos</translation>
</message>
<message>
<location filename="mainscreen.py" line="98"/>
<location filename="mainscreen.py" line="101"/>
<source>Add contact</source>
<translation>Rajouter un contact</translation>
</message>
<message>
<location filename="mainscreen.py" line="100"/>
<location filename="mainscreen.py" line="103"/>
<source>Privacy</source>
<translation>Confidentialité</translation>
</message>
<message>
<location filename="mainscreen.py" line="101"/>
<location filename="mainscreen.py" line="104"/>
<source>Interface</source>
<translation>Interface</translation>
</message>
<message>
<location filename="mainscreen.py" line="102"/>
<location filename="mainscreen.py" line="105"/>
<source>Notifications</source>
<translation>Notifications</translation>
</message>
<message>
<location filename="mainscreen.py" line="103"/>
<location filename="mainscreen.py" line="106"/>
<source>Network</source>
<translation>Réseau</translation>
</message>
<message>
<location filename="mainscreen.py" line="104"/>
<location filename="mainscreen.py" line="107"/>
<source>About program</source>
<translation>À propos du programme</translation>
</message>
<message>
<location filename="profile.py" line="752"/>
<location filename="profile.py" line="753"/>
<source>User {} wants to add you to contact list. Message:
{}</source>
<translation>L&apos;Utilisateur {} veut vout rajouter à sa liste de contacts. Message : {}</translation>
</message>
<message>
<location filename="profile.py" line="754"/>
<location filename="profile.py" line="755"/>
<source>Friend request</source>
<translation>Demande d&apos;amis</translation>
</message>
@ -145,47 +145,47 @@ can produce IP leak</source>
<translation type="obsolete">Toxygen est un client Tox écris en Python 2.7. Version : </translation>
</message>
<message>
<location filename="mainscreen.py" line="428"/>
<location filename="mainscreen.py" line="431"/>
<source>Choose file</source>
<translation>Choisir un fichier</translation>
</message>
<message>
<location filename="mainscreen.py" line="491"/>
<location filename="mainscreen.py" line="494"/>
<source>Disallow auto accept</source>
<translation>Désactiver l&apos;auto-réception</translation>
</message>
<message>
<location filename="mainscreen.py" line="492"/>
<location filename="mainscreen.py" line="495"/>
<source>Allow auto accept</source>
<translation>Activer l&apos;auto-réception</translation>
</message>
<message>
<location filename="mainscreen.py" line="494"/>
<location filename="mainscreen.py" line="497"/>
<source>Set alias</source>
<translation>Définir un alias</translation>
</message>
<message>
<location filename="mainscreen.py" line="495"/>
<location filename="mainscreen.py" line="498"/>
<source>Clear history</source>
<translation>Vider l&apos;historique</translation>
</message>
<message>
<location filename="mainscreen.py" line="496"/>
<location filename="mainscreen.py" line="499"/>
<source>Copy public key</source>
<translation>Copier la clé publique</translation>
</message>
<message>
<location filename="mainscreen.py" line="498"/>
<location filename="mainscreen.py" line="501"/>
<source>Remove friend</source>
<translation>Retirer un ami</translation>
</message>
<message>
<location filename="profile.py" line="591"/>
<location filename="profile.py" line="592"/>
<source>Enter new alias for friend {} or leave empty to use friend&apos;s name:</source>
<translation>Entrez un nouvel alias pour l&apos;ami {} ou laissez vide pour garder son nom de base :</translation>
</message>
<message>
<location filename="mainscreen.py" line="106"/>
<location filename="mainscreen.py" line="109"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
@ -195,19 +195,19 @@ can produce IP leak</source>
<translation type="obsolete">Trouver le contact</translation>
</message>
<message>
<location filename="profile.py" line="724"/>
<location filename="profile.py" line="725"/>
<source>Friend added</source>
<translation>Ami rajouté</translation>
</message>
<message>
<location filename="mainscreen.py" line="358"/>
<location filename="mainscreen.py" line="361"/>
<source>Toxygen is Tox client written on Python.
Version: </source>
<translation>Toxygen est un client Tox écrit en Python.
Version :</translation>
</message>
<message>
<location filename="profile.py" line="725"/>
<location filename="profile.py" line="726"/>
<source>Friend added without sending friend request</source>
<translation>Ami rajouté sans avoir envoyé de demande</translation>
</message>
@ -227,47 +227,47 @@ Version :</translation>
<translation type="obsolete">Envoyer le fichier</translation>
</message>
<message>
<location filename="mainscreen.py" line="108"/>
<location filename="mainscreen.py" line="111"/>
<source>Send message</source>
<translation>Envoyer le message</translation>
</message>
<message>
<location filename="mainscreen.py" line="109"/>
<location filename="mainscreen.py" line="112"/>
<source>Start audio call with friend</source>
<translation>Lancer un appel audio avec un ami</translation>
</message>
<message>
<location filename="mainscreen.py" line="503"/>
<location filename="mainscreen.py" line="506"/>
<source>Plugins</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen.py" line="94"/>
<location filename="mainscreen.py" line="97"/>
<source>List of plugins</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen.py" line="107"/>
<location filename="mainscreen.py" line="110"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen.py" line="111"/>
<location filename="mainscreen.py" line="114"/>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen.py" line="112"/>
<location filename="mainscreen.py" line="115"/>
<source>Online</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen.py" line="499"/>
<location filename="mainscreen.py" line="502"/>
<source>Notes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen.py" line="519"/>
<location filename="mainscreen.py" line="522"/>
<source>Notes about user</source>
<translation type="unfinished"></translation>
</message>
@ -317,7 +317,7 @@ Version :</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="profile.py" line="258"/>
<location filename="profile.py" line="259"/>
<source>User {} is now known as {}</source>
<translation type="unfinished"></translation>
</message>
@ -327,17 +327,17 @@ Version :</translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen.py" line="92"/>
<location filename="mainscreen.py" line="95"/>
<source>Lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen.py" line="401"/>
<location filename="mainscreen.py" line="404"/>
<source>Cannot lock app</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen.py" line="404"/>
<location filename="mainscreen.py" line="407"/>
<source>Error. Profile password is not set.</source>
<translation type="unfinished"></translation>
</message>
@ -577,6 +577,64 @@ Version :</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WelcomeScreen</name>
<message>
<location filename="mainscreen_widgets.py" line="331"/>
<source>Don&apos;t show again</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="333"/>
<source>Tip of the day</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="339"/>
<source>Press Esc if you want hide app to tray.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="343"/>
<source>Right click on screenshot button hides app to tray during screenshot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="347"/>
<source>You can use Tox over Tor. For more info read &lt;a href=&quot;https://wiki.tox.chat/users/tox_over_tor_tot&quot;&gt;this post&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="351"/>
<source>Use Settings -&gt; Interface to customize interface</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="355"/>
<source>Set profile password via Profile -&gt; Settings. Password allows Toxygen encrypt your history and settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="359"/>
<source>Since v0.1.3 Toxygen supports plugins. &lt;a href=&quot;https://github.com/xveduk/toxygen/blob/master/docs/plugins.md&quot;&gt;Read more&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="363"/>
<source>New in Toxygen v0.2.2:&lt;br&gt;Users can lock application using profile password.&lt;br&gt;Compact contact list support&lt;br&gt;Bug fixes&lt;br&gt;Tox DNS improvements</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="367"/>
<source>Toxygen supports faux offline messages and file transfers. Send message or file to offline friend and he will get it later</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="371"/>
<source>Set new NoSpam to avoid spam friend requests: Profile -&gt; Settings -&gt; Set new NoSpam</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>audioSettingsForm</name>
<message>
@ -598,32 +656,32 @@ Version :</translation>
<context>
<name>incoming_call</name>
<message>
<location filename="profile.py" line="1130"/>
<location filename="profile.py" line="1132"/>
<source>Incoming video call</source>
<translation>Appel vidéo entrant</translation>
</message>
<message>
<location filename="profile.py" line="1133"/>
<location filename="profile.py" line="1135"/>
<source>Incoming audio call</source>
<translation>Appel audio entrant</translation>
</message>
<message>
<location filename="profile.py" line="1113"/>
<location filename="profile.py" line="1115"/>
<source>Outgoing video call</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="profile.py" line="1116"/>
<location filename="profile.py" line="1118"/>
<source>Outgoing audio call</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="profile.py" line="1162"/>
<location filename="profile.py" line="1164"/>
<source>Call declined</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="profile.py" line="1164"/>
<location filename="profile.py" line="1166"/>
<source>Call finished</source>
<translation type="unfinished"></translation>
</message>

Binary file not shown.

View File

@ -87,104 +87,104 @@ can produce IP leak</source>
<context>
<name>MainWindow</name>
<message>
<location filename="mainscreen.py" line="99"/>
<location filename="mainscreen.py" line="102"/>
<source>Profile</source>
<translation>Профиль</translation>
</message>
<message>
<location filename="mainscreen.py" line="105"/>
<location filename="mainscreen.py" line="108"/>
<source>Settings</source>
<translation>Настройки</translation>
</message>
<message>
<location filename="mainscreen.py" line="357"/>
<location filename="mainscreen.py" line="360"/>
<source>About</source>
<translation>О программе</translation>
</message>
<message>
<location filename="mainscreen.py" line="98"/>
<location filename="mainscreen.py" line="101"/>
<source>Add contact</source>
<translation>Добавить контакт</translation>
</message>
<message>
<location filename="mainscreen.py" line="100"/>
<location filename="mainscreen.py" line="103"/>
<source>Privacy</source>
<translation>Приватность</translation>
</message>
<message>
<location filename="mainscreen.py" line="101"/>
<location filename="mainscreen.py" line="104"/>
<source>Interface</source>
<translation>Интерфейс</translation>
</message>
<message>
<location filename="mainscreen.py" line="102"/>
<location filename="mainscreen.py" line="105"/>
<source>Notifications</source>
<translation>Уведомления</translation>
</message>
<message>
<location filename="mainscreen.py" line="103"/>
<location filename="mainscreen.py" line="106"/>
<source>Network</source>
<translation>Сеть</translation>
</message>
<message>
<location filename="mainscreen.py" line="104"/>
<location filename="mainscreen.py" line="107"/>
<source>About program</source>
<translation>О программе</translation>
</message>
<message>
<location filename="profile.py" line="752"/>
<location filename="profile.py" line="753"/>
<source>User {} wants to add you to contact list. Message:
{}</source>
<translation>Пользователь {} хочет добавить Вас в список контактов. Сообщение:
{}</translation>
</message>
<message>
<location filename="profile.py" line="754"/>
<location filename="profile.py" line="755"/>
<source>Friend request</source>
<translation>Запрос на добавление в друзья</translation>
</message>
<message>
<location filename="mainscreen.py" line="428"/>
<location filename="mainscreen.py" line="431"/>
<source>Choose file</source>
<translation>Выберите файл</translation>
</message>
<message>
<location filename="mainscreen.py" line="491"/>
<location filename="mainscreen.py" line="494"/>
<source>Disallow auto accept</source>
<translation>Запретить автоматическое получение файлов</translation>
</message>
<message>
<location filename="mainscreen.py" line="492"/>
<location filename="mainscreen.py" line="495"/>
<source>Allow auto accept</source>
<translation>Разрешить автоматическое получение файлов</translation>
</message>
<message>
<location filename="mainscreen.py" line="494"/>
<location filename="mainscreen.py" line="497"/>
<source>Set alias</source>
<translation>Изменить псевдоним</translation>
</message>
<message>
<location filename="mainscreen.py" line="495"/>
<location filename="mainscreen.py" line="498"/>
<source>Clear history</source>
<translation>Очистить историю</translation>
</message>
<message>
<location filename="mainscreen.py" line="496"/>
<location filename="mainscreen.py" line="499"/>
<source>Copy public key</source>
<translation>Копировать публичный ключ</translation>
</message>
<message>
<location filename="mainscreen.py" line="498"/>
<location filename="mainscreen.py" line="501"/>
<source>Remove friend</source>
<translation>Удалить друга</translation>
</message>
<message>
<location filename="profile.py" line="591"/>
<location filename="profile.py" line="592"/>
<source>Enter new alias for friend {} or leave empty to use friend&apos;s name:</source>
<translation>Введите новый псевдоним для друга {} или оставьте пустым для использования его имени:</translation>
</message>
<message>
<location filename="mainscreen.py" line="106"/>
<location filename="mainscreen.py" line="109"/>
<source>Audio</source>
<translation>Аудио</translation>
</message>
@ -194,18 +194,18 @@ can produce IP leak</source>
<translation type="obsolete">Найти контакт</translation>
</message>
<message>
<location filename="profile.py" line="724"/>
<location filename="profile.py" line="725"/>
<source>Friend added</source>
<translation>Друг добавлен</translation>
</message>
<message>
<location filename="mainscreen.py" line="358"/>
<location filename="mainscreen.py" line="361"/>
<source>Toxygen is Tox client written on Python.
Version: </source>
<translation>Toxygen - клиент для мессенджера Tox, написанный на Python. Версия: </translation>
</message>
<message>
<location filename="profile.py" line="725"/>
<location filename="profile.py" line="726"/>
<source>Friend added without sending friend request</source>
<translation>Друг добавлен без отправки запроса на добавление в друзья</translation>
</message>
@ -225,47 +225,47 @@ Version: </source>
<translation type="obsolete">Отправить файл</translation>
</message>
<message>
<location filename="mainscreen.py" line="108"/>
<location filename="mainscreen.py" line="111"/>
<source>Send message</source>
<translation>Отправить сообщение</translation>
</message>
<message>
<location filename="mainscreen.py" line="109"/>
<location filename="mainscreen.py" line="112"/>
<source>Start audio call with friend</source>
<translation>Начать аудиозвонок с другом</translation>
</message>
<message>
<location filename="mainscreen.py" line="503"/>
<location filename="mainscreen.py" line="506"/>
<source>Plugins</source>
<translation>Плагины</translation>
</message>
<message>
<location filename="mainscreen.py" line="94"/>
<location filename="mainscreen.py" line="97"/>
<source>List of plugins</source>
<translation>Список плагинов</translation>
</message>
<message>
<location filename="mainscreen.py" line="107"/>
<location filename="mainscreen.py" line="110"/>
<source>Search</source>
<translation>Поиск</translation>
</message>
<message>
<location filename="mainscreen.py" line="111"/>
<location filename="mainscreen.py" line="114"/>
<source>All</source>
<translation>Все</translation>
</message>
<message>
<location filename="mainscreen.py" line="112"/>
<location filename="mainscreen.py" line="115"/>
<source>Online</source>
<translation>Онлайн</translation>
</message>
<message>
<location filename="mainscreen.py" line="499"/>
<location filename="mainscreen.py" line="502"/>
<source>Notes</source>
<translation>Заметки</translation>
</message>
<message>
<location filename="mainscreen.py" line="519"/>
<location filename="mainscreen.py" line="522"/>
<source>Notes about user</source>
<translation>Заметки о пользователе</translation>
</message>
@ -315,7 +315,7 @@ Version: </source>
<translation>Сохранить</translation>
</message>
<message>
<location filename="profile.py" line="258"/>
<location filename="profile.py" line="259"/>
<source>User {} is now known as {}</source>
<translation>Пользователь {} сейчас известен как {}</translation>
</message>
@ -325,17 +325,17 @@ Version: </source>
<translation>Удалить сообщение</translation>
</message>
<message>
<location filename="mainscreen.py" line="92"/>
<location filename="mainscreen.py" line="95"/>
<source>Lock</source>
<translation>Заблокировать</translation>
</message>
<message>
<location filename="mainscreen.py" line="401"/>
<location filename="mainscreen.py" line="404"/>
<source>Cannot lock app</source>
<translation>Невозможно заблокировать приложение</translation>
</message>
<message>
<location filename="mainscreen.py" line="404"/>
<location filename="mainscreen.py" line="407"/>
<source>Error. Profile password is not set.</source>
<translation>Ошибка. Пароль профиля не установлен.</translation>
</message>
@ -580,6 +580,64 @@ Version: </source>
<translation>Сделать профилем по умолчанию</translation>
</message>
</context>
<context>
<name>WelcomeScreen</name>
<message>
<location filename="mainscreen_widgets.py" line="331"/>
<source>Don&apos;t show again</source>
<translation>Не показывать снова</translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="333"/>
<source>Tip of the day</source>
<translation>Подсказка дня</translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="339"/>
<source>Press Esc if you want hide app to tray.</source>
<translation>Нажатие Esc сворачивает приложение в трей.</translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="343"/>
<source>Right click on screenshot button hides app to tray during screenshot</source>
<translation>Правый клик на кнопке скриншота сворачивает приложение в трей на время скриншота</translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="347"/>
<source>You can use Tox over Tor. For more info read &lt;a href=&quot;https://wiki.tox.chat/users/tox_over_tor_tot&quot;&gt;this post&lt;/a&gt;</source>
<translation>Вы можете использовать Tox через Tor. Дополнительная информация &lt;a href=&quot;https://wiki.tox.chat/users/tox_over_tor_tot&quot;&gt;тут&lt;/a&gt;</translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="351"/>
<source>Use Settings -&gt; Interface to customize interface</source>
<translation>Используйте Настройки -&gt; Интерфейс для настройки интерфейса</translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="355"/>
<source>Set profile password via Profile -&gt; Settings. Password allows Toxygen encrypt your history and settings.</source>
<translation>Установите пароль профиля: Профиль -&gt; Настройки. Пароль позволяет шифровать историю переписки и настройки.</translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="359"/>
<source>Since v0.1.3 Toxygen supports plugins. &lt;a href=&quot;https://github.com/xveduk/toxygen/blob/master/docs/plugins.md&quot;&gt;Read more&lt;/a&gt;</source>
<translation>С версии 0.1.3 Toxygen поддерживает плагины. &lt;a href=&quot;https://github.com/xveduk/toxygen/blob/master/docs/plugins.md&quot;&gt;Узнать больше.&lt;/a&gt;</translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="363"/>
<source>New in Toxygen v0.2.2:&lt;br&gt;Users can lock application using profile password.&lt;br&gt;Compact contact list support&lt;br&gt;Bug fixes&lt;br&gt;Tox DNS improvements</source>
<translation>С версии 0.1.3 Toxygen поддерживает плагины. &lt;a href=&quot;https://github.com/xveduk/toxygen/blob/master/docs/plugins.md&quot;&gt;Узнать больше.&lt;/a&gt;</translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="367"/>
<source>Toxygen supports faux offline messages and file transfers. Send message or file to offline friend and he will get it later</source>
<translation>Toxygen поддерживает псевдооффлайн сообщения и файл трансферы</translation>
</message>
<message>
<location filename="mainscreen_widgets.py" line="371"/>
<source>Set new NoSpam to avoid spam friend requests: Profile -&gt; Settings -&gt; Set new NoSpam</source>
<translation>Установите новый NoSpam, чтобы избежать спам запросов в друзья: Профиль-&gt;Настройки-&gt;Новый NoSpam</translation>
</message>
</context>
<context>
<name>audioSettingsForm</name>
<message>
@ -601,32 +659,32 @@ Version: </source>
<context>
<name>incoming_call</name>
<message>
<location filename="profile.py" line="1130"/>
<location filename="profile.py" line="1132"/>
<source>Incoming video call</source>
<translation>Входящий видеозвонок</translation>
</message>
<message>
<location filename="profile.py" line="1133"/>
<location filename="profile.py" line="1135"/>
<source>Incoming audio call</source>
<translation>Входящий аудиозвонок</translation>
</message>
<message>
<location filename="profile.py" line="1113"/>
<location filename="profile.py" line="1115"/>
<source>Outgoing video call</source>
<translation>Исходящий видеозвонок</translation>
</message>
<message>
<location filename="profile.py" line="1116"/>
<location filename="profile.py" line="1118"/>
<source>Outgoing audio call</source>
<translation>Исходящий аудиозвонок</translation>
</message>
<message>
<location filename="profile.py" line="1162"/>
<location filename="profile.py" line="1164"/>
<source>Call declined</source>
<translation>Звонок отменен</translation>
</message>
<message>
<location filename="profile.py" line="1164"/>
<location filename="profile.py" line="1166"/>
<source>Call finished</source>
<translation>Звонок завершен</translation>
</message>
@ -656,7 +714,7 @@ Version: </source>
<message>
<location filename="menu.py" line="611"/>
<source>Smiley pack:</source>
<translation>Набор смайликов</translation>
<translation>Набор смайликов:</translation>
</message>
<message>
<location filename="menu.py" line="612"/>
@ -851,7 +909,7 @@ Version: </source>
<message>
<location filename="menu.py" line="421"/>
<source>Block by public key:</source>
<translation>Блокировать по публичному ключу</translation>
<translation>Блокировать по публичному ключу:</translation>
</message>
<message>
<location filename="menu.py" line="425"/>