Merge pull request #205 from Astalaseven/master

add localisation
This commit is contained in:
Jonathan Warren 2013-06-12 10:31:58 -07:00
commit dc188bf9da
4 changed files with 1283 additions and 103 deletions

View File

@ -1,3 +1,7 @@
try:
import locale
except:
pass
try:
from PyQt4.QtCore import *
@ -97,9 +101,9 @@ class MyForm(QtGui.QMainWindow):
self.ui.inboxContextMenuToolbar = QtGui.QToolBar()
# Actions
self.actionReply = self.ui.inboxContextMenuToolbar.addAction("Reply", self.on_action_InboxReply)
self.actionAddSenderToAddressBook = self.ui.inboxContextMenuToolbar.addAction("Add sender to your Address Book", self.on_action_InboxAddSenderToAddressBook)
self.actionTrashInboxMessage = self.ui.inboxContextMenuToolbar.addAction("Move to Trash", self.on_action_InboxTrash)
self.actionForceHtml = self.ui.inboxContextMenuToolbar.addAction("View HTML code as formatted text", self.on_action_InboxMessageForceHtml)
self.actionAddSenderToAddressBook = self.ui.inboxContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Add sender to your Address Book"), self.on_action_InboxAddSenderToAddressBook)
self.actionTrashInboxMessage = self.ui.inboxContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Move to Trash"), self.on_action_InboxTrash)
self.actionForceHtml = self.ui.inboxContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "View HTML code as formatted text"), self.on_action_InboxMessageForceHtml)
self.ui.tableWidgetInbox.setContextMenuPolicy( QtCore.Qt.CustomContextMenu )
self.connect(self.ui.tableWidgetInbox, QtCore.SIGNAL('customContextMenuRequested(const QPoint&)'), self.on_context_menuInbox)
self.popMenuInbox = QtGui.QMenu( self )
@ -114,11 +118,11 @@ class MyForm(QtGui.QMainWindow):
#Popup menu for the Your Identities tab
self.ui.addressContextMenuToolbar = QtGui.QToolBar()
# Actions
self.actionNew = self.ui.addressContextMenuToolbar.addAction("New", self.on_action_YourIdentitiesNew)
self.actionEnable = self.ui.addressContextMenuToolbar.addAction("Enable", self.on_action_YourIdentitiesEnable)
self.actionDisable = self.ui.addressContextMenuToolbar.addAction("Disable", self.on_action_YourIdentitiesDisable)
self.actionClipboard = self.ui.addressContextMenuToolbar.addAction("Copy address to clipboard", self.on_action_YourIdentitiesClipboard)
self.actionSpecialAddressBehavior = self.ui.addressContextMenuToolbar.addAction("Special address behavior...", self.on_action_SpecialAddressBehaviorDialog)
self.actionNew = self.ui.addressContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "New"), self.on_action_YourIdentitiesNew)
self.actionEnable = self.ui.addressContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Enable"), self.on_action_YourIdentitiesEnable)
self.actionDisable = self.ui.addressContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Disable"), self.on_action_YourIdentitiesDisable)
self.actionClipboard = self.ui.addressContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Copy address to clipboard"), self.on_action_YourIdentitiesClipboard)
self.actionSpecialAddressBehavior = self.ui.addressContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Special address behavior..."), self.on_action_SpecialAddressBehaviorDialog)
self.ui.tableWidgetYourIdentities.setContextMenuPolicy( QtCore.Qt.CustomContextMenu )
self.connect(self.ui.tableWidgetYourIdentities, QtCore.SIGNAL('customContextMenuRequested(const QPoint&)'), self.on_context_menuYourIdentities)
self.popMenu = QtGui.QMenu( self )
@ -133,10 +137,10 @@ class MyForm(QtGui.QMainWindow):
#Popup menu for the Address Book page
self.ui.addressBookContextMenuToolbar = QtGui.QToolBar()
# Actions
self.actionAddressBookSend = self.ui.addressBookContextMenuToolbar.addAction("Send message to this address", self.on_action_AddressBookSend)
self.actionAddressBookClipboard = self.ui.addressBookContextMenuToolbar.addAction("Copy address to clipboard", self.on_action_AddressBookClipboard)
self.actionAddressBookNew = self.ui.addressBookContextMenuToolbar.addAction("Add New Address", self.on_action_AddressBookNew)
self.actionAddressBookDelete = self.ui.addressBookContextMenuToolbar.addAction("Delete", self.on_action_AddressBookDelete)
self.actionAddressBookSend = self.ui.addressBookContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Send message to this address"), self.on_action_AddressBookSend)
self.actionAddressBookClipboard = self.ui.addressBookContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Copy address to clipboard"), self.on_action_AddressBookClipboard)
self.actionAddressBookNew = self.ui.addressBookContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Add New Address"), self.on_action_AddressBookNew)
self.actionAddressBookDelete = self.ui.addressBookContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Delete"), self.on_action_AddressBookDelete)
self.ui.tableWidgetAddressBook.setContextMenuPolicy( QtCore.Qt.CustomContextMenu )
self.connect(self.ui.tableWidgetAddressBook, QtCore.SIGNAL('customContextMenuRequested(const QPoint&)'), self.on_context_menuAddressBook)
self.popMenuAddressBook = QtGui.QMenu( self )
@ -149,11 +153,11 @@ class MyForm(QtGui.QMainWindow):
#Popup menu for the Subscriptions page
self.ui.subscriptionsContextMenuToolbar = QtGui.QToolBar()
# Actions
self.actionsubscriptionsNew = self.ui.subscriptionsContextMenuToolbar.addAction("New", self.on_action_SubscriptionsNew)
self.actionsubscriptionsDelete = self.ui.subscriptionsContextMenuToolbar.addAction("Delete", self.on_action_SubscriptionsDelete)
self.actionsubscriptionsClipboard = self.ui.subscriptionsContextMenuToolbar.addAction("Copy address to clipboard", self.on_action_SubscriptionsClipboard)
self.actionsubscriptionsEnable = self.ui.subscriptionsContextMenuToolbar.addAction("Enable", self.on_action_SubscriptionsEnable)
self.actionsubscriptionsDisable = self.ui.subscriptionsContextMenuToolbar.addAction("Disable", self.on_action_SubscriptionsDisable)
self.actionsubscriptionsNew = self.ui.subscriptionsContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "New"), self.on_action_SubscriptionsNew)
self.actionsubscriptionsDelete = self.ui.subscriptionsContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Delete"), self.on_action_SubscriptionsDelete)
self.actionsubscriptionsClipboard = self.ui.subscriptionsContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Copy address to clipboard"), self.on_action_SubscriptionsClipboard)
self.actionsubscriptionsEnable = self.ui.subscriptionsContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Enable"), self.on_action_SubscriptionsEnable)
self.actionsubscriptionsDisable = self.ui.subscriptionsContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Disable"), self.on_action_SubscriptionsDisable)
self.ui.tableWidgetSubscriptions.setContextMenuPolicy( QtCore.Qt.CustomContextMenu )
self.connect(self.ui.tableWidgetSubscriptions, QtCore.SIGNAL('customContextMenuRequested(const QPoint&)'), self.on_context_menuSubscriptions)
self.popMenuSubscriptions = QtGui.QMenu( self )
@ -168,9 +172,9 @@ class MyForm(QtGui.QMainWindow):
#Popup menu for the Sent page
self.ui.sentContextMenuToolbar = QtGui.QToolBar()
# Actions
self.actionTrashSentMessage = self.ui.sentContextMenuToolbar.addAction("Move to Trash", self.on_action_SentTrash)
self.actionSentClipboard = self.ui.sentContextMenuToolbar.addAction("Copy destination address to clipboard", self.on_action_SentClipboard)
self.actionForceSend = self.ui.sentContextMenuToolbar.addAction("Force send", self.on_action_ForceSend)
self.actionTrashSentMessage = self.ui.sentContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Move to Trash"), self.on_action_SentTrash)
self.actionSentClipboard = self.ui.sentContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Copy destination address to clipboard"), self.on_action_SentClipboard)
self.actionForceSend = self.ui.sentContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Force send"), self.on_action_ForceSend)
self.ui.tableWidgetSent.setContextMenuPolicy( QtCore.Qt.CustomContextMenu )
self.connect(self.ui.tableWidgetSent, QtCore.SIGNAL('customContextMenuRequested(const QPoint&)'), self.on_context_menuSent)
#self.popMenuSent = QtGui.QMenu( self )
@ -181,11 +185,11 @@ class MyForm(QtGui.QMainWindow):
#Popup menu for the Blacklist page
self.ui.blacklistContextMenuToolbar = QtGui.QToolBar()
# Actions
self.actionBlacklistNew = self.ui.blacklistContextMenuToolbar.addAction("Add new entry", self.on_action_BlacklistNew)
self.actionBlacklistDelete = self.ui.blacklistContextMenuToolbar.addAction("Delete", self.on_action_BlacklistDelete)
self.actionBlacklistClipboard = self.ui.blacklistContextMenuToolbar.addAction("Copy address to clipboard", self.on_action_BlacklistClipboard)
self.actionBlacklistEnable = self.ui.blacklistContextMenuToolbar.addAction("Enable", self.on_action_BlacklistEnable)
self.actionBlacklistDisable = self.ui.blacklistContextMenuToolbar.addAction("Disable", self.on_action_BlacklistDisable)
self.actionBlacklistNew = self.ui.blacklistContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Add new entry"), self.on_action_BlacklistNew)
self.actionBlacklistDelete = self.ui.blacklistContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Delete"), self.on_action_BlacklistDelete)
self.actionBlacklistClipboard = self.ui.blacklistContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Copy address to clipboard"), self.on_action_BlacklistClipboard)
self.actionBlacklistEnable = self.ui.blacklistContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Enable"), self.on_action_BlacklistEnable)
self.actionBlacklistDisable = self.ui.blacklistContextMenuToolbar.addAction(QtGui.QApplication.translate("MainWindow", "Disable"), self.on_action_BlacklistDisable)
self.ui.tableWidgetBlacklist.setContextMenuPolicy( QtCore.Qt.CustomContextMenu )
self.connect(self.ui.tableWidgetBlacklist, QtCore.SIGNAL('customContextMenuRequested(const QPoint&)'), self.on_context_menuBlacklist)
self.popMenuBlacklist = QtGui.QMenu( self )
@ -362,27 +366,27 @@ class MyForm(QtGui.QMainWindow):
newItem.setFlags( QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled )
self.ui.tableWidgetSent.setItem(0,2,newItem)
if status == 'awaitingpubkey':
statusText = 'Waiting on their encryption key. Will request it again soon.'
statusText = QtGui.QApplication.translate("MainWindow", "Waiting on their encryption key. Will request it again soon.")
elif status == 'doingpowforpubkey':
statusText = 'Encryption key request queued.'
statusText = QtGui.QApplication.translate("MainWindow", "Encryption key request queued.")
elif status == 'msgqueued':
statusText = 'Queued.'
statusText = QtGui.QApplication.translate("MainWindow", "Queued.")
elif status == 'msgsent':
statusText = 'Message sent. Waiting on acknowledgement. Sent at ' + unicode(strftime(shared.config.get('bitmessagesettings', 'timeformat'),localtime(lastactiontime)),'utf-8')
statusText = QtGui.QApplication.translate("MainWindow", "Message sent. Waiting on acknowledgement. Sent at %1").arg(unicode(strftime(shared.config.get('bitmessagesettings', 'timeformat'),localtime(lastactiontime))))
elif status == 'doingmsgpow':
statusText = 'Need to do work to send message. Work is queued.'
statusText = QtGui.QApplication.translate("MainWindow", "Need to do work to send message. Work is queued.")
elif status == 'ackreceived':
statusText = 'Acknowledgement of the message received ' + unicode(strftime(shared.config.get('bitmessagesettings', 'timeformat'),localtime(int(lastactiontime))),'utf-8')
statusText = QtGui.QApplication.translate("MainWindow", "Acknowledgement of the message received %1").arg(unicode(strftime(shared.config.get('bitmessagesettings', 'timeformat'),localtime(int(lastactiontime)))))
elif status == 'broadcastqueued':
statusText = 'Broadcast queued.'
statusText = QtGui.QApplication.translate("MainWindow", "Broadcast queued.")
elif status == 'broadcastsent':
statusText = 'Broadcast on ' + unicode(strftime(shared.config.get('bitmessagesettings', 'timeformat'),localtime(int(lastactiontime))),'utf-8')
statusText = QtGui.QApplication.translate("MainWindow", "Broadcast on %1").arg(unicode(strftime(shared.config.get('bitmessagesettings', 'timeformat'),localtime(int(lastactiontime)))))
elif status == 'toodifficult':
statusText = 'Problem: The work demanded by the recipient is more difficult than you are willing to do. ' + unicode(strftime(shared.config.get('bitmessagesettings', 'timeformat'),localtime(int(lastactiontime))),'utf-8')
statusText = QtGui.QApplication.translate("MainWindow", "Problem: The work demanded by the recipient is more difficult than you are willing to do. %1").arg(unicode(strftime(shared.config.get('bitmessagesettings', 'timeformat'),localtime(int(lastactiontime)))))
elif status == 'forcepow':
statusText = 'Forced difficulty override. Send should start soon.'
statusText = QtGui.QApplication.translate("MainWindow", "Forced difficulty override. Send should start soon.")
else:
statusText = 'Unknown status: ' + status + ' ' + unicode(strftime(shared.config.get('bitmessagesettings', 'timeformat'),localtime(int(lastactiontime))),'utf-8')
statusText = QtGui.QApplication.translate("Unknown status: %1 %2").arg(status).arg(unicode(strftime(shared.config.get('bitmessagesettings', 'timeformat'),localtime(int(lastactiontime)))))
newItem = myTableWidgetItem(statusText)
newItem.setToolTip(statusText)
newItem.setData(Qt.UserRole,QByteArray(ackdata))
@ -429,7 +433,7 @@ class MyForm(QtGui.QMainWindow):
#self.ui.pushButtonStatusIcon.setIcon(QIcon(":/newPrefix/images/yellowicon.png"))
self.statusbar = self.statusBar()
self.statusbar.insertPermanentWidget(0,self.ui.pushButtonStatusIcon)
self.ui.labelStartupTime.setText('Since startup on ' + unicode(strftime(shared.config.get('bitmessagesettings', 'timeformat'),localtime(int(time.time()))),'utf-8'))
self.ui.labelStartupTime.setText(QtGui.QApplication.translate("MainWindow", "Since startup on %1").arg(unicode(strftime(shared.config.get('bitmessagesettings', 'timeformat'),localtime(int(time.time()))))))
self.numberOfMessagesProcessed = 0
self.numberOfBroadcastsProcessed = 0
self.numberOfPubkeysProcessed = 0
@ -558,7 +562,7 @@ class MyForm(QtGui.QMainWindow):
m = QMenu()
self.actionStatus = QtGui.QAction('Not Connected',m,checkable=False)
self.actionStatus = QtGui.QAction(QtGui.QApplication.translate("MainWindow", "Not Connected"),m,checkable=False)
m.addAction(self.actionStatus)
# separator
@ -567,24 +571,24 @@ class MyForm(QtGui.QMainWindow):
m.addAction(actionSeparator)
# show bitmessage
self.actionShow = QtGui.QAction('Show Bitmessage',m,checkable=True)
self.actionShow = QtGui.QAction(QtGui.QApplication.translate("MainWindow", "Show Bitmessage"),m,checkable=True)
self.actionShow.setChecked(not shared.config.getboolean('bitmessagesettings', 'startintray'))
self.actionShow.triggered.connect(self.appIndicatorShowOrHideWindow)
if not sys.platform[0:3] == 'win':
m.addAction(self.actionShow)
# Send
actionSend = QtGui.QAction('Send',m,checkable=False)
actionSend = QtGui.QAction(QtGui.QApplication.translate("MainWindow", "Send"),m,checkable=False)
actionSend.triggered.connect(self.appIndicatorSend)
m.addAction(actionSend)
# Subscribe
actionSubscribe = QtGui.QAction('Subscribe',m,checkable=False)
actionSubscribe = QtGui.QAction(QtGui.QApplication.translate("MainWindow", "Subscribe"),m,checkable=False)
actionSubscribe.triggered.connect(self.appIndicatorSubscribe)
m.addAction(actionSubscribe)
# Address book
actionAddressBook = QtGui.QAction('Address Book',m,checkable=False)
actionAddressBook = QtGui.QAction(QtGui.QApplication.translate("MainWindow", "Address Book"),m,checkable=False)
actionAddressBook.triggered.connect(self.appIndicatorAddressBook)
m.addAction(actionAddressBook)
@ -594,7 +598,7 @@ class MyForm(QtGui.QMainWindow):
m.addAction(actionSeparator)
# Quit
m.addAction("Quit", self.quit)
m.addAction(QtGui.QApplication.translate("MainWindow", "Quit"), self.quit)
self.tray.setContextMenu(m)
self.tray.show()
@ -771,19 +775,21 @@ class MyForm(QtGui.QMainWindow):
def click_actionManageKeys(self):
if 'darwin' in sys.platform or 'linux' in sys.platform:
if shared.appdata == '':
reply = QtGui.QMessageBox.information(self, 'keys.dat?','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.', QMessageBox.Ok)
#reply = QtGui.QMessageBox.information(self, 'keys.dat?','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.', QMessageBox.Ok)
reply = QtGui.QMessageBox.information(self, 'keys.dat?',QtGui.QApplication.translate("MainWindow", "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."), QMessageBox.Ok)
else:
QtGui.QMessageBox.information(self, 'keys.dat?','You may manage your keys by editing the keys.dat file stored in\n' + shared.appdata + '\nIt is important that you back up this file.', QMessageBox.Ok)
QtGui.QMessageBox.information(self, 'keys.dat?',QtGui.QApplication.translate("MainWindow", "You may manage your keys by editing the keys.dat file stored in\n %1 \nIt is important that you back up this file.").arg(shared.appdata), QMessageBox.Ok)
elif sys.platform == 'win32' or sys.platform == 'win64':
if shared.appdata == '':
reply = QtGui.QMessageBox.question(self, 'Open keys.dat?','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.)', QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
reply = QtGui.QMessageBox.question(self, QtGui.QApplication.translate("MainWindow", "Open keys.dat?"),QtGui.QApplication.translate("MainWindow", "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.)"), QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
else:
reply = QtGui.QMessageBox.question(self, 'Open keys.dat?','You may manage your keys by editing the keys.dat file stored in\n' + shared.appdata + '\nIt 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.)', QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
reply = QtGui.QMessageBox.question(self, QtGui.QApplication.translate("MainWindow", "Open keys.dat?"),QtGui.QApplication.translate("MainWindow", "You may manage your keys by editing the keys.dat file stored in\n %1 \nIt 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.)").arg(shared.appdata), QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.Yes:
self.openKeysFile()
def click_actionDeleteAllTrashedMessages(self):
if QtGui.QMessageBox.question(self, 'Delete trash?',"Are you sure you want to delete all trashed messages?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) == QtGui.QMessageBox.No:
if QtGui.QMessageBox.question(self, QtGui.QApplication.translate("MainWindow", "Delete trash?"),QtGui.QApplication.translate("MainWindow", "Are you sure you want to delete all trashed messages?"), QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) == QtGui.QMessageBox.No:
return
shared.sqlLock.acquire()
shared.sqlSubmitQueue.put('deleteandvacuume')
@ -793,7 +799,7 @@ class MyForm(QtGui.QMainWindow):
self.regenerateAddressesDialogInstance = regenerateAddressesDialog(self)
if self.regenerateAddressesDialogInstance.exec_():
if self.regenerateAddressesDialogInstance.ui.lineEditPassphrase.text() == "":
QMessageBox.about(self, "bad passphrase", "You must type your passphrase. If you don\'t have one then this is not the form for you.")
QMessageBox.about(self, QtGui.QApplication.translate("MainWindow", "bad passphrase"), QtGui.QApplication.translate("MainWindow", "You must type your passphrase. If you don\'t have one then this is not the form for you."))
else:
streamNumberForAddress = int(self.regenerateAddressesDialogInstance.ui.lineEditStreamNumber.text())
addressVersionNumber = int(self.regenerateAddressesDialogInstance.ui.lineEditAddressVersionNumber.text())
@ -833,15 +839,15 @@ class MyForm(QtGui.QMainWindow):
def incrementNumberOfMessagesProcessed(self):
self.numberOfMessagesProcessed += 1
self.ui.labelMessageCount.setText('Processed ' + str(self.numberOfMessagesProcessed) + ' person-to-person messages.')
self.ui.labelMessageCount.setText(QtGui.QApplication.translate("MainWindow", "Processed %1 person-to-person messages.").arg(str(self.numberOfMessagesProcessed)))
def incrementNumberOfBroadcastsProcessed(self):
self.numberOfBroadcastsProcessed += 1
self.ui.labelBroadcastCount.setText('Processed ' + str(self.numberOfBroadcastsProcessed) + ' broadcast messages.')
self.ui.labelBroadcastCount.setText(QtGui.QApplication.translate("MainWindow", "Processed %1 broadcast messages.").arg(str(self.numberOfBroadcastsProcessed)))
def incrementNumberOfPubkeysProcessed(self):
self.numberOfPubkeysProcessed += 1
self.ui.labelPubkeyCount.setText('Processed ' + str(self.numberOfPubkeysProcessed) + ' public keys.')
self.ui.labelPubkeyCount.setText(QtGui.QApplication.translate("MainWindow", "Processed %1 public keys.").arg(str(self.numberOfPubkeysProcessed)))
def updateNetworkStatusTab(self):
#print 'updating network status tab'
@ -882,7 +888,7 @@ class MyForm(QtGui.QMainWindow):
newItem.setFlags( QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled )
self.ui.tableWidgetConnectionCount.setItem(0,1,newItem)
totalNumberOfConnectionsFromAllStreams += connectionCount"""
self.ui.labelTotalConnections.setText('Total Connections: ' + str(len(shared.connectedHostsList)))
self.ui.labelTotalConnections.setText(QtGui.QApplication.translate("MainWindow", "Total Connections: %1").arg(str(len(shared.connectedHostsList))))
if len(shared.connectedHostsList) > 0 and shared.statusIconColor == 'red': #FYI: The 'singlelistener' thread sets the icon color to green when it receives an incoming connection, meaning that the user's firewall is configured correctly.
self.setStatusIcon('yellow')
elif len(shared.connectedHostsList) == 0:
@ -899,11 +905,11 @@ class MyForm(QtGui.QMainWindow):
shared.statusIconColor = 'red'
# if the connection is lost then show a notification
if self.connected:
self.notifierShow('Bitmessage','Connection lost')
self.notifierShow('Bitmessage',QtGui.QApplication.translate("MainWindow", "Connection lost"))
self.connected = False
if self.actionStatus != None:
self.actionStatus.setText('Not Connected')
self.actionStatus.setText(QtGui.QApplication.translate("MainWindow", "Not Connected"))
self.tray.setIcon(QtGui.QIcon(":/newPrefix/images/can-icon-24px-red.png"))
if color == 'yellow':
if self.statusBar().currentMessage() == 'Warning: You are currently not connected. Bitmessage will do the work necessary to send the message but it won\'t send until you connect.':
@ -912,11 +918,11 @@ class MyForm(QtGui.QMainWindow):
shared.statusIconColor = 'yellow'
# if a new connection has been established then show a notification
if not self.connected:
self.notifierShow('Bitmessage','Connected')
self.notifierShow('Bitmessage',QtGui.QApplication.translate("MainWindow", "Connected"))
self.connected = True
if self.actionStatus != None:
self.actionStatus.setText('Connected')
self.actionStatus.setText(QtGui.QApplication.translate("MainWindow", "Connected"))
self.tray.setIcon(QtGui.QIcon(":/newPrefix/images/can-icon-24px-yellow.png"))
if color == 'green':
if self.statusBar().currentMessage() == 'Warning: You are currently not connected. Bitmessage will do the work necessary to send the message but it won\'t send until you connect.':
@ -924,11 +930,11 @@ class MyForm(QtGui.QMainWindow):
self.ui.pushButtonStatusIcon.setIcon(QIcon(":/newPrefix/images/greenicon.png"))
shared.statusIconColor = 'green'
if not self.connected:
self.notifierShow('Bitmessage','Connected')
self.notifierShow('Bitmessage',QtGui.QApplication.translate("MainWindow", "Connected"))
self.connected = True
if self.actionStatus != None:
self.actionStatus.setText('Connected')
self.actionStatus.setText(QtGui.QApplication.translate("MainWindow", "Connected"))
self.tray.setIcon(QtGui.QIcon(":/newPrefix/images/can-icon-24px-green.png"))
def updateSentItemStatusByHash(self,toRipe,textToDisplay):
@ -960,7 +966,7 @@ class MyForm(QtGui.QMainWindow):
def removeInboxRowByMsgid(self,msgid):#msgid and inventoryHash are the same thing
for i in range(self.ui.tableWidgetInbox.rowCount()):
if msgid == str(self.ui.tableWidgetInbox.item(i,3).data(Qt.UserRole).toPyObject()):
self.statusBar().showMessage('Message trashed')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Message trashed"))
self.ui.tableWidgetInbox.removeRow(i)
break
@ -1073,39 +1079,39 @@ class MyForm(QtGui.QMainWindow):
print 'Error: Could not decode', toAddress, ':', status
shared.printLock.release()
if status == 'missingbm':
self.statusBar().showMessage('Error: Bitmessage addresses start with BM- Please check ' + toAddress)
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Error: Bitmessage addresses start with BM- Please check %1").arg(toAddress))
elif status == 'checksumfailed':
self.statusBar().showMessage('Error: The address ' + toAddress+' is not typed or copied correctly. Please check it.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Error: The address %1 is not typed or copied correctly. Please check it.").arg(toAddress))
elif status == 'invalidcharacters':
self.statusBar().showMessage('Error: The address '+ toAddress+ ' contains invalid characters. Please check it.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Error: The address %1 contains invalid characters. Please check it.").arg(toAddress))
elif status == 'versiontoohigh':
self.statusBar().showMessage('Error: The address version in '+ toAddress+ ' is too high. Either you need to upgrade your Bitmessage software or your acquaintance is being clever.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Error: The address version in %1 is too high. Either you need to upgrade your Bitmessage software or your acquaintance is being clever.").arg(toAddress))
elif status == 'ripetooshort':
self.statusBar().showMessage('Error: Some data encoded in the address '+ toAddress+ ' is too short. There might be something wrong with the software of your acquaintance.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Error: Some data encoded in the address %1 is too short. There might be something wrong with the software of your acquaintance.").arg(toAddress))
elif status == 'ripetoolong':
self.statusBar().showMessage('Error: Some data encoded in the address '+ toAddress+ ' is too long. There might be something wrong with the software of your acquaintance.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Error: Some data encoded in the address %1 is too long. There might be something wrong with the software of your acquaintance.").arg(toAddress))
else:
self.statusBar().showMessage('Error: Something is wrong with the address '+ toAddress+ '.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Error: Something is wrong with the address %1.").arg(toAddress))
elif fromAddress == '':
self.statusBar().showMessage('Error: You must specify a From address. If you don\'t have one, go to the \'Your Identities\' tab.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Error: You must specify a From address. If you don\'t have one, go to the \'Your Identities\' tab."))
else:
toAddress = addBMIfNotPresent(toAddress)
try:
shared.config.get(toAddress, 'enabled')
#The toAddress is one owned by me. We cannot send messages to ourselves without significant changes to the codebase.
QMessageBox.about(self, "Sending to your address", "Error: One of the addresses to which you are sending a message, "+toAddress+", is yours. Unfortunately the Bitmessage client cannot process its own messages. Please try running a second client on a different computer or within a VM.")
QMessageBox.about(self, QtGui.QApplication.translate("MainWindow", "Sending to your address"), QtGui.QApplication.translate("MainWindow", "Error: One of the addresses to which you are sending a message, %1, is yours. Unfortunately the Bitmessage client cannot process its own messages. Please try running a second client on a different computer or within a VM.").arg(toAddress))
continue
except:
pass
if addressVersionNumber > 3 or addressVersionNumber <= 1:
QMessageBox.about(self, "Address version number", "Concerning the address "+toAddress+", Bitmessage cannot understand address version numbers of "+str(addressVersionNumber)+". Perhaps upgrade Bitmessage to the latest version.")
QMessageBox.about(self, QtGui.QApplication.translate("MainWindow", "Address version number"), QtGui.QApplication.translate("MainWindow", "Concerning the address %1, Bitmessage cannot understand address version numbers of %2. Perhaps upgrade Bitmessage to the latest version.").arg(toAddress).arg(str(addressVersionNumber)))
continue
if streamNumber > 1 or streamNumber == 0:
QMessageBox.about(self, "Stream number", "Concerning the address "+toAddress+", Bitmessage cannot handle stream numbers of "+str(streamNumber)+". Perhaps upgrade Bitmessage to the latest version.")
QMessageBox.about(self, QtGui.QApplication.translate("MainWindow", "Stream number"), QtGui.QApplication.translate("MainWindow", "Concerning the address %1, Bitmessage cannot handle stream numbers of %2. Perhaps upgrade Bitmessage to the latest version.").arg(toAddress).arg(str(streamNumber)))
continue
self.statusBar().showMessage('')
if shared.statusIconColor == 'red':
self.statusBar().showMessage('Warning: You are currently not connected. Bitmessage will do the work necessary to send the message but it won\'t send until you connect.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Warning: You are currently not connected. Bitmessage will do the work necessary to send the message but it won\'t send until you connect."))
ackdata = OpenSSL.rand(32)
shared.sqlLock.acquire()
t = ('',toAddress,ripe,fromAddress,subject,message,ackdata,int(time.time()),'msgqueued',1,1,'sent',2)
@ -1137,10 +1143,10 @@ class MyForm(QtGui.QMainWindow):
self.ui.tabWidget.setCurrentIndex(2)
self.ui.tableWidgetSent.setCurrentCell(0,0)
else:
self.statusBar().showMessage('Your \'To\' field is empty.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Your \'To\' field is empty."))
else: #User selected 'Broadcast'
if fromAddress == '':
self.statusBar().showMessage('Error: You must specify a From address. If you don\'t have one, go to the \'Your Identities\' tab.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Error: You must specify a From address. If you don\'t have one, go to the \'Your Identities\' tab."))
else:
self.statusBar().showMessage('')
#We don't actually need the ackdata for acknowledgement since this is a broadcast message, but we can use it to update the user interface when the POW is done generating.
@ -1203,7 +1209,7 @@ class MyForm(QtGui.QMainWindow):
time.sleep(0.1)
self.statusBar().showMessage('')
time.sleep(0.1)
self.statusBar().showMessage('Right click one or more entries in your address book and select \'Send message to this address\'.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Right click one or more entries in your address book and select \'Send message to this address\'."))
def redrawLabelFrom(self,index):
self.ui.labelFrom.setText(self.ui.comboBoxSendFrom.itemData(index).toPyObject())
@ -1371,9 +1377,9 @@ class MyForm(QtGui.QMainWindow):
self.rerenderInboxFromLabels()
self.rerenderSentToLabels()
else:
self.statusBar().showMessage('Error: You cannot add the same address to your address book twice. Try renaming the existing one if you want.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Error: You cannot add the same address to your address book twice. Try renaming the existing one if you want."))
else:
self.statusBar().showMessage('The address you entered was invalid. Ignoring it.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "The address you entered was invalid. Ignoring it."))
def click_pushButtonAddSubscription(self):
self.NewSubscriptionDialogInstance = NewSubscriptionDialog(self)
@ -1406,9 +1412,9 @@ class MyForm(QtGui.QMainWindow):
self.rerenderInboxFromLabels()
shared.reloadBroadcastSendersForWhichImWatching()
else:
self.statusBar().showMessage('Error: You cannot add the same address to your subsciptions twice. Perhaps rename the existing one if you want.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Error: You cannot add the same address to your subsciptions twice. Perhaps rename the existing one if you want."))
else:
self.statusBar().showMessage('The address you entered was invalid. Ignoring it.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "The address you entered was invalid. Ignoring it."))
def loadBlackWhiteList(self):
#Initialize the Blacklist or Whitelist table
@ -1456,11 +1462,11 @@ class MyForm(QtGui.QMainWindow):
shared.config.set('bitmessagesettings', 'showtraynotifications', str(self.settingsDialogInstance.ui.checkBoxShowTrayNotifications.isChecked()))
shared.config.set('bitmessagesettings', 'startintray', str(self.settingsDialogInstance.ui.checkBoxStartInTray.isChecked()))
if int(shared.config.get('bitmessagesettings','port')) != int(self.settingsDialogInstance.ui.lineEditTCPPort.text()):
QMessageBox.about(self, "Restart", "You must restart Bitmessage for the port number change to take effect.")
QMessageBox.about(self, QtGui.QApplication.translate("MainWindow", "Restart"), QtGui.QApplication.translate("MainWindow", "You must restart Bitmessage for the port number change to take effect."))
shared.config.set('bitmessagesettings', 'port', str(self.settingsDialogInstance.ui.lineEditTCPPort.text()))
if shared.config.get('bitmessagesettings', 'socksproxytype') == 'none' and str(self.settingsDialogInstance.ui.comboBoxProxyType.currentText())[0:5] == 'SOCKS':
if shared.statusIconColor != 'red':
QMessageBox.about(self, "Restart", "Bitmessage will use your proxy from now on now but you may want to manually restart Bitmessage now to close existing connections.")
QMessageBox.about(self, QtGui.QApplication.translate("MainWindow", "Restart"), QtGui.QApplication.translate("MainWindow", "Bitmessage will use your proxy from now on now but you may want to manually restart Bitmessage now to close existing connections."))
if shared.config.get('bitmessagesettings', 'socksproxytype')[0:5] == 'SOCKS' and str(self.settingsDialogInstance.ui.comboBoxProxyType.currentText()) == 'none':
self.statusBar().showMessage('')
shared.config.set('bitmessagesettings', 'socksproxytype', str(self.settingsDialogInstance.ui.comboBoxProxyType.currentText()))
@ -1593,9 +1599,9 @@ class MyForm(QtGui.QMainWindow):
shared.sqlSubmitQueue.put('commit')
shared.sqlLock.release()
else:
self.statusBar().showMessage('Error: You cannot add the same address to your list twice. Perhaps rename the existing one if you want.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Error: You cannot add the same address to your list twice. Perhaps rename the existing one if you want."))
else:
self.statusBar().showMessage('The address you entered was invalid. Ignoring it.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "The address you entered was invalid. Ignoring it."))
def on_action_SpecialAddressBehaviorDialog(self):
self.dialog = SpecialAddressBehaviorDialog(self)
@ -1639,9 +1645,9 @@ class MyForm(QtGui.QMainWindow):
shared.addressGeneratorQueue.put(('createRandomAddress',3,streamNumberForAddress,str(self.dialog.ui.newaddresslabel.text().toUtf8()),1,"",self.dialog.ui.checkBoxEighteenByteRipe.isChecked()))
else:
if self.dialog.ui.lineEditPassphrase.text() != self.dialog.ui.lineEditPassphraseAgain.text():
QMessageBox.about(self, "Passphrase mismatch", "The passphrase you entered twice doesn\'t match. Try again.")
QMessageBox.about(self, QtGui.QApplication.translate("MainWindow", "Passphrase mismatch"), QtGui.QApplication.translate("MainWindow", "The passphrase you entered twice doesn\'t match. Try again."))
elif self.dialog.ui.lineEditPassphrase.text() == "":
QMessageBox.about(self, "Choose a passphrase", "You really do need a passphrase.")
QMessageBox.about(self, QtGui.QApplication.translate("MainWindow", "Choose a passphrase"), QtGui.QApplication.translate("MainWindow", "You really do need a passphrase."))
else:
streamNumberForAddress = 1 #this will eventually have to be replaced by logic to determine the most available stream number.
#self.addressGenerator = addressGenerator()
@ -1668,7 +1674,7 @@ class MyForm(QtGui.QMainWindow):
# unregister the messaging system
if self.mmapp is not None:
self.mmapp.unregister()
self.statusBar().showMessage('All done. Closing user interface...')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "All done. Closing user interface..."))
os._exit(0)
# window close event
@ -1710,10 +1716,10 @@ class MyForm(QtGui.QMainWindow):
if toAddressAtCurrentInboxRow == self.str_broadcast_subscribers:
self.ui.labelFrom.setText('')
elif not shared.config.has_section(toAddressAtCurrentInboxRow):
QtGui.QMessageBox.information(self, 'Address is gone','Bitmessage cannot find your address ' + toAddressAtCurrentInboxRow + '. Perhaps you removed it?', QMessageBox.Ok)
QtGui.QMessageBox.information(self, QtGui.QApplication.translate("MainWindow", "Address is gone"),QtGui.QApplication.translate("MainWindow", "Bitmessage cannot find your address %1. Perhaps you removed it?").arg(toAddressAtCurrentInboxRow), QMessageBox.Ok)
self.ui.labelFrom.setText('')
elif not shared.config.getboolean(toAddressAtCurrentInboxRow,'enabled'):
QtGui.QMessageBox.information(self, 'Address disabled','Error: The address from which you are trying to send is disabled. You\'ll have to enable it on the \'Your Identities\' tab before using it.', QMessageBox.Ok)
QtGui.QMessageBox.information(self, QtGui.QApplication.translate("MainWindow", "Address disabled"),QtGui.QApplication.translate("MainWindow", "Error: The address from which you are trying to send is disabled. You\'ll have to enable it on the \'Your Identities\' tab before using it."), QMessageBox.Ok)
self.ui.labelFrom.setText('')
else:
self.ui.labelFrom.setText(toAddressAtCurrentInboxRow)
@ -1755,9 +1761,9 @@ class MyForm(QtGui.QMainWindow):
shared.sqlLock.release()
self.ui.tabWidget.setCurrentIndex(5)
self.ui.tableWidgetAddressBook.setCurrentCell(0,0)
self.statusBar().showMessage('Entry added to the Address Book. Edit the label to your liking.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Entry added to the Address Book. Edit the label to your liking."))
else:
self.statusBar().showMessage('Error: You cannot add the same address to your address book twice. Try renaming the existing one if you want.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Error: You cannot add the same address to your address book twice. Try renaming the existing one if you want."))
#Send item on the Inbox tab to trash
def on_action_InboxTrash(self):
@ -1772,7 +1778,7 @@ class MyForm(QtGui.QMainWindow):
shared.sqlLock.release()
self.ui.textEditInboxMessage.setText("")
self.ui.tableWidgetInbox.removeRow(currentRow)
self.statusBar().showMessage('Moved items to trash. There is no user interface to view your trash, but it is still on disk if you are desperate to get it back.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Moved items to trash. There is no user interface to view your trash, but it is still on disk if you are desperate to get it back."))
shared.sqlLock.acquire()
shared.sqlSubmitQueue.put('commit')
shared.sqlLock.release()
@ -1794,7 +1800,7 @@ class MyForm(QtGui.QMainWindow):
shared.sqlLock.release()
self.ui.textEditSentMessage.setPlainText("")
self.ui.tableWidgetSent.removeRow(currentRow)
self.statusBar().showMessage('Moved items to trash. There is no user interface to view your trash, but it is still on disk if you are desperate to get it back.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "Moved items to trash. There is no user interface to view your trash, but it is still on disk if you are desperate to get it back."))
shared.sqlLock.acquire()
shared.sqlSubmitQueue.put('commit')
shared.sqlLock.release()
@ -1870,7 +1876,7 @@ class MyForm(QtGui.QMainWindow):
else:
self.ui.lineEditTo.setText(str(self.ui.lineEditTo.text()) + '; '+ str(addressAtCurrentRow))
if listOfSelectedRows == {}:
self.statusBar().showMessage('No addresses selected.')
self.statusBar().showMessage(QtGui.QApplication.translate("MainWindow", "No addresses selected."))
else:
self.statusBar().showMessage('')
self.ui.tabWidget.setCurrentIndex(1)
@ -2193,11 +2199,11 @@ class settingsDialog(QtGui.QDialog):
self.ui.checkBoxStartOnLogon.setDisabled(True)
self.ui.checkBoxMinimizeToTray.setDisabled(True)
self.ui.checkBoxShowTrayNotifications.setDisabled(True)
self.ui.labelSettingsNote.setText('Options have been disabled because they either aren\'t applicable or because they haven\'t yet been implimented for your operating system.')
self.ui.labelSettingsNote.setText(QtGui.QApplication.translate("MainWindow", "Options have been disabled because they either aren\'t applicable or because they haven\'t yet been implimented for your operating system."))
elif 'linux' in sys.platform:
self.ui.checkBoxStartOnLogon.setDisabled(True)
self.ui.checkBoxMinimizeToTray.setDisabled(True)
self.ui.labelSettingsNote.setText('Options have been disabled because they either aren\'t applicable or because they haven\'t yet been implimented for your operating system.')
self.ui.labelSettingsNote.setText(QtGui.QApplication.translate("MainWindow", "Options have been disabled because they either aren\'t applicable or because they haven\'t yet been implimented for your operating system."))
#On the Network settings tab:
self.ui.lineEditTCPPort.setText(str(shared.config.get('bitmessagesettings', 'port')))
self.ui.checkBoxAuthentication.setChecked(shared.config.getboolean('bitmessagesettings', 'socksauthentication'))
@ -2295,19 +2301,19 @@ class NewSubscriptionDialog(QtGui.QDialog):
def subscriptionAddressChanged(self,QString):
status,a,b,c = decodeAddress(str(QString))
if status == 'missingbm':
self.ui.labelSubscriptionAddressCheck.setText('The address should start with ''BM-''')
self.ui.labelSubscriptionAddressCheck.setText(QtGui.QApplication.translate("MainWindow", "The address should start with ''BM-''"))
elif status == 'checksumfailed':
self.ui.labelSubscriptionAddressCheck.setText('The address is not typed or copied correctly (the checksum failed).')
self.ui.labelSubscriptionAddressCheck.setText(QtGui.QApplication.translate("MainWindow", "The address is not typed or copied correctly (the checksum failed)."))
elif status == 'versiontoohigh':
self.ui.labelSubscriptionAddressCheck.setText('The version number of this address is higher than this software can support. Please upgrade Bitmessage.')
self.ui.labelSubscriptionAddressCheck.setText(QtGui.QApplication.translate("MainWindow", "The version number of this address is higher than this software can support. Please upgrade Bitmessage."))
elif status == 'invalidcharacters':
self.ui.labelSubscriptionAddressCheck.setText('The address contains invalid characters.')
self.ui.labelSubscriptionAddressCheck.setText(QtGui.QApplication.translate("MainWindow", "The address contains invalid characters."))
elif status == 'ripetooshort':
self.ui.labelSubscriptionAddressCheck.setText('Some data encoded in the address is too short.')
self.ui.labelSubscriptionAddressCheck.setText(QtGui.QApplication.translate("MainWindow", "Some data encoded in the address is too short."))
elif status == 'ripetoolong':
self.ui.labelSubscriptionAddressCheck.setText('Some data encoded in the address is too long.')
self.ui.labelSubscriptionAddressCheck.setText(QtGui.QApplication.translate("MainWindow", "Some data encoded in the address is too long."))
elif status == 'success':
self.ui.labelSubscriptionAddressCheck.setText('Address is valid.')
self.ui.labelSubscriptionAddressCheck.setText(QtGui.QApplication.translate("MainWindow", "Address is valid."))
class NewAddressDialog(QtGui.QDialog):
def __init__(self, parent):
@ -2331,7 +2337,7 @@ class iconGlossaryDialog(QtGui.QDialog):
self.ui = Ui_iconGlossaryDialog()
self.ui.setupUi(self)
self.parent = parent
self.ui.labelPortNumber.setText('You are using TCP port ' + str(shared.config.getint('bitmessagesettings', 'port')) + '. (This can be changed in the settings).')
self.ui.labelPortNumber.setText(QtGui.QApplication.translate("MainWindow", "You are using TCP port %1. (This can be changed in the settings).").arg(str(shared.config.getint('bitmessagesettings', 'port'))))
QtGui.QWidget.resize(self,QtGui.QWidget.sizeHint(self))
@ -2386,6 +2392,9 @@ class UISignaler(QThread):
def run():
app = QtGui.QApplication(sys.argv)
translator = QtCore.QTranslator()
translator.load("translations/bitmessage_"+str(locale.getlocale()[0]))
QtGui.QApplication.installTranslator(translator)
app.setStyleSheet("QStatusBar::item { border: 0px solid black }")
myapp = MyForm()

View File

@ -0,0 +1,22 @@
SOURCES = ../about.py\
../addresses.py\
../bitmessage_icons_rc.py\
../bitmessagemain.py\
../bitmessageqt/__init__.py\
../bitmessageui.py\
../defaultKnownNodes.py\
../help.py\
../highlevelcrypto.py\
../iconglossary.py\
../newaddressdialog.py\
../newsubscriptiondialog.py\
../proofofwork.py\
../regenerateaddresses.py\
../settings.py\
../shared.py\
../singleton.py\
../specialaddressbehavior.py
TRANSLATIONS = bitmessage_fr_BE.ts
CODECFORTR = UTF-8

Binary file not shown.

View File

@ -0,0 +1,1149 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="fr_BE" sourcelanguage="en">
<context>
<name>MainWindow</name>
<message>
<location filename="../bitmessageui.py" line="460"/>
<source>Bitmessage</source>
<translation>Bitmessage</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="488"/>
<source>To</source>
<translation>Vers</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="490"/>
<source>From</source>
<translation>De</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="492"/>
<source>Subject</source>
<translation>Sujet</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="469"/>
<source>Received</source>
<translation>Reçu</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="470"/>
<source>Inbox</source>
<translation>Boîte de réception</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="471"/>
<source>Load from Address book</source>
<translation>Charger depuis carnet d&apos;adresse</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="472"/>
<source>Message:</source>
<translation>Message :</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="473"/>
<source>Subject:</source>
<translation>Sujet :</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="474"/>
<source>Send to one or more specific people</source>
<translation>Envoyer à une ou plusieurs personne(s)</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="475"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="480"/>
<source>To:</source>
<translation>Vers :</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="481"/>
<source>From:</source>
<translation>De :</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="482"/>
<source>Broadcast to everyone who is subscribed to your address</source>
<translation>Diffuser à chaque abonné de cette adresse</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="485"/>
<source>Send</source>
<translation>Envoyer</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="484"/>
<source>Be aware that broadcasts are only encrypted with your address. Anyone who knows your address can read them.</source>
<translation>Gardez en tête que les diffusions sont seulement chiffrées avec votre adresse. Quiconque disposant de votre adresse peut les lire.</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="494"/>
<source>Status</source>
<translation>Statut</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="495"/>
<source>Sent</source>
<translation>Envoyé</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="496"/>
<source>New</source>
<translation>Nouveau</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="499"/>
<source>Label (not shown to anyone)</source>
<translation>Label (seulement visible par vous)</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="528"/>
<source>Address</source>
<translation>Adresse</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="503"/>
<source>Stream</source>
<translation>Flux</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="504"/>
<source>Your Identities</source>
<translation>Vos identités</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="505"/>
<source>Here you can subscribe to &apos;broadcast messages&apos; that are sent by other users. Messages will appear in your Inbox. Addresses here override those on the Blacklist tab.</source>
<translation>Vous pouvez ici souscrire aux &apos;messages de diffusion&apos; envoyés par d&apos;autres utilisateurs. Les messages apparaîtront dans votre boîte de récption. Les adresses placées ici outrepassent la liste noire.</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="506"/>
<source>Add new Subscription</source>
<translation>Ajouter un nouvel abonnement</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="509"/>
<source>Label</source>
<translation>Label</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="512"/>
<source>Subscriptions</source>
<translation>Abonnements</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="513"/>
<source>The Address book is useful for adding names or labels to other people&apos;s Bitmessage addresses so that you can recognize them more easily in your inbox. You can add entries here using the &apos;Add&apos; button, or from your inbox by right-clicking on a message.</source>
<translation>Le carnet d&apos;adresse est utile pour mettre un nom sur une adresse Bitmessage et ainsi faciliter la gestion de votre boîte de réception. Vous pouvez ajouter des entrées ici en utilisant le bouton &apos;Ajouter&apos;, ou depuis votre boîte de réception en faisant un clic-droit sur un message.</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="523"/>
<source>Add new entry</source>
<translation>Ajouter une nouvelle entrée</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="526"/>
<source>Name or Label</source>
<translation>Nom ou Label</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="520"/>
<source>Address Book</source>
<translation>Carnet d&apos;adresses</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="521"/>
<source>Use a Blacklist (Allow all incoming messages except those on the Blacklist)</source>
<translation>Utiliser une liste noire (autoriser tous les messages entrants exceptés ceux sur la liste noire)</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="522"/>
<source>Use a Whitelist (Block all incoming messages except those on the Whitelist)</source>
<translation>Utiliser une liste blanche (refuser tous les messages entrants exceptés ceux sur la liste blanche)</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="529"/>
<source>Blacklist</source>
<translation>Liste noire</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="531"/>
<source>Stream Number</source>
<translation>Numéro de flux</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="533"/>
<source>Number of Connections</source>
<translation>Nombre de connexions</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="534"/>
<source>Total connections: 0</source>
<translation>Nombre de connexions total : 0</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="535"/>
<source>Since startup at asdf:</source>
<translation>Depuis le lancement à asdf :</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="536"/>
<source>Processed 0 person-to-person messages.</source>
<translation>0 message de pair à pair traité.</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="537"/>
<source>Processed 0 public keys.</source>
<translation>0 clé publique traitée.</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="538"/>
<source>Processed 0 broadcasts.</source>
<translation>0 message de diffusion traité.</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="539"/>
<source>Network Status</source>
<translation>État du réseau</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="540"/>
<source>File</source>
<translation>Fichier</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="548"/>
<source>Settings</source>
<translation>Paramètres</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="546"/>
<source>Help</source>
<translation>Aide</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="543"/>
<source>Import keys</source>
<translation>Importer les clés</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="544"/>
<source>Manage keys</source>
<translation>Gérer les clés</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="545"/>
<source>Quit</source>
<translation>Quitter</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="547"/>
<source>About</source>
<translation>À propos</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="549"/>
<source>Regenerate deterministic addresses</source>
<translation>Regénérer les clés déterministes</translation>
</message>
<message>
<location filename="../bitmessageui.py" line="550"/>
<source>Delete all trashed messages</source>
<translation>Supprimer tous les messages dans la corbeille</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="891"/>
<source>Total Connections: %1</source>
<translation>Nombre total de connexions : %1</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="912"/>
<source>Not Connected</source>
<translation>Déconnecté</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="937"/>
<source>Connected</source>
<translation>Connecté</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="574"/>
<source>Show Bitmessage</source>
<translation>Afficher Bitmessage</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="586"/>
<source>Subscribe</source>
<translation>S&apos;abonner</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="842"/>
<source>Processed %1 person-to-person messages.</source>
<translation>%1 messages de pair à pair traités.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="846"/>
<source>Processed %1 broadcast messages.</source>
<translation>%1 messages de diffusion traités.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="850"/>
<source>Processed %1 public keys.</source>
<translation>%1 clés publiques traitées.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="436"/>
<source>Since startup on %1</source>
<translation>Depuis lancement le %1</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="369"/>
<source>Waiting on 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>
<message>
<location filename="../bitmessageqt/__init__.py" line="371"/>
<source>Encryption key request queued.</source>
<translation>Demande de clé de chiffrement en attente.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="373"/>
<source>Queued.</source>
<translation>En attente.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="377"/>
<source>Need to do work to send message. Work is queued.</source>
<translation>Travail nécessaire pour envoyer le message. Travail en attente.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="379"/>
<source>Acknowledgement of the message received %1</source>
<translation>Accusé de réception reçu le %1</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="381"/>
<source>Broadcast queued.</source>
<translation>Message de diffusion en attente.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="383"/>
<source>Broadcast on %1</source>
<translation>Message de diffusion à %1</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="385"/>
<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="387"/>
<source>Forced difficulty override. Send should start soon.</source>
<translation>Neutralisation forcée de la difficulté. L&apos;envoi devrait bientôt commencer.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="375"/>
<source>Message sent. Waiting on acknowledgement. Sent at %1</source>
<translation>Message envoyé. En attente de l&apos;accusé de réception. Envoyé le %1</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="779"/>
<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="782"/>
<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>
<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.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="785"/>
<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 l&apos;ouvrir maintenant ? (Assurez-vous de fermer Bitmessage avant d&apos;effectuer des changements.)</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="787"/>
<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 l&apos;ouvrir maintenant ? (Assurez-vous de fermer Bitmessage avant d&apos;effectuer des changements.)</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="104"/>
<source>Add sender to your Address Book</source>
<translation>Ajouter l&apos;expéditeur au carnet d&apos;adresse</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="175"/>
<source>Move to Trash</source>
<translation>Envoyer à la Corbeille</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="106"/>
<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="191"/>
<source>Enable</source>
<translation>Activer</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="192"/>
<source>Disable</source>
<translation>Désactiver</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="190"/>
<source>Copy address to clipboard</source>
<translation>Copier l&apos;adresse dans le presse-papier</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="125"/>
<source>Special address behavior...</source>
<translation>Comportement spécial de l&apos;adresse...</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="140"/>
<source>Send message to this address</source>
<translation>Envoyer un message à cette adresse</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="142"/>
<source>Add New Address</source>
<translation>Ajouter nouvelle adresse</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="189"/>
<source>Delete</source>
<translation>Supprimer</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="176"/>
<source>Copy destination address to clipboard</source>
<translation>Copier l&apos;adresse de destination dans le presse-papier</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="177"/>
<source>Force send</source>
<translation>Forcer l&apos;envoi</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="792"/>
<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="802"/>
<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 n&apos;en avez pas, ce formulaire n&apos;est pas pour vous.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="792"/>
<source>Delete trash?</source>
<translation>Supprimer la corbeille ?</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="787"/>
<source>Open keys.dat?</source>
<translation>Ouvrir keys.dat ?</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="802"/>
<source>bad passphrase</source>
<translation>Mauvaise phrase secrète</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1469"/>
<source>Restart</source>
<translation>Redémarrer</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1465"/>
<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="1469"/>
<source>Bitmessage will use your proxy from now on now but you may want to manually restart Bitmessage now to close existing connections.</source>
<translation>Bitmessage utilisera votre proxy à partir de maintenant mais il vous faudra redémarrer Bitmessage pour fermer les connexions existantes.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1602"/>
<source>Error: You cannot add the same address to your list twice. Perhaps rename the existing one if you want.</source>
<translation>Erreur : Vous ne pouvez pas ajouter une adresse déjà présente dans votre liste. Essayez de renommer l&apos;adresse existante.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1604"/>
<source>The address you entered was invalid. Ignoring it.</source>
<translation>L&apos;adresse que vous avez entré est invalide. Adresse ignorée.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1648"/>
<source>Passphrase mismatch</source>
<translation>Phrases secrètes différentes</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1648"/>
<source>The passphrase you entered twice doesn&apos;t match. Try again.</source>
<translation>Les phrases secrètes entrées sont différentes. Réessayez.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1650"/>
<source>Choose a passphrase</source>
<translation>Choisissez une phrase secrète</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1650"/>
<source>You really do need a passphrase.</source>
<translation>Vous devez vraiment utiliser une phrase secrète.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1677"/>
<source>All done. Closing user interface...</source>
<translation>Terminé. Fermeture de l&apos;interface...</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1719"/>
<source>Address is gone</source>
<translation>L&apos;adresse a disparu</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1719"/>
<source>Bitmessage cannot find your address %1. Perhaps you removed it?</source>
<translation>Bitmessage ne peut pas trouver votre adresse %1. Peut-être l&apos;avez-vous supprimée ?</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1722"/>
<source>Address disabled</source>
<translation>Adresse désactivée</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1722"/>
<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 : L&apos;adresse avec laquelle vous essayez de communiquer est désactivée. Vous devez d&apos;abord l&apos;activer dans l&apos;onglet &apos;Vos identités&apos; avant de l&apos;utiliser.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1764"/>
<source>Entry added to the Address Book. Edit the label to your liking.</source>
<translation>Entrée ajoutée au carnet d&apos;adresse. Éditez le label selon votre souhait.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1766"/>
<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 d&apos;adresse. Essayez de renommer l&apos;adresse existante.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1803"/>
<source>Moved items to trash. There is no user interface to view your trash, but it is still on disk if you are desperate to get it back.</source>
<translation>Messages déplacés dans la corbeille. Il n&apos;y a pas d&apos;interface utilisateur pour voir votre corbeille, mais ils sont toujours présents sur le disque si vous êtes désespérés pour les récupérer.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1879"/>
<source>No addresses selected.</source>
<translation>Aucune adresses sélectionnée.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2206"/>
<source>Options have been disabled because they either aren&apos;t applicable or because they haven&apos;t yet been implimented for your operating system.</source>
<translation>Certaines options ont é désactivées car elles n&apos;étaient pas applicables ou car elles n&apos;ont pas encore é implémentées pour votre système d&apos;exploitation.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2304"/>
<source>The address should start with &apos;&apos;BM-&apos;&apos;</source>
<translation>L&apos;adresse devrait commencer avec &quot;BM-&quot;</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2306"/>
<source>The address is not typed or copied correctly (the checksum failed).</source>
<translation>L&apos;adresse n&apos;est pas correcte (la somme de contrôle a échoué).</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2308"/>
<source>The version number of this address is higher than this software can support. Please upgrade Bitmessage.</source>
<translation>Le numéro de version de cette adresse est supérieure à celle que ce programme peut supporter. Veuiller mettre Bitmessage à jour.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2310"/>
<source>The address contains invalid characters.</source>
<translation>L&apos;adresse contient des caractères invalides.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2312"/>
<source>Some data encoded in the address is too short.</source>
<translation>Certaines données encodées dans l&apos;adresse sont trop courtes.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2314"/>
<source>Some data encoded in the address is too long.</source>
<translation>Certaines données encodées dans l&apos;adresse sont trop longues.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2316"/>
<source>Address is valid.</source>
<translation>L&apos;adresse est invalide.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="2340"/>
<source>You are using TCP port %1. (This can be changed in the settings).</source>
<translation>Vous utilisez le port TCP %1. (Ceci peut être changé dans les paramètres).</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1082"/>
<source>Error: Bitmessage addresses start with BM- Please check %1</source>
<translation>Erreur : Les adresses Bitmessage commencent avec BM- Merci de vérifier %1</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1086"/>
<source>Error: The address %1 contains invalid characters. Please check it.</source>
<translation>Erreur : L&apos;adresse %1 contient des caractères invalides. Veuillez la vérifier.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1084"/>
<source>Error: The address %1 is not typed or copied correctly. Please check it.</source>
<translation>Erreur : L&apos;adresse %1 n&apos;est pas correctement recopiée. Veuillez la vérifier.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1088"/>
<source>Error: The address version in %1 is too high. Either you need to upgrade your Bitmessage software or your acquaintance is being clever.</source>
<translation>Erreur : La version de l&apos;adresse %1 est trop grande. Pensez à mettre à jour Bitmessage.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1090"/>
<source>Error: Some data encoded in the address %1 is too short. There might be something wrong with the software of your acquaintance.</source>
<translation>Erreur : Certaines données encodées dans l&apos;adresse %1 sont trop courtes. Il peut y avoir un problème avec le logiciel ou votre connaissance. </translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1092"/>
<source>Error: Some data encoded in the address %1 is too long. There might be something wrong with the software of your acquaintance.</source>
<translation>Erreur : Certaines données encodées dans l&apos;adresse %1 sont trop longues. Il peut y avoir un problème avec le logiciel ou votre connaissance.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1094"/>
<source>Error: Something is wrong with the address %1.</source>
<translation>Erreur : Problème avec l&apos;adresse %1.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1149"/>
<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 d&apos;expéditeur. Si vous n&apos;en avez pas, rendez-vous dans l&apos;onglet &apos;Vos identités&apos;.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1102"/>
<source>Sending to your address</source>
<translation>Envoi vers votre adresse</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1102"/>
<source>Error: One of the addresses to which you are sending a message, %1, is yours. Unfortunately the Bitmessage client cannot process its own messages. Please try running a second client on a different computer or within a VM.</source>
<translation>Erreur : Une des adresses vers lesquelles vous envoyez un message, %1, est vôtre. Malheureusement, Bitmessage ne peut pas traiter ses propres messages. Essayez de lancer un second client sur une machine différente.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1107"/>
<source>Address version number</source>
<translation>Numéro de version de l&apos;adresse</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1107"/>
<source>Concerning the address %1, Bitmessage cannot understand address version numbers of %2. Perhaps upgrade Bitmessage to the latest version.</source>
<translation>Concernant l&apos;adresse %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="1110"/>
<source>Stream number</source>
<translation>Numéro de flux</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1110"/>
<source>Concerning the address %1, Bitmessage cannot handle stream numbers of %2. Perhaps upgrade Bitmessage to the latest version.</source>
<translation>Concernant l&apos;adresse %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="1114"/>
<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="1146"/>
<source>Your &apos;To&apos; field is empty.</source>
<translation>Votre champ &apos;Vers&apos; est vide.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1212"/>
<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 d&apos;adresses et sélectionnez &apos;Envoyer un message à ces adresses&apos;.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="1415"/>
<source>Error: You cannot add the same address to your subsciptions twice. Perhaps rename the existing one if you want.</source>
<translation>Erreur : Vous ne pouvez pas ajouter une même adresse à vos abonnements deux fois. Essayez de renommer l&apos;adresse existante.</translation>
</message>
<message>
<location filename="../bitmessageqt/__init__.py" line="969"/>
<source>Message trashed</source>
<translation>Message envoyé à la corbeille</translation>
</message>
</context>
<context>
<name>NewAddressDialog</name>
<message>
<location filename="../newaddressdialog.py" line="164"/>
<source>Create new Address</source>
<translation>Créer une nouvelle adresse</translation>
</message>
<message>
<location filename="../newaddressdialog.py" line="165"/>
<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 d&apos;adresses 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, l&apos;adresse sera une adresse \&quot;déterministe\&quot;.\n&quot;
L&apos;option \&apos;Nombre Aléatoire\&apos; est sélectionnée par défaut mais les adresses déterministes ont certains avantages et inconvénients :</translation>
</message>
<message>
<location filename="../newaddressdialog.py" line="167"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Pros:&lt;br/&gt;&lt;/span&gt;You can recreate your addresses on any computer from memory. &lt;br/&gt;You need-not worry about backing up your keys.dat file as long as you can remember your passphrase. &lt;br/&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Cons:&lt;br/&gt;&lt;/span&gt;You must remember (or write down) your passphrase if you expect to be able to recreate your keys if they are lost. &lt;br/&gt;You must remember the address version number and the stream number along with your passphrase. &lt;br/&gt;If you choose a weak passphrase and someone on the Internet can brute-force it, they can read your messages and send messages as you.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Avantages :&lt;br/&gt;&lt;/span&gt;Vous pouvez recréer vos adresses sur n&apos;importe quel ordinateur. &lt;br/&gt;Vous n&apos;avez pas à vous inquiéter à propos de la sauvegarde de votre fichier keys.dat tant que vous vous rappelez de votre phrase secrète. &lt;br/&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Inconvénients :&lt;br/&gt;&lt;/span&gt;Vous devez vous rappeler (ou noter) votre phrase secrète si vous souhaitez être capable de récréer vos clés si vous les perdez. &lt;br/&gt;Vous devez vous rappeler du numéro de version de l&apos;adresse et du numéro de flux en plus de votre phrase secrète. &lt;br/&gt;Si vous choisissez une phrase secrète faible et que quelqu&apos;un sur Internet parvient à la brute-forcer, il pourra lire vos messages et vous en envoyer.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../newaddressdialog.py" line="168"/>
<source>Use a random number generator to make an address</source>
<translation>Utiliser un générateur de nombres aléatoires pour créer une adresse</translation>
</message>
<message>
<location filename="../newaddressdialog.py" line="169"/>
<source>Use a passpharase to make addresses</source>
<translation>Utiliser une phrase secrète pour créer une adresse</translation>
</message>
<message>
<location filename="../newaddressdialog.py" line="170"/>
<source>Spend several minutes of extra computing time to make the address(es) 1 or 2 characters shorter</source>
<translation>Créer une adresse plus courte d&apos;un ou deux caractères (nécessite plusieurs minutes de temps de calcul supplémentaires)</translation>
</message>
<message>
<location filename="../newaddressdialog.py" line="171"/>
<source>Make deterministic addresses</source>
<translation>Créer une adresse déterministe</translation>
</message>
<message>
<location filename="../newaddressdialog.py" line="172"/>
<source>Address version number: 3</source>
<translation>Numéro de version de l&apos;adresse : 3</translation>
</message>
<message>
<location filename="../newaddressdialog.py" line="173"/>
<source>In addition to your passphrase, you must remember these numbers:</source>
<translation>En plus de votre phrase secrète, vous devez vous rappeler ces numéros :</translation>
</message>
<message>
<location filename="../newaddressdialog.py" line="174"/>
<source>Passphrase</source>
<translation>Phrase secrète</translation>
</message>
<message>
<location filename="../newaddressdialog.py" line="175"/>
<source>Number of addresses to make based on your passphrase:</source>
<translation>Nombre d&apos;adresses à créer sur base de votre phrase secrète :</translation>
</message>
<message>
<location filename="../newaddressdialog.py" line="176"/>
<source>Stream number: 1</source>
<translation>Nombre de flux : 1</translation>
</message>
<message>
<location filename="../newaddressdialog.py" line="177"/>
<source>Retype passphrase</source>
<translation>Retapez la phrase secrète</translation>
</message>
<message>
<location filename="../newaddressdialog.py" line="178"/>
<source>Randomly generate address</source>
<translation>Générer une adresse de manière aléatoire</translation>
</message>
<message>
<location filename="../newaddressdialog.py" line="179"/>
<source>Label (not shown to anyone except you)</source>
<translation>Label (seulement visible par vous)</translation>
</message>
<message>
<location filename="../newaddressdialog.py" line="180"/>
<source>Use the most available stream</source>
<translation>Utiliser le flux le plus disponible</translation>
</message>
<message>
<location filename="../newaddressdialog.py" line="181"/>
<source> (best if this is the first of many addresses you will create)</source>
<translation> (préférable si vous générez votre première adresse)</translation>
</message>
<message>
<location filename="../newaddressdialog.py" line="182"/>
<source>Use the same stream as an existing address</source>
<translation>Utiliser le même flux qu&apos;une adresse existante</translation>
</message>
<message>
<location filename="../newaddressdialog.py" line="183"/>
<source>(saves you some bandwidth and processing power)</source>
<translation>(économise de la bande passante et de la puissance de calcul)</translation>
</message>
</context>
<context>
<name>NewSubscriptionDialog</name>
<message>
<location filename="../newsubscriptiondialog.py" line="57"/>
<source>Add new entry</source>
<translation>Ajouter une nouvelle entrée</translation>
</message>
<message>
<location filename="../newsubscriptiondialog.py" line="58"/>
<source>Label</source>
<translation>Label</translation>
</message>
<message>
<location filename="../newsubscriptiondialog.py" line="59"/>
<source>Address</source>
<translation>Adresse</translation>
</message>
</context>
<context>
<name>SpecialAddressBehaviorDialog</name>
<message>
<location filename="../specialaddressbehavior.py" line="59"/>
<source>Special Address Behavior</source>
<translation>Comportement spécial de l&apos;adresse</translation>
</message>
<message>
<location filename="../specialaddressbehavior.py" line="60"/>
<source>Behave as a normal address</source>
<translation>Se comporter comme une adresse normale</translation>
</message>
<message>
<location filename="../specialaddressbehavior.py" line="61"/>
<source>Behave as a pseudo-mailing-list address</source>
<translation>Se comporter comme une adresse d&apos;une pseudo liste de diffusion</translation>
</message>
<message>
<location filename="../specialaddressbehavior.py" line="62"/>
<source>Mail received to a pseudo-mailing-list address will be automatically broadcast to subscribers (and thus will be public).</source>
<translation>Un mail reçu sur une adresse d&apos;une pseudo liste de diffusion sera automatiquement diffusé aux abonnés (et sera donc public).</translation>
</message>
<message>
<location filename="../specialaddressbehavior.py" line="63"/>
<source>Name of the pseudo-mailing-list:</source>
<translation>Nom de la pseudo liste de diffusion :</translation>
</message>
</context>
<context>
<name>aboutDialog</name>
<message>
<location filename="../about.py" line="58"/>
<source>PyBitmessage</source>
<translation>PyBitmessage</translation>
</message>
<message>
<location filename="../about.py" line="59"/>
<source>version ?</source>
<translation>version ?</translation>
</message>
<message>
<location filename="../about.py" line="57"/>
<source>About</source>
<translation>À propos</translation>
</message>
<message utf8="true">
<location filename="../about.py" line="60"/>
<source>Copyright © 2013 Jonathan Warren</source>
<translation>Copyright © 2013 Jonathan Warren</translation>
</message>
<message>
<location filename="../about.py" line="61"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Distributed under the MIT/X11 software license; see &lt;a href=&quot;http://www.opensource.org/licenses/mit-license.php&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;http://www.opensource.org/licenses/mit-license.php&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Distribué sous la licence logicielle MIT/X11; voir &lt;a href=&quot;http://www.opensource.org/licenses/mit-license.php&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#0000ff;&quot;&gt;http://www.opensource.org/licenses/mit-license.php&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../about.py" line="62"/>
<source>This is Beta software.</source>
<translation>Version bêta.</translation>
</message>
</context>
<context>
<name>helpDialog</name>
<message>
<location filename="../help.py" line="45"/>
<source>Help</source>
<translation>Aide</translation>
</message>
<message>
<location filename="../help.py" line="46"/>
<source>&lt;a href=&quot;http://Bitmessage.org/wiki/PyBitmessage_Help&quot;&gt;http://Bitmessage.org/wiki/PyBitmessage_Help&lt;/a&gt;</source>
<translation>&lt;a href=&quot;http://Bitmessage.org/wiki/PyBitmessage_Help&quot;&gt;Wiki d&apos;aide de PyBitmessage&lt;/a&gt;</translation>
</message>
<message>
<location filename="../help.py" line="47"/>
<source>As Bitmessage is a collaborative project, help can be found online in the Bitmessage Wiki:</source>
<translation>Bitmessage étant un projet collaboratif, une aide peut être trouvée en ligne sur le Wiki de Bitmessage :</translation>
</message>
</context>
<context>
<name>iconGlossaryDialog</name>
<message>
<location filename="../iconglossary.py" line="73"/>
<source>Icon Glossary</source>
<translation>Glossaire des icônes</translation>
</message>
<message>
<location filename="../iconglossary.py" line="74"/>
<source>You have no connections with other peers. </source>
<translation>Vous n&apos;avez aucune connexion avec d&apos;autres pairs.</translation>
</message>
<message>
<location filename="../iconglossary.py" line="75"/>
<source>You have made at least one connection to a peer using an outgoing connection but you have not yet received any incoming connections. Your firewall or home router probably isn&apos;t configured to foward incoming TCP connections to your computer. Bitmessage will work just fine but it would help the Bitmessage network if you allowed for incoming connections and will help you be a better-connected node.</source>
<translation>Vous avez au moins une connexion sortante avec un pair mais vous n&apos;avez encore reçu aucune connexion entrante. Votre pare-feu ou routeur n&apos;est probablement pas configuré pour transmettre les connexions TCP vers votre ordinateur. Bitmessage fonctionnera correctement, mais le réseau Bitmessage se portera mieux si vous autorisez les connexions entrantes. Cela vous permettra d&apos;être un nœud mieux connecté.</translation>
</message>
<message>
<location filename="../iconglossary.py" line="76"/>
<source>You are using TCP port ?. (This can be changed in the settings).</source>
<translation>Vous utilisez le port TCP ?. (Peut être changé dans les paramètres).</translation>
</message>
<message>
<location filename="../iconglossary.py" line="77"/>
<source>You do have connections with other peers and your firewall is correctly configured.</source>
<translation>Vous avez des connexions avec d&apos;autres pairs et votre pare-feu est configuré correctement.</translation>
</message>
</context>
<context>
<name>regenerateAddressesDialog</name>
<message>
<location filename="../regenerateaddresses.py" line="104"/>
<source>Regenerate Existing Addresses</source>
<translation>Regénérer des adresses existantes</translation>
</message>
<message>
<location filename="../regenerateaddresses.py" line="105"/>
<source>Regenerate existing addresses</source>
<translation>Regénérer des adresses existantes</translation>
</message>
<message>
<location filename="../regenerateaddresses.py" line="106"/>
<source>Passphrase</source>
<translation>Phrase secrète</translation>
</message>
<message>
<location filename="../regenerateaddresses.py" line="107"/>
<source>Number of addresses to make based on your passphrase:</source>
<translation>Nombre d&apos;adresses basées sur votre phrase secrète à créer :</translation>
</message>
<message>
<location filename="../regenerateaddresses.py" line="108"/>
<source>Address version Number:</source>
<translation>Numéro de version de l&apos;adresse :</translation>
</message>
<message>
<location filename="../regenerateaddresses.py" line="109"/>
<source>3</source>
<translation>3</translation>
</message>
<message>
<location filename="../regenerateaddresses.py" line="110"/>
<source>Stream number:</source>
<translation>Numéro du flux :</translation>
</message>
<message>
<location filename="../regenerateaddresses.py" line="111"/>
<source>1</source>
<translation>1</translation>
</message>
<message>
<location filename="../regenerateaddresses.py" line="112"/>
<source>Spend several minutes of extra computing time to make the address(es) 1 or 2 characters shorter</source>
<translation>Créer une adresse plus courte d&apos;un ou deux caractères (nécessite plusieurs minutes de temps de calcul supplémentaires)</translation>
</message>
<message>
<location filename="../regenerateaddresses.py" line="113"/>
<source>You must check (or not check) this box just like you did (or didn&apos;t) when you made your addresses the first time.</source>
<translation>Vous devez cocher (ou décocher) cette case comme vous l&apos;avez fait (ou non) lors de la création de vos adresses la première fois.</translation>
</message>
<message>
<location filename="../regenerateaddresses.py" line="114"/>
<source>If you have previously made deterministic addresses but lost them due to an accident (like hard drive failure), you can regenerate them here. If you used the random number generator to make your addresses then this form will be of no use to you.</source>
<translation>Si vous aviez généré des adresses déterministes mais les avez perdus à cause d&apos;un accident, vous pouvez les regénérer ici. Si vous aviez utilisé le générateur de nombres aléatoires pour créer vos adresses, ce formulaire ne vous sera d&apos;aucune utilité.</translation>
</message>
</context>
<context>
<name>settingsDialog</name>
<message>
<location filename="../settings.py" line="241"/>
<source>Settings</source>
<translation>Paramètres</translation>
</message>
<message>
<location filename="../settings.py" line="242"/>
<source>Start Bitmessage on user login</source>
<translation>Démarrer Bitmessage à la connexion de l&apos;utilisateur</translation>
</message>
<message>
<location filename="../settings.py" line="243"/>
<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="../settings.py" line="244"/>
<source>Minimize to tray</source>
<translation>Minimiser dans la barre des tâches</translation>
</message>
<message>
<location filename="../settings.py" line="245"/>
<source>Show notification when message received</source>
<translation>Montrer une notification lorsqu&apos;un message est reçu</translation>
</message>
<message>
<location filename="../settings.py" line="246"/>
<source>Run in Portable Mode</source>
<translation>Lancer en Mode Portable</translation>
</message>
<message>
<location filename="../settings.py" line="247"/>
<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 l&apos;application. Cela rend l&apos;utilisation de Bitmessage plus facile depuis une clé USB.</translation>
</message>
<message>
<location filename="../settings.py" line="248"/>
<source>User Interface</source>
<translation>Interface utilisateur</translation>
</message>
<message>
<location filename="../settings.py" line="249"/>
<source>Listening port</source>
<translation>Port d&apos;écoute</translation>
</message>
<message>
<location filename="../settings.py" line="250"/>
<source>Listen for connections on port:</source>
<translation>Écouter les connexions sur le port :</translation>
</message>
<message>
<location filename="../settings.py" line="251"/>
<source>Proxy server / Tor</source>
<translation>Serveur proxy / Tor</translation>
</message>
<message>
<location filename="../settings.py" line="252"/>
<source>Type:</source>
<translation>Type :</translation>
</message>
<message>
<location filename="../settings.py" line="253"/>
<source>none</source>
<translation>aucun</translation>
</message>
<message>
<location filename="../settings.py" line="254"/>
<source>SOCKS4a</source>
<translation>SOCKS4a</translation>
</message>
<message>
<location filename="../settings.py" line="255"/>
<source>SOCKS5</source>
<translation>SOCKS5</translation>
</message>
<message>
<location filename="../settings.py" line="256"/>
<source>Server hostname:</source>
<translation>Nom du serveur :</translation>
</message>
<message>
<location filename="../settings.py" line="257"/>
<source>Port:</source>
<translation>Port :</translation>
</message>
<message>
<location filename="../settings.py" line="258"/>
<source>Authentication</source>
<translation>Authentification</translation>
</message>
<message>
<location filename="../settings.py" line="259"/>
<source>Username:</source>
<translation>Utilisateur :</translation>
</message>
<message>
<location filename="../settings.py" line="260"/>
<source>Pass:</source>
<translation>Mot de passe :</translation>
</message>
<message>
<location filename="../settings.py" line="261"/>
<source>Network Settings</source>
<translation>Paramètres réseau</translation>
</message>
<message>
<location filename="../settings.py" line="262"/>
<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 quelqu&apos;un vous envoie un message, son ordinateur doit d&apos;abord 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 à l&apos;envoyeur de faire face à une difficulté supérieure. Il existe une exception : si vous ajoutez un ami ou une connaissance à votre carnet d&apos;adresse, Bitmessage les notifiera automatiquement lors du prochain message que vous leur envoyez qu&apos;ils ne doivent compléter que la charge de travail minimale : difficulté 1. </translation>
</message>
<message>
<location filename="../settings.py" line="263"/>
<source>Total difficulty:</source>
<translation>Difficulté totale :</translation>
</message>
<message>
<location filename="../settings.py" line="264"/>
<source>Small message difficulty:</source>
<translation>Difficulté d&apos;un message court :</translation>
</message>
<message>
<location filename="../settings.py" line="265"/>
<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é d&apos;un message court&apos; affecte principalement la difficulté d&apos;envoyer des messages courts. Doubler cette valeur rend la difficulté à envoyer un court message presque double, tandis qu&apos;un message plus long ne sera pas réellement affecté.</translation>
</message>
<message>
<location filename="../settings.py" line="266"/>
<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 l&apos;envoyeur devra compléter. Doubler cette valeur double la charge de travail.</translation>
</message>
<message>
<location filename="../settings.py" line="267"/>
<source>Demanded difficulty</source>
<translation>Difficulté demandée</translation>
</message>
<message>
<location filename="../settings.py" line="268"/>
<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 d&apos;envoyer un message à une personne. Placer cette valeur à 0 signifie que n&apos;importe quelle valeur est acceptée.</translation>
</message>
<message>
<location filename="../settings.py" line="269"/>
<source>Maximum acceptable total difficulty:</source>
<translation>Difficulté maximale acceptée :</translation>
</message>
<message>
<location filename="../settings.py" line="270"/>
<source>Maximum acceptable small message difficulty:</source>
<translation>Difficulté maximale pour les messages courts acceptée :</translation>
</message>
<message>
<location filename="../settings.py" line="271"/>
<source>Max acceptable difficulty</source>
<translation>Difficulté acceptée max</translation>
</message>
</context>
</TS>