From afb21ca307de81b580dd5699e9a8f4c26d2c729b Mon Sep 17 00:00:00 2001 From: Stephen Whitmore Date: Sat, 22 Nov 2014 13:13:35 -0800 Subject: [PATCH 1/4] Adds API commands for blacklist manipulation. --- src/api.py | 49 ++++++++++++++++++++++++++++++++++++ src/bitmessageqt/__init__.py | 24 ++++++++++++++++++ 2 files changed, 73 insertions(+) diff --git a/src/api.py b/src/api.py index cd3a8962..4b1a1a96 100644 --- a/src/api.py +++ b/src/api.py @@ -735,6 +735,55 @@ class MySimpleXMLRPCRequestHandler(SimpleXMLRPCRequestHandler): shared.UISignalQueue.put(('rerenderSubscriptions', '')) return 'Added subscription.' + elif method == 'addAddressToBlackWhiteList': + if len(params) == 0: + raise APIError(0, 'I need parameters!') + if len(params) == 1: + address, = params + label = '' + if len(params) == 2: + address, label = params + label = self._decode(label, "base64") + try: + unicode(label, 'utf-8') + except: + raise APIError(17, 'Label is not valid UTF-8 data.') + if len(params) > 2: + raise APIError(0, 'I need either 1 or 2 parameters!') + address = addBMIfNotPresent(address) + self._verifyAddress(address) + + table = '' + if shared.config.get('bitmessagesettings', 'blackwhitelist') == 'black': + table = 'blacklist' + else: + table = 'whitelist' + + # First we must check to see if the address is already in the + # black-/white-list. + queryreturn = sqlQuery('''select * from '''+table+''' where address=?''', address) + if queryreturn != []: + raise APIError(16, 'You have already black-/white-listed that address.') + sqlExecute('''INSERT INTO '''+table+''' VALUES (?,?,?)''',label, address, True) + shared.UISignalQueue.put(('rerenderBlacklist', '')) + return 'Added black-/white-list entry.' + + elif method == 'removeAddressFromBlackWhiteList': + if len(params) != 1: + raise APIError(0, 'I need 1 parameter!') + address, = params + address = addBMIfNotPresent(address) + + table = '' + if shared.config.get('bitmessagesettings', 'blackwhitelist') == 'black': + table = 'blacklist' + else: + table = 'whitelist' + + sqlExecute('''DELETE FROM blacklist WHERE address=?''', address) + shared.UISignalQueue.put(('rerenderBlacklist', '')) + return 'Deleted black-/white-list entry if it existed.' + elif method == 'deleteSubscription': if len(params) != 1: raise APIError(0, 'I need 1 parameter!') diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index 9952caf8..97013d58 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -557,6 +557,7 @@ class MyForm(QtGui.QMainWindow): self.ui.tabWidget.setTabText(6, 'Whitelist') self.ui.radioButtonWhitelist.click() self.loadBlackWhiteList() + self.rerenderBlacklist() QtCore.QObject.connect(self.ui.tableWidgetYourIdentities, QtCore.SIGNAL( "itemChanged(QTableWidgetItem *)"), self.tableWidgetYourIdentitiesItemChanged) @@ -621,6 +622,8 @@ class MyForm(QtGui.QMainWindow): "rerenderAddressBook()"), self.rerenderAddressBook) QtCore.QObject.connect(self.UISignalThread, QtCore.SIGNAL( "rerenderSubscriptions()"), self.rerenderSubscriptions) + QtCore.QObject.connect(self.UISignalThread, QtCore.SIGNAL( + "rerenderBlacklist()"), self.rerenderBlacklist) QtCore.QObject.connect(self.UISignalThread, QtCore.SIGNAL( "removeInboxRowByMsgid(PyQt_PyObject)"), self.removeInboxRowByMsgid) QtCore.QObject.connect(self.UISignalThread, QtCore.SIGNAL( @@ -1832,6 +1835,24 @@ class MyForm(QtGui.QMainWindow): newItem.setTextColor(QtGui.QColor(128, 128, 128)) self.ui.tableWidgetSubscriptions.setItem(0, 1, newItem) + def rerenderBlacklist(self): + self.ui.tableWidgetBlacklist.setRowCount(0) + queryreturn = sqlQuery('SELECT label, address, enabled FROM blacklist') + for row in queryreturn: + label, address, enabled = row + self.ui.tableWidgetBlacklist.insertRow(0) + newItem = QtGui.QTableWidgetItem(unicode(label, 'utf-8')) + if not enabled: + newItem.setTextColor(QtGui.QColor(128, 128, 128)) + newItem.setIcon(avatarize(address)) + self.ui.tableWidgetBlacklist.setItem(0, 0, newItem) + newItem = QtGui.QTableWidgetItem(address) + newItem.setFlags( + QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) + if not enabled: + newItem.setTextColor(QtGui.QColor(128, 128, 128)) + self.ui.tableWidgetBlacklist.setItem(0, 1, newItem) + def click_pushButtonSend(self): self.statusBar().showMessage('') toAddresses = str(self.ui.lineEditTo.text()) @@ -3183,6 +3204,7 @@ class MyForm(QtGui.QMainWindow): self.rerenderInboxToLabels() self.rerenderSentFromLabels() self.rerenderSentToLabels() + self.rerenderBlacklist() def on_context_menuYourIdentities(self, point): self.popMenu.exec_( @@ -3838,6 +3860,8 @@ class UISignaler(QThread): self.emit(SIGNAL("rerenderAddressBook()")) elif command == 'rerenderSubscriptions': self.emit(SIGNAL("rerenderSubscriptions()")) + elif command == 'rerenderBlacklist': + self.emit(SIGNAL("rerenderBlacklist()")) elif command == 'removeInboxRowByMsgid': self.emit(SIGNAL("removeInboxRowByMsgid(PyQt_PyObject)"), data) elif command == 'alert': -- 2.45.1 From e93d23d2e0fc8c3d7f729cfa859ffd96b108f539 Mon Sep 17 00:00:00 2001 From: Stephen Whitmore Date: Sat, 22 Nov 2014 13:56:41 -0800 Subject: [PATCH 2/4] Adds new API error codes for black-/white-list manipulation. Refactors loadBlackWhiteList into more generic rerenderBlackWhiteList --- src/api.py | 14 ++++++++--- src/bitmessageqt/__init__.py | 49 +++++++++++------------------------- 2 files changed, 24 insertions(+), 39 deletions(-) diff --git a/src/api.py b/src/api.py index 4b1a1a96..5189b290 100644 --- a/src/api.py +++ b/src/api.py @@ -763,9 +763,9 @@ class MySimpleXMLRPCRequestHandler(SimpleXMLRPCRequestHandler): # black-/white-list. queryreturn = sqlQuery('''select * from '''+table+''' where address=?''', address) if queryreturn != []: - raise APIError(16, 'You have already black-/white-listed that address.') + raise APIError(28, 'You have already black-/white-listed that address.') sqlExecute('''INSERT INTO '''+table+''' VALUES (?,?,?)''',label, address, True) - shared.UISignalQueue.put(('rerenderBlacklist', '')) + shared.UISignalQueue.put(('rerenderBlackWhiteList', '')) return 'Added black-/white-list entry.' elif method == 'removeAddressFromBlackWhiteList': @@ -780,8 +780,14 @@ class MySimpleXMLRPCRequestHandler(SimpleXMLRPCRequestHandler): else: table = 'whitelist' - sqlExecute('''DELETE FROM blacklist WHERE address=?''', address) - shared.UISignalQueue.put(('rerenderBlacklist', '')) + # First we must check to see if the address is already in the + # black-/white-list. + queryreturn = sqlQuery('''select * from '''+table+''' where address=?''', address) + if queryreturn == []: + raise APIError(29, 'That entry does not exist in the black-/white-list.') + + sqlExecute('''DELETE FROM '''+table+''' WHERE address=?''', address) + shared.UISignalQueue.put(('rerenderBlackWhiteList', '')) return 'Deleted black-/white-list entry if it existed.' elif method == 'deleteSubscription': diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index 97013d58..050a2805 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -551,13 +551,10 @@ class MyForm(QtGui.QMainWindow): "returnPressed()"), self.sentSearchLineEditPressed) # Initialize the Blacklist or Whitelist - if shared.config.get('bitmessagesettings', 'blackwhitelist') == 'black': - self.loadBlackWhiteList() - else: + if shared.config.get('bitmessagesettings', 'blackwhitelist') == 'white': self.ui.tabWidget.setTabText(6, 'Whitelist') self.ui.radioButtonWhitelist.click() - self.loadBlackWhiteList() - self.rerenderBlacklist() + self.rerenderBlackWhiteList() QtCore.QObject.connect(self.ui.tableWidgetYourIdentities, QtCore.SIGNAL( "itemChanged(QTableWidgetItem *)"), self.tableWidgetYourIdentitiesItemChanged) @@ -623,7 +620,7 @@ class MyForm(QtGui.QMainWindow): QtCore.QObject.connect(self.UISignalThread, QtCore.SIGNAL( "rerenderSubscriptions()"), self.rerenderSubscriptions) QtCore.QObject.connect(self.UISignalThread, QtCore.SIGNAL( - "rerenderBlacklist()"), self.rerenderBlacklist) + "rerenderBlackWhiteList()"), self.rerenderBlackWhiteList) QtCore.QObject.connect(self.UISignalThread, QtCore.SIGNAL( "removeInboxRowByMsgid(PyQt_PyObject)"), self.removeInboxRowByMsgid) QtCore.QObject.connect(self.UISignalThread, QtCore.SIGNAL( @@ -1835,9 +1832,13 @@ class MyForm(QtGui.QMainWindow): newItem.setTextColor(QtGui.QColor(128, 128, 128)) self.ui.tableWidgetSubscriptions.setItem(0, 1, newItem) - def rerenderBlacklist(self): + def rerenderBlackWhiteList(self): self.ui.tableWidgetBlacklist.setRowCount(0) - queryreturn = sqlQuery('SELECT label, address, enabled FROM blacklist') + listType = shared.config.get('bitmessagesettings', 'blackwhitelist') + if listType == 'black': + queryreturn = sqlQuery('''SELECT label, address, enabled FROM blacklist''') + else: + queryreturn = sqlQuery('''SELECT label, address, enabled FROM whitelist''') for row in queryreturn: label, address, enabled = row self.ui.tableWidgetBlacklist.insertRow(0) @@ -2251,28 +2252,6 @@ class MyForm(QtGui.QMainWindow): shared.objectProcessorQueueSize += len(payload) shared.objectProcessorQueue.put((objectType,payload)) - def loadBlackWhiteList(self): - # Initialize the Blacklist or Whitelist table - listType = shared.config.get('bitmessagesettings', 'blackwhitelist') - if listType == 'black': - queryreturn = sqlQuery('''SELECT label, address, enabled FROM blacklist''') - else: - queryreturn = sqlQuery('''SELECT label, address, enabled FROM whitelist''') - for row in queryreturn: - label, address, enabled = row - self.ui.tableWidgetBlacklist.insertRow(0) - newItem = QtGui.QTableWidgetItem(unicode(label, 'utf-8')) - if not enabled: - newItem.setTextColor(QtGui.QColor(128, 128, 128)) - newItem.setIcon(avatarize(address)) - self.ui.tableWidgetBlacklist.setItem(0, 0, newItem) - newItem = QtGui.QTableWidgetItem(address) - newItem.setFlags( - QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled) - if not enabled: - newItem.setTextColor(QtGui.QColor(128, 128, 128)) - self.ui.tableWidgetBlacklist.setItem(0, 1, newItem) - def click_pushButtonStatusIcon(self): print 'click_pushButtonStatusIcon' self.iconGlossaryInstance = iconGlossaryDialog(self) @@ -2505,7 +2484,7 @@ class MyForm(QtGui.QMainWindow): shared.config.write(configfile) # self.ui.tableWidgetBlacklist.clearContents() self.ui.tableWidgetBlacklist.setRowCount(0) - self.loadBlackWhiteList() + self.rerenderBlackWhiteList() self.ui.tabWidget.setTabText(6, 'Blacklist') def click_radioButtonWhitelist(self): @@ -2515,7 +2494,7 @@ class MyForm(QtGui.QMainWindow): shared.config.write(configfile) # self.ui.tableWidgetBlacklist.clearContents() self.ui.tableWidgetBlacklist.setRowCount(0) - self.loadBlackWhiteList() + self.rerenderBlackWhiteList() self.ui.tabWidget.setTabText(6, 'Whitelist') def click_pushButtonAddBlacklist(self): @@ -3204,7 +3183,7 @@ class MyForm(QtGui.QMainWindow): self.rerenderInboxToLabels() self.rerenderSentFromLabels() self.rerenderSentToLabels() - self.rerenderBlacklist() + self.rerenderBlackWhiteList() def on_context_menuYourIdentities(self, point): self.popMenu.exec_( @@ -3860,8 +3839,8 @@ class UISignaler(QThread): self.emit(SIGNAL("rerenderAddressBook()")) elif command == 'rerenderSubscriptions': self.emit(SIGNAL("rerenderSubscriptions()")) - elif command == 'rerenderBlacklist': - self.emit(SIGNAL("rerenderBlacklist()")) + elif command == 'rerenderBlackWhiteList': + self.emit(SIGNAL("rerenderBlackWhiteList()")) elif command == 'removeInboxRowByMsgid': self.emit(SIGNAL("removeInboxRowByMsgid(PyQt_PyObject)"), data) elif command == 'alert': -- 2.45.1 From 345303a5606b7d0525d7bddc02afd8164033bf75 Mon Sep 17 00:00:00 2001 From: digital dreamer Date: Sun, 30 Nov 2014 15:13:48 +0100 Subject: [PATCH 3/4] Add Czech translation --- src/bitmessageqt/__init__.py | 2 +- src/bitmessageqt/settings.py | 4 +- src/translations/bitmessage_cs.pro | 35 + src/translations/bitmessage_cs.qm | Bin 0 -> 64901 bytes src/translations/bitmessage_cs.ts | 1718 ++++++++++++++++++++++++++++ 5 files changed, 1757 insertions(+), 2 deletions(-) create mode 100755 src/translations/bitmessage_cs.pro create mode 100644 src/translations/bitmessage_cs.qm create mode 100755 src/translations/bitmessage_cs.ts diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index 9952caf8..2524fdb6 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -3410,7 +3410,7 @@ class settingsDialog(QtGui.QDialog): shared.safeConfigGetBoolean('bitmessagesettings', 'replybelow')) global languages - languages = ['system','en','eo','fr','de','es','ru','no','ar','zh_cn','ja','nl','en_pirate','other'] + languages = ['system','en','eo','fr','de','es','ru','no','ar','zh_cn','ja','nl','en_pirate','cs','other'] user_countrycode = str(shared.config.get('bitmessagesettings', 'userlocale')) if user_countrycode in languages: curr_index = languages.index(user_countrycode) diff --git a/src/bitmessageqt/settings.py b/src/bitmessageqt/settings.py index 40de6a5a..dbd2e521 100644 --- a/src/bitmessageqt/settings.py +++ b/src/bitmessageqt/settings.py @@ -107,6 +107,8 @@ class Ui_settingsDialog(object): self.languageComboBox.setItemText(11, _fromUtf8("Nederlands")) self.languageComboBox.addItem(_fromUtf8("")) self.languageComboBox.addItem(_fromUtf8("")) + self.languageComboBox.setItemText(13, _fromUtf8("Česky")) + self.languageComboBox.addItem(_fromUtf8("")) self.formLayout_2.setWidget(0, QtGui.QFormLayout.LabelRole, self.languageComboBox) self.formLayout.setWidget(9, QtGui.QFormLayout.FieldRole, self.groupBox) self.tabWidgetSettings.addTab(self.tabUserInterface, _fromUtf8("")) @@ -443,7 +445,7 @@ class Ui_settingsDialog(object): self.groupBox.setTitle(_translate("settingsDialog", "Interface Language", None)) self.languageComboBox.setItemText(0, _translate("settingsDialog", "System Settings", "system")) self.languageComboBox.setItemText(12, _translate("settingsDialog", "Pirate English", "en_pirate")) - self.languageComboBox.setItemText(13, _translate("settingsDialog", "Other (set in keys.dat)", "other")) + self.languageComboBox.setItemText(14, _translate("settingsDialog", "Other (set in keys.dat)", "other")) self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tabUserInterface), _translate("settingsDialog", "User Interface", None)) self.groupBox1.setTitle(_translate("settingsDialog", "Listening port", None)) self.label.setText(_translate("settingsDialog", "Listen for connections on port:", None)) diff --git a/src/translations/bitmessage_cs.pro b/src/translations/bitmessage_cs.pro new file mode 100755 index 00000000..db58da97 --- /dev/null +++ b/src/translations/bitmessage_cs.pro @@ -0,0 +1,35 @@ +SOURCES = ../addresses.py\ + ../bitmessagemain.py\ + ../class_addressGenerator.py\ + ../class_objectProcessor.py\ + ../class_outgoingSynSender.py\ + ../class_receiveDataThread.py\ + ../class_sendDataThread.py\ + ../class_singleCleaner.py\ + ../class_singleListener.py\ + ../class_singleWorker.py\ + ../class_sqlThread.py\ + ../helper_bitcoin.py\ + ../helper_bootstrap.py\ + ../helper_generic.py\ + ../helper_inbox.py\ + ../helper_sent.py\ + ../helper_startup.py\ + ../shared.py\ + ../bitmessageqt/__init__.py\ + ../bitmessageqt/about.py\ + ../bitmessageqt/addaddressdialog.py\ + ../bitmessageqt/bitmessageui.py\ + ../bitmessageqt/connect.py\ + ../bitmessageqt/help.py\ + ../bitmessageqt/iconglossary.py\ + ../bitmessageqt/newaddressdialog.py\ + ../bitmessageqt/newchandialog.py\ + ../bitmessageqt/newsubscriptiondialog.py\ + ../bitmessageqt/regenerateaddresses.py\ + ../bitmessageqt/settings.py\ + ../bitmessageqt/specialaddressbehavior.py + + +TRANSLATIONS = bitmessage_cs.ts +CODECFORTR = UTF-8 diff --git a/src/translations/bitmessage_cs.qm b/src/translations/bitmessage_cs.qm new file mode 100644 index 0000000000000000000000000000000000000000..6aadf62b4ade329e8df070554028d78acc3f909d GIT binary patch literal 64901 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 + + + + AddAddressDialog + + + Add new entry + Přidat novou položku + + + + Label + Popiska + + + + Address + Adresa + + + + MainWindow + + + One of your addresses, %1, is an old version 1 address. Version 1 addresses are no longer supported. May we delete it now? + Jedna z Vašich adres, %1, je stará adresa verze 1. Adresy verze 1 již nejsou podporovány. Můžeme ji nyní smazat? + + + + Reply + Odpovědět + + + + Add sender to your Address Book + Přidat odesilatele do Vašeho adresáře + + + + Move to Trash + Přesunout do koše + + + + View HTML code as formatted text + Zobrazit HTML kód jako formátovaný text + + + + Save message as... + Uložit zprávu jako... + + + + Mark Unread + Označit jako nepřečtené + + + + New + Nové + + + + Enable + Zapnout + + + + Disable + Vypnout + + + + Copy address to clipboard + Zkopírovat adresu do clipboardu + + + + Special address behavior... + Speciální chování adresy... + + + + Send message to this address + Poslat zprávu na tuto adresu + + + + Subscribe to this address + Přihlásit se k odběru této adresy + + + + Add New Address + Přidat novou adresu + + + + Delete + Odstranit + + + + Copy destination address to clipboard + Zkopírovat cílovou adresu do clipboardu + + + + Force send + Přesto odeslat + + + + Add new entry + Přidat novou položku + + + + Since startup on %1 + Od spuštění v %1 + + + + Waiting for their encryption key. Will request it again soon. + Čekám na šifrovací klíč. Požadavek bude brzy vyslán znovu. + + + + Encryption key request queued. + Požadavek na šifrovací klíč zařazen do fronty. + + + + Queued. + Zařazeno do fronty. + + + + Message sent. Waiting for acknowledgement. Sent at %1 + Zpráva odeslána. Čekám na potvrzení. Odesláno v %1 + + + + Message sent. Sent at %1 + Zpráva odeslána. Odesláno v %1 + + + + Need to do work to send message. Work is queued. + Pro poslání zprávy musím provést práci. Práce byla zařazena do fronty. + + + + Acknowledgement of the message received %1 + Potvrzení o přijetí zprávy %1 + + + + Broadcast queued. + Rozeslání zařazeno do fronty. + + + + Broadcast on %1 + Rozesláno v %1 + + + + Problem: The work demanded by the recipient is more difficult than you are willing to do. %1 + Problém: Obtížnost práce požadovaná adresátem je vyšší než Vámi povolené maximum. %1 + + + + Problem: The recipient's encryption key is no good. Could not encrypt message. %1 + Problém: Šifrovací klíč adresáta je nepoužitelný. Zprávu nelze zašifrovat. %1 + + + + Forced difficulty override. Send should start soon. + Vyžádáno odeslání navzdory obtížnosti. Zpráva bude brzy odeslána. + + + + Unknown status: %1 %2 + Neznámý stav: %1 %2 + + + + Not Connected + Nepřipojeno + + + + Show Bitmessage + Ukázat Bitmessage + + + + Send + Poslat + + + + Subscribe + Přihlásit se k odběru + + + + Address Book + Adresář + + + + Quit + Ukončit + + + + 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. + Své klíče můžete spravovat editováním souboru keys.dat, který najdete ve stejném adresáři jako tento program. Je důležité si tento soubor zazálohovat. + + + + You may manage your keys by editing the keys.dat file stored in + %1 +It is important that you back up this file. + Své klíče můžete spravovat editováním souboru keys.dat, který najdete zde: + %1 +Je důležité si tento soubor zazálohovat. + + + + Open keys.dat? + Otevřít soubor 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.) + Své klíče můžete spravovat editováním souboru keys.dat, který najdete ve stejném adresáři jako tento program. Je důležité si tento soubor zazálohovat. Přejete si tento soubor nyní otevřít? (Nezapomeňte zavřít Bitmessage předtím, než provedete jakékoli změny.) + + + + 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.) + Své klíče můžete spravovat editováním souboru keys.dat, který najdete zde: + %1 +Je důležité si tento soubor zazálohovat. Přejete si tento soubor nyní otevřít? (Nezapomeňte zavřít Bitmessage předtím, než provedete jakékoli změny.) + + + + Delete trash? + Smazat obsah koše? + + + + Are you sure you want to delete all trashed messages? + Opravdu chcete smazat všechny zprávy v koši? + + + + bad passphrase + špatné heslo + + + + You must type your passphrase. If you don't have one then this is not the form for you. + Musíte napsat své heslo. Pokud žádné nemáte, pak tento formulář není pro Vás. + + + + Chan name needed + Je třeba zadat jméno kanálu + + + + You didn't enter a chan name. + Nezadal(a) jste jméno kanálu. + + + + Address already present + Adresa je již přítomna + + + + Could not add chan because it appears to already be one of your identities. + Nelze přidat kanál. Zdá se, že ho již máte mezi svými identitami. + + + + Success + Úspěch + + + + Successfully created chan. To let others join your chan, give them the chan name and this Bitmessage address: %1. This address also appears in 'Your Identities'. + Kanál byl úspěšně vytvořen. Když chcete jiným lidem povolit připojit se k Vašemu kanálu, řekněte jim jméno kanálu a tuto adresu Bitmessage: %1. Tuto adresu také najdete v sekci "Vaše identity". + + + + Address too new + Adresa je příliš nová + + + + Although that Bitmessage address might be valid, its version number is too new for us to handle. Perhaps you need to upgrade Bitmessage. + Tato adresa Bitmessage může být platná, je to však adresa vyšší verze, se kterou neumíme pracovat. Možná byste měl(a) aktualizovat Bitmessage. + + + + Address invalid + Adresa je neplatná + + + + That Bitmessage address is not valid. + Toto není platná adresa Bitmessage. + + + + Address does not match chan name + Adresa nepatří ke jménu kanálu + + + + Although the Bitmessage address you entered was valid, it doesn't match the chan name. + Adresa Bitmessage, kterou jste zadal(a), je sice platná, nepatří však ke kanálu s tímto jménem. + + + + Successfully joined chan. + Úspěšně jste se připojil(a) ke kanálu. + + + + Processed %1 person-to-person messages. + Zpracováno %1 osobních zpráv. + + + + Processed %1 broadcast messages. + Zpracováno %1 hromadných zpráv. + + + + Processed %1 public keys. + Zpracováno %1 veřejných klíčů. + + + + Total Connections: %1 + Celkový počet připojení: %1 + + + + Connection lost + Připojení ztraceno + + + + Connected + Připojeno + + + + Message trashed + Zpráva byla vyhozena do koše + + + + Error: Bitmessage addresses start with BM- Please check %1 + Chyba: Adresy Bitmessage začínají na BM- Zkontroluje prosím %1 + + + + Error: The address %1 is not typed or copied correctly. Please check it. + Chyba: Adresa %1 nebyla správně opsána nebo zkopírována. Zkontrolujte ji prosím. + + + + Error: The address %1 contains invalid characters. Please check it. + Chyba: Adresa %1 obsahuje neplatné znaky. Zkontrolujte ji prosím. + + + + Error: The address version in %1 is too high. Either you need to upgrade your Bitmessage software or your acquaintance is being clever. + Chyba: Verze adresy %1 je příliš vysoká. Buď používáte starou verzi Bitmessage a je čas na aktualizaci, nebo si Váš známý dělá legraci. + + + + Error: Some data encoded in the address %1 is too short. There might be something wrong with the software of your acquaintance. + Chyba: Některá data zakódovaná v adrese %1 jsou příliš krátká. Možná je to chyba softwaru, který Váš známý používá. + + + + Error: Some data encoded in the address %1 is too long. There might be something wrong with the software of your acquaintance. + Chyba: Některá data zakódovaná v adrese %1 jsou příliš dlouhá. Možná je to chyba softwaru, který Váš známý používá. + + + + Error: Something is wrong with the address %1. + Chyba: Nastal problém s adresou %1. + + + + Error: You must specify a From address. If you don't have one, go to the 'Your Identities' tab. + Chyba: V poli "Od" musíte uvést adresu. Pokud žádnou nemáte, klikněte na kartu "Vaše identity". + + + + Address version number + Číslo verze adresy + + + + Concerning the address %1, Bitmessage cannot understand address version numbers of %2. Perhaps upgrade Bitmessage to the latest version. + Co se týče adresy %1, Bitmessage nerozumí jejímu číslu verze "%2". Možná byste měl(a) aktualizovat Bitmessage na nejnovější verzi. + + + + Stream number + Číslo proudu + + + + Concerning the address %1, Bitmessage cannot handle stream numbers of %2. Perhaps upgrade Bitmessage to the latest version. + Co se týče adresy %1, Bitmessage neumí zpracovat její číslo proudu "%2". Možná byste měl(a) aktualizovat Bitmessage na nejnovější verzi. + + + + Warning: You are currently not connected. Bitmessage will do the work necessary to send the message but it won't send until you connect. + Varování: Nyní nejste připojen(a). Bitmessage provede práci potřebnou k pro odeslání zprávy, ale neodešle ji, dokud se nepřipojíte. + + + + Your 'To' field is empty. + Pole "Komu" je prázdné. + + + + Right click one or more entries in your address book and select 'Send message to this address'. + Klikněte pravým tlačítkem na jeden nebo více záznamů v adresáři, a vyberte "Poslat zprávu na tuto adresu". + + + + Fetched address from namecoin identity. + Adresa načtena z namecoinové identity. + + + + Work is queued. %1 + Práce je zařazena ve frontě. %1 + + + + New Message + Nová zpráva + + + + From + Od + + + + Address is valid. + Adresa je platná. + + + + The address you entered was invalid. Ignoring it. + Zadaná adresa je neplatná, ignoruji jí. + + + + Error: You cannot add the same address to your address book twice. Try renaming the existing one if you want. + Chyba: Nemůžete do adresáře přidat adresu, která tam již je. Můžete ale tu existující přejmenovat. + + + + Error: You cannot add the same address to your subsciptions twice. Perhaps rename the existing one if you want. + Chyba: Nemůžete do odběrů přidat adresu, která tam již je. Můžete ale tu existující přejmenovat. + + + + Restart + Restart + + + + You must restart Bitmessage for the port number change to take effect. + Je třeba restartovat Bitmessage, aby se změna portu projevila. + + + + Bitmessage will use your proxy from now on but you may want to manually restart Bitmessage now to close existing connections (if any). + Bitmessage bude od teď používat Váš proxy server. Bude ale jistější, když nyní Bitmessage restartujete, abyste zavřel(a) všechna aktivní připojení (pokud nějaká jsou). + + + + Error: You cannot add the same address to your list twice. Perhaps rename the existing one if you want. + Chyba: Nemůžete na listinu přidat adresu, která tam již je. Můžete ale tu existující přejmenovat. + + + + Passphrase mismatch + Hesla nejsou stejná + + + + The passphrase you entered twice doesn't match. Try again. + Zadaná hesla nejsou stejná. Zkuste to znovu. + + + + Choose a passphrase + Zvolte heslo + + + + You really do need a passphrase. + Opravdu je nutné zvolit heslo. + + + + All done. Closing user interface... + Vše hotovo. Zavírám uživatelské rozhraní... + + + + Address is gone + Adresa je pryč + + + + Bitmessage cannot find your address %1. Perhaps you removed it? + Bitmessage nemůže najít Vaši adresu %1. Možná jste ji odstranil(a)? + + + + Address disabled + Adresa je vypnutá + + + + 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. + Chyba: Adresa, ze které se snažíte poslat zprávu, je vypnutá. Před použitím ji musíte zapnout na kartě "Vaše identity". + + + + Entry added to the Address Book. Edit the label to your liking. + Položka byla přidána do adresáře. Popisku můžete upravit dle svého přání. + + + + 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. + Položky byly přesunuty do koše. Koš nemá uživatelské rozhraní, ale jeho obsah je stále na disku, pro případ že ho nutně potřebujete obnovit. + + + + Save As... + Uložit jako... + + + + Write error. + Chyba zápisu. + + + + No addresses selected. + Není vybrána žádná adresa. + + + + Testing... + Zkouším... + + + + This is a chan address. You cannot use it as a pseudo-mailing list. + Toto je adresa kanálu. Není možné ji použít jako pseudo-mailing list. + + + + The address should start with ''BM-'' + Adresa by měla začínat "BM-" + + + + The address is not typed or copied correctly (the checksum failed). + Adresa nebyla správně opsána nebo zkopírována (kontrolní součet nesouhlasí). + + + + The version number of this address is higher than this software can support. Please upgrade Bitmessage. + Verze této adresy je vyšší než s jakou tento software umí pracovat. Prosím aktualizujte Bitmessage. + + + + The address contains invalid characters. + Adresa obsahuje neplatné znaky. + + + + Some data encoded in the address is too short. + Některá data zakódovaná v této adrese jsou příliš krátká. + + + + Some data encoded in the address is too long. + Některá data zakódovaná v této adrese jsou příliš dlouhá. + + + + You are using TCP port %1. (This can be changed in the settings). + Používáte TCP port %1. (To lze změnit v nastavení). + + + + Bitmessage + Bitmessage + + + + Search + Hledej + + + + All + Vše + + + + To + Komu + + + + From + Od + + + + Subject + Předmět + + + + Message + Zpráva + + + + Received + Doručeno + + + + Inbox + Doručené + + + + Load from Address book + Vybrat z adresáře + + + + Fetch Namecoin ID + Načíst Namecoin ID + + + + Message: + Zpráva: + + + + Subject: + Předmět: + + + + Send to one or more specific people + Poslat jednomu nebo více konkrétním lidem + + + + To: + Komu: + + + + From: + Od: + + + + Broadcast to everyone who is subscribed to your address + Rozeslat všem, kteří odebírají Vaši adresu + + + + Be aware that broadcasts are only encrypted with your address. Anyone who knows your address can read them. + Mějte na paměti, že rozesílané zprávy jsou šifrovány jen Vaší adresou. Kdokoli, kdo zná Vaši adresu, je může číst. + + + + Status + Stav + + + + Sent + Odeslané + + + + Label (not shown to anyone) + Popiska (nikomu se neukazuje) + + + + Address + Adresa + + + + Stream + Proud + + + + Your Identities + Vaše identity + + + + Here you can subscribe to 'broadcast messages' that are sent by other users. Messages will appear in your Inbox. Addresses here override those on the Blacklist tab. + Zde se můžete přihlásit k odběru veřejných zpráv, rozesílaných jinými uživateli. Zprávy uvidíte ve své doručené poště. Na adresy uvedené zde nemá vliv nastavení černé listiny. + + + + Add new Subscription + Přidat nový odběr + + + + Label + Popiska + + + + Subscriptions + Odběry + + + + The Address book is useful for adding names or labels to other people's Bitmessage addresses so that you can recognize them more easily in your inbox. You can add entries here using the 'Add' button, or from your inbox by right-clicking on a message. + Adresář umožňuje přidat jména nebo popisky k Bitmessage adresám jiných lidí, takže je ve své doručené poště lépe rozpoznáte. Položky můžete přidávat buď kliknutím na tlačítko přidat, nebo ze své doručené pošty, když kliknete na nějakou zprávu pravým tlačítkem. + + + + Name or Label + Jméno nebo popiska + + + + Use a Blacklist (Allow all incoming messages except those on the Blacklist) + Použít černou listinu (povolit všechny příchozí zprávy kromě těch od adres na černé listině) + + + + Use a Whitelist (Block all incoming messages except those on the Whitelist) + Použít bílou listinu (blokovat všechny příchozí zprávy kromě těch od adres na bílé listině) + + + + Blacklist + Černá listina + + + + Stream # + Číslo proudu + + + + Connections + Připojení + + + + Total connections: 0 + Celkový počet připojení: 0 + + + + Since startup at asdf: + Od spuštění v asdf: + + + + Processed 0 person-to-person message. + Zpracováno 0 osobních zpráv. + + + + Processed 0 public key. + Zpracováno 0 veřejných klíčů. + + + + Processed 0 broadcast. + Zpracováno 0 hromadných zpráv. + + + + Network Status + Stav sítě + + + + File + Soubor + + + + Settings + Nastavení + + + + Help + Nápověda + + + + Import keys + Importovat klíče + + + + Manage keys + Správa klíčů + + + + Ctrl+Q + Ctrl+Q + + + + F1 + F1 + + + + About + O aplikaci + + + + Regenerate deterministic addresses + Obnovit deterministické adresy + + + + Delete all trashed messages + Smazat všechny zprávy v koši + + + + Join / Create chan + Připojit ke kanálu / Vytvořit kanál + + + + Set avatar... + Nastavit avatar... + + + + Bad address version number + Špatné číslo verze adresy + + + + Your address version number must be a number: either 3 or 4. + Verze Vaší adresy musí být číslo: buď 3 nebo 4. + + + + Your address version number must be either 3 or 4. + Verze Vaší adresy musí být buď 3 nebo 4. + + + + Inventory lookups per second: %1 + Počet kontrol inventáře za sekundu: %1 + + + + Will not resend ever + Nikdy nebude nic posláno znovu + + + + Note that the time limit you entered is less than the amount of time Bitmessage waits for the first resend attempt therefore your messages will never be resent. + Všimněte si, že časový limit, který jste zadal(a), je menší, než čas po kterém Bitmessage poprvé zkusí opětovné odeslání, proto Vaše zprávy nebudou nikdy poslány znovu. + + + + Do you really want to remove this avatar? + Opravdu chcete odstranit tento avatar? + + + + You have already set an avatar for this address. Do you really want to overwrite it? + Pro tuto adresu již avatar máte. Opravdu ho chcete přepsat? + + + + Start-on-login not yet supported on your OS. + Spuštění po přihlášení není zatím na Vašem operačním systému podporováno. + + + + Minimize-to-tray not yet supported on your OS. + Minimalizace na lištu není zatím na Vašem operačním systému podporována. + + + + Tray notifications not yet supported on your OS. + Upozornění v liště nejsou zatím na Vašem operačním systému podporována. + + + + Enter an address above. + Zadejte adresu výše. + + + + Address is an old type. We cannot display its past broadcasts. + Toto je starý typ adresy. Neumíme zobrazit její rozesílané zprávy. + + + + There are no recent broadcasts from this address to display. + Z této adresy nebyly v poslední době rozesílány žádné zprávy. + + + + Display the %1 recent broadcast from this address. + Zobrazit %1 zprávu nedávno rozeslanou z této adresy. + + + + Display the %1 recent broadcasts from this address. + Zobrazit %1 zpráv nedávno rozeslaných z této adresy. + + + + Inventory lookups per second: 0 + Počet kontrol inventáře za sekundu: 0 + + + + Down: %1/s Total: %2 + Stahování: %1/s Celkem: %2 + + + + Up: %1/s Total: %2 + Odesílání: %1/s Celkem: %2 + + + + Message too long + Zpráva je příliš dlouhá + + + + The message that you are trying to send is too long by %1 bytes. (The maximum is 261644 bytes). Please cut it down before sending. + Zpráva, kterou se snažíte poslat, je o %1 bajtů delší, než je dovoleno. (Maximum je 261644 bajtů). Zkuste ji prosím před odesláním zkrátit. + + + + Error: Some data encoded in the address %1 is malformed. There might be something wrong with the software of your acquaintance. + Chyba: Některá data zakódovaná v adrese %1 mají neplatný formát. Možná je to chyba softwaru, který Váš známý používá. + + + + Number needed + Je třeba zadat číslo + + + + Your maximum download and upload rate must be numbers. Ignoring what you typed. + Limity pro rychlost stahování a odesílání musejí být čísla. Vámi zadané hodnoty nelze použít. + + + + Some data encoded in the address is malformed. + Některá data zakódovaná v této adrese mají neplatný formát. + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> + + + + Down: 0 KB/s + Stahování: 0 KB/s + + + + Up: 0 KB/s + Odesílání: 0 KB/s + + + + NewAddressDialog + + + Create new Address + Vytvořit novou adresu + + + + 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 "deterministic" address. +The 'Random Number' option is selected by default but deterministic addresses have several pros and cons: + Zde můžete vytvořit tolik adres, kolik budete chtít. Vytvářet nové adresy a opouštět staré se doporučuje. Adresy můžete generovat buď pomocí generátoru náhodných čísel, nebo pomocí hesla. Pokud použijete heslo, vytvořené adrese se říká "deterministická" adresa. +Možnost "Náhodné číslo" je nastavena jako výchozí, deterministické adresy mají několik výhod a nevýhod: + + + + <html><head/><body><p><span style=" font-weight:600;">Pros:<br/></span>You can recreate your addresses on any computer from memory. <br/>You need-not worry about backing up your keys.dat file as long as you can remember your passphrase. <br/><span style=" font-weight:600;">Cons:<br/></span>You must remember (or write down) your passphrase if you expect to be able to recreate your keys if they are lost. <br/>You must remember the address version number and the stream number along with your passphrase. <br/>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.</p></body></html> + <html><head/><body><p><span style=" font-weight:600;">Výhody:<br/></span>Adresy můžete znovu vytvořit na jakémkoli počítači z vlastní paměti. <br/>Nemusíte se starat o zálohování souboru keys.dat, stačí si pamatovat heslo. <br/><span style=" font-weight:600;">Nevýhody:<br/></span>Musíte si zapamatovat (nebo zapsat) své heslo, jinak nebudete moci obnovit klíče v případě ztráty. <br/>Spolu s heslem si musíte zapamatovat ještě číslo verze a číslo proudu. <br/>Pokud zvolíte slabé heslo, a někdo na Internetu ho prolomí, může si číst Vaše zprávy a posílat zprávy Vaším jménem.</p></body></html> + + + + Use a random number generator to make an address + Použít generátor náhodných čísel k vytvoření adresy + + + + Spend several minutes of extra computing time to make the address(es) 1 or 2 characters shorter + Přidat navíc několik minut počítání, a vytvořit tak adresu(y) o 1 nebo 2 znaky kratší + + + + Make deterministic addresses + Vytvořit deterministické adresy + + + + In addition to your passphrase, you must remember these numbers: + Kromě svého hesla si musíte zapamatovat i tato čísla: + + + + Passphrase + Heslo + + + + Number of addresses to make based on your passphrase: + Počet adres, které mají být odvozeny z Vašeho hesla: + + + + Stream number: 1 + Číslo proudu: 1 + + + + Retype passphrase + Napište heslo znovu + + + + Randomly generate address + Náhodně generovat adresu + + + + Label (not shown to anyone except you) + Popiska (neukáže se nikomu kromě Vás) + + + + Use the most available stream + Použít proud s nejlepší dostupností + + + + (best if this is the first of many addresses you will create) + (nejvhodnější, pokud je to první z mnoha adres, které budete vytvářet) + + + + Use the same stream as an existing address + Použít stejný proud jako pro existující adresu + + + + (saves you some bandwidth and processing power) + (šetří přenesená data a práci procesoru) + + + + Use a passphrase to make addresses + Použít k vytvoření adres heslo + + + + Address version number: 4 + Číslo verze adresy: 4 + + + + NewSubscriptionDialog + + + Add new entry + Přidat novou položku + + + + Label + Popiska + + + + Address + Adresa + + + + CheckBox + CheckBox + + + + SpecialAddressBehaviorDialog + + + Special Address Behavior + Speciální chování adresy + + + + Behave as a normal address + Ať se chová jako normální adresa + + + + Behave as a pseudo-mailing-list address + Ať se chová jako adresa pseudo-mailing-listu + + + + Mail received to a pseudo-mailing-list address will be automatically broadcast to subscribers (and thus will be public). + Pošta, která přijde na adresu pseudo-mailing-listu, je automaticky rozesílána všem odběratelům (a stává se tedy veřejnou). + + + + Name of the pseudo-mailing-list: + Jméno pseudo-mailing-listu: + + + + aboutDialog + + + PyBitmessage + PyBitmessage + + + + version ? + verze ? + + + + About + O aplikaci + + + + <html><head/><body><p>Distributed under the MIT/X11 software license; see <a href="http://www.opensource.org/licenses/mit-license.php"><span style=" text-decoration: underline; color:#0000ff;">http://www.opensource.org/licenses/mit-license.php</span></a></p></body></html> + <html><head/><body><p>Distribuováno pod softwarovou licencí MIT/X11; viz <a href="http://www.opensource.org/licenses/mit-license.php"><span style=" text-decoration: underline; color:#0000ff;">http://www.opensource.org/licenses/mit-license.php</span></a></p></body></html> + + + + This is Beta software. + Toto je Beta software. + + + + <html><head/><body><p>Copyright © 2012-2013 Jonathan Warren<br/>Copyright © 2013 The Bitmessage Developers</p></body></html> + <html><head/><body><p>Copyright © 2012-2013 Jonathan Warren<br/>Copyright © 2013 Vývojáři Bitmessage</p></body></html> + + + + <html><head/><body><p>Copyright © 2012-2014 Jonathan Warren<br/>Copyright © 2013-2014 The Bitmessage Developers</p></body></html> + <html><head/><body><p>Copyright © 2012-2014 Jonathan Warren<br/>Copyright © 2013-2014 Vývojáři Bitmessage</p></body></html> + + + + connectDialog + + + Bitmessage + Bitmessage + + + + Bitmessage won't connect to anyone until you let it. + Bitmessage se k nikomu nepřipojí, dokud to nedovolíte. + + + + Connect now + Připojit nyní + + + + Let me configure special network settings first + Chci napřed upravit speciální nastavení sítě + + + + helpDialog + + + Help + Nápověda + + + + <a href="http://Bitmessage.org/wiki/PyBitmessage_Help">http://Bitmessage.org/wiki/PyBitmessage_Help</a> + <a href="http://Bitmessage.org/wiki/PyBitmessage_Help">http://Bitmessage.org/wiki/PyBitmessage_Help</a> + + + + As Bitmessage is a collaborative project, help can be found online in the Bitmessage Wiki: + Protože Bitmessage je společně tvořený projekt, nápovědu najdete na webu na Bitmessage Wiki: + + + + iconGlossaryDialog + + + Icon Glossary + Významy ikon + + + + You have no connections with other peers. + Nemáte žádná připojení k jiným uzlům. + + + + You are using TCP port ?. (This can be changed in the settings). + Používáte TCP port ?. (To lze změnit v nastavení). + + + + You do have connections with other peers and your firewall is correctly configured. + Máte připojení k jiným uzlům a Váš firewall je správně nastaven. + + + + 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't configured to forward 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. + Úspěšně jste se připojil(a) k jednomu či více uzlům pomocí odchozího spojení, ale nepřijal(a) jste žádná příchozí spojení. Váš firewall nebo domácí router pravděpodobně nemá nakonfigurováno přeposílání příchozích TCP připojení na Váš počítač. Bitmessage bude fungovat i bez toho, síti Bitmessage ale můžete pomoci, pokud povolíte příchozí připojení a stanete tak se lépe propojeným uzlem. + + + + newChanDialog + + + Dialog + Dialog + + + + Create a new chan + Vytvořit nový kanál + + + + Join a chan + Připojit se ke kanálu + + + + Create a chan + Vytvořit kanál + + + + <html><head/><body><p>Enter a name for your chan. If you choose a sufficiently complex chan name (like a strong and unique passphrase) and none of your friends share it publicly then the chan will be secure and private. If you and someone else both create a chan with the same chan name then it is currently very likely that they will be the same chan.</p></body></html> + <html><head/><body><p>Zadejte jméno pro Váš kanál. Pokud zvolíte dostatečně složité jméno (jako silné a jedinečné heslo), a nikdo z Vašich přátel ho nezveřejní, pak bude tento kanál bezpečný a soukromý. Pokud Vy a někdo další vytvoříte kanál se stejným jménem, je nyní velmi pravděpodobné, že to bude tentýž kanál.</p></body></html> + + + + Chan name: + Jméno kanálu: + + + + <html><head/><body><p>A chan exists when a group of people share the same decryption keys. The keys and bitmessage address used by a chan are generated from a human-friendly word or phrase (the chan name). To send a message to everyone in the chan, send a normal person-to-person message to the chan address.</p><p>Chans are experimental and completely unmoderatable.</p></body></html> + <html><head/><body><p>Kanál vzniká tak, že skupina lidí sdílí stejné dešifrovací klíče. Tyto klíče a adresa bitmessage, která patří k danému kanálu, jsou vygenerovány ze snadno zapamatovatelného slova nebo věty (jméno kanálu). Pokud chcete poslat zprávu všem na kanálu, pošlete normální osobní zprávu na adresu kanálu.</p><p>Kanály jsou experimentální a zcela nemoderovatelné.</p></body></html> + + + + Chan bitmessage address: + Bitmessage adresa kanálu: + + + + regenerateAddressesDialog + + + Regenerate Existing Addresses + Obnovit existující adresy + + + + Regenerate existing addresses + Obnovit existující adresy + + + + Passphrase + Heslo + + + + Number of addresses to make based on your passphrase: + Počet adres, které mají být odvozeny od Vašeho hesla: + + + + Stream number: + Číslo proudu: + + + + 1 + 1 + + + + Spend several minutes of extra computing time to make the address(es) 1 or 2 characters shorter + Strávit několik minut počítáním navíc, a vytvořit tak adresu/adresy o 1 až 2 znaky kratší + + + + You must check (or not check) this box just like you did (or didn't) when you made your addresses the first time. + Toto políčko musí zaškrtnuté/nezaškrtnué stejně, jako když jste tyto adresy vytvářel(a) poprvé. + + + + 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. + Pokud jste dříve vytvořil(a) deterministické adresy, a ztratil(a) jste je při nějaké nehodě (jako třeba selhání harddisku), můžete je zde obnovit. Pokud jste k vytvoření adres použil(a) generátor náhodných čísel, pak Vám tento formulář nijak nepomůže. + + + + Address version number: + Číslo verze adresy: + + + + settingsDialog + + + Settings + Nastavení + + + + Start Bitmessage on user login + Spustit Bitmessage po přihlášení uživatele + + + + Start Bitmessage in the tray (don't show main window) + Spustit Bitmessage v liště (neukazovat hlavní okno) + + + + Minimize to tray + Minimalizovat na lištu + + + + Show notification when message received + Zobrazit upozornění na příchozí zprávu + + + + Run in Portable Mode + Spustit v přenosném režimu + + + + 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. + V přenosném režimu jsou zprávy a konfigurační soubory ukládány ve stejném adresáři jako program, namísto normálního adresáře pro data aplikací. To se hodí, když chcete Bitmessage spouštět z USB flashdisku. + + + + User Interface + Uživatelské rozhraní + + + + Listening port + Port pro naslouchání + + + + Listen for connections on port: + Naslouchat příchozím připojením na portu: + + + + Proxy server / Tor + Proxy server / Tor + + + + Type: + Typ: + + + + none + žádný + + + + SOCKS4a + SOCKS4a + + + + SOCKS5 + SOCKS5 + + + + Server hostname: + Jméno serveru: + + + + Port: + Port: + + + + Authentication + Přihlášení + + + + Username: + Uživatelské jméno: + + + + Pass: + Heslo: + + + + Network Settings + Nastavení sítě + + + + 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. + Když Vám někdo pošle zprávu, jeho počítač musí nejprve provést určitou práci. Výchozí obtížnost práce je 1. Tuto hodnotu můžete zvýšit tím, že zvýšíte zde uvedené hodnoty. Všechny nové adresy, které vytvoříte, budou po odesilatelích vyžadovat tuto vyšší obtížnost. Existuje jedna výjimka: když si kamaráda nebo známého přidáte do adresáře, při příští zprávě, kterou mu pošlete, ho Bitmessage upozorní, že mu od teď stačí provést minimální množství práce (obtížnost 1) když Vám chce poslat zprávu. + + + + Total difficulty: + Celková obtížnost: + + + + Small message difficulty: + Obtížnost pro malou zprávu: + + + + The 'Small message difficulty' 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't really affect large messages. + "Obtížnost pro malou zprávu" ovlivňuje pouze obtížnost posílání malých zpráv. Pokud ji zdvojnásobíte, bude dvakrát obtížnější poslat malou zprávu, ale velké zprávy to nijak neovlivní. + + + + The 'Total difficulty' affects the absolute amount of work the sender must complete. Doubling this value doubles the amount of work. + "Celková obtížnost" ovlivňuje množství práce, kterou musí odesilatel provést. Zdvojnásobením této hodnoty zdvojnásobíte množství práce. + + + + Demanded difficulty + Požadovaná obtížnost + + + + Willingly include unencrypted destination address when sending to a mobile device + Přiložit nezašifrovanou cílovou adresu při posílání zprávy na mobilní zařízení + + + + Listen for incoming connections when using proxy + Naslouchat příchozím připojením při použití proxy + + + + 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. + Zde můžete nastavit maximální množství práce, které je pro Vás přijatelné, když posíláte zprávu jiné osobě. Nastavení 0 znamená, že množství není omezeno. + + + + Maximum acceptable total difficulty: + Maximální přijatelná celková obtížnost: + + + + Maximum acceptable small message difficulty: + Maximální přijatelná obtížnost pro malou zprávu: + + + + Max acceptable difficulty + Maximální přijatelná obtížnost + + + + <html><head/><body><p>Bitmessage can utilize a different Bitcoin-based program called Namecoin to make addresses human-friendly. For example, instead of having to tell your friend your long Bitmessage address, you can simply tell him to send a message to <span style=" font-style:italic;">test. </span></p><p>(Getting your own Bitmessage address into Namecoin is still rather difficult).</p><p>Bitmessage can use either namecoind directly or a running nmcontrol instance.</p></body></html> + <html><head/><body><p>Bitmessage může použít jiný program založený na technologii Bitcoin, který se jmenuje Namecoin, a nahradit tak adresy lépe čitelnými jmény. Příklad: místo toho, abyste musel(a) kamarádovi diktovat svou dlouhou adresu Bitmessage, můžete mu jednoduše říct, ať pošle zprávu na jméno <span style=" font-style:italic;">test. </span></p><p>(Vložit svou adresu Bitmessage do Namecoin je zatím stále celkem složité).</p><p>Bitmessage může použít buď přímo namecoind, nebo běžící instanci nmcontrol.</p></body></html> + + + + Host: + Server: + + + + Password: + Heslo: + + + + Test + Zkouška + + + + Connect to: + Připojit k: + + + + Namecoind + Namecoind + + + + NMControl + NMControl + + + + Namecoin integration + Integrace s Namecoin + + + + Use Identicons + Používat identikony + + + + Interface Language + Jazyk pro rozhraní + + + + System Settings + system + Dle nastavení systému + + + + English + en + English + + + + Esperanto + eo + Esperanto + + + + Français + fr + Français + + + + Deutsch + de + Deutsch + + + + Españl + es + Españl + + + + русский язык + ru + русский язык + + + + Norsk + no + Norsk + + + + Pirate English + en_pirate + Pirate English + + + + Other (set in keys.dat) + other + Jiný (nastavený v keys.dat) + + + + <html><head/><body><p>By default, if you send a message to someone and he is offline for more than two days, Bitmessage will send the message again after an additional two days. This will be continued with exponential backoff forever; messages will be resent after 5, 10, 20 days ect. until the receiver acknowledges them. Here you may change that behavior by having Bitmessage give up after a certain number of days or months.</p><p>Leave these input fields blank for the default behavior. </p></body></html> + <html><head/><body><p>Výchozí nastavení funguje tak, že když pošlete zprávu někomu, kdo je odpojen více než dva dny, Bitmessage tuto zprávu za další dva dny pošle znovu. To bude pokračovat, ale intervaly se budou exponenciálně prodlužovat; zprávy budou znovu poslány za 5, 10, 20 dní atd. dokud adresát nepotvrdí jejich přijetí. Zde můžete toto chování změnit, a nastavit, aby to Bitmessage vzdal, pokud zpráva nebude doručena do určitého počtu dní či měsíců.</p><p>Ponechte tato pole prázdná, pokud chcete použít výchozí chování. </p></body></html> + + + + Give up after + Vzdát to po + + + + and + a + + + + days + dnech + + + + months. + měsících. + + + + Resends Expire + Lhůta pro opětovné poslání + + + + Reply below Quote + Odpověď pod citací + + + + Bandwidth limit + Omezení rychlosti + + + + Maximum download rate (kB/s): [0: unlimited] + Maximální rychlost stahování (kB/s): [0: bez omezení] + + + + Maximum upload rate (kB/s): [0: unlimited] + Maximální rychlost odesílání (kB/s): [0: bez omezení] + + + -- 2.45.1 From 8b95ad1659cd9f37c1b2b8522a3932bfd96da13a Mon Sep 17 00:00:00 2001 From: Jonathan Warren Date: Thu, 25 Dec 2014 23:24:09 -0500 Subject: [PATCH 4/4] updated settings.ui file for Czech translation --- src/bitmessageqt/__init__.py | 2 +- src/bitmessageqt/settings.py | 6 +++--- src/bitmessageqt/settings.ui | 5 +++++ src/shared.py | 11 ++++++----- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index cfcc0b80..ccd158d9 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -3412,7 +3412,7 @@ class settingsDialog(QtGui.QDialog): shared.safeConfigGetBoolean('bitmessagesettings', 'replybelow')) global languages - languages = ['system','en','eo','fr','de','es','ru','no','ar','zh_cn','ja','nl','en_pirate','cs','other'] + languages = ['system','en','eo','fr','de','es','ru','no','ar','zh_cn','ja','nl','cs','en_pirate','other'] user_countrycode = str(shared.config.get('bitmessagesettings', 'userlocale')) if user_countrycode in languages: curr_index = languages.index(user_countrycode) diff --git a/src/bitmessageqt/settings.py b/src/bitmessageqt/settings.py index dbd2e521..6d854773 100644 --- a/src/bitmessageqt/settings.py +++ b/src/bitmessageqt/settings.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'settings.ui' # -# Created: Tue Sep 09 15:13:28 2014 +# Created: Thu Dec 25 23:21:20 2014 # by: PyQt4 UI code generator 4.10.3 # # WARNING! All changes made in this file will be lost! @@ -106,8 +106,8 @@ class Ui_settingsDialog(object): self.languageComboBox.addItem(_fromUtf8("")) self.languageComboBox.setItemText(11, _fromUtf8("Nederlands")) self.languageComboBox.addItem(_fromUtf8("")) + self.languageComboBox.setItemText(12, _fromUtf8("Česky")) self.languageComboBox.addItem(_fromUtf8("")) - self.languageComboBox.setItemText(13, _fromUtf8("Česky")) self.languageComboBox.addItem(_fromUtf8("")) self.formLayout_2.setWidget(0, QtGui.QFormLayout.LabelRole, self.languageComboBox) self.formLayout.setWidget(9, QtGui.QFormLayout.FieldRole, self.groupBox) @@ -444,7 +444,7 @@ class Ui_settingsDialog(object): self.checkBoxReplyBelow.setText(_translate("settingsDialog", "Reply below Quote", None)) self.groupBox.setTitle(_translate("settingsDialog", "Interface Language", None)) self.languageComboBox.setItemText(0, _translate("settingsDialog", "System Settings", "system")) - self.languageComboBox.setItemText(12, _translate("settingsDialog", "Pirate English", "en_pirate")) + self.languageComboBox.setItemText(13, _translate("settingsDialog", "Pirate English", "en_pirate")) self.languageComboBox.setItemText(14, _translate("settingsDialog", "Other (set in keys.dat)", "other")) self.tabWidgetSettings.setTabText(self.tabWidgetSettings.indexOf(self.tabUserInterface), _translate("settingsDialog", "User Interface", None)) self.groupBox1.setTitle(_translate("settingsDialog", "Listening port", None)) diff --git a/src/bitmessageqt/settings.ui b/src/bitmessageqt/settings.ui index 14749d5e..a41d7e4e 100644 --- a/src/bitmessageqt/settings.ui +++ b/src/bitmessageqt/settings.ui @@ -186,6 +186,11 @@ Nederlands + + + Česky + + Pirate English diff --git a/src/shared.py b/src/shared.py index 8f4be2ff..1de8708f 100644 --- a/src/shared.py +++ b/src/shared.py @@ -852,15 +852,16 @@ def writeKeysFile(): # create a backup copy to prevent the accidental loss due to the disk write failure try: shutil.copyfile(fileName, fileNameBak) - # The backup succeeded. This can fail if the file didn't exist before. - existingFileNameExisted = True + # The backup succeeded. + fileNameExisted = True except: - existingFileNameExisted = False + # The backup failed. This can happen if the file didn't exist before. + fileNameExisted = False # write the file with open(fileName, 'wb') as configfile: shared.config.write(configfile) - # delete a backup - if existingFileNameExisted: + # delete the backup + if fileNameExisted: os.remove(fileNameBak) from debug import logger -- 2.45.1