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:
label = label[:16] + '...'
print ''.join(
print ''.join([
' |',
str(addNum).ljust(3),
'|',
@ -584,13 +584,13 @@ def listAdd():
'|',
enabled.ljust(7),
'|',
)
])
print ''.join(
print ''.join([
' ',
74 * '-',
'\n',
)
])
def genAdd(lbl, deterministic, passphrase, numOfAdd, addVNum, streamNum, ripe):
@ -675,11 +675,11 @@ def attachment():
round(invSize, 2) # Rounds to two decimal places
if invSize > 500.0: # If over 500KB
print ''.join(
print ''.join([
'\n WARNING:The file that you are trying to attach is ',
invSize,
'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()
if uInput != "y":
@ -931,11 +931,11 @@ def inbox(unreadOnly=False):
print ' To:', getLabelForAddress(message['toAddress']) # Get the to address
print ' From:', getLabelForAddress(message['fromAddress']) # Get the from address
print ' Subject:', message['subject'].decode('base64') # Get the subject
print ''.join(
print ''.join([
' Received:',
datetime.datetime.fromtimestamp(
float(message['receivedTime'])).strftime('%Y-%m-%d %H:%M:%S'),
)
])
messagesPrinted += 1
if not message['read']:
messagesUnread += 1
@ -970,11 +970,11 @@ def outbox():
print ' Subject:', outboxMessages['sentMessages'][msgNum]['subject'].decode('base64') # Get the subject
print ' Status:', outboxMessages['sentMessages'][msgNum]['status'] # Get the subject
print ''.join(
print ''.join([
' Last Action Time:',
datetime.datetime.fromtimestamp(
float(outboxMessages['sentMessages'][msgNum]['lastActionTime'])).strftime('%Y-%m-%d %H:%M:%S'),
)
])
if msgNum % 20 == 0 and msgNum != 0:
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 ' Subject:', outboxMessages['sentMessages'][msgNum]['subject'].decode('base64') # Get the subject
print ' Status:', outboxMessages['sentMessages'][msgNum]['status'] # Get the subject
print ''.join(
print ''.join([
' Last Action Time:',
datetime.datetime.fromtimestamp(
float(outboxMessages['sentMessages'][msgNum]['lastActionTime'])).strftime('%Y-%m-%d %H:%M:%S'),
)
])
print ' Message:\n'
print message # inboxMessages['inboxMessages'][msgNum]['message'].decode('base64')
print ' '
@ -1101,10 +1101,10 @@ def readMsg(msgNum):
# Get the from address
print ' From:', getLabelForAddress(inboxMessages['inboxMessages'][msgNum]['fromAddress'])
print ' Subject:', inboxMessages['inboxMessages'][msgNum]['subject'].decode('base64') # Get the subject
print ''.join(
print ''.join([
' Received:', datetime.datetime.fromtimestamp(
float(inboxMessages['inboxMessages'][msgNum]['receivedTime'])).strftime('%Y-%m-%d %H:%M:%S'),
)
])
print ' Message:\n'
print message # inboxMessages['inboxMessages'][msgNum]['message'].decode('base64')
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)
state.streamsInWhichIAmParticipating.append(1)
if not state.enableGUI:
BMConfigParser().remove_option('bitmessagesettings', 'dontconnect')
elif daemon is False:
if not daemon and state.enableGUI:
if state.curses:
if not depends.check_curses():
sys.exit()
print('Running with curses')
import bitmessagecurses
bitmessagecurses.runwrapper()
elif state.kivy:
BMConfigParser().remove_option('bitmessagesettings', 'dontconnect')
from bitmessagekivy.mpybit import MainApp
MainApp().run()
else:
import bitmessageqt
bitmessageqt.run()
else:
BMConfigParser().remove_option('bitmessagesettings', 'dontconnect')
if daemon:
if state.testmode:

View File

@ -23,7 +23,7 @@ import shared
from bitmessageui import Ui_MainWindow
from bmconfigparser import BMConfigParser
import defaults
from namecoin import namecoinConnection
import namecoin
from messageview import MessageView
from migrationwizard import Ui_MigrationWizard
from foldertree import (
@ -254,6 +254,8 @@ class MyForm(settingsmixin.SMainWindow):
# load all gui.menu plugins with prefix 'address'
self.menu_plugins = {'address': []}
if not get_plugins:
return
for plugin in get_plugins('gui.menu', 'address'):
try:
handler, title = plugin(self)
@ -798,7 +800,8 @@ class MyForm(settingsmixin.SMainWindow):
self.initSettings()
self.namecoin = namecoinConnection()
namecoin.ensureNamecoinOptions()
self.namecoin = namecoin.namecoinConnection()
# Check to see whether we can connect to namecoin.
# 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"""
if address is None:
address = self.address
label = address
if BMConfigParser().has_section(address):
label = BMConfigParser().get(address, 'label')
label = BMConfigParser().safeGet(address, 'label', address)
queryreturn = sqlQuery(
'''select label from addressbook where address=?''', address)
if queryreturn != []:

View File

@ -12,26 +12,24 @@ class LanguageBox(QtGui.QComboBox):
self.populate()
def populate(self):
self.languages = []
self.clear()
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.setCurrentIndex(0)
self.setInsertPolicy(QtGui.QComboBox.InsertAlphabetically)
for translationFile in sorted(glob.glob(os.path.join(localesPath, "bitmessage_*.qm"))):
localeShort = os.path.split(translationFile)[1].split("_", 1)[1][:-3]
locale = QtCore.QLocale(QtCore.QString(localeShort))
if localeShort in LanguageBox.languageName:
self.addItem(LanguageBox.languageName[localeShort], localeShort)
elif locale.nativeLanguageName() == "":
self.addItem(localeShort, localeShort)
else:
self.addItem(locale.nativeLanguageName(), localeShort)
configuredLocale = BMConfigParser().safeGet(
'bitmessagesettings', 'userlocale', "system")
for i in range(self.count()):
if self.itemData(i) == configuredLocale:
self.setCurrentIndex(i)

View File

@ -114,18 +114,13 @@ def createSupportMessage(myapp):
frozen = paths.frozen
portablemode = "True" if state.appdata == paths.lookupExeFolder() else "False"
cpow = "True" if proofofwork.bmpow else "False"
#cpow = QtGui.QApplication.translate("Support", cpow)
openclpow = str(BMConfigParser().safeGet('bitmessagesettings', 'opencl')) if openclEnabled() else "None"
#openclpow = QtGui.QApplication.translate("Support", openclpow)
openclpow = str(
BMConfigParser().safeGet('bitmessagesettings', 'opencl')
) if openclEnabled() else "None"
locale = getTranslationLanguage()
try:
socks = BMConfigParser().get('bitmessagesettings', 'socksproxytype')
except:
socks = "N/A"
try:
upnp = BMConfigParser().get('bitmessagesettings', 'upnp')
except:
upnp = "N/A"
socks = BMConfigParser().safeGet(
'bitmessagesettings', 'socksproxytype', "N/A")
upnp = BMConfigParser().safeGet('bitmessagesettings', 'upnp', "N/A")
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))

View File

@ -10,26 +10,24 @@ str_chan = '[chan]'
def identiconize(address):
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:
# 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.)
# 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.
identicon_lib = BMConfigParser().safeGet(
'bitmessagesettings', 'identiconlib', '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.)
# 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')
if not BMConfigParser().getboolean('bitmessagesettings', 'useidenticons'):
idcon = QtGui.QIcon()
return idcon
if (identicon_lib[:len('qidenticon')] == 'qidenticon'):
# print identicon_lib
# 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 addresses
import binascii
from bmconfigparser import BMConfigParser
import sqlite3
import time
@ -6,16 +8,13 @@ import shutil # used for moving the messages.dat file
import sys
import os
from debug import logger
import defaults
import helper_sql
from namecoin import ensureNamecoinOptions
import helper_startup
import paths
import queues
import state
import tr#anslate
import helper_random
import addresses
import binascii
import tr
# 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
# 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))
os._exit(0)
if BMConfigParser().getint('bitmessagesettings', 'settingsversion') == 1:
BMConfigParser().set('bitmessagesettings', 'settingsversion', '2')
# If the settings version is equal to 2 or 3 then the
# sqlThread will modify the pubkeys table and change
# the settings version to 4.
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')
# If the settings version is equal to 2 or 3 then the
# sqlThread will modify the pubkeys table and change
# the settings version to 4.
settingsversion = BMConfigParser().getint(
'bitmessagesettings', 'settingsversion')
# People running earlier versions of PyBitmessage do not have the
# 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' '''
parameters = ''
self.cur.execute(item, parameters)
self.conn.commit()
BMConfigParser().set('bitmessagesettings', 'settingsversion', '3')
settingsversion = 3
# People running earlier versions of PyBitmessage do not have the
# encodingtype field in their inbox and sent tables or the read field
# 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' '''
parameters = ''
self.cur.execute(item, parameters)
@ -112,21 +102,13 @@ class sqlThread(threading.Thread):
self.cur.execute(item, parameters)
self.conn.commit()
BMConfigParser().set('bitmessagesettings', 'settingsversion', '4')
settingsversion = 4
if BMConfigParser().getint('bitmessagesettings', 'settingsversion') == 4:
BMConfigParser().set('bitmessagesettings', 'defaultnoncetrialsperbyte', str(
defaults.networkDefaultProofOfWorkNonceTrialsPerByte))
BMConfigParser().set('bitmessagesettings', 'defaultpayloadlengthextrabytes', str(
defaults.networkDefaultPayloadLengthExtraBytes))
BMConfigParser().set('bitmessagesettings', 'settingsversion', '5')
BMConfigParser().set(
'bitmessagesettings', 'settingsversion', str(settingsversion))
BMConfigParser().save()
if BMConfigParser().getint('bitmessagesettings', 'settingsversion') == 5:
BMConfigParser().set(
'bitmessagesettings', 'maxacceptablenoncetrialsperbyte', '0')
BMConfigParser().set(
'bitmessagesettings', 'maxacceptablepayloadlengthextrabytes', '0')
BMConfigParser().set('bitmessagesettings', 'settingsversion', '6')
helper_startup.updateConfig()
# 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
@ -137,7 +119,8 @@ class sqlThread(threading.Thread):
self.cur.execute(item, parameters)
if self.cur.fetchall() == []:
# 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(
'''CREATE TABLE settings (key text, value blob, UNIQUE(key) ON CONFLICT REPLACE)''' )
self.cur.execute( '''INSERT INTO settings VALUES('version','1')''')
@ -218,17 +201,15 @@ class sqlThread(threading.Thread):
self.conn.commit()
if not BMConfigParser().has_option('bitmessagesettings', 'sockslisten'):
BMConfigParser().set('bitmessagesettings', 'sockslisten', 'false')
ensureNamecoinOptions()
# Let's get rid of the first20bytesofencryptedmessage field in the inventory table.
# Let's get rid of the first20bytesofencryptedmessage field in
# the inventory table.
item = '''SELECT value FROM settings WHERE key='version';'''
parameters = ''
self.cur.execute(item, parameters)
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(
'''CREATE TEMPORARY TABLE inventory_backup(hash blob, objecttype text, streamnumber int, payload blob, receivedtime integer, UNIQUE(hash) ON CONFLICT REPLACE);''')
self.cur.execute(
@ -249,7 +230,9 @@ class sqlThread(threading.Thread):
self.cur.execute(item, parameters)
currentVersion = int(self.cur.fetchall()[0][0])
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 '' '''
parameters = ''
self.cur.execute(item, parameters)
@ -257,16 +240,6 @@ class sqlThread(threading.Thread):
parameters = (4,)
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.
# We're going to trash all of our pubkeys and let them be redownloaded.
item = '''SELECT value FROM settings WHERE key='version';'''
@ -274,28 +247,15 @@ class sqlThread(threading.Thread):
self.cur.execute(item, parameters)
currentVersion = int(self.cur.fetchall()[0][0])
if currentVersion == 4:
self.cur.execute( '''DROP TABLE pubkeys''')
self.cur.execute('''DROP TABLE pubkeys''')
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(
'''delete from inventory where objecttype = 'pubkey';''')
item = '''update settings set value=? WHERE key='version';'''
parameters = (5,)
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
# that have yet to be processed if the user shuts down Bitmessage.
item = '''SELECT value FROM settings WHERE key='version';'''
@ -303,21 +263,24 @@ class sqlThread(threading.Thread):
self.cur.execute(item, parameters)
currentVersion = int(self.cur.fetchall()[0][0])
if currentVersion == 5:
self.cur.execute( '''DROP TABLE knownnodes''')
self.cur.execute('''DROP TABLE knownnodes''')
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';'''
parameters = (6,)
self.cur.execute(item, parameters)
# 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';'''
parameters = ''
self.cur.execute(item, parameters)
currentVersion = int(self.cur.fetchall()[0][0])
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( '''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''')
@ -325,57 +288,26 @@ class sqlThread(threading.Thread):
item = '''update settings set value=? WHERE key='version';'''
parameters = (7,)
self.cur.execute(item, parameters)
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))
logger.debug(
'Finished dropping and recreating the inventory table.')
# 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';'''
parameters = ''
self.cur.execute(item, parameters)
currentVersion = int(self.cur.fetchall()[0][0])
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(
'''delete from inventory where objecttype = 1;''')
self.cur.execute(
'''delete from pubkeys;''')
# Any sending messages for which we *thought* that we had the pubkey must
# be rechecked.
# Any sending messages for which we *thought* that we had
# the pubkey must be rechecked.
self.cur.execute(
'''UPDATE sent SET status='msgqueued' WHERE status='doingmsgpow' or status='badkey';''')
query = '''update settings set value=? WHERE key='version';'''
@ -383,14 +315,17 @@ class sqlThread(threading.Thread):
self.cur.execute(query, parameters)
logger.debug('Finished clearing currently held pubkeys.')
# Add a new column to the inbox table to store the hash of the message signature.
# We'll use this as temporary message UUID in order to detect duplicates.
# Add a new column to the inbox table to store the hash of
# the message signature. We'll use this as temporary message UUID
# in order to detect duplicates.
item = '''SELECT value FROM settings WHERE key='version';'''
parameters = ''
self.cur.execute(item, parameters)
currentVersion = int(self.cur.fetchall()[0][0])
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 '' '''
parameters = ''
self.cur.execute(item, parameters)
@ -398,17 +333,18 @@ class sqlThread(threading.Thread):
parameters = (9,)
self.cur.execute(item, parameters)
# TTL is now user-specifiable. Let's add an option to save whatever the user selects.
if not BMConfigParser().has_option('bitmessagesettings', 'ttl'):
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.
# 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';'''
parameters = ''
self.cur.execute(item, parameters)
currentVersion = int(self.cur.fetchall()[0][0])
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(
'''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(
@ -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.')
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
# 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:
testpayload = '\x00\x00'

View File

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
"""
Logging and debuging facility
=============================
@ -11,7 +10,7 @@ Levels:
Confirmation that things are working as expected.
WARNING
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
Due to a more serious problem, the software has not been able to perform some function.
CRITICAL
@ -113,10 +112,10 @@ def configureLogging():
return True
if __name__ == "__main__":
# TODO (xj9): Get from a config file.
# logger = logging.getLogger('console_only')
# TODO (xj9): Get from a config file.
#logger = logging.getLogger('console_only')
def initLogging():
if configureLogging():
if '-c' in sys.argv:
logger = logging.getLogger('file_only')
@ -124,8 +123,8 @@ if __name__ == "__main__":
logger = logging.getLogger('both')
else:
logger = logging.getLogger('default')
else:
logger = logging.getLogger('default')
return logger
def restartLoggingInUpdatedAppdataLocation():
global logger
@ -133,11 +132,8 @@ def restartLoggingInUpdatedAppdataLocation():
logger.removeHandler(i)
i.flush()
i.close()
if configureLogging():
if '-c' in sys.argv:
logger = logging.getLogger('file_only')
else:
logger = logging.getLogger('both')
else:
logger = logging.getLogger('default')
logger = initLogging()
# !
logger = initLogging()

View File

@ -8,14 +8,13 @@ import os
import platform
from distutils.version import StrictVersion
from namecoin import ensureNamecoinOptions
import paths
import state
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
# 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():
@ -31,105 +30,98 @@ def _loadTrustedPeer():
def loadConfig():
config = BMConfigParser()
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.
try:
BMConfigParser().get('bitmessagesettings', 'settingsversion')
print 'Loading config files from directory specified on startup: ' + state.appdata
needToCreateKeysFile = False
except Exception:
needToCreateKeysFile = True
needToCreateKeysFile = config.safeGet(
'bitmessagesettings', 'settingsversion') is None
if not needToCreateKeysFile:
print(
'Loading config files from directory specified'
' on startup: %s' % state.appdata)
else:
BMConfigParser().read(paths.lookupExeFolder() + 'keys.dat')
config.read(paths.lookupExeFolder() + 'keys.dat')
try:
BMConfigParser().get('bitmessagesettings', 'settingsversion')
config.get('bitmessagesettings', 'settingsversion')
print 'Loading config files from same directory as program.'
needToCreateKeysFile = False
state.appdata = paths.lookupExeFolder()
except Exception:
except:
# Could not load the keys.dat file in the program directory.
# Perhaps it is in the appdata directory.
state.appdata = paths.lookupAppdataFolder()
BMConfigParser().read(state.appdata + 'keys.dat')
try:
BMConfigParser().get('bitmessagesettings', 'settingsversion')
config.read(state.appdata + 'keys.dat')
needToCreateKeysFile = config.safeGet(
'bitmessagesettings', 'settingsversion') is None
if not needToCreateKeysFile:
print 'Loading existing config files from', state.appdata
needToCreateKeysFile = False
except Exception:
needToCreateKeysFile = True
if needToCreateKeysFile:
# This appears to be the first time running the program; there is
# no config file (or it cannot be accessed). Create config file.
BMConfigParser().add_section('bitmessagesettings')
BMConfigParser().set('bitmessagesettings', 'settingsversion', '10')
BMConfigParser().set('bitmessagesettings', 'port', '8444')
BMConfigParser().set(
'bitmessagesettings', 'timeformat', '%%c')
BMConfigParser().set('bitmessagesettings', 'blackwhitelist', 'black')
BMConfigParser().set('bitmessagesettings', 'startonlogon', 'false')
config.add_section('bitmessagesettings')
config.set('bitmessagesettings', 'settingsversion', '10')
config.set('bitmessagesettings', 'port', '8444')
config.set('bitmessagesettings', 'timeformat', '%%c')
config.set('bitmessagesettings', 'blackwhitelist', 'black')
config.set('bitmessagesettings', 'startonlogon', 'false')
if 'linux' in sys.platform:
BMConfigParser().set(
'bitmessagesettings', 'minimizetotray', 'false')
# This isn't implimented yet and when True on
# Ubuntu causes Bitmessage to disappear while
# running when minimized.
config.set('bitmessagesettings', 'minimizetotray', 'false')
# This isn't implimented yet and when True on
# Ubuntu causes Bitmessage to disappear while
# running when minimized.
else:
BMConfigParser().set(
'bitmessagesettings', 'minimizetotray', 'true')
BMConfigParser().set(
'bitmessagesettings', 'showtraynotifications', 'true')
BMConfigParser().set('bitmessagesettings', 'startintray', 'false')
BMConfigParser().set('bitmessagesettings', 'socksproxytype', 'none')
BMConfigParser().set(
'bitmessagesettings', 'sockshostname', 'localhost')
BMConfigParser().set('bitmessagesettings', 'socksport', '9050')
BMConfigParser().set(
'bitmessagesettings', 'socksauthentication', 'false')
BMConfigParser().set(
'bitmessagesettings', 'sockslisten', 'false')
BMConfigParser().set('bitmessagesettings', 'socksusername', '')
BMConfigParser().set('bitmessagesettings', 'sockspassword', '')
BMConfigParser().set('bitmessagesettings', 'keysencrypted', 'false')
BMConfigParser().set(
'bitmessagesettings', 'messagesencrypted', 'false')
BMConfigParser().set('bitmessagesettings', 'defaultnoncetrialsperbyte', str(
defaults.networkDefaultProofOfWorkNonceTrialsPerByte))
BMConfigParser().set('bitmessagesettings', 'defaultpayloadlengthextrabytes', str(
defaults.networkDefaultPayloadLengthExtraBytes))
BMConfigParser().set('bitmessagesettings', 'minimizeonclose', 'false')
BMConfigParser().set(
'bitmessagesettings', 'maxacceptablenoncetrialsperbyte', '0')
BMConfigParser().set(
'bitmessagesettings', 'maxacceptablepayloadlengthextrabytes', '0')
BMConfigParser().set('bitmessagesettings', 'dontconnect', 'true')
BMConfigParser().set('bitmessagesettings', 'userlocale', 'system')
BMConfigParser().set('bitmessagesettings', 'useidenticons', 'True')
BMConfigParser().set('bitmessagesettings', 'identiconsuffix', ''.join(helper_random.randomchoice("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz") for x in range(12)))# a twelve character pseudo-password to salt the identicons
BMConfigParser().set('bitmessagesettings', 'replybelow', 'False')
BMConfigParser().set('bitmessagesettings', 'maxdownloadrate', '0')
BMConfigParser().set('bitmessagesettings', 'maxuploadrate', '0')
BMConfigParser().set('bitmessagesettings', 'maxoutboundconnections', '8')
BMConfigParser().set('bitmessagesettings', 'ttl', '367200')
config.set('bitmessagesettings', 'minimizetotray', 'true')
config.set('bitmessagesettings', 'showtraynotifications', 'true')
config.set('bitmessagesettings', 'startintray', 'false')
config.set('bitmessagesettings', 'socksproxytype', 'none')
config.set('bitmessagesettings', 'sockshostname', 'localhost')
config.set('bitmessagesettings', 'socksport', '9050')
config.set('bitmessagesettings', 'socksauthentication', 'false')
# config.set('bitmessagesettings', 'sockslisten', 'false')
config.set('bitmessagesettings', 'socksusername', '')
config.set('bitmessagesettings', 'sockspassword', '')
config.set('bitmessagesettings', 'keysencrypted', 'false')
config.set('bitmessagesettings', 'messagesencrypted', 'false')
config.set(
'bitmessagesettings', 'defaultnoncetrialsperbyte',
str(defaults.networkDefaultProofOfWorkNonceTrialsPerByte))
config.set(
'bitmessagesettings', 'defaultpayloadlengthextrabytes',
str(defaults.networkDefaultPayloadLengthExtraBytes))
config.set('bitmessagesettings', 'minimizeonclose', 'false')
# config.set(
# 'bitmessagesettings', 'maxacceptablenoncetrialsperbyte', '0')
# config.set(
# 'bitmessagesettings', 'maxacceptablepayloadlengthextrabytes',
# '0')
config.set('bitmessagesettings', 'dontconnect', 'true')
# config.set('bitmessagesettings', 'userlocale', 'system')
# config.set('bitmessagesettings', 'useidenticons', 'True')
# config.set(
# 'bitmessagesettings', 'identiconsuffix',
# ''.join(helper_random.randomchoice(
# "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
# ) for x in range(12)
# )) # a twelve character pseudo-password to salt the identicons
config.set('bitmessagesettings', 'replybelow', 'False')
config.set('bitmessagesettings', 'maxdownloadrate', '0')
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
BMConfigParser().set(
'bitmessagesettings', 'stopresendingafterxdays', '')
BMConfigParser().set(
'bitmessagesettings', 'stopresendingafterxmonths', '')
#BMConfigParser().set(
# 'bitmessagesettings', 'timeperiod', '-1')
#end
# UI setting to stop trying to send messages after X days/months
config.set('bitmessagesettings', 'stopresendingafterxdays', '')
config.set('bitmessagesettings', 'stopresendingafterxmonths', '')
# config.set('bitmessagesettings', 'timeperiod', '-1')
# 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 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
# text: "right above this line!"
ensureNamecoinOptions()
# existing users. To do that, search the class_sqlThread.py file
# for the text: "right above this line!"
if StoreConfigFilesInSameDirectoryAsProgramByDefault:
# Just use the same directory as the program and forget about
@ -142,15 +134,187 @@ def loadConfig():
os.makedirs(state.appdata)
if not sys.platform.startswith('win'):
os.umask(0o077)
BMConfigParser().save()
config.save()
else:
updateConfig()
_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():
try:
if sys.platform[0:3] == "win":
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
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
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>
<name>Mailchuck</name>
<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
# Uncomment the setting you want to use
# 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
# subscription.
</source>
<translation># Vous pouvez utiliser ceci pour configurer votre compte de passerelle de
# messagerie.
# Décommentez les paramètres que vous souhaitez utiliser.
# Les options se trouvent ci-dessous :
#
<translation type="unfinished"/>
</message>
<message>
<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
# La passerelle de messagerie va créer et conserver pour vous les clefs PGP,
# et va signer, vérifier, chiffrer et déchiffrer en votre nom. Choisissez cela si
# vous voulez utilisez PGP mais que vous êtes paresseux. Exige une inscription.
# The email gateway will create and maintain PGP keys for you and sign, verify,
# encrypt and decrypt on your behalf. When you want to use PGP but are lazy,
# use this. Requires subscription.
#
# pgp: local
# La passerelle de messagerie ne va pas exécuter les commandes PGP en
# votre nom. Vous pouvez soit ne pas utiliser PGP du tout, soit lutiliser
# localement.
# The email gateway will not conduct PGP operations on your behalf. You can
# either not use PGP at all, or use it locally.
#
# attachments: yes
# Les pièces-jointes reçues dans le courriel seront téléversées sur MEGA.nz,
# d vous pourrez les télécharger en cliquant sur le lien. Exige une
# inscription.
# 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
# Les pièces jointes seront ignorées.
#
# Attachments will be ignored.
#
# archive: yes
# Les courriels que vous recevrez seront archivés sur le serveur. Utilisez
# ceci si vous avez besoin daide pour des problèmes de déboguage ou
# si vous avez besoin dune preuve par un tiers des courriels. Cela signifie
# cependant que le fournisseur du service pourra lire vos courriels même
# après leur réception.
# Your incoming emails will be archived on the server. Use this if you need
# help with debugging problems or you need a third party proof of emails. This
# 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
# Les courriels reçus seront supprimés du serveur dès quils vous auront é
# transmis.
# Incoming emails will be deleted from the server as soon as they are relayed
# to you.
#
# masterpubkey_btc: clef xpub BIP44 ou graine publique electrum v1
# offset_btc: entier (par défaut à 0)
# feeamount: nombre avec jusquà 8 décimales
# feecurrency: BTC, XBT, USD, EUR ou GBP
# Utilisez ceci si vous voulez faire payer ceux qui vous envoient des courriels.
# Si ceci est activé et quune personne inconnue vous envoie un courriel, il
# devra payer le tarif indiqué. Comme ce mécanisme emploie des clefs
# publiques déterministes, vous recevrez largent directement. Pour désactiver
# à nouveau ceci, réglez &quot;feeamount&quot; à 0. Exige une inscription.
</translation>
# masterpubkey_btc: BIP44 xpub key or electrum v1 public seed
# offset_btc: integer (defaults to 0)
# feeamount: number with up to 8 decimal places
# feecurrency: BTC, XBT, USD, EUR or GBP
# Use these if you want to charge people who send you emails. If this is on and
# 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
# subscription.
</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../bitmessageqt/__init__.py" line="170"/>
<location filename="../bitmessageqt/__init__.py" line="166"/>
<source>Reply to sender</source>
<translation>Répondre à lexpéditeur</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="172"/>
<location filename="../bitmessageqt/__init__.py" line="168"/>
<source>Reply to channel</source>
<translation>Répondre au canal</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="174"/>
<location filename="../bitmessageqt/__init__.py" line="170"/>
<source>Add sender to your Address Book</source>
<translation>Ajouter lexpéditeur au carnet dadresses</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="178"/>
<location filename="../bitmessageqt/__init__.py" line="174"/>
<source>Add sender to your Blacklist</source>
<translation>Ajouter lexpéditeur à votre liste noire</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="364"/>
<location filename="../bitmessageqt/__init__.py" line="374"/>
<source>Move to Trash</source>
<translation>Envoyer à la Corbeille</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="185"/>
<location filename="../bitmessageqt/__init__.py" line="181"/>
<source>Undelete</source>
<translation>Restaurer</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="188"/>
<location filename="../bitmessageqt/__init__.py" line="184"/>
<source>View HTML code as formatted text</source>
<translation>Voir le code HTML comme du texte formaté</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="192"/>
<location filename="../bitmessageqt/__init__.py" line="188"/>
<source>Save message as...</source>
<translation>Enregistrer le message sous</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="196"/>
<location filename="../bitmessageqt/__init__.py" line="192"/>
<source>Mark Unread</source>
<translation>Marquer comme non-lu</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="336"/>
<location filename="../bitmessageqt/__init__.py" line="346"/>
<source>New</source>
<translation>Nouvelle</translation>
</message>
@ -272,12 +273,12 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation>Copier ladresse dans le presse-papier</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="283"/>
<location filename="../bitmessageqt/__init__.py" line="293"/>
<source>Special address behavior...</source>
<translation>Comportement spécial de ladresse</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="244"/>
<location filename="../bitmessageqt/__init__.py" line="240"/>
<source>Email gateway</source>
<translation>Passerelle de courriel</translation>
</message>
@ -287,37 +288,37 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation>Effacer</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="299"/>
<location filename="../bitmessageqt/__init__.py" line="309"/>
<source>Send message to this address</source>
<translation>Envoyer un message à cette adresse</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="307"/>
<location filename="../bitmessageqt/__init__.py" line="317"/>
<source>Subscribe to this address</source>
<translation>Sabonner à cette adresse</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="319"/>
<location filename="../bitmessageqt/__init__.py" line="329"/>
<source>Add New Address</source>
<translation>Ajouter une nouvelle adresse</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="367"/>
<location filename="../bitmessageqt/__init__.py" line="377"/>
<source>Copy destination address to clipboard</source>
<translation>Copier ladresse de destination dans le presse-papier</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="371"/>
<location filename="../bitmessageqt/__init__.py" line="381"/>
<source>Force send</source>
<translation>Forcer lenvoi</translation>
</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>
<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>
<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>
<translation>En attente de la clé de chiffrement. Une nouvelle requête sera bientôt lancée.</translation>
</message>
@ -327,17 +328,17 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1040"/>
<location filename="../bitmessageqt/__init__.py" line="1048"/>
<source>Queued.</source>
<translation>En attente.</translation>
</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>
<translation>Message envoyé. En attente de laccusé de réception. Envoyé %1</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1046"/>
<location filename="../bitmessageqt/__init__.py" line="1054"/>
<source>Message sent. Sent at %1</source>
<translation>Message envoyé. Envoyé %1</translation>
</message>
@ -347,47 +348,47 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1052"/>
<location filename="../bitmessageqt/__init__.py" line="1060"/>
<source>Acknowledgement of the message received %1</source>
<translation>Accusé de réception reçu %1</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2140"/>
<location filename="../bitmessageqt/__init__.py" line="2152"/>
<source>Broadcast queued.</source>
<translation>Message de diffusion en attente.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1061"/>
<location filename="../bitmessageqt/__init__.py" line="1069"/>
<source>Broadcast on %1</source>
<translation>Message de diffusion du %1</translation>
</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>
<translation>Problème : Le travail demandé par le destinataire est plus difficile que ce que vous avez paramétré. %1</translation>
</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>
<translation>Problème : la clé de chiffrement du destinataire nest pas bonne. Il na pas é possible de chiffrer le message. %1</translation>
</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>
<translation>Neutralisation forcée de la difficulté. Lenvoi devrait bientôt commencer.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1073"/>
<location filename="../bitmessageqt/__init__.py" line="1081"/>
<source>Unknown status: %1 %2</source>
<translation>Statut inconnu : %1 %2</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1612"/>
<location filename="../bitmessageqt/__init__.py" line="1622"/>
<source>Not Connected</source>
<translation>Déconnecté</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1204"/>
<location filename="../bitmessageqt/__init__.py" line="1212"/>
<source>Show Bitmessage</source>
<translation>Afficher Bitmessage</translation>
</message>
@ -397,12 +398,12 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation>Envoyer</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1227"/>
<location filename="../bitmessageqt/__init__.py" line="1235"/>
<source>Subscribe</source>
<translation>Sabonner</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1233"/>
<location filename="../bitmessageqt/__init__.py" line="1241"/>
<source>Channel</source>
<translation>Canal</translation>
</message>
@ -412,12 +413,12 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation>Quitter</translation>
</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>
<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>
<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
%1
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>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1470"/>
<location filename="../bitmessageqt/__init__.py" line="1478"/>
<source>Open keys.dat?</source>
<translation>Ouvrir keys.dat ?</translation>
</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>
<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>
<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
%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>
<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>
<location filename="../bitmessageqt/__init__.py" line="1477"/>
<location filename="../bitmessageqt/__init__.py" line="1485"/>
<source>Delete trash?</source>
<translation>Supprimer la corbeille ?</translation>
</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>
<translation>Êtes-vous sûr de vouloir supprimer tous les messages dans la corbeille ?</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1495"/>
<location filename="../bitmessageqt/__init__.py" line="1503"/>
<source>bad passphrase</source>
<translation>Mauvaise phrase secrète</translation>
</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>
<translation>Vous devez taper votre phrase secrète. Si vous nen avez pas, ce formulaire nest pas pour vous.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1518"/>
<location filename="../bitmessageqt/__init__.py" line="1526"/>
<source>Bad address version number</source>
<translation>Mauvais numéro de version dadresse</translation>
</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>
<translation>Votre numéro de version dadresse doit être un nombre : soit 3 soit 4.</translation>
</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>
<translation>Votre numéro de version dadresse doit être soit 3 soit 4.</translation>
</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"/>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1597"/>
<location filename="../bitmessageqt/__init__.py" line="1607"/>
<source>Connection lost</source>
<translation>Connexion perdue</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1647"/>
<location filename="../bitmessageqt/__init__.py" line="1657"/>
<source>Connected</source>
<translation>Connecté</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1765"/>
<location filename="../bitmessageqt/__init__.py" line="1777"/>
<source>Message trashed</source>
<translation>Message envoyé à la corbeille</translation>
</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.
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
@ -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>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1899"/>
<location filename="../bitmessageqt/__init__.py" line="1911"/>
<source>Message too long</source>
<translation>Message trop long</translation>
</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>
<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>
<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>
<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>
@ -621,57 +622,57 @@ Le destinataire doit lobtenir avant ce temps. Si votre client Bitmessage ne r
<translation type="unfinished"/>
</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>
<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>
<location filename="../bitmessageqt/__init__.py" line="2026"/>
<location filename="../bitmessageqt/__init__.py" line="2038"/>
<source>Address version number</source>
<translation>Numéro de version de ladresse</translation>
</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>
<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>
<location filename="../bitmessageqt/__init__.py" line="2030"/>
<location filename="../bitmessageqt/__init__.py" line="2042"/>
<source>Stream number</source>
<translation>Numéro de flux</translation>
</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>
<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>
<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>
<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>
<location filename="../bitmessageqt/__init__.py" line="2084"/>
<location filename="../bitmessageqt/__init__.py" line="2096"/>
<source>Message queued.</source>
<translation>Message mis en file dattente.</translation>
</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>
<translation>Votre champ &apos;Vers&apos; est vide.</translation>
<translation>Votre champ &quot;Vers&quot; est vide.</translation>
</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>
<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>
<location filename="../bitmessageqt/__init__.py" line="2165"/>
<location filename="../bitmessageqt/__init__.py" line="2177"/>
<source>Fetched address from namecoin identity.</source>
<translation>Récupération avec succès de ladresse de lidentité Namecoin.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2277"/>
<location filename="../bitmessageqt/__init__.py" line="2289"/>
<source>New Message</source>
<translation>Nouveau message</translation>
</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>
</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>
<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>
<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>
<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>
<location filename="../bitmessageqt/__init__.py" line="2429"/>
<location filename="../bitmessageqt/__init__.py" line="2441"/>
<source>Restart</source>
<translation>Redémarrer</translation>
</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>
<translation>Vous devez redémarrer Bitmessage pour que le changement de port prenne effet.</translation>
</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>
<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>
<location filename="../bitmessageqt/__init__.py" line="2458"/>
<location filename="../bitmessageqt/__init__.py" line="2470"/>
<source>Number needed</source>
<translation>Nombre requis</translation>
</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>
<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>
<location filename="../bitmessageqt/__init__.py" line="2538"/>
<location filename="../bitmessageqt/__init__.py" line="2550"/>
<source>Will not resend ever</source>
<translation>Ne renverra jamais</translation>
</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>
<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>
@ -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>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="3012"/>
<location filename="../bitmessageqt/__init__.py" line="3025"/>
<source>Address is gone</source>
<translation>Ladresse a disparu</translation>
</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>
<translation>Bitmessage ne peut pas trouver votre adresse %1. Peut-être lavez-vous supprimée?</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="3015"/>
<location filename="../bitmessageqt/__init__.py" line="3028"/>
<source>Address disabled</source>
<translation>Adresse désactivée</translation>
</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>
<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>
<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"/>
</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>
<translation>Entrée ajoutée à la liste noire. Éditez létiquette à votre convenance.</translation>
</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>
<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>
<location filename="../bitmessageqt/__init__.py" line="3237"/>
<location filename="../bitmessageqt/__init__.py" line="3250"/>
<source>Moved items to trash.</source>
<translation>Messages déplacés dans la corbeille.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="3181"/>
<location filename="../bitmessageqt/__init__.py" line="3194"/>
<source>Undeleted item.</source>
<translation>Articles restaurés.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="3205"/>
<location filename="../bitmessageqt/__init__.py" line="3218"/>
<source>Save As...</source>
<translation>Enregistrer sous</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="3214"/>
<location filename="../bitmessageqt/__init__.py" line="3227"/>
<source>Write error.</source>
<translation>Erreur décriture.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="3317"/>
<location filename="../bitmessageqt/__init__.py" line="3330"/>
<source>No addresses selected.</source>
<translation>Aucune adresse sélectionnée.</translation>
</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.
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>
</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.
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>
</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>
<translation>Voulez-vous vraiment enlever cet avatar ?</translation>
</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>
<translation>Vous avez déjà mis un avatar pour cette adresse. Voulez-vous vraiment lécraser ?</translation>
</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>
<translation>Le démarrage dès louverture de session nest pas encore supporté sur votre OS.</translation>
</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>
<translation>La minimisation en zone système nest pas encore supportée sur votre OS.</translation>
</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>
<translation>Les notifications en zone système ne sont pas encore supportées sur votre OS.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="4318"/>
<location filename="../bitmessageqt/__init__.py" line="4339"/>
<source>Testing...</source>
<translation>Tester</translation>
</message>
@ -1124,7 +1125,7 @@ Are you sure you want to delete the channel?</source>
<translation>Rejoindre / créer un canal</translation>
</message>
<message>
<location filename="../bitmessageqt/foldertree.py" line="181"/>
<location filename="../bitmessageqt/foldertree.py" line="206"/>
<source>All accounts</source>
<translation>Tous les comptes</translation>
</message>
@ -1149,42 +1150,42 @@ Are you sure you want to delete the channel?</source>
<translation type="unfinished"/>
</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>
<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>
<location filename="../bitmessageqt/__init__.py" line="2774"/>
<location filename="../bitmessageqt/__init__.py" line="2788"/>
<source>Waiting for PoW to finish... %1%</source>
<translation>En attente de la fin de la PoW %1%</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2784"/>
<location filename="../bitmessageqt/__init__.py" line="2798"/>
<source>Shutting down Pybitmessage... %1%</source>
<translation>Pybitmessage en cours darrêt %1%</translation>
</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>
<translation>En attente de lenvoi des objets %1%</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2822"/>
<location filename="../bitmessageqt/__init__.py" line="2835"/>
<source>Saving settings... %1%</source>
<translation>Enregistrement des paramètres %1%</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2835"/>
<location filename="../bitmessageqt/__init__.py" line="2848"/>
<source>Shutting down core... %1%</source>
<translation>Cœur en cours darrêt %1%</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2841"/>
<location filename="../bitmessageqt/__init__.py" line="2854"/>
<source>Stopping notifications... %1%</source>
<translation>Arrêt des notifications %1%</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2845"/>
<location filename="../bitmessageqt/__init__.py" line="2858"/>
<source>Shutdown imminent... %1%</source>
<translation>Arrêt imminent %1%</translation>
</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>
</message>
<message numerus="yes">
<location filename="../bitmessageqt/__init__.py" line="829"/>
<location filename="../bitmessageqt/__init__.py" line="837"/>
<source>%n day(s)</source>
<translation><numerusform>%n jour</numerusform><numerusform>%n jours</numerusform></translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2742"/>
<location filename="../bitmessageqt/__init__.py" line="2756"/>
<source>Shutting down PyBitmessage... %1%</source>
<translation>PyBitmessage en cours darrêt %1%</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1148"/>
<location filename="../bitmessageqt/__init__.py" line="1156"/>
<source>Sent</source>
<translation>Envoyé</translation>
</message>
<message>
<location filename="../class_addressGenerator.py" line="91"/>
<location filename="../class_addressGenerator.py" line="115"/>
<source>Generating one new address</source>
<translation>Production dune nouvelle adresse</translation>
</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>
<translation>La production de ladresse a é effectuée. Travail en cours afin de lémettre</translation>
</message>
<message>
<location filename="../class_addressGenerator.py" line="170"/>
<location filename="../class_addressGenerator.py" line="219"/>
<source>Generating %1 new addresses.</source>
<translation>Production de %1 nouvelles adresses.</translation>
</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>
<translation>%1 est déjà dans &quot;Vos identités&quot;. Il ne sera pas ajouté de nouveau.</translation>
</message>
<message>
<location filename="../class_addressGenerator.py" line="283"/>
<location filename="../class_addressGenerator.py" line="377"/>
<source>Done generating address</source>
<translation>La production dune adresse a é effectuée</translation>
</message>
@ -1239,96 +1240,96 @@ Are you sure you want to delete the channel?</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../class_sqlThread.py" line="584"/>
<location filename="../class_sqlThread.py" line="481"/>
<source>Disk full</source>
<translation>Disque plein</translation>
</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>
<translation>Alerte : votre disque ou le volume de stockage de données est plein. Bitmessage va maintenant se fermer.</translation>
</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>
<translation>Erreur ! Il na pas é possible de trouver ladresse dexpéditeur (votre adresse) dans le fichier keys.dat.</translation>
</message>
<message>
<location filename="../class_singleWorker.py" line="495"/>
<location filename="../class_singleWorker.py" line="580"/>
<source>Doing work necessary to send broadcast...</source>
<translation>Travail en cours afin denvoyer le message de diffusion</translation>
</message>
<message>
<location filename="../class_singleWorker.py" line="518"/>
<location filename="../class_singleWorker.py" line="613"/>
<source>Broadcast sent on %1</source>
<translation>Message de diffusion envoyé %1</translation>
</message>
<message>
<location filename="../class_singleWorker.py" line="587"/>
<location filename="../class_singleWorker.py" line="721"/>
<source>Encryption key was requested earlier.</source>
<translation>La clé de chiffrement a é demandée plus tôt.</translation>
</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>
<translation>Envoi dune demande de la clé de chiffrement du destinataire.</translation>
</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>
<translation>Recherche de la clé publique du récepteur</translation>
</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>
<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>
<location filename="../class_singleWorker.py" line="687"/>
<location filename="../class_singleWorker.py" line="909"/>
<source>Doing work necessary to send message.
There is no required difficulty for version 2 addresses like this.</source>
<translation>Travail en cours afin denvoyer le message.
Il ny a pas de difficulté requise pour les adresses version 2 comme celle-ci.</translation>
</message>
<message>
<location filename="../class_singleWorker.py" line="701"/>
<location filename="../class_singleWorker.py" line="944"/>
<source>Doing work necessary to send message.
Receiver&apos;s required difficulty: %1 and %2</source>
<translation>Travail en cours afin denvoyer le message.
Difficulté requise du destinataire : %1 et %2</translation>
</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>
<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>
<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>
<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>
<location filename="../bitmessageqt/__init__.py" line="1049"/>
<location filename="../bitmessageqt/__init__.py" line="1057"/>
<source>Doing work necessary to send message.</source>
<translation>Travail en cours afin denvoyer le message.</translation>
</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>
<translation>Message envoyé. En attente de laccusé de réception. Envoyé %1</translation>
</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>
<translation>Travail en cours afin dobtenir la clé de chiffrement.</translation>
</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>
<translation>Diffusion de la demande de clef publique. Ce programme réessaiera automatiquement si ils sont déconnectés. </translation>
</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>
<translation>Envoi dune demande de clef publique. En attente dune réponse. Demandée à %1</translation>
</message>
@ -1343,97 +1344,82 @@ Difficulté requise du destinataire : %1 et %2</translation>
<translation>Transfert de port UPnP retiré</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="248"/>
<location filename="../bitmessageqt/__init__.py" line="244"/>
<source>Mark all messages as read</source>
<translation>Marquer tous les messages comme lus</translation>
</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>
<translation>Êtes-vous sûr(e) de vouloir marquer tous les messages comme lus ?</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1058"/>
<location filename="../bitmessageqt/__init__.py" line="1066"/>
<source>Doing work necessary to send broadcast.</source>
<translation>Travail en cours afin denvoyer la diffusion.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2708"/>
<location filename="../bitmessageqt/__init__.py" line="2724"/>
<source>Proof of work pending</source>
<translation>En attente de preuve de fonctionnement</translation>
</message>
<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>
<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 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>
<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>
<location filename="../bitmessageqt/__init__.py" line="2708"/>
<location filename="../bitmessageqt/__init__.py" line="2724"/>
<source>Wait until these tasks finish?</source>
<translation>Attendre jusqu&apos;à ce que ces tâches se terminent ?</translation>
</message>
<message>
<location filename="../class_outgoingSynSender.py" line="211"/>
<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"/>
<location filename="../namecoin.py" line="115"/>
<source>The name %1 was not found.</source>
<translation>Le nom %1 n&apos;a pas é trouvé.</translation>
</message>
<message>
<location filename="../namecoin.py" line="110"/>
<location filename="../namecoin.py" line="124"/>
<source>The namecoin query failed (%1)</source>
<translation>La requête Namecoin a échouée (%1)</translation>
</message>
<message>
<location filename="../namecoin.py" line="113"/>
<location filename="../namecoin.py" line="127"/>
<source>The namecoin query failed.</source>
<translation>La requête Namecoin a échouée.</translation>
</message>
<message>
<location filename="../namecoin.py" line="119"/>
<location filename="../namecoin.py" line="133"/>
<source>The name %1 has no valid JSON data.</source>
<translation>Le nom %1 n&apos;a aucune donnée JSON valide.</translation>
</message>
<message>
<location filename="../namecoin.py" line="127"/>
<location filename="../namecoin.py" line="141"/>
<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>
</message>
<message>
<location filename="../namecoin.py" line="149"/>
<location filename="../namecoin.py" line="171"/>
<source>Success! Namecoind version %1 running.</source>
<translation>Succès ! Namecoind version %1 en cours d&apos;exécution.</translation>
</message>
<message>
<location filename="../namecoin.py" line="155"/>
<location filename="../namecoin.py" line="182"/>
<source>Success! NMControll is up and running.</source>
<translation>Succès ! NMControll est debout et en cours d&apos;exécution.</translation>
</message>
<message>
<location filename="../namecoin.py" line="158"/>
<location filename="../namecoin.py" line="185"/>
<source>Couldn&apos;t understand NMControl.</source>
<translation>Ne pouvait pas comprendre NMControl.</translation>
</message>
<message>
<location filename="../namecoin.py" line="165"/>
<location filename="../namecoin.py" line="195"/>
<source>The connection to namecoin failed.</source>
<translation>La connexion à Namecoin a échouée.</translation>
</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>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="3793"/>
<location filename="../bitmessageqt/__init__.py" line="3810"/>
<source>Set notification sound...</source>
<translation>Mettre un son de notification ...</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="637"/>
<location filename="../bitmessageqt/__init__.py" line="647"/>
<source>
Welcome to easy and secure Bitmessage
* 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 par diffusion (broadcast) à la manière de Twitter ou
* discuter dans des canaux (channels) avec d&apos;autres personnes
</translation>
</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="820"/>
<location filename="../bitmessageqt/__init__.py" line="828"/>
<source>not recommended for chans</source>
<translation>pas recommandé pour les canaux</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1213"/>
<location filename="../bitmessageqt/__init__.py" line="1221"/>
<source>Quiet Mode</source>
<translation>Mode tranquille</translation>
</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>
<translation>Des difficultés à se connecter ? Essayez de permettre UPnP dans les &quot;Paramètres réseau&quot;</translation>
</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>
<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>
<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>
<translation>Erreur : Les adresses Bitmessage commencent par BM- Veuillez vérifier l&apos;adresse du destinataire %1</translation>
</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>
<translation>Erreur : Ladresse du destinataire %1 nest pas correctement tapée ou recopiée. Veuillez la vérifier.</translation>
</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>
<translation>Erreur : Ladresse du destinataire %1 contient des caractères invalides. Veuillez la vérifier.</translation>
</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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<translation>Erreur : quelque chose ne va pas avec l&apos;adresse de destinataire %1.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2160"/>
<location filename="../bitmessageqt/__init__.py" line="2172"/>
<source>Error: %1</source>
<translation>Erreur : %1</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2277"/>
<location filename="../bitmessageqt/__init__.py" line="2289"/>
<source>From %1</source>
<translation>De %1</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2719"/>
<location filename="../bitmessageqt/__init__.py" line="2735"/>
<source>Synchronisation pending</source>
<translation>En attente de synchronisation</translation>
</message>
<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>
<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>
<location filename="../bitmessageqt/__init__.py" line="2731"/>
<location filename="../bitmessageqt/__init__.py" line="2745"/>
<source>Not connected</source>
<translation>Non connecté</translation>
</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>
<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>
<location filename="../bitmessageqt/__init__.py" line="2746"/>
<location filename="../bitmessageqt/__init__.py" line="2760"/>
<source>Waiting for network connection...</source>
<translation>En attente de connexion réseau...</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2756"/>
<location filename="../bitmessageqt/__init__.py" line="2770"/>
<source>Waiting for finishing synchronisation...</source>
<translation>En attente d&apos;achèvement de la synchronisation...</translation>
</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>
<translation>Vous avez déjà mis un son de notification pour cette adresse. Voulez-vous vraiment lécraser ?</translation>
</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>
<translation>Une erreur a eu lieu : ne peut pas charger de message depuis le disque.</translation>
</message>
<message numerus="yes">
<location filename="../bitmessageqt/address_dialogs.py" line="194"/>
<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>
<location filename="../bitmessageqt/bitmessageui.py" line="658"/>
@ -1593,22 +1579,22 @@ Bienvenue dans le facile et sécurisé Bitmessage
<translation>Vider</translation>
</message>
<message>
<location filename="../bitmessageqt/foldertree.py" line="11"/>
<location filename="../bitmessageqt/foldertree.py" line="10"/>
<source>inbox</source>
<translation>entrant</translation>
</message>
<message>
<location filename="../bitmessageqt/foldertree.py" line="12"/>
<location filename="../bitmessageqt/foldertree.py" line="11"/>
<source>new</source>
<translation>nouveau</translation>
</message>
<message>
<location filename="../bitmessageqt/foldertree.py" line="13"/>
<location filename="../bitmessageqt/foldertree.py" line="12"/>
<source>sent</source>
<translation>envoyé</translation>
</message>
<message>
<location filename="../bitmessageqt/foldertree.py" line="14"/>
<location filename="../bitmessageqt/foldertree.py" line="13"/>
<source>trash</source>
<translation>corbeille</translation>
</message>
@ -1639,14 +1625,14 @@ Bienvenue dans le facile et sécurisé Bitmessage
<context>
<name>MsgDecode</name>
<message>
<location filename="../helper_msgcoding.py" line="80"/>
<location filename="../helper_msgcoding.py" line="81"/>
<source>The message has an unknown encoding.
Perhaps you should upgrade Bitmessage.</source>
<translation>Le message est codé de façon inconnue.
Peut-être que vous devriez mettre à niveau Bitmessage.</translation>
</message>
<message>
<location filename="../helper_msgcoding.py" line="81"/>
<location filename="../helper_msgcoding.py" line="82"/>
<source>Unknown encoding</source>
<translation>Encodage inconnu</translation>
</message>
@ -1662,7 +1648,8 @@ Peut-être que vous devriez mettre à niveau Bitmessage.</translation>
<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.
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>
<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>
<location filename="../bitmessageqt/newchandialog.ui" line="56"/>
<source>Chan passphrase/name:</source>
<translation type="unfinished"/>
<translation>Phrase passe ou nom :</translation>
</message>
<message>
<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>
</message>
</context>
<context>
<name>qrcodeDialog</name>
<message>
<location filename="../plugins/qrcodeui.py" line="67"/>
<source>QR-code</source>
<translation>QR-code</translation>
</message>
</context>
<context>
<name>regenerateAddressesDialog</name>
<message>
@ -2292,218 +2271,218 @@ The &apos;Random Number&apos; option is selected by default but deterministic ad
<context>
<name>settingsDialog</name>
<message>
<location filename="../bitmessageqt/settings.py" line="453"/>
<location filename="../bitmessageqt/settings.py" line="483"/>
<source>Settings</source>
<translation>Paramètres</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="454"/>
<location filename="../bitmessageqt/settings.py" line="484"/>
<source>Start Bitmessage on user login</source>
<translation>Démarrer Bitmessage à la connexion de lutilisateur</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="455"/>
<location filename="../bitmessageqt/settings.py" line="485"/>
<source>Tray</source>
<translation>Zone de notification</translation>
</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>
<translation>Démarrer Bitmessage dans la barre des tâches (ne pas montrer la fenêtre principale)</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="457"/>
<location filename="../bitmessageqt/settings.py" line="491"/>
<source>Minimize to tray</source>
<translation>Minimiser dans la barre des tâches</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="458"/>
<location filename="../bitmessageqt/settings.py" line="492"/>
<source>Close to tray</source>
<translation>Fermer vers la zone de notification</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="460"/>
<location filename="../bitmessageqt/settings.py" line="495"/>
<source>Show notification when message received</source>
<translation>Montrer une notification lorsquun message est reçu</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="461"/>
<location filename="../bitmessageqt/settings.py" line="500"/>
<source>Run in Portable Mode</source>
<translation>Lancer en Mode Portable</translation>
</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>
<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>
<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>
<translation>Inclure volontairement ladresse de destination non chiffrée lors de lenvoi vers un dispositif mobile</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="464"/>
<location filename="../bitmessageqt/settings.py" line="513"/>
<source>Use Identicons</source>
<translation>Utilise des Identicônes.</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="465"/>
<location filename="../bitmessageqt/settings.py" line="514"/>
<source>Reply below Quote</source>
<translation>Réponse en dessous de la citation</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="466"/>
<location filename="../bitmessageqt/settings.py" line="515"/>
<source>Interface Language</source>
<translation>Langue de linterface</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="467"/>
<location filename="../bitmessageqt/settings.py" line="516"/>
<source>System Settings</source>
<comment>system</comment>
<translation>Paramètres système</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="468"/>
<location filename="../bitmessageqt/settings.py" line="517"/>
<source>User Interface</source>
<translation>Interface utilisateur</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="469"/>
<location filename="../bitmessageqt/settings.py" line="522"/>
<source>Listening port</source>
<translation>Port découte</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="470"/>
<location filename="../bitmessageqt/settings.py" line="523"/>
<source>Listen for connections on port:</source>
<translation>Écouter les connexions sur le port :</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="471"/>
<location filename="../bitmessageqt/settings.py" line="524"/>
<source>UPnP:</source>
<translation>UPnP :</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="472"/>
<location filename="../bitmessageqt/settings.py" line="525"/>
<source>Bandwidth limit</source>
<translation>Limite de bande passante</translation>
</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>
<translation>Taux de téléchargement maximal (kO/s) : [0 : illimité]</translation>
</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>
<translation>Taux de téléversement maximal (kO/s) : [0 : illimité]</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="476"/>
<location filename="../bitmessageqt/settings.py" line="529"/>
<source>Proxy server / Tor</source>
<translation>Serveur proxy / Tor</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="477"/>
<location filename="../bitmessageqt/settings.py" line="530"/>
<source>Type:</source>
<translation>Type :</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="478"/>
<location filename="../bitmessageqt/settings.py" line="531"/>
<source>Server hostname:</source>
<translation>Nom du serveur:</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="501"/>
<location filename="../bitmessageqt/settings.py" line="601"/>
<source>Port:</source>
<translation>Port :</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="480"/>
<location filename="../bitmessageqt/settings.py" line="533"/>
<source>Authentication</source>
<translation>Authentification</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="502"/>
<location filename="../bitmessageqt/settings.py" line="602"/>
<source>Username:</source>
<translation>Utilisateur :</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="482"/>
<location filename="../bitmessageqt/settings.py" line="535"/>
<source>Pass:</source>
<translation>Mot de passe :</translation>
</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>
<translation>Écoute les connexions entrantes lors de lutilisation du proxy</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="484"/>
<location filename="../bitmessageqt/settings.py" line="541"/>
<source>none</source>
<translation>aucun</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="485"/>
<location filename="../bitmessageqt/settings.py" line="542"/>
<source>SOCKS4a</source>
<translation>SOCKS4a</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="486"/>
<location filename="../bitmessageqt/settings.py" line="543"/>
<source>SOCKS5</source>
<translation>SOCKS5</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="487"/>
<location filename="../bitmessageqt/settings.py" line="544"/>
<source>Network Settings</source>
<translation>Paramètres réseau</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="488"/>
<location filename="../bitmessageqt/settings.py" line="549"/>
<source>Total difficulty:</source>
<translation>Difficulté totale :</translation>
</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>
<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>
<location filename="../bitmessageqt/settings.py" line="490"/>
<location filename="../bitmessageqt/settings.py" line="556"/>
<source>Small message difficulty:</source>
<translation>Difficulté dun message court :</translation>
</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>
<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>
<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>
<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>
<location filename="../bitmessageqt/settings.py" line="493"/>
<location filename="../bitmessageqt/settings.py" line="573"/>
<source>Demanded difficulty</source>
<translation>Difficulté exigée</translation>
</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>
<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>
<location filename="../bitmessageqt/settings.py" line="495"/>
<location filename="../bitmessageqt/settings.py" line="584"/>
<source>Maximum acceptable total difficulty:</source>
<translation>Difficulté maximale acceptée :</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="496"/>
<location filename="../bitmessageqt/settings.py" line="585"/>
<source>Maximum acceptable small message difficulty:</source>
<translation>Difficulté maximale acceptée pour les messages courts :</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="497"/>
<location filename="../bitmessageqt/settings.py" line="586"/>
<source>Max acceptable difficulty</source>
<translation>Difficulté maximale acceptée</translation>
</message>
@ -2513,87 +2492,87 @@ The &apos;Random Number&apos; option is selected by default but deterministic ad
<translation type="unfinished"/>
</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>
<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>
<location filename="../bitmessageqt/settings.py" line="500"/>
<location filename="../bitmessageqt/settings.py" line="600"/>
<source>Host:</source>
<translation>Hôte :</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="503"/>
<location filename="../bitmessageqt/settings.py" line="603"/>
<source>Password:</source>
<translation>Mot de passe :</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="504"/>
<location filename="../bitmessageqt/settings.py" line="604"/>
<source>Test</source>
<translation>Test</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="505"/>
<location filename="../bitmessageqt/settings.py" line="605"/>
<source>Connect to:</source>
<translation>Connexion à :</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="506"/>
<location filename="../bitmessageqt/settings.py" line="606"/>
<source>Namecoind</source>
<translation>Namecoind</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="507"/>
<location filename="../bitmessageqt/settings.py" line="607"/>
<source>NMControl</source>
<translation>NMControl</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="508"/>
<location filename="../bitmessageqt/settings.py" line="608"/>
<source>Namecoin integration</source>
<translation>Intégration avec Namecoin</translation>
</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>
<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>
<location filename="../bitmessageqt/settings.py" line="510"/>
<location filename="../bitmessageqt/settings.py" line="622"/>
<source>Give up after</source>
<translation>Abandonner après</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="511"/>
<location filename="../bitmessageqt/settings.py" line="623"/>
<source>and</source>
<translation>et</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="512"/>
<location filename="../bitmessageqt/settings.py" line="624"/>
<source>days</source>
<translation>jours</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="513"/>
<location filename="../bitmessageqt/settings.py" line="625"/>
<source>months.</source>
<translation>mois.</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="514"/>
<location filename="../bitmessageqt/settings.py" line="626"/>
<source>Resends Expire</source>
<translation>Expiration des renvois automatiques</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="459"/>
<location filename="../bitmessageqt/settings.py" line="493"/>
<source>Hide connection notifications</source>
<translation>Cacher les notifications de connexion</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="475"/>
<location filename="../bitmessageqt/settings.py" line="528"/>
<source>Maximum outbound connections: [0: none]</source>
<translation>Connexions sortantes maximum: [0: aucune]</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="498"/>
<location filename="../bitmessageqt/settings.py" line="591"/>
<source>Hardware GPU acceleration (OpenCL):</source>
<translation>Accélération matérielle GPU (OpenCL) :</translation>
</message>

Binary file not shown.

View File

@ -112,7 +112,7 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<context>
<name>Mailchuck</name>
<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
# Uncomment the setting you want to use
# 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
# subscription.
</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
# Email-шлюз будет создавать и управлять PGP-ключами за вас, а также подписывать, проверять,
# шифровать и дешифровать от вашего имени. Используйте это, если вы желаете использовать PGP, но очень ленивы.
# Этот настройка требует подписки.
# The email gateway will create and maintain PGP keys for you and sign, verify,
# encrypt and decrypt on your behalf. When you want to use PGP but are lazy,
# use this. Requires subscription.
#
# pgp: local
# Шлюз электронной почты не будет проводить операции PGP от вашего имени.
# Вы можете не использовать PGP, или использовать его локально.
# The email gateway will not conduct PGP operations on your behalf. You can
# either not use PGP at all, or use it locally.
#
# 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 will be ignored.
#
# archive: yes
# Входящие email-сообщения будут заархивированы на сервере. Используйте эту настройку
# в целях отладки, или если вам нужно подтверждение email третьей стороной.
# Конечно, это означает, что оператор сервиса будет иметь возможность читать ваши email
# даже после доставки их вам.
# Your incoming emails will be archived on the server. Use this if you need
# help with debugging problems or you need a third party proof of emails. This
# 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
# Входящие 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
# offset_btc: целое число (по умолчанию 0)
# feeamount: число, содержащее до 8 десятичных цифр
# feecurrency: BTC, XBT, USD, EUR или GBP
# Используйте эту настроку, если хотите чтобы отправитель уплатил вознаграждение за отправку email вам.
# Если настройка включена, и неизвестный отправитель посылает вам email,
# то отправителю будет предложено уплатить указанное вознаграждение.
# Схема использует детерминистические открытые ключи, вы получите деньги напрямую.
# Чтобы выключить уплату вознаграждения, установите &quot;feeamount&quot; равным 0.
# Требует подписки.</translation>
# masterpubkey_btc: BIP44 xpub key or electrum v1 public seed
# offset_btc: integer (defaults to 0)
# feeamount: number with up to 8 decimal places
# feecurrency: BTC, XBT, USD, EUR or GBP
# Use these if you want to charge people who send you emails. If this is on and
# 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
# subscription.
</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../bitmessageqt/__init__.py" line="170"/>
<location filename="../bitmessageqt/__init__.py" line="166"/>
<source>Reply to sender</source>
<translation>Ответить отправителю</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="172"/>
<location filename="../bitmessageqt/__init__.py" line="168"/>
<source>Reply to channel</source>
<translation>Ответить в канал</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="174"/>
<location filename="../bitmessageqt/__init__.py" line="170"/>
<source>Add sender to your Address Book</source>
<translation>Добавить отправителя в адресную книгу</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="178"/>
<location filename="../bitmessageqt/__init__.py" line="174"/>
<source>Add sender to your Blacklist</source>
<translation>Добавить отправителя в чёрный список</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="364"/>
<location filename="../bitmessageqt/__init__.py" line="372"/>
<source>Move to Trash</source>
<translation>Поместить в корзину</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="185"/>
<location filename="../bitmessageqt/__init__.py" line="181"/>
<source>Undelete</source>
<translation>Отменить удаление</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="188"/>
<location filename="../bitmessageqt/__init__.py" line="184"/>
<source>View HTML code as formatted text</source>
<translation>Просмотреть HTML код как отформатированный текст</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="192"/>
<location filename="../bitmessageqt/__init__.py" line="188"/>
<source>Save message as...</source>
<translation>Сохранить сообщение как ...</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="196"/>
<location filename="../bitmessageqt/__init__.py" line="192"/>
<source>Mark Unread</source>
<translation>Отметить как непрочитанное</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="336"/>
<location filename="../bitmessageqt/__init__.py" line="344"/>
<source>New</source>
<translation>Новый адрес</translation>
</message>
<message>
<location filename="../bitmessageqt/blacklist.py" line="121"/>
<location filename="../bitmessageqt/blacklist.py" line="122"/>
<source>Enable</source>
<translation>Включить</translation>
</message>
<message>
<location filename="../bitmessageqt/blacklist.py" line="124"/>
<location filename="../bitmessageqt/blacklist.py" line="125"/>
<source>Disable</source>
<translation>Выключить</translation>
</message>
<message>
<location filename="../bitmessageqt/blacklist.py" line="127"/>
<location filename="../bitmessageqt/blacklist.py" line="128"/>
<source>Set avatar...</source>
<translation>Установить аватар...</translation>
</message>
<message>
<location filename="../bitmessageqt/blacklist.py" line="117"/>
<location filename="../bitmessageqt/blacklist.py" line="118"/>
<source>Copy address to clipboard</source>
<translation>Скопировать адрес в буфер обмена</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="283"/>
<location filename="../bitmessageqt/__init__.py" line="291"/>
<source>Special address behavior...</source>
<translation>Особое поведение адресов...</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="244"/>
<location filename="../bitmessageqt/__init__.py" line="240"/>
<source>Email gateway</source>
<translation>Email-шлюз</translation>
</message>
<message>
<location filename="../bitmessageqt/blacklist.py" line="114"/>
<location filename="../bitmessageqt/blacklist.py" line="115"/>
<source>Delete</source>
<translation>Удалить</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="299"/>
<location filename="../bitmessageqt/__init__.py" line="307"/>
<source>Send message to this address</source>
<translation>Отправить сообщение на этот адрес</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="307"/>
<location filename="../bitmessageqt/__init__.py" line="315"/>
<source>Subscribe to this address</source>
<translation>Подписаться на рассылку с этого адреса</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="319"/>
<location filename="../bitmessageqt/__init__.py" line="327"/>
<source>Add New Address</source>
<translation>Добавить новый адрес</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="367"/>
<location filename="../bitmessageqt/__init__.py" line="375"/>
<source>Copy destination address to clipboard</source>
<translation>Скопировать адрес отправки в буфер обмена</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="371"/>
<location filename="../bitmessageqt/__init__.py" line="379"/>
<source>Force send</source>
<translation>Форсировать отправку</translation>
</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>
<translation>Один из Ваших адресов, %1, является устаревшим адресом версии 1. Адреса версии 1 больше не поддерживаются. Хотите ли Вы удалить его сейчас?</translation>
</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>
<translation>Ожидаем ключ шифрования от Вашего собеседника. Запрос будет повторен через некоторое время.</translation>
</message>
@ -322,17 +328,17 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1040"/>
<location filename="../bitmessageqt/__init__.py" line="1045"/>
<source>Queued.</source>
<translation>В очереди.</translation>
</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>
<translation>Сообщение отправлено. Ожидаем подтверждения. Отправлено в %1 </translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1046"/>
<location filename="../bitmessageqt/__init__.py" line="1051"/>
<source>Message sent. Sent at %1</source>
<translation>Сообщение отправлено в %1</translation>
</message>
@ -342,47 +348,47 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1052"/>
<location filename="../bitmessageqt/__init__.py" line="1057"/>
<source>Acknowledgement of the message received %1</source>
<translation>Доставлено в %1</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2140"/>
<location filename="../bitmessageqt/__init__.py" line="2149"/>
<source>Broadcast queued.</source>
<translation>Рассылка ожидает очереди.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1061"/>
<location filename="../bitmessageqt/__init__.py" line="1066"/>
<source>Broadcast on %1</source>
<translation>Рассылка на %1</translation>
</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>
<translation>Проблема: Ваш получатель требует более сложных вычислений, чем максимум, указанный в Ваших настройках. %1</translation>
</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>
<translation>Проблема: ключ получателя неправильный. Невозможно зашифровать сообщение. %1</translation>
</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>
<translation>Форсирована смена сложности. Отправляем через некоторое время.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1073"/>
<location filename="../bitmessageqt/__init__.py" line="1078"/>
<source>Unknown status: %1 %2</source>
<translation>Неизвестный статус: %1 %2</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1612"/>
<location filename="../bitmessageqt/__init__.py" line="1619"/>
<source>Not Connected</source>
<translation>Не соединено</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1204"/>
<location filename="../bitmessageqt/__init__.py" line="1209"/>
<source>Show Bitmessage</source>
<translation>Показать Bitmessage</translation>
</message>
@ -392,12 +398,12 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation>Отправить</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1227"/>
<location filename="../bitmessageqt/__init__.py" line="1232"/>
<source>Subscribe</source>
<translation>Подписки</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1233"/>
<location filename="../bitmessageqt/__init__.py" line="1238"/>
<source>Channel</source>
<translation>Канал</translation>
</message>
@ -407,13 +413,13 @@ Please type the desired email address (including @mailchuck.com) below:</source>
<translation>Выйти</translation>
</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>
<translation>Вы можете управлять Вашими ключами, редактируя файл keys.dat, находящийся в той же папке, что и эта программа.
Создайте резервную копию этого файла перед тем как будете его редактировать.</translation>
</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
%1
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>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1470"/>
<location filename="../bitmessageqt/__init__.py" line="1475"/>
<source>Open keys.dat?</source>
<translation>Открыть файл keys.dat?</translation>
</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>
<translation>Вы можете управлять Вашими ключами, редактируя файл keys.dat, находящийся в той же папке, что и эта программа.
Создайте резервную копию этого файла перед тем как будете его редактировать. Хотели бы Вы открыть этот файл сейчас?
(пожалуйста, закройте Bitmessage до того как Вы внесёте в этот файл какие-либо изменения.)</translation>
<translation>Вы можете управлять вашими ключами, редактируя файл keys.dat, находящийся в той же папке, что и эта программа.
Создайте резервную копию этого файла перед тем как будете его редактировать. Хотите открыть этот файл сейчас?
(пожалуйста, закройте Bitmessage перед тем, как вносить в него какие-либо изменения.)</translation>
</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
%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>
<translation>Вы можете управлять Вашими ключами, редактируя файл keys.dat, находящийся в
%1
Создайте резервную копию этого файла перед тем как будете его редактировать. Хотели бы Вы открыть этот файл сейчас?
(пожалуйста, закройте Bitmessage до того как Вы внесёте в этот файл какие-либо изменения.)</translation>
<translation type="unfinished"/>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1477"/>
<location filename="../bitmessageqt/__init__.py" line="1482"/>
<source>Delete trash?</source>
<translation>Очистить корзину?</translation>
</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>
<translation>Вы уверены что хотите очистить корзину?</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1495"/>
<location filename="../bitmessageqt/__init__.py" line="1500"/>
<source>bad passphrase</source>
<translation>Неподходящая секретная фраза</translation>
</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>
<translation>Вы должны ввести секретную фразу. Если Вы не хотите этого делать, то Вы выбрали неправильную опцию.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1518"/>
<location filename="../bitmessageqt/__init__.py" line="1523"/>
<source>Bad address version number</source>
<translation>Неверный номер версии адреса</translation>
</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>
<translation>Адрес номера версии должен быть числом: либо 3, либо 4.</translation>
</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>
<translation>Адрес номера версии должен быть либо 3, либо 4.</translation>
</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"/>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1597"/>
<location filename="../bitmessageqt/__init__.py" line="1604"/>
<source>Connection lost</source>
<translation>Соединение потеряно</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1647"/>
<location filename="../bitmessageqt/__init__.py" line="1654"/>
<source>Connected</source>
<translation>Соединено</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1765"/>
<location filename="../bitmessageqt/__init__.py" line="1774"/>
<source>Message trashed</source>
<translation>Сообщение удалено</translation>
</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.
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
@ -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>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1899"/>
<location filename="../bitmessageqt/__init__.py" line="1908"/>
<source>Message too long</source>
<translation>Сообщение слишком длинное</translation>
</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>
<translation>Сообщение, которое вы пытаетесь отправить, длиннее максимально допустимого на %1 байт. (Максимально допустимое значение 261644 байта). Пожалуйста, сократите сообщение перед отправкой.</translation>
</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>
<translation>Ошибка: ваш аккаунт не зарегистрирован на Email-шлюзе. Отправка регистрации %1, пожалуйста, подождите пока процесс регистрации не завершится, прежде чем попытаться отправить сообщение заново.</translation>
</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"/>
</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>
<translation>Вы должны указать адрес в поле &quot;От кого&quot;. Вы можете найти Ваш адрес во вкладке &quot;Ваши Адреса&quot;.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2026"/>
<location filename="../bitmessageqt/__init__.py" line="2035"/>
<source>Address version number</source>
<translation>Версия адреса</translation>
</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>
<translation>По поводу адреса %1: Bitmessage не поддерживаем адреса версии %2. Возможно, Вам нужно обновить клиент Bitmessage.</translation>
<translation>По поводу адреса %1: Bitmessage не поддерживает адреса версии %2. Возможно вам нужно обновить клиент Bitmessage.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2030"/>
<location filename="../bitmessageqt/__init__.py" line="2039"/>
<source>Stream number</source>
<translation>Номер потока</translation>
</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>
<translation>По поводу адреса %1: Bitmessage не поддерживаем стрим номер %2. Возможно, Вам нужно обновить клиент Bitmessage.</translation>
<translation>По поводу адреса %1: Bitmessage не поддерживает поток номер %2. Возможно вам нужно обновить клиент Bitmessage.</translation>
</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>
<translation>Внимание: Вы не подключены к сети. Bitmessage выполнит работу, требуемую для отправки сообщения, но не отправит его до тех пор, пока Вы не подключитесь.</translation>
<translation>Внимание: вы не подключены к сети. Bitmessage выполнит работу, требуемую для отправки сообщения, но не отправит его до тех пор, пока вы не подключитесь.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2084"/>
<location filename="../bitmessageqt/__init__.py" line="2093"/>
<source>Message queued.</source>
<translation>Сообщение в очереди.</translation>
</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>
<translation>Вы не заполнили поле &apos;Кому&apos;.</translation>
</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>
<translation>Нажмите правую кнопку мыши на каком-либо адресе и выберите &quot;Отправить сообщение на этот адрес&quot;.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2165"/>
<location filename="../bitmessageqt/__init__.py" line="2174"/>
<source>Fetched address from namecoin identity.</source>
<translation>Получить адрес через Namecoin.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2277"/>
<location filename="../bitmessageqt/__init__.py" line="2286"/>
<source>New Message</source>
<translation>Новое сообщение</translation>
</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"/>
</message>
<message>
<location filename="../bitmessageqt/blacklist.py" line="59"/>
<location filename="../bitmessageqt/blacklist.py" line="60"/>
<source>Address is valid.</source>
<translation>Адрес введен правильно.</translation>
</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>
<translation>Вы ввели неправильный адрес. Это адрес проигнорирован.</translation>
</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>
<translation>Ошибка: Вы не можете добавлять один и тот же адрес в Адресную Книгу несколько раз. Попробуйте переименовать существующий адрес.</translation>
</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>
<translation>Ошибка: вы не можете добавить один и тот же адрес в ваши подписки дважды. Пожалуйста, переименуйте имеющийся адрес, если хотите.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2429"/>
<location filename="../bitmessageqt/__init__.py" line="2438"/>
<source>Restart</source>
<translation>Перезапустить</translation>
</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>
<translation>Вы должны перезапустить Bitmessage, чтобы смена номера порта имела эффект.</translation>
</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>
<translation>Bitmessage будет использовать Ваш прокси, начиная прямо сейчас. Тем не менее Вам имеет смысл перезапустить Bitmessage, чтобы закрыть уже существующие соединения.</translation>
<translation>Bitmessage будет использовать ваш прокси, начиная с этого момента. Тем не менее, имеет смысл перезапустить Bitmessage, чтобы закрыть уже существующие соединения.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2458"/>
<location filename="../bitmessageqt/__init__.py" line="2467"/>
<source>Number needed</source>
<translation>Требуется число</translation>
</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>
<translation>Скорости загрузки и выгрузки должны быть числами. Игнорирую то, что вы набрали.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2538"/>
<location filename="../bitmessageqt/__init__.py" line="2547"/>
<source>Will not resend ever</source>
<translation>Не пересылать никогда</translation>
</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>
<translation>Обратите внимание, что лимит времени, который вы ввели, меньше чем время, которое Bitmessage ждет перед первой попыткой переотправки сообщения, поэтому ваши сообщения никогда не будут переотправлены.</translation>
</message>
@ -775,24 +778,24 @@ It is important that you back up this file. Would you like to open the file now?
<translation>Вы действительно должны ввести секретную фразу.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="3012"/>
<location filename="../bitmessageqt/__init__.py" line="3022"/>
<source>Address is gone</source>
<translation>Адрес утерян</translation>
</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>
<translation>Bitmessage не может найти Ваш адрес %1. Возможно Вы удалили его?</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="3015"/>
<location filename="../bitmessageqt/__init__.py" line="3025"/>
<source>Address disabled</source>
<translation>Адрес выключен</translation>
</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>
<translation>Ошибка: адрес, с которого Вы пытаетесь отправить, выключен. Вам нужно будет включить этот адрес во вкладке &quot;Ваши адреса&quot;.</translation>
<translation>Ошибка: адрес, с которого вы пытаетесь отправить, выключен. Вам нужно включить этот адрес во вкладке &quot;Ваши адреса&quot; перед использованием.</translation>
</message>
<message>
<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"/>
</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>
<translation>Запись добавлена в чёрный список. Измените название по своему вкусу.</translation>
</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>
<translation>Ошибка: вы не можете добавить один и тот же адрес в чёрный список дважды. Попробуйте переименовать существующий адрес.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="3237"/>
<location filename="../bitmessageqt/__init__.py" line="3247"/>
<source>Moved items to trash.</source>
<translation>Удалено в корзину.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="3181"/>
<location filename="../bitmessageqt/__init__.py" line="3191"/>
<source>Undeleted item.</source>
<translation>Элемент восстановлен.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="3205"/>
<location filename="../bitmessageqt/__init__.py" line="3215"/>
<source>Save As...</source>
<translation>Сохранить как ...</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="3214"/>
<location filename="../bitmessageqt/__init__.py" line="3224"/>
<source>Write error.</source>
<translation>Ошибка записи.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="3317"/>
<location filename="../bitmessageqt/__init__.py" line="3327"/>
<source>No addresses selected.</source>
<translation>Вы не выбрали адрес.</translation>
</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.
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>
</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.
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>
</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>
<translation>Вы уверены, что хотите удалить этот аватар?</translation>
</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>
<translation>У вас уже есть аватар для этого адреса. Вы уверены, что хотите перезаписать аватар?</translation>
</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>
<translation>Запуск программы при входе в систему ещё не поддерживается в вашей операционной системе.</translation>
</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>
<translation>Сворачивание в трей ещё не поддерживается в вашей операционной системе.</translation>
</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>
<translation>Уведомления в трее ещё не поддерживаеются в вашей операционной системе.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="4318"/>
<location filename="../bitmessageqt/__init__.py" line="4336"/>
<source>Testing...</source>
<translation>Проверяем...</translation>
</message>
@ -1128,7 +1131,7 @@ Are you sure you want to delete the channel?</source>
<translation>Подключить или создать чан</translation>
</message>
<message>
<location filename="../bitmessageqt/foldertree.py" line="181"/>
<location filename="../bitmessageqt/foldertree.py" line="206"/>
<source>All accounts</source>
<translation>Все аккаунты</translation>
</message>
@ -1138,12 +1141,12 @@ Are you sure you want to delete the channel?</source>
<translation>Увеличение %1%</translation>
</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>
<translation>Ошибка: вы не можете добавить один и тот же адрес в ваш лист дважды. Попробуйте переименовать существующий адрес.</translation>
</message>
<message>
<location filename="../bitmessageqt/blacklist.py" line="111"/>
<location filename="../bitmessageqt/blacklist.py" line="112"/>
<source>Add new entry</source>
<translation>Добавить новую запись</translation>
</message>
@ -1153,42 +1156,42 @@ Are you sure you want to delete the channel?</source>
<translation type="unfinished"/>
</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>
<translation>Доступна новая версия PyBitmessage: %1. Загрузите её: https://github.com/Bitmessage/PyBitmessage/releases/latest</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2774"/>
<location filename="../bitmessageqt/__init__.py" line="2785"/>
<source>Waiting for PoW to finish... %1%</source>
<translation>Ожидание окончания PoW... %1%</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2784"/>
<location filename="../bitmessageqt/__init__.py" line="2795"/>
<source>Shutting down Pybitmessage... %1%</source>
<translation>Завершение PyBitmessage... %1%</translation>
</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>
<translation>Ожидание отправки объектов... %1%</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2822"/>
<location filename="../bitmessageqt/__init__.py" line="2832"/>
<source>Saving settings... %1%</source>
<translation>Сохранение настроек... %1%</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2835"/>
<location filename="../bitmessageqt/__init__.py" line="2845"/>
<source>Shutting down core... %1%</source>
<translation>Завершение работы ядра... %1%</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2841"/>
<location filename="../bitmessageqt/__init__.py" line="2851"/>
<source>Stopping notifications... %1%</source>
<translation>Остановка сервиса уведомлений... %1%</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2845"/>
<location filename="../bitmessageqt/__init__.py" line="2855"/>
<source>Shutdown imminent... %1%</source>
<translation>Завершение вот-вот произойдет... %1%</translation>
</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>
</message>
<message numerus="yes">
<location filename="../bitmessageqt/__init__.py" line="829"/>
<location filename="../bitmessageqt/__init__.py" line="834"/>
<source>%n day(s)</source>
<translation><numerusform>%n день</numerusform><numerusform>%n дня</numerusform><numerusform>%n дней</numerusform><numerusform>%n дней</numerusform></translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2742"/>
<location filename="../bitmessageqt/__init__.py" line="2753"/>
<source>Shutting down PyBitmessage... %1%</source>
<translation>Завершение PyBitmessage... %1%</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1148"/>
<location filename="../bitmessageqt/__init__.py" line="1153"/>
<source>Sent</source>
<translation>Отправлено</translation>
</message>
<message>
<location filename="../class_addressGenerator.py" line="91"/>
<location filename="../class_addressGenerator.py" line="115"/>
<source>Generating one new address</source>
<translation>Создание одного нового адреса</translation>
</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>
<translation>Создание адреса завершено. Выполнение работы, требуемой для его рассылки...</translation>
</message>
<message>
<location filename="../class_addressGenerator.py" line="170"/>
<location filename="../class_addressGenerator.py" line="219"/>
<source>Generating %1 new addresses.</source>
<translation>Создание %1 новых адресов.</translation>
</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>
<translation>%1 уже имеется в ваших адресах. Не добавляю его снова.</translation>
</message>
<message>
<location filename="../class_addressGenerator.py" line="283"/>
<location filename="../class_addressGenerator.py" line="377"/>
<source>Done generating address</source>
<translation>Создание адресов завершено.</translation>
</message>
@ -1243,96 +1246,96 @@ Are you sure you want to delete the channel?</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../class_sqlThread.py" line="584"/>
<location filename="../class_sqlThread.py" line="566"/>
<source>Disk full</source>
<translation>Диск переполнен</translation>
</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>
<translation>Внимание: свободное место на диске закончилось. Bitmessage завершит свою работу.</translation>
</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>
<translation>Ошибка: невозможно найти адрес отправителя (ваш адрес) в файле ключей keys.dat</translation>
</message>
<message>
<location filename="../class_singleWorker.py" line="495"/>
<location filename="../class_singleWorker.py" line="580"/>
<source>Doing work necessary to send broadcast...</source>
<translation>Выполнение работы, требуемой для рассылки...</translation>
</message>
<message>
<location filename="../class_singleWorker.py" line="518"/>
<location filename="../class_singleWorker.py" line="613"/>
<source>Broadcast sent on %1</source>
<translation>Рассылка отправлена на %1</translation>
</message>
<message>
<location filename="../class_singleWorker.py" line="587"/>
<location filename="../class_singleWorker.py" line="721"/>
<source>Encryption key was requested earlier.</source>
<translation>Ключ шифрования запрошен ранее.</translation>
</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>
<translation>Отправка запроса ключа шифрования получателя.</translation>
</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>
<translation>Поиск открытого ключа получателя</translation>
</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>
<translation>Проблема: адресат является мобильным устройством, которое требует, чтобы адрес назначения был включен в сообщение, однако, это запрещено в ваших настройках. %1</translation>
</message>
<message>
<location filename="../class_singleWorker.py" line="687"/>
<location filename="../class_singleWorker.py" line="909"/>
<source>Doing work necessary to send message.
There is no required difficulty for version 2 addresses like this.</source>
<translation>Выполнение работы, требуемой для отправки сообщения.
Для адреса версии 2 (как этот), не требуется указание сложности.</translation>
</message>
<message>
<location filename="../class_singleWorker.py" line="701"/>
<location filename="../class_singleWorker.py" line="944"/>
<source>Doing work necessary to send message.
Receiver&apos;s required difficulty: %1 and %2</source>
<translation>Выполнение работы, требуемой для отправки сообщения.
Получатель запросил сложность: %1 и %2</translation>
</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>
<translation>Проблема: сложность, затребованная получателем (%1 и %2) гораздо больше, чем вы готовы сделать. %3</translation>
</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>
<translation>Проблема: вы пытаетесь отправить сообщение самому себе или в чан, но ваш ключ шифрования не найден в файле ключей keys.dat. Невозможно зашифровать сообщение. %1</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1049"/>
<location filename="../bitmessageqt/__init__.py" line="1054"/>
<source>Doing work necessary to send message.</source>
<translation>Выполнение работы, требуемой для отправки сообщения.</translation>
</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>
<translation>Отправлено. Ожидаем подтверждения. Отправлено в %1 </translation>
</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>
<translation>Выполнение работы, требуемой для запроса ключа шифрования.</translation>
</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>
<translation>Рассылка запросов открытого ключа шифрования. Программа будет повторять попытки, если они оффлайн.</translation>
</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>
<translation>Отправка запроса открытого ключа шифрования. Ожидание ответа. Запрошено в %1</translation>
</message>
@ -1347,107 +1350,97 @@ Receiver&apos;s required difficulty: %1 and %2</source>
<translation>Распределение портов UPnP отменено</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="248"/>
<location filename="../bitmessageqt/__init__.py" line="244"/>
<source>Mark all messages as read</source>
<translation>Отметить все сообщения как прочтенные</translation>
</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>
<translation>Вы уверены, что хотите отметить все сообщения как прочтенные?</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1058"/>
<location filename="../bitmessageqt/__init__.py" line="1063"/>
<source>Doing work necessary to send broadcast.</source>
<translation>Выполнение работы, требуемой для отправки рассылки.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2708"/>
<location filename="../bitmessageqt/__init__.py" line="2721"/>
<source>Proof of work pending</source>
<translation>Ожидается доказательство работы</translation>
</message>
<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>
<translation><numerusform>%n объект в ожидании доказательства работы</numerusform><numerusform>%n объекта в ожидании доказательства работы</numerusform><numerusform>%n объектов в ожидании доказательства работы</numerusform><numerusform>%n объектов в ожидании доказательства работы</numerusform></translation>
</message>
<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>
<translation><numerusform>%n объект ожидает раздачи</numerusform><numerusform>%n объекта ожидают раздачи</numerusform><numerusform>%n объектов ожидают раздачи</numerusform><numerusform>%n объектов ожидают раздачи</numerusform></translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2708"/>
<location filename="../bitmessageqt/__init__.py" line="2721"/>
<source>Wait until these tasks finish?</source>
<translation>Подождать завершения этих задач?</translation>
</message>
<message>
<location filename="../class_outgoingSynSender.py" line="211"/>
<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"/>
<location filename="../namecoin.py" line="115"/>
<source>The name %1 was not found.</source>
<translation>Имя %1 не найдено.</translation>
</message>
<message>
<location filename="../namecoin.py" line="110"/>
<location filename="../namecoin.py" line="124"/>
<source>The namecoin query failed (%1)</source>
<translation>Запрос к namecoin не удался (%1).</translation>
</message>
<message>
<location filename="../namecoin.py" line="113"/>
<location filename="../namecoin.py" line="127"/>
<source>The namecoin query failed.</source>
<translation>Запрос к namecoin не удался.</translation>
</message>
<message>
<location filename="../namecoin.py" line="119"/>
<location filename="../namecoin.py" line="133"/>
<source>The name %1 has no valid JSON data.</source>
<translation>Имя %1 не содержит корректных данных JSON.</translation>
</message>
<message>
<location filename="../namecoin.py" line="127"/>
<location filename="../namecoin.py" line="141"/>
<source>The name %1 has no associated Bitmessage address.</source>
<translation>Имя %1 не имеет связанного адреса Bitmessage.</translation>
</message>
<message>
<location filename="../namecoin.py" line="147"/>
<location filename="../namecoin.py" line="171"/>
<source>Success! Namecoind version %1 running.</source>
<translation>Успех! Namecoind версии %1 работает.</translation>
</message>
<message>
<location filename="../namecoin.py" line="153"/>
<location filename="../namecoin.py" line="182"/>
<source>Success! NMControll is up and running.</source>
<translation>Успех! NMControl запущен и работает.</translation>
</message>
<message>
<location filename="../namecoin.py" line="156"/>
<location filename="../namecoin.py" line="185"/>
<source>Couldn&apos;t understand NMControl.</source>
<translation>Не удалось разобрать ответ NMControl.</translation>
</message>
<message>
<location filename="../namecoin.py" line="195"/>
<source>The connection to namecoin failed.</source>
<translation>Не удалось соединиться с namecoin.</translation>
</message>
<message>
<location filename="../proofofwork.py" line="120"/>
<source>Your GPU(s) did not calculate correctly, disabling OpenCL. Please report to the developers.</source>
<translation>Ваша видеокарта вычислила неправильно, отключаем OpenCL. Пожалуйста, сообщите разработчикам.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="3793"/>
<location filename="../bitmessageqt/__init__.py" line="3807"/>
<source>Set notification sound...</source>
<translation>Установить звук уведомления...</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="637"/>
<location filename="../bitmessageqt/__init__.py" line="645"/>
<source>
Welcome to easy and secure Bitmessage
* send messages to other people
@ -1461,119 +1454,119 @@ Receiver&apos;s required difficulty: %1 and %2</source>
* участвуйте в обсуждениях в чанах</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="820"/>
<location filename="../bitmessageqt/__init__.py" line="825"/>
<source>not recommended for chans</source>
<translation>не рекомендовано для чанов</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1213"/>
<location filename="../bitmessageqt/__init__.py" line="1218"/>
<source>Quiet Mode</source>
<translation>Тихий режим</translation>
</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>
<translation>Проблемы подключения? Попробуйте включить UPnP в сетевых настройках.</translation>
</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>
<translation>Вы пытаетесь отправить email вместо bitmessage. Для этого нужно зарегистрироваться на шлюзе. Попробовать зарегистрироваться?</translation>
</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>
<translation>Ошибка: адреса Bitmessage начинаются с &quot;BM-&quot;. Пожалуйста, проверьте адрес получателя %1.</translation>
</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>
<translation>Ошибка: адрес получателя %1 набран или скопирован неправильно. Пожалуйста, проверьте его.</translation>
</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>
<translation>Ошибка: адрес получателя %1 содержит недопустимые символы. Пожалуйста, проверьте его.</translation>
</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>
<translation>Ошибка: версия адреса получателя %1 слишком высокая. Либо вам нужно обновить программу Bitmessage, либо ваш знакомый - умник.</translation>
</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>
<translation>Ошибка: часть данных, закодированных в адресе получателя %1 слишком короткая. Видимо, что-то не так с программой, используемой вашим знакомым.</translation>
</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>
<translation>Ошибка: часть данных, закодированных в адресе получателя %1 слишком длинная. Видимо, что-то не так с программой, используемой вашим знакомым.</translation>
</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>
<translation>Ошибка: часть данных, закодированных в адресе получателя %1 сформирована неправильно. Видимо, что-то не так с программой, используемой вашим знакомым.</translation>
</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>
<translation>Ошибка: что-то не так с адресом получателя %1.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2160"/>
<location filename="../bitmessageqt/__init__.py" line="2169"/>
<source>Error: %1</source>
<translation>Ошибка: %1</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2277"/>
<location filename="../bitmessageqt/__init__.py" line="2286"/>
<source>From %1</source>
<translation>От %1</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2719"/>
<location filename="../bitmessageqt/__init__.py" line="2732"/>
<source>Synchronisation pending</source>
<translation>Ожидается синхронизация</translation>
</message>
<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>
<translation><numerusform>Bitmessage не синхронизирован с сетью, незагруженных объектов: %n. Выход сейчас может привести к задержкам доставки. Подождать завершения синхронизации?</numerusform><numerusform>Bitmessage не синхронизирован с сетью, незагруженных объектов: %n. Выход сейчас может привести к задержкам доставки. Подождать завершения синхронизации?</numerusform><numerusform>Bitmessage не синхронизирован с сетью, незагруженных объектов: %n. Выход сейчас может привести к задержкам доставки. Подождать завершения синхронизации?</numerusform><numerusform>Bitmessage не синхронизирован с сетью, незагруженных объектов: %n. Выход сейчас может привести к задержкам доставки. Подождать завершения синхронизации?</numerusform></translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2731"/>
<location filename="../bitmessageqt/__init__.py" line="2742"/>
<source>Not connected</source>
<translation>Не подключено</translation>
</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>
<translation>Bitmessage не подключен к сети. Выход сейчас может привести к задержкам доставки. Подождать подключения и завершения синхронизации?</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2746"/>
<location filename="../bitmessageqt/__init__.py" line="2757"/>
<source>Waiting for network connection...</source>
<translation>Ожидание сетевого подключения...</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2756"/>
<location filename="../bitmessageqt/__init__.py" line="2767"/>
<source>Waiting for finishing synchronisation...</source>
<translation>Ожидание окончания синхронизации...</translation>
</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>
<translation>У вас уже есть звук уведомления для этого адресата. Вы уверены, что хотите перезаписать звук уведомления?</translation>
</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>
<translation>Произошла ошибка: не удалось загрузить сообщение с диска.</translation>
</message>
<message numerus="yes">
<location filename="../bitmessageqt/address_dialogs.py" line="194"/>
<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>
<location filename="../bitmessageqt/bitmessageui.py" line="658"/>
@ -1591,24 +1584,24 @@ Receiver&apos;s required difficulty: %1 and %2</source>
<translation>Очистить</translation>
</message>
<message>
<location filename="../bitmessageqt/foldertree.py" line="11"/>
<location filename="../bitmessageqt/foldertree.py" line="10"/>
<source>inbox</source>
<translation>входящие</translation>
</message>
<message>
<location filename="../bitmessageqt/foldertree.py" line="12"/>
<location filename="../bitmessageqt/foldertree.py" line="11"/>
<source>new</source>
<translation>новые</translation>
</message>
<message>
<location filename="../bitmessageqt/foldertree.py" line="13"/>
<location filename="../bitmessageqt/foldertree.py" line="12"/>
<source>sent</source>
<translation>отправленные</translation>
</message>
<message>
<location filename="../bitmessageqt/foldertree.py" line="14"/>
<location filename="../bitmessageqt/foldertree.py" line="13"/>
<source>trash</source>
<translation type="unfinished"/>
<translation>корзина</translation>
</message>
</context>
<context>
@ -1637,14 +1630,14 @@ Receiver&apos;s required difficulty: %1 and %2</source>
<context>
<name>MsgDecode</name>
<message>
<location filename="../helper_msgcoding.py" line="72"/>
<location filename="../helper_msgcoding.py" line="81"/>
<source>The message has an unknown encoding.
Perhaps you should upgrade Bitmessage.</source>
<translation>Сообщение в неизвестной кодировке.
Возможно, вам следует обновить Bitmessage.</translation>
</message>
<message>
<location filename="../helper_msgcoding.py" line="73"/>
<location filename="../helper_msgcoding.py" line="82"/>
<source>Unknown encoding</source>
<translation>Неизвестная кодировка</translation>
</message>
@ -1870,12 +1863,12 @@ The &apos;Random Number&apos; option is selected by default but deterministic ad
<translation>Адрес</translation>
</message>
<message>
<location filename="../bitmessageqt/blacklist.py" line="150"/>
<location filename="../bitmessageqt/blacklist.py" line="151"/>
<source>Blacklist</source>
<translation>Чёрный список</translation>
</message>
<message>
<location filename="../bitmessageqt/blacklist.py" line="152"/>
<location filename="../bitmessageqt/blacklist.py" line="153"/>
<source>Whitelist</source>
<translation>Белый список</translation>
</message>
@ -2226,14 +2219,6 @@ The &apos;Random Number&apos; option is selected by default but deterministic ad
<translation>Модуль C для PoW недоступен. Пожалуйста, соберите его.</translation>
</message>
</context>
<context>
<name>qrcodeDialog</name>
<message>
<location filename="../plugins/qrcodeui.py" line="67"/>
<source>QR-code</source>
<translation>QR-код</translation>
</message>
</context>
<context>
<name>regenerateAddressesDialog</name>
<message>
@ -2290,218 +2275,218 @@ The &apos;Random Number&apos; option is selected by default but deterministic ad
<context>
<name>settingsDialog</name>
<message>
<location filename="../bitmessageqt/settings.py" line="453"/>
<location filename="../bitmessageqt/settings.py" line="483"/>
<source>Settings</source>
<translation>Настройки</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="454"/>
<location filename="../bitmessageqt/settings.py" line="484"/>
<source>Start Bitmessage on user login</source>
<translation>Запускать Bitmessage при входе в систему</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="455"/>
<location filename="../bitmessageqt/settings.py" line="485"/>
<source>Tray</source>
<translation>Трей</translation>
</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>
<translation>Запускать Bitmessage в свернутом виде (не показывать главное окно)</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="457"/>
<location filename="../bitmessageqt/settings.py" line="491"/>
<source>Minimize to tray</source>
<translation>Сворачивать в трей</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="458"/>
<location filename="../bitmessageqt/settings.py" line="492"/>
<source>Close to tray</source>
<translation>Закрывать в трей</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="460"/>
<location filename="../bitmessageqt/settings.py" line="495"/>
<source>Show notification when message received</source>
<translation>Показывать уведомления при получении новых сообщений</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="461"/>
<location filename="../bitmessageqt/settings.py" line="500"/>
<source>Run in Portable Mode</source>
<translation>Запустить в переносном режиме</translation>
</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>
<translation>В переносном режиме, все сообщения и конфигурационные файлы сохраняются в той же самой папке что и сама программа. Это делает более удобным использование Bitmessage с USB-флэшки.</translation>
</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>
<translation>Специально прикреплять незашифрованный адрес получателя, когда посылаем на мобильное устройство</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="464"/>
<location filename="../bitmessageqt/settings.py" line="513"/>
<source>Use Identicons</source>
<translation>Включить иконки адресов</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="465"/>
<location filename="../bitmessageqt/settings.py" line="514"/>
<source>Reply below Quote</source>
<translation>Отвечать после цитаты</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="466"/>
<location filename="../bitmessageqt/settings.py" line="515"/>
<source>Interface Language</source>
<translation>Язык интерфейса</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="467"/>
<location filename="../bitmessageqt/settings.py" line="516"/>
<source>System Settings</source>
<comment>system</comment>
<translation>Язык по умолчанию</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="468"/>
<location filename="../bitmessageqt/settings.py" line="517"/>
<source>User Interface</source>
<translation>Пользовательские</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="469"/>
<location filename="../bitmessageqt/settings.py" line="522"/>
<source>Listening port</source>
<translation>Порт прослушивания</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="470"/>
<location filename="../bitmessageqt/settings.py" line="523"/>
<source>Listen for connections on port:</source>
<translation>Прослушивать соединения на порту:</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="471"/>
<location filename="../bitmessageqt/settings.py" line="524"/>
<source>UPnP:</source>
<translation>UPnP:</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="472"/>
<location filename="../bitmessageqt/settings.py" line="525"/>
<source>Bandwidth limit</source>
<translation>Ограничение пропускной способности</translation>
</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>
<translation>Максимальная скорость загрузки (кБ/с): [0: не ограничено]</translation>
</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>
<translation>Максимальная скорость отдачи (кБ/с): [0: не ограничено]</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="476"/>
<location filename="../bitmessageqt/settings.py" line="529"/>
<source>Proxy server / Tor</source>
<translation>Прокси сервер / Tor</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="477"/>
<location filename="../bitmessageqt/settings.py" line="530"/>
<source>Type:</source>
<translation>Тип:</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="478"/>
<location filename="../bitmessageqt/settings.py" line="531"/>
<source>Server hostname:</source>
<translation>Адрес сервера:</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="501"/>
<location filename="../bitmessageqt/settings.py" line="601"/>
<source>Port:</source>
<translation>Порт:</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="480"/>
<location filename="../bitmessageqt/settings.py" line="533"/>
<source>Authentication</source>
<translation>Авторизация</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="502"/>
<location filename="../bitmessageqt/settings.py" line="602"/>
<source>Username:</source>
<translation>Имя пользователя:</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="482"/>
<location filename="../bitmessageqt/settings.py" line="535"/>
<source>Pass:</source>
<translation>Пароль:</translation>
</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>
<translation>Прослушивать входящие соединения если используется прокси</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="484"/>
<location filename="../bitmessageqt/settings.py" line="541"/>
<source>none</source>
<translation>отсутствует</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="485"/>
<location filename="../bitmessageqt/settings.py" line="542"/>
<source>SOCKS4a</source>
<translation>SOCKS4a</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="486"/>
<location filename="../bitmessageqt/settings.py" line="543"/>
<source>SOCKS5</source>
<translation>SOCKS5</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="487"/>
<location filename="../bitmessageqt/settings.py" line="544"/>
<source>Network Settings</source>
<translation>Сетевые настройки</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="488"/>
<location filename="../bitmessageqt/settings.py" line="549"/>
<source>Total difficulty:</source>
<translation>Общая сложность:</translation>
</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>
<translation>&quot;Общая сложность&quot; влияет на абсолютное количество вычислений, которые отправитель должен провести, чтобы отправить сообщение. Увеличив это число в два раза, вы увеличите в два раза объем требуемых вычислений.</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="490"/>
<location filename="../bitmessageqt/settings.py" line="556"/>
<source>Small message difficulty:</source>
<translation>Сложность для маленьких сообщений:</translation>
</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>
<translation>Когда кто-либо отправляет Вам сообщение, его компьютер должен сперва решить определённую вычислительную задачу. Сложность этой задачи по умолчанию равна 1. Вы можете повысить эту сложность для новых адресов, которые Вы создадите, здесь. Таким образом, любые новые адреса, которые Вы создадите, могут требовать от отправителей сложность большую чем 1. Однако, есть одно исключение: если Вы специально добавите Вашего собеседника в адресную книгу, то Bitmessage автоматически уведомит его о том, что для него минимальная сложность будет составлять всегда всего лишь 1.</translation>
</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>
<translation>&quot;Сложность для маленьких сообщений&quot; влияет исключительно на небольшие сообщения. Увеличив это число в два раза, вы сделаете отправку маленьких сообщений в два раза сложнее, в то время как сложность отправки больших сообщений не изменится.</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="493"/>
<location filename="../bitmessageqt/settings.py" line="573"/>
<source>Demanded difficulty</source>
<translation>Требуемая сложность</translation>
</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>
<translation>Здесь Вы можете установить максимальную вычислительную работу, которую Вы согласны проделать, чтобы отправить сообщение другому пользователю. Ноль означает, что любое значение допустимо.</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="495"/>
<location filename="../bitmessageqt/settings.py" line="584"/>
<source>Maximum acceptable total difficulty:</source>
<translation>Максимально допустимая общая сложность:</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="496"/>
<location filename="../bitmessageqt/settings.py" line="585"/>
<source>Maximum acceptable small message difficulty:</source>
<translation>Максимально допустимая сложность для маленький сообщений:</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="497"/>
<location filename="../bitmessageqt/settings.py" line="586"/>
<source>Max acceptable difficulty</source>
<translation>Макс допустимая сложность</translation>
</message>
@ -2511,87 +2496,87 @@ The &apos;Random Number&apos; option is selected by default but deterministic ad
<translation type="unfinished"/>
</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>
<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>
<location filename="../bitmessageqt/settings.py" line="500"/>
<location filename="../bitmessageqt/settings.py" line="600"/>
<source>Host:</source>
<translation>Адрес:</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="503"/>
<location filename="../bitmessageqt/settings.py" line="603"/>
<source>Password:</source>
<translation>Пароль:</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="504"/>
<location filename="../bitmessageqt/settings.py" line="604"/>
<source>Test</source>
<translation>Проверить</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="505"/>
<location filename="../bitmessageqt/settings.py" line="605"/>
<source>Connect to:</source>
<translation>Подсоединиться к:</translation>
<translation>Соединиться с:</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="506"/>
<location filename="../bitmessageqt/settings.py" line="606"/>
<source>Namecoind</source>
<translation>Namecoind</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="507"/>
<location filename="../bitmessageqt/settings.py" line="607"/>
<source>NMControl</source>
<translation>NMControl</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="508"/>
<location filename="../bitmessageqt/settings.py" line="608"/>
<source>Namecoin integration</source>
<translation>Интеграция с Namecoin</translation>
</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>
<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>
<location filename="../bitmessageqt/settings.py" line="510"/>
<location filename="../bitmessageqt/settings.py" line="622"/>
<source>Give up after</source>
<translation>Прекратить через </translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="511"/>
<location filename="../bitmessageqt/settings.py" line="623"/>
<source>and</source>
<translation>и</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="512"/>
<location filename="../bitmessageqt/settings.py" line="624"/>
<source>days</source>
<translation>дней</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="513"/>
<location filename="../bitmessageqt/settings.py" line="625"/>
<source>months.</source>
<translation>месяцев.</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="514"/>
<location filename="../bitmessageqt/settings.py" line="626"/>
<source>Resends Expire</source>
<translation>Окончание попыток отправки</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="459"/>
<location filename="../bitmessageqt/settings.py" line="493"/>
<source>Hide connection notifications</source>
<translation>Спрятать уведомления о подключениях</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="475"/>
<location filename="../bitmessageqt/settings.py" line="528"/>
<source>Maximum outbound connections: [0: none]</source>
<translation>Максимальное число исходящих подключений: [0: неограничено]</translation>
</message>
<message>
<location filename="../bitmessageqt/settings.py" line="498"/>
<location filename="../bitmessageqt/settings.py" line="591"/>
<source>Hardware GPU acceleration (OpenCL):</source>
<translation>Аппаратное ускорение GPU</translation>
</message>