Merge branch 'v0.6' into POW

This commit is contained in:
Biryuzovye Kleshni 2018-07-15 19:24:13 +00:00
commit b24edfdc22
20 changed files with 1490 additions and 906 deletions

View File

@ -572,7 +572,7 @@ def listAdd():
if len(label) > 19: if len(label) > 19:
label = label[:16] + '...' label = label[:16] + '...'
print ''.join( print ''.join([
' |', ' |',
str(addNum).ljust(3), str(addNum).ljust(3),
'|', '|',
@ -584,13 +584,13 @@ def listAdd():
'|', '|',
enabled.ljust(7), enabled.ljust(7),
'|', '|',
) ])
print ''.join( print ''.join([
' ', ' ',
74 * '-', 74 * '-',
'\n', '\n',
) ])
def genAdd(lbl, deterministic, passphrase, numOfAdd, addVNum, streamNum, ripe): def genAdd(lbl, deterministic, passphrase, numOfAdd, addVNum, streamNum, ripe):
@ -675,11 +675,11 @@ def attachment():
round(invSize, 2) # Rounds to two decimal places round(invSize, 2) # Rounds to two decimal places
if invSize > 500.0: # If over 500KB if invSize > 500.0: # If over 500KB
print ''.join( print ''.join([
'\n WARNING:The file that you are trying to attach is ', '\n WARNING:The file that you are trying to attach is ',
invSize, invSize,
'KB and will take considerable time to send.\n' 'KB and will take considerable time to send.\n'
) ])
uInput = userInput('Are you sure you still want to attach it, (Y)es or (N)o?').lower() uInput = userInput('Are you sure you still want to attach it, (Y)es or (N)o?').lower()
if uInput != "y": if uInput != "y":
@ -931,11 +931,11 @@ def inbox(unreadOnly=False):
print ' To:', getLabelForAddress(message['toAddress']) # Get the to address print ' To:', getLabelForAddress(message['toAddress']) # Get the to address
print ' From:', getLabelForAddress(message['fromAddress']) # Get the from address print ' From:', getLabelForAddress(message['fromAddress']) # Get the from address
print ' Subject:', message['subject'].decode('base64') # Get the subject print ' Subject:', message['subject'].decode('base64') # Get the subject
print ''.join( print ''.join([
' Received:', ' Received:',
datetime.datetime.fromtimestamp( datetime.datetime.fromtimestamp(
float(message['receivedTime'])).strftime('%Y-%m-%d %H:%M:%S'), float(message['receivedTime'])).strftime('%Y-%m-%d %H:%M:%S'),
) ])
messagesPrinted += 1 messagesPrinted += 1
if not message['read']: if not message['read']:
messagesUnread += 1 messagesUnread += 1
@ -970,11 +970,11 @@ def outbox():
print ' Subject:', outboxMessages['sentMessages'][msgNum]['subject'].decode('base64') # Get the subject print ' Subject:', outboxMessages['sentMessages'][msgNum]['subject'].decode('base64') # Get the subject
print ' Status:', outboxMessages['sentMessages'][msgNum]['status'] # Get the subject print ' Status:', outboxMessages['sentMessages'][msgNum]['status'] # Get the subject
print ''.join( print ''.join([
' Last Action Time:', ' Last Action Time:',
datetime.datetime.fromtimestamp( datetime.datetime.fromtimestamp(
float(outboxMessages['sentMessages'][msgNum]['lastActionTime'])).strftime('%Y-%m-%d %H:%M:%S'), float(outboxMessages['sentMessages'][msgNum]['lastActionTime'])).strftime('%Y-%m-%d %H:%M:%S'),
) ])
if msgNum % 20 == 0 and msgNum != 0: if msgNum % 20 == 0 and msgNum != 0:
userInput('(Press Enter to continue or type (Exit) to return to the main menu.)').lower() # uInput = userInput('(Press Enter to continue or type (Exit) to return to the main menu.)').lower() # uInput =
@ -1040,11 +1040,11 @@ def readSentMsg(msgNum):
print ' From:', getLabelForAddress(outboxMessages['sentMessages'][msgNum]['fromAddress']) print ' From:', getLabelForAddress(outboxMessages['sentMessages'][msgNum]['fromAddress'])
print ' Subject:', outboxMessages['sentMessages'][msgNum]['subject'].decode('base64') # Get the subject print ' Subject:', outboxMessages['sentMessages'][msgNum]['subject'].decode('base64') # Get the subject
print ' Status:', outboxMessages['sentMessages'][msgNum]['status'] # Get the subject print ' Status:', outboxMessages['sentMessages'][msgNum]['status'] # Get the subject
print ''.join( print ''.join([
' Last Action Time:', ' Last Action Time:',
datetime.datetime.fromtimestamp( datetime.datetime.fromtimestamp(
float(outboxMessages['sentMessages'][msgNum]['lastActionTime'])).strftime('%Y-%m-%d %H:%M:%S'), float(outboxMessages['sentMessages'][msgNum]['lastActionTime'])).strftime('%Y-%m-%d %H:%M:%S'),
) ])
print ' Message:\n' print ' Message:\n'
print message # inboxMessages['inboxMessages'][msgNum]['message'].decode('base64') print message # inboxMessages['inboxMessages'][msgNum]['message'].decode('base64')
print ' ' print ' '
@ -1101,10 +1101,10 @@ def readMsg(msgNum):
# Get the from address # Get the from address
print ' From:', getLabelForAddress(inboxMessages['inboxMessages'][msgNum]['fromAddress']) print ' From:', getLabelForAddress(inboxMessages['inboxMessages'][msgNum]['fromAddress'])
print ' Subject:', inboxMessages['inboxMessages'][msgNum]['subject'].decode('base64') # Get the subject print ' Subject:', inboxMessages['inboxMessages'][msgNum]['subject'].decode('base64') # Get the subject
print ''.join( print ''.join([
' Received:', datetime.datetime.fromtimestamp( ' Received:', datetime.datetime.fromtimestamp(
float(inboxMessages['inboxMessages'][msgNum]['receivedTime'])).strftime('%Y-%m-%d %H:%M:%S'), float(inboxMessages['inboxMessages'][msgNum]['receivedTime'])).strftime('%Y-%m-%d %H:%M:%S'),
) ])
print ' Message:\n' print ' Message:\n'
print message # inboxMessages['inboxMessages'][msgNum]['message'].decode('base64') print message # inboxMessages['inboxMessages'][msgNum]['message'].decode('base64')
print ' ' print ' '

View File

167
src/bitmessagekivy/main.kv Normal file
View File

@ -0,0 +1,167 @@
#:import FadeTransition kivy.uix.screenmanager.FadeTransition
<Display>:
BoxLayout:
orientation: "vertical"
BoxLayout:
size_hint: 1, None
height: '48dp'
Button:
text: 'messages'
on_release: sm.current = 'screen_one'
background_color: (0,0,0,0)
color: 0,0,0,1
Button:
text: 'send'
on_release: sm.current = 'screen_two'
background_color: (0,0,0,0)
color: 0,0,0,1
Button:
text: 'subscription'
on_release: sm.current = 'screen_three'
background_color: (0,0,0,0)
color: 0,0,0,1
Button:
text: 'four'
on_release: sm.current = 'screen_four'
background_color: (0,0,0,0)
color: 0,0,0,1
Button:
text: 'chans'
on_release: sm.current = 'screen_five'
background_color: (0,0,0,0)
color: 0,0,0,1
Button:
text: 'blacklist'
on_release: sm.current = 'screen_six'
background_color: (0,0,0,0)
color: 0,0,0,1
ScreenManager:
id: sm
transition: FadeTransition()
Screen_One:
Screen_Two:
Screen_three:
Screen_four:
Screen_five:
Screen_six:
EmailScreen:
<Screen_One>:
name: 'screen_one'
BoxLayout:
padding: 10,10,10,300
orientation: "vertical"
Button:
text: "create"
size_hint_y: 0.3
size_hint_x: 0.1
color: 0,0,0,1
background_color: (0,0,0,0)
Button:
text: "inbox"
background_color: (0,0,0,0)
size_hint_y: 0.3
size_hint_x: 0.1
color: 0,0,0,1
Button:
text: "new"
background_color: (0,0,0,0)
size_hint_y: 0.3
size_hint_x: 0.1
color: 0,0,0,1
on_press:
root.manager.current = 'email'
Button:
text: "sents"
background_color: (0,0,0,0)
size_hint_y: 0.3
size_hint_x: 0.1
color: 0,0,0,1
<Screen_Two>:
name: 'screen_two'
Label:
text: "Two"
<Screen_three>:
name: 'screen_three'
Label:
text: "Three"
<Screen_four>:
name: 'screen_four'
Label:
text: "four"
<Screen_five>:
name: 'screen_five'
Label:
text: "Two"
<Screen_six>:
name: 'screen_six'
Label:
text: "Two"
<EmailScreen>:
name: 'email'
BoxLayout:
padding: 100,10,100,100
id: login_layout
orientation: "vertical"
GridLayout:
rows: 2
orientation: 'vertical'
spacing: 10
Label:
text: 'From: '
background_color: (0,0,0,0)
color: 0,0,0,1
font_size: 18
pos_hint: {"x":.15,"y":1}
text_size: root.width-20, 20
TextInput:
multiline:False
size_hint: 1,.4
GridLayout:
rows: 2
orientation: 'vertical'
Label:
text: 'To: '
background_color: (0,0,0,0)
color: 0,0,0,1
font_size: 18
pos_hint: {"x":.15,"y":.5}
text_size: root.width-20, 20
TextInput:
multiline:False
size_hint: 1,.4
pos_hint: {"x":.2,"y":.5}
GridLayout:
rows: 2
orientation: 'vertical'
Label:
text: 'Message'
background_color: (0,0,0,0)
color: 0,0,0,1
pos_hint: {"x":.15,"y":.5}
font_size: 18
text_size: root.width-20, 20
TextInput:
id: msg
multiline:True
size_hint: 1,2
Button:
text: "SEND"
size_hint_y: 0.1
size_hint_x: 0.2
pos_hint: {"x":.15,"y":1}

View File

@ -0,0 +1,97 @@
import time
from kivy.app import App
from kivy.core.window import Window
from kivy.uix.boxlayout import BoxLayout
# from kivy.uix.gridlayout import GridLayout
from debug import logger
from addresses import addBMIfNotPresent, decodeAddress
from bmconfigparser import BMConfigParser
from helper_ackPayload import genAckPayload
from helper_sql import sqlExecute
import queues
import shutdown
statusIconColor = 'red'
class LoginScreen(BoxLayout):
"""This will use for sending message to recipents from mobile client."""
def send(self):
"""It is used for sending message with subject and body."""
queues.apiAddressGeneratorReturnQueue.queue.clear()
streamNumberForAddress = 1
label = "CisDevelper"
eighteenByteRipe = False
nonceTrialsPerByte = 1000
payloadLengthExtraBytes = 1000
queues.addressGeneratorQueue.put((
'createRandomAddress', 4,
streamNumberForAddress, label, 1,
"", eighteenByteRipe, nonceTrialsPerByte,
payloadLengthExtraBytes
))
fromAddress = queues.apiAddressGeneratorReturnQueue.get()
toAddress = "BM-2cWyUfBdY2FbgyuCb7abFZ49JYxSzUhNFe"
message = self.ids.user_input.text
subject = 'Test'
encoding = 3
sendMessageToPeople = True
if sendMessageToPeople:
if toAddress != '':
status, addressVersionNumber, streamNumber, ripe = decodeAddress(
toAddress)
if status == 'success':
toAddress = addBMIfNotPresent(toAddress)
if addressVersionNumber > 4 or addressVersionNumber <= 1:
logger.info("addressVersionNumber > 4 or addressVersionNumber <= 1")
if streamNumber > 1 or streamNumber == 0:
logger.info("streamNumber > 1 or streamNumber == 0")
if statusIconColor == 'red':
logger.info("shared.statusIconColor == 'red'")
stealthLevel = BMConfigParser().safeGetInt(
'bitmessagesettings', 'ackstealthlevel')
ackdata = genAckPayload(streamNumber, stealthLevel)
sqlExecute(
'''INSERT INTO sent VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)''',
'',
toAddress,
ripe,
fromAddress,
subject,
message,
ackdata,
int(time.time()),
int(time.time()),
0,
'msgqueued',
0,
'sent',
encoding,
BMConfigParser().getint('bitmessagesettings', 'ttl'))
queues.workerQueue.put(('sendmessage', toAddress))
return None
def sayexit(self):
"""Method will exit the application screen."""
shutdown.doCleanShutdown()
Window.close()
class MainApp(App):
"""The App class is the base for creating Kivy applications
Think of it as your main entry point into the Kivy run loop."""
def build(self):
"""To initialize an app with a widget tree, we need to override the build().
method in our app class and return the widget tree which we have constructed..
"""
return LoginScreen()

View File

@ -271,18 +271,22 @@ class Main:
# Populate with hardcoded value (same as connectToStream above) # Populate with hardcoded value (same as connectToStream above)
state.streamsInWhichIAmParticipating.append(1) state.streamsInWhichIAmParticipating.append(1)
if not state.enableGUI: if not daemon and state.enableGUI:
BMConfigParser().remove_option('bitmessagesettings', 'dontconnect')
elif daemon is False:
if state.curses: if state.curses:
if not depends.check_curses(): if not depends.check_curses():
sys.exit() sys.exit()
print('Running with curses') print('Running with curses')
import bitmessagecurses import bitmessagecurses
bitmessagecurses.runwrapper() bitmessagecurses.runwrapper()
elif state.kivy:
BMConfigParser().remove_option('bitmessagesettings', 'dontconnect')
from bitmessagekivy.mpybit import MainApp
MainApp().run()
else: else:
import bitmessageqt import bitmessageqt
bitmessageqt.run() bitmessageqt.run()
else:
BMConfigParser().remove_option('bitmessagesettings', 'dontconnect')
if daemon: if daemon:
if state.testmode: if state.testmode:

View File

@ -23,7 +23,7 @@ import shared
from bitmessageui import Ui_MainWindow from bitmessageui import Ui_MainWindow
from bmconfigparser import BMConfigParser from bmconfigparser import BMConfigParser
import defaults import defaults
from namecoin import namecoinConnection import namecoin
from messageview import MessageView from messageview import MessageView
from migrationwizard import Ui_MigrationWizard from migrationwizard import Ui_MigrationWizard
from foldertree import ( from foldertree import (
@ -254,6 +254,8 @@ class MyForm(settingsmixin.SMainWindow):
# load all gui.menu plugins with prefix 'address' # load all gui.menu plugins with prefix 'address'
self.menu_plugins = {'address': []} self.menu_plugins = {'address': []}
if not get_plugins:
return
for plugin in get_plugins('gui.menu', 'address'): for plugin in get_plugins('gui.menu', 'address'):
try: try:
handler, title = plugin(self) handler, title = plugin(self)
@ -798,7 +800,8 @@ class MyForm(settingsmixin.SMainWindow):
self.initSettings() self.initSettings()
self.namecoin = namecoinConnection() namecoin.ensureNamecoinOptions()
self.namecoin = namecoin.namecoinConnection()
# Check to see whether we can connect to namecoin. # Check to see whether we can connect to namecoin.
# Hide the 'Fetch Namecoin ID' button if we can't. # Hide the 'Fetch Namecoin ID' button if we can't.

View File

@ -150,9 +150,7 @@ class BMAccount(object):
"""Get a label for this bitmessage account""" """Get a label for this bitmessage account"""
if address is None: if address is None:
address = self.address address = self.address
label = address label = BMConfigParser().safeGet(address, 'label', address)
if BMConfigParser().has_section(address):
label = BMConfigParser().get(address, 'label')
queryreturn = sqlQuery( queryreturn = sqlQuery(
'''select label from addressbook where address=?''', address) '''select label from addressbook where address=?''', address)
if queryreturn != []: if queryreturn != []:

View File

@ -12,26 +12,24 @@ class LanguageBox(QtGui.QComboBox):
self.populate() self.populate()
def populate(self): def populate(self):
self.languages = []
self.clear() self.clear()
localesPath = os.path.join (paths.codePath(), 'translations') localesPath = os.path.join (paths.codePath(), 'translations')
configuredLocale = "system"
try:
configuredLocale = BMConfigParser().get('bitmessagesettings', 'userlocale', "system")
except:
pass
self.addItem(QtGui.QApplication.translate("settingsDialog", "System Settings", "system"), "system") self.addItem(QtGui.QApplication.translate("settingsDialog", "System Settings", "system"), "system")
self.setCurrentIndex(0) self.setCurrentIndex(0)
self.setInsertPolicy(QtGui.QComboBox.InsertAlphabetically) self.setInsertPolicy(QtGui.QComboBox.InsertAlphabetically)
for translationFile in sorted(glob.glob(os.path.join(localesPath, "bitmessage_*.qm"))): for translationFile in sorted(glob.glob(os.path.join(localesPath, "bitmessage_*.qm"))):
localeShort = os.path.split(translationFile)[1].split("_", 1)[1][:-3] localeShort = os.path.split(translationFile)[1].split("_", 1)[1][:-3]
locale = QtCore.QLocale(QtCore.QString(localeShort)) locale = QtCore.QLocale(QtCore.QString(localeShort))
if localeShort in LanguageBox.languageName: if localeShort in LanguageBox.languageName:
self.addItem(LanguageBox.languageName[localeShort], localeShort) self.addItem(LanguageBox.languageName[localeShort], localeShort)
elif locale.nativeLanguageName() == "": elif locale.nativeLanguageName() == "":
self.addItem(localeShort, localeShort) self.addItem(localeShort, localeShort)
else: else:
self.addItem(locale.nativeLanguageName(), localeShort) self.addItem(locale.nativeLanguageName(), localeShort)
configuredLocale = BMConfigParser().safeGet(
'bitmessagesettings', 'userlocale', "system")
for i in range(self.count()): for i in range(self.count()):
if self.itemData(i) == configuredLocale: if self.itemData(i) == configuredLocale:
self.setCurrentIndex(i) self.setCurrentIndex(i)

View File

@ -114,18 +114,13 @@ def createSupportMessage(myapp):
frozen = paths.frozen frozen = paths.frozen
portablemode = "True" if state.appdata == paths.lookupExeFolder() else "False" portablemode = "True" if state.appdata == paths.lookupExeFolder() else "False"
cpow = "True" if proofofwork.bmpow else "False" cpow = "True" if proofofwork.bmpow else "False"
#cpow = QtGui.QApplication.translate("Support", cpow) openclpow = str(
openclpow = str(BMConfigParser().safeGet('bitmessagesettings', 'opencl')) if openclEnabled() else "None" BMConfigParser().safeGet('bitmessagesettings', 'opencl')
#openclpow = QtGui.QApplication.translate("Support", openclpow) ) if openclEnabled() else "None"
locale = getTranslationLanguage() locale = getTranslationLanguage()
try: socks = BMConfigParser().safeGet(
socks = BMConfigParser().get('bitmessagesettings', 'socksproxytype') 'bitmessagesettings', 'socksproxytype', "N/A")
except: upnp = BMConfigParser().safeGet('bitmessagesettings', 'upnp', "N/A")
socks = "N/A"
try:
upnp = BMConfigParser().get('bitmessagesettings', 'upnp')
except:
upnp = "N/A"
connectedhosts = len(network.stats.connectedHostsList()) connectedhosts = len(network.stats.connectedHostsList())
myapp.ui.textEditMessage.setText(str(QtGui.QApplication.translate("Support", SUPPORT_MESSAGE)).format(version, os, architecture, pythonversion, opensslversion, frozen, portablemode, cpow, openclpow, locale, socks, upnp, connectedhosts)) myapp.ui.textEditMessage.setText(str(QtGui.QApplication.translate("Support", SUPPORT_MESSAGE)).format(version, os, architecture, pythonversion, opensslversion, frozen, portablemode, cpow, openclpow, locale, socks, upnp, connectedhosts))

View File

@ -10,26 +10,24 @@ str_chan = '[chan]'
def identiconize(address): def identiconize(address):
size = 48 size = 48
# If you include another identicon library, please generate an if not BMConfigParser().getboolean('bitmessagesettings', 'useidenticons'):
return QtGui.QIcon()
# If you include another identicon library, please generate an
# example identicon with the following md5 hash: # example identicon with the following md5 hash:
# 3fd4bf901b9d4ea1394f0fb358725b28 # 3fd4bf901b9d4ea1394f0fb358725b28
try:
identicon_lib = BMConfigParser().get('bitmessagesettings', 'identiconlib')
except:
# default to qidenticon_two_x
identicon_lib = 'qidenticon_two_x'
# As an 'identiconsuffix' you could put "@bitmessge.ch" or "@bm.addr" to make it compatible with other identicon generators. (Note however, that E-Mail programs might convert the BM-address to lowercase first.) identicon_lib = BMConfigParser().safeGet(
# It can be used as a pseudo-password to salt the generation of the identicons to decrease the risk 'bitmessagesettings', 'identiconlib', 'qidenticon_two_x')
# of attacks where someone creates an address to mimic someone else's identicon.
# As an 'identiconsuffix' you could put "@bitmessge.ch" or "@bm.addr"
# to make it compatible with other identicon generators. (Note however,
# that E-Mail programs might convert the BM-address to lowercase first.)
# It can be used as a pseudo-password to salt the generation of
# the identicons to decrease the risk of attacks where someone creates
# an address to mimic someone else's identicon.
identiconsuffix = BMConfigParser().get('bitmessagesettings', 'identiconsuffix') identiconsuffix = BMConfigParser().get('bitmessagesettings', 'identiconsuffix')
if not BMConfigParser().getboolean('bitmessagesettings', 'useidenticons'):
idcon = QtGui.QIcon()
return idcon
if (identicon_lib[:len('qidenticon')] == 'qidenticon'): if (identicon_lib[:len('qidenticon')] == 'qidenticon'):
# print identicon_lib # print identicon_lib
# originally by: # originally by:

275
src/buildozer.spec Normal file
View File

@ -0,0 +1,275 @@
[app]
# (str) Title of your application
title = PyBitmessage
# (str) Package name
package.name = PyBitmessage
# (str) Package domain (needed for android/ios packaging)
package.domain = org.test
# (str) Source code where the main.py live
source.dir = .
# (list) Source files to include (let empty to include all the files)
source.include_exts = py,png,jpg,kv,atlas
# (list) List of inclusions using pattern matching
#source.include_patterns = assets/*,images/*.png
# (list) Source files to exclude (let empty to not exclude anything)
#source.exclude_exts = spec
# (list) List of directory to exclude (let empty to not exclude anything)
#source.exclude_dirs = tests, bin
# (list) List of exclusions using pattern matching
#source.exclude_patterns = license,images/*/*.jpg
# (str) Application versioning (method 1)
version = 0.1
# (str) Application versioning (method 2)
# version.regex = __version__ = ['"](.*)['"]
# version.filename = %(source.dir)s/main.py
# (list) Application requirements
# comma seperated e.g. requirements = sqlite3,kivy
requirements = python2, sqlite3, kivy, openssl
# (str) Custom source folders for requirements
# Sets custom source for any requirements with recipes
# requirements.source.kivy = ../../kivy
#requirements.source.sqlite3 =
# (list) Garden requirements
#garden_requirements =
# (str) Presplash of the application
#presplash.filename = %(source.dir)s/data/presplash.png
# (str) Icon of the application
#icon.filename = %(source.dir)s/data/icon.png
# (str) Supported orientation (one of landscape, portrait or all)
orientation = portrait
# (list) List of service to declare
#services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY
#
# OSX Specific
#
#
# author = © Copyright Info
# change the major version of python used by the app
#osx.python_version = 2
# Kivy version to use
osx.kivy_version = 1.9.1
#
# Android specific
#
# (bool) Indicate if the application should be fullscreen or not
fullscreen = 0
# (string) Presplash background color (for new android toolchain)
# Supported formats are: #RRGGBB #AARRGGBB or one of the following names:
# red, blue, green, black, white, gray, cyan, magenta, yellow, lightgray,
# darkgray, grey, lightgrey, darkgrey, aqua, fuchsia, lime, maroon, navy,
# olive, purple, silver, teal.
#android.presplash_color = #FFFFFF
# (list) Permissions
android.permissions = INTERNET
# (int) Android API to use
#android.api = 19
# (int) Minimum API required
#android.minapi = 9
# (int) Android SDK version to use
#android.sdk = 20
# (str) Android NDK version to use
#android.ndk = 9c
# (bool) Use --private data storage (True) or --dir public storage (False)
#android.private_storage = True
# (str) Android NDK directory (if empty, it will be automatically downloaded.)
#android.ndk_path =
# (str) Android SDK directory (if empty, it will be automatically downloaded.)
#android.sdk_path =
# (str) ANT directory (if empty, it will be automatically downloaded.)
#android.ant_path =
# (bool) If True, then skip trying to update the Android sdk
# This can be useful to avoid excess Internet downloads or save time
# when an update is due and you just want to test/build your package
# android.skip_update = False
# (str) Android entry point, default is ok for Kivy-based app
#android.entrypoint = org.renpy.android.PythonActivity
# (list) Pattern to whitelist for the whole project
#android.whitelist =
android.whitelist = /usr/lib/komodo-edit/python/lib/python2.7/lib-dynload/_sqlite3.so
# (str) Path to a custom whitelist file
#android.whitelist_src =
# (str) Path to a custom blacklist file
#android.blacklist_src =
# (list) List of Java .jar files to add to the libs so that pyjnius can access
# their classes. Don't add jars that you do not need, since extra jars can slow
# down the build process. Allows wildcards matching, for example:
# OUYA-ODK/libs/*.jar
#android.add_jars = foo.jar,bar.jar,path/to/more/*.jar
# (list) List of Java files to add to the android project (can be java or a
# directory containing the files)
#android.add_src =
# (list) Android AAR archives to add (currently works only with sdl2_gradle
# bootstrap)
#android.add_aars =
# (list) Gradle dependencies to add (currently works only with sdl2_gradle
# bootstrap)
#android.gradle_dependencies =
, /home/cis/Downloads/libssl1.0.2_1.0.2l-2+deb9u2_amd64
# (str) python-for-android branch to use, defaults to stable
#p4a.branch = stable
# (str) OUYA Console category. Should be one of GAME or APP
# If you leave this blank, OUYA support will not be enabled
#android.ouya.category = GAME
# (str) Filename of OUYA Console icon. It must be a 732x412 png image.
#android.ouya.icon.filename = %(source.dir)s/data/ouya_icon.png
# (str) XML file to include as an intent filters in <activity> tag
#android.manifest.intent_filters =
# (list) Android additionnal libraries to copy into libs/armeabi
#android.add_libs_armeabi = libs/android/*.so
#android.add_libs_armeabi_v7a = libs/android-v7/*.so
#android.add_libs_x86 = libs/android-x86/*.so
#android.add_libs_mips = libs/android-mips/*.so
# (bool) Indicate whether the screen should stay on
# Don't forget to add the WAKE_LOCK permission if you set this to True
#android.wakelock = False
# (list) Android application meta-data to set (key=value format)
#android.meta_data =
# (list) Android library project to add (will be added in the
# project.properties automatically.)
#android.library_references =
# (str) Android logcat filters to use
#android.logcat_filters = *:S python:D
# (bool) Copy library instead of making a libpymodules.so
#android.copy_libs = 1
# (str) The Android arch to build for, choices: armeabi-v7a, arm64-v8a, x86
android.arch = armeabi-v7a
#
# Python for android (p4a) specific
#
# (str) python-for-android git clone directory (if empty, it will be automatically cloned from github)
#p4a.source_dir =
# (str) The directory in which python-for-android should look for your own build recipes (if any)
#p4a.local_recipes =
# (str) Filename to the hook for p4a
#p4a.hook =
# (str) Bootstrap to use for android builds
# p4a.bootstrap = sdl2
#
# iOS specific
#
# (str) Path to a custom kivy-ios folder
#ios.kivy_ios_dir = ../kivy-ios
# (str) Name of the certificate to use for signing the debug version
# Get a list of available identities: buildozer ios list_identities
#ios.codesign.debug = "iPhone Developer: <lastname> <firstname> (<hexstring>)"
# (str) Name of the certificate to use for signing the release version
#ios.codesign.release = %(ios.codesign.debug)s
[buildozer]
# (int) Log level (0 = error only, 1 = info, 2 = debug (with command output))
log_level = 2
# (int) Display warning if buildozer is run as root (0 = False, 1 = True)
warn_on_root = 1
# (str) Path to build artifact storage, absolute or relative to spec file
# build_dir = ./.buildozer
# (str) Path to build output (i.e. .apk, .ipa) storage
# bin_dir = ./bin
# -----------------------------------------------------------------------------
# List as sections
#
# You can define all the "list" as [section:key].
# Each line will be considered as a option to the list.
# Let's take [app] / source.exclude_patterns.
# Instead of doing:
#
#[app]
#source.exclude_patterns = license,data/audio/*.wav,data/images/original/*
#
# This can be translated into:
#
#[app:source.exclude_patterns]
#license
#data/audio/*.wav
#data/images/original/*
#
# -----------------------------------------------------------------------------
# Profiles
#
# You can extend section / key with a profile
# For example, you want to deploy a demo version of your application without
# HD content. You could first change the title to add "(demo)" in the name
# and extend the excluded directories to remove the HD content.
#
#[app@demo]
#title = My Application (demo)
#
#[app:source.exclude_patterns@demo]
#images/hd/*
#
# Then, invoke the command line with the "demo" profile:
#
#buildozer --profile demo android debug

View File

@ -1,4 +1,6 @@
import threading import threading
import addresses
import binascii
from bmconfigparser import BMConfigParser from bmconfigparser import BMConfigParser
import sqlite3 import sqlite3
import time import time
@ -6,16 +8,13 @@ import shutil # used for moving the messages.dat file
import sys import sys
import os import os
from debug import logger from debug import logger
import defaults
import helper_sql import helper_sql
from namecoin import ensureNamecoinOptions import helper_startup
import paths import paths
import queues import queues
import state import state
import tr#anslate import tr
import helper_random
import addresses
import binascii
# This thread exists because SQLITE3 is so un-threadsafe that we must # This thread exists because SQLITE3 is so un-threadsafe that we must
# submit queries to it and it puts results back in a different queue. They # submit queries to it and it puts results back in a different queue. They
# won't let us just use locks. # won't let us just use locks.
@ -70,35 +69,26 @@ class sqlThread(threading.Thread):
'ERROR trying to create database file (message.dat). Error message: %s\n' % str(err)) 'ERROR trying to create database file (message.dat). Error message: %s\n' % str(err))
os._exit(0) os._exit(0)
if BMConfigParser().getint('bitmessagesettings', 'settingsversion') == 1: # If the settings version is equal to 2 or 3 then the
BMConfigParser().set('bitmessagesettings', 'settingsversion', '2') # sqlThread will modify the pubkeys table and change
# If the settings version is equal to 2 or 3 then the # the settings version to 4.
# sqlThread will modify the pubkeys table and change settingsversion = BMConfigParser().getint(
# the settings version to 4. 'bitmessagesettings', 'settingsversion')
BMConfigParser().set('bitmessagesettings', 'socksproxytype', 'none')
BMConfigParser().set('bitmessagesettings', 'sockshostname', 'localhost')
BMConfigParser().set('bitmessagesettings', 'socksport', '9050')
BMConfigParser().set('bitmessagesettings', 'socksauthentication', 'false')
BMConfigParser().set('bitmessagesettings', 'socksusername', '')
BMConfigParser().set('bitmessagesettings', 'sockspassword', '')
BMConfigParser().set('bitmessagesettings', 'sockslisten', 'false')
BMConfigParser().set('bitmessagesettings', 'keysencrypted', 'false')
BMConfigParser().set('bitmessagesettings', 'messagesencrypted', 'false')
# People running earlier versions of PyBitmessage do not have the # People running earlier versions of PyBitmessage do not have the
# usedpersonally field in their pubkeys table. Let's add it. # usedpersonally field in their pubkeys table. Let's add it.
if BMConfigParser().getint('bitmessagesettings', 'settingsversion') == 2: if settingsversion == 2:
item = '''ALTER TABLE pubkeys ADD usedpersonally text DEFAULT 'no' ''' item = '''ALTER TABLE pubkeys ADD usedpersonally text DEFAULT 'no' '''
parameters = '' parameters = ''
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
self.conn.commit() self.conn.commit()
BMConfigParser().set('bitmessagesettings', 'settingsversion', '3') settingsversion = 3
# People running earlier versions of PyBitmessage do not have the # People running earlier versions of PyBitmessage do not have the
# encodingtype field in their inbox and sent tables or the read field # encodingtype field in their inbox and sent tables or the read field
# in the inbox table. Let's add them. # in the inbox table. Let's add them.
if BMConfigParser().getint('bitmessagesettings', 'settingsversion') == 3: if settingsversion == 3:
item = '''ALTER TABLE inbox ADD encodingtype int DEFAULT '2' ''' item = '''ALTER TABLE inbox ADD encodingtype int DEFAULT '2' '''
parameters = '' parameters = ''
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
@ -112,21 +102,13 @@ class sqlThread(threading.Thread):
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
self.conn.commit() self.conn.commit()
BMConfigParser().set('bitmessagesettings', 'settingsversion', '4') settingsversion = 4
if BMConfigParser().getint('bitmessagesettings', 'settingsversion') == 4: BMConfigParser().set(
BMConfigParser().set('bitmessagesettings', 'defaultnoncetrialsperbyte', str( 'bitmessagesettings', 'settingsversion', str(settingsversion))
defaults.networkDefaultProofOfWorkNonceTrialsPerByte)) BMConfigParser().save()
BMConfigParser().set('bitmessagesettings', 'defaultpayloadlengthextrabytes', str(
defaults.networkDefaultPayloadLengthExtraBytes))
BMConfigParser().set('bitmessagesettings', 'settingsversion', '5')
if BMConfigParser().getint('bitmessagesettings', 'settingsversion') == 5: helper_startup.updateConfig()
BMConfigParser().set(
'bitmessagesettings', 'maxacceptablenoncetrialsperbyte', '0')
BMConfigParser().set(
'bitmessagesettings', 'maxacceptablepayloadlengthextrabytes', '0')
BMConfigParser().set('bitmessagesettings', 'settingsversion', '6')
# From now on, let us keep a 'version' embedded in the messages.dat # From now on, let us keep a 'version' embedded in the messages.dat
# file so that when we make changes to the database, the database # file so that when we make changes to the database, the database
@ -137,7 +119,8 @@ class sqlThread(threading.Thread):
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
if self.cur.fetchall() == []: if self.cur.fetchall() == []:
# The settings table doesn't exist. We need to make it. # The settings table doesn't exist. We need to make it.
logger.debug('In messages.dat database, creating new \'settings\' table.') logger.debug(
"In messages.dat database, creating new 'settings' table.")
self.cur.execute( self.cur.execute(
'''CREATE TABLE settings (key text, value blob, UNIQUE(key) ON CONFLICT REPLACE)''' ) '''CREATE TABLE settings (key text, value blob, UNIQUE(key) ON CONFLICT REPLACE)''' )
self.cur.execute( '''INSERT INTO settings VALUES('version','1')''') self.cur.execute( '''INSERT INTO settings VALUES('version','1')''')
@ -218,17 +201,15 @@ class sqlThread(threading.Thread):
self.conn.commit() self.conn.commit()
if not BMConfigParser().has_option('bitmessagesettings', 'sockslisten'): # Let's get rid of the first20bytesofencryptedmessage field in
BMConfigParser().set('bitmessagesettings', 'sockslisten', 'false') # the inventory table.
ensureNamecoinOptions()
# Let's get rid of the first20bytesofencryptedmessage field in the inventory table.
item = '''SELECT value FROM settings WHERE key='version';''' item = '''SELECT value FROM settings WHERE key='version';'''
parameters = '' parameters = ''
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
if int(self.cur.fetchall()[0][0]) == 2: if int(self.cur.fetchall()[0][0]) == 2:
logger.debug('In messages.dat database, removing an obsolete field from the inventory table.') logger.debug(
'In messages.dat database, removing an obsolete field from'
' the inventory table.')
self.cur.execute( self.cur.execute(
'''CREATE TEMPORARY TABLE inventory_backup(hash blob, objecttype text, streamnumber int, payload blob, receivedtime integer, UNIQUE(hash) ON CONFLICT REPLACE);''') '''CREATE TEMPORARY TABLE inventory_backup(hash blob, objecttype text, streamnumber int, payload blob, receivedtime integer, UNIQUE(hash) ON CONFLICT REPLACE);''')
self.cur.execute( self.cur.execute(
@ -249,7 +230,9 @@ class sqlThread(threading.Thread):
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
currentVersion = int(self.cur.fetchall()[0][0]) currentVersion = int(self.cur.fetchall()[0][0])
if currentVersion == 1 or currentVersion == 3: if currentVersion == 1 or currentVersion == 3:
logger.debug('In messages.dat database, adding tag field to the inventory table.') logger.debug(
'In messages.dat database, adding tag field to'
' the inventory table.')
item = '''ALTER TABLE inventory ADD tag blob DEFAULT '' ''' item = '''ALTER TABLE inventory ADD tag blob DEFAULT '' '''
parameters = '' parameters = ''
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
@ -257,16 +240,6 @@ class sqlThread(threading.Thread):
parameters = (4,) parameters = (4,)
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
if not BMConfigParser().has_option('bitmessagesettings', 'userlocale'):
BMConfigParser().set('bitmessagesettings', 'userlocale', 'system')
if not BMConfigParser().has_option('bitmessagesettings', 'sendoutgoingconnections'):
BMConfigParser().set('bitmessagesettings', 'sendoutgoingconnections', 'True')
# Raise the default required difficulty from 1 to 2
# With the change to protocol v3, this is obsolete.
if BMConfigParser().getint('bitmessagesettings', 'settingsversion') == 6:
BMConfigParser().set('bitmessagesettings', 'settingsversion', '7')
# Add a new column to the pubkeys table to store the address version. # Add a new column to the pubkeys table to store the address version.
# We're going to trash all of our pubkeys and let them be redownloaded. # We're going to trash all of our pubkeys and let them be redownloaded.
item = '''SELECT value FROM settings WHERE key='version';''' item = '''SELECT value FROM settings WHERE key='version';'''
@ -274,28 +247,15 @@ class sqlThread(threading.Thread):
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
currentVersion = int(self.cur.fetchall()[0][0]) currentVersion = int(self.cur.fetchall()[0][0])
if currentVersion == 4: if currentVersion == 4:
self.cur.execute( '''DROP TABLE pubkeys''') self.cur.execute('''DROP TABLE pubkeys''')
self.cur.execute( self.cur.execute(
'''CREATE TABLE pubkeys (hash blob, addressversion int, transmitdata blob, time int, usedpersonally text, UNIQUE(hash, addressversion) ON CONFLICT REPLACE)''' ) '''CREATE TABLE pubkeys (hash blob, addressversion int, transmitdata blob, time int, usedpersonally text, UNIQUE(hash, addressversion) ON CONFLICT REPLACE)''')
self.cur.execute( self.cur.execute(
'''delete from inventory where objecttype = 'pubkey';''') '''delete from inventory where objecttype = 'pubkey';''')
item = '''update settings set value=? WHERE key='version';''' item = '''update settings set value=? WHERE key='version';'''
parameters = (5,) parameters = (5,)
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
if not BMConfigParser().has_option('bitmessagesettings', 'useidenticons'):
BMConfigParser().set('bitmessagesettings', 'useidenticons', 'True')
if not BMConfigParser().has_option('bitmessagesettings', 'identiconsuffix'): # acts as a salt
BMConfigParser().set('bitmessagesettings', 'identiconsuffix', ''.join(helper_random.randomchoice("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz") for x in range(12)))# a twelve character pseudo-password to salt the identicons
#Add settings to support no longer resending messages after a certain period of time even if we never get an ack
if BMConfigParser().getint('bitmessagesettings', 'settingsversion') == 7:
BMConfigParser().set(
'bitmessagesettings', 'stopresendingafterxdays', '')
BMConfigParser().set(
'bitmessagesettings', 'stopresendingafterxmonths', '')
BMConfigParser().set('bitmessagesettings', 'settingsversion', '8')
# Add a new table: objectprocessorqueue with which to hold objects # Add a new table: objectprocessorqueue with which to hold objects
# that have yet to be processed if the user shuts down Bitmessage. # that have yet to be processed if the user shuts down Bitmessage.
item = '''SELECT value FROM settings WHERE key='version';''' item = '''SELECT value FROM settings WHERE key='version';'''
@ -303,21 +263,24 @@ class sqlThread(threading.Thread):
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
currentVersion = int(self.cur.fetchall()[0][0]) currentVersion = int(self.cur.fetchall()[0][0])
if currentVersion == 5: if currentVersion == 5:
self.cur.execute( '''DROP TABLE knownnodes''') self.cur.execute('''DROP TABLE knownnodes''')
self.cur.execute( self.cur.execute(
'''CREATE TABLE objectprocessorqueue (objecttype text, data blob, UNIQUE(objecttype, data) ON CONFLICT REPLACE)''' ) '''CREATE TABLE objectprocessorqueue (objecttype text, data blob, UNIQUE(objecttype, data) ON CONFLICT REPLACE)''')
item = '''update settings set value=? WHERE key='version';''' item = '''update settings set value=? WHERE key='version';'''
parameters = (6,) parameters = (6,)
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
# changes related to protocol v3 # changes related to protocol v3
# In table inventory and objectprocessorqueue, objecttype is now an integer (it was a human-friendly string previously) # In table inventory and objectprocessorqueue, objecttype is now
# an integer (it was a human-friendly string previously)
item = '''SELECT value FROM settings WHERE key='version';''' item = '''SELECT value FROM settings WHERE key='version';'''
parameters = '' parameters = ''
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
currentVersion = int(self.cur.fetchall()[0][0]) currentVersion = int(self.cur.fetchall()[0][0])
if currentVersion == 6: if currentVersion == 6:
logger.debug('In messages.dat database, dropping and recreating the inventory table.') logger.debug(
'In messages.dat database, dropping and recreating'
' the inventory table.')
self.cur.execute( '''DROP TABLE inventory''') self.cur.execute( '''DROP TABLE inventory''')
self.cur.execute( '''CREATE TABLE inventory (hash blob, objecttype int, streamnumber int, payload blob, expirestime integer, tag blob, UNIQUE(hash) ON CONFLICT REPLACE)''' ) self.cur.execute( '''CREATE TABLE inventory (hash blob, objecttype int, streamnumber int, payload blob, expirestime integer, tag blob, UNIQUE(hash) ON CONFLICT REPLACE)''' )
self.cur.execute( '''DROP TABLE objectprocessorqueue''') self.cur.execute( '''DROP TABLE objectprocessorqueue''')
@ -325,57 +288,26 @@ class sqlThread(threading.Thread):
item = '''update settings set value=? WHERE key='version';''' item = '''update settings set value=? WHERE key='version';'''
parameters = (7,) parameters = (7,)
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
logger.debug('Finished dropping and recreating the inventory table.') logger.debug(
'Finished dropping and recreating the inventory table.')
# With the change to protocol version 3, reset the user-settable difficulties to 1
if BMConfigParser().getint('bitmessagesettings', 'settingsversion') == 8:
BMConfigParser().set('bitmessagesettings','defaultnoncetrialsperbyte', str(defaults.networkDefaultProofOfWorkNonceTrialsPerByte))
BMConfigParser().set('bitmessagesettings','defaultpayloadlengthextrabytes', str(defaults.networkDefaultPayloadLengthExtraBytes))
previousTotalDifficulty = int(BMConfigParser().getint('bitmessagesettings', 'maxacceptablenoncetrialsperbyte')) / 320
previousSmallMessageDifficulty = int(BMConfigParser().getint('bitmessagesettings', 'maxacceptablepayloadlengthextrabytes')) / 14000
BMConfigParser().set('bitmessagesettings','maxacceptablenoncetrialsperbyte', str(previousTotalDifficulty * 1000))
BMConfigParser().set('bitmessagesettings','maxacceptablepayloadlengthextrabytes', str(previousSmallMessageDifficulty * 1000))
BMConfigParser().set('bitmessagesettings', 'settingsversion', '9')
# Adjust the required POW values for each of this user's addresses to conform to protocol v3 norms.
if BMConfigParser().getint('bitmessagesettings', 'settingsversion') == 9:
for addressInKeysFile in BMConfigParser().addressses():
try:
previousTotalDifficulty = float(BMConfigParser().getint(addressInKeysFile, 'noncetrialsperbyte')) / 320
previousSmallMessageDifficulty = float(BMConfigParser().getint(addressInKeysFile, 'payloadlengthextrabytes')) / 14000
if previousTotalDifficulty <= 2:
previousTotalDifficulty = 1
if previousSmallMessageDifficulty < 1:
previousSmallMessageDifficulty = 1
BMConfigParser().set(addressInKeysFile,'noncetrialsperbyte', str(int(previousTotalDifficulty * 1000)))
BMConfigParser().set(addressInKeysFile,'payloadlengthextrabytes', str(int(previousSmallMessageDifficulty * 1000)))
except:
continue
BMConfigParser().set('bitmessagesettings', 'maxdownloadrate', '0')
BMConfigParser().set('bitmessagesettings', 'maxuploadrate', '0')
BMConfigParser().set('bitmessagesettings', 'settingsversion', '10')
BMConfigParser().save()
# sanity check
if BMConfigParser().getint('bitmessagesettings', 'maxacceptablenoncetrialsperbyte') == 0:
BMConfigParser().set('bitmessagesettings','maxacceptablenoncetrialsperbyte', str(defaults.ridiculousDifficulty * defaults.networkDefaultProofOfWorkNonceTrialsPerByte))
if BMConfigParser().getint('bitmessagesettings', 'maxacceptablepayloadlengthextrabytes') == 0:
BMConfigParser().set('bitmessagesettings','maxacceptablepayloadlengthextrabytes', str(defaults.ridiculousDifficulty * defaults.networkDefaultPayloadLengthExtraBytes))
# The format of data stored in the pubkeys table has changed. Let's # The format of data stored in the pubkeys table has changed. Let's
# clear it, and the pubkeys from inventory, so that they'll be re-downloaded. # clear it, and the pubkeys from inventory, so that they'll
# be re-downloaded.
item = '''SELECT value FROM settings WHERE key='version';''' item = '''SELECT value FROM settings WHERE key='version';'''
parameters = '' parameters = ''
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
currentVersion = int(self.cur.fetchall()[0][0]) currentVersion = int(self.cur.fetchall()[0][0])
if currentVersion == 7: if currentVersion == 7:
logger.debug('In messages.dat database, clearing pubkeys table because the data format has been updated.') logger.debug(
'In messages.dat database, clearing pubkeys table'
' because the data format has been updated.')
self.cur.execute( self.cur.execute(
'''delete from inventory where objecttype = 1;''') '''delete from inventory where objecttype = 1;''')
self.cur.execute( self.cur.execute(
'''delete from pubkeys;''') '''delete from pubkeys;''')
# Any sending messages for which we *thought* that we had the pubkey must # Any sending messages for which we *thought* that we had
# be rechecked. # the pubkey must be rechecked.
self.cur.execute( self.cur.execute(
'''UPDATE sent SET status='msgqueued' WHERE status='doingmsgpow' or status='badkey';''') '''UPDATE sent SET status='msgqueued' WHERE status='doingmsgpow' or status='badkey';''')
query = '''update settings set value=? WHERE key='version';''' query = '''update settings set value=? WHERE key='version';'''
@ -383,14 +315,17 @@ class sqlThread(threading.Thread):
self.cur.execute(query, parameters) self.cur.execute(query, parameters)
logger.debug('Finished clearing currently held pubkeys.') logger.debug('Finished clearing currently held pubkeys.')
# Add a new column to the inbox table to store the hash of the message signature. # Add a new column to the inbox table to store the hash of
# We'll use this as temporary message UUID in order to detect duplicates. # the message signature. We'll use this as temporary message UUID
# in order to detect duplicates.
item = '''SELECT value FROM settings WHERE key='version';''' item = '''SELECT value FROM settings WHERE key='version';'''
parameters = '' parameters = ''
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
currentVersion = int(self.cur.fetchall()[0][0]) currentVersion = int(self.cur.fetchall()[0][0])
if currentVersion == 8: if currentVersion == 8:
logger.debug('In messages.dat database, adding sighash field to the inbox table.') logger.debug(
'In messages.dat database, adding sighash field to'
' the inbox table.')
item = '''ALTER TABLE inbox ADD sighash blob DEFAULT '' ''' item = '''ALTER TABLE inbox ADD sighash blob DEFAULT '' '''
parameters = '' parameters = ''
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
@ -398,17 +333,18 @@ class sqlThread(threading.Thread):
parameters = (9,) parameters = (9,)
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
# TTL is now user-specifiable. Let's add an option to save whatever the user selects. # We'll also need a `sleeptill` field and a `ttl` field. Also we
if not BMConfigParser().has_option('bitmessagesettings', 'ttl'): # can combine the pubkeyretrynumber and msgretrynumber into one.
BMConfigParser().set('bitmessagesettings', 'ttl', '367200')
# We'll also need a `sleeptill` field and a `ttl` field. Also we can combine
# the pubkeyretrynumber and msgretrynumber into one.
item = '''SELECT value FROM settings WHERE key='version';''' item = '''SELECT value FROM settings WHERE key='version';'''
parameters = '' parameters = ''
self.cur.execute(item, parameters) self.cur.execute(item, parameters)
currentVersion = int(self.cur.fetchall()[0][0]) currentVersion = int(self.cur.fetchall()[0][0])
if currentVersion == 9: if currentVersion == 9:
logger.info('In messages.dat database, making TTL-related changes: combining the pubkeyretrynumber and msgretrynumber fields into the retrynumber field and adding the sleeptill and ttl fields...') logger.info(
'In messages.dat database, making TTL-related changes:'
' combining the pubkeyretrynumber and msgretrynumber'
' fields into the retrynumber field and adding the'
' sleeptill and ttl fields...')
self.cur.execute( self.cur.execute(
'''CREATE TEMPORARY TABLE sent_backup (msgid blob, toaddress text, toripe blob, fromaddress text, subject text, message text, ackdata blob, lastactiontime integer, status text, retrynumber integer, folder text, encodingtype int)''' ) '''CREATE TEMPORARY TABLE sent_backup (msgid blob, toaddress text, toripe blob, fromaddress text, subject text, message text, ackdata blob, lastactiontime integer, status text, retrynumber integer, folder text, encodingtype int)''' )
self.cur.execute( self.cur.execute(
@ -447,30 +383,9 @@ class sqlThread(threading.Thread):
logger.debug('In messages.dat database, done adding address field to the pubkeys table and removing the hash field.') logger.debug('In messages.dat database, done adding address field to the pubkeys table and removing the hash field.')
self.cur.execute('''update settings set value=10 WHERE key='version';''') self.cur.execute('''update settings set value=10 WHERE key='version';''')
if not BMConfigParser().has_option('bitmessagesettings', 'onionhostname'):
BMConfigParser().set('bitmessagesettings', 'onionhostname', '')
if not BMConfigParser().has_option('bitmessagesettings', 'onionport'):
BMConfigParser().set('bitmessagesettings', 'onionport', '8444')
if not BMConfigParser().has_option('bitmessagesettings', 'onionbindip'):
BMConfigParser().set('bitmessagesettings', 'onionbindip', '127.0.0.1')
if not BMConfigParser().has_option('bitmessagesettings', 'smtpdeliver'):
BMConfigParser().set('bitmessagesettings', 'smtpdeliver', '')
if not BMConfigParser().has_option('bitmessagesettings', 'hidetrayconnectionnotifications'):
BMConfigParser().set('bitmessagesettings', 'hidetrayconnectionnotifications', 'false')
if BMConfigParser().has_option('bitmessagesettings', 'maxoutboundconnections'):
try:
if BMConfigParser().getint('bitmessagesettings', 'maxoutboundconnections') < 1: raise ValueError
except ValueError as err:
BMConfigParser().remove_option('bitmessagesettings', 'maxoutboundconnections')
logger.error('Your maximum outbound connections must be a number.')
if not BMConfigParser().has_option('bitmessagesettings', 'maxoutboundconnections'):
logger.info('Setting maximum outbound connections to 8.')
BMConfigParser().set('bitmessagesettings', 'maxoutboundconnections', '8')
BMConfigParser().save()
# Are you hoping to add a new option to the keys.dat file of existing # Are you hoping to add a new option to the keys.dat file of existing
# Bitmessage users or modify the SQLite database? Add it right above this line! # Bitmessage users or modify the SQLite database? Add it right
# above this line!
try: try:
testpayload = '\x00\x00' testpayload = '\x00\x00'

View File

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
""" """
Logging and debuging facility Logging and debuging facility
============================= =============================
@ -11,7 +10,7 @@ Levels:
Confirmation that things are working as expected. Confirmation that things are working as expected.
WARNING WARNING
An indication that something unexpected happened, or indicative of some problem in the An indication that something unexpected happened, or indicative of some problem in the
near future (e.g. disk space low). The software is still working as expected. near future (e.g. 'disk space low'). The software is still working as expected.
ERROR ERROR
Due to a more serious problem, the software has not been able to perform some function. Due to a more serious problem, the software has not been able to perform some function.
CRITICAL CRITICAL
@ -113,10 +112,10 @@ def configureLogging():
return True return True
if __name__ == "__main__": # TODO (xj9): Get from a config file.
# logger = logging.getLogger('console_only')
# TODO (xj9): Get from a config file. def initLogging():
#logger = logging.getLogger('console_only')
if configureLogging(): if configureLogging():
if '-c' in sys.argv: if '-c' in sys.argv:
logger = logging.getLogger('file_only') logger = logging.getLogger('file_only')
@ -124,8 +123,8 @@ if __name__ == "__main__":
logger = logging.getLogger('both') logger = logging.getLogger('both')
else: else:
logger = logging.getLogger('default') logger = logging.getLogger('default')
else: return logger
logger = logging.getLogger('default')
def restartLoggingInUpdatedAppdataLocation(): def restartLoggingInUpdatedAppdataLocation():
global logger global logger
@ -133,11 +132,8 @@ def restartLoggingInUpdatedAppdataLocation():
logger.removeHandler(i) logger.removeHandler(i)
i.flush() i.flush()
i.close() i.close()
if configureLogging(): logger = initLogging()
if '-c' in sys.argv:
logger = logging.getLogger('file_only')
else:
logger = logging.getLogger('both')
else:
logger = logging.getLogger('default')
# !
logger = initLogging()

View File

@ -8,14 +8,13 @@ import os
import platform import platform
from distutils.version import StrictVersion from distutils.version import StrictVersion
from namecoin import ensureNamecoinOptions
import paths import paths
import state import state
import helper_random import helper_random
# The user may de-select Portable Mode in the settings if they want
# the config files to stay in the application data folder.
StoreConfigFilesInSameDirectoryAsProgramByDefault = False StoreConfigFilesInSameDirectoryAsProgramByDefault = False
# The user may de-select Portable Mode in the settings if they want the config
# files to stay in the application data folder.
def _loadTrustedPeer(): def _loadTrustedPeer():
@ -31,105 +30,98 @@ def _loadTrustedPeer():
def loadConfig(): def loadConfig():
config = BMConfigParser()
if state.appdata: if state.appdata:
BMConfigParser().read(state.appdata + 'keys.dat') config.read(state.appdata + 'keys.dat')
# state.appdata must have been specified as a startup option. # state.appdata must have been specified as a startup option.
try: needToCreateKeysFile = config.safeGet(
BMConfigParser().get('bitmessagesettings', 'settingsversion') 'bitmessagesettings', 'settingsversion') is None
print 'Loading config files from directory specified on startup: ' + state.appdata if not needToCreateKeysFile:
needToCreateKeysFile = False print(
except Exception: 'Loading config files from directory specified'
needToCreateKeysFile = True ' on startup: %s' % state.appdata)
else: else:
BMConfigParser().read(paths.lookupExeFolder() + 'keys.dat') config.read(paths.lookupExeFolder() + 'keys.dat')
try: try:
BMConfigParser().get('bitmessagesettings', 'settingsversion') config.get('bitmessagesettings', 'settingsversion')
print 'Loading config files from same directory as program.' print 'Loading config files from same directory as program.'
needToCreateKeysFile = False needToCreateKeysFile = False
state.appdata = paths.lookupExeFolder() state.appdata = paths.lookupExeFolder()
except Exception: except:
# Could not load the keys.dat file in the program directory. # Could not load the keys.dat file in the program directory.
# Perhaps it is in the appdata directory. # Perhaps it is in the appdata directory.
state.appdata = paths.lookupAppdataFolder() state.appdata = paths.lookupAppdataFolder()
BMConfigParser().read(state.appdata + 'keys.dat') config.read(state.appdata + 'keys.dat')
try: needToCreateKeysFile = config.safeGet(
BMConfigParser().get('bitmessagesettings', 'settingsversion') 'bitmessagesettings', 'settingsversion') is None
if not needToCreateKeysFile:
print 'Loading existing config files from', state.appdata print 'Loading existing config files from', state.appdata
needToCreateKeysFile = False
except Exception:
needToCreateKeysFile = True
if needToCreateKeysFile: if needToCreateKeysFile:
# This appears to be the first time running the program; there is # This appears to be the first time running the program; there is
# no config file (or it cannot be accessed). Create config file. # no config file (or it cannot be accessed). Create config file.
BMConfigParser().add_section('bitmessagesettings') config.add_section('bitmessagesettings')
BMConfigParser().set('bitmessagesettings', 'settingsversion', '10') config.set('bitmessagesettings', 'settingsversion', '10')
BMConfigParser().set('bitmessagesettings', 'port', '8444') config.set('bitmessagesettings', 'port', '8444')
BMConfigParser().set( config.set('bitmessagesettings', 'timeformat', '%%c')
'bitmessagesettings', 'timeformat', '%%c') config.set('bitmessagesettings', 'blackwhitelist', 'black')
BMConfigParser().set('bitmessagesettings', 'blackwhitelist', 'black') config.set('bitmessagesettings', 'startonlogon', 'false')
BMConfigParser().set('bitmessagesettings', 'startonlogon', 'false')
if 'linux' in sys.platform: if 'linux' in sys.platform:
BMConfigParser().set( config.set('bitmessagesettings', 'minimizetotray', 'false')
'bitmessagesettings', 'minimizetotray', 'false') # This isn't implimented yet and when True on
# This isn't implimented yet and when True on # Ubuntu causes Bitmessage to disappear while
# Ubuntu causes Bitmessage to disappear while # running when minimized.
# running when minimized.
else: else:
BMConfigParser().set( config.set('bitmessagesettings', 'minimizetotray', 'true')
'bitmessagesettings', 'minimizetotray', 'true') config.set('bitmessagesettings', 'showtraynotifications', 'true')
BMConfigParser().set( config.set('bitmessagesettings', 'startintray', 'false')
'bitmessagesettings', 'showtraynotifications', 'true') config.set('bitmessagesettings', 'socksproxytype', 'none')
BMConfigParser().set('bitmessagesettings', 'startintray', 'false') config.set('bitmessagesettings', 'sockshostname', 'localhost')
BMConfigParser().set('bitmessagesettings', 'socksproxytype', 'none') config.set('bitmessagesettings', 'socksport', '9050')
BMConfigParser().set( config.set('bitmessagesettings', 'socksauthentication', 'false')
'bitmessagesettings', 'sockshostname', 'localhost') # config.set('bitmessagesettings', 'sockslisten', 'false')
BMConfigParser().set('bitmessagesettings', 'socksport', '9050') config.set('bitmessagesettings', 'socksusername', '')
BMConfigParser().set( config.set('bitmessagesettings', 'sockspassword', '')
'bitmessagesettings', 'socksauthentication', 'false') config.set('bitmessagesettings', 'keysencrypted', 'false')
BMConfigParser().set( config.set('bitmessagesettings', 'messagesencrypted', 'false')
'bitmessagesettings', 'sockslisten', 'false') config.set(
BMConfigParser().set('bitmessagesettings', 'socksusername', '') 'bitmessagesettings', 'defaultnoncetrialsperbyte',
BMConfigParser().set('bitmessagesettings', 'sockspassword', '') str(defaults.networkDefaultProofOfWorkNonceTrialsPerByte))
BMConfigParser().set('bitmessagesettings', 'keysencrypted', 'false') config.set(
BMConfigParser().set( 'bitmessagesettings', 'defaultpayloadlengthextrabytes',
'bitmessagesettings', 'messagesencrypted', 'false') str(defaults.networkDefaultPayloadLengthExtraBytes))
BMConfigParser().set('bitmessagesettings', 'defaultnoncetrialsperbyte', str( config.set('bitmessagesettings', 'minimizeonclose', 'false')
defaults.networkDefaultProofOfWorkNonceTrialsPerByte)) # config.set(
BMConfigParser().set('bitmessagesettings', 'defaultpayloadlengthextrabytes', str( # 'bitmessagesettings', 'maxacceptablenoncetrialsperbyte', '0')
defaults.networkDefaultPayloadLengthExtraBytes)) # config.set(
BMConfigParser().set('bitmessagesettings', 'minimizeonclose', 'false') # 'bitmessagesettings', 'maxacceptablepayloadlengthextrabytes',
BMConfigParser().set( # '0')
'bitmessagesettings', 'maxacceptablenoncetrialsperbyte', '0') config.set('bitmessagesettings', 'dontconnect', 'true')
BMConfigParser().set( # config.set('bitmessagesettings', 'userlocale', 'system')
'bitmessagesettings', 'maxacceptablepayloadlengthextrabytes', '0') # config.set('bitmessagesettings', 'useidenticons', 'True')
BMConfigParser().set('bitmessagesettings', 'dontconnect', 'true') # config.set(
BMConfigParser().set('bitmessagesettings', 'userlocale', 'system') # 'bitmessagesettings', 'identiconsuffix',
BMConfigParser().set('bitmessagesettings', 'useidenticons', 'True') # ''.join(helper_random.randomchoice(
BMConfigParser().set('bitmessagesettings', 'identiconsuffix', ''.join(helper_random.randomchoice("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz") for x in range(12)))# a twelve character pseudo-password to salt the identicons # "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
BMConfigParser().set('bitmessagesettings', 'replybelow', 'False') # ) for x in range(12)
BMConfigParser().set('bitmessagesettings', 'maxdownloadrate', '0') # )) # a twelve character pseudo-password to salt the identicons
BMConfigParser().set('bitmessagesettings', 'maxuploadrate', '0') config.set('bitmessagesettings', 'replybelow', 'False')
BMConfigParser().set('bitmessagesettings', 'maxoutboundconnections', '8') config.set('bitmessagesettings', 'maxdownloadrate', '0')
BMConfigParser().set('bitmessagesettings', 'ttl', '367200') config.set('bitmessagesettings', 'maxuploadrate', '0')
# config.set('bitmessagesettings', 'maxoutboundconnections', '8')
# config.set('bitmessagesettings', 'ttl', '367200')
#start:UI setting to stop trying to send messages after X days/months # UI setting to stop trying to send messages after X days/months
BMConfigParser().set( config.set('bitmessagesettings', 'stopresendingafterxdays', '')
'bitmessagesettings', 'stopresendingafterxdays', '') config.set('bitmessagesettings', 'stopresendingafterxmonths', '')
BMConfigParser().set( # config.set('bitmessagesettings', 'timeperiod', '-1')
'bitmessagesettings', 'stopresendingafterxmonths', '')
#BMConfigParser().set(
# 'bitmessagesettings', 'timeperiod', '-1')
#end
# Are you hoping to add a new option to the keys.dat file? You're in # Are you hoping to add a new option to the keys.dat file? You're in
# the right place for adding it to users who install the software for # the right place for adding it to users who install the software for
# the first time. But you must also add it to the keys.dat file of # the first time. But you must also add it to the keys.dat file of
# existing users. To do that, search the class_sqlThread.py file for the # existing users. To do that, search the class_sqlThread.py file
# text: "right above this line!" # for the text: "right above this line!"
ensureNamecoinOptions()
if StoreConfigFilesInSameDirectoryAsProgramByDefault: if StoreConfigFilesInSameDirectoryAsProgramByDefault:
# Just use the same directory as the program and forget about # Just use the same directory as the program and forget about
@ -142,15 +134,187 @@ def loadConfig():
os.makedirs(state.appdata) os.makedirs(state.appdata)
if not sys.platform.startswith('win'): if not sys.platform.startswith('win'):
os.umask(0o077) os.umask(0o077)
BMConfigParser().save() config.save()
else:
updateConfig()
_loadTrustedPeer() _loadTrustedPeer()
def updateConfig():
config = BMConfigParser()
settingsversion = config.getint('bitmessagesettings', 'settingsversion')
if settingsversion == 1:
config.set('bitmessagesettings', 'socksproxytype', 'none')
config.set('bitmessagesettings', 'sockshostname', 'localhost')
config.set('bitmessagesettings', 'socksport', '9050')
config.set('bitmessagesettings', 'socksauthentication', 'false')
config.set('bitmessagesettings', 'socksusername', '')
config.set('bitmessagesettings', 'sockspassword', '')
config.set('bitmessagesettings', 'sockslisten', 'false')
config.set('bitmessagesettings', 'keysencrypted', 'false')
config.set('bitmessagesettings', 'messagesencrypted', 'false')
settingsversion = 2
# let class_sqlThread update SQL and continue
elif settingsversion == 4:
config.set(
'bitmessagesettings', 'defaultnoncetrialsperbyte',
str(defaults.networkDefaultProofOfWorkNonceTrialsPerByte))
config.set(
'bitmessagesettings', 'defaultpayloadlengthextrabytes',
str(defaults.networkDefaultPayloadLengthExtraBytes))
settingsversion = 5
if settingsversion == 5:
config.set(
'bitmessagesettings', 'maxacceptablenoncetrialsperbyte', '0')
config.set(
'bitmessagesettings', 'maxacceptablepayloadlengthextrabytes', '0')
settingsversion = 7
# Raise the default required difficulty from 1 to 2
# With the change to protocol v3, this is obsolete.
# if settingsversion == 6:
# if int(shared.config.get(
# 'bitmessagesettings', 'defaultnoncetrialsperbyte'
# )) == defaults.networkDefaultProofOfWorkNonceTrialsPerByte:
# shared.config.set(
# 'bitmessagesettings', 'defaultnoncetrialsperbyte',
# str(
# defaults.networkDefaultProofOfWorkNonceTrialsPerByte
# * 2)
# )
# settingsversion = 7
if not config.has_option('bitmessagesettings', 'sockslisten'):
config.set('bitmessagesettings', 'sockslisten', 'false')
if not config.has_option('bitmessagesettings', 'userlocale'):
config.set('bitmessagesettings', 'userlocale', 'system')
if not config.has_option('bitmessagesettings', 'sendoutgoingconnections'):
config.set('bitmessagesettings', 'sendoutgoingconnections', 'True')
if not config.has_option('bitmessagesettings', 'useidenticons'):
config.set('bitmessagesettings', 'useidenticons', 'True')
if not config.has_option('bitmessagesettings', 'identiconsuffix'):
# acts as a salt
config.set(
'bitmessagesettings', 'identiconsuffix',
''.join(helper_random.randomchoice(
"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
) for x in range(12)
)) # a twelve character pseudo-password to salt the identicons
# Add settings to support no longer resending messages after
# a certain period of time even if we never get an ack
if settingsversion == 7:
config.set('bitmessagesettings', 'stopresendingafterxdays', '')
config.set('bitmessagesettings', 'stopresendingafterxmonths', '')
settingsversion = 8
# With the change to protocol version 3, reset the user-settable
# difficulties to 1
if settingsversion == 8:
config.set(
'bitmessagesettings', 'defaultnoncetrialsperbyte',
str(defaults.networkDefaultProofOfWorkNonceTrialsPerByte))
config.set(
'bitmessagesettings', 'defaultpayloadlengthextrabytes',
str(defaults.networkDefaultPayloadLengthExtraBytes))
previousTotalDifficulty = int(
config.getint(
'bitmessagesettings', 'maxacceptablenoncetrialsperbyte')
) / 320
previousSmallMessageDifficulty = int(
config.getint(
'bitmessagesettings', 'maxacceptablepayloadlengthextrabytes')
) / 14000
config.set(
'bitmessagesettings', 'maxacceptablenoncetrialsperbyte',
str(previousTotalDifficulty * 1000))
config.set(
'bitmessagesettings', 'maxacceptablepayloadlengthextrabytes',
str(previousSmallMessageDifficulty * 1000))
settingsversion = 9
# Adjust the required POW values for each of this user's addresses
# to conform to protocol v3 norms.
if settingsversion == 9:
for addressInKeysFile in config.addresses():
try:
previousTotalDifficulty = float(
config.getint(
addressInKeysFile, 'noncetrialsperbyte')) / 320
previousSmallMessageDifficulty = float(
config.getint(
addressInKeysFile, 'payloadlengthextrabytes')) / 14000
if previousTotalDifficulty <= 2:
previousTotalDifficulty = 1
if previousSmallMessageDifficulty < 1:
previousSmallMessageDifficulty = 1
config.set(
addressInKeysFile, 'noncetrialsperbyte',
str(int(previousTotalDifficulty * 1000)))
config.set(
addressInKeysFile, 'payloadlengthextrabytes',
str(int(previousSmallMessageDifficulty * 1000)))
except Exception:
continue
config.set('bitmessagesettings', 'maxdownloadrate', '0')
config.set('bitmessagesettings', 'maxuploadrate', '0')
settingsversion = 10
# sanity check
if config.safeGetInt(
'bitmessagesettings', 'maxacceptablenoncetrialsperbyte') == 0:
config.set(
'bitmessagesettings', 'maxacceptablenoncetrialsperbyte',
str(defaults.ridiculousDifficulty *
defaults.networkDefaultProofOfWorkNonceTrialsPerByte)
)
if config.safeGetInt(
'bitmessagesettings', 'maxacceptablepayloadlengthextrabytes'
) == 0:
config.set(
'bitmessagesettings', 'maxacceptablepayloadlengthextrabytes',
str(defaults.ridiculousDifficulty *
defaults.networkDefaultPayloadLengthExtraBytes)
)
if not config.has_option('bitmessagesettings', 'onionhostname'):
config.set('bitmessagesettings', 'onionhostname', '')
if not config.has_option('bitmessagesettings', 'onionport'):
config.set('bitmessagesettings', 'onionport', '8444')
if not config.has_option('bitmessagesettings', 'onionbindip'):
config.set('bitmessagesettings', 'onionbindip', '127.0.0.1')
if not config.has_option('bitmessagesettings', 'smtpdeliver'):
config.set('bitmessagesettings', 'smtpdeliver', '')
if not config.has_option(
'bitmessagesettings', 'hidetrayconnectionnotifications'):
config.set(
'bitmessagesettings', 'hidetrayconnectionnotifications', 'false')
if config.safeGetInt('bitmessagesettings', 'maxoutboundconnections') < 1:
config.set('bitmessagesettings', 'maxoutboundconnections', '8')
print('WARNING: your maximum outbound connections must be a number.')
# TTL is now user-specifiable. Let's add an option to save
# whatever the user selects.
if not config.has_option('bitmessagesettings', 'ttl'):
config.set('bitmessagesettings', 'ttl', '367200')
config.set('bitmessagesettings', 'settingsversion', str(settingsversion))
config.save()
def isOurOperatingSystemLimitedToHavingVeryFewHalfOpenConnections(): def isOurOperatingSystemLimitedToHavingVeryFewHalfOpenConnections():
try: try:
if sys.platform[0:3] == "win": if sys.platform[0:3] == "win":
VER_THIS = StrictVersion(platform.version()) VER_THIS = StrictVersion(platform.version())
return StrictVersion("5.1.2600")<=VER_THIS and StrictVersion("6.0.6000")>=VER_THIS return (
StrictVersion("5.1.2600") <= VER_THIS and
StrictVersion("6.0.6000") >= VER_THIS
)
return False return False
except Exception: except Exception:
return False pass

8
src/main.py Normal file
View File

@ -0,0 +1,8 @@
"""This module is for thread start."""
from bitmessagemain import main
import state
if __name__ == '__main__':
state.kivy = True
print("Kivy Loading......")
main()

View File

@ -73,3 +73,5 @@ resetNetworkProtocolAvailability()
dandelion = 0 dandelion = 0
testmode = False testmode = False
kivy = False

Binary file not shown.

View File

@ -112,7 +112,7 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<context> <context>
<name>Mailchuck</name> <name>Mailchuck</name>
<message> <message>
<location filename="../bitmessageqt/account.py" line="243"/> <location filename="../bitmessageqt/account.py" line="225"/>
<source># You can use this to configure your email gateway account <source># You can use this to configure your email gateway account
# Uncomment the setting you want to use # Uncomment the setting you want to use
# Here are the options: # Here are the options:
@ -153,101 +153,102 @@ Please type the desired email address (including @mailchuck.com) below:</source>
# the money directly. To turn it off again, set &quot;feeamount&quot; to 0. Requires # the money directly. To turn it off again, set &quot;feeamount&quot; to 0. Requires
# subscription. # subscription.
</source> </source>
<translation># Vous pouvez utiliser ceci pour configurer votre compte de passerelle de <translation type="unfinished"/>
# messagerie. </message>
# Décommentez les paramètres que vous souhaitez utiliser. <message>
# Les options se trouvent ci-dessous : <location filename="../bitmessageqt/account.py" line="299"/>
# <source># You can use this to configure your email gateway account
# Uncomment the setting you want to use
# Here are the options:
#
# pgp: server # pgp: server
# La passerelle de messagerie va créer et conserver pour vous les clefs PGP, # The email gateway will create and maintain PGP keys for you and sign, verify,
# et va signer, vérifier, chiffrer et déchiffrer en votre nom. Choisissez cela si # encrypt and decrypt on your behalf. When you want to use PGP but are lazy,
# vous voulez utilisez PGP mais que vous êtes paresseux. Exige une inscription. # use this. Requires subscription.
# #
# pgp: local # pgp: local
# La passerelle de messagerie ne va pas exécuter les commandes PGP en # The email gateway will not conduct PGP operations on your behalf. You can
# votre nom. Vous pouvez soit ne pas utiliser PGP du tout, soit lutiliser # either not use PGP at all, or use it locally.
# localement.
# #
# attachments: yes # attachments: yes
# Les pièces-jointes reçues dans le courriel seront téléversées sur MEGA.nz, # Incoming attachments in the email will be uploaded to MEGA.nz, and you can
# d vous pourrez les télécharger en cliquant sur le lien. Exige une # download them from there by following the link. Requires a subscription.
# inscription.
# #
# attachments: no # attachments: no
# Les pièces jointes seront ignorées. # Attachments will be ignored.
# #
# archive: yes # archive: yes
# Les courriels que vous recevrez seront archivés sur le serveur. Utilisez # Your incoming emails will be archived on the server. Use this if you need
# ceci si vous avez besoin daide pour des problèmes de déboguage ou # help with debugging problems or you need a third party proof of emails. This
# si vous avez besoin dune preuve par un tiers des courriels. Cela signifie # however means that the operator of the service will be able to read your
# cependant que le fournisseur du service pourra lire vos courriels même # emails even after they have been delivered to you.
# après leur réception.
# #
# archive: no # archive: no
# Les courriels reçus seront supprimés du serveur dès quils vous auront é # Incoming emails will be deleted from the server as soon as they are relayed
# transmis. # to you.
# #
# masterpubkey_btc: clef xpub BIP44 ou graine publique electrum v1 # masterpubkey_btc: BIP44 xpub key or electrum v1 public seed
# offset_btc: entier (par défaut à 0) # offset_btc: integer (defaults to 0)
# feeamount: nombre avec jusquà 8 décimales # feeamount: number with up to 8 decimal places
# feecurrency: BTC, XBT, USD, EUR ou GBP # feecurrency: BTC, XBT, USD, EUR or GBP
# Utilisez ceci si vous voulez faire payer ceux qui vous envoient des courriels. # Use these if you want to charge people who send you emails. If this is on and
# Si ceci est activé et quune personne inconnue vous envoie un courriel, il # an unknown person sends you an email, they will be requested to pay the fee
# devra payer le tarif indiqué. Comme ce mécanisme emploie des clefs # specified. As this scheme uses deterministic public keys, you will receive
# publiques déterministes, vous recevrez largent directement. Pour désactiver # the money directly. To turn it off again, set &quot;feeamount&quot; to 0. Requires
# à nouveau ceci, réglez &quot;feeamount&quot; à 0. Exige une inscription. # subscription.
</translation> </source>
<translation type="unfinished"/>
</message> </message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="170"/> <location filename="../bitmessageqt/__init__.py" line="166"/>
<source>Reply to sender</source> <source>Reply to sender</source>
<translation>Répondre à lexpéditeur</translation> <translation>Répondre à lexpéditeur</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="172"/> <location filename="../bitmessageqt/__init__.py" line="168"/>
<source>Reply to channel</source> <source>Reply to channel</source>
<translation>Répondre au canal</translation> <translation>Répondre au canal</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="174"/> <location filename="../bitmessageqt/__init__.py" line="170"/>
<source>Add sender to your Address Book</source> <source>Add sender to your Address Book</source>
<translation>Ajouter lexpéditeur au carnet dadresses</translation> <translation>Ajouter lexpéditeur au carnet dadresses</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="178"/> <location filename="../bitmessageqt/__init__.py" line="174"/>
<source>Add sender to your Blacklist</source> <source>Add sender to your Blacklist</source>
<translation>Ajouter lexpéditeur à votre liste noire</translation> <translation>Ajouter lexpéditeur à votre liste noire</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="364"/> <location filename="../bitmessageqt/__init__.py" line="374"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation>Envoyer à la Corbeille</translation> <translation>Envoyer à la Corbeille</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="185"/> <location filename="../bitmessageqt/__init__.py" line="181"/>
<source>Undelete</source> <source>Undelete</source>
<translation>Restaurer</translation> <translation>Restaurer</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="188"/> <location filename="../bitmessageqt/__init__.py" line="184"/>
<source>View HTML code as formatted text</source> <source>View HTML code as formatted text</source>
<translation>Voir le code HTML comme du texte formaté</translation> <translation>Voir le code HTML comme du texte formaté</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="192"/> <location filename="../bitmessageqt/__init__.py" line="188"/>
<source>Save message as...</source> <source>Save message as...</source>
<translation>Enregistrer le message sous</translation> <translation>Enregistrer le message sous</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="196"/> <location filename="../bitmessageqt/__init__.py" line="192"/>
<source>Mark Unread</source> <source>Mark Unread</source>
<translation>Marquer comme non-lu</translation> <translation>Marquer comme non-lu</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="336"/> <location filename="../bitmessageqt/__init__.py" line="346"/>
<source>New</source> <source>New</source>
<translation>Nouvelle</translation> <translation>Nouvelle</translation>
</message> </message>
@ -272,12 +273,12 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation>Copier ladresse dans le presse-papier</translation> <translation>Copier ladresse dans le presse-papier</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="283"/> <location filename="../bitmessageqt/__init__.py" line="293"/>
<source>Special address behavior...</source> <source>Special address behavior...</source>
<translation>Comportement spécial de ladresse</translation> <translation>Comportement spécial de ladresse</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="244"/> <location filename="../bitmessageqt/__init__.py" line="240"/>
<source>Email gateway</source> <source>Email gateway</source>
<translation>Passerelle de courriel</translation> <translation>Passerelle de courriel</translation>
</message> </message>
@ -287,37 +288,37 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation>Effacer</translation> <translation>Effacer</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="299"/> <location filename="../bitmessageqt/__init__.py" line="309"/>
<source>Send message to this address</source> <source>Send message to this address</source>
<translation>Envoyer un message à cette adresse</translation> <translation>Envoyer un message à cette adresse</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="307"/> <location filename="../bitmessageqt/__init__.py" line="317"/>
<source>Subscribe to this address</source> <source>Subscribe to this address</source>
<translation>Sabonner à cette adresse</translation> <translation>Sabonner à cette adresse</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="319"/> <location filename="../bitmessageqt/__init__.py" line="329"/>
<source>Add New Address</source> <source>Add New Address</source>
<translation>Ajouter une nouvelle adresse</translation> <translation>Ajouter une nouvelle adresse</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="367"/> <location filename="../bitmessageqt/__init__.py" line="377"/>
<source>Copy destination address to clipboard</source> <source>Copy destination address to clipboard</source>
<translation>Copier ladresse de destination dans le presse-papier</translation> <translation>Copier ladresse de destination dans le presse-papier</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="371"/> <location filename="../bitmessageqt/__init__.py" line="381"/>
<source>Force send</source> <source>Force send</source>
<translation>Forcer lenvoi</translation> <translation>Forcer lenvoi</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="587"/> <location filename="../bitmessageqt/__init__.py" line="597"/>
<source>One of your addresses, %1, is an old version 1 address. Version 1 addresses are no longer supported. May we delete it now?</source> <source>One of your addresses, %1, is an old version 1 address. Version 1 addresses are no longer supported. May we delete it now?</source>
<translation>Une de vos adresses, %1, est une vieille adresse de la version 1. Les adresses de la version 1 ne sont plus supportées. Nous pourrions la supprimer maintenant?</translation> <translation>Une de vos adresses, %1, est une vieille adresse de la version 1. Les adresses de la version 1 ne sont plus supportées. Nous pourrions la supprimer maintenant?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1034"/> <location filename="../bitmessageqt/__init__.py" line="1042"/>
<source>Waiting for their encryption key. Will request it again soon.</source> <source>Waiting for their encryption key. Will request it again soon.</source>
<translation>En attente de la clé de chiffrement. Une nouvelle requête sera bientôt lancée.</translation> <translation>En attente de la clé de chiffrement. Une nouvelle requête sera bientôt lancée.</translation>
</message> </message>
@ -327,17 +328,17 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation type="unfinished"/> <translation type="unfinished"/>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1040"/> <location filename="../bitmessageqt/__init__.py" line="1048"/>
<source>Queued.</source> <source>Queued.</source>
<translation>En attente.</translation> <translation>En attente.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1043"/> <location filename="../bitmessageqt/__init__.py" line="1051"/>
<source>Message sent. Waiting for acknowledgement. Sent at %1</source> <source>Message sent. Waiting for acknowledgement. Sent at %1</source>
<translation>Message envoyé. En attente de laccusé de réception. Envoyé %1</translation> <translation>Message envoyé. En attente de laccusé de réception. Envoyé %1</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1046"/> <location filename="../bitmessageqt/__init__.py" line="1054"/>
<source>Message sent. Sent at %1</source> <source>Message sent. Sent at %1</source>
<translation>Message envoyé. Envoyé %1</translation> <translation>Message envoyé. Envoyé %1</translation>
</message> </message>
@ -347,47 +348,47 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation type="unfinished"/> <translation type="unfinished"/>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1052"/> <location filename="../bitmessageqt/__init__.py" line="1060"/>
<source>Acknowledgement of the message received %1</source> <source>Acknowledgement of the message received %1</source>
<translation>Accusé de réception reçu %1</translation> <translation>Accusé de réception reçu %1</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2140"/> <location filename="../bitmessageqt/__init__.py" line="2152"/>
<source>Broadcast queued.</source> <source>Broadcast queued.</source>
<translation>Message de diffusion en attente.</translation> <translation>Message de diffusion en attente.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1061"/> <location filename="../bitmessageqt/__init__.py" line="1069"/>
<source>Broadcast on %1</source> <source>Broadcast on %1</source>
<translation>Message de diffusion du %1</translation> <translation>Message de diffusion du %1</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1064"/> <location filename="../bitmessageqt/__init__.py" line="1072"/>
<source>Problem: The work demanded by the recipient is more difficult than you are willing to do. %1</source> <source>Problem: The work demanded by the recipient is more difficult than you are willing to do. %1</source>
<translation>Problème : Le travail demandé par le destinataire est plus difficile que ce que vous avez paramétré. %1</translation> <translation>Problème : Le travail demandé par le destinataire est plus difficile que ce que vous avez paramétré. %1</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1067"/> <location filename="../bitmessageqt/__init__.py" line="1075"/>
<source>Problem: The recipient&apos;s encryption key is no good. Could not encrypt message. %1</source> <source>Problem: The recipient&apos;s encryption key is no good. Could not encrypt message. %1</source>
<translation>Problème : la clé de chiffrement du destinataire nest pas bonne. Il na pas é possible de chiffrer le message. %1</translation> <translation>Problème : la clé de chiffrement du destinataire nest pas bonne. Il na pas é possible de chiffrer le message. %1</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1070"/> <location filename="../bitmessageqt/__init__.py" line="1078"/>
<source>Forced difficulty override. Send should start soon.</source> <source>Forced difficulty override. Send should start soon.</source>
<translation>Neutralisation forcée de la difficulté. Lenvoi devrait bientôt commencer.</translation> <translation>Neutralisation forcée de la difficulté. Lenvoi devrait bientôt commencer.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1073"/> <location filename="../bitmessageqt/__init__.py" line="1081"/>
<source>Unknown status: %1 %2</source> <source>Unknown status: %1 %2</source>
<translation>Statut inconnu : %1 %2</translation> <translation>Statut inconnu : %1 %2</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1612"/> <location filename="../bitmessageqt/__init__.py" line="1622"/>
<source>Not Connected</source> <source>Not Connected</source>
<translation>Déconnecté</translation> <translation>Déconnecté</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1204"/> <location filename="../bitmessageqt/__init__.py" line="1212"/>
<source>Show Bitmessage</source> <source>Show Bitmessage</source>
<translation>Afficher Bitmessage</translation> <translation>Afficher Bitmessage</translation>
</message> </message>
@ -397,12 +398,12 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation>Envoyer</translation> <translation>Envoyer</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1227"/> <location filename="../bitmessageqt/__init__.py" line="1235"/>
<source>Subscribe</source> <source>Subscribe</source>
<translation>Sabonner</translation> <translation>Sabonner</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1233"/> <location filename="../bitmessageqt/__init__.py" line="1241"/>
<source>Channel</source> <source>Channel</source>
<translation>Canal</translation> <translation>Canal</translation>
</message> </message>
@ -412,12 +413,12 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation>Quitter</translation> <translation>Quitter</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1459"/> <location filename="../bitmessageqt/__init__.py" line="1467"/>
<source>You may manage your keys by editing the keys.dat file stored in the same directory as this program. It is important that you back up this file.</source> <source>You may manage your keys by editing the keys.dat file stored in the same directory as this program. It is important that you back up this file.</source>
<translation>Vous pouvez éditer vos clés en éditant le fichier keys.dat stocké dans le même répertoire que ce programme. Il est important de faire des sauvegardes de ce fichier.</translation> <translation>Vous pouvez éditer vos clés en éditant le fichier keys.dat stocké dans le même répertoire que ce programme. Il est important de faire des sauvegardes de ce fichier.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1463"/> <location filename="../bitmessageqt/__init__.py" line="1471"/>
<source>You may manage your keys by editing the keys.dat file stored in <source>You may manage your keys by editing the keys.dat file stored in
%1 %1
It is important that you back up this file.</source> It is important that you back up this file.</source>
@ -425,54 +426,54 @@ It is important that you back up this file.</source>
Il est important de faire des sauvegardes de ce fichier.</translation> Il est important de faire des sauvegardes de ce fichier.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1470"/> <location filename="../bitmessageqt/__init__.py" line="1478"/>
<source>Open keys.dat?</source> <source>Open keys.dat?</source>
<translation>Ouvrir keys.dat ?</translation> <translation>Ouvrir keys.dat ?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1467"/> <location filename="../bitmessageqt/__init__.py" line="1475"/>
<source>You may manage your keys by editing the keys.dat file stored in the same directory as this program. It is important that you back up this file. Would you like to open the file now? (Be sure to close Bitmessage before making any changes.)</source> <source>You may manage your keys by editing the keys.dat file stored in the same directory as this program. It is important that you back up this file. Would you like to open the file now? (Be sure to close Bitmessage before making any changes.)</source>
<translation>Vous pouvez éditer vos clés en éditant le fichier keys.dat stocké dans le même répertoire que ce programme. Il est important de faire des sauvegardes de ce fichier. Souhaitez-vous louvrir maintenant ? (Assurez-vous de fermer Bitmessage avant deffectuer des changements.)</translation> <translation>Vous pouvez éditer vos clés en éditant le fichier keys.dat stocké dans le même répertoire que ce programme. Il est important de faire des sauvegardes de ce fichier. Souhaitez-vous louvrir maintenant ? (Assurez-vous de fermer Bitmessage avant deffectuer des changements.)</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1470"/> <location filename="../bitmessageqt/__init__.py" line="1478"/>
<source>You may manage your keys by editing the keys.dat file stored in <source>You may manage your keys by editing the keys.dat file stored in
%1 %1
It is important that you back up this file. Would you like to open the file now? (Be sure to close Bitmessage before making any changes.)</source> It is important that you back up this file. Would you like to open the file now? (Be sure to close Bitmessage before making any changes.)</source>
<translation>Vous pouvez éditer vos clés en éditant le fichier keys.dat stocké dans le répertoire %1. Il est important de faire des sauvegardes de ce fichier. Souhaitez-vous louvrir maintenant? (Assurez-vous de fermer Bitmessage avant deffectuer des changements.)</translation> <translation>Vous pouvez éditer vos clés en éditant le fichier keys.dat stocké dans le répertoire %1. Il est important de faire des sauvegardes de ce fichier. Souhaitez-vous louvrir maintenant? (Assurez-vous de fermer Bitmessage avant deffectuer des changements.)</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1477"/> <location filename="../bitmessageqt/__init__.py" line="1485"/>
<source>Delete trash?</source> <source>Delete trash?</source>
<translation>Supprimer la corbeille ?</translation> <translation>Supprimer la corbeille ?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1477"/> <location filename="../bitmessageqt/__init__.py" line="1485"/>
<source>Are you sure you want to delete all trashed messages?</source> <source>Are you sure you want to delete all trashed messages?</source>
<translation>Êtes-vous sûr de vouloir supprimer tous les messages dans la corbeille ?</translation> <translation>Êtes-vous sûr de vouloir supprimer tous les messages dans la corbeille ?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1495"/> <location filename="../bitmessageqt/__init__.py" line="1503"/>
<source>bad passphrase</source> <source>bad passphrase</source>
<translation>Mauvaise phrase secrète</translation> <translation>Mauvaise phrase secrète</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1495"/> <location filename="../bitmessageqt/__init__.py" line="1503"/>
<source>You must type your passphrase. If you don&apos;t have one then this is not the form for you.</source> <source>You must type your passphrase. If you don&apos;t have one then this is not the form for you.</source>
<translation>Vous devez taper votre phrase secrète. Si vous nen avez pas, ce formulaire nest pas pour vous.</translation> <translation>Vous devez taper votre phrase secrète. Si vous nen avez pas, ce formulaire nest pas pour vous.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1518"/> <location filename="../bitmessageqt/__init__.py" line="1526"/>
<source>Bad address version number</source> <source>Bad address version number</source>
<translation>Mauvais numéro de version dadresse</translation> <translation>Mauvais numéro de version dadresse</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1508"/> <location filename="../bitmessageqt/__init__.py" line="1516"/>
<source>Your address version number must be a number: either 3 or 4.</source> <source>Your address version number must be a number: either 3 or 4.</source>
<translation>Votre numéro de version dadresse doit être un nombre : soit 3 soit 4.</translation> <translation>Votre numéro de version dadresse doit être un nombre : soit 3 soit 4.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1518"/> <location filename="../bitmessageqt/__init__.py" line="1526"/>
<source>Your address version number must be either 3 or 4.</source> <source>Your address version number must be either 3 or 4.</source>
<translation>Votre numéro de version dadresse doit être soit 3 soit 4.</translation> <translation>Votre numéro de version dadresse doit être soit 3 soit 4.</translation>
</message> </message>
@ -542,22 +543,22 @@ It is important that you back up this file. Would you like to open the file now?
<translation type="unfinished"/> <translation type="unfinished"/>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1597"/> <location filename="../bitmessageqt/__init__.py" line="1607"/>
<source>Connection lost</source> <source>Connection lost</source>
<translation>Connexion perdue</translation> <translation>Connexion perdue</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1647"/> <location filename="../bitmessageqt/__init__.py" line="1657"/>
<source>Connected</source> <source>Connected</source>
<translation>Connecté</translation> <translation>Connecté</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1765"/> <location filename="../bitmessageqt/__init__.py" line="1777"/>
<source>Message trashed</source> <source>Message trashed</source>
<translation>Message envoyé à la corbeille</translation> <translation>Message envoyé à la corbeille</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1854"/> <location filename="../bitmessageqt/__init__.py" line="1866"/>
<source>The TTL, or Time-To-Live is the length of time that the network will hold the message. <source>The TTL, or Time-To-Live is the length of time that the network will hold the message.
The recipient must get it during this time. If your Bitmessage client does not hear an acknowledgement, it The recipient must get it during this time. If your Bitmessage client does not hear an acknowledgement, it
will resend the message automatically. The longer the Time-To-Live, the will resend the message automatically. The longer the Time-To-Live, the
@ -566,17 +567,17 @@ It is important that you back up this file. Would you like to open the file now?
Le destinataire doit lobtenir avant ce temps. Si votre client Bitmessage ne reçoit pas de confirmation de réception, il va le -envoyer automatiquement. Plus le Time-To-Live est long, plus grand est le travail que votre ordinateur doit effectuer pour envoyer le message. Un Time-To-Live de quatre ou cinq jours est souvent approprié.</translation> Le destinataire doit lobtenir avant ce temps. Si votre client Bitmessage ne reçoit pas de confirmation de réception, il va le -envoyer automatiquement. Plus le Time-To-Live est long, plus grand est le travail que votre ordinateur doit effectuer pour envoyer le message. Un Time-To-Live de quatre ou cinq jours est souvent approprié.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1899"/> <location filename="../bitmessageqt/__init__.py" line="1911"/>
<source>Message too long</source> <source>Message too long</source>
<translation>Message trop long</translation> <translation>Message trop long</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1899"/> <location filename="../bitmessageqt/__init__.py" line="1911"/>
<source>The message that you are trying to send is too long by %1 bytes. (The maximum is 261644 bytes). Please cut it down before sending.</source> <source>The message that you are trying to send is too long by %1 bytes. (The maximum is 261644 bytes). Please cut it down before sending.</source>
<translation>Le message que vous essayez denvoyer est trop long de %1 octets (le maximum est 261644 octets). Veuillez le réduire avant de lenvoyer.</translation> <translation>Le message que vous essayez denvoyer est trop long de %1 octets (le maximum est 261644 octets). Veuillez le réduire avant de lenvoyer.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1941"/> <location filename="../bitmessageqt/__init__.py" line="1953"/>
<source>Error: Your account wasn&apos;t registered at an email gateway. Sending registration now as %1, please wait for the registration to be processed before retrying sending.</source> <source>Error: Your account wasn&apos;t registered at an email gateway. Sending registration now as %1, please wait for the registration to be processed before retrying sending.</source>
<translation>Erreur : votre compte na pas é inscrit à une passerelle de courrier électronique. Envoi de linscription maintenant en tant que %1, veuillez patienter tandis que linscription est en cours de traitement, avant de retenter lenvoi.</translation> <translation>Erreur : votre compte na pas é inscrit à une passerelle de courrier électronique. Envoi de linscription maintenant en tant que %1, veuillez patienter tandis que linscription est en cours de traitement, avant de retenter lenvoi.</translation>
</message> </message>
@ -621,57 +622,57 @@ Le destinataire doit lobtenir avant ce temps. Si votre client Bitmessage ne r
<translation type="unfinished"/> <translation type="unfinished"/>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2092"/> <location filename="../bitmessageqt/__init__.py" line="2104"/>
<source>Error: You must specify a From address. If you don&apos;t have one, go to the &apos;Your Identities&apos; tab.</source> <source>Error: You must specify a From address. If you don&apos;t have one, go to the &apos;Your Identities&apos; tab.</source>
<translation>Erreur : Vous devez spécifier une adresse dexpéditeur. Si vous nen avez pas, rendez-vous dans longlet &apos;Vos identités&apos;.</translation> <translation>Erreur : Vous devez spécifier une adresse dexpéditeur. Si vous nen avez pas, rendez-vous dans longlet &quot;Vos identités&quot;.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2026"/> <location filename="../bitmessageqt/__init__.py" line="2038"/>
<source>Address version number</source> <source>Address version number</source>
<translation>Numéro de version de ladresse</translation> <translation>Numéro de version de ladresse</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2026"/> <location filename="../bitmessageqt/__init__.py" line="2038"/>
<source>Concerning the address %1, Bitmessage cannot understand address version numbers of %2. Perhaps upgrade Bitmessage to the latest version.</source> <source>Concerning the address %1, Bitmessage cannot understand address version numbers of %2. Perhaps upgrade Bitmessage to the latest version.</source>
<translation>Concernant ladresse %1, Bitmessage ne peut pas comprendre les numéros de version de %2. Essayez de mettre à jour Bitmessage vers la dernière version.</translation> <translation>Concernant ladresse %1, Bitmessage ne peut pas comprendre les numéros de version de %2. Essayez de mettre à jour Bitmessage vers la dernière version.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2030"/> <location filename="../bitmessageqt/__init__.py" line="2042"/>
<source>Stream number</source> <source>Stream number</source>
<translation>Numéro de flux</translation> <translation>Numéro de flux</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2030"/> <location filename="../bitmessageqt/__init__.py" line="2042"/>
<source>Concerning the address %1, Bitmessage cannot handle stream numbers of %2. Perhaps upgrade Bitmessage to the latest version.</source> <source>Concerning the address %1, Bitmessage cannot handle stream numbers of %2. Perhaps upgrade Bitmessage to the latest version.</source>
<translation>Concernant ladresse %1, Bitmessage ne peut pas supporter les nombres de flux de %2. Essayez de mettre à jour Bitmessage vers la dernière version.</translation> <translation>Concernant ladresse %1, Bitmessage ne peut pas supporter les nombres de flux de %2. Essayez de mettre à jour Bitmessage vers la dernière version.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2035"/> <location filename="../bitmessageqt/__init__.py" line="2047"/>
<source>Warning: You are currently not connected. Bitmessage will do the work necessary to send the message but it won&apos;t send until you connect.</source> <source>Warning: You are currently not connected. Bitmessage will do the work necessary to send the message but it won&apos;t send until you connect.</source>
<translation>Avertissement : Vous êtes actuellement déconnecté. Bitmessage fera le travail nécessaire pour envoyer le message mais il ne sera pas envoyé tant que vous ne vous connecterez pas.</translation> <translation>Avertissement : Vous êtes actuellement déconnecté. Bitmessage fera le travail nécessaire pour envoyer le message mais il ne sera pas envoyé tant que vous ne vous connecterez pas.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2084"/> <location filename="../bitmessageqt/__init__.py" line="2096"/>
<source>Message queued.</source> <source>Message queued.</source>
<translation>Message mis en file dattente.</translation> <translation>Message mis en file dattente.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2088"/> <location filename="../bitmessageqt/__init__.py" line="2100"/>
<source>Your &apos;To&apos; field is empty.</source> <source>Your &apos;To&apos; field is empty.</source>
<translation>Votre champ &apos;Vers&apos; est vide.</translation> <translation>Votre champ &quot;Vers&quot; est vide.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2149"/> <location filename="../bitmessageqt/__init__.py" line="2161"/>
<source>Right click one or more entries in your address book and select &apos;Send message to this address&apos;.</source> <source>Right click one or more entries in your address book and select &apos;Send message to this address&apos;.</source>
<translation>Cliquez droit sur une ou plusieurs entrées dans votre carnet dadresses et sélectionnez &apos;Envoyer un message à ces adresses&apos;.</translation> <translation>Cliquez droit sur une ou plusieurs entrées dans votre carnet dadresses puis sélectionnez &quot;Envoyer un message à ces adresses&quot;.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2165"/> <location filename="../bitmessageqt/__init__.py" line="2177"/>
<source>Fetched address from namecoin identity.</source> <source>Fetched address from namecoin identity.</source>
<translation>Récupération avec succès de ladresse de lidentité Namecoin.</translation> <translation>Récupération avec succès de ladresse de lidentité Namecoin.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2277"/> <location filename="../bitmessageqt/__init__.py" line="2289"/>
<source>New Message</source> <source>New Message</source>
<translation>Nouveau message</translation> <translation>Nouveau message</translation>
</message> </message>
@ -696,47 +697,47 @@ Le destinataire doit lobtenir avant ce temps. Si votre client Bitmessage ne r
<translation>Ladresse que vous avez entrée est invalide. Adresse ignorée.</translation> <translation>Ladresse que vous avez entrée est invalide. Adresse ignorée.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2307"/> <location filename="../bitmessageqt/__init__.py" line="2319"/>
<source>Error: You cannot add the same address to your address book twice. Try renaming the existing one if you want.</source> <source>Error: You cannot add the same address to your address book twice. Try renaming the existing one if you want.</source>
<translation>Erreur : Vous ne pouvez pas ajouter une adresse déjà présente dans votre carnet dadresses. Essayez de renommer ladresse existante.</translation> <translation>Erreur : Vous ne pouvez pas ajouter une adresse déjà présente dans votre carnet dadresses. Essayez de renommer ladresse existante.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3333"/> <location filename="../bitmessageqt/__init__.py" line="3346"/>
<source>Error: You cannot add the same address to your subscriptions twice. Perhaps rename the existing one if you want.</source> <source>Error: You cannot add the same address to your subscriptions twice. Perhaps rename the existing one if you want.</source>
<translation>Erreur : vous ne pouvez pas ajouter la même adresse deux fois à vos abonnements. Peut-être que vous pouvez renommer celle qui existe si vous le souhaitez.</translation> <translation>Erreur : vous ne pouvez pas ajouter la même adresse deux fois à vos abonnements. Peut-être que vous pouvez renommer celle qui existe si vous le souhaitez.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2429"/> <location filename="../bitmessageqt/__init__.py" line="2441"/>
<source>Restart</source> <source>Restart</source>
<translation>Redémarrer</translation> <translation>Redémarrer</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2415"/> <location filename="../bitmessageqt/__init__.py" line="2427"/>
<source>You must restart Bitmessage for the port number change to take effect.</source> <source>You must restart Bitmessage for the port number change to take effect.</source>
<translation>Vous devez redémarrer Bitmessage pour que le changement de port prenne effet.</translation> <translation>Vous devez redémarrer Bitmessage pour que le changement de port prenne effet.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2429"/> <location filename="../bitmessageqt/__init__.py" line="2441"/>
<source>Bitmessage will use your proxy from now on but you may want to manually restart Bitmessage now to close existing connections (if any).</source> <source>Bitmessage will use your proxy from now on but you may want to manually restart Bitmessage now to close existing connections (if any).</source>
<translation>Bitmessage utilisera votre proxy dorénavant, mais vous pouvez redémarrer manuellement Bitmessage maintenant afin de fermer des connexions existantes (si il y en existe).</translation> <translation>Bitmessage utilisera votre proxy dorénavant, mais vous pouvez redémarrer manuellement Bitmessage maintenant afin de fermer des connexions existantes (si il y en existe).</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2458"/> <location filename="../bitmessageqt/__init__.py" line="2470"/>
<source>Number needed</source> <source>Number needed</source>
<translation>Nombre requis</translation> <translation>Nombre requis</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2458"/> <location filename="../bitmessageqt/__init__.py" line="2470"/>
<source>Your maximum download and upload rate must be numbers. Ignoring what you typed.</source> <source>Your maximum download and upload rate must be numbers. Ignoring what you typed.</source>
<translation>Vos taux maximum de téléchargement et de téléversement doivent être des nombres. Ce que vous avez tapé est ignoré.</translation> <translation>Vos taux maximum de téléchargement et de téléversement doivent être des nombres. Ce que vous avez tapé est ignoré.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2538"/> <location filename="../bitmessageqt/__init__.py" line="2550"/>
<source>Will not resend ever</source> <source>Will not resend ever</source>
<translation>Ne renverra jamais</translation> <translation>Ne renverra jamais</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2538"/> <location filename="../bitmessageqt/__init__.py" line="2550"/>
<source>Note that the time limit you entered is less than the amount of time Bitmessage waits for the first resend attempt therefore your messages will never be resent.</source> <source>Note that the time limit you entered is less than the amount of time Bitmessage waits for the first resend attempt therefore your messages will never be resent.</source>
<translation>Notez que la limite de temps que vous avez entrée est plus courte que le temps dattente respecté par Bitmessage avant le premier essai de renvoi, par conséquent votre message ne sera jamais renvoyé.</translation> <translation>Notez que la limite de temps que vous avez entrée est plus courte que le temps dattente respecté par Bitmessage avant le premier essai de renvoi, par conséquent votre message ne sera jamais renvoyé.</translation>
</message> </message>
@ -771,24 +772,24 @@ Le destinataire doit lobtenir avant ce temps. Si votre client Bitmessage ne r
<translation>Vous devez vraiment utiliser une phrase secrète.</translation> <translation>Vous devez vraiment utiliser une phrase secrète.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3012"/> <location filename="../bitmessageqt/__init__.py" line="3025"/>
<source>Address is gone</source> <source>Address is gone</source>
<translation>Ladresse a disparu</translation> <translation>Ladresse a disparu</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3012"/> <location filename="../bitmessageqt/__init__.py" line="3025"/>
<source>Bitmessage cannot find your address %1. Perhaps you removed it?</source> <source>Bitmessage cannot find your address %1. Perhaps you removed it?</source>
<translation>Bitmessage ne peut pas trouver votre adresse %1. Peut-être lavez-vous supprimée?</translation> <translation>Bitmessage ne peut pas trouver votre adresse %1. Peut-être lavez-vous supprimée?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3015"/> <location filename="../bitmessageqt/__init__.py" line="3028"/>
<source>Address disabled</source> <source>Address disabled</source>
<translation>Adresse désactivée</translation> <translation>Adresse désactivée</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3015"/> <location filename="../bitmessageqt/__init__.py" line="3028"/>
<source>Error: The address from which you are trying to send is disabled. You&apos;ll have to enable it on the &apos;Your Identities&apos; tab before using it.</source> <source>Error: The address from which you are trying to send is disabled. You&apos;ll have to enable it on the &apos;Your Identities&apos; tab before using it.</source>
<translation>Erreur : Ladresse avec laquelle vous essayez de communiquer est désactivée. Vous devez dabord lactiver dans longlet &apos;Vos identités&apos; avant de lutiliser.</translation> <translation>Erreur : Ladresse avec laquelle vous essayez de communiquer est désactivée. Vous devez dabord lactiver dans longlet &quot;Vos identités&quot; avant de lutiliser.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3020"/> <location filename="../bitmessageqt/__init__.py" line="3020"/>
@ -796,42 +797,42 @@ Le destinataire doit lobtenir avant ce temps. Si votre client Bitmessage ne r
<translation type="unfinished"/> <translation type="unfinished"/>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3090"/> <location filename="../bitmessageqt/__init__.py" line="3103"/>
<source>Entry added to the blacklist. Edit the label to your liking.</source> <source>Entry added to the blacklist. Edit the label to your liking.</source>
<translation>Entrée ajoutée à la liste noire. Éditez létiquette à votre convenance.</translation> <translation>Entrée ajoutée à la liste noire. Éditez létiquette à votre convenance.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3095"/> <location filename="../bitmessageqt/__init__.py" line="3108"/>
<source>Error: You cannot add the same address to your blacklist twice. Try renaming the existing one if you want.</source> <source>Error: You cannot add the same address to your blacklist twice. Try renaming the existing one if you want.</source>
<translation>Erreur : vous ne pouvez pas ajouter la même adresse deux fois à votre liste noire. Essayez de renommer celle qui existe si vous le souhaitez.</translation> <translation>Erreur : vous ne pouvez pas ajouter la même adresse deux fois à votre liste noire. Essayez de renommer celle qui existe si vous le souhaitez.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3237"/> <location filename="../bitmessageqt/__init__.py" line="3250"/>
<source>Moved items to trash.</source> <source>Moved items to trash.</source>
<translation>Messages déplacés dans la corbeille.</translation> <translation>Messages déplacés dans la corbeille.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3181"/> <location filename="../bitmessageqt/__init__.py" line="3194"/>
<source>Undeleted item.</source> <source>Undeleted item.</source>
<translation>Articles restaurés.</translation> <translation>Articles restaurés.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3205"/> <location filename="../bitmessageqt/__init__.py" line="3218"/>
<source>Save As...</source> <source>Save As...</source>
<translation>Enregistrer sous</translation> <translation>Enregistrer sous</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3214"/> <location filename="../bitmessageqt/__init__.py" line="3227"/>
<source>Write error.</source> <source>Write error.</source>
<translation>Erreur décriture.</translation> <translation>Erreur décriture.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3317"/> <location filename="../bitmessageqt/__init__.py" line="3330"/>
<source>No addresses selected.</source> <source>No addresses selected.</source>
<translation>Aucune adresse sélectionnée.</translation> <translation>Aucune adresse sélectionnée.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3372"/> <location filename="../bitmessageqt/__init__.py" line="3385"/>
<source>If you delete the subscription, messages that you already received will become inaccessible. Maybe you can consider disabling the subscription instead. Disabled subscriptions will not receive new messages, but you can still view messages you already received. <source>If you delete the subscription, messages that you already received will become inaccessible. Maybe you can consider disabling the subscription instead. Disabled subscriptions will not receive new messages, but you can still view messages you already received.
Are you sure you want to delete the subscription?</source> Are you sure you want to delete the subscription?</source>
@ -840,7 +841,7 @@ Are you sure you want to delete the subscription?</source>
Êtes-vous sur de vouloir supprimer cet abonnement ?</translation> Êtes-vous sur de vouloir supprimer cet abonnement ?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3615"/> <location filename="../bitmessageqt/__init__.py" line="3632"/>
<source>If you delete the channel, messages that you already received will become inaccessible. Maybe you can consider disabling the channel instead. Disabled channels will not receive new messages, but you can still view messages you already received. <source>If you delete the channel, messages that you already received will become inaccessible. Maybe you can consider disabling the channel instead. Disabled channels will not receive new messages, but you can still view messages you already received.
Are you sure you want to delete the channel?</source> Are you sure you want to delete the channel?</source>
@ -849,32 +850,32 @@ Are you sure you want to delete the channel?</source>
Êtes-vous sûr de vouloir supprimer ce canal ?</translation> Êtes-vous sûr de vouloir supprimer ce canal ?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3745"/> <location filename="../bitmessageqt/__init__.py" line="3762"/>
<source>Do you really want to remove this avatar?</source> <source>Do you really want to remove this avatar?</source>
<translation>Voulez-vous vraiment enlever cet avatar ?</translation> <translation>Voulez-vous vraiment enlever cet avatar ?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3753"/> <location filename="../bitmessageqt/__init__.py" line="3770"/>
<source>You have already set an avatar for this address. Do you really want to overwrite it?</source> <source>You have already set an avatar for this address. Do you really want to overwrite it?</source>
<translation>Vous avez déjà mis un avatar pour cette adresse. Voulez-vous vraiment lécraser ?</translation> <translation>Vous avez déjà mis un avatar pour cette adresse. Voulez-vous vraiment lécraser ?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="4151"/> <location filename="../bitmessageqt/__init__.py" line="4172"/>
<source>Start-on-login not yet supported on your OS.</source> <source>Start-on-login not yet supported on your OS.</source>
<translation>Le démarrage dès louverture de session nest pas encore supporté sur votre OS.</translation> <translation>Le démarrage dès louverture de session nest pas encore supporté sur votre OS.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="4144"/> <location filename="../bitmessageqt/__init__.py" line="4165"/>
<source>Minimize-to-tray not yet supported on your OS.</source> <source>Minimize-to-tray not yet supported on your OS.</source>
<translation>La minimisation en zone système nest pas encore supportée sur votre OS.</translation> <translation>La minimisation en zone système nest pas encore supportée sur votre OS.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="4147"/> <location filename="../bitmessageqt/__init__.py" line="4168"/>
<source>Tray notifications not yet supported on your OS.</source> <source>Tray notifications not yet supported on your OS.</source>
<translation>Les notifications en zone système ne sont pas encore supportées sur votre OS.</translation> <translation>Les notifications en zone système ne sont pas encore supportées sur votre OS.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="4318"/> <location filename="../bitmessageqt/__init__.py" line="4339"/>
<source>Testing...</source> <source>Testing...</source>
<translation>Tester</translation> <translation>Tester</translation>
</message> </message>
@ -1124,7 +1125,7 @@ Are you sure you want to delete the channel?</source>
<translation>Rejoindre / créer un canal</translation> <translation>Rejoindre / créer un canal</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/foldertree.py" line="181"/> <location filename="../bitmessageqt/foldertree.py" line="206"/>
<source>All accounts</source> <source>All accounts</source>
<translation>Tous les comptes</translation> <translation>Tous les comptes</translation>
</message> </message>
@ -1149,42 +1150,42 @@ Are you sure you want to delete the channel?</source>
<translation type="unfinished"/> <translation type="unfinished"/>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1774"/> <location filename="../bitmessageqt/__init__.py" line="1786"/>
<source>New version of PyBitmessage is available: %1. Download it from https://github.com/Bitmessage/PyBitmessage/releases/latest</source> <source>New version of PyBitmessage is available: %1. Download it from https://github.com/Bitmessage/PyBitmessage/releases/latest</source>
<translation>Une nouvelle version de PyBitmessage est disponible : %1. Veuillez la télécharger depuis https://github.com/Bitmessage/PyBitmessage/releases/latest</translation> <translation>Une nouvelle version de PyBitmessage est disponible : %1. Veuillez la télécharger depuis https://github.com/Bitmessage/PyBitmessage/releases/latest</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2774"/> <location filename="../bitmessageqt/__init__.py" line="2788"/>
<source>Waiting for PoW to finish... %1%</source> <source>Waiting for PoW to finish... %1%</source>
<translation>En attente de la fin de la PoW %1%</translation> <translation>En attente de la fin de la PoW %1%</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2784"/> <location filename="../bitmessageqt/__init__.py" line="2798"/>
<source>Shutting down Pybitmessage... %1%</source> <source>Shutting down Pybitmessage... %1%</source>
<translation>Pybitmessage en cours darrêt %1%</translation> <translation>Pybitmessage en cours darrêt %1%</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2802"/> <location filename="../bitmessageqt/__init__.py" line="2817"/>
<source>Waiting for objects to be sent... %1%</source> <source>Waiting for objects to be sent... %1%</source>
<translation>En attente de lenvoi des objets %1%</translation> <translation>En attente de lenvoi des objets %1%</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2822"/> <location filename="../bitmessageqt/__init__.py" line="2835"/>
<source>Saving settings... %1%</source> <source>Saving settings... %1%</source>
<translation>Enregistrement des paramètres %1%</translation> <translation>Enregistrement des paramètres %1%</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2835"/> <location filename="../bitmessageqt/__init__.py" line="2848"/>
<source>Shutting down core... %1%</source> <source>Shutting down core... %1%</source>
<translation>Cœur en cours darrêt %1%</translation> <translation>Cœur en cours darrêt %1%</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2841"/> <location filename="../bitmessageqt/__init__.py" line="2854"/>
<source>Stopping notifications... %1%</source> <source>Stopping notifications... %1%</source>
<translation>Arrêt des notifications %1%</translation> <translation>Arrêt des notifications %1%</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2845"/> <location filename="../bitmessageqt/__init__.py" line="2858"/>
<source>Shutdown imminent... %1%</source> <source>Shutdown imminent... %1%</source>
<translation>Arrêt imminent %1%</translation> <translation>Arrêt imminent %1%</translation>
</message> </message>
@ -1194,42 +1195,42 @@ Are you sure you want to delete the channel?</source>
<translation><numerusform>%n heure</numerusform><numerusform>%n heures</numerusform></translation> <translation><numerusform>%n heure</numerusform><numerusform>%n heures</numerusform></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../bitmessageqt/__init__.py" line="829"/> <location filename="../bitmessageqt/__init__.py" line="837"/>
<source>%n day(s)</source> <source>%n day(s)</source>
<translation><numerusform>%n jour</numerusform><numerusform>%n jours</numerusform></translation> <translation><numerusform>%n jour</numerusform><numerusform>%n jours</numerusform></translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2742"/> <location filename="../bitmessageqt/__init__.py" line="2756"/>
<source>Shutting down PyBitmessage... %1%</source> <source>Shutting down PyBitmessage... %1%</source>
<translation>PyBitmessage en cours darrêt %1%</translation> <translation>PyBitmessage en cours darrêt %1%</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1148"/> <location filename="../bitmessageqt/__init__.py" line="1156"/>
<source>Sent</source> <source>Sent</source>
<translation>Envoyé</translation> <translation>Envoyé</translation>
</message> </message>
<message> <message>
<location filename="../class_addressGenerator.py" line="91"/> <location filename="../class_addressGenerator.py" line="115"/>
<source>Generating one new address</source> <source>Generating one new address</source>
<translation>Production dune nouvelle adresse</translation> <translation>Production dune nouvelle adresse</translation>
</message> </message>
<message> <message>
<location filename="../class_addressGenerator.py" line="153"/> <location filename="../class_addressGenerator.py" line="193"/>
<source>Done generating address. Doing work necessary to broadcast it...</source> <source>Done generating address. Doing work necessary to broadcast it...</source>
<translation>La production de ladresse a é effectuée. Travail en cours afin de lémettre</translation> <translation>La production de ladresse a é effectuée. Travail en cours afin de lémettre</translation>
</message> </message>
<message> <message>
<location filename="../class_addressGenerator.py" line="170"/> <location filename="../class_addressGenerator.py" line="219"/>
<source>Generating %1 new addresses.</source> <source>Generating %1 new addresses.</source>
<translation>Production de %1 nouvelles adresses.</translation> <translation>Production de %1 nouvelles adresses.</translation>
</message> </message>
<message> <message>
<location filename="../class_addressGenerator.py" line="247"/> <location filename="../class_addressGenerator.py" line="323"/>
<source>%1 is already in &apos;Your Identities&apos;. Not adding it again.</source> <source>%1 is already in &apos;Your Identities&apos;. Not adding it again.</source>
<translation>%1 est déjà dans &quot;Vos identités&quot;. Il ne sera pas ajouté de nouveau.</translation> <translation>%1 est déjà dans &quot;Vos identités&quot;. Il ne sera pas ajouté de nouveau.</translation>
</message> </message>
<message> <message>
<location filename="../class_addressGenerator.py" line="283"/> <location filename="../class_addressGenerator.py" line="377"/>
<source>Done generating address</source> <source>Done generating address</source>
<translation>La production dune adresse a é effectuée</translation> <translation>La production dune adresse a é effectuée</translation>
</message> </message>
@ -1239,96 +1240,96 @@ Are you sure you want to delete the channel?</source>
<translation type="unfinished"/> <translation type="unfinished"/>
</message> </message>
<message> <message>
<location filename="../class_sqlThread.py" line="584"/> <location filename="../class_sqlThread.py" line="481"/>
<source>Disk full</source> <source>Disk full</source>
<translation>Disque plein</translation> <translation>Disque plein</translation>
</message> </message>
<message> <message>
<location filename="../class_sqlThread.py" line="584"/> <location filename="../class_sqlThread.py" line="481"/>
<source>Alert: Your disk or data storage volume is full. Bitmessage will now exit.</source> <source>Alert: Your disk or data storage volume is full. Bitmessage will now exit.</source>
<translation>Alerte : votre disque ou le volume de stockage de données est plein. Bitmessage va maintenant se fermer.</translation> <translation>Alerte : votre disque ou le volume de stockage de données est plein. Bitmessage va maintenant se fermer.</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="747"/> <location filename="../class_singleWorker.py" line="1060"/>
<source>Error! Could not find sender address (your address) in the keys.dat file.</source> <source>Error! Could not find sender address (your address) in the keys.dat file.</source>
<translation>Erreur ! Il na pas é possible de trouver ladresse dexpéditeur (votre adresse) dans le fichier keys.dat.</translation> <translation>Erreur ! Il na pas é possible de trouver ladresse dexpéditeur (votre adresse) dans le fichier keys.dat.</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="495"/> <location filename="../class_singleWorker.py" line="580"/>
<source>Doing work necessary to send broadcast...</source> <source>Doing work necessary to send broadcast...</source>
<translation>Travail en cours afin denvoyer le message de diffusion</translation> <translation>Travail en cours afin denvoyer le message de diffusion</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="518"/> <location filename="../class_singleWorker.py" line="613"/>
<source>Broadcast sent on %1</source> <source>Broadcast sent on %1</source>
<translation>Message de diffusion envoyé %1</translation> <translation>Message de diffusion envoyé %1</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="587"/> <location filename="../class_singleWorker.py" line="721"/>
<source>Encryption key was requested earlier.</source> <source>Encryption key was requested earlier.</source>
<translation>La clé de chiffrement a é demandée plus tôt.</translation> <translation>La clé de chiffrement a é demandée plus tôt.</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="624"/> <location filename="../class_singleWorker.py" line="795"/>
<source>Sending a request for the recipient&apos;s encryption key.</source> <source>Sending a request for the recipient&apos;s encryption key.</source>
<translation>Envoi dune demande de la clé de chiffrement du destinataire.</translation> <translation>Envoi dune demande de la clé de chiffrement du destinataire.</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="639"/> <location filename="../class_singleWorker.py" line="820"/>
<source>Looking up the receiver&apos;s public key</source> <source>Looking up the receiver&apos;s public key</source>
<translation>Recherche de la clé publique du récepteur</translation> <translation>Recherche de la clé publique du récepteur</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="673"/> <location filename="../class_singleWorker.py" line="878"/>
<source>Problem: Destination is a mobile device who requests that the destination be included in the message but this is disallowed in your settings. %1</source> <source>Problem: Destination is a mobile device who requests that the destination be included in the message but this is disallowed in your settings. %1</source>
<translation>Problème : la destination est un dispositif mobile qui nécessite que la destination soit incluse dans le message mais ceci nest pas autorisé dans vos paramètres. %1</translation> <translation>Problème : la destination est un dispositif mobile qui nécessite que la destination soit incluse dans le message mais ceci nest pas autorisé dans vos paramètres. %1</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="687"/> <location filename="../class_singleWorker.py" line="909"/>
<source>Doing work necessary to send message. <source>Doing work necessary to send message.
There is no required difficulty for version 2 addresses like this.</source> There is no required difficulty for version 2 addresses like this.</source>
<translation>Travail en cours afin denvoyer le message. <translation>Travail en cours afin denvoyer le message.
Il ny a pas de difficulté requise pour les adresses version 2 comme celle-ci.</translation> Il ny a pas de difficulté requise pour les adresses version 2 comme celle-ci.</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="701"/> <location filename="../class_singleWorker.py" line="944"/>
<source>Doing work necessary to send message. <source>Doing work necessary to send message.
Receiver&apos;s required difficulty: %1 and %2</source> Receiver&apos;s required difficulty: %1 and %2</source>
<translation>Travail en cours afin denvoyer le message. <translation>Travail en cours afin denvoyer le message.
Difficulté requise du destinataire : %1 et %2</translation> Difficulté requise du destinataire : %1 et %2</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="710"/> <location filename="../class_singleWorker.py" line="984"/>
<source>Problem: The work demanded by the recipient (%1 and %2) is more difficult than you are willing to do. %3</source> <source>Problem: The work demanded by the recipient (%1 and %2) is more difficult than you are willing to do. %3</source>
<translation>Problème : Le travail demandé par le destinataire (%1 and %2) est plus difficile que ce que vous avez paramétré. %3</translation> <translation>Problème : Le travail demandé par le destinataire (%1 and %2) est plus difficile que ce que vous avez paramétré. %3</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="722"/> <location filename="../class_singleWorker.py" line="1012"/>
<source>Problem: You are trying to send a message to yourself or a chan but your encryption key could not be found in the keys.dat file. Could not encrypt message. %1</source> <source>Problem: You are trying to send a message to yourself or a chan but your encryption key could not be found in the keys.dat file. Could not encrypt message. %1</source>
<translation>Problème : Vous essayez denvoyer un message à un canal ou à vous-même mais votre clef de chiffrement na pas é trouvée dans le fichier keys.dat. Le message ne peut pas être chiffré. %1</translation> <translation>Problème : Vous essayez denvoyer un message à un canal ou à vous-même mais votre clef de chiffrement na pas é trouvée dans le fichier keys.dat. Le message ne peut pas être chiffré. %1</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1049"/> <location filename="../bitmessageqt/__init__.py" line="1057"/>
<source>Doing work necessary to send message.</source> <source>Doing work necessary to send message.</source>
<translation>Travail en cours afin denvoyer le message.</translation> <translation>Travail en cours afin denvoyer le message.</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="845"/> <location filename="../class_singleWorker.py" line="1218"/>
<source>Message sent. Waiting for acknowledgement. Sent on %1</source> <source>Message sent. Waiting for acknowledgement. Sent on %1</source>
<translation>Message envoyé. En attente de laccusé de réception. Envoyé %1</translation> <translation>Message envoyé. En attente de laccusé de réception. Envoyé %1</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1037"/> <location filename="../bitmessageqt/__init__.py" line="1045"/>
<source>Doing work necessary to request encryption key.</source> <source>Doing work necessary to request encryption key.</source>
<translation>Travail en cours afin dobtenir la clé de chiffrement.</translation> <translation>Travail en cours afin dobtenir la clé de chiffrement.</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="961"/> <location filename="../class_singleWorker.py" line="1380"/>
<source>Broadcasting the public key request. This program will auto-retry if they are offline.</source> <source>Broadcasting the public key request. This program will auto-retry if they are offline.</source>
<translation>Diffusion de la demande de clef publique. Ce programme réessaiera automatiquement si ils sont déconnectés. </translation> <translation>Diffusion de la demande de clef publique. Ce programme réessaiera automatiquement si ils sont déconnectés. </translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="963"/> <location filename="../class_singleWorker.py" line="1387"/>
<source>Sending public key request. Waiting for reply. Requested at %1</source> <source>Sending public key request. Waiting for reply. Requested at %1</source>
<translation>Envoi dune demande de clef publique. En attente dune réponse. Demandée à %1</translation> <translation>Envoi dune demande de clef publique. En attente dune réponse. Demandée à %1</translation>
</message> </message>
@ -1343,97 +1344,82 @@ Difficulté requise du destinataire : %1 et %2</translation>
<translation>Transfert de port UPnP retiré</translation> <translation>Transfert de port UPnP retiré</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="248"/> <location filename="../bitmessageqt/__init__.py" line="244"/>
<source>Mark all messages as read</source> <source>Mark all messages as read</source>
<translation>Marquer tous les messages comme lus</translation> <translation>Marquer tous les messages comme lus</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2636"/> <location filename="../bitmessageqt/__init__.py" line="2648"/>
<source>Are you sure you would like to mark all messages read?</source> <source>Are you sure you would like to mark all messages read?</source>
<translation>Êtes-vous sûr(e) de vouloir marquer tous les messages comme lus ?</translation> <translation>Êtes-vous sûr(e) de vouloir marquer tous les messages comme lus ?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1058"/> <location filename="../bitmessageqt/__init__.py" line="1066"/>
<source>Doing work necessary to send broadcast.</source> <source>Doing work necessary to send broadcast.</source>
<translation>Travail en cours afin denvoyer la diffusion.</translation> <translation>Travail en cours afin denvoyer la diffusion.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2708"/> <location filename="../bitmessageqt/__init__.py" line="2724"/>
<source>Proof of work pending</source> <source>Proof of work pending</source>
<translation>En attente de preuve de fonctionnement</translation> <translation>En attente de preuve de fonctionnement</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../bitmessageqt/__init__.py" line="2708"/> <location filename="../bitmessageqt/__init__.py" line="2724"/>
<source>%n object(s) pending proof of work</source> <source>%n object(s) pending proof of work</source>
<translation><numerusform>%n objet en attente de preuve de fonctionnement</numerusform><numerusform>%n objet(s) en attente de preuve de fonctionnement</numerusform></translation> <translation><numerusform>%n objet en attente de preuve de fonctionnement</numerusform><numerusform>%n objet(s) en attente de preuve de fonctionnement</numerusform></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../bitmessageqt/__init__.py" line="2708"/> <location filename="../bitmessageqt/__init__.py" line="2724"/>
<source>%n object(s) waiting to be distributed</source> <source>%n object(s) waiting to be distributed</source>
<translation><numerusform>%n objet en attente d&apos;être distribué</numerusform><numerusform>%n objet(s) en attente d&apos;être distribués</numerusform></translation> <translation><numerusform>%n objet en attente d&apos;être distribué</numerusform><numerusform>%n objet(s) en attente d&apos;être distribués</numerusform></translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2708"/> <location filename="../bitmessageqt/__init__.py" line="2724"/>
<source>Wait until these tasks finish?</source> <source>Wait until these tasks finish?</source>
<translation>Attendre jusqu&apos;à ce que ces tâches se terminent ?</translation> <translation>Attendre jusqu&apos;à ce que ces tâches se terminent ?</translation>
</message> </message>
<message> <message>
<location filename="../class_outgoingSynSender.py" line="211"/> <location filename="../namecoin.py" line="115"/>
<source>Problem communicating with proxy: %1. Please check your network settings.</source>
<translation>Problème de communication avec le proxy : %1. Veuillez vérifier vos réglages réseau.</translation>
</message>
<message>
<location filename="../class_outgoingSynSender.py" line="240"/>
<source>SOCKS5 Authentication problem: %1. Please check your SOCKS5 settings.</source>
<translation>Problème dauthentification SOCKS5 : %1. Veuillez vérifier vos réglages SOCKS5.</translation>
</message>
<message>
<location filename="../class_receiveDataThread.py" line="171"/>
<source>The time on your computer, %1, may be wrong. Please verify your settings.</source>
<translation>L&apos;heure sur votre ordinateur, %1, pourrait être faussse. Veuillez vérifier vos paramètres.</translation>
</message>
<message>
<location filename="../namecoin.py" line="101"/>
<source>The name %1 was not found.</source> <source>The name %1 was not found.</source>
<translation>Le nom %1 n&apos;a pas é trouvé.</translation> <translation>Le nom %1 n&apos;a pas é trouvé.</translation>
</message> </message>
<message> <message>
<location filename="../namecoin.py" line="110"/> <location filename="../namecoin.py" line="124"/>
<source>The namecoin query failed (%1)</source> <source>The namecoin query failed (%1)</source>
<translation>La requête Namecoin a échouée (%1)</translation> <translation>La requête Namecoin a échouée (%1)</translation>
</message> </message>
<message> <message>
<location filename="../namecoin.py" line="113"/> <location filename="../namecoin.py" line="127"/>
<source>The namecoin query failed.</source> <source>The namecoin query failed.</source>
<translation>La requête Namecoin a échouée.</translation> <translation>La requête Namecoin a échouée.</translation>
</message> </message>
<message> <message>
<location filename="../namecoin.py" line="119"/> <location filename="../namecoin.py" line="133"/>
<source>The name %1 has no valid JSON data.</source> <source>The name %1 has no valid JSON data.</source>
<translation>Le nom %1 n&apos;a aucune donnée JSON valide.</translation> <translation>Le nom %1 n&apos;a aucune donnée JSON valide.</translation>
</message> </message>
<message> <message>
<location filename="../namecoin.py" line="127"/> <location filename="../namecoin.py" line="141"/>
<source>The name %1 has no associated Bitmessage address.</source> <source>The name %1 has no associated Bitmessage address.</source>
<translation>Le nom %1 n&apos;a aucune adresse Bitmessage d&apos;associée.</translation> <translation>Le nom %1 n&apos;a aucune adresse Bitmessage d&apos;associée.</translation>
</message> </message>
<message> <message>
<location filename="../namecoin.py" line="149"/> <location filename="../namecoin.py" line="171"/>
<source>Success! Namecoind version %1 running.</source> <source>Success! Namecoind version %1 running.</source>
<translation>Succès ! Namecoind version %1 en cours d&apos;exécution.</translation> <translation>Succès ! Namecoind version %1 en cours d&apos;exécution.</translation>
</message> </message>
<message> <message>
<location filename="../namecoin.py" line="155"/> <location filename="../namecoin.py" line="182"/>
<source>Success! NMControll is up and running.</source> <source>Success! NMControll is up and running.</source>
<translation>Succès ! NMControll est debout et en cours d&apos;exécution.</translation> <translation>Succès ! NMControll est debout et en cours d&apos;exécution.</translation>
</message> </message>
<message> <message>
<location filename="../namecoin.py" line="158"/> <location filename="../namecoin.py" line="185"/>
<source>Couldn&apos;t understand NMControl.</source> <source>Couldn&apos;t understand NMControl.</source>
<translation>Ne pouvait pas comprendre NMControl.</translation> <translation>Ne pouvait pas comprendre NMControl.</translation>
</message> </message>
<message> <message>
<location filename="../namecoin.py" line="165"/> <location filename="../namecoin.py" line="195"/>
<source>The connection to namecoin failed.</source> <source>The connection to namecoin failed.</source>
<translation>La connexion à Namecoin a échouée.</translation> <translation>La connexion à Namecoin a échouée.</translation>
</message> </message>
@ -1443,12 +1429,12 @@ Difficulté requise du destinataire : %1 et %2</translation>
<translation>Votre GPU(s) n&apos;a pas calculé correctement, mettant OpenCL hors service. Veuillez remonter ceci aux développeurs s&apos;il vous plaît.</translation> <translation>Votre GPU(s) n&apos;a pas calculé correctement, mettant OpenCL hors service. Veuillez remonter ceci aux développeurs s&apos;il vous plaît.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3793"/> <location filename="../bitmessageqt/__init__.py" line="3810"/>
<source>Set notification sound...</source> <source>Set notification sound...</source>
<translation>Mettre un son de notification ...</translation> <translation>Mettre un son de notification ...</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="637"/> <location filename="../bitmessageqt/__init__.py" line="647"/>
<source> <source>
Welcome to easy and secure Bitmessage Welcome to easy and secure Bitmessage
* send messages to other people * send messages to other people
@ -1460,122 +1446,122 @@ Bienvenue dans le facile et sécurisé Bitmessage
* envoyer des messages à d&apos;autres personnes * envoyer des messages à d&apos;autres personnes
* envoyer des messages par diffusion (broadcast) à la manière de Twitter ou * envoyer des messages par diffusion (broadcast) à la manière de Twitter ou
* discuter dans des canaux (channels) avec d&apos;autres personnes * discuter dans des canaux (channels) avec d&apos;autres personnes
</translation> </translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="820"/> <location filename="../bitmessageqt/__init__.py" line="828"/>
<source>not recommended for chans</source> <source>not recommended for chans</source>
<translation>pas recommandé pour les canaux</translation> <translation>pas recommandé pour les canaux</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1213"/> <location filename="../bitmessageqt/__init__.py" line="1221"/>
<source>Quiet Mode</source> <source>Quiet Mode</source>
<translation>Mode tranquille</translation> <translation>Mode tranquille</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1603"/> <location filename="../bitmessageqt/__init__.py" line="1613"/>
<source>Problems connecting? Try enabling UPnP in the Network Settings</source> <source>Problems connecting? Try enabling UPnP in the Network Settings</source>
<translation>Des difficultés à se connecter ? Essayez de permettre UPnP dans les &quot;Paramètres réseau&quot;</translation> <translation>Des difficultés à se connecter ? Essayez de permettre UPnP dans les &quot;Paramètres réseau&quot;</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1928"/> <location filename="../bitmessageqt/__init__.py" line="1940"/>
<source>You are trying to send an email instead of a bitmessage. This requires registering with a gateway. Attempt to register?</source> <source>You are trying to send an email instead of a bitmessage. This requires registering with a gateway. Attempt to register?</source>
<translation>Vous essayez d&apos;envoyer un courrier électronique au lieu d&apos;un bitmessage. Ceci exige votre inscription à une passerelle. Essayer de vous inscrire ?</translation> <translation>Vous essayez d&apos;envoyer un courrier électronique au lieu d&apos;un bitmessage. Ceci exige votre inscription à une passerelle. Essayer de vous inscrire ?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1960"/> <location filename="../bitmessageqt/__init__.py" line="1972"/>
<source>Error: Bitmessage addresses start with BM- Please check the recipient address %1</source> <source>Error: Bitmessage addresses start with BM- Please check the recipient address %1</source>
<translation>Erreur : Les adresses Bitmessage commencent par BM- Veuillez vérifier l&apos;adresse du destinataire %1</translation> <translation>Erreur : Les adresses Bitmessage commencent par BM- Veuillez vérifier l&apos;adresse du destinataire %1</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1966"/> <location filename="../bitmessageqt/__init__.py" line="1978"/>
<source>Error: The recipient address %1 is not typed or copied correctly. Please check it.</source> <source>Error: The recipient address %1 is not typed or copied correctly. Please check it.</source>
<translation>Erreur : Ladresse du destinataire %1 nest pas correctement tapée ou recopiée. Veuillez la vérifier.</translation> <translation>Erreur : Ladresse du destinataire %1 nest pas correctement tapée ou recopiée. Veuillez la vérifier.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1972"/> <location filename="../bitmessageqt/__init__.py" line="1984"/>
<source>Error: The recipient address %1 contains invalid characters. Please check it.</source> <source>Error: The recipient address %1 contains invalid characters. Please check it.</source>
<translation>Erreur : Ladresse du destinataire %1 contient des caractères invalides. Veuillez la vérifier.</translation> <translation>Erreur : Ladresse du destinataire %1 contient des caractères invalides. Veuillez la vérifier.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1978"/> <location filename="../bitmessageqt/__init__.py" line="1990"/>
<source>Error: The version of the recipient address %1 is too high. Either you need to upgrade your Bitmessage software or your acquaintance is being clever.</source> <source>Error: The version of the recipient address %1 is too high. Either you need to upgrade your Bitmessage software or your acquaintance is being clever.</source>
<translation>Erreur : la version de ladresse destinataire %1 est trop élevée. Vous devez mettre à niveau votre logiciel Bitmessage ou alors celui de votre connaissance est plus intelligent.</translation> <translation>Erreur : la version de ladresse destinataire %1 est trop élevée. Vous devez mettre à niveau votre logiciel Bitmessage ou alors celui de votre connaissance est plus intelligent.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1986"/> <location filename="../bitmessageqt/__init__.py" line="1998"/>
<source>Error: Some data encoded in the recipient address %1 is too short. There might be something wrong with the software of your acquaintance.</source> <source>Error: Some data encoded in the recipient address %1 is too short. There might be something wrong with the software of your acquaintance.</source>
<translation>Erreur : quelques données codées dans ladresse destinataire %1 sont trop courtes. Il pourrait y avoir un soucis avec le logiciel de votre connaissance.</translation> <translation>Erreur : quelques données codées dans ladresse destinataire %1 sont trop courtes. Il pourrait y avoir un soucis avec le logiciel de votre connaissance.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1994"/> <location filename="../bitmessageqt/__init__.py" line="2006"/>
<source>Error: Some data encoded in the recipient address %1 is too long. There might be something wrong with the software of your acquaintance.</source> <source>Error: Some data encoded in the recipient address %1 is too long. There might be something wrong with the software of your acquaintance.</source>
<translation>Erreur : quelques données codées dans ladresse destinataire %1 sont trop longues. Il pourrait y avoir un soucis avec le logiciel de votre connaissance.</translation> <translation>Erreur : quelques données codées dans ladresse destinataire %1 sont trop longues. Il pourrait y avoir un soucis avec le logiciel de votre connaissance.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2002"/> <location filename="../bitmessageqt/__init__.py" line="2014"/>
<source>Error: Some data encoded in the recipient address %1 is malformed. There might be something wrong with the software of your acquaintance.</source> <source>Error: Some data encoded in the recipient address %1 is malformed. There might be something wrong with the software of your acquaintance.</source>
<translation>Erreur : quelques données codées dans ladresse destinataire %1 sont mal formées. Il pourrait y avoir un soucis avec le logiciel de votre connaissance.</translation> <translation>Erreur : quelques données codées dans ladresse destinataire %1 sont mal formées. Il pourrait y avoir un soucis avec le logiciel de votre connaissance.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2010"/> <location filename="../bitmessageqt/__init__.py" line="2022"/>
<source>Error: Something is wrong with the recipient address %1.</source> <source>Error: Something is wrong with the recipient address %1.</source>
<translation>Erreur : quelque chose ne va pas avec l&apos;adresse de destinataire %1.</translation> <translation>Erreur : quelque chose ne va pas avec l&apos;adresse de destinataire %1.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2160"/> <location filename="../bitmessageqt/__init__.py" line="2172"/>
<source>Error: %1</source> <source>Error: %1</source>
<translation>Erreur : %1</translation> <translation>Erreur : %1</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2277"/> <location filename="../bitmessageqt/__init__.py" line="2289"/>
<source>From %1</source> <source>From %1</source>
<translation>De %1</translation> <translation>De %1</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2719"/> <location filename="../bitmessageqt/__init__.py" line="2735"/>
<source>Synchronisation pending</source> <source>Synchronisation pending</source>
<translation>En attente de synchronisation</translation> <translation>En attente de synchronisation</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../bitmessageqt/__init__.py" line="2719"/> <location filename="../bitmessageqt/__init__.py" line="2735"/>
<source>Bitmessage hasn&apos;t synchronised with the network, %n object(s) to be downloaded. If you quit now, it may cause delivery delays. Wait until the synchronisation finishes?</source> <source>Bitmessage hasn&apos;t synchronised with the network, %n object(s) to be downloaded. If you quit now, it may cause delivery delays. Wait until the synchronisation finishes?</source>
<translation><numerusform>Bitmessage ne s&apos;est pas synchronisé avec le réseau, %n objet(s) à télécharger. Si vous quittez maintenant, cela pourrait causer des retards de livraison. Attendre jusqu&apos;à ce que la synchronisation aboutisse ?</numerusform><numerusform>Bitmessage ne s&apos;est pas synchronisé avec le réseau, %n objet(s) à télécharger. Si vous quittez maintenant, cela pourrait causer des retards de livraison. Attendre jusqu&apos;à ce que la synchronisation aboutisse ?</numerusform></translation> <translation><numerusform>Bitmessage ne s&apos;est pas synchronisé avec le réseau, %n objet(s) à télécharger. Si vous quittez maintenant, cela pourrait causer des retards de livraison. Attendre jusqu&apos;à ce que la synchronisation aboutisse ?</numerusform><numerusform>Bitmessage ne s&apos;est pas synchronisé avec le réseau, %n objet(s) à télécharger. Si vous quittez maintenant, cela pourrait causer des retards de livraison. Attendre jusqu&apos;à ce que la synchronisation aboutisse ?</numerusform></translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2731"/> <location filename="../bitmessageqt/__init__.py" line="2745"/>
<source>Not connected</source> <source>Not connected</source>
<translation>Non connecté</translation> <translation>Non connecté</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2731"/> <location filename="../bitmessageqt/__init__.py" line="2745"/>
<source>Bitmessage isn&apos;t connected to the network. If you quit now, it may cause delivery delays. Wait until connected and the synchronisation finishes?</source> <source>Bitmessage isn&apos;t connected to the network. If you quit now, it may cause delivery delays. Wait until connected and the synchronisation finishes?</source>
<translation>Bitmessage n&apos;est pas connecté au réseau. Si vous quittez maintenant, cela pourrait causer des retards de livraison. Attendre jusqu&apos;à ce qu&apos;il soit connecté et que la synchronisation se termine ?</translation> <translation>Bitmessage n&apos;est pas connecté au réseau. Si vous quittez maintenant, cela pourrait causer des retards de livraison. Attendre jusqu&apos;à ce qu&apos;il soit connecté et que la synchronisation se termine ?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2746"/> <location filename="../bitmessageqt/__init__.py" line="2760"/>
<source>Waiting for network connection...</source> <source>Waiting for network connection...</source>
<translation>En attente de connexion réseau...</translation> <translation>En attente de connexion réseau...</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2756"/> <location filename="../bitmessageqt/__init__.py" line="2770"/>
<source>Waiting for finishing synchronisation...</source> <source>Waiting for finishing synchronisation...</source>
<translation>En attente d&apos;achèvement de la synchronisation...</translation> <translation>En attente d&apos;achèvement de la synchronisation...</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3811"/> <location filename="../bitmessageqt/__init__.py" line="3828"/>
<source>You have already set a notification sound for this address book entry. Do you really want to overwrite it?</source> <source>You have already set a notification sound for this address book entry. Do you really want to overwrite it?</source>
<translation>Vous avez déjà mis un son de notification pour cette adresse. Voulez-vous vraiment lécraser ?</translation> <translation>Vous avez déjà mis un son de notification pour cette adresse. Voulez-vous vraiment lécraser ?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="4028"/> <location filename="../bitmessageqt/__init__.py" line="4049"/>
<source>Error occurred: could not load message from disk.</source> <source>Error occurred: could not load message from disk.</source>
<translation>Une erreur a eu lieu : ne peut pas charger de message depuis le disque.</translation> <translation>Une erreur a eu lieu : ne peut pas charger de message depuis le disque.</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../bitmessageqt/address_dialogs.py" line="194"/> <location filename="../bitmessageqt/address_dialogs.py" line="194"/>
<source>Display the %n recent broadcast(s) from this address.</source> <source>Display the %n recent broadcast(s) from this address.</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>Afficher le messages de diffusion le plus récent originaire de cette adresse.</numerusform><numerusform>Afficher les %n messages de diffusion les plus récents originaires de cette adresse.</numerusform></translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/bitmessageui.py" line="658"/> <location filename="../bitmessageqt/bitmessageui.py" line="658"/>
@ -1593,22 +1579,22 @@ Bienvenue dans le facile et sécurisé Bitmessage
<translation>Vider</translation> <translation>Vider</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/foldertree.py" line="11"/> <location filename="../bitmessageqt/foldertree.py" line="10"/>
<source>inbox</source> <source>inbox</source>
<translation>entrant</translation> <translation>entrant</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/foldertree.py" line="12"/> <location filename="../bitmessageqt/foldertree.py" line="11"/>
<source>new</source> <source>new</source>
<translation>nouveau</translation> <translation>nouveau</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/foldertree.py" line="13"/> <location filename="../bitmessageqt/foldertree.py" line="12"/>
<source>sent</source> <source>sent</source>
<translation>envoyé</translation> <translation>envoyé</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/foldertree.py" line="14"/> <location filename="../bitmessageqt/foldertree.py" line="13"/>
<source>trash</source> <source>trash</source>
<translation>corbeille</translation> <translation>corbeille</translation>
</message> </message>
@ -1639,14 +1625,14 @@ Bienvenue dans le facile et sécurisé Bitmessage
<context> <context>
<name>MsgDecode</name> <name>MsgDecode</name>
<message> <message>
<location filename="../helper_msgcoding.py" line="80"/> <location filename="../helper_msgcoding.py" line="81"/>
<source>The message has an unknown encoding. <source>The message has an unknown encoding.
Perhaps you should upgrade Bitmessage.</source> Perhaps you should upgrade Bitmessage.</source>
<translation>Le message est codé de façon inconnue. <translation>Le message est codé de façon inconnue.
Peut-être que vous devriez mettre à niveau Bitmessage.</translation> Peut-être que vous devriez mettre à niveau Bitmessage.</translation>
</message> </message>
<message> <message>
<location filename="../helper_msgcoding.py" line="81"/> <location filename="../helper_msgcoding.py" line="82"/>
<source>Unknown encoding</source> <source>Unknown encoding</source>
<translation>Encodage inconnu</translation> <translation>Encodage inconnu</translation>
</message> </message>
@ -1662,7 +1648,8 @@ Peut-être que vous devriez mettre à niveau Bitmessage.</translation>
<location filename="../bitmessageqt/newaddressdialog.ui" line="23"/> <location filename="../bitmessageqt/newaddressdialog.ui" line="23"/>
<source>Here you may generate as many addresses as you like. Indeed, creating and abandoning addresses is encouraged. You may generate addresses by using either random numbers or by using a passphrase. If you use a passphrase, the address is called a &quot;deterministic&quot; address. <source>Here you may generate as many addresses as you like. Indeed, creating and abandoning addresses is encouraged. You may generate addresses by using either random numbers or by using a passphrase. If you use a passphrase, the address is called a &quot;deterministic&quot; address.
The &apos;Random Number&apos; option is selected by default but deterministic addresses have several pros and cons:</source> The &apos;Random Number&apos; option is selected by default but deterministic addresses have several pros and cons:</source>
<translation>Vous pouvez générer autant dadresses que vous le souhaitez. En effet, nous vous encourageons à créer et à délaisser vos adresses. Vous pouvez générer des adresses en utilisant des nombres aléatoires ou en utilisant une phrase secrète. Si vous utilisez une phrase secrète, ladresse sera une adresse &quot;déterministe&quot;. Loption &apos;Nombre Aléatoire&apos; est sélectionnée par défaut mais les adresses déterministes ont certains avantages et inconvénients :</translation> <translation>Vous pouvez générer autant dadresses que vous le souhaitez. En effet, nous vous encourageons à créer et à délaisser vos adresses. Vous pouvez générer des adresses en utilisant des nombres aléatoires ou en utilisant une phrase secrète. Si vous utilisez une phrase secrète, ladresse sera une adresse &quot;déterministe&quot;.
Loption &quot;Nombre Aléatoire&quot; est sélectionnée par défaut mais les adresses déterministes ont certains avantages et inconvénients :</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/newaddressdialog.ui" line="37"/> <location filename="../bitmessageqt/newaddressdialog.ui" line="37"/>
@ -2174,7 +2161,7 @@ The &apos;Random Number&apos; option is selected by default but deterministic ad
<message> <message>
<location filename="../bitmessageqt/newchandialog.ui" line="56"/> <location filename="../bitmessageqt/newchandialog.ui" line="56"/>
<source>Chan passphrase/name:</source> <source>Chan passphrase/name:</source>
<translation type="unfinished"/> <translation>Phrase passe ou nom :</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/newchandialog.ui" line="63"/> <location filename="../bitmessageqt/newchandialog.ui" line="63"/>
@ -2228,14 +2215,6 @@ The &apos;Random Number&apos; option is selected by default but deterministic ad
<translation>Module PoW C non disponible. Veuillez le construire.</translation> <translation>Module PoW C non disponible. Veuillez le construire.</translation>
</message> </message>
</context> </context>
<context>
<name>qrcodeDialog</name>
<message>
<location filename="../plugins/qrcodeui.py" line="67"/>
<source>QR-code</source>
<translation>QR-code</translation>
</message>
</context>
<context> <context>
<name>regenerateAddressesDialog</name> <name>regenerateAddressesDialog</name>
<message> <message>
@ -2292,218 +2271,218 @@ The &apos;Random Number&apos; option is selected by default but deterministic ad
<context> <context>
<name>settingsDialog</name> <name>settingsDialog</name>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="453"/> <location filename="../bitmessageqt/settings.py" line="483"/>
<source>Settings</source> <source>Settings</source>
<translation>Paramètres</translation> <translation>Paramètres</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="454"/> <location filename="../bitmessageqt/settings.py" line="484"/>
<source>Start Bitmessage on user login</source> <source>Start Bitmessage on user login</source>
<translation>Démarrer Bitmessage à la connexion de lutilisateur</translation> <translation>Démarrer Bitmessage à la connexion de lutilisateur</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="455"/> <location filename="../bitmessageqt/settings.py" line="485"/>
<source>Tray</source> <source>Tray</source>
<translation>Zone de notification</translation> <translation>Zone de notification</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="456"/> <location filename="../bitmessageqt/settings.py" line="486"/>
<source>Start Bitmessage in the tray (don&apos;t show main window)</source> <source>Start Bitmessage in the tray (don&apos;t show main window)</source>
<translation>Démarrer Bitmessage dans la barre des tâches (ne pas montrer la fenêtre principale)</translation> <translation>Démarrer Bitmessage dans la barre des tâches (ne pas montrer la fenêtre principale)</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="457"/> <location filename="../bitmessageqt/settings.py" line="491"/>
<source>Minimize to tray</source> <source>Minimize to tray</source>
<translation>Minimiser dans la barre des tâches</translation> <translation>Minimiser dans la barre des tâches</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="458"/> <location filename="../bitmessageqt/settings.py" line="492"/>
<source>Close to tray</source> <source>Close to tray</source>
<translation>Fermer vers la zone de notification</translation> <translation>Fermer vers la zone de notification</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="460"/> <location filename="../bitmessageqt/settings.py" line="495"/>
<source>Show notification when message received</source> <source>Show notification when message received</source>
<translation>Montrer une notification lorsquun message est reçu</translation> <translation>Montrer une notification lorsquun message est reçu</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="461"/> <location filename="../bitmessageqt/settings.py" line="500"/>
<source>Run in Portable Mode</source> <source>Run in Portable Mode</source>
<translation>Lancer en Mode Portable</translation> <translation>Lancer en Mode Portable</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="462"/> <location filename="../bitmessageqt/settings.py" line="501"/>
<source>In Portable Mode, messages and config files are stored in the same directory as the program rather than the normal application-data folder. This makes it convenient to run Bitmessage from a USB thumb drive.</source> <source>In Portable Mode, messages and config files are stored in the same directory as the program rather than the normal application-data folder. This makes it convenient to run Bitmessage from a USB thumb drive.</source>
<translation>En Mode Portable, les messages et les fichiers de configuration sont stockés dans le même dossier que le programme plutôt que le dossier de lapplication. Cela rend lutilisation de Bitmessage plus facile depuis une clé USB.</translation> <translation>En Mode Portable, les messages et les fichiers de configuration sont stockés dans le même dossier que le programme plutôt que le dossier de lapplication. Cela rend lutilisation de Bitmessage plus facile depuis une clé USB.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="463"/> <location filename="../bitmessageqt/settings.py" line="508"/>
<source>Willingly include unencrypted destination address when sending to a mobile device</source> <source>Willingly include unencrypted destination address when sending to a mobile device</source>
<translation>Inclure volontairement ladresse de destination non chiffrée lors de lenvoi vers un dispositif mobile</translation> <translation>Inclure volontairement ladresse de destination non chiffrée lors de lenvoi vers un dispositif mobile</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="464"/> <location filename="../bitmessageqt/settings.py" line="513"/>
<source>Use Identicons</source> <source>Use Identicons</source>
<translation>Utilise des Identicônes.</translation> <translation>Utilise des Identicônes.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="465"/> <location filename="../bitmessageqt/settings.py" line="514"/>
<source>Reply below Quote</source> <source>Reply below Quote</source>
<translation>Réponse en dessous de la citation</translation> <translation>Réponse en dessous de la citation</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="466"/> <location filename="../bitmessageqt/settings.py" line="515"/>
<source>Interface Language</source> <source>Interface Language</source>
<translation>Langue de linterface</translation> <translation>Langue de linterface</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="467"/> <location filename="../bitmessageqt/settings.py" line="516"/>
<source>System Settings</source> <source>System Settings</source>
<comment>system</comment> <comment>system</comment>
<translation>Paramètres système</translation> <translation>Paramètres système</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="468"/> <location filename="../bitmessageqt/settings.py" line="517"/>
<source>User Interface</source> <source>User Interface</source>
<translation>Interface utilisateur</translation> <translation>Interface utilisateur</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="469"/> <location filename="../bitmessageqt/settings.py" line="522"/>
<source>Listening port</source> <source>Listening port</source>
<translation>Port découte</translation> <translation>Port découte</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="470"/> <location filename="../bitmessageqt/settings.py" line="523"/>
<source>Listen for connections on port:</source> <source>Listen for connections on port:</source>
<translation>Écouter les connexions sur le port :</translation> <translation>Écouter les connexions sur le port :</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="471"/> <location filename="../bitmessageqt/settings.py" line="524"/>
<source>UPnP:</source> <source>UPnP:</source>
<translation>UPnP :</translation> <translation>UPnP :</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="472"/> <location filename="../bitmessageqt/settings.py" line="525"/>
<source>Bandwidth limit</source> <source>Bandwidth limit</source>
<translation>Limite de bande passante</translation> <translation>Limite de bande passante</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="473"/> <location filename="../bitmessageqt/settings.py" line="526"/>
<source>Maximum download rate (kB/s): [0: unlimited]</source> <source>Maximum download rate (kB/s): [0: unlimited]</source>
<translation>Taux de téléchargement maximal (kO/s) : [0 : illimité]</translation> <translation>Taux de téléchargement maximal (kO/s) : [0 : illimité]</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="474"/> <location filename="../bitmessageqt/settings.py" line="527"/>
<source>Maximum upload rate (kB/s): [0: unlimited]</source> <source>Maximum upload rate (kB/s): [0: unlimited]</source>
<translation>Taux de téléversement maximal (kO/s) : [0 : illimité]</translation> <translation>Taux de téléversement maximal (kO/s) : [0 : illimité]</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="476"/> <location filename="../bitmessageqt/settings.py" line="529"/>
<source>Proxy server / Tor</source> <source>Proxy server / Tor</source>
<translation>Serveur proxy / Tor</translation> <translation>Serveur proxy / Tor</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="477"/> <location filename="../bitmessageqt/settings.py" line="530"/>
<source>Type:</source> <source>Type:</source>
<translation>Type :</translation> <translation>Type :</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="478"/> <location filename="../bitmessageqt/settings.py" line="531"/>
<source>Server hostname:</source> <source>Server hostname:</source>
<translation>Nom du serveur:</translation> <translation>Nom du serveur:</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="501"/> <location filename="../bitmessageqt/settings.py" line="601"/>
<source>Port:</source> <source>Port:</source>
<translation>Port :</translation> <translation>Port :</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="480"/> <location filename="../bitmessageqt/settings.py" line="533"/>
<source>Authentication</source> <source>Authentication</source>
<translation>Authentification</translation> <translation>Authentification</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="502"/> <location filename="../bitmessageqt/settings.py" line="602"/>
<source>Username:</source> <source>Username:</source>
<translation>Utilisateur :</translation> <translation>Utilisateur :</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="482"/> <location filename="../bitmessageqt/settings.py" line="535"/>
<source>Pass:</source> <source>Pass:</source>
<translation>Mot de passe :</translation> <translation>Mot de passe :</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="483"/> <location filename="../bitmessageqt/settings.py" line="536"/>
<source>Listen for incoming connections when using proxy</source> <source>Listen for incoming connections when using proxy</source>
<translation>Écoute les connexions entrantes lors de lutilisation du proxy</translation> <translation>Écoute les connexions entrantes lors de lutilisation du proxy</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="484"/> <location filename="../bitmessageqt/settings.py" line="541"/>
<source>none</source> <source>none</source>
<translation>aucun</translation> <translation>aucun</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="485"/> <location filename="../bitmessageqt/settings.py" line="542"/>
<source>SOCKS4a</source> <source>SOCKS4a</source>
<translation>SOCKS4a</translation> <translation>SOCKS4a</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="486"/> <location filename="../bitmessageqt/settings.py" line="543"/>
<source>SOCKS5</source> <source>SOCKS5</source>
<translation>SOCKS5</translation> <translation>SOCKS5</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="487"/> <location filename="../bitmessageqt/settings.py" line="544"/>
<source>Network Settings</source> <source>Network Settings</source>
<translation>Paramètres réseau</translation> <translation>Paramètres réseau</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="488"/> <location filename="../bitmessageqt/settings.py" line="549"/>
<source>Total difficulty:</source> <source>Total difficulty:</source>
<translation>Difficulté totale :</translation> <translation>Difficulté totale :</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="489"/> <location filename="../bitmessageqt/settings.py" line="550"/>
<source>The &apos;Total difficulty&apos; affects the absolute amount of work the sender must complete. Doubling this value doubles the amount of work.</source> <source>The &apos;Total difficulty&apos; affects the absolute amount of work the sender must complete. Doubling this value doubles the amount of work.</source>
<translation>La &apos;difficulté totale&apos; affecte le montant total de travail que lenvoyeur devra compléter. Doubler cette valeur double la charge de travail.</translation> <translation>La &quot;difficulté totale&quot; affecte le montant total de travail que lenvoyeur devra accomplir. Doubler cette valeur double la charge de travail.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="490"/> <location filename="../bitmessageqt/settings.py" line="556"/>
<source>Small message difficulty:</source> <source>Small message difficulty:</source>
<translation>Difficulté dun message court :</translation> <translation>Difficulté dun message court :</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="491"/> <location filename="../bitmessageqt/settings.py" line="557"/>
<source>When someone sends you a message, their computer must first complete some work. The difficulty of this work, by default, is 1. You may raise this default for new addresses you create by changing the values here. Any new addresses you create will require senders to meet the higher difficulty. There is one exception: if you add a friend or acquaintance to your address book, Bitmessage will automatically notify them when you next send a message that they need only complete the minimum amount of work: difficulty 1. </source> <source>When someone sends you a message, their computer must first complete some work. The difficulty of this work, by default, is 1. You may raise this default for new addresses you create by changing the values here. Any new addresses you create will require senders to meet the higher difficulty. There is one exception: if you add a friend or acquaintance to your address book, Bitmessage will automatically notify them when you next send a message that they need only complete the minimum amount of work: difficulty 1. </source>
<translation>Lorsque quelquun vous envoie un message, son ordinateur doit dabord effectuer un travail. La difficulté de ce travail, par défaut, est de 1. Vous pouvez augmenter cette valeur pour les adresses que vous créez en changeant la valeur ici. Chaque nouvelle adresse que vous créez requerra à lenvoyeur de faire face à une difficulté supérieure. Il existe une exception : si vous ajoutez un ami ou une connaissance à votre carnet dadresses, Bitmessage les notifiera automatiquement lors du prochain message que vous leur envoyez quils ne doivent compléter que la charge de travail minimale : difficulté 1.</translation> <translation>Lorsque quelquun vous envoie un message, son ordinateur doit dabord effectuer un travail. La difficulté de ce travail, par défaut, est de 1. Vous pouvez augmenter cette valeur pour les adresses que vous créez en changeant la valeur ici. Chaque nouvelle adresse que vous créez requerra à lenvoyeur de faire face à une difficulté supérieure. Il existe une exception : si vous ajoutez un ami ou une connaissance à votre carnet dadresses, Bitmessage les notifiera automatiquement lors du prochain message que vous leur envoyez quils ne doivent compléter que la charge de travail minimale : difficulté 1.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="492"/> <location filename="../bitmessageqt/settings.py" line="566"/>
<source>The &apos;Small message difficulty&apos; mostly only affects the difficulty of sending small messages. Doubling this value makes it almost twice as difficult to send a small message but doesn&apos;t really affect large messages.</source> <source>The &apos;Small message difficulty&apos; mostly only affects the difficulty of sending small messages. Doubling this value makes it almost twice as difficult to send a small message but doesn&apos;t really affect large messages.</source>
<translation>La &apos;difficulté dun message court&apos; affecte principalement la difficulté denvoyer des messages courts. Doubler cette valeur rend la difficulté à envoyer un court message presque double, tandis quun message plus long ne sera pas réellement affecté.</translation> <translation>La &quot;difficulté dun message court&quot; affecte principalement la difficulté denvoyer des messages courts. Doubler cette valeur rend la difficulté à envoyer un court message presque double, tandis quun message plus long ne sera pas réellement affecté.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="493"/> <location filename="../bitmessageqt/settings.py" line="573"/>
<source>Demanded difficulty</source> <source>Demanded difficulty</source>
<translation>Difficulté exigée</translation> <translation>Difficulté exigée</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="494"/> <location filename="../bitmessageqt/settings.py" line="578"/>
<source>Here you may set the maximum amount of work you are willing to do to send a message to another person. Setting these values to 0 means that any value is acceptable.</source> <source>Here you may set the maximum amount of work you are willing to do to send a message to another person. Setting these values to 0 means that any value is acceptable.</source>
<translation>Vous pouvez préciser quelle charge de travail vous êtes prêt à effectuer afin denvoyer un message à une personne. Placer cette valeur à 0 signifie que nimporte quelle valeur est acceptée.</translation> <translation>Vous pouvez préciser quelle charge de travail vous êtes prêt à effectuer afin denvoyer un message à une personne. Placer cette valeur à 0 signifie que nimporte quelle valeur est acceptée.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="495"/> <location filename="../bitmessageqt/settings.py" line="584"/>
<source>Maximum acceptable total difficulty:</source> <source>Maximum acceptable total difficulty:</source>
<translation>Difficulté maximale acceptée :</translation> <translation>Difficulté maximale acceptée :</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="496"/> <location filename="../bitmessageqt/settings.py" line="585"/>
<source>Maximum acceptable small message difficulty:</source> <source>Maximum acceptable small message difficulty:</source>
<translation>Difficulté maximale acceptée pour les messages courts :</translation> <translation>Difficulté maximale acceptée pour les messages courts :</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="497"/> <location filename="../bitmessageqt/settings.py" line="586"/>
<source>Max acceptable difficulty</source> <source>Max acceptable difficulty</source>
<translation>Difficulté maximale acceptée</translation> <translation>Difficulté maximale acceptée</translation>
</message> </message>
@ -2513,87 +2492,87 @@ The &apos;Random Number&apos; option is selected by default but deterministic ad
<translation type="unfinished"/> <translation type="unfinished"/>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="499"/> <location filename="../bitmessageqt/settings.py" line="592"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Bitmessage can utilize a different Bitcoin-based program called Namecoin to make addresses human-friendly. For example, instead of having to tell your friend your long Bitmessage address, you can simply tell him to send a message to &lt;span style=&quot; font-style:italic;&quot;&gt;test. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;(Getting your own Bitmessage address into Namecoin is still rather difficult).&lt;/p&gt;&lt;p&gt;Bitmessage can use either namecoind directly or a running nmcontrol instance.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Bitmessage can utilize a different Bitcoin-based program called Namecoin to make addresses human-friendly. For example, instead of having to tell your friend your long Bitmessage address, you can simply tell him to send a message to &lt;span style=&quot; font-style:italic;&quot;&gt;test. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;(Getting your own Bitmessage address into Namecoin is still rather difficult).&lt;/p&gt;&lt;p&gt;Bitmessage can use either namecoind directly or a running nmcontrol instance.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Bitmessage peut utiliser Namecoin, un autre programme basé sur Bitcoin, pour avoir des adresses plus parlantes. Par exemple, plutôt que de donner à votre ami votre longue adresse Bitmessage, vous pouvez simplement lui dire denvoyer un message à &lt;span style=&quot; font-style:italic;&quot;&gt;test. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;(Obtenir votre propre adresse Bitmessage au sein de Namecoin est encore assez difficile).&lt;/p&gt;&lt;p&gt;Bitmessage peut soit utiliser directement namecoind soit exécuter une instance de nmcontrol.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Bitmessage peut utiliser Namecoin, un autre programme basé sur Bitcoin, pour avoir des adresses plus parlantes. Par exemple, plutôt que de donner à votre ami votre longue adresse Bitmessage, vous pouvez simplement lui dire denvoyer un message à &lt;span style=&quot; font-style:italic;&quot;&gt;test. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;(Obtenir votre propre adresse Bitmessage au sein de Namecoin est encore assez difficile).&lt;/p&gt;&lt;p&gt;Bitmessage peut soit utiliser directement namecoind soit exécuter une instance de nmcontrol.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="500"/> <location filename="../bitmessageqt/settings.py" line="600"/>
<source>Host:</source> <source>Host:</source>
<translation>Hôte :</translation> <translation>Hôte :</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="503"/> <location filename="../bitmessageqt/settings.py" line="603"/>
<source>Password:</source> <source>Password:</source>
<translation>Mot de passe :</translation> <translation>Mot de passe :</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="504"/> <location filename="../bitmessageqt/settings.py" line="604"/>
<source>Test</source> <source>Test</source>
<translation>Test</translation> <translation>Test</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="505"/> <location filename="../bitmessageqt/settings.py" line="605"/>
<source>Connect to:</source> <source>Connect to:</source>
<translation>Connexion à :</translation> <translation>Connexion à :</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="506"/> <location filename="../bitmessageqt/settings.py" line="606"/>
<source>Namecoind</source> <source>Namecoind</source>
<translation>Namecoind</translation> <translation>Namecoind</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="507"/> <location filename="../bitmessageqt/settings.py" line="607"/>
<source>NMControl</source> <source>NMControl</source>
<translation>NMControl</translation> <translation>NMControl</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="508"/> <location filename="../bitmessageqt/settings.py" line="608"/>
<source>Namecoin integration</source> <source>Namecoin integration</source>
<translation>Intégration avec Namecoin</translation> <translation>Intégration avec Namecoin</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="509"/> <location filename="../bitmessageqt/settings.py" line="613"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;By default, if you send a message to someone and he is offline for more than two days, Bitmessage will send the message again after an additional two days. This will be continued with exponential backoff forever; messages will be resent after 5, 10, 20 days ect. until the receiver acknowledges them. Here you may change that behavior by having Bitmessage give up after a certain number of days or months.&lt;/p&gt;&lt;p&gt;Leave these input fields blank for the default behavior. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;By default, if you send a message to someone and he is offline for more than two days, Bitmessage will send the message again after an additional two days. This will be continued with exponential backoff forever; messages will be resent after 5, 10, 20 days ect. until the receiver acknowledges them. Here you may change that behavior by having Bitmessage give up after a certain number of days or months.&lt;/p&gt;&lt;p&gt;Leave these input fields blank for the default behavior. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Par défaut, si vous envoyez un message à quelquun et que cette personne est hors connexion pendant plus de deux jours, Bitmessage enverra le message de nouveau après des deux jours supplémentaires. Ceci sera continué avec reculement (backoff) exponentiel pour toujours; les messages seront réenvoyés après 5, 10, 20 jours etc. jusquà ce que le récepteur accuse leur réception. Ici vous pouvez changer ce comportement en faisant en sorte que Bitmessage renonce après un certain nombre de jours ou de mois.&lt;/p&gt; &lt;p&gt;Si vous souhaitez obtenir le comportement par défaut alors laissez vides ces champs de saisie. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Par défaut, si vous envoyez un message à quelquun et que cette personne est hors connexion pendant plus de deux jours, Bitmessage enverra le message de nouveau après des deux jours supplémentaires. Ceci sera continué avec reculement (backoff) exponentiel pour toujours; les messages seront réenvoyés après 5, 10, 20 jours etc. jusquà ce que le récepteur accuse leur réception. Ici vous pouvez changer ce comportement en faisant en sorte que Bitmessage renonce après un certain nombre de jours ou de mois.&lt;/p&gt; &lt;p&gt;Si vous souhaitez obtenir le comportement par défaut alors laissez vides ces champs de saisie. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="510"/> <location filename="../bitmessageqt/settings.py" line="622"/>
<source>Give up after</source> <source>Give up after</source>
<translation>Abandonner après</translation> <translation>Abandonner après</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="511"/> <location filename="../bitmessageqt/settings.py" line="623"/>
<source>and</source> <source>and</source>
<translation>et</translation> <translation>et</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="512"/> <location filename="../bitmessageqt/settings.py" line="624"/>
<source>days</source> <source>days</source>
<translation>jours</translation> <translation>jours</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="513"/> <location filename="../bitmessageqt/settings.py" line="625"/>
<source>months.</source> <source>months.</source>
<translation>mois.</translation> <translation>mois.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="514"/> <location filename="../bitmessageqt/settings.py" line="626"/>
<source>Resends Expire</source> <source>Resends Expire</source>
<translation>Expiration des renvois automatiques</translation> <translation>Expiration des renvois automatiques</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="459"/> <location filename="../bitmessageqt/settings.py" line="493"/>
<source>Hide connection notifications</source> <source>Hide connection notifications</source>
<translation>Cacher les notifications de connexion</translation> <translation>Cacher les notifications de connexion</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="475"/> <location filename="../bitmessageqt/settings.py" line="528"/>
<source>Maximum outbound connections: [0: none]</source> <source>Maximum outbound connections: [0: none]</source>
<translation>Connexions sortantes maximum: [0: aucune]</translation> <translation>Connexions sortantes maximum: [0: aucune]</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="498"/> <location filename="../bitmessageqt/settings.py" line="591"/>
<source>Hardware GPU acceleration (OpenCL):</source> <source>Hardware GPU acceleration (OpenCL):</source>
<translation>Accélération matérielle GPU (OpenCL) :</translation> <translation>Accélération matérielle GPU (OpenCL) :</translation>
</message> </message>

Binary file not shown.

View File

@ -112,7 +112,7 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<context> <context>
<name>Mailchuck</name> <name>Mailchuck</name>
<message> <message>
<location filename="../bitmessageqt/account.py" line="243"/> <location filename="../bitmessageqt/account.py" line="225"/>
<source># You can use this to configure your email gateway account <source># You can use this to configure your email gateway account
# Uncomment the setting you want to use # Uncomment the setting you want to use
# Here are the options: # Here are the options:
@ -153,166 +153,172 @@ Please type the desired email address (including @mailchuck.com) below:</source>
# the money directly. To turn it off again, set &quot;feeamount&quot; to 0. Requires # the money directly. To turn it off again, set &quot;feeamount&quot; to 0. Requires
# subscription. # subscription.
</source> </source>
<translation># Эти параметры можно использовать для настройки аккаунта email-шлюза <translation type="unfinished"/>
# Раскомментируйте (уберите символ #) те параметры, которые хотите использовать </message>
# Параметры: <message>
# <location filename="../bitmessageqt/account.py" line="301"/>
<source># You can use this to configure your email gateway account
# Uncomment the setting you want to use
# Here are the options:
#
# pgp: server # pgp: server
# Email-шлюз будет создавать и управлять PGP-ключами за вас, а также подписывать, проверять, # The email gateway will create and maintain PGP keys for you and sign, verify,
# шифровать и дешифровать от вашего имени. Используйте это, если вы желаете использовать PGP, но очень ленивы. # encrypt and decrypt on your behalf. When you want to use PGP but are lazy,
# Этот настройка требует подписки. # use this. Requires subscription.
# #
# pgp: local # pgp: local
# Шлюз электронной почты не будет проводить операции PGP от вашего имени. # The email gateway will not conduct PGP operations on your behalf. You can
# Вы можете не использовать PGP, или использовать его локально. # either not use PGP at all, or use it locally.
# #
# attachments: yes # attachments: yes
# Вложения во входящий email-сообщениях будут загружены на MEGA.nz, # Incoming attachments in the email will be uploaded to MEGA.nz, and you can
# вы сможете скачать из оттуда по ссылке. Требуется подписка. # download them from there by following the link. Requires a subscription.
# #
# attachments: no # attachments: no
# Вложения будут проигнорированы. # Attachments will be ignored.
# #
# archive: yes # archive: yes
# Входящие email-сообщения будут заархивированы на сервере. Используйте эту настройку # Your incoming emails will be archived on the server. Use this if you need
# в целях отладки, или если вам нужно подтверждение email третьей стороной. # help with debugging problems or you need a third party proof of emails. This
# Конечно, это означает, что оператор сервиса будет иметь возможность читать ваши email # however means that the operator of the service will be able to read your
# даже после доставки их вам. # emails even after they have been delivered to you.
# #
# archive: no # archive: no
# Входящие email-сообщения будут удалены с сервера после доставки их вам. # Incoming emails will be deleted from the server as soon as they are relayed
# to you.
# #
# masterpubkey_btc: BIP44 xpub key или electrum v1 public seed # masterpubkey_btc: BIP44 xpub key or electrum v1 public seed
# offset_btc: целое число (по умолчанию 0) # offset_btc: integer (defaults to 0)
# feeamount: число, содержащее до 8 десятичных цифр # feeamount: number with up to 8 decimal places
# feecurrency: BTC, XBT, USD, EUR или GBP # feecurrency: BTC, XBT, USD, EUR or GBP
# Используйте эту настроку, если хотите чтобы отправитель уплатил вознаграждение за отправку email вам. # Use these if you want to charge people who send you emails. If this is on and
# Если настройка включена, и неизвестный отправитель посылает вам email, # an unknown person sends you an email, they will be requested to pay the fee
# то отправителю будет предложено уплатить указанное вознаграждение. # specified. As this scheme uses deterministic public keys, you will receive
# Схема использует детерминистические открытые ключи, вы получите деньги напрямую. # the money directly. To turn it off again, set &quot;feeamount&quot; to 0. Requires
# Чтобы выключить уплату вознаграждения, установите &quot;feeamount&quot; равным 0. # subscription.
# Требует подписки.</translation> </source>
<translation type="unfinished"/>
</message> </message>
</context> </context>
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="170"/> <location filename="../bitmessageqt/__init__.py" line="166"/>
<source>Reply to sender</source> <source>Reply to sender</source>
<translation>Ответить отправителю</translation> <translation>Ответить отправителю</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="172"/> <location filename="../bitmessageqt/__init__.py" line="168"/>
<source>Reply to channel</source> <source>Reply to channel</source>
<translation>Ответить в канал</translation> <translation>Ответить в канал</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="174"/> <location filename="../bitmessageqt/__init__.py" line="170"/>
<source>Add sender to your Address Book</source> <source>Add sender to your Address Book</source>
<translation>Добавить отправителя в адресную книгу</translation> <translation>Добавить отправителя в адресную книгу</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="178"/> <location filename="../bitmessageqt/__init__.py" line="174"/>
<source>Add sender to your Blacklist</source> <source>Add sender to your Blacklist</source>
<translation>Добавить отправителя в чёрный список</translation> <translation>Добавить отправителя в чёрный список</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="364"/> <location filename="../bitmessageqt/__init__.py" line="372"/>
<source>Move to Trash</source> <source>Move to Trash</source>
<translation>Поместить в корзину</translation> <translation>Поместить в корзину</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="185"/> <location filename="../bitmessageqt/__init__.py" line="181"/>
<source>Undelete</source> <source>Undelete</source>
<translation>Отменить удаление</translation> <translation>Отменить удаление</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="188"/> <location filename="../bitmessageqt/__init__.py" line="184"/>
<source>View HTML code as formatted text</source> <source>View HTML code as formatted text</source>
<translation>Просмотреть HTML код как отформатированный текст</translation> <translation>Просмотреть HTML код как отформатированный текст</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="192"/> <location filename="../bitmessageqt/__init__.py" line="188"/>
<source>Save message as...</source> <source>Save message as...</source>
<translation>Сохранить сообщение как ...</translation> <translation>Сохранить сообщение как ...</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="196"/> <location filename="../bitmessageqt/__init__.py" line="192"/>
<source>Mark Unread</source> <source>Mark Unread</source>
<translation>Отметить как непрочитанное</translation> <translation>Отметить как непрочитанное</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="336"/> <location filename="../bitmessageqt/__init__.py" line="344"/>
<source>New</source> <source>New</source>
<translation>Новый адрес</translation> <translation>Новый адрес</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/blacklist.py" line="121"/> <location filename="../bitmessageqt/blacklist.py" line="122"/>
<source>Enable</source> <source>Enable</source>
<translation>Включить</translation> <translation>Включить</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/blacklist.py" line="124"/> <location filename="../bitmessageqt/blacklist.py" line="125"/>
<source>Disable</source> <source>Disable</source>
<translation>Выключить</translation> <translation>Выключить</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/blacklist.py" line="127"/> <location filename="../bitmessageqt/blacklist.py" line="128"/>
<source>Set avatar...</source> <source>Set avatar...</source>
<translation>Установить аватар...</translation> <translation>Установить аватар...</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/blacklist.py" line="117"/> <location filename="../bitmessageqt/blacklist.py" line="118"/>
<source>Copy address to clipboard</source> <source>Copy address to clipboard</source>
<translation>Скопировать адрес в буфер обмена</translation> <translation>Скопировать адрес в буфер обмена</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="283"/> <location filename="../bitmessageqt/__init__.py" line="291"/>
<source>Special address behavior...</source> <source>Special address behavior...</source>
<translation>Особое поведение адресов...</translation> <translation>Особое поведение адресов...</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="244"/> <location filename="../bitmessageqt/__init__.py" line="240"/>
<source>Email gateway</source> <source>Email gateway</source>
<translation>Email-шлюз</translation> <translation>Email-шлюз</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/blacklist.py" line="114"/> <location filename="../bitmessageqt/blacklist.py" line="115"/>
<source>Delete</source> <source>Delete</source>
<translation>Удалить</translation> <translation>Удалить</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="299"/> <location filename="../bitmessageqt/__init__.py" line="307"/>
<source>Send message to this address</source> <source>Send message to this address</source>
<translation>Отправить сообщение на этот адрес</translation> <translation>Отправить сообщение на этот адрес</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="307"/> <location filename="../bitmessageqt/__init__.py" line="315"/>
<source>Subscribe to this address</source> <source>Subscribe to this address</source>
<translation>Подписаться на рассылку с этого адреса</translation> <translation>Подписаться на рассылку с этого адреса</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="319"/> <location filename="../bitmessageqt/__init__.py" line="327"/>
<source>Add New Address</source> <source>Add New Address</source>
<translation>Добавить новый адрес</translation> <translation>Добавить новый адрес</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="367"/> <location filename="../bitmessageqt/__init__.py" line="375"/>
<source>Copy destination address to clipboard</source> <source>Copy destination address to clipboard</source>
<translation>Скопировать адрес отправки в буфер обмена</translation> <translation>Скопировать адрес отправки в буфер обмена</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="371"/> <location filename="../bitmessageqt/__init__.py" line="379"/>
<source>Force send</source> <source>Force send</source>
<translation>Форсировать отправку</translation> <translation>Форсировать отправку</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="587"/> <location filename="../bitmessageqt/__init__.py" line="595"/>
<source>One of your addresses, %1, is an old version 1 address. Version 1 addresses are no longer supported. May we delete it now?</source> <source>One of your addresses, %1, is an old version 1 address. Version 1 addresses are no longer supported. May we delete it now?</source>
<translation>Один из Ваших адресов, %1, является устаревшим адресом версии 1. Адреса версии 1 больше не поддерживаются. Хотите ли Вы удалить его сейчас?</translation> <translation>Один из Ваших адресов, %1, является устаревшим адресом версии 1. Адреса версии 1 больше не поддерживаются. Хотите ли Вы удалить его сейчас?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1034"/> <location filename="../bitmessageqt/__init__.py" line="1039"/>
<source>Waiting for their encryption key. Will request it again soon.</source> <source>Waiting for their encryption key. Will request it again soon.</source>
<translation>Ожидаем ключ шифрования от Вашего собеседника. Запрос будет повторен через некоторое время.</translation> <translation>Ожидаем ключ шифрования от Вашего собеседника. Запрос будет повторен через некоторое время.</translation>
</message> </message>
@ -322,17 +328,17 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation type="unfinished"/> <translation type="unfinished"/>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1040"/> <location filename="../bitmessageqt/__init__.py" line="1045"/>
<source>Queued.</source> <source>Queued.</source>
<translation>В очереди.</translation> <translation>В очереди.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1043"/> <location filename="../bitmessageqt/__init__.py" line="1048"/>
<source>Message sent. Waiting for acknowledgement. Sent at %1</source> <source>Message sent. Waiting for acknowledgement. Sent at %1</source>
<translation>Сообщение отправлено. Ожидаем подтверждения. Отправлено в %1 </translation> <translation>Сообщение отправлено. Ожидаем подтверждения. Отправлено в %1 </translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1046"/> <location filename="../bitmessageqt/__init__.py" line="1051"/>
<source>Message sent. Sent at %1</source> <source>Message sent. Sent at %1</source>
<translation>Сообщение отправлено в %1</translation> <translation>Сообщение отправлено в %1</translation>
</message> </message>
@ -342,47 +348,47 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation type="unfinished"/> <translation type="unfinished"/>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1052"/> <location filename="../bitmessageqt/__init__.py" line="1057"/>
<source>Acknowledgement of the message received %1</source> <source>Acknowledgement of the message received %1</source>
<translation>Доставлено в %1</translation> <translation>Доставлено в %1</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2140"/> <location filename="../bitmessageqt/__init__.py" line="2149"/>
<source>Broadcast queued.</source> <source>Broadcast queued.</source>
<translation>Рассылка ожидает очереди.</translation> <translation>Рассылка ожидает очереди.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1061"/> <location filename="../bitmessageqt/__init__.py" line="1066"/>
<source>Broadcast on %1</source> <source>Broadcast on %1</source>
<translation>Рассылка на %1</translation> <translation>Рассылка на %1</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1064"/> <location filename="../bitmessageqt/__init__.py" line="1069"/>
<source>Problem: The work demanded by the recipient is more difficult than you are willing to do. %1</source> <source>Problem: The work demanded by the recipient is more difficult than you are willing to do. %1</source>
<translation>Проблема: Ваш получатель требует более сложных вычислений, чем максимум, указанный в Ваших настройках. %1</translation> <translation>Проблема: Ваш получатель требует более сложных вычислений, чем максимум, указанный в Ваших настройках. %1</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1067"/> <location filename="../bitmessageqt/__init__.py" line="1072"/>
<source>Problem: The recipient&apos;s encryption key is no good. Could not encrypt message. %1</source> <source>Problem: The recipient&apos;s encryption key is no good. Could not encrypt message. %1</source>
<translation>Проблема: ключ получателя неправильный. Невозможно зашифровать сообщение. %1</translation> <translation>Проблема: ключ получателя неправильный. Невозможно зашифровать сообщение. %1</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1070"/> <location filename="../bitmessageqt/__init__.py" line="1075"/>
<source>Forced difficulty override. Send should start soon.</source> <source>Forced difficulty override. Send should start soon.</source>
<translation>Форсирована смена сложности. Отправляем через некоторое время.</translation> <translation>Форсирована смена сложности. Отправляем через некоторое время.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1073"/> <location filename="../bitmessageqt/__init__.py" line="1078"/>
<source>Unknown status: %1 %2</source> <source>Unknown status: %1 %2</source>
<translation>Неизвестный статус: %1 %2</translation> <translation>Неизвестный статус: %1 %2</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1612"/> <location filename="../bitmessageqt/__init__.py" line="1619"/>
<source>Not Connected</source> <source>Not Connected</source>
<translation>Не соединено</translation> <translation>Не соединено</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1204"/> <location filename="../bitmessageqt/__init__.py" line="1209"/>
<source>Show Bitmessage</source> <source>Show Bitmessage</source>
<translation>Показать Bitmessage</translation> <translation>Показать Bitmessage</translation>
</message> </message>
@ -392,12 +398,12 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation>Отправить</translation> <translation>Отправить</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1227"/> <location filename="../bitmessageqt/__init__.py" line="1232"/>
<source>Subscribe</source> <source>Subscribe</source>
<translation>Подписки</translation> <translation>Подписки</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1233"/> <location filename="../bitmessageqt/__init__.py" line="1238"/>
<source>Channel</source> <source>Channel</source>
<translation>Канал</translation> <translation>Канал</translation>
</message> </message>
@ -407,13 +413,13 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation>Выйти</translation> <translation>Выйти</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1459"/> <location filename="../bitmessageqt/__init__.py" line="1464"/>
<source>You may manage your keys by editing the keys.dat file stored in the same directory as this program. It is important that you back up this file.</source> <source>You may manage your keys by editing the keys.dat file stored in the same directory as this program. It is important that you back up this file.</source>
<translation>Вы можете управлять Вашими ключами, редактируя файл keys.dat, находящийся в той же папке, что и эта программа. <translation>Вы можете управлять Вашими ключами, редактируя файл keys.dat, находящийся в той же папке, что и эта программа.
Создайте резервную копию этого файла перед тем как будете его редактировать.</translation> Создайте резервную копию этого файла перед тем как будете его редактировать.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1463"/> <location filename="../bitmessageqt/__init__.py" line="1468"/>
<source>You may manage your keys by editing the keys.dat file stored in <source>You may manage your keys by editing the keys.dat file stored in
%1 %1
It is important that you back up this file.</source> It is important that you back up this file.</source>
@ -422,59 +428,56 @@ It is important that you back up this file.</source>
Создайте резервную копию этого файла перед тем как будете его редактировать.</translation> Создайте резервную копию этого файла перед тем как будете его редактировать.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1470"/> <location filename="../bitmessageqt/__init__.py" line="1475"/>
<source>Open keys.dat?</source> <source>Open keys.dat?</source>
<translation>Открыть файл keys.dat?</translation> <translation>Открыть файл keys.dat?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1467"/> <location filename="../bitmessageqt/__init__.py" line="1472"/>
<source>You may manage your keys by editing the keys.dat file stored in the same directory as this program. It is important that you back up this file. Would you like to open the file now? (Be sure to close Bitmessage before making any changes.)</source> <source>You may manage your keys by editing the keys.dat file stored in the same directory as this program. It is important that you back up this file. Would you like to open the file now? (Be sure to close Bitmessage before making any changes.)</source>
<translation>Вы можете управлять Вашими ключами, редактируя файл keys.dat, находящийся в той же папке, что и эта программа. <translation>Вы можете управлять вашими ключами, редактируя файл keys.dat, находящийся в той же папке, что и эта программа.
Создайте резервную копию этого файла перед тем как будете его редактировать. Хотели бы Вы открыть этот файл сейчас? Создайте резервную копию этого файла перед тем как будете его редактировать. Хотите открыть этот файл сейчас?
(пожалуйста, закройте Bitmessage до того как Вы внесёте в этот файл какие-либо изменения.)</translation> (пожалуйста, закройте Bitmessage перед тем, как вносить в него какие-либо изменения.)</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1470"/> <location filename="../bitmessageqt/__init__.py" line="1475"/>
<source>You may manage your keys by editing the keys.dat file stored in <source>You may manage your keys by editing the keys.dat file stored in
%1 %1
It is important that you back up this file. Would you like to open the file now? (Be sure to close Bitmessage before making any changes.)</source> It is important that you back up this file. Would you like to open the file now? (Be sure to close Bitmessage before making any changes.)</source>
<translation>Вы можете управлять Вашими ключами, редактируя файл keys.dat, находящийся в <translation type="unfinished"/>
%1
Создайте резервную копию этого файла перед тем как будете его редактировать. Хотели бы Вы открыть этот файл сейчас?
(пожалуйста, закройте Bitmessage до того как Вы внесёте в этот файл какие-либо изменения.)</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1477"/> <location filename="../bitmessageqt/__init__.py" line="1482"/>
<source>Delete trash?</source> <source>Delete trash?</source>
<translation>Очистить корзину?</translation> <translation>Очистить корзину?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1477"/> <location filename="../bitmessageqt/__init__.py" line="1482"/>
<source>Are you sure you want to delete all trashed messages?</source> <source>Are you sure you want to delete all trashed messages?</source>
<translation>Вы уверены что хотите очистить корзину?</translation> <translation>Вы уверены что хотите очистить корзину?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1495"/> <location filename="../bitmessageqt/__init__.py" line="1500"/>
<source>bad passphrase</source> <source>bad passphrase</source>
<translation>Неподходящая секретная фраза</translation> <translation>Неподходящая секретная фраза</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1495"/> <location filename="../bitmessageqt/__init__.py" line="1500"/>
<source>You must type your passphrase. If you don&apos;t have one then this is not the form for you.</source> <source>You must type your passphrase. If you don&apos;t have one then this is not the form for you.</source>
<translation>Вы должны ввести секретную фразу. Если Вы не хотите этого делать, то Вы выбрали неправильную опцию.</translation> <translation>Вы должны ввести секретную фразу. Если Вы не хотите этого делать, то Вы выбрали неправильную опцию.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1518"/> <location filename="../bitmessageqt/__init__.py" line="1523"/>
<source>Bad address version number</source> <source>Bad address version number</source>
<translation>Неверный номер версии адреса</translation> <translation>Неверный номер версии адреса</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1508"/> <location filename="../bitmessageqt/__init__.py" line="1513"/>
<source>Your address version number must be a number: either 3 or 4.</source> <source>Your address version number must be a number: either 3 or 4.</source>
<translation>Адрес номера версии должен быть числом: либо 3, либо 4.</translation> <translation>Адрес номера версии должен быть числом: либо 3, либо 4.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1518"/> <location filename="../bitmessageqt/__init__.py" line="1523"/>
<source>Your address version number must be either 3 or 4.</source> <source>Your address version number must be either 3 or 4.</source>
<translation>Адрес номера версии должен быть либо 3, либо 4.</translation> <translation>Адрес номера версии должен быть либо 3, либо 4.</translation>
</message> </message>
@ -544,22 +547,22 @@ It is important that you back up this file. Would you like to open the file now?
<translation type="unfinished"/> <translation type="unfinished"/>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1597"/> <location filename="../bitmessageqt/__init__.py" line="1604"/>
<source>Connection lost</source> <source>Connection lost</source>
<translation>Соединение потеряно</translation> <translation>Соединение потеряно</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1647"/> <location filename="../bitmessageqt/__init__.py" line="1654"/>
<source>Connected</source> <source>Connected</source>
<translation>Соединено</translation> <translation>Соединено</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1765"/> <location filename="../bitmessageqt/__init__.py" line="1774"/>
<source>Message trashed</source> <source>Message trashed</source>
<translation>Сообщение удалено</translation> <translation>Сообщение удалено</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1854"/> <location filename="../bitmessageqt/__init__.py" line="1863"/>
<source>The TTL, or Time-To-Live is the length of time that the network will hold the message. <source>The TTL, or Time-To-Live is the length of time that the network will hold the message.
The recipient must get it during this time. If your Bitmessage client does not hear an acknowledgement, it The recipient must get it during this time. If your Bitmessage client does not hear an acknowledgement, it
will resend the message automatically. The longer the Time-To-Live, the will resend the message automatically. The longer the Time-To-Live, the
@ -570,17 +573,17 @@ It is important that you back up this file. Would you like to open the file now?
сообщение. Часто разумным вариантом будет установка TTL на 4 или 5 дней.</translation> сообщение. Часто разумным вариантом будет установка TTL на 4 или 5 дней.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1899"/> <location filename="../bitmessageqt/__init__.py" line="1908"/>
<source>Message too long</source> <source>Message too long</source>
<translation>Сообщение слишком длинное</translation> <translation>Сообщение слишком длинное</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1899"/> <location filename="../bitmessageqt/__init__.py" line="1908"/>
<source>The message that you are trying to send is too long by %1 bytes. (The maximum is 261644 bytes). Please cut it down before sending.</source> <source>The message that you are trying to send is too long by %1 bytes. (The maximum is 261644 bytes). Please cut it down before sending.</source>
<translation>Сообщение, которое вы пытаетесь отправить, длиннее максимально допустимого на %1 байт. (Максимально допустимое значение 261644 байта). Пожалуйста, сократите сообщение перед отправкой.</translation> <translation>Сообщение, которое вы пытаетесь отправить, длиннее максимально допустимого на %1 байт. (Максимально допустимое значение 261644 байта). Пожалуйста, сократите сообщение перед отправкой.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1941"/> <location filename="../bitmessageqt/__init__.py" line="1950"/>
<source>Error: Your account wasn&apos;t registered at an email gateway. Sending registration now as %1, please wait for the registration to be processed before retrying sending.</source> <source>Error: Your account wasn&apos;t registered at an email gateway. Sending registration now as %1, please wait for the registration to be processed before retrying sending.</source>
<translation>Ошибка: ваш аккаунт не зарегистрирован на Email-шлюзе. Отправка регистрации %1, пожалуйста, подождите пока процесс регистрации не завершится, прежде чем попытаться отправить сообщение заново.</translation> <translation>Ошибка: ваш аккаунт не зарегистрирован на Email-шлюзе. Отправка регистрации %1, пожалуйста, подождите пока процесс регистрации не завершится, прежде чем попытаться отправить сообщение заново.</translation>
</message> </message>
@ -625,57 +628,57 @@ It is important that you back up this file. Would you like to open the file now?
<translation type="unfinished"/> <translation type="unfinished"/>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2092"/> <location filename="../bitmessageqt/__init__.py" line="2101"/>
<source>Error: You must specify a From address. If you don&apos;t have one, go to the &apos;Your Identities&apos; tab.</source> <source>Error: You must specify a From address. If you don&apos;t have one, go to the &apos;Your Identities&apos; tab.</source>
<translation>Вы должны указать адрес в поле &quot;От кого&quot;. Вы можете найти Ваш адрес во вкладке &quot;Ваши Адреса&quot;.</translation> <translation>Вы должны указать адрес в поле &quot;От кого&quot;. Вы можете найти Ваш адрес во вкладке &quot;Ваши Адреса&quot;.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2026"/> <location filename="../bitmessageqt/__init__.py" line="2035"/>
<source>Address version number</source> <source>Address version number</source>
<translation>Версия адреса</translation> <translation>Версия адреса</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2026"/> <location filename="../bitmessageqt/__init__.py" line="2035"/>
<source>Concerning the address %1, Bitmessage cannot understand address version numbers of %2. Perhaps upgrade Bitmessage to the latest version.</source> <source>Concerning the address %1, Bitmessage cannot understand address version numbers of %2. Perhaps upgrade Bitmessage to the latest version.</source>
<translation>По поводу адреса %1: Bitmessage не поддерживаем адреса версии %2. Возможно, Вам нужно обновить клиент Bitmessage.</translation> <translation>По поводу адреса %1: Bitmessage не поддерживает адреса версии %2. Возможно вам нужно обновить клиент Bitmessage.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2030"/> <location filename="../bitmessageqt/__init__.py" line="2039"/>
<source>Stream number</source> <source>Stream number</source>
<translation>Номер потока</translation> <translation>Номер потока</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2030"/> <location filename="../bitmessageqt/__init__.py" line="2039"/>
<source>Concerning the address %1, Bitmessage cannot handle stream numbers of %2. Perhaps upgrade Bitmessage to the latest version.</source> <source>Concerning the address %1, Bitmessage cannot handle stream numbers of %2. Perhaps upgrade Bitmessage to the latest version.</source>
<translation>По поводу адреса %1: Bitmessage не поддерживаем стрим номер %2. Возможно, Вам нужно обновить клиент Bitmessage.</translation> <translation>По поводу адреса %1: Bitmessage не поддерживает поток номер %2. Возможно вам нужно обновить клиент Bitmessage.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2035"/> <location filename="../bitmessageqt/__init__.py" line="2044"/>
<source>Warning: You are currently not connected. Bitmessage will do the work necessary to send the message but it won&apos;t send until you connect.</source> <source>Warning: You are currently not connected. Bitmessage will do the work necessary to send the message but it won&apos;t send until you connect.</source>
<translation>Внимание: Вы не подключены к сети. Bitmessage выполнит работу, требуемую для отправки сообщения, но не отправит его до тех пор, пока Вы не подключитесь.</translation> <translation>Внимание: вы не подключены к сети. Bitmessage выполнит работу, требуемую для отправки сообщения, но не отправит его до тех пор, пока вы не подключитесь.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2084"/> <location filename="../bitmessageqt/__init__.py" line="2093"/>
<source>Message queued.</source> <source>Message queued.</source>
<translation>Сообщение в очереди.</translation> <translation>Сообщение в очереди.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2088"/> <location filename="../bitmessageqt/__init__.py" line="2097"/>
<source>Your &apos;To&apos; field is empty.</source> <source>Your &apos;To&apos; field is empty.</source>
<translation>Вы не заполнили поле &apos;Кому&apos;.</translation> <translation>Вы не заполнили поле &apos;Кому&apos;.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2149"/> <location filename="../bitmessageqt/__init__.py" line="2158"/>
<source>Right click one or more entries in your address book and select &apos;Send message to this address&apos;.</source> <source>Right click one or more entries in your address book and select &apos;Send message to this address&apos;.</source>
<translation>Нажмите правую кнопку мыши на каком-либо адресе и выберите &quot;Отправить сообщение на этот адрес&quot;.</translation> <translation>Нажмите правую кнопку мыши на каком-либо адресе и выберите &quot;Отправить сообщение на этот адрес&quot;.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2165"/> <location filename="../bitmessageqt/__init__.py" line="2174"/>
<source>Fetched address from namecoin identity.</source> <source>Fetched address from namecoin identity.</source>
<translation>Получить адрес через Namecoin.</translation> <translation>Получить адрес через Namecoin.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2277"/> <location filename="../bitmessageqt/__init__.py" line="2286"/>
<source>New Message</source> <source>New Message</source>
<translation>Новое сообщение</translation> <translation>Новое сообщение</translation>
</message> </message>
@ -690,57 +693,57 @@ It is important that you back up this file. Would you like to open the file now?
<translation type="unfinished"/> <translation type="unfinished"/>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/blacklist.py" line="59"/> <location filename="../bitmessageqt/blacklist.py" line="60"/>
<source>Address is valid.</source> <source>Address is valid.</source>
<translation>Адрес введен правильно.</translation> <translation>Адрес введен правильно.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/blacklist.py" line="93"/> <location filename="../bitmessageqt/blacklist.py" line="94"/>
<source>The address you entered was invalid. Ignoring it.</source> <source>The address you entered was invalid. Ignoring it.</source>
<translation>Вы ввели неправильный адрес. Это адрес проигнорирован.</translation> <translation>Вы ввели неправильный адрес. Это адрес проигнорирован.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2307"/> <location filename="../bitmessageqt/__init__.py" line="2316"/>
<source>Error: You cannot add the same address to your address book twice. Try renaming the existing one if you want.</source> <source>Error: You cannot add the same address to your address book twice. Try renaming the existing one if you want.</source>
<translation>Ошибка: Вы не можете добавлять один и тот же адрес в Адресную Книгу несколько раз. Попробуйте переименовать существующий адрес.</translation> <translation>Ошибка: Вы не можете добавлять один и тот же адрес в Адресную Книгу несколько раз. Попробуйте переименовать существующий адрес.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3333"/> <location filename="../bitmessageqt/__init__.py" line="3343"/>
<source>Error: You cannot add the same address to your subscriptions twice. Perhaps rename the existing one if you want.</source> <source>Error: You cannot add the same address to your subscriptions twice. Perhaps rename the existing one if you want.</source>
<translation>Ошибка: вы не можете добавить один и тот же адрес в ваши подписки дважды. Пожалуйста, переименуйте имеющийся адрес, если хотите.</translation> <translation>Ошибка: вы не можете добавить один и тот же адрес в ваши подписки дважды. Пожалуйста, переименуйте имеющийся адрес, если хотите.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2429"/> <location filename="../bitmessageqt/__init__.py" line="2438"/>
<source>Restart</source> <source>Restart</source>
<translation>Перезапустить</translation> <translation>Перезапустить</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2415"/> <location filename="../bitmessageqt/__init__.py" line="2424"/>
<source>You must restart Bitmessage for the port number change to take effect.</source> <source>You must restart Bitmessage for the port number change to take effect.</source>
<translation>Вы должны перезапустить Bitmessage, чтобы смена номера порта имела эффект.</translation> <translation>Вы должны перезапустить Bitmessage, чтобы смена номера порта имела эффект.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2429"/> <location filename="../bitmessageqt/__init__.py" line="2438"/>
<source>Bitmessage will use your proxy from now on but you may want to manually restart Bitmessage now to close existing connections (if any).</source> <source>Bitmessage will use your proxy from now on but you may want to manually restart Bitmessage now to close existing connections (if any).</source>
<translation>Bitmessage будет использовать Ваш прокси, начиная прямо сейчас. Тем не менее Вам имеет смысл перезапустить Bitmessage, чтобы закрыть уже существующие соединения.</translation> <translation>Bitmessage будет использовать ваш прокси, начиная с этого момента. Тем не менее, имеет смысл перезапустить Bitmessage, чтобы закрыть уже существующие соединения.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2458"/> <location filename="../bitmessageqt/__init__.py" line="2467"/>
<source>Number needed</source> <source>Number needed</source>
<translation>Требуется число</translation> <translation>Требуется число</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2458"/> <location filename="../bitmessageqt/__init__.py" line="2467"/>
<source>Your maximum download and upload rate must be numbers. Ignoring what you typed.</source> <source>Your maximum download and upload rate must be numbers. Ignoring what you typed.</source>
<translation>Скорости загрузки и выгрузки должны быть числами. Игнорирую то, что вы набрали.</translation> <translation>Скорости загрузки и выгрузки должны быть числами. Игнорирую то, что вы набрали.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2538"/> <location filename="../bitmessageqt/__init__.py" line="2547"/>
<source>Will not resend ever</source> <source>Will not resend ever</source>
<translation>Не пересылать никогда</translation> <translation>Не пересылать никогда</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2538"/> <location filename="../bitmessageqt/__init__.py" line="2547"/>
<source>Note that the time limit you entered is less than the amount of time Bitmessage waits for the first resend attempt therefore your messages will never be resent.</source> <source>Note that the time limit you entered is less than the amount of time Bitmessage waits for the first resend attempt therefore your messages will never be resent.</source>
<translation>Обратите внимание, что лимит времени, который вы ввели, меньше чем время, которое Bitmessage ждет перед первой попыткой переотправки сообщения, поэтому ваши сообщения никогда не будут переотправлены.</translation> <translation>Обратите внимание, что лимит времени, который вы ввели, меньше чем время, которое Bitmessage ждет перед первой попыткой переотправки сообщения, поэтому ваши сообщения никогда не будут переотправлены.</translation>
</message> </message>
@ -775,24 +778,24 @@ It is important that you back up this file. Would you like to open the file now?
<translation>Вы действительно должны ввести секретную фразу.</translation> <translation>Вы действительно должны ввести секретную фразу.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3012"/> <location filename="../bitmessageqt/__init__.py" line="3022"/>
<source>Address is gone</source> <source>Address is gone</source>
<translation>Адрес утерян</translation> <translation>Адрес утерян</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3012"/> <location filename="../bitmessageqt/__init__.py" line="3022"/>
<source>Bitmessage cannot find your address %1. Perhaps you removed it?</source> <source>Bitmessage cannot find your address %1. Perhaps you removed it?</source>
<translation>Bitmessage не может найти Ваш адрес %1. Возможно Вы удалили его?</translation> <translation>Bitmessage не может найти Ваш адрес %1. Возможно Вы удалили его?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3015"/> <location filename="../bitmessageqt/__init__.py" line="3025"/>
<source>Address disabled</source> <source>Address disabled</source>
<translation>Адрес выключен</translation> <translation>Адрес выключен</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3015"/> <location filename="../bitmessageqt/__init__.py" line="3025"/>
<source>Error: The address from which you are trying to send is disabled. You&apos;ll have to enable it on the &apos;Your Identities&apos; tab before using it.</source> <source>Error: The address from which you are trying to send is disabled. You&apos;ll have to enable it on the &apos;Your Identities&apos; tab before using it.</source>
<translation>Ошибка: адрес, с которого Вы пытаетесь отправить, выключен. Вам нужно будет включить этот адрес во вкладке &quot;Ваши адреса&quot;.</translation> <translation>Ошибка: адрес, с которого вы пытаетесь отправить, выключен. Вам нужно включить этот адрес во вкладке &quot;Ваши адреса&quot; перед использованием.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3020"/> <location filename="../bitmessageqt/__init__.py" line="3020"/>
@ -800,42 +803,42 @@ It is important that you back up this file. Would you like to open the file now?
<translation type="unfinished"/> <translation type="unfinished"/>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3090"/> <location filename="../bitmessageqt/__init__.py" line="3100"/>
<source>Entry added to the blacklist. Edit the label to your liking.</source> <source>Entry added to the blacklist. Edit the label to your liking.</source>
<translation>Запись добавлена в чёрный список. Измените название по своему вкусу.</translation> <translation>Запись добавлена в чёрный список. Измените название по своему вкусу.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3095"/> <location filename="../bitmessageqt/__init__.py" line="3105"/>
<source>Error: You cannot add the same address to your blacklist twice. Try renaming the existing one if you want.</source> <source>Error: You cannot add the same address to your blacklist twice. Try renaming the existing one if you want.</source>
<translation>Ошибка: вы не можете добавить один и тот же адрес в чёрный список дважды. Попробуйте переименовать существующий адрес.</translation> <translation>Ошибка: вы не можете добавить один и тот же адрес в чёрный список дважды. Попробуйте переименовать существующий адрес.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3237"/> <location filename="../bitmessageqt/__init__.py" line="3247"/>
<source>Moved items to trash.</source> <source>Moved items to trash.</source>
<translation>Удалено в корзину.</translation> <translation>Удалено в корзину.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3181"/> <location filename="../bitmessageqt/__init__.py" line="3191"/>
<source>Undeleted item.</source> <source>Undeleted item.</source>
<translation>Элемент восстановлен.</translation> <translation>Элемент восстановлен.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3205"/> <location filename="../bitmessageqt/__init__.py" line="3215"/>
<source>Save As...</source> <source>Save As...</source>
<translation>Сохранить как ...</translation> <translation>Сохранить как ...</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3214"/> <location filename="../bitmessageqt/__init__.py" line="3224"/>
<source>Write error.</source> <source>Write error.</source>
<translation>Ошибка записи.</translation> <translation>Ошибка записи.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3317"/> <location filename="../bitmessageqt/__init__.py" line="3327"/>
<source>No addresses selected.</source> <source>No addresses selected.</source>
<translation>Вы не выбрали адрес.</translation> <translation>Вы не выбрали адрес.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3372"/> <location filename="../bitmessageqt/__init__.py" line="3382"/>
<source>If you delete the subscription, messages that you already received will become inaccessible. Maybe you can consider disabling the subscription instead. Disabled subscriptions will not receive new messages, but you can still view messages you already received. <source>If you delete the subscription, messages that you already received will become inaccessible. Maybe you can consider disabling the subscription instead. Disabled subscriptions will not receive new messages, but you can still view messages you already received.
Are you sure you want to delete the subscription?</source> Are you sure you want to delete the subscription?</source>
@ -844,7 +847,7 @@ Are you sure you want to delete the subscription?</source>
Вы уверены, что хотите отменить подписку?</translation> Вы уверены, что хотите отменить подписку?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3615"/> <location filename="../bitmessageqt/__init__.py" line="3629"/>
<source>If you delete the channel, messages that you already received will become inaccessible. Maybe you can consider disabling the channel instead. Disabled channels will not receive new messages, but you can still view messages you already received. <source>If you delete the channel, messages that you already received will become inaccessible. Maybe you can consider disabling the channel instead. Disabled channels will not receive new messages, but you can still view messages you already received.
Are you sure you want to delete the channel?</source> Are you sure you want to delete the channel?</source>
@ -853,32 +856,32 @@ Are you sure you want to delete the channel?</source>
Вы уверены, что хотите удалить канал?</translation> Вы уверены, что хотите удалить канал?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3745"/> <location filename="../bitmessageqt/__init__.py" line="3759"/>
<source>Do you really want to remove this avatar?</source> <source>Do you really want to remove this avatar?</source>
<translation>Вы уверены, что хотите удалить этот аватар?</translation> <translation>Вы уверены, что хотите удалить этот аватар?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3753"/> <location filename="../bitmessageqt/__init__.py" line="3767"/>
<source>You have already set an avatar for this address. Do you really want to overwrite it?</source> <source>You have already set an avatar for this address. Do you really want to overwrite it?</source>
<translation>У вас уже есть аватар для этого адреса. Вы уверены, что хотите перезаписать аватар?</translation> <translation>У вас уже есть аватар для этого адреса. Вы уверены, что хотите перезаписать аватар?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="4151"/> <location filename="../bitmessageqt/__init__.py" line="4169"/>
<source>Start-on-login not yet supported on your OS.</source> <source>Start-on-login not yet supported on your OS.</source>
<translation>Запуск программы при входе в систему ещё не поддерживается в вашей операционной системе.</translation> <translation>Запуск программы при входе в систему ещё не поддерживается в вашей операционной системе.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="4144"/> <location filename="../bitmessageqt/__init__.py" line="4162"/>
<source>Minimize-to-tray not yet supported on your OS.</source> <source>Minimize-to-tray not yet supported on your OS.</source>
<translation>Сворачивание в трей ещё не поддерживается в вашей операционной системе.</translation> <translation>Сворачивание в трей ещё не поддерживается в вашей операционной системе.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="4147"/> <location filename="../bitmessageqt/__init__.py" line="4165"/>
<source>Tray notifications not yet supported on your OS.</source> <source>Tray notifications not yet supported on your OS.</source>
<translation>Уведомления в трее ещё не поддерживаеются в вашей операционной системе.</translation> <translation>Уведомления в трее ещё не поддерживаеются в вашей операционной системе.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="4318"/> <location filename="../bitmessageqt/__init__.py" line="4336"/>
<source>Testing...</source> <source>Testing...</source>
<translation>Проверяем...</translation> <translation>Проверяем...</translation>
</message> </message>
@ -1128,7 +1131,7 @@ Are you sure you want to delete the channel?</source>
<translation>Подключить или создать чан</translation> <translation>Подключить или создать чан</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/foldertree.py" line="181"/> <location filename="../bitmessageqt/foldertree.py" line="206"/>
<source>All accounts</source> <source>All accounts</source>
<translation>Все аккаунты</translation> <translation>Все аккаунты</translation>
</message> </message>
@ -1138,12 +1141,12 @@ Are you sure you want to delete the channel?</source>
<translation>Увеличение %1%</translation> <translation>Увеличение %1%</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/blacklist.py" line="90"/> <location filename="../bitmessageqt/blacklist.py" line="91"/>
<source>Error: You cannot add the same address to your list twice. Perhaps rename the existing one if you want.</source> <source>Error: You cannot add the same address to your list twice. Perhaps rename the existing one if you want.</source>
<translation>Ошибка: вы не можете добавить один и тот же адрес в ваш лист дважды. Попробуйте переименовать существующий адрес.</translation> <translation>Ошибка: вы не можете добавить один и тот же адрес в ваш лист дважды. Попробуйте переименовать существующий адрес.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/blacklist.py" line="111"/> <location filename="../bitmessageqt/blacklist.py" line="112"/>
<source>Add new entry</source> <source>Add new entry</source>
<translation>Добавить новую запись</translation> <translation>Добавить новую запись</translation>
</message> </message>
@ -1153,42 +1156,42 @@ Are you sure you want to delete the channel?</source>
<translation type="unfinished"/> <translation type="unfinished"/>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1774"/> <location filename="../bitmessageqt/__init__.py" line="1783"/>
<source>New version of PyBitmessage is available: %1. Download it from https://github.com/Bitmessage/PyBitmessage/releases/latest</source> <source>New version of PyBitmessage is available: %1. Download it from https://github.com/Bitmessage/PyBitmessage/releases/latest</source>
<translation>Доступна новая версия PyBitmessage: %1. Загрузите её: https://github.com/Bitmessage/PyBitmessage/releases/latest</translation> <translation>Доступна новая версия PyBitmessage: %1. Загрузите её: https://github.com/Bitmessage/PyBitmessage/releases/latest</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2774"/> <location filename="../bitmessageqt/__init__.py" line="2785"/>
<source>Waiting for PoW to finish... %1%</source> <source>Waiting for PoW to finish... %1%</source>
<translation>Ожидание окончания PoW... %1%</translation> <translation>Ожидание окончания PoW... %1%</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2784"/> <location filename="../bitmessageqt/__init__.py" line="2795"/>
<source>Shutting down Pybitmessage... %1%</source> <source>Shutting down Pybitmessage... %1%</source>
<translation>Завершение PyBitmessage... %1%</translation> <translation>Завершение PyBitmessage... %1%</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2802"/> <location filename="../bitmessageqt/__init__.py" line="2814"/>
<source>Waiting for objects to be sent... %1%</source> <source>Waiting for objects to be sent... %1%</source>
<translation>Ожидание отправки объектов... %1%</translation> <translation>Ожидание отправки объектов... %1%</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2822"/> <location filename="../bitmessageqt/__init__.py" line="2832"/>
<source>Saving settings... %1%</source> <source>Saving settings... %1%</source>
<translation>Сохранение настроек... %1%</translation> <translation>Сохранение настроек... %1%</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2835"/> <location filename="../bitmessageqt/__init__.py" line="2845"/>
<source>Shutting down core... %1%</source> <source>Shutting down core... %1%</source>
<translation>Завершение работы ядра... %1%</translation> <translation>Завершение работы ядра... %1%</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2841"/> <location filename="../bitmessageqt/__init__.py" line="2851"/>
<source>Stopping notifications... %1%</source> <source>Stopping notifications... %1%</source>
<translation>Остановка сервиса уведомлений... %1%</translation> <translation>Остановка сервиса уведомлений... %1%</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2845"/> <location filename="../bitmessageqt/__init__.py" line="2855"/>
<source>Shutdown imminent... %1%</source> <source>Shutdown imminent... %1%</source>
<translation>Завершение вот-вот произойдет... %1%</translation> <translation>Завершение вот-вот произойдет... %1%</translation>
</message> </message>
@ -1198,42 +1201,42 @@ Are you sure you want to delete the channel?</source>
<translation><numerusform>%n час</numerusform><numerusform>%n часа</numerusform><numerusform>%n часов</numerusform><numerusform>%n час(а/ов)</numerusform></translation> <translation><numerusform>%n час</numerusform><numerusform>%n часа</numerusform><numerusform>%n часов</numerusform><numerusform>%n час(а/ов)</numerusform></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../bitmessageqt/__init__.py" line="829"/> <location filename="../bitmessageqt/__init__.py" line="834"/>
<source>%n day(s)</source> <source>%n day(s)</source>
<translation><numerusform>%n день</numerusform><numerusform>%n дня</numerusform><numerusform>%n дней</numerusform><numerusform>%n дней</numerusform></translation> <translation><numerusform>%n день</numerusform><numerusform>%n дня</numerusform><numerusform>%n дней</numerusform><numerusform>%n дней</numerusform></translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2742"/> <location filename="../bitmessageqt/__init__.py" line="2753"/>
<source>Shutting down PyBitmessage... %1%</source> <source>Shutting down PyBitmessage... %1%</source>
<translation>Завершение PyBitmessage... %1%</translation> <translation>Завершение PyBitmessage... %1%</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1148"/> <location filename="../bitmessageqt/__init__.py" line="1153"/>
<source>Sent</source> <source>Sent</source>
<translation>Отправлено</translation> <translation>Отправлено</translation>
</message> </message>
<message> <message>
<location filename="../class_addressGenerator.py" line="91"/> <location filename="../class_addressGenerator.py" line="115"/>
<source>Generating one new address</source> <source>Generating one new address</source>
<translation>Создание одного нового адреса</translation> <translation>Создание одного нового адреса</translation>
</message> </message>
<message> <message>
<location filename="../class_addressGenerator.py" line="153"/> <location filename="../class_addressGenerator.py" line="193"/>
<source>Done generating address. Doing work necessary to broadcast it...</source> <source>Done generating address. Doing work necessary to broadcast it...</source>
<translation>Создание адреса завершено. Выполнение работы, требуемой для его рассылки...</translation> <translation>Создание адреса завершено. Выполнение работы, требуемой для его рассылки...</translation>
</message> </message>
<message> <message>
<location filename="../class_addressGenerator.py" line="170"/> <location filename="../class_addressGenerator.py" line="219"/>
<source>Generating %1 new addresses.</source> <source>Generating %1 new addresses.</source>
<translation>Создание %1 новых адресов.</translation> <translation>Создание %1 новых адресов.</translation>
</message> </message>
<message> <message>
<location filename="../class_addressGenerator.py" line="247"/> <location filename="../class_addressGenerator.py" line="323"/>
<source>%1 is already in &apos;Your Identities&apos;. Not adding it again.</source> <source>%1 is already in &apos;Your Identities&apos;. Not adding it again.</source>
<translation>%1 уже имеется в ваших адресах. Не добавляю его снова.</translation> <translation>%1 уже имеется в ваших адресах. Не добавляю его снова.</translation>
</message> </message>
<message> <message>
<location filename="../class_addressGenerator.py" line="283"/> <location filename="../class_addressGenerator.py" line="377"/>
<source>Done generating address</source> <source>Done generating address</source>
<translation>Создание адресов завершено.</translation> <translation>Создание адресов завершено.</translation>
</message> </message>
@ -1243,96 +1246,96 @@ Are you sure you want to delete the channel?</source>
<translation type="unfinished"/> <translation type="unfinished"/>
</message> </message>
<message> <message>
<location filename="../class_sqlThread.py" line="584"/> <location filename="../class_sqlThread.py" line="566"/>
<source>Disk full</source> <source>Disk full</source>
<translation>Диск переполнен</translation> <translation>Диск переполнен</translation>
</message> </message>
<message> <message>
<location filename="../class_sqlThread.py" line="584"/> <location filename="../class_sqlThread.py" line="566"/>
<source>Alert: Your disk or data storage volume is full. Bitmessage will now exit.</source> <source>Alert: Your disk or data storage volume is full. Bitmessage will now exit.</source>
<translation>Внимание: свободное место на диске закончилось. Bitmessage завершит свою работу.</translation> <translation>Внимание: свободное место на диске закончилось. Bitmessage завершит свою работу.</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="747"/> <location filename="../class_singleWorker.py" line="1060"/>
<source>Error! Could not find sender address (your address) in the keys.dat file.</source> <source>Error! Could not find sender address (your address) in the keys.dat file.</source>
<translation>Ошибка: невозможно найти адрес отправителя (ваш адрес) в файле ключей keys.dat</translation> <translation>Ошибка: невозможно найти адрес отправителя (ваш адрес) в файле ключей keys.dat</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="495"/> <location filename="../class_singleWorker.py" line="580"/>
<source>Doing work necessary to send broadcast...</source> <source>Doing work necessary to send broadcast...</source>
<translation>Выполнение работы, требуемой для рассылки...</translation> <translation>Выполнение работы, требуемой для рассылки...</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="518"/> <location filename="../class_singleWorker.py" line="613"/>
<source>Broadcast sent on %1</source> <source>Broadcast sent on %1</source>
<translation>Рассылка отправлена на %1</translation> <translation>Рассылка отправлена на %1</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="587"/> <location filename="../class_singleWorker.py" line="721"/>
<source>Encryption key was requested earlier.</source> <source>Encryption key was requested earlier.</source>
<translation>Ключ шифрования запрошен ранее.</translation> <translation>Ключ шифрования запрошен ранее.</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="624"/> <location filename="../class_singleWorker.py" line="795"/>
<source>Sending a request for the recipient&apos;s encryption key.</source> <source>Sending a request for the recipient&apos;s encryption key.</source>
<translation>Отправка запроса ключа шифрования получателя.</translation> <translation>Отправка запроса ключа шифрования получателя.</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="639"/> <location filename="../class_singleWorker.py" line="820"/>
<source>Looking up the receiver&apos;s public key</source> <source>Looking up the receiver&apos;s public key</source>
<translation>Поиск открытого ключа получателя</translation> <translation>Поиск открытого ключа получателя</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="673"/> <location filename="../class_singleWorker.py" line="878"/>
<source>Problem: Destination is a mobile device who requests that the destination be included in the message but this is disallowed in your settings. %1</source> <source>Problem: Destination is a mobile device who requests that the destination be included in the message but this is disallowed in your settings. %1</source>
<translation>Проблема: адресат является мобильным устройством, которое требует, чтобы адрес назначения был включен в сообщение, однако, это запрещено в ваших настройках. %1</translation> <translation>Проблема: адресат является мобильным устройством, которое требует, чтобы адрес назначения был включен в сообщение, однако, это запрещено в ваших настройках. %1</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="687"/> <location filename="../class_singleWorker.py" line="909"/>
<source>Doing work necessary to send message. <source>Doing work necessary to send message.
There is no required difficulty for version 2 addresses like this.</source> There is no required difficulty for version 2 addresses like this.</source>
<translation>Выполнение работы, требуемой для отправки сообщения. <translation>Выполнение работы, требуемой для отправки сообщения.
Для адреса версии 2 (как этот), не требуется указание сложности.</translation> Для адреса версии 2 (как этот), не требуется указание сложности.</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="701"/> <location filename="../class_singleWorker.py" line="944"/>
<source>Doing work necessary to send message. <source>Doing work necessary to send message.
Receiver&apos;s required difficulty: %1 and %2</source> Receiver&apos;s required difficulty: %1 and %2</source>
<translation>Выполнение работы, требуемой для отправки сообщения. <translation>Выполнение работы, требуемой для отправки сообщения.
Получатель запросил сложность: %1 и %2</translation> Получатель запросил сложность: %1 и %2</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="710"/> <location filename="../class_singleWorker.py" line="984"/>
<source>Problem: The work demanded by the recipient (%1 and %2) is more difficult than you are willing to do. %3</source> <source>Problem: The work demanded by the recipient (%1 and %2) is more difficult than you are willing to do. %3</source>
<translation>Проблема: сложность, затребованная получателем (%1 и %2) гораздо больше, чем вы готовы сделать. %3</translation> <translation>Проблема: сложность, затребованная получателем (%1 и %2) гораздо больше, чем вы готовы сделать. %3</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="722"/> <location filename="../class_singleWorker.py" line="1012"/>
<source>Problem: You are trying to send a message to yourself or a chan but your encryption key could not be found in the keys.dat file. Could not encrypt message. %1</source> <source>Problem: You are trying to send a message to yourself or a chan but your encryption key could not be found in the keys.dat file. Could not encrypt message. %1</source>
<translation>Проблема: вы пытаетесь отправить сообщение самому себе или в чан, но ваш ключ шифрования не найден в файле ключей keys.dat. Невозможно зашифровать сообщение. %1</translation> <translation>Проблема: вы пытаетесь отправить сообщение самому себе или в чан, но ваш ключ шифрования не найден в файле ключей keys.dat. Невозможно зашифровать сообщение. %1</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1049"/> <location filename="../bitmessageqt/__init__.py" line="1054"/>
<source>Doing work necessary to send message.</source> <source>Doing work necessary to send message.</source>
<translation>Выполнение работы, требуемой для отправки сообщения.</translation> <translation>Выполнение работы, требуемой для отправки сообщения.</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="845"/> <location filename="../class_singleWorker.py" line="1218"/>
<source>Message sent. Waiting for acknowledgement. Sent on %1</source> <source>Message sent. Waiting for acknowledgement. Sent on %1</source>
<translation>Отправлено. Ожидаем подтверждения. Отправлено в %1 </translation> <translation>Отправлено. Ожидаем подтверждения. Отправлено в %1 </translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1037"/> <location filename="../bitmessageqt/__init__.py" line="1042"/>
<source>Doing work necessary to request encryption key.</source> <source>Doing work necessary to request encryption key.</source>
<translation>Выполнение работы, требуемой для запроса ключа шифрования.</translation> <translation>Выполнение работы, требуемой для запроса ключа шифрования.</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="961"/> <location filename="../class_singleWorker.py" line="1380"/>
<source>Broadcasting the public key request. This program will auto-retry if they are offline.</source> <source>Broadcasting the public key request. This program will auto-retry if they are offline.</source>
<translation>Рассылка запросов открытого ключа шифрования. Программа будет повторять попытки, если они оффлайн.</translation> <translation>Рассылка запросов открытого ключа шифрования. Программа будет повторять попытки, если они оффлайн.</translation>
</message> </message>
<message> <message>
<location filename="../class_singleWorker.py" line="963"/> <location filename="../class_singleWorker.py" line="1387"/>
<source>Sending public key request. Waiting for reply. Requested at %1</source> <source>Sending public key request. Waiting for reply. Requested at %1</source>
<translation>Отправка запроса открытого ключа шифрования. Ожидание ответа. Запрошено в %1</translation> <translation>Отправка запроса открытого ключа шифрования. Ожидание ответа. Запрошено в %1</translation>
</message> </message>
@ -1347,107 +1350,97 @@ Receiver&apos;s required difficulty: %1 and %2</source>
<translation>Распределение портов UPnP отменено</translation> <translation>Распределение портов UPnP отменено</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="248"/> <location filename="../bitmessageqt/__init__.py" line="244"/>
<source>Mark all messages as read</source> <source>Mark all messages as read</source>
<translation>Отметить все сообщения как прочтенные</translation> <translation>Отметить все сообщения как прочтенные</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2636"/> <location filename="../bitmessageqt/__init__.py" line="2645"/>
<source>Are you sure you would like to mark all messages read?</source> <source>Are you sure you would like to mark all messages read?</source>
<translation>Вы уверены, что хотите отметить все сообщения как прочтенные?</translation> <translation>Вы уверены, что хотите отметить все сообщения как прочтенные?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1058"/> <location filename="../bitmessageqt/__init__.py" line="1063"/>
<source>Doing work necessary to send broadcast.</source> <source>Doing work necessary to send broadcast.</source>
<translation>Выполнение работы, требуемой для отправки рассылки.</translation> <translation>Выполнение работы, требуемой для отправки рассылки.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2708"/> <location filename="../bitmessageqt/__init__.py" line="2721"/>
<source>Proof of work pending</source> <source>Proof of work pending</source>
<translation>Ожидается доказательство работы</translation> <translation>Ожидается доказательство работы</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../bitmessageqt/__init__.py" line="2708"/> <location filename="../bitmessageqt/__init__.py" line="2721"/>
<source>%n object(s) pending proof of work</source> <source>%n object(s) pending proof of work</source>
<translation><numerusform>%n объект в ожидании доказательства работы</numerusform><numerusform>%n объекта в ожидании доказательства работы</numerusform><numerusform>%n объектов в ожидании доказательства работы</numerusform><numerusform>%n объектов в ожидании доказательства работы</numerusform></translation> <translation><numerusform>%n объект в ожидании доказательства работы</numerusform><numerusform>%n объекта в ожидании доказательства работы</numerusform><numerusform>%n объектов в ожидании доказательства работы</numerusform><numerusform>%n объектов в ожидании доказательства работы</numerusform></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../bitmessageqt/__init__.py" line="2708"/> <location filename="../bitmessageqt/__init__.py" line="2721"/>
<source>%n object(s) waiting to be distributed</source> <source>%n object(s) waiting to be distributed</source>
<translation><numerusform>%n объект ожидает раздачи</numerusform><numerusform>%n объекта ожидают раздачи</numerusform><numerusform>%n объектов ожидают раздачи</numerusform><numerusform>%n объектов ожидают раздачи</numerusform></translation> <translation><numerusform>%n объект ожидает раздачи</numerusform><numerusform>%n объекта ожидают раздачи</numerusform><numerusform>%n объектов ожидают раздачи</numerusform><numerusform>%n объектов ожидают раздачи</numerusform></translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2708"/> <location filename="../bitmessageqt/__init__.py" line="2721"/>
<source>Wait until these tasks finish?</source> <source>Wait until these tasks finish?</source>
<translation>Подождать завершения этих задач?</translation> <translation>Подождать завершения этих задач?</translation>
</message> </message>
<message> <message>
<location filename="../class_outgoingSynSender.py" line="211"/> <location filename="../namecoin.py" line="115"/>
<source>Problem communicating with proxy: %1. Please check your network settings.</source>
<translation>Проблема коммуникации с прокси: %1. Пожалуйста, проверьте ваши сетевые настройки.</translation>
</message>
<message>
<location filename="../class_outgoingSynSender.py" line="240"/>
<source>SOCKS5 Authentication problem: %1. Please check your SOCKS5 settings.</source>
<translation>Проблема аутентификации SOCKS5: %1. Пожалуйста, проверьте настройки SOCKS5.</translation>
</message>
<message>
<location filename="../class_receiveDataThread.py" line="171"/>
<source>The time on your computer, %1, may be wrong. Please verify your settings.</source>
<translation>Время на компьютере, %1, возможно неправильное. Пожалуйста, проверьте ваши настройки.</translation>
</message>
<message>
<location filename="../namecoin.py" line="101"/>
<source>The name %1 was not found.</source> <source>The name %1 was not found.</source>
<translation>Имя %1 не найдено.</translation> <translation>Имя %1 не найдено.</translation>
</message> </message>
<message> <message>
<location filename="../namecoin.py" line="110"/> <location filename="../namecoin.py" line="124"/>
<source>The namecoin query failed (%1)</source> <source>The namecoin query failed (%1)</source>
<translation>Запрос к namecoin не удался (%1).</translation> <translation>Запрос к namecoin не удался (%1).</translation>
</message> </message>
<message> <message>
<location filename="../namecoin.py" line="113"/> <location filename="../namecoin.py" line="127"/>
<source>The namecoin query failed.</source> <source>The namecoin query failed.</source>
<translation>Запрос к namecoin не удался.</translation> <translation>Запрос к namecoin не удался.</translation>
</message> </message>
<message> <message>
<location filename="../namecoin.py" line="119"/> <location filename="../namecoin.py" line="133"/>
<source>The name %1 has no valid JSON data.</source> <source>The name %1 has no valid JSON data.</source>
<translation>Имя %1 не содержит корректных данных JSON.</translation> <translation>Имя %1 не содержит корректных данных JSON.</translation>
</message> </message>
<message> <message>
<location filename="../namecoin.py" line="127"/> <location filename="../namecoin.py" line="141"/>
<source>The name %1 has no associated Bitmessage address.</source> <source>The name %1 has no associated Bitmessage address.</source>
<translation>Имя %1 не имеет связанного адреса Bitmessage.</translation> <translation>Имя %1 не имеет связанного адреса Bitmessage.</translation>
</message> </message>
<message> <message>
<location filename="../namecoin.py" line="147"/> <location filename="../namecoin.py" line="171"/>
<source>Success! Namecoind version %1 running.</source> <source>Success! Namecoind version %1 running.</source>
<translation>Успех! Namecoind версии %1 работает.</translation> <translation>Успех! Namecoind версии %1 работает.</translation>
</message> </message>
<message> <message>
<location filename="../namecoin.py" line="153"/> <location filename="../namecoin.py" line="182"/>
<source>Success! NMControll is up and running.</source> <source>Success! NMControll is up and running.</source>
<translation>Успех! NMControl запущен и работает.</translation> <translation>Успех! NMControl запущен и работает.</translation>
</message> </message>
<message> <message>
<location filename="../namecoin.py" line="156"/> <location filename="../namecoin.py" line="185"/>
<source>Couldn&apos;t understand NMControl.</source> <source>Couldn&apos;t understand NMControl.</source>
<translation>Не удалось разобрать ответ NMControl.</translation> <translation>Не удалось разобрать ответ NMControl.</translation>
</message> </message>
<message>
<location filename="../namecoin.py" line="195"/>
<source>The connection to namecoin failed.</source>
<translation>Не удалось соединиться с namecoin.</translation>
</message>
<message> <message>
<location filename="../proofofwork.py" line="120"/> <location filename="../proofofwork.py" line="120"/>
<source>Your GPU(s) did not calculate correctly, disabling OpenCL. Please report to the developers.</source> <source>Your GPU(s) did not calculate correctly, disabling OpenCL. Please report to the developers.</source>
<translation>Ваша видеокарта вычислила неправильно, отключаем OpenCL. Пожалуйста, сообщите разработчикам.</translation> <translation>Ваша видеокарта вычислила неправильно, отключаем OpenCL. Пожалуйста, сообщите разработчикам.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3793"/> <location filename="../bitmessageqt/__init__.py" line="3807"/>
<source>Set notification sound...</source> <source>Set notification sound...</source>
<translation>Установить звук уведомления...</translation> <translation>Установить звук уведомления...</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="637"/> <location filename="../bitmessageqt/__init__.py" line="645"/>
<source> <source>
Welcome to easy and secure Bitmessage Welcome to easy and secure Bitmessage
* send messages to other people * send messages to other people
@ -1461,119 +1454,119 @@ Receiver&apos;s required difficulty: %1 and %2</source>
* участвуйте в обсуждениях в чанах</translation> * участвуйте в обсуждениях в чанах</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="820"/> <location filename="../bitmessageqt/__init__.py" line="825"/>
<source>not recommended for chans</source> <source>not recommended for chans</source>
<translation>не рекомендовано для чанов</translation> <translation>не рекомендовано для чанов</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1213"/> <location filename="../bitmessageqt/__init__.py" line="1218"/>
<source>Quiet Mode</source> <source>Quiet Mode</source>
<translation>Тихий режим</translation> <translation>Тихий режим</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1603"/> <location filename="../bitmessageqt/__init__.py" line="1610"/>
<source>Problems connecting? Try enabling UPnP in the Network Settings</source> <source>Problems connecting? Try enabling UPnP in the Network Settings</source>
<translation>Проблемы подключения? Попробуйте включить UPnP в сетевых настройках.</translation> <translation>Проблемы подключения? Попробуйте включить UPnP в сетевых настройках.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1928"/> <location filename="../bitmessageqt/__init__.py" line="1937"/>
<source>You are trying to send an email instead of a bitmessage. This requires registering with a gateway. Attempt to register?</source> <source>You are trying to send an email instead of a bitmessage. This requires registering with a gateway. Attempt to register?</source>
<translation>Вы пытаетесь отправить email вместо bitmessage. Для этого нужно зарегистрироваться на шлюзе. Попробовать зарегистрироваться?</translation> <translation>Вы пытаетесь отправить email вместо bitmessage. Для этого нужно зарегистрироваться на шлюзе. Попробовать зарегистрироваться?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1960"/> <location filename="../bitmessageqt/__init__.py" line="1969"/>
<source>Error: Bitmessage addresses start with BM- Please check the recipient address %1</source> <source>Error: Bitmessage addresses start with BM- Please check the recipient address %1</source>
<translation>Ошибка: адреса Bitmessage начинаются с &quot;BM-&quot;. Пожалуйста, проверьте адрес получателя %1.</translation> <translation>Ошибка: адреса Bitmessage начинаются с &quot;BM-&quot;. Пожалуйста, проверьте адрес получателя %1.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1966"/> <location filename="../bitmessageqt/__init__.py" line="1975"/>
<source>Error: The recipient address %1 is not typed or copied correctly. Please check it.</source> <source>Error: The recipient address %1 is not typed or copied correctly. Please check it.</source>
<translation>Ошибка: адрес получателя %1 набран или скопирован неправильно. Пожалуйста, проверьте его.</translation> <translation>Ошибка: адрес получателя %1 набран или скопирован неправильно. Пожалуйста, проверьте его.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1972"/> <location filename="../bitmessageqt/__init__.py" line="1981"/>
<source>Error: The recipient address %1 contains invalid characters. Please check it.</source> <source>Error: The recipient address %1 contains invalid characters. Please check it.</source>
<translation>Ошибка: адрес получателя %1 содержит недопустимые символы. Пожалуйста, проверьте его.</translation> <translation>Ошибка: адрес получателя %1 содержит недопустимые символы. Пожалуйста, проверьте его.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1978"/> <location filename="../bitmessageqt/__init__.py" line="1987"/>
<source>Error: The version of the recipient address %1 is too high. Either you need to upgrade your Bitmessage software or your acquaintance is being clever.</source> <source>Error: The version of the recipient address %1 is too high. Either you need to upgrade your Bitmessage software or your acquaintance is being clever.</source>
<translation>Ошибка: версия адреса получателя %1 слишком высокая. Либо вам нужно обновить программу Bitmessage, либо ваш знакомый - умник.</translation> <translation>Ошибка: версия адреса получателя %1 слишком высокая. Либо вам нужно обновить программу Bitmessage, либо ваш знакомый - умник.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1986"/> <location filename="../bitmessageqt/__init__.py" line="1995"/>
<source>Error: Some data encoded in the recipient address %1 is too short. There might be something wrong with the software of your acquaintance.</source> <source>Error: Some data encoded in the recipient address %1 is too short. There might be something wrong with the software of your acquaintance.</source>
<translation>Ошибка: часть данных, закодированных в адресе получателя %1 слишком короткая. Видимо, что-то не так с программой, используемой вашим знакомым.</translation> <translation>Ошибка: часть данных, закодированных в адресе получателя %1 слишком короткая. Видимо, что-то не так с программой, используемой вашим знакомым.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="1994"/> <location filename="../bitmessageqt/__init__.py" line="2003"/>
<source>Error: Some data encoded in the recipient address %1 is too long. There might be something wrong with the software of your acquaintance.</source> <source>Error: Some data encoded in the recipient address %1 is too long. There might be something wrong with the software of your acquaintance.</source>
<translation>Ошибка: часть данных, закодированных в адресе получателя %1 слишком длинная. Видимо, что-то не так с программой, используемой вашим знакомым.</translation> <translation>Ошибка: часть данных, закодированных в адресе получателя %1 слишком длинная. Видимо, что-то не так с программой, используемой вашим знакомым.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2002"/> <location filename="../bitmessageqt/__init__.py" line="2011"/>
<source>Error: Some data encoded in the recipient address %1 is malformed. There might be something wrong with the software of your acquaintance.</source> <source>Error: Some data encoded in the recipient address %1 is malformed. There might be something wrong with the software of your acquaintance.</source>
<translation>Ошибка: часть данных, закодированных в адресе получателя %1 сформирована неправильно. Видимо, что-то не так с программой, используемой вашим знакомым.</translation> <translation>Ошибка: часть данных, закодированных в адресе получателя %1 сформирована неправильно. Видимо, что-то не так с программой, используемой вашим знакомым.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2010"/> <location filename="../bitmessageqt/__init__.py" line="2019"/>
<source>Error: Something is wrong with the recipient address %1.</source> <source>Error: Something is wrong with the recipient address %1.</source>
<translation>Ошибка: что-то не так с адресом получателя %1.</translation> <translation>Ошибка: что-то не так с адресом получателя %1.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2160"/> <location filename="../bitmessageqt/__init__.py" line="2169"/>
<source>Error: %1</source> <source>Error: %1</source>
<translation>Ошибка: %1</translation> <translation>Ошибка: %1</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2277"/> <location filename="../bitmessageqt/__init__.py" line="2286"/>
<source>From %1</source> <source>From %1</source>
<translation>От %1</translation> <translation>От %1</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2719"/> <location filename="../bitmessageqt/__init__.py" line="2732"/>
<source>Synchronisation pending</source> <source>Synchronisation pending</source>
<translation>Ожидается синхронизация</translation> <translation>Ожидается синхронизация</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../bitmessageqt/__init__.py" line="2719"/> <location filename="../bitmessageqt/__init__.py" line="2732"/>
<source>Bitmessage hasn&apos;t synchronised with the network, %n object(s) to be downloaded. If you quit now, it may cause delivery delays. Wait until the synchronisation finishes?</source> <source>Bitmessage hasn&apos;t synchronised with the network, %n object(s) to be downloaded. If you quit now, it may cause delivery delays. Wait until the synchronisation finishes?</source>
<translation><numerusform>Bitmessage не синхронизирован с сетью, незагруженных объектов: %n. Выход сейчас может привести к задержкам доставки. Подождать завершения синхронизации?</numerusform><numerusform>Bitmessage не синхронизирован с сетью, незагруженных объектов: %n. Выход сейчас может привести к задержкам доставки. Подождать завершения синхронизации?</numerusform><numerusform>Bitmessage не синхронизирован с сетью, незагруженных объектов: %n. Выход сейчас может привести к задержкам доставки. Подождать завершения синхронизации?</numerusform><numerusform>Bitmessage не синхронизирован с сетью, незагруженных объектов: %n. Выход сейчас может привести к задержкам доставки. Подождать завершения синхронизации?</numerusform></translation> <translation><numerusform>Bitmessage не синхронизирован с сетью, незагруженных объектов: %n. Выход сейчас может привести к задержкам доставки. Подождать завершения синхронизации?</numerusform><numerusform>Bitmessage не синхронизирован с сетью, незагруженных объектов: %n. Выход сейчас может привести к задержкам доставки. Подождать завершения синхронизации?</numerusform><numerusform>Bitmessage не синхронизирован с сетью, незагруженных объектов: %n. Выход сейчас может привести к задержкам доставки. Подождать завершения синхронизации?</numerusform><numerusform>Bitmessage не синхронизирован с сетью, незагруженных объектов: %n. Выход сейчас может привести к задержкам доставки. Подождать завершения синхронизации?</numerusform></translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2731"/> <location filename="../bitmessageqt/__init__.py" line="2742"/>
<source>Not connected</source> <source>Not connected</source>
<translation>Не подключено</translation> <translation>Не подключено</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2731"/> <location filename="../bitmessageqt/__init__.py" line="2742"/>
<source>Bitmessage isn&apos;t connected to the network. If you quit now, it may cause delivery delays. Wait until connected and the synchronisation finishes?</source> <source>Bitmessage isn&apos;t connected to the network. If you quit now, it may cause delivery delays. Wait until connected and the synchronisation finishes?</source>
<translation>Bitmessage не подключен к сети. Выход сейчас может привести к задержкам доставки. Подождать подключения и завершения синхронизации?</translation> <translation>Bitmessage не подключен к сети. Выход сейчас может привести к задержкам доставки. Подождать подключения и завершения синхронизации?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2746"/> <location filename="../bitmessageqt/__init__.py" line="2757"/>
<source>Waiting for network connection...</source> <source>Waiting for network connection...</source>
<translation>Ожидание сетевого подключения...</translation> <translation>Ожидание сетевого подключения...</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="2756"/> <location filename="../bitmessageqt/__init__.py" line="2767"/>
<source>Waiting for finishing synchronisation...</source> <source>Waiting for finishing synchronisation...</source>
<translation>Ожидание окончания синхронизации...</translation> <translation>Ожидание окончания синхронизации...</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="3811"/> <location filename="../bitmessageqt/__init__.py" line="3825"/>
<source>You have already set a notification sound for this address book entry. Do you really want to overwrite it?</source> <source>You have already set a notification sound for this address book entry. Do you really want to overwrite it?</source>
<translation>У вас уже есть звук уведомления для этого адресата. Вы уверены, что хотите перезаписать звук уведомления?</translation> <translation>У вас уже есть звук уведомления для этого адресата. Вы уверены, что хотите перезаписать звук уведомления?</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/__init__.py" line="4028"/> <location filename="../bitmessageqt/__init__.py" line="4046"/>
<source>Error occurred: could not load message from disk.</source> <source>Error occurred: could not load message from disk.</source>
<translation>Произошла ошибка: не удалось загрузить сообщение с диска.</translation> <translation>Произошла ошибка: не удалось загрузить сообщение с диска.</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../bitmessageqt/address_dialogs.py" line="194"/> <location filename="../bitmessageqt/address_dialogs.py" line="194"/>
<source>Display the %n recent broadcast(s) from this address.</source> <source>Display the %n recent broadcast(s) from this address.</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation> <translation><numerusform>Показать %1 прошлую рассылку с этого адреса.</numerusform><numerusform>Показать %1 прошлых рассылки с этого адреса.</numerusform><numerusform>Показать %1 прошлых рассылок с этого адреса.</numerusform><numerusform>Показать %1 прошлых рассылок с этого адреса.</numerusform></translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/bitmessageui.py" line="658"/> <location filename="../bitmessageqt/bitmessageui.py" line="658"/>
@ -1591,24 +1584,24 @@ Receiver&apos;s required difficulty: %1 and %2</source>
<translation>Очистить</translation> <translation>Очистить</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/foldertree.py" line="11"/> <location filename="../bitmessageqt/foldertree.py" line="10"/>
<source>inbox</source> <source>inbox</source>
<translation>входящие</translation> <translation>входящие</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/foldertree.py" line="12"/> <location filename="../bitmessageqt/foldertree.py" line="11"/>
<source>new</source> <source>new</source>
<translation>новые</translation> <translation>новые</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/foldertree.py" line="13"/> <location filename="../bitmessageqt/foldertree.py" line="12"/>
<source>sent</source> <source>sent</source>
<translation>отправленные</translation> <translation>отправленные</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/foldertree.py" line="14"/> <location filename="../bitmessageqt/foldertree.py" line="13"/>
<source>trash</source> <source>trash</source>
<translation type="unfinished"/> <translation>корзина</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1637,14 +1630,14 @@ Receiver&apos;s required difficulty: %1 and %2</source>
<context> <context>
<name>MsgDecode</name> <name>MsgDecode</name>
<message> <message>
<location filename="../helper_msgcoding.py" line="72"/> <location filename="../helper_msgcoding.py" line="81"/>
<source>The message has an unknown encoding. <source>The message has an unknown encoding.
Perhaps you should upgrade Bitmessage.</source> Perhaps you should upgrade Bitmessage.</source>
<translation>Сообщение в неизвестной кодировке. <translation>Сообщение в неизвестной кодировке.
Возможно, вам следует обновить Bitmessage.</translation> Возможно, вам следует обновить Bitmessage.</translation>
</message> </message>
<message> <message>
<location filename="../helper_msgcoding.py" line="73"/> <location filename="../helper_msgcoding.py" line="82"/>
<source>Unknown encoding</source> <source>Unknown encoding</source>
<translation>Неизвестная кодировка</translation> <translation>Неизвестная кодировка</translation>
</message> </message>
@ -1870,12 +1863,12 @@ The &apos;Random Number&apos; option is selected by default but deterministic ad
<translation>Адрес</translation> <translation>Адрес</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/blacklist.py" line="150"/> <location filename="../bitmessageqt/blacklist.py" line="151"/>
<source>Blacklist</source> <source>Blacklist</source>
<translation>Чёрный список</translation> <translation>Чёрный список</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/blacklist.py" line="152"/> <location filename="../bitmessageqt/blacklist.py" line="153"/>
<source>Whitelist</source> <source>Whitelist</source>
<translation>Белый список</translation> <translation>Белый список</translation>
</message> </message>
@ -2226,14 +2219,6 @@ The &apos;Random Number&apos; option is selected by default but deterministic ad
<translation>Модуль C для PoW недоступен. Пожалуйста, соберите его.</translation> <translation>Модуль C для PoW недоступен. Пожалуйста, соберите его.</translation>
</message> </message>
</context> </context>
<context>
<name>qrcodeDialog</name>
<message>
<location filename="../plugins/qrcodeui.py" line="67"/>
<source>QR-code</source>
<translation>QR-код</translation>
</message>
</context>
<context> <context>
<name>regenerateAddressesDialog</name> <name>regenerateAddressesDialog</name>
<message> <message>
@ -2290,218 +2275,218 @@ The &apos;Random Number&apos; option is selected by default but deterministic ad
<context> <context>
<name>settingsDialog</name> <name>settingsDialog</name>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="453"/> <location filename="../bitmessageqt/settings.py" line="483"/>
<source>Settings</source> <source>Settings</source>
<translation>Настройки</translation> <translation>Настройки</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="454"/> <location filename="../bitmessageqt/settings.py" line="484"/>
<source>Start Bitmessage on user login</source> <source>Start Bitmessage on user login</source>
<translation>Запускать Bitmessage при входе в систему</translation> <translation>Запускать Bitmessage при входе в систему</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="455"/> <location filename="../bitmessageqt/settings.py" line="485"/>
<source>Tray</source> <source>Tray</source>
<translation>Трей</translation> <translation>Трей</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="456"/> <location filename="../bitmessageqt/settings.py" line="486"/>
<source>Start Bitmessage in the tray (don&apos;t show main window)</source> <source>Start Bitmessage in the tray (don&apos;t show main window)</source>
<translation>Запускать Bitmessage в свернутом виде (не показывать главное окно)</translation> <translation>Запускать Bitmessage в свернутом виде (не показывать главное окно)</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="457"/> <location filename="../bitmessageqt/settings.py" line="491"/>
<source>Minimize to tray</source> <source>Minimize to tray</source>
<translation>Сворачивать в трей</translation> <translation>Сворачивать в трей</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="458"/> <location filename="../bitmessageqt/settings.py" line="492"/>
<source>Close to tray</source> <source>Close to tray</source>
<translation>Закрывать в трей</translation> <translation>Закрывать в трей</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="460"/> <location filename="../bitmessageqt/settings.py" line="495"/>
<source>Show notification when message received</source> <source>Show notification when message received</source>
<translation>Показывать уведомления при получении новых сообщений</translation> <translation>Показывать уведомления при получении новых сообщений</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="461"/> <location filename="../bitmessageqt/settings.py" line="500"/>
<source>Run in Portable Mode</source> <source>Run in Portable Mode</source>
<translation>Запустить в переносном режиме</translation> <translation>Запустить в переносном режиме</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="462"/> <location filename="../bitmessageqt/settings.py" line="501"/>
<source>In Portable Mode, messages and config files are stored in the same directory as the program rather than the normal application-data folder. This makes it convenient to run Bitmessage from a USB thumb drive.</source> <source>In Portable Mode, messages and config files are stored in the same directory as the program rather than the normal application-data folder. This makes it convenient to run Bitmessage from a USB thumb drive.</source>
<translation>В переносном режиме, все сообщения и конфигурационные файлы сохраняются в той же самой папке что и сама программа. Это делает более удобным использование Bitmessage с USB-флэшки.</translation> <translation>В переносном режиме, все сообщения и конфигурационные файлы сохраняются в той же самой папке что и сама программа. Это делает более удобным использование Bitmessage с USB-флэшки.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="463"/> <location filename="../bitmessageqt/settings.py" line="508"/>
<source>Willingly include unencrypted destination address when sending to a mobile device</source> <source>Willingly include unencrypted destination address when sending to a mobile device</source>
<translation>Специально прикреплять незашифрованный адрес получателя, когда посылаем на мобильное устройство</translation> <translation>Специально прикреплять незашифрованный адрес получателя, когда посылаем на мобильное устройство</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="464"/> <location filename="../bitmessageqt/settings.py" line="513"/>
<source>Use Identicons</source> <source>Use Identicons</source>
<translation>Включить иконки адресов</translation> <translation>Включить иконки адресов</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="465"/> <location filename="../bitmessageqt/settings.py" line="514"/>
<source>Reply below Quote</source> <source>Reply below Quote</source>
<translation>Отвечать после цитаты</translation> <translation>Отвечать после цитаты</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="466"/> <location filename="../bitmessageqt/settings.py" line="515"/>
<source>Interface Language</source> <source>Interface Language</source>
<translation>Язык интерфейса</translation> <translation>Язык интерфейса</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="467"/> <location filename="../bitmessageqt/settings.py" line="516"/>
<source>System Settings</source> <source>System Settings</source>
<comment>system</comment> <comment>system</comment>
<translation>Язык по умолчанию</translation> <translation>Язык по умолчанию</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="468"/> <location filename="../bitmessageqt/settings.py" line="517"/>
<source>User Interface</source> <source>User Interface</source>
<translation>Пользовательские</translation> <translation>Пользовательские</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="469"/> <location filename="../bitmessageqt/settings.py" line="522"/>
<source>Listening port</source> <source>Listening port</source>
<translation>Порт прослушивания</translation> <translation>Порт прослушивания</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="470"/> <location filename="../bitmessageqt/settings.py" line="523"/>
<source>Listen for connections on port:</source> <source>Listen for connections on port:</source>
<translation>Прослушивать соединения на порту:</translation> <translation>Прослушивать соединения на порту:</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="471"/> <location filename="../bitmessageqt/settings.py" line="524"/>
<source>UPnP:</source> <source>UPnP:</source>
<translation>UPnP:</translation> <translation>UPnP:</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="472"/> <location filename="../bitmessageqt/settings.py" line="525"/>
<source>Bandwidth limit</source> <source>Bandwidth limit</source>
<translation>Ограничение пропускной способности</translation> <translation>Ограничение пропускной способности</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="473"/> <location filename="../bitmessageqt/settings.py" line="526"/>
<source>Maximum download rate (kB/s): [0: unlimited]</source> <source>Maximum download rate (kB/s): [0: unlimited]</source>
<translation>Максимальная скорость загрузки (кБ/с): [0: не ограничено]</translation> <translation>Максимальная скорость загрузки (кБ/с): [0: не ограничено]</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="474"/> <location filename="../bitmessageqt/settings.py" line="527"/>
<source>Maximum upload rate (kB/s): [0: unlimited]</source> <source>Maximum upload rate (kB/s): [0: unlimited]</source>
<translation>Максимальная скорость отдачи (кБ/с): [0: не ограничено]</translation> <translation>Максимальная скорость отдачи (кБ/с): [0: не ограничено]</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="476"/> <location filename="../bitmessageqt/settings.py" line="529"/>
<source>Proxy server / Tor</source> <source>Proxy server / Tor</source>
<translation>Прокси сервер / Tor</translation> <translation>Прокси сервер / Tor</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="477"/> <location filename="../bitmessageqt/settings.py" line="530"/>
<source>Type:</source> <source>Type:</source>
<translation>Тип:</translation> <translation>Тип:</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="478"/> <location filename="../bitmessageqt/settings.py" line="531"/>
<source>Server hostname:</source> <source>Server hostname:</source>
<translation>Адрес сервера:</translation> <translation>Адрес сервера:</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="501"/> <location filename="../bitmessageqt/settings.py" line="601"/>
<source>Port:</source> <source>Port:</source>
<translation>Порт:</translation> <translation>Порт:</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="480"/> <location filename="../bitmessageqt/settings.py" line="533"/>
<source>Authentication</source> <source>Authentication</source>
<translation>Авторизация</translation> <translation>Авторизация</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="502"/> <location filename="../bitmessageqt/settings.py" line="602"/>
<source>Username:</source> <source>Username:</source>
<translation>Имя пользователя:</translation> <translation>Имя пользователя:</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="482"/> <location filename="../bitmessageqt/settings.py" line="535"/>
<source>Pass:</source> <source>Pass:</source>
<translation>Пароль:</translation> <translation>Пароль:</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="483"/> <location filename="../bitmessageqt/settings.py" line="536"/>
<source>Listen for incoming connections when using proxy</source> <source>Listen for incoming connections when using proxy</source>
<translation>Прослушивать входящие соединения если используется прокси</translation> <translation>Прослушивать входящие соединения если используется прокси</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="484"/> <location filename="../bitmessageqt/settings.py" line="541"/>
<source>none</source> <source>none</source>
<translation>отсутствует</translation> <translation>отсутствует</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="485"/> <location filename="../bitmessageqt/settings.py" line="542"/>
<source>SOCKS4a</source> <source>SOCKS4a</source>
<translation>SOCKS4a</translation> <translation>SOCKS4a</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="486"/> <location filename="../bitmessageqt/settings.py" line="543"/>
<source>SOCKS5</source> <source>SOCKS5</source>
<translation>SOCKS5</translation> <translation>SOCKS5</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="487"/> <location filename="../bitmessageqt/settings.py" line="544"/>
<source>Network Settings</source> <source>Network Settings</source>
<translation>Сетевые настройки</translation> <translation>Сетевые настройки</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="488"/> <location filename="../bitmessageqt/settings.py" line="549"/>
<source>Total difficulty:</source> <source>Total difficulty:</source>
<translation>Общая сложность:</translation> <translation>Общая сложность:</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="489"/> <location filename="../bitmessageqt/settings.py" line="550"/>
<source>The &apos;Total difficulty&apos; affects the absolute amount of work the sender must complete. Doubling this value doubles the amount of work.</source> <source>The &apos;Total difficulty&apos; affects the absolute amount of work the sender must complete. Doubling this value doubles the amount of work.</source>
<translation>&quot;Общая сложность&quot; влияет на абсолютное количество вычислений, которые отправитель должен провести, чтобы отправить сообщение. Увеличив это число в два раза, вы увеличите в два раза объем требуемых вычислений.</translation> <translation>&quot;Общая сложность&quot; влияет на абсолютное количество вычислений, которые отправитель должен провести, чтобы отправить сообщение. Увеличив это число в два раза, вы увеличите в два раза объем требуемых вычислений.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="490"/> <location filename="../bitmessageqt/settings.py" line="556"/>
<source>Small message difficulty:</source> <source>Small message difficulty:</source>
<translation>Сложность для маленьких сообщений:</translation> <translation>Сложность для маленьких сообщений:</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="491"/> <location filename="../bitmessageqt/settings.py" line="557"/>
<source>When someone sends you a message, their computer must first complete some work. The difficulty of this work, by default, is 1. You may raise this default for new addresses you create by changing the values here. Any new addresses you create will require senders to meet the higher difficulty. There is one exception: if you add a friend or acquaintance to your address book, Bitmessage will automatically notify them when you next send a message that they need only complete the minimum amount of work: difficulty 1. </source> <source>When someone sends you a message, their computer must first complete some work. The difficulty of this work, by default, is 1. You may raise this default for new addresses you create by changing the values here. Any new addresses you create will require senders to meet the higher difficulty. There is one exception: if you add a friend or acquaintance to your address book, Bitmessage will automatically notify them when you next send a message that they need only complete the minimum amount of work: difficulty 1. </source>
<translation>Когда кто-либо отправляет Вам сообщение, его компьютер должен сперва решить определённую вычислительную задачу. Сложность этой задачи по умолчанию равна 1. Вы можете повысить эту сложность для новых адресов, которые Вы создадите, здесь. Таким образом, любые новые адреса, которые Вы создадите, могут требовать от отправителей сложность большую чем 1. Однако, есть одно исключение: если Вы специально добавите Вашего собеседника в адресную книгу, то Bitmessage автоматически уведомит его о том, что для него минимальная сложность будет составлять всегда всего лишь 1.</translation> <translation>Когда кто-либо отправляет Вам сообщение, его компьютер должен сперва решить определённую вычислительную задачу. Сложность этой задачи по умолчанию равна 1. Вы можете повысить эту сложность для новых адресов, которые Вы создадите, здесь. Таким образом, любые новые адреса, которые Вы создадите, могут требовать от отправителей сложность большую чем 1. Однако, есть одно исключение: если Вы специально добавите Вашего собеседника в адресную книгу, то Bitmessage автоматически уведомит его о том, что для него минимальная сложность будет составлять всегда всего лишь 1.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="492"/> <location filename="../bitmessageqt/settings.py" line="566"/>
<source>The &apos;Small message difficulty&apos; mostly only affects the difficulty of sending small messages. Doubling this value makes it almost twice as difficult to send a small message but doesn&apos;t really affect large messages.</source> <source>The &apos;Small message difficulty&apos; mostly only affects the difficulty of sending small messages. Doubling this value makes it almost twice as difficult to send a small message but doesn&apos;t really affect large messages.</source>
<translation>&quot;Сложность для маленьких сообщений&quot; влияет исключительно на небольшие сообщения. Увеличив это число в два раза, вы сделаете отправку маленьких сообщений в два раза сложнее, в то время как сложность отправки больших сообщений не изменится.</translation> <translation>&quot;Сложность для маленьких сообщений&quot; влияет исключительно на небольшие сообщения. Увеличив это число в два раза, вы сделаете отправку маленьких сообщений в два раза сложнее, в то время как сложность отправки больших сообщений не изменится.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="493"/> <location filename="../bitmessageqt/settings.py" line="573"/>
<source>Demanded difficulty</source> <source>Demanded difficulty</source>
<translation>Требуемая сложность</translation> <translation>Требуемая сложность</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="494"/> <location filename="../bitmessageqt/settings.py" line="578"/>
<source>Here you may set the maximum amount of work you are willing to do to send a message to another person. Setting these values to 0 means that any value is acceptable.</source> <source>Here you may set the maximum amount of work you are willing to do to send a message to another person. Setting these values to 0 means that any value is acceptable.</source>
<translation>Здесь Вы можете установить максимальную вычислительную работу, которую Вы согласны проделать, чтобы отправить сообщение другому пользователю. Ноль означает, что любое значение допустимо.</translation> <translation>Здесь Вы можете установить максимальную вычислительную работу, которую Вы согласны проделать, чтобы отправить сообщение другому пользователю. Ноль означает, что любое значение допустимо.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="495"/> <location filename="../bitmessageqt/settings.py" line="584"/>
<source>Maximum acceptable total difficulty:</source> <source>Maximum acceptable total difficulty:</source>
<translation>Максимально допустимая общая сложность:</translation> <translation>Максимально допустимая общая сложность:</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="496"/> <location filename="../bitmessageqt/settings.py" line="585"/>
<source>Maximum acceptable small message difficulty:</source> <source>Maximum acceptable small message difficulty:</source>
<translation>Максимально допустимая сложность для маленький сообщений:</translation> <translation>Максимально допустимая сложность для маленький сообщений:</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="497"/> <location filename="../bitmessageqt/settings.py" line="586"/>
<source>Max acceptable difficulty</source> <source>Max acceptable difficulty</source>
<translation>Макс допустимая сложность</translation> <translation>Макс допустимая сложность</translation>
</message> </message>
@ -2511,87 +2496,87 @@ The &apos;Random Number&apos; option is selected by default but deterministic ad
<translation type="unfinished"/> <translation type="unfinished"/>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="499"/> <location filename="../bitmessageqt/settings.py" line="592"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Bitmessage can utilize a different Bitcoin-based program called Namecoin to make addresses human-friendly. For example, instead of having to tell your friend your long Bitmessage address, you can simply tell him to send a message to &lt;span style=&quot; font-style:italic;&quot;&gt;test. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;(Getting your own Bitmessage address into Namecoin is still rather difficult).&lt;/p&gt;&lt;p&gt;Bitmessage can use either namecoind directly or a running nmcontrol instance.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Bitmessage can utilize a different Bitcoin-based program called Namecoin to make addresses human-friendly. For example, instead of having to tell your friend your long Bitmessage address, you can simply tell him to send a message to &lt;span style=&quot; font-style:italic;&quot;&gt;test. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;(Getting your own Bitmessage address into Namecoin is still rather difficult).&lt;/p&gt;&lt;p&gt;Bitmessage can use either namecoind directly or a running nmcontrol instance.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Bitmessage умеет пользоваться программой Namecoin для того, чтобы сделать адреса более дружественными для пользователей. Например, вместо того, чтобы диктовать Вашему другу длинный и нудный адрес Bitmessage, Вы можете попросить его отправить сообщение на адрес вида &lt;span style=&quot; font-style:italic;&quot;&gt;test. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;(Перенести Ваш Bitmessage адрес в Namecoin по-прежнему пока довольно сложно).&lt;/p&gt;&lt;p&gt;Bitmessage может использовать либо прямо namecoind, либо уже запущенную программу nmcontrol.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Bitmessage умеет пользоваться программой Namecoin для того, чтобы сделать адреса более дружественными для пользователей. Например, вместо того, чтобы диктовать Вашему другу длинный и нудный адрес Bitmessage, Вы можете попросить его отправить сообщение на адрес вида &lt;span style=&quot; font-style:italic;&quot;&gt;test. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;(Перенести Ваш Bitmessage адрес в Namecoin по-прежнему пока довольно сложно).&lt;/p&gt;&lt;p&gt;Bitmessage может использовать либо прямо namecoind, либо уже запущенную программу nmcontrol.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="500"/> <location filename="../bitmessageqt/settings.py" line="600"/>
<source>Host:</source> <source>Host:</source>
<translation>Адрес:</translation> <translation>Адрес:</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="503"/> <location filename="../bitmessageqt/settings.py" line="603"/>
<source>Password:</source> <source>Password:</source>
<translation>Пароль:</translation> <translation>Пароль:</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="504"/> <location filename="../bitmessageqt/settings.py" line="604"/>
<source>Test</source> <source>Test</source>
<translation>Проверить</translation> <translation>Проверить</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="505"/> <location filename="../bitmessageqt/settings.py" line="605"/>
<source>Connect to:</source> <source>Connect to:</source>
<translation>Подсоединиться к:</translation> <translation>Соединиться с:</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="506"/> <location filename="../bitmessageqt/settings.py" line="606"/>
<source>Namecoind</source> <source>Namecoind</source>
<translation>Namecoind</translation> <translation>Namecoind</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="507"/> <location filename="../bitmessageqt/settings.py" line="607"/>
<source>NMControl</source> <source>NMControl</source>
<translation>NMControl</translation> <translation>NMControl</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="508"/> <location filename="../bitmessageqt/settings.py" line="608"/>
<source>Namecoin integration</source> <source>Namecoin integration</source>
<translation>Интеграция с Namecoin</translation> <translation>Интеграция с Namecoin</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="509"/> <location filename="../bitmessageqt/settings.py" line="613"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;By default, if you send a message to someone and he is offline for more than two days, Bitmessage will send the message again after an additional two days. This will be continued with exponential backoff forever; messages will be resent after 5, 10, 20 days ect. until the receiver acknowledges them. Here you may change that behavior by having Bitmessage give up after a certain number of days or months.&lt;/p&gt;&lt;p&gt;Leave these input fields blank for the default behavior. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;By default, if you send a message to someone and he is offline for more than two days, Bitmessage will send the message again after an additional two days. This will be continued with exponential backoff forever; messages will be resent after 5, 10, 20 days ect. until the receiver acknowledges them. Here you may change that behavior by having Bitmessage give up after a certain number of days or months.&lt;/p&gt;&lt;p&gt;Leave these input fields blank for the default behavior. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;По умолчанию, когда вы отправляете сообщение кому-либо, и адресат находится оффлайн несколько дней, ваш Bitmessage перепосылает сообщение. Это будет продолжаться с увеличивающимся по экспоненте интервалом; сообщение будет переотправляться, например, через 5, 10, 20 дней, пока адресат их запрашивает. Здесь вы можете изменить это поведение, заставив Bitmessage прекращать переотправку по прошествии указанного количества дней или месяцев.&lt;/p&gt;&lt;p&gt;Оставьте поля пустыми, чтобы вернуться к поведению по умолчанию.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;По умолчанию, когда вы отправляете сообщение кому-либо, и адресат находится оффлайн несколько дней, ваш Bitmessage перепосылает сообщение. Это будет продолжаться с увеличивающимся по экспоненте интервалом; сообщение будет переотправляться, например, через 5, 10, 20 дней, пока адресат их запрашивает. Здесь вы можете изменить это поведение, заставив Bitmessage прекращать переотправку по прошествии указанного количества дней или месяцев.&lt;/p&gt;&lt;p&gt;Оставьте поля пустыми, чтобы вернуться к поведению по умолчанию.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="510"/> <location filename="../bitmessageqt/settings.py" line="622"/>
<source>Give up after</source> <source>Give up after</source>
<translation>Прекратить через </translation> <translation>Прекратить через </translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="511"/> <location filename="../bitmessageqt/settings.py" line="623"/>
<source>and</source> <source>and</source>
<translation>и</translation> <translation>и</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="512"/> <location filename="../bitmessageqt/settings.py" line="624"/>
<source>days</source> <source>days</source>
<translation>дней</translation> <translation>дней</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="513"/> <location filename="../bitmessageqt/settings.py" line="625"/>
<source>months.</source> <source>months.</source>
<translation>месяцев.</translation> <translation>месяцев.</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="514"/> <location filename="../bitmessageqt/settings.py" line="626"/>
<source>Resends Expire</source> <source>Resends Expire</source>
<translation>Окончание попыток отправки</translation> <translation>Окончание попыток отправки</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="459"/> <location filename="../bitmessageqt/settings.py" line="493"/>
<source>Hide connection notifications</source> <source>Hide connection notifications</source>
<translation>Спрятать уведомления о подключениях</translation> <translation>Спрятать уведомления о подключениях</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="475"/> <location filename="../bitmessageqt/settings.py" line="528"/>
<source>Maximum outbound connections: [0: none]</source> <source>Maximum outbound connections: [0: none]</source>
<translation>Максимальное число исходящих подключений: [0: неограничено]</translation> <translation>Максимальное число исходящих подключений: [0: неограничено]</translation>
</message> </message>
<message> <message>
<location filename="../bitmessageqt/settings.py" line="498"/> <location filename="../bitmessageqt/settings.py" line="591"/>
<source>Hardware GPU acceleration (OpenCL):</source> <source>Hardware GPU acceleration (OpenCL):</source>
<translation>Аппаратное ускорение GPU</translation> <translation>Аппаратное ускорение GPU</translation>
</message> </message>