Rename Bitcoin to Palladium in UI and codebase

Update all references to "Bitcoin" and "Electrum" in the UI and codebase to "Palladium" and "Pallectrum" respectively. This includes network names, wallet types, error messages, and other user-facing text. Also updates the BIP21 URI scheme from 'bitcoin' to 'palladium'.
This commit is contained in:
2025-11-23 22:09:21 +01:00
parent d9dc3fe30c
commit 64b88fbded
17 changed files with 29 additions and 55 deletions

View File

@@ -6,7 +6,7 @@ import QtQuick.Controls.Material
Pane {
objectName: 'About'
property string title: qsTr("About Electrum")
property string title: qsTr("About Pallectrum")
Flickable {
anchors.fill: parent
@@ -67,32 +67,6 @@ Pane {
Label {
text: qsTr('MIT License')
}
Label {
text: qsTr('Homepage')
Layout.alignment: Qt.AlignRight
}
Label {
text: qsTr('<a href="https://electrum.org">https://electrum.org</a>')
textFormat: Text.RichText
onLinkActivated: Qt.openUrlExternally(link)
}
Label {
text: qsTr('Developers')
Layout.alignment: Qt.AlignRight
}
Label {
text: 'Thomas Voegtlin\nSomberNight\nSander van Grieken'
}
Item {
width: 1
height: constants.paddingXLarge
Layout.columnSpan: 2
}
Label {
text: qsTr('Distributed by Electrum Technologies GmbH')
Layout.columnSpan: 2
Layout.alignment: Qt.AlignHCenter
}
}
}

View File

@@ -41,7 +41,7 @@ Pane {
visible: Daemon.currentWallet.synchronizing || !Network.isConnected
text: Daemon.currentWallet.synchronizing
? qsTr('Your wallet is not synchronized. The displayed balance may be inaccurate.')
: qsTr('Your wallet is not connected to an Electrum server. The displayed balance may be outdated.')
: qsTr('Your wallet is not connected to a Palladium server. The displayed balance may be outdated.')
iconStyle: InfoTextArea.IconStyle.Warn
}

View File

@@ -120,7 +120,7 @@ ElDialog {
text_qr: dialog.channelBackup,
text_help: qsTr('The channel you created is not recoverable from seed.')
+ ' ' + qsTr('To prevent fund losses, please save this backup on another device.')
+ ' ' + qsTr('It may be imported in another Electrum wallet with the same seed.')
+ ' ' + qsTr('It may be imported in another Pallectrum wallet with the same seed.')
})
sharedialog.open()
}

View File

@@ -42,7 +42,7 @@ ElDialog
Label {
Layout.fillWidth: true
text: qsTr('Something went wrong while executing Electrum.')
text: qsTr('Something went wrong while executing Pallectrum.')
}
Label {
Layout.fillWidth: true

View File

@@ -45,7 +45,7 @@ ElDialog {
visible: !Daemon.currentWallet.lightningHasDeterministicNodeId
iconStyle: InfoTextArea.IconStyle.Warn
text: Daemon.currentWallet.seedType == 'segwit'
? [ qsTr('Your channels cannot be recovered from seed, because they were created with an old version of Electrum.'), ' ',
? [ qsTr('Your channels cannot be recovered from seed, because they were created with an old version of Pallectrum.'), ' ',
qsTr('This means that you must save a backup of your wallet every time you create a new channel.'),
'\n\n',
qsTr('If you want this wallet to have recoverable channels, you must close your existing channels and restore this wallet from seed.')
@@ -53,7 +53,7 @@ ElDialog {
: [ qsTr('Your channels cannot be recovered from seed.'), ' ',
qsTr('This means that you must save a backup of your wallet every time you create a new channel.'),
'\n\n',
qsTr('If you want to have recoverable channels, you must create a new wallet with an Electrum seed')
qsTr('If you want to have recoverable channels, you must create a new wallet with a Pallectrum seed')
].join('')
}

View File

@@ -55,7 +55,7 @@ Pane {
if (Config.language != currentValue) {
Config.language = currentValue
var dialog = app.messageDialog.createObject(app, {
text: qsTr('Please restart Electrum to activate the new GUI settings')
text: qsTr('Please restart Pallectrum to activate the new GUI settings')
})
dialog.open()
}
@@ -89,7 +89,7 @@ Pane {
}
Label {
Layout.fillWidth: true
text: qsTr('Add thousands separators to bitcoin amounts')
text: qsTr('Add thousands separators to palladium amounts')
wrapMode: Text.Wrap
}
}
@@ -358,7 +358,7 @@ Pane {
if (!checked) {
var dialog = app.messageDialog.createObject(app, {
title: qsTr('Are you sure?'),
text: qsTr('Electrum will have to download the Lightning Network graph, which is not recommended on mobile.'),
text: qsTr('Pallectrum will have to download the Lightning Network graph, which is not recommended on mobile.'),
yesno: true
})
dialog.accepted.connect(function() {

View File

@@ -69,7 +69,7 @@ ElDialog {
HelpButton {
heading: qsTr('Sweep private keys')
helptext: qsTr('This will create a transaction sending all funds associated with the private keys to the current wallet') +
'<br/><br/>' + qsTr('WIF keys are typed in Electrum, based on script type.') + '<br/><br/>' +
'<br/><br/>' + qsTr('WIF keys are typed in Pallectrum, based on script type.') + '<br/><br/>' +
qsTr('A few examples') + ':<br/>' +
'<tt><b>p2pkh</b>:KxZcY47uGp9a... \t-> 1DckmggQM...<br/>' +
'<b>p2wpkh-p2sh</b>:KxZcY47uGp9a... \t-> 3NhNeZQXF...<br/>' +

View File

@@ -615,7 +615,7 @@ ApplicationWindow
stack.pop()
} else {
var dialog = app.messageDialog.createObject(app, {
title: qsTr('Close Electrum?'),
title: qsTr('Close Pallectrum?'),
yesno: true
})
dialog.accepted.connect(function() {

View File

@@ -50,15 +50,15 @@ WizardComponent {
var t = {
'electrum': [
// not shown as electrum is the default seed type anyways and the name is self-explanatory
qsTr('Electrum seeds are the default seed type.'),
qsTr('If you are restoring from a seed previously created by Electrum, choose this option')
qsTr('Pallectrum seeds are the default seed type.'),
qsTr('If you are restoring from a seed previously created by Pallectrum, choose this option')
].join(' '),
'bip39': [
qsTr('BIP39 seeds can be imported in Electrum, so that users can access funds locked in other wallets.'),
qsTr('BIP39 seeds can be imported in Pallectrum, so that users can access funds locked in other wallets.'),
qsTr('BIP39 seeds do not include a version number, which compromises compatibility with future software.'),
].join(' '),
'slip39': [
qsTr('SLIP39 seeds can be imported in Electrum, so that users can access funds locked in other wallets.'),
qsTr('SLIP39 seeds can be imported in Pallectrum, so that users can access funds locked in other wallets.'),
].join(' ')
}
infotext.text = t[seed_variant_cb.currentValue]

View File

@@ -29,7 +29,7 @@ WizardComponent {
height: parent.height
InfoTextArea {
Layout.preferredWidth: parent.width
text: qsTr('Enter a list of Bitcoin addresses (this will create a watching-only wallet), or a list of private keys.')
text: qsTr('Enter a list of Palladium addresses (this will create a watching-only wallet), or a list of private keys.')
}
RowLayout {

View File

@@ -71,15 +71,15 @@ WizardComponent {
var scripttype = scripttypegroup.checkedButton.scripttype
if (isMultisig) {
if (scripttype == 'p2sh')
derivationpathtext.text = "m/" + p[scripttype] + "'/0"
derivationpathtext.text = "m/" + p[scripttype] + "'/746'"
else
derivationpathtext.text = "m/" + p[scripttype] + "'/"
+ (Network.isTestNet ? 1 : 0) + "'/0'/"
+ (Network.isTestNet ? 1 : 746) + "'/0'/"
+ (scripttype == 'p2wsh' ? 2 : 1) + "'"
} else {
derivationpathtext.text =
"m/" + p[scripttypegroup.checkedButton.scripttype] + "'/"
+ (Network.isTestNet ? 1 : 0) + "'/0'"
+ (Network.isTestNet ? 1 : 746) + "'/0'"
}
}

View File

@@ -55,7 +55,7 @@ WizardComponent {
Layout.fillWidth: true
ButtonGroup.group: wallettypegroup
property string wallettype: 'imported'
text: qsTr('Import Bitcoin addresses or private keys')
text: qsTr('Import Palladium addresses or private keys')
}
}
}

View File

@@ -47,7 +47,7 @@ WizardComponent {
Label {
Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: parent.width
text: qsTr("If you are unsure what this is, leave them unchecked and Electrum will automatically select servers.")
text: qsTr("If you are unsure what this is, leave them unchecked and Pallectrum will automatically select servers.")
wrapMode: Text.WordWrap
horizontalAlignment: Text.AlignHLeft
font.pixelSize: constants.fontSizeMedium

View File

@@ -17,7 +17,7 @@ import electrum
from electrum import version, constants
from electrum.i18n import _
from electrum.logging import Logger, get_logger
from electrum.bip21 import BITCOIN_BIP21_URI_SCHEME, LIGHTNING_URI_SCHEME
from electrum.bip21 import PALLADIUM_BIP21_URI_SCHEME, LIGHTNING_URI_SCHEME
from electrum.base_crash_reporter import BaseCrashReporter, EarlyExceptionsQueue
from electrum.network import Network
from electrum.plugin import run_hook
@@ -175,7 +175,7 @@ class QEAppController(BaseCrashReporter, QObject):
global notification
if not notification:
from plyer import notification
notification.notify('Electrum', message, app_icon=icon, app_name='Electrum')
notification.notify('Pallectrum', message, app_icon=icon, app_name='Pallectrum')
except ImportError:
self.logger.warning('Notification: needs plyer; `python3 -m pip install plyer`')
except Exception as e:
@@ -234,7 +234,7 @@ class QEAppController(BaseCrashReporter, QObject):
data = str(intent.getDataString())
self.logger.debug(f'received intent: {repr(data)}')
scheme = str(intent.getScheme()).lower()
if scheme == BITCOIN_BIP21_URI_SCHEME or scheme == LIGHTNING_URI_SCHEME:
if scheme == PALLADIUM_BIP21_URI_SCHEME or scheme == LIGHTNING_URI_SCHEME:
self.uriReceived.emit(data)
def startup_finished(self):

View File

@@ -257,7 +257,7 @@ class QENetwork(QObject, QtEventListener):
@pyqtProperty(str, notify=dataChanged)
def networkName(self):
return constants.net.__name__.replace('Bitcoin', '')
return constants.net.__name__.replace('Bitcoin', 'Palladium')
@pyqtProperty('QVariantMap', notify=proxyChanged)
def proxy(self):

View File

@@ -144,7 +144,7 @@ class QEQRImageProvider(QQuickImageProvider):
# (unknown schemes might be found when a colon is in a serialized TX, which
# leads to mangling of the tx, so we check for supported schemes.)
uri = urllib.parse.urlparse(qstr)
if uri.scheme and uri.scheme in ['bitcoin', 'lightning']:
if uri.scheme and uri.scheme in ['palladium', 'lightning']:
# urlencode request parameters
query = urllib.parse.parse_qs(uri.query)
query = urllib.parse.urlencode(query, doseq=True, quote_via=urllib.parse.quote)

View File

@@ -153,7 +153,7 @@ class ElectrumGui(BaseElectrumGui, Logger):
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_ShareOpenGLContexts)
if hasattr(QGuiApplication, 'setDesktopFileName'):
QGuiApplication.setDesktopFileName('electrum')
QGuiApplication.setApplicationName("Electrum")
QGuiApplication.setApplicationName("Pallectrum")
self.gui_thread = threading.current_thread()
self.windows = [] # type: List[ElectrumWindow]
self.open_file_efilter = OpenFileEventFilter(self.windows)
@@ -183,7 +183,7 @@ class ElectrumGui(BaseElectrumGui, Logger):
def _init_tray(self):
self.tray = QSystemTrayIcon(self.tray_icon(), None)
self.tray.setToolTip('Electrum')
self.tray.setToolTip('Pallectrum')
self.tray.activated.connect(self.tray_activated)
self.build_tray_menu()
self.tray.show()
@@ -238,7 +238,7 @@ class ElectrumGui(BaseElectrumGui, Logger):
submenu.addAction(_("Close"), window.close)
m.addAction(_("Dark/Light"), self.toggle_tray_icon)
m.addSeparator()
m.addAction(_("Exit Electrum"), self.app.quit)
m.addAction(_("Exit Pallectrum"), self.app.quit)
def tray_icon(self):
if self.dark_icon: