diff --git a/gui/kivy/main_window.py b/gui/kivy/main_window.py index 28fc7cd0..eae1343a 100644 --- a/gui/kivy/main_window.py +++ b/gui/kivy/main_window.py @@ -241,7 +241,7 @@ class ElectrumWindow(App): App.__init__(self)#, **kwargs) - title = _('Electrum App') + title = _('Zclassic Electrum') self.electrum_config = config = kwargs.get('config', None) self.language = config.get('language', 'en') self.network = network = kwargs.get('network', None) @@ -282,16 +282,16 @@ class ElectrumWindow(App): self.invoices_screen.update() status = self.wallet.invoices.get_status(key) if status == PR_PAID: - self.show_error("invoice already paid") + self.show_error("Invoice already paid") self.send_screen.do_clear() else: if pr.has_expired(): - self.show_error(_('Payment request has expired')) + self.show_error(_('Payment request has expired.')) else: self.switch_to('send') self.send_screen.set_request(pr) else: - self.show_error("invoice error:" + pr.error) + self.show_error("Invoice error:" + pr.error) self.send_screen.do_clear() def on_qr(self, data): diff --git a/gui/kivy/uix/screens.py b/gui/kivy/uix/screens.py index 14e38a3f..aa6bc687 100644 --- a/gui/kivy/uix/screens.py +++ b/gui/kivy/uix/screens.py @@ -244,7 +244,7 @@ class SendScreen(CScreen): def do_send(self): if self.screen.is_pr: if self.payment_request.has_expired(): - self.app.show_error(_('Payment request has expired')) + self.app.show_error(_('Payment request has expired.')) return outputs = self.payment_request.get_outputs() else: @@ -258,7 +258,7 @@ class SendScreen(CScreen): try: amount = self.app.get_amount(self.screen.amount) except: - self.app.show_error(_('Invalid amount') + ':\n' + self.screen.amount) + self.app.show_error(_('Invalid Amount') + ':\n' + self.screen.amount) return outputs = [(bitcoin.TYPE_ADDRESS, address, amount)] message = self.screen.message @@ -322,7 +322,7 @@ class ReceiveScreen(CScreen): self.get_new_address() else: status = self.app.wallet.get_request_status(self.screen.address) - self.screen.status = _('Payment received') if status == PR_PAID else '' + self.screen.status = _('Payment Received') if status == PR_PAID else '' def clear(self): self.screen.address = '' @@ -350,7 +350,7 @@ class ReceiveScreen(CScreen): amount = req.get('amount') self.screen.amount = self.app.format_amount_and_units(amount) if amount else '' status = req.get('status', PR_UNKNOWN) - self.screen.status = _('Payment received') if status == PR_PAID else '' + self.screen.status = _('Payment Received') if status == PR_PAID else '' Clock.schedule_once(lambda dt: self.update_qr()) def get_URI(self): diff --git a/gui/kivy/uix/ui_screens/invoice.kv b/gui/kivy/uix/ui_screens/invoice.kv index d3d4a179..4b429891 100644 --- a/gui/kivy/uix/ui_screens/invoice.kv +++ b/gui/kivy/uix/ui_screens/invoice.kv @@ -34,10 +34,10 @@ Popup: text: (_('Status') if popup.amount or popup.is_invoice or popup.isaddr == 'y' else _('Amount received')) if root.status else '' value: root.status BoxLabel: - text: _('Request amount') if root.amount else '' + text: _('Request Amount') if root.amount else '' value: app.format_amount_and_units(root.amount) if root.amount else '' BoxLabel: - text: _('Requestor') if popup.is_invoice else _('Address') + text: _('Requested By') if popup.is_invoice else _('Address') value: root.requestor BoxLabel: text: _('Signature') if root.signature else '' diff --git a/gui/qt/address_list.py b/gui/qt/address_list.py index 2310489b..b78793ec 100644 --- a/gui/qt/address_list.py +++ b/gui/qt/address_list.py @@ -50,7 +50,7 @@ class AddressList(MyTreeWidget): self.used_button.addItem(t) def get_list_header(self): - return QLabel(_("Filter:")), self.change_button, self.used_button + return QLabel(_("Filter ")), self.change_button, self.used_button def refresh_headers(self): headers = [ _('Address'), _('Label'), _('Balance')] diff --git a/gui/qt/installwizard.py b/gui/qt/installwizard.py index 64bc3e05..4b3e8aea 100644 --- a/gui/qt/installwizard.py +++ b/gui/qt/installwizard.py @@ -22,7 +22,7 @@ from .password_dialog import PasswordLayout, PW_NEW class GoBack(Exception): pass -MSG_GENERATING_WAIT = _("Electrum is generating your addresses, please wait...") +MSG_GENERATING_WAIT = _("Generating your addresses, please wait...") MSG_ENTER_ANYTHING = _("Please enter a seed phrase, a master key, a list of " "Zclassic addresses, or a list of private keys") MSG_ENTER_SEED_OR_MPK = _("Please enter a seed phrase or a master key (xpub or xprv):") @@ -102,7 +102,7 @@ class InstallWizard(QDialog, MessageBoxMixin, BaseWizard): def __init__(self, config, app, plugins, storage): BaseWizard.__init__(self, config, storage) QDialog.__init__(self, None) - self.setWindowTitle('Electrum - ' + _('Install Wizard')) + self.setWindowTitle('Zclassic Electrum - ' + _('Install Wizard')) self.app = app self.config = config # Set for base base class @@ -174,7 +174,7 @@ class InstallWizard(QDialog, MessageBoxMixin, BaseWizard): hbox2.addWidget(self.pw_e) hbox2.addStretch() vbox.addLayout(hbox2) - self.set_layout(vbox, title=_('Electrum wallet')) + self.set_layout(vbox, title=_('Zclassic Electrum Wallet')) wallet_folder = os.path.dirname(self.storage.path) diff --git a/gui/qt/invoice_list.py b/gui/qt/invoice_list.py index 761ac408..997f7262 100644 --- a/gui/qt/invoice_list.py +++ b/gui/qt/invoice_list.py @@ -29,10 +29,10 @@ from electrum.util import format_time class InvoiceList(MyTreeWidget): - filter_columns = [0, 1, 2, 3] # Date, Requestor, Description, Amount + filter_columns = [0, 1, 2, 3] # Date, Requested By, Description, Amount def __init__(self, parent): - MyTreeWidget.__init__(self, parent, self.create_menu, [_('Expires'), _('Requestor'), _('Description'), _('Amount'), _('Status')], 2) + MyTreeWidget.__init__(self, parent, self.create_menu, [_('Expires'), _('Requested By'), _('Description'), _('Amount'), _('Status')], 2) self.setSortingEnabled(True) self.header().setSectionResizeMode(1, QHeaderView.Interactive) self.setColumnWidth(1, 200) diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py index d57c8ba5..8c54c942 100644 --- a/gui/qt/main_window.py +++ b/gui/qt/main_window.py @@ -447,10 +447,10 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): menubar = QMenuBar() file_menu = menubar.addMenu(_("&File")) - self.recently_visited_menu = file_menu.addMenu(_("&Recently open")) + self.recently_visited_menu = file_menu.addMenu(_("&Recently Opened")) file_menu.addAction(_("&Open"), self.open_wallet).setShortcut(QKeySequence.Open) file_menu.addAction(_("&New/Restore"), self.new_wallet).setShortcut(QKeySequence.New) - file_menu.addAction(_("&Save Copy"), self.backup_wallet).setShortcut(QKeySequence.SaveAs) + file_menu.addAction(_("&Backup Wallet"), self.backup_wallet).setShortcut(QKeySequence.SaveAs) file_menu.addAction(_("Delete"), self.remove_wallet) file_menu.addSeparator() file_menu.addAction(_("&Quit"), self.close) @@ -460,11 +460,11 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): wallet_menu.addSeparator() self.password_menu = wallet_menu.addAction(_("&Password"), self.change_password_dialog) self.seed_menu = wallet_menu.addAction(_("&Seed"), self.show_seed_dialog) - self.private_keys_menu = wallet_menu.addMenu(_("&Private keys")) + self.private_keys_menu = wallet_menu.addMenu(_("&Private Keys")) self.private_keys_menu.addAction(_("&Sweep"), self.sweep_key_dialog) self.import_privkey_menu = self.private_keys_menu.addAction(_("&Import"), self.do_import_privkey) self.export_menu = self.private_keys_menu.addAction(_("&Export"), self.export_privkeys_dialog) - self.import_address_menu = wallet_menu.addAction(_("Import addresses"), self.import_addresses) + self.import_address_menu = wallet_menu.addAction(_("Import Addresses"), self.import_addresses) wallet_menu.addSeparator() labels_menu = wallet_menu.addMenu(_("&Labels")) @@ -496,21 +496,21 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): tools_menu = menubar.addMenu(_("&Tools")) # Settings / Preferences are all reserved keywords in OSX using this as work around - tools_menu.addAction(_("Electrum preferences") if sys.platform == 'darwin' else _("Preferences"), self.settings_dialog) + tools_menu.addAction(_("Electrum Preferences") if sys.platform == 'darwin' else _("Preferences"), self.settings_dialog) tools_menu.addAction(_("&Network"), lambda: self.gui_object.show_network_dialog(self)) tools_menu.addAction(_("&Plugins"), self.plugins_dialog) tools_menu.addSeparator() - tools_menu.addAction(_("&Sign/verify message"), self.sign_verify_message) - tools_menu.addAction(_("&Encrypt/decrypt message"), self.encrypt_message) + tools_menu.addAction(_("&Sign/Verify Message"), self.sign_verify_message) + tools_menu.addAction(_("&Encrypt/Decrypt Message"), self.encrypt_message) tools_menu.addSeparator() - paytomany_menu = tools_menu.addAction(_("&Pay to many"), self.paytomany) + paytomany_menu = tools_menu.addAction(_("&Pay Multiple Addresses"), self.paytomany) - raw_transaction_menu = tools_menu.addMenu(_("&Load transaction")) - raw_transaction_menu.addAction(_("&From file"), self.do_process_from_file) - raw_transaction_menu.addAction(_("&From text"), self.do_process_from_text) - raw_transaction_menu.addAction(_("&From the blockchain"), self.do_process_from_txid) - raw_transaction_menu.addAction(_("&From QR code"), self.read_tx_from_qrcode) + raw_transaction_menu = tools_menu.addMenu(_("&Load Transaction")) + raw_transaction_menu.addAction(_("&From File"), self.do_process_from_file) + raw_transaction_menu.addAction(_("&From Text"), self.do_process_from_text) + raw_transaction_menu.addAction(_("&From the Blockchain"), self.do_process_from_txid) + raw_transaction_menu.addAction(_("&From QR Code"), self.read_tx_from_qrcode) self.raw_transaction_menu = raw_transaction_menu run_hook('init_menubar_tools', self, tools_menu) @@ -570,7 +570,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): self.tx_notifications.remove(tx) is_relevant, is_mine, v, fee = self.wallet.get_wallet_delta(tx) if(v > 0): - self.notify(_("New transaction received: %(amount)s") % { 'amount' : self.format_amount_and_units(v)}) + self.notify(_("Inbound Transaction - %(amount)s") % { 'amount' : self.format_amount_and_units(v)}) def notify(self, message): if self.tray: @@ -1363,7 +1363,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): def read_send_tab(self): if self.payment_request and self.payment_request.has_expired(): - self.show_error(_('Payment request has expired')) + self.show_error(_('Payment request has expired.')) return label = self.message_e.text() @@ -1372,7 +1372,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): else: errors = self.payto_e.get_errors() if errors: - self.show_warning(_("Invalid Lines found:") + "\n\n" + '\n'.join([ _("Line #") + str(x[0]+1) + ": " + x[1] for x in errors])) + self.show_warning(_("Invalid lines found:") + "\n\n" + '\n'.join([ _("Line #") + str(x[0]+1) + ": " + x[1] for x in errors])) return outputs = self.payto_e.get_outputs(self.is_max) @@ -1384,12 +1384,12 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): return if not outputs: - self.show_error(_('No outputs')) + self.show_error(_('No Recipients')) return for _type, addr, amount in outputs: if addr is None: - self.show_error(_('Zclassic Address is None')) + self.show_error(_('No Zclassic Address')) return if _type == TYPE_ADDRESS and not bitcoin.is_address(addr): self.show_error(_('Invalid Zclassic Address')) @@ -1508,7 +1508,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): pr = self.payment_request if pr and pr.has_expired(): self.payment_request = None - return False, _("Payment request has expired") + return False, _("Payment request has expired.") status, msg = self.network.broadcast(tx) if pr and status is True: self.invoices.set_paid(pr, tx.txid()) @@ -1754,7 +1754,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): d = WindowModalDialog(self, _("Invoice")) vbox = QVBoxLayout(d) grid = QGridLayout() - grid.addWidget(QLabel(_("Requestor") + ':'), 0, 0) + grid.addWidget(QLabel(_("Requested By") + ':'), 0, 0) grid.addWidget(QLabel(pr.get_requestor()), 0, 1) grid.addWidget(QLabel(_("Amount") + ':'), 1, 0) outputs_str = '\n'.join(map(lambda x: self.format_amount(x[2])+ self.base_unit() + ' @ ' + x[1], pr.get_outputs())) @@ -2338,7 +2338,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): f.write(json.dumps(pklist, indent = 4)) def do_import_labels(self): - labelsFile = self.getOpenFileName(_("Open labels file"), "*.json") + labelsFile = self.getOpenFileName(_("Open Labels File"), "*.json") if not labelsFile: return try: with open(labelsFile, 'r') as f: @@ -2354,7 +2354,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): def do_export_labels(self): labels = self.wallet.labels try: - fileName = self.getSaveFileName(_("Select file to save your labels"), 'electrum_labels.json', "*.json") + fileName = self.getSaveFileName(_("Select destination file for your labels:"), 'electrum_labels.json', "*.json") if fileName: with open(fileName, 'w+') as f: json.dump(labels, f, indent=4, sort_keys=True) @@ -2367,7 +2367,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): d.setMinimumSize(400, 200) vbox = QVBoxLayout(d) defaultname = os.path.expanduser('~/electrum-history.csv') - select_msg = _('Select file to export your wallet transactions to') + select_msg = _('Select destination file for your wallet transaction history:') hbox, filename_e, csv_button = filename_field(self, self.config, defaultname, select_msg) vbox.addLayout(hbox) vbox.addStretch(1) @@ -2515,14 +2515,14 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): def import_addresses(self): if not self.wallet.can_import_address(): return - title, msg = _('Import addresses'), _("Enter addresses") + title, msg = _('Import Addresses'), _("Enter addresses") self._do_import(title, msg, self.wallet.import_address) @protected def do_import_privkey(self, password): if not self.wallet.can_import_privkey(): return - title, msg = _('Import private keys'), _("Enter private keys") + title, msg = _('Import Private Keys'), _("Enter private keys") self._do_import(title, msg, lambda x: self.wallet.import_private_key(x, password)) def update_fiat(self): @@ -2691,8 +2691,8 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): gui_widgets.append((unit_label, unit_combo)) block_explorers = sorted(util.block_explorer_info().keys()) - msg = _('Choose which online block explorer to use for functions that open a web browser') - block_ex_label = HelpLabel(_('Online Block Explorer') + ':', msg) + msg = _('Choose which block explorer to use for transaction info') + block_ex_label = HelpLabel(_('Block Explorer') + ':', msg) block_ex_combo = QComboBox() block_ex_combo.addItems(block_explorers) block_ex_combo.setCurrentIndex(block_ex_combo.findText(util.block_explorer(self.config))) diff --git a/gui/qt/network_dialog.py b/gui/qt/network_dialog.py index 28daf14c..13ad6522 100644 --- a/gui/qt/network_dialog.py +++ b/gui/qt/network_dialog.py @@ -66,7 +66,7 @@ class NodesListWidget(QTreeWidget): def __init__(self, parent): QTreeWidget.__init__(self) self.parent = parent - self.setHeaderLabels([_('Connected node'), _('Height')]) + self.setHeaderLabels([_('Connected Node'), _('Height')]) self.setContextMenuPolicy(Qt.CustomContextMenu) self.customContextMenuRequested.connect(self.create_menu) @@ -223,8 +223,8 @@ class NetworkChoiceLayout(object): grid.addWidget(self.server_host, 1, 1, 1, 2) grid.addWidget(self.server_port, 1, 3) - label = _('Server peers') if network.is_connected() else _('Default Servers') - grid.addWidget(QLabel(label), 2, 0, 1, 5) + label = _('Server Peers') if network.is_connected() else _('Default Servers') + grid.addWidget(QLabel(label + ':'), 2, 0, 1, 5) self.servers_list = ServerListWidget(self) grid.addWidget(self.servers_list, 3, 0, 1, 5) @@ -233,7 +233,7 @@ class NetworkChoiceLayout(object): grid.setSpacing(8) # proxy setting - self.proxy_cb = QCheckBox(_('Use proxy')) + self.proxy_cb = QCheckBox(_('Use Proxy')) self.proxy_cb.clicked.connect(self.check_disable_proxy) self.proxy_cb.clicked.connect(self.set_proxy) diff --git a/gui/qt/transaction_dialog.py b/gui/qt/transaction_dialog.py index c93fee15..dc201bb4 100644 --- a/gui/qt/transaction_dialog.py +++ b/gui/qt/transaction_dialog.py @@ -206,7 +206,7 @@ class TxDialog(QDialog, MessageBoxMixin): else: amount_str = _("Amount sent:") + ' %s'% format_amount(-amount) + ' ' + base_unit size_str = _("Size:") + ' %d bytes'% size - fee_str = _("Fee") + ': %s'% (format_amount(fee) + ' ' + base_unit if fee is not None else _('unknown')) + fee_str = _("Fee") + ': %s'% (format_amount(fee) + ' ' + base_unit if fee is not None else _('Unknown')) if fee is not None: fee_str += ' ( %s ) '% self.main_window.format_fee_rate(fee/size*1000) self.amount_label.setText(amount_str) @@ -254,7 +254,7 @@ class TxDialog(QDialog, MessageBoxMixin): if _addr: addr = _addr if addr is None: - addr = _('unknown') + addr = _('Unknown') cursor.insertText(addr, text_format(addr)) if x.get('value'): cursor.insertText(format_amount(x['value']), ext) diff --git a/gui/qt/util.py b/gui/qt/util.py index 2d2626a1..1fa9d0c1 100644 --- a/gui/qt/util.py +++ b/gui/qt/util.py @@ -222,7 +222,7 @@ class WaitingDialog(WindowModalDialog): assert parent if isinstance(parent, MessageBoxMixin): parent = parent.top_level_window() - WindowModalDialog.__init__(self, parent, _("Please wait")) + WindowModalDialog.__init__(self, parent, _("Please wait...")) vbox = QVBoxLayout(self) vbox.addWidget(QLabel(message)) self.accepted.connect(self.on_accepted) @@ -326,13 +326,13 @@ def address_field(addresses): def filename_field(parent, config, defaultname, select_msg): vbox = QVBoxLayout() - vbox.addWidget(QLabel(_("Format"))) + vbox.addWidget(QLabel(_("Export Format"))) gb = QGroupBox("format", parent) b1 = QRadioButton(gb) b1.setText(_("CSV")) b1.setChecked(True) b2 = QRadioButton(gb) - b2.setText(_("json")) + b2.setText(_("JSON")) vbox.addWidget(b1) vbox.addWidget(b2) diff --git a/lib/exchange_rate.py b/lib/exchange_rate.py index cda60480..bb095776 100644 --- a/lib/exchange_rate.py +++ b/lib/exchange_rate.py @@ -13,13 +13,15 @@ from .util import PrintError, ThreadJob # See https://en.wikipedia.org/wiki/ISO_4217 -CCY_PRECISIONS = {'BHD': 3, 'BIF': 0, 'BYR': 0, 'CLF': 4, 'CLP': 0, - 'CVE': 0, 'DJF': 0, 'GNF': 0, 'IQD': 3, 'ISK': 0, - 'JOD': 3, 'JPY': 0, 'KMF': 0, 'KRW': 0, 'KWD': 3, - 'LYD': 3, 'MGA': 1, 'MRO': 1, 'OMR': 3, 'PYG': 0, - 'RWF': 0, 'TND': 3, 'UGX': 0, 'UYI': 0, 'VND': 0, - 'VUV': 0, 'XAF': 0, 'XAU': 4, 'XOF': 0, 'XPF': 0} - +CCY_PRECISIONS = {} +''' +{'BHD': 3, 'BIF': 0, 'BYR': 0, 'CLF': 4, 'CLP': 0, +'CVE': 0, 'DJF': 0, 'GNF': 0, 'IQD': 3, 'ISK': 0, +'JOD': 3, 'JPY': 0, 'KMF': 0, 'KRW': 0, 'KWD': 3, +'LYD': 3, 'MGA': 1, 'MRO': 1, 'OMR': 3, 'PYG': 0, +'RWF': 0, 'TND': 3, 'UGX': 0, 'UYI': 0, 'VND': 0, +'VUV': 0, 'XAF': 0, 'XAU': 4, 'XOF': 0, 'XPF': 0} +''' class ExchangeBase(PrintError): diff --git a/lib/util.py b/lib/util.py index 30ca761a..8ea37784 100644 --- a/lib/util.py +++ b/lib/util.py @@ -347,7 +347,7 @@ def format_satoshis_plain(x, decimal_point = 8): def format_satoshis(x, is_diff=False, num_zeros = 0, decimal_point = 8, whitespaces=False): from locale import localeconv if x is None: - return 'unknown' + return 'Unknown' x = int(x) # Some callers pass Decimal scale_factor = pow (10, decimal_point) integer_part = "{:n}".format(int(abs(x) / scale_factor)) diff --git a/lib/wallet.py b/lib/wallet.py index 3a3ed8f8..5ef95ce5 100644 --- a/lib/wallet.py +++ b/lib/wallet.py @@ -519,7 +519,7 @@ class Abstract_Wallet(PrintError): if conf: status = _("%d confirmations") % conf else: - status = _('Not verified') + status = _('Not Verified') else: status = _('Unconfirmed') if fee is None: @@ -534,7 +534,7 @@ class Abstract_Wallet(PrintError): can_broadcast = self.network is not None else: s, r = tx.signature_count() - status = _("Unsigned") if s == 0 else _('Partially signed') + ' (%d/%d)'%(s,r) + status = _("Unsigned") if s == 0 else _('Partially Signed') + ' (%d/%d)'%(s,r) if is_relevant: if is_mine: @@ -835,7 +835,7 @@ class Abstract_Wallet(PrintError): if conf == 0: tx = self.transactions.get(tx_hash) if not tx: - return 3, 'unknown' + return 3, 'Unknown' is_final = tx and tx.is_final() fee = self.tx_fees.get(tx_hash) if fee and self.network and self.network.config.has_fee_estimates(): @@ -856,7 +856,7 @@ class Abstract_Wallet(PrintError): status = 4 else: status = 4 + min(conf, 6) - time_str = format_time(timestamp) if timestamp else _("unknown") + time_str = format_time(timestamp) if timestamp else _("Unknown") status_str = TX_STATUS[status] if status < 5 else time_str return status, status_str