docs update, translations update

This commit is contained in:
ingvar1995 2016-04-24 14:09:29 +03:00
parent e1db914f13
commit ee15359c19
9 changed files with 337 additions and 203 deletions

View file

@ -1,5 +1,5 @@
# Toxygen # Toxygen
Toxygen is simple [Tox](https://tox.chat/) client written on pure Python 2.7 Toxygen is simple [Tox](https://tox.chat/) client written on pure Python
### [How to install](/docs/install.md) ### [How to install](/docs/install.md)
# Supported OS: # Supported OS:
@ -20,12 +20,13 @@ Toxygen is simple [Tox](https://tox.chat/) client written on pure Python 2.7
- [x] Multilingual - [x] Multilingual
- [x] Sound notifications - [x] Sound notifications
- [x] Inline images - [x] Inline images
- [ ] Audio - [x] Audio
- [ ] Video - [ ] Video
- [ ] Save file encryption - [ ] Save file encryption
- [ ] File resuming - [ ] File resuming
- [ ] Typing notifications - [ ] Typing notifications
- [ ] Changing nospam - [ ] Changing nospam
- [ ] Plugins support
- [ ] Group chats - [ ] Group chats
- [ ] Read receipts - [ ] Read receipts
- [ ] Faux offline messaging - [ ] Faux offline messaging
@ -36,6 +37,8 @@ Toxygen is simple [Tox](https://tox.chat/) client written on pure Python 2.7
[Download develop version](https://github.com/xveduk/toxygen/archive/develop.zip) [Download develop version](https://github.com/xveduk/toxygen/archive/develop.zip)
[Releases](https://github.com/xveduk/toxygen/releases)
###Screenshots ###Screenshots
*Toxygen running on Ubuntu and Windows* *Toxygen running on Ubuntu and Windows*
![Ubuntu](/docs/ubuntu.png) ![Ubuntu](/docs/ubuntu.png)

View file

@ -6,19 +6,22 @@
1. [Download and install latest Python 2.7](https://www.python.org/downloads/windows/) 1. [Download and install latest Python 2.7](https://www.python.org/downloads/windows/)
2. [Install PySide](https://pypi.python.org/pypi/PySide/1.2.4) *(PyQt4 support will be added later)* 2. [Install PySide](https://pypi.python.org/pypi/PySide/1.2.4) *(PyQt4 support will be added later)*
3. [Download toxygen](https://github.com/xveduk/toxygen/archive/master.zip) 3. Install PyAudio: ``python -m pip install pyaudio``
4. Unpack archive 4. [Download toxygen](https://github.com/xveduk/toxygen/archive/master.zip)
5. Download latest [libtox.dll](https://build.tox.chat/view/libtoxcore/job/libtoxcore_build_windows_x86_shared_release/lastSuccessfulBuild/artifact/libtoxcore_build_windows_x86_shared_release.zip) build, download latest [libsodium.a](https://build.tox.chat/view/libsodium/job/libsodium_build_windows_x86_static_release/lastSuccessfulBuild/artifact/libsodium_build_windows_x86_static_release.zip) build, put it into \src\libs\ 5. Unpack archive
6. Run \src\main.py 6. Download latest [libtox.dll](https://build.tox.chat/view/libtoxcore/job/libtoxcore_build_windows_x86_shared_release/lastSuccessfulBuild/artifact/libtoxcore_build_windows_x86_shared_release.zip) build, download latest [libsodium.a](https://build.tox.chat/view/libsodium/job/libsodium_build_windows_x86_static_release/lastSuccessfulBuild/artifact/libsodium_build_windows_x86_static_release.zip) build, put it into \src\libs\
7. Run \src\main.py
### Linux ### Linux
1. [Install PySide](https://wiki.qt.io/PySide_Binaries_Linux) *(PyQt4 support will be added later)* 1. Install Python2.7: ``sudo apt-get install python2.7``
2. [Download toxygen](https://github.com/xveduk/toxygen/archive/master.zip) 2. [Install PySide](https://wiki.qt.io/PySide_Binaries_Linux) *(PyQt4 support will be added later)*
3. Unpack archive 3. Install PyAudio: ``pip install pyaudio``
4. Install [toxcore](https://github.com/irungentoo/toxcore/blob/master/INSTALL.md) in your system 4. [Download toxygen](https://github.com/xveduk/toxygen/archive/master.zip)
5. Run app: 5. Unpack archive
6. Install [toxcore](https://github.com/irungentoo/toxcore/blob/master/INSTALL.md) in your system
7. Run app:
``python main.py`` ``python main.py``
## Use precompiled binary: ## Use precompiled binary:

View file

@ -3,7 +3,7 @@ import time
import threading import threading
import settings import settings
from toxav_enums import * from toxav_enums import *
# TODO: play sound until outgoing call will be started or cancelled # TODO: play sound until outgoing call will be started or cancelled and add timeout
CALL_TYPE = { CALL_TYPE = {
'NONE': 0, 'NONE': 0,

View file

@ -293,6 +293,7 @@ class Profile(Contact, Singleton):
self._tox = tox self._tox = tox
self._file_transfers = {} # dict of file transfers. key - tuple (friend_number, file_number) self._file_transfers = {} # dict of file transfers. key - tuple (friend_number, file_number)
self._call = calls.AV(tox.AV) # object with data about calls self._call = calls.AV(tox.AV) # object with data about calls
self._incoming_calls = set()
settings = Settings.get_instance() settings = Settings.get_instance()
self._show_online = settings['show_online_friends'] self._show_online = settings['show_online_friends']
screen.online_contacts.setChecked(self._show_online) screen.online_contacts.setChecked(self._show_online)
@ -380,7 +381,6 @@ class Profile(Contact, Singleton):
""" """
:param value: number of new active friend in friend's list or None to update active user's data :param value: number of new active friend in friend's list or None to update active user's data
""" """
# TODO: check if there is incoming call with friend
if value is None and self._active_friend == -1: # nothing to update if value is None and self._active_friend == -1: # nothing to update
return return
if value == -1: # all friends were deleted if value == -1: # all friends were deleted
@ -417,6 +417,8 @@ class Profile(Contact, Singleton):
self._messages.scrollToBottom() self._messages.scrollToBottom()
if value in self._call: if value in self._call:
self._screen.active_call() self._screen.active_call()
elif value in self._incoming_calls:
self._screen.incoming_call()
else: else:
self._screen.call_finished() self._screen.call_finished()
else: else:
@ -991,9 +993,9 @@ class Profile(Contact, Singleton):
def incoming_call(self, audio, video, friend_number): def incoming_call(self, audio, video, friend_number):
friend = self.get_friend_by_number(friend_number) friend = self.get_friend_by_number(friend_number)
self._incoming_calls.add(friend_number)
if friend_number == self.get_active_number(): if friend_number == self.get_active_number():
self._screen.incoming_call() self._screen.incoming_call()
# self.accept_call(friend_number, audio, video)
else: else:
friend.set_messages(True) friend.set_messages(True)
if video: if video:
@ -1007,10 +1009,13 @@ class Profile(Contact, Singleton):
def accept_call(self, friend_number, audio, video): def accept_call(self, friend_number, audio, video):
self._call.accept_call(friend_number, audio, video) self._call.accept_call(friend_number, audio, video)
self._screen.active_call() self._screen.active_call()
self._incoming_calls.remove(friend_number)
if hasattr(self, '_call_widget'): if hasattr(self, '_call_widget'):
del self._call_widget del self._call_widget
def stop_call(self, friend_number, by_friend): def stop_call(self, friend_number, by_friend):
if friend_number in self._incoming_calls:
self._incoming_calls.remove(friend_number)
self._screen.call_finished() self._screen.call_finished()
self._call.finish_call(friend_number, by_friend) # finish or decline call self._call.finish_call(friend_number, by_friend) # finish or decline call
if hasattr(self, '_call_widget'): if hasattr(self, '_call_widget'):

Binary file not shown.

View file

@ -4,17 +4,17 @@
<context> <context>
<name>AddContact</name> <name>AddContact</name>
<message> <message>
<location filename="menu.py" line="76"/> <location filename="menu.py" line="65"/>
<source>Add contact</source> <source>Add contact</source>
<translation>Add contact</translation> <translation>Add contact</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="78"/> <location filename="menu.py" line="67"/>
<source>TOX ID:</source> <source>TOX ID:</source>
<translation>TOX ID:</translation> <translation>TOX ID:</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="79"/> <location filename="menu.py" line="68"/>
<source>Message:</source> <source>Message:</source>
<translation>Message:</translation> <translation>Message:</translation>
</message> </message>
@ -22,37 +22,37 @@
<context> <context>
<name>Form</name> <name>Form</name>
<message> <message>
<location filename="menu.py" line="77"/> <location filename="menu.py" line="66"/>
<source>Send request</source> <source>Send request</source>
<translation>Send request</translation> <translation>Send request</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="227"/> <location filename="menu.py" line="220"/>
<source>IPv6</source> <source>IPv6</source>
<translation>IPv6</translation> <translation>IPv6</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="228"/> <location filename="menu.py" line="221"/>
<source>UDP</source> <source>UDP</source>
<translation>UDP</translation> <translation>UDP</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="229"/> <location filename="menu.py" line="222"/>
<source>Proxy</source> <source>Proxy</source>
<translation>Proxy</translation> <translation>Proxy</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="230"/> <location filename="menu.py" line="223"/>
<source>IP:</source> <source>IP:</source>
<translation>IP:</translation> <translation>IP:</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="231"/> <location filename="menu.py" line="224"/>
<source>Port:</source> <source>Port:</source>
<translation>Port:</translation> <translation>Port:</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="87"/> <location filename="mainscreen.py" line="90"/>
<source>Online contacts</source> <source>Online contacts</source>
<translation>Online contacts</translation> <translation>Online contacts</translation>
</message> </message>
@ -60,172 +60,213 @@
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="mainscreen.py" line="92"/> <location filename="mainscreen.py" line="95"/>
<source>Profile</source> <source>Profile</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="98"/> <location filename="mainscreen.py" line="101"/>
<source>Settings</source> <source>Settings</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="280"/> <location filename="mainscreen.py" line="286"/>
<source>About</source> <source>About</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="91"/> <location filename="mainscreen.py" line="94"/>
<source>Add contact</source> <source>Add contact</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="93"/> <location filename="mainscreen.py" line="96"/>
<source>Privacy</source> <source>Privacy</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="94"/> <location filename="mainscreen.py" line="97"/>
<source>Interface</source> <source>Interface</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="95"/> <location filename="mainscreen.py" line="98"/>
<source>Notifications</source> <source>Notifications</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="96"/> <location filename="mainscreen.py" line="99"/>
<source>Network</source> <source>Network</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="97"/> <location filename="mainscreen.py" line="100"/>
<source>About program</source> <source>About program</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="profile.py" line="713"/> <location filename="profile.py" line="724"/>
<source>User {} wants to add you to contact list. Message: <source>User {} wants to add you to contact list. Message:
{}</source> {}</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="profile.py" line="715"/> <location filename="profile.py" line="726"/>
<source>Friend request</source> <source>Friend request</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="281"/> <location filename="mainscreen.py" line="287"/>
<source>Toxygen is Tox client written on Python 2.7. Version: </source> <source>Toxygen is Tox client written on Python 2.7. Version: </source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="319"/> <location filename="mainscreen.py" line="329"/>
<source>Choose file</source> <source>Choose file</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="338"/> <location filename="mainscreen.py" line="367"/>
<source>Disallow auto accept</source> <source>Disallow auto accept</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="339"/> <location filename="mainscreen.py" line="368"/>
<source>Allow auto accept</source> <source>Allow auto accept</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="341"/> <location filename="mainscreen.py" line="370"/>
<source>Set alias</source> <source>Set alias</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="342"/> <location filename="mainscreen.py" line="371"/>
<source>Clear history</source> <source>Clear history</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="343"/> <location filename="mainscreen.py" line="372"/>
<source>Copy public key</source> <source>Copy public key</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="345"/> <location filename="mainscreen.py" line="374"/>
<source>Remove friend</source> <source>Remove friend</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="profile.py" line="624"/> <location filename="profile.py" line="635"/>
<source>Enter new alias for friend {} or leave empty to use friend&apos;s name:</source> <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> <translation>Enter new alias for friend {} or leave empty to use friend&apos;s name:</translation>
</message> </message>
<message>
<location filename="mainscreen.py" line="102"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
</context> </context>
<context> <context>
<name>NetworkSettings</name> <name>NetworkSettings</name>
<message> <message>
<location filename="menu.py" line="226"/> <location filename="menu.py" line="219"/>
<source>Network settings</source> <source>Network settings</source>
<translation>Network settings</translation> <translation>Network settings</translation>
</message> </message>
<message>
<location filename="menu.py" line="225"/>
<source>Restart TOX core</source>
<translation>Restart Tox core</translation>
</message>
</context> </context>
<context> <context>
<name>ProfileSettingsForm</name> <name>ProfileSettingsForm</name>
<message> <message>
<location filename="menu.py" line="142"/> <location filename="menu.py" line="131"/>
<source>Export profile</source> <source>Export profile</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="143"/> <location filename="menu.py" line="132"/>
<source>Profile settings</source> <source>Profile settings</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="144"/> <location filename="menu.py" line="133"/>
<source>Name:</source> <source>Name:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="145"/> <location filename="menu.py" line="134"/>
<source>Status:</source> <source>Status:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="146"/> <location filename="menu.py" line="135"/>
<source>TOX ID:</source> <source>TOX ID:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="147"/> <location filename="menu.py" line="136"/>
<source>Copy TOX ID</source> <source>Copy TOX ID</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="148"/> <location filename="menu.py" line="137"/>
<source>New avatar</source> <source>New avatar</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="149"/> <location filename="menu.py" line="138"/>
<source>Reset avatar</source> <source>Reset avatar</source>
<translation></translation> <translation></translation>
</message> </message>
</context> </context>
<context>
<name>audioSettingsForm</name>
<message>
<location filename="menu.py" line="476"/>
<source>Audio settings</source>
<translation>Audio settings</translation>
</message>
<message>
<location filename="menu.py" line="477"/>
<source>Input device:</source>
<translation>Input device:</translation>
</message>
<message>
<location filename="menu.py" line="478"/>
<source>Output device:</source>
<translation>Output device:</translation>
</message>
</context>
<context>
<name>incoming_call</name>
<message>
<location filename="profile.py" line="1001"/>
<source>Incoming video call</source>
<translation>Incoming video call</translation>
</message>
<message>
<location filename="profile.py" line="1003"/>
<source>Incoming audio call</source>
<translation>Incoming audio call</translation>
</message>
</context>
<context> <context>
<name>interfaceForm</name> <name>interfaceForm</name>
<message> <message>
<location filename="menu.py" line="420"/> <location filename="menu.py" line="414"/>
<source>Interface settings</source> <source>Interface settings</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="421"/> <location filename="menu.py" line="415"/>
<source>Theme:</source> <source>Theme:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="422"/> <location filename="menu.py" line="416"/>
<source>Language:</source> <source>Language:</source>
<translation></translation> <translation></translation>
</message> </message>
@ -233,42 +274,42 @@
<context> <context>
<name>login</name> <name>login</name>
<message> <message>
<location filename="loginscreen.py" line="66"/> <location filename="loginscreen.py" line="57"/>
<source>Log in</source> <source>Log in</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="67"/> <location filename="loginscreen.py" line="58"/>
<source>Create</source> <source>Create</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="68"/> <location filename="loginscreen.py" line="59"/>
<source>Profile name:</source> <source>Profile name:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="69"/> <location filename="loginscreen.py" line="60"/>
<source>Load profile</source> <source>Load profile</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="70"/> <location filename="loginscreen.py" line="61"/>
<source>Use as default</source> <source>Use as default</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="71"/> <location filename="loginscreen.py" line="62"/>
<source>Load existing profile</source> <source>Load existing profile</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="72"/> <location filename="loginscreen.py" line="63"/>
<source>Create new profile</source> <source>Create new profile</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="73"/> <location filename="loginscreen.py" line="64"/>
<source>toxygen</source> <source>toxygen</source>
<translation></translation> <translation></translation>
</message> </message>
@ -281,22 +322,22 @@
<context> <context>
<name>notificationsForm</name> <name>notificationsForm</name>
<message> <message>
<location filename="menu.py" line="361"/> <location filename="menu.py" line="355"/>
<source>Notification settings</source> <source>Notification settings</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="362"/> <location filename="menu.py" line="356"/>
<source>Enable notifications</source> <source>Enable notifications</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="363"/> <location filename="menu.py" line="357"/>
<source>Enable call&apos;s sound</source> <source>Enable call&apos;s sound</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="364"/> <location filename="menu.py" line="358"/>
<source>Enable sound notifications</source> <source>Enable sound notifications</source>
<translation></translation> <translation></translation>
</message> </message>
@ -304,47 +345,47 @@
<context> <context>
<name>privacySettings</name> <name>privacySettings</name>
<message> <message>
<location filename="menu.py" line="294"/> <location filename="menu.py" line="292"/>
<source>Privacy settings</source> <source>Privacy settings</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="295"/> <location filename="menu.py" line="293"/>
<source>Save chat history</source> <source>Save chat history</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="296"/> <location filename="menu.py" line="294"/>
<source>Allow file auto accept</source> <source>Allow file auto accept</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="297"/> <location filename="menu.py" line="295"/>
<source>Send typing notifications</source> <source>Send typing notifications</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="298"/> <location filename="menu.py" line="296"/>
<source>Auto accept default path:</source> <source>Auto accept default path:</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="299"/> <location filename="menu.py" line="297"/>
<source>Change</source> <source>Change</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="300"/> <location filename="menu.py" line="298"/>
<source>Allow inlines</source> <source>Allow inlines</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="310"/> <location filename="menu.py" line="308"/>
<source>Chat history</source> <source>Chat history</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="313"/> <location filename="menu.py" line="311"/>
<source>History will be cleaned! Continue?</source> <source>History will be cleaned! Continue?</source>
<translation></translation> <translation></translation>
</message> </message>

View file

@ -3,17 +3,17 @@
<context> <context>
<name>AddContact</name> <name>AddContact</name>
<message> <message>
<location filename="menu.py" line="76"/> <location filename="menu.py" line="65"/>
<source>Add contact</source> <source>Add contact</source>
<translation>Rajouter un contact</translation> <translation>Rajouter un contact</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="78"/> <location filename="menu.py" line="67"/>
<source>TOX ID:</source> <source>TOX ID:</source>
<translation>ID TOX :</translation> <translation>ID TOX :</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="79"/> <location filename="menu.py" line="68"/>
<source>Message:</source> <source>Message:</source>
<translation>Message :</translation> <translation>Message :</translation>
</message> </message>
@ -21,37 +21,37 @@
<context> <context>
<name>Form</name> <name>Form</name>
<message> <message>
<location filename="menu.py" line="77"/> <location filename="menu.py" line="66"/>
<source>Send request</source> <source>Send request</source>
<translation>Envoyer une demande</translation> <translation>Envoyer une demande</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="227"/> <location filename="menu.py" line="220"/>
<source>IPv6</source> <source>IPv6</source>
<translation>IPv6</translation> <translation>IPv6</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="228"/> <location filename="menu.py" line="221"/>
<source>UDP</source> <source>UDP</source>
<translation>UDP</translation> <translation>UDP</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="229"/> <location filename="menu.py" line="222"/>
<source>Proxy</source> <source>Proxy</source>
<translation>Proxy</translation> <translation>Proxy</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="230"/> <location filename="menu.py" line="223"/>
<source>IP:</source> <source>IP:</source>
<translation>IP :</translation> <translation>IP :</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="231"/> <location filename="menu.py" line="224"/>
<source>Port:</source> <source>Port:</source>
<translation>Port :</translation> <translation>Port :</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="87"/> <location filename="mainscreen.py" line="90"/>
<source>Online contacts</source> <source>Online contacts</source>
<translation>Contacts connectés</translation> <translation>Contacts connectés</translation>
</message> </message>
@ -59,172 +59,213 @@
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="mainscreen.py" line="92"/> <location filename="mainscreen.py" line="95"/>
<source>Profile</source> <source>Profile</source>
<translation>Profile</translation> <translation>Profile</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="98"/> <location filename="mainscreen.py" line="101"/>
<source>Settings</source> <source>Settings</source>
<translation>Paramêtres</translation> <translation>Paramêtres</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="280"/> <location filename="mainscreen.py" line="286"/>
<source>About</source> <source>About</source>
<translation>À Propos</translation> <translation>À Propos</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="91"/> <location filename="mainscreen.py" line="94"/>
<source>Add contact</source> <source>Add contact</source>
<translation>Rajouter un contact</translation> <translation>Rajouter un contact</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="93"/> <location filename="mainscreen.py" line="96"/>
<source>Privacy</source> <source>Privacy</source>
<translation>Confidentialité</translation> <translation>Confidentialité</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="94"/> <location filename="mainscreen.py" line="97"/>
<source>Interface</source> <source>Interface</source>
<translation>Interface</translation> <translation>Interface</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="95"/> <location filename="mainscreen.py" line="98"/>
<source>Notifications</source> <source>Notifications</source>
<translation>Notifications</translation> <translation>Notifications</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="96"/> <location filename="mainscreen.py" line="99"/>
<source>Network</source> <source>Network</source>
<translation>Réseau</translation> <translation>Réseau</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="97"/> <location filename="mainscreen.py" line="100"/>
<source>About program</source> <source>About program</source>
<translation>À propos du programme</translation> <translation>À propos du programme</translation>
</message> </message>
<message> <message>
<location filename="profile.py" line="713"/> <location filename="profile.py" line="724"/>
<source>User {} wants to add you to contact list. Message: <source>User {} wants to add you to contact list. Message:
{}</source> {}</source>
<translation>L&apos;Utilisateur {} veut vout rajouter à sa liste de contacts. Message : {}</translation> <translation>L&apos;Utilisateur {} veut vout rajouter à sa liste de contacts. Message : {}</translation>
</message> </message>
<message> <message>
<location filename="profile.py" line="715"/> <location filename="profile.py" line="726"/>
<source>Friend request</source> <source>Friend request</source>
<translation>Demande d&apos;amis</translation> <translation>Demande d&apos;amis</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="281"/> <location filename="mainscreen.py" line="287"/>
<source>Toxygen is Tox client written on Python 2.7. Version: </source> <source>Toxygen is Tox client written on Python 2.7. Version: </source>
<translation>Toxygen est un client Tox écris en Python 2.7. Version : </translation> <translation>Toxygen est un client Tox écris en Python 2.7. Version : </translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="319"/> <location filename="mainscreen.py" line="329"/>
<source>Choose file</source> <source>Choose file</source>
<translation>Choisir un fichier</translation> <translation>Choisir un fichier</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="338"/> <location filename="mainscreen.py" line="367"/>
<source>Disallow auto accept</source> <source>Disallow auto accept</source>
<translation>Désactiver l&apos;auto-réception</translation> <translation>Désactiver l&apos;auto-réception</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="339"/> <location filename="mainscreen.py" line="368"/>
<source>Allow auto accept</source> <source>Allow auto accept</source>
<translation>Activer l&apos;auto-réception</translation> <translation>Activer l&apos;auto-réception</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="341"/> <location filename="mainscreen.py" line="370"/>
<source>Set alias</source> <source>Set alias</source>
<translation>Définir un alias</translation> <translation>Définir un alias</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="342"/> <location filename="mainscreen.py" line="371"/>
<source>Clear history</source> <source>Clear history</source>
<translation>Vider l&apos;historique</translation> <translation>Vider l&apos;historique</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="343"/> <location filename="mainscreen.py" line="372"/>
<source>Copy public key</source> <source>Copy public key</source>
<translation>Copier la clé publique</translation> <translation>Copier la clé publique</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="345"/> <location filename="mainscreen.py" line="374"/>
<source>Remove friend</source> <source>Remove friend</source>
<translation>Retirer un ami</translation> <translation>Retirer un ami</translation>
</message> </message>
<message> <message>
<location filename="profile.py" line="624"/> <location filename="profile.py" line="635"/>
<source>Enter new alias for friend {} or leave empty to use friend&apos;s name:</source> <source>Enter new alias for friend {} or leave empty to use friend&apos;s name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="mainscreen.py" line="102"/>
<source>Audio</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>NetworkSettings</name> <name>NetworkSettings</name>
<message> <message>
<location filename="menu.py" line="226"/> <location filename="menu.py" line="219"/>
<source>Network settings</source> <source>Network settings</source>
<translation>Paramêtres réseaux</translation> <translation>Paramêtres réseaux</translation>
</message> </message>
<message>
<location filename="menu.py" line="225"/>
<source>Restart TOX core</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>ProfileSettingsForm</name> <name>ProfileSettingsForm</name>
<message> <message>
<location filename="menu.py" line="142"/> <location filename="menu.py" line="131"/>
<source>Export profile</source> <source>Export profile</source>
<translation>Exporter le profile</translation> <translation>Exporter le profile</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="143"/> <location filename="menu.py" line="132"/>
<source>Profile settings</source> <source>Profile settings</source>
<translation>Paramêtres du profil</translation> <translation>Paramêtres du profil</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="144"/> <location filename="menu.py" line="133"/>
<source>Name:</source> <source>Name:</source>
<translation>Nom :</translation> <translation>Nom :</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="145"/> <location filename="menu.py" line="134"/>
<source>Status:</source> <source>Status:</source>
<translation>Status :</translation> <translation>Status :</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="146"/> <location filename="menu.py" line="135"/>
<source>TOX ID:</source> <source>TOX ID:</source>
<translation>ID TOX :</translation> <translation>ID TOX :</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="147"/> <location filename="menu.py" line="136"/>
<source>Copy TOX ID</source> <source>Copy TOX ID</source>
<translation>Copier l&apos;ID TOX</translation> <translation>Copier l&apos;ID TOX</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="148"/> <location filename="menu.py" line="137"/>
<source>New avatar</source> <source>New avatar</source>
<translation>Nouvel avatar</translation> <translation>Nouvel avatar</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="149"/> <location filename="menu.py" line="138"/>
<source>Reset avatar</source> <source>Reset avatar</source>
<translation>Réinitialiser l&apos;avatar</translation> <translation>Réinitialiser l&apos;avatar</translation>
</message> </message>
</context> </context>
<context>
<name>audioSettingsForm</name>
<message>
<location filename="menu.py" line="476"/>
<source>Audio settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="menu.py" line="477"/>
<source>Input device:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="menu.py" line="478"/>
<source>Output device:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>incoming_call</name>
<message>
<location filename="profile.py" line="1001"/>
<source>Incoming video call</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="profile.py" line="1003"/>
<source>Incoming audio call</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>interfaceForm</name> <name>interfaceForm</name>
<message> <message>
<location filename="menu.py" line="420"/> <location filename="menu.py" line="414"/>
<source>Interface settings</source> <source>Interface settings</source>
<translation>Paramêtres de l&apos;interface</translation> <translation>Paramêtres de l&apos;interface</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="421"/> <location filename="menu.py" line="415"/>
<source>Theme:</source> <source>Theme:</source>
<translation>Thème :</translation> <translation>Thème :</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="422"/> <location filename="menu.py" line="416"/>
<source>Language:</source> <source>Language:</source>
<translation>Langue :</translation> <translation>Langue :</translation>
</message> </message>
@ -232,42 +273,42 @@
<context> <context>
<name>login</name> <name>login</name>
<message> <message>
<location filename="loginscreen.py" line="66"/> <location filename="loginscreen.py" line="57"/>
<source>Log in</source> <source>Log in</source>
<translation>Se connecter</translation> <translation>Se connecter</translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="67"/> <location filename="loginscreen.py" line="58"/>
<source>Create</source> <source>Create</source>
<translation>Créer</translation> <translation>Créer</translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="68"/> <location filename="loginscreen.py" line="59"/>
<source>Profile name:</source> <source>Profile name:</source>
<translation>Nom du profil :</translation> <translation>Nom du profil :</translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="69"/> <location filename="loginscreen.py" line="60"/>
<source>Load profile</source> <source>Load profile</source>
<translation>Charger le profil</translation> <translation>Charger le profil</translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="70"/> <location filename="loginscreen.py" line="61"/>
<source>Use as default</source> <source>Use as default</source>
<translation>Utiliser par défaut</translation> <translation>Utiliser par défaut</translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="71"/> <location filename="loginscreen.py" line="62"/>
<source>Load existing profile</source> <source>Load existing profile</source>
<translation>Charger un profil existant</translation> <translation>Charger un profil existant</translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="72"/> <location filename="loginscreen.py" line="63"/>
<source>Create new profile</source> <source>Create new profile</source>
<translation>Créer un nouveau profil</translation> <translation>Créer un nouveau profil</translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="73"/> <location filename="loginscreen.py" line="64"/>
<source>toxygen</source> <source>toxygen</source>
<translation>toxygen</translation> <translation>toxygen</translation>
</message> </message>
@ -280,22 +321,22 @@
<context> <context>
<name>notificationsForm</name> <name>notificationsForm</name>
<message> <message>
<location filename="menu.py" line="361"/> <location filename="menu.py" line="355"/>
<source>Notification settings</source> <source>Notification settings</source>
<translation>Paramêtres de notification</translation> <translation>Paramêtres de notification</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="362"/> <location filename="menu.py" line="356"/>
<source>Enable notifications</source> <source>Enable notifications</source>
<translation>Activer les notifications</translation> <translation>Activer les notifications</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="363"/> <location filename="menu.py" line="357"/>
<source>Enable call&apos;s sound</source> <source>Enable call&apos;s sound</source>
<translation>Activer les sons d&apos;appel</translation> <translation>Activer les sons d&apos;appel</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="364"/> <location filename="menu.py" line="358"/>
<source>Enable sound notifications</source> <source>Enable sound notifications</source>
<translation>Activer les sons de notifications</translation> <translation>Activer les sons de notifications</translation>
</message> </message>
@ -303,47 +344,47 @@
<context> <context>
<name>privacySettings</name> <name>privacySettings</name>
<message> <message>
<location filename="menu.py" line="294"/> <location filename="menu.py" line="292"/>
<source>Privacy settings</source> <source>Privacy settings</source>
<translation>Paramêtres de confidentialité</translation> <translation>Paramêtres de confidentialité</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="295"/> <location filename="menu.py" line="293"/>
<source>Save chat history</source> <source>Save chat history</source>
<translation>Sauvegarder l&apos;historique du chat</translation> <translation>Sauvegarder l&apos;historique du chat</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="296"/> <location filename="menu.py" line="294"/>
<source>Allow file auto accept</source> <source>Allow file auto accept</source>
<translation>Autoriser les fichier automatiquement</translation> <translation>Autoriser les fichier automatiquement</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="297"/> <location filename="menu.py" line="295"/>
<source>Send typing notifications</source> <source>Send typing notifications</source>
<translation>Notifier la frappe</translation> <translation>Notifier la frappe</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="298"/> <location filename="menu.py" line="296"/>
<source>Auto accept default path:</source> <source>Auto accept default path:</source>
<translation>Chemin d&apos;accès des fichiers acceptés automatiquement :</translation> <translation>Chemin d&apos;accès des fichiers acceptés automatiquement :</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="299"/> <location filename="menu.py" line="297"/>
<source>Change</source> <source>Change</source>
<translation>Modifier</translation> <translation>Modifier</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="300"/> <location filename="menu.py" line="298"/>
<source>Allow inlines</source> <source>Allow inlines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="310"/> <location filename="menu.py" line="308"/>
<source>Chat history</source> <source>Chat history</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="313"/> <location filename="menu.py" line="311"/>
<source>History will be cleaned! Continue?</source> <source>History will be cleaned! Continue?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

Binary file not shown.

View file

@ -4,17 +4,17 @@
<context> <context>
<name>AddContact</name> <name>AddContact</name>
<message> <message>
<location filename="menu.py" line="76"/> <location filename="menu.py" line="65"/>
<source>Add contact</source> <source>Add contact</source>
<translation>Добавить контакт</translation> <translation>Добавить контакт</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="78"/> <location filename="menu.py" line="67"/>
<source>TOX ID:</source> <source>TOX ID:</source>
<translation>TOX ID:</translation> <translation>TOX ID:</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="79"/> <location filename="menu.py" line="68"/>
<source>Message:</source> <source>Message:</source>
<translation>Сообщение:</translation> <translation>Сообщение:</translation>
</message> </message>
@ -22,37 +22,37 @@
<context> <context>
<name>Form</name> <name>Form</name>
<message> <message>
<location filename="menu.py" line="77"/> <location filename="menu.py" line="66"/>
<source>Send request</source> <source>Send request</source>
<translation>Отправить запрос</translation> <translation>Отправить запрос</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="227"/> <location filename="menu.py" line="220"/>
<source>IPv6</source> <source>IPv6</source>
<translation>IPv6</translation> <translation>IPv6</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="228"/> <location filename="menu.py" line="221"/>
<source>UDP</source> <source>UDP</source>
<translation>UDP</translation> <translation>UDP</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="229"/> <location filename="menu.py" line="222"/>
<source>Proxy</source> <source>Proxy</source>
<translation>Прокси</translation> <translation>Прокси</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="230"/> <location filename="menu.py" line="223"/>
<source>IP:</source> <source>IP:</source>
<translation>IP:</translation> <translation>IP:</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="231"/> <location filename="menu.py" line="224"/>
<source>Port:</source> <source>Port:</source>
<translation>Порт:</translation> <translation>Порт:</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="87"/> <location filename="mainscreen.py" line="90"/>
<source>Online contacts</source> <source>Online contacts</source>
<translation>Контакты в сети</translation> <translation>Контакты в сети</translation>
</message> </message>
@ -60,145 +60,155 @@
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="mainscreen.py" line="92"/> <location filename="mainscreen.py" line="95"/>
<source>Profile</source> <source>Profile</source>
<translation>Профиль</translation> <translation>Профиль</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="98"/> <location filename="mainscreen.py" line="101"/>
<source>Settings</source> <source>Settings</source>
<translation>Настройки</translation> <translation>Настройки</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="280"/> <location filename="mainscreen.py" line="286"/>
<source>About</source> <source>About</source>
<translation>О программе</translation> <translation>О программе</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="91"/> <location filename="mainscreen.py" line="94"/>
<source>Add contact</source> <source>Add contact</source>
<translation>Добавить контакт</translation> <translation>Добавить контакт</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="93"/> <location filename="mainscreen.py" line="96"/>
<source>Privacy</source> <source>Privacy</source>
<translation>Приватность</translation> <translation>Приватность</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="94"/> <location filename="mainscreen.py" line="97"/>
<source>Interface</source> <source>Interface</source>
<translation>Интерфейс</translation> <translation>Интерфейс</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="95"/> <location filename="mainscreen.py" line="98"/>
<source>Notifications</source> <source>Notifications</source>
<translation>Уведомления</translation> <translation>Уведомления</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="96"/> <location filename="mainscreen.py" line="99"/>
<source>Network</source> <source>Network</source>
<translation>Сеть</translation> <translation>Сеть</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="97"/> <location filename="mainscreen.py" line="100"/>
<source>About program</source> <source>About program</source>
<translation>О программе</translation> <translation>О программе</translation>
</message> </message>
<message> <message>
<location filename="profile.py" line="713"/> <location filename="profile.py" line="724"/>
<source>User {} wants to add you to contact list. Message: <source>User {} wants to add you to contact list. Message:
{}</source> {}</source>
<translation>Пользователь {} хочет добавить Вас в список контактов. Сообщение: <translation>Пользователь {} хочет добавить Вас в список контактов. Сообщение:
{}</translation> {}</translation>
</message> </message>
<message> <message>
<location filename="profile.py" line="715"/> <location filename="profile.py" line="726"/>
<source>Friend request</source> <source>Friend request</source>
<translation>Запрос на добавление в друзья</translation> <translation>Запрос на добавление в друзья</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="281"/> <location filename="mainscreen.py" line="287"/>
<source>Toxygen is Tox client written on Python 2.7. Version: </source> <source>Toxygen is Tox client written on Python 2.7. Version: </source>
<translation>Toxygen - клиент для мессенджера Tox, написанный на Python 2.7. Версия: </translation> <translation>Toxygen - клиент для мессенджера Tox, написанный на Python 2.7. Версия: </translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="319"/> <location filename="mainscreen.py" line="329"/>
<source>Choose file</source> <source>Choose file</source>
<translation>Выберите файл</translation> <translation>Выберите файл</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="338"/> <location filename="mainscreen.py" line="367"/>
<source>Disallow auto accept</source> <source>Disallow auto accept</source>
<translation>Запретить автоматическое получение файлов</translation> <translation>Запретить автоматическое получение файлов</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="339"/> <location filename="mainscreen.py" line="368"/>
<source>Allow auto accept</source> <source>Allow auto accept</source>
<translation>Разрешить автоматическое получение файлов</translation> <translation>Разрешить автоматическое получение файлов</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="341"/> <location filename="mainscreen.py" line="370"/>
<source>Set alias</source> <source>Set alias</source>
<translation>Изменить псевдоним</translation> <translation>Изменить псевдоним</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="342"/> <location filename="mainscreen.py" line="371"/>
<source>Clear history</source> <source>Clear history</source>
<translation>Очистить историю</translation> <translation>Очистить историю</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="343"/> <location filename="mainscreen.py" line="372"/>
<source>Copy public key</source> <source>Copy public key</source>
<translation>Копировать публичный ключ</translation> <translation>Копировать публичный ключ</translation>
</message> </message>
<message> <message>
<location filename="mainscreen.py" line="345"/> <location filename="mainscreen.py" line="374"/>
<source>Remove friend</source> <source>Remove friend</source>
<translation>Удалить друга</translation> <translation>Удалить друга</translation>
</message> </message>
<message> <message>
<location filename="profile.py" line="624"/> <location filename="profile.py" line="635"/>
<source>Enter new alias for friend {} or leave empty to use friend&apos;s name:</source> <source>Enter new alias for friend {} or leave empty to use friend&apos;s name:</source>
<translation>Введите новый псевдоним для друга {} или оставьте пустым для использования его имени:</translation> <translation>Введите новый псевдоним для друга {} или оставьте пустым для использования его имени:</translation>
</message> </message>
<message>
<location filename="mainscreen.py" line="102"/>
<source>Audio</source>
<translation>Аудио</translation>
</message>
</context> </context>
<context> <context>
<name>NetworkSettings</name> <name>NetworkSettings</name>
<message> <message>
<location filename="menu.py" line="226"/> <location filename="menu.py" line="219"/>
<source>Network settings</source> <source>Network settings</source>
<translation>Настройки сети</translation> <translation>Настройки сети</translation>
</message> </message>
<message>
<location filename="menu.py" line="225"/>
<source>Restart TOX core</source>
<translation>Перезапустить ядро TOX</translation>
</message>
</context> </context>
<context> <context>
<name>ProfileSettingsForm</name> <name>ProfileSettingsForm</name>
<message> <message>
<location filename="menu.py" line="142"/> <location filename="menu.py" line="131"/>
<source>Export profile</source> <source>Export profile</source>
<translation>Экспорт профиля</translation> <translation>Экспорт профиля</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="143"/> <location filename="menu.py" line="132"/>
<source>Profile settings</source> <source>Profile settings</source>
<translation>Настройки профиля</translation> <translation>Настройки профиля</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="144"/> <location filename="menu.py" line="133"/>
<source>Name:</source> <source>Name:</source>
<translation>Имя:</translation> <translation>Имя:</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="145"/> <location filename="menu.py" line="134"/>
<source>Status:</source> <source>Status:</source>
<translation>Статус:</translation> <translation>Статус:</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="146"/> <location filename="menu.py" line="135"/>
<source>TOX ID:</source> <source>TOX ID:</source>
<translation>TOX ID:</translation> <translation>TOX ID:</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="147"/> <location filename="menu.py" line="136"/>
<source>Copy TOX ID</source> <source>Copy TOX ID</source>
<translation>Копировать TOX ID</translation> <translation>Копировать TOX ID</translation>
</message> </message>
@ -208,30 +218,61 @@
<translation type="obsolete">Язык:</translation> <translation type="obsolete">Язык:</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="148"/> <location filename="menu.py" line="137"/>
<source>New avatar</source> <source>New avatar</source>
<translation>Новый аватар</translation> <translation>Новый аватар</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="149"/> <location filename="menu.py" line="138"/>
<source>Reset avatar</source> <source>Reset avatar</source>
<translation>Сбросить аватар</translation> <translation>Сбросить аватар</translation>
</message> </message>
</context> </context>
<context>
<name>audioSettingsForm</name>
<message>
<location filename="menu.py" line="476"/>
<source>Audio settings</source>
<translation>Настройки аудио</translation>
</message>
<message>
<location filename="menu.py" line="477"/>
<source>Input device:</source>
<translation>Устройство ввода:</translation>
</message>
<message>
<location filename="menu.py" line="478"/>
<source>Output device:</source>
<translation>Устройство вывода:</translation>
</message>
</context>
<context>
<name>incoming_call</name>
<message>
<location filename="profile.py" line="1001"/>
<source>Incoming video call</source>
<translation>Входящий видеозвонок</translation>
</message>
<message>
<location filename="profile.py" line="1003"/>
<source>Incoming audio call</source>
<translation>Входящий аудиозвонок</translation>
</message>
</context>
<context> <context>
<name>interfaceForm</name> <name>interfaceForm</name>
<message> <message>
<location filename="menu.py" line="420"/> <location filename="menu.py" line="414"/>
<source>Interface settings</source> <source>Interface settings</source>
<translation>Настройки интерфейса</translation> <translation>Настройки интерфейса</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="421"/> <location filename="menu.py" line="415"/>
<source>Theme:</source> <source>Theme:</source>
<translation>Тема:</translation> <translation>Тема:</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="422"/> <location filename="menu.py" line="416"/>
<source>Language:</source> <source>Language:</source>
<translation>Язык:</translation> <translation>Язык:</translation>
</message> </message>
@ -239,42 +280,42 @@
<context> <context>
<name>login</name> <name>login</name>
<message> <message>
<location filename="loginscreen.py" line="66"/> <location filename="loginscreen.py" line="57"/>
<source>Log in</source> <source>Log in</source>
<translation>Вход</translation> <translation>Вход</translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="67"/> <location filename="loginscreen.py" line="58"/>
<source>Create</source> <source>Create</source>
<translation>Создать</translation> <translation>Создать</translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="68"/> <location filename="loginscreen.py" line="59"/>
<source>Profile name:</source> <source>Profile name:</source>
<translation>Имя профиля:</translation> <translation>Имя профиля:</translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="69"/> <location filename="loginscreen.py" line="60"/>
<source>Load profile</source> <source>Load profile</source>
<translation>Загрузить профиль</translation> <translation>Загрузить профиль</translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="70"/> <location filename="loginscreen.py" line="61"/>
<source>Use as default</source> <source>Use as default</source>
<translation>По умолчанию</translation> <translation>По умолчанию</translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="71"/> <location filename="loginscreen.py" line="62"/>
<source>Load existing profile</source> <source>Load existing profile</source>
<translation>Загрузить профиль</translation> <translation>Загрузить профиль</translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="72"/> <location filename="loginscreen.py" line="63"/>
<source>Create new profile</source> <source>Create new profile</source>
<translation>Создать новый профиль</translation> <translation>Создать новый профиль</translation>
</message> </message>
<message> <message>
<location filename="loginscreen.py" line="73"/> <location filename="loginscreen.py" line="64"/>
<source>toxygen</source> <source>toxygen</source>
<translation>toxygen</translation> <translation>toxygen</translation>
</message> </message>
@ -287,22 +328,22 @@
<context> <context>
<name>notificationsForm</name> <name>notificationsForm</name>
<message> <message>
<location filename="menu.py" line="361"/> <location filename="menu.py" line="355"/>
<source>Notification settings</source> <source>Notification settings</source>
<translation>Настройки уведомлений</translation> <translation>Настройки уведомлений</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="362"/> <location filename="menu.py" line="356"/>
<source>Enable notifications</source> <source>Enable notifications</source>
<translation>Включить уведомления</translation> <translation>Включить уведомления</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="363"/> <location filename="menu.py" line="357"/>
<source>Enable call&apos;s sound</source> <source>Enable call&apos;s sound</source>
<translation>Включить звук звонка</translation> <translation>Включить звук звонка</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="364"/> <location filename="menu.py" line="358"/>
<source>Enable sound notifications</source> <source>Enable sound notifications</source>
<translation>Включить звуковые уведомления <translation>Включить звуковые уведомления
</translation> </translation>
@ -311,47 +352,47 @@
<context> <context>
<name>privacySettings</name> <name>privacySettings</name>
<message> <message>
<location filename="menu.py" line="294"/> <location filename="menu.py" line="292"/>
<source>Privacy settings</source> <source>Privacy settings</source>
<translation>Настройки приватности</translation> <translation>Настройки приватности</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="295"/> <location filename="menu.py" line="293"/>
<source>Save chat history</source> <source>Save chat history</source>
<translation>Сохранять историю переписки</translation> <translation>Сохранять историю переписки</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="296"/> <location filename="menu.py" line="294"/>
<source>Allow file auto accept</source> <source>Allow file auto accept</source>
<translation>Разрешить автополучение файлов</translation> <translation>Разрешить автополучение файлов</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="297"/> <location filename="menu.py" line="295"/>
<source>Send typing notifications</source> <source>Send typing notifications</source>
<translation>Посылать уведомления о наборе текста</translation> <translation>Посылать уведомления о наборе текста</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="298"/> <location filename="menu.py" line="296"/>
<source>Auto accept default path:</source> <source>Auto accept default path:</source>
<translation>Путь автоприема файлов:</translation> <translation>Путь автоприема файлов:</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="299"/> <location filename="menu.py" line="297"/>
<source>Change</source> <source>Change</source>
<translation>Изменить</translation> <translation>Изменить</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="300"/> <location filename="menu.py" line="298"/>
<source>Allow inlines</source> <source>Allow inlines</source>
<translation>Разрешать инлайны</translation> <translation>Разрешать инлайны</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="310"/> <location filename="menu.py" line="308"/>
<source>Chat history</source> <source>Chat history</source>
<translation>История чата</translation> <translation>История чата</translation>
</message> </message>
<message> <message>
<location filename="menu.py" line="313"/> <location filename="menu.py" line="311"/>
<source>History will be cleaned! Continue?</source> <source>History will be cleaned! Continue?</source>
<translation>История переписки будет очищена! Продолжить?</translation> <translation>История переписки будет очищена! Продолжить?</translation>
</message> </message>