chore: run translation scripts
This commit is contained in:
parent
b277346490
commit
0e699cac65
|
@ -51,12 +51,15 @@ ModalPopup {
|
|||
function validate() {
|
||||
urlError = ""
|
||||
if (!urlInput.text) {
|
||||
urlError = qsTr("Please enter a URL")
|
||||
//% "Please enter a URL"
|
||||
urlError = qsTrId("please-enter-a-url")
|
||||
} else if (!Utils.isURL(urlInput.text)) {
|
||||
urlError = qsTr("This fields needs to be a valid URL")
|
||||
//% "This fields needs to be a valid URL"
|
||||
urlError = qsTrId("this-fields-needs-to-be-a-valid-url")
|
||||
}
|
||||
|
||||
nameError = !nameInput.text ? qsTr("Please enter a Name") : ""
|
||||
//% "Please enter a Name"
|
||||
nameError = !nameInput.text ? qsTrId("please-enter-a-name") : ""
|
||||
|
||||
return !urlError && !nameError
|
||||
}
|
||||
|
@ -74,9 +77,12 @@ ModalPopup {
|
|||
|
||||
title: modifiyModal ?
|
||||
toolbarMode ?
|
||||
qsTr("Favorite added") :
|
||||
qsTr("Edit")
|
||||
: qsTr("Add favorite")
|
||||
//% "Favorite added"
|
||||
qsTrId("favorite-added") :
|
||||
//% "Edit"
|
||||
qsTrId("edit")
|
||||
//% "Add favorite"
|
||||
: qsTrId("add-favorite")
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
@ -84,8 +90,10 @@ ModalPopup {
|
|||
|
||||
Input {
|
||||
id: urlInput
|
||||
label: qsTr("URL")
|
||||
placeholderText: qsTr("Paste URL")
|
||||
//% "URL"
|
||||
label: qsTrId("url")
|
||||
//% "Paste URL"
|
||||
placeholderText: qsTrId("paste-url")
|
||||
pasteFromClipboard: true
|
||||
validationError: popup.urlError
|
||||
text: popup.ogUrl
|
||||
|
@ -93,8 +101,10 @@ ModalPopup {
|
|||
|
||||
Input {
|
||||
id: nameInput
|
||||
label: qsTr("Name")
|
||||
placeholderText: qsTr("Name the website")
|
||||
//% "Name"
|
||||
label: qsTrId("name")
|
||||
//% "Name the website"
|
||||
placeholderText: qsTrId("name-the-website")
|
||||
validationError: popup.nameError
|
||||
text: popup.ogName
|
||||
}
|
||||
|
@ -109,7 +119,8 @@ ModalPopup {
|
|||
anchors.right: addBtn.left
|
||||
anchors.rightMargin: Style.current.padding
|
||||
visible: popup.modifiyModal
|
||||
text: qsTr("Remove")
|
||||
//% "Remove"
|
||||
text: qsTrId("remove")
|
||||
anchors.bottom: parent.bottom
|
||||
color: Style.current.danger
|
||||
bgColor: Utils.setColorAlpha(Style.current.danger, 0.1)
|
||||
|
@ -125,8 +136,10 @@ ModalPopup {
|
|||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.smallPadding
|
||||
text: popup.modifiyModal ?
|
||||
qsTr("Done") :
|
||||
qsTr("Add")
|
||||
//% "Done"
|
||||
qsTrId("done") :
|
||||
//% "Add"
|
||||
qsTrId("add")
|
||||
anchors.bottom: parent.bottom
|
||||
onClicked: {
|
||||
if (!validate()) {
|
||||
|
|
|
@ -101,7 +101,8 @@ Popup {
|
|||
|
||||
StyledText {
|
||||
id: titleText
|
||||
text: qsTr('"%1" would like to connect to').arg(request.title)
|
||||
//% "'%1' would like to connect to"
|
||||
text: qsTrId("--1--would-like-to-connect-to").arg(request.title)
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignHCenter | Qt.AlignTop
|
||||
wrapMode: Text.WordWrap
|
||||
|
@ -144,8 +145,10 @@ Popup {
|
|||
id: infoText
|
||||
text: {
|
||||
switch(request.permission){
|
||||
case Constants.permission_web3: return qsTr("Allowing authorizes this DApp to retrieve your wallet address and enable Web3");
|
||||
case Constants.permission_contactCode: return qsTr("Granting access authorizes this DApp to retrieve your chat key");
|
||||
//% "Allowing authorizes this DApp to retrieve your wallet address and enable Web3"
|
||||
case Constants.permission_web3: return qsTrId("allowing-authorizes-this-dapp");
|
||||
//% "Granting access authorizes this DApp to retrieve your chat key"
|
||||
case Constants.permission_contactCode: return qsTrId("your-contact-code");
|
||||
default: return qsTr("Unknown permission: " + request.permission);
|
||||
}
|
||||
}
|
||||
|
@ -165,7 +168,8 @@ Popup {
|
|||
StatusButton {
|
||||
type: "warn"
|
||||
width: 155
|
||||
text: qsTr("Deny")
|
||||
//% "Deny"
|
||||
text: qsTrId("deny")
|
||||
onClicked: {
|
||||
postMessage(false);
|
||||
root.close();
|
||||
|
@ -176,7 +180,8 @@ Popup {
|
|||
btnColor: Utils.setColorAlpha(Style.current.success, 0.1)
|
||||
textColor: Style.current.success
|
||||
width: 155
|
||||
label: qsTr("Allow")
|
||||
//% "Allow"
|
||||
label: qsTrId("allow")
|
||||
onClicked: {
|
||||
postMessage(true);
|
||||
root.close();
|
||||
|
|
|
@ -99,7 +99,8 @@ Rectangle {
|
|||
radius: 20
|
||||
}
|
||||
leftPadding: Style.current.padding
|
||||
placeholderText: qsTr("Enter URL")
|
||||
//% "Enter URL"
|
||||
placeholderText: qsTrId("enter-url")
|
||||
focus: true
|
||||
text: ""
|
||||
color: Style.current.textColor
|
||||
|
|
|
@ -91,7 +91,8 @@ Rectangle {
|
|||
|
||||
property MessageDialog signingError: MessageDialog {
|
||||
id: signingError
|
||||
title: qsTr("Error signing message")
|
||||
//% "Error signing message"
|
||||
title: qsTrId("error-signing-message")
|
||||
icon: StandardIcon.Critical
|
||||
standardButtons: StandardButton.Ok
|
||||
}
|
||||
|
@ -444,9 +445,11 @@ Rectangle {
|
|||
}
|
||||
|
||||
if (createAsStartPage) {
|
||||
return qsTr("Start Page")
|
||||
//% "Start Page"
|
||||
return qsTrId("start-page")
|
||||
}
|
||||
return qsTr("New Tab")
|
||||
//% "New Tab"
|
||||
return qsTrId("new-tab")
|
||||
})
|
||||
|
||||
tab.item.profile = profile;
|
||||
|
@ -459,7 +462,8 @@ Rectangle {
|
|||
function createDownloadTab(profile) {
|
||||
var tab = addTab("", tabComponent);
|
||||
tab.active = true;
|
||||
tab.title = qsTr("Downloads Page")
|
||||
//% "Downloads Page"
|
||||
tab.title = qsTrId("downloads-page")
|
||||
tab.item.profile = profile
|
||||
tab.item.url = "status://downloads";
|
||||
}
|
||||
|
@ -727,9 +731,12 @@ Rectangle {
|
|||
property var certErrors: []
|
||||
icon: StandardIcon.Warning
|
||||
standardButtons: StandardButton.No | StandardButton.Yes
|
||||
title: qsTr("Server's certificate not trusted")
|
||||
text: qsTr("Do you wish to continue?")
|
||||
detailedText: qsTr("If you wish so, you may continue with an unverified certificate. Accepting an unverified certificate means you may not be connected with the host you tried to connect to.\nDo you wish to override the security check and continue?")
|
||||
//% "Server's certificate not trusted"
|
||||
title: qsTrId("server-s-certificate-not-trusted")
|
||||
//% "Do you wish to continue?"
|
||||
text: qsTrId("do-you-wish-to-continue-")
|
||||
//% "If you wish so, you may continue with an unverified certificate. Accepting an unverified certificate means you may not be connected with the host you tried to connect to.\nDo you wish to override the security check and continue?"
|
||||
detailedText: qsTrId("if-you-wish-so--you-may-continue-with-an-unverified-certificate--accepting-an-unverified-certificate-means-you-may-not-be-connected-with-the-host-you-tried-to-connect-to--ndo-you-wish-to-override-the-security-check-and-continue-")
|
||||
onYes: {
|
||||
certErrors.shift().ignoreCertificateError();
|
||||
presentError();
|
||||
|
|
|
@ -13,7 +13,8 @@ PopupMenu {
|
|||
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
|
||||
|
||||
Action {
|
||||
text: qsTr("New Tab")
|
||||
//% "New Tab"
|
||||
text: qsTrId("new-tab")
|
||||
shortcut: StandardKey.AddTab
|
||||
onTriggered: {
|
||||
addNewTab()
|
||||
|
@ -24,8 +25,10 @@ PopupMenu {
|
|||
id: offTheRecordEnabled
|
||||
// TODO show an indicator on the browser or tab?
|
||||
text: checked ?
|
||||
qsTr("Exit Incognito mode") :
|
||||
qsTr("Go Incognito")
|
||||
//% "Exit Incognito mode"
|
||||
qsTrId("exit-incognito-mode") :
|
||||
//% "Go Incognito"
|
||||
qsTrId("go-incognito")
|
||||
checkable: true
|
||||
checked: currentWebView && currentWebView.profile === otrProfile
|
||||
onToggled: function(checked) {
|
||||
|
@ -39,7 +42,8 @@ PopupMenu {
|
|||
|
||||
// TODO find a way to put both in one button
|
||||
Action {
|
||||
text: qsTr("Zoom In")
|
||||
//% "Zoom In"
|
||||
text: qsTrId("zoom-in")
|
||||
shortcut: StandardKey.ZoomIn
|
||||
onTriggered: {
|
||||
const newZoom = currentWebView.zoomFactor + 0.1
|
||||
|
@ -47,7 +51,8 @@ PopupMenu {
|
|||
}
|
||||
}
|
||||
Action {
|
||||
text: qsTr("Zoom Out")
|
||||
//% "Zoom Out"
|
||||
text: qsTrId("zoom-out")
|
||||
shortcut: StandardKey.ZoomOut
|
||||
onTriggered: {
|
||||
const newZoom = currentWebView.zoomFactor - 0.1
|
||||
|
@ -62,7 +67,8 @@ PopupMenu {
|
|||
Separator {}
|
||||
|
||||
Action {
|
||||
text: qsTr("Find")
|
||||
//% "Find"
|
||||
text: qsTrId("find")
|
||||
shortcut: StandardKey.Find
|
||||
onTriggered: {
|
||||
if (!findBar.visible) {
|
||||
|
@ -73,7 +79,8 @@ PopupMenu {
|
|||
}
|
||||
|
||||
Action {
|
||||
text: qsTr("Compatibility mode")
|
||||
//% "Compatibility mode"
|
||||
text: qsTrId("compatibility-mode")
|
||||
checkable: true
|
||||
checked: true
|
||||
onToggled: {
|
||||
|
@ -91,7 +98,8 @@ PopupMenu {
|
|||
}
|
||||
|
||||
Action {
|
||||
text: qsTr("Developer Tools")
|
||||
//% "Developer Tools"
|
||||
text: qsTrId("developer-tools")
|
||||
shortcut: "F12"
|
||||
onTriggered: {
|
||||
appSettings.devToolsEnabled = !appSettings.devToolsEnabled
|
||||
|
@ -101,7 +109,8 @@ PopupMenu {
|
|||
Separator {}
|
||||
|
||||
Action {
|
||||
text: qsTr("Settings")
|
||||
//% "Settings"
|
||||
text: qsTrId("settings")
|
||||
shortcut: "Ctrl+,"
|
||||
onTriggered: {
|
||||
appMain.changeAppSection(Constants.profile)
|
||||
|
|
|
@ -59,7 +59,8 @@ TabViewStyle {
|
|||
|
||||
StatusIconButton {
|
||||
id: closeTabBtn
|
||||
visible: tabs.count > 1 || styleData.title !== qsTr("Start Page")
|
||||
//% "Start Page"
|
||||
visible: tabs.count > 1 || styleData.title !== qsTrId("start-page")
|
||||
enabled: visible
|
||||
icon.name: "browser/close"
|
||||
iconColor: Style.current.textColor
|
||||
|
|
|
@ -60,9 +60,12 @@ Popup {
|
|||
id: networkText
|
||||
text: {
|
||||
switch (profileModel.network.current) {
|
||||
case Constants.networkMainnet: return qsTr("Mainnet");
|
||||
case Constants.networkRopsten: return qsTr("Ropsten");
|
||||
default: return qsTr("Unknown")
|
||||
//% "Mainnet"
|
||||
case Constants.networkMainnet: return qsTrId("mainnet");
|
||||
//% "Ropsten"
|
||||
case Constants.networkRopsten: return qsTrId("ropsten");
|
||||
//% "Unknown"
|
||||
default: return qsTrId("active-unknown")
|
||||
}
|
||||
}
|
||||
font.pixelSize: 15
|
||||
|
@ -73,7 +76,8 @@ Popup {
|
|||
|
||||
StyledText {
|
||||
id: disconectBtn
|
||||
text: qsTr("Disconnect")
|
||||
//% "Disconnect"
|
||||
text: qsTrId("disconnect")
|
||||
font.pixelSize: 15
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.right: parent.right
|
||||
|
|
|
@ -53,7 +53,8 @@ Rectangle {
|
|||
StatusButton {
|
||||
id: showAllBtn
|
||||
size: "small"
|
||||
text: qsTr("Show All")
|
||||
//% "Show All"
|
||||
text: qsTrId("show-all")
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.right: closeBtn.left
|
||||
anchors.rightMargin: Style.current.padding
|
||||
|
|
|
@ -101,10 +101,12 @@ Rectangle {
|
|||
color: Style.current.secondaryText
|
||||
text: {
|
||||
if (isCanceled) {
|
||||
return qsTr("Cancelled")
|
||||
//% "Cancelled"
|
||||
return qsTrId("cancelled")
|
||||
}
|
||||
if (downloadModel.downloads[index] && downloadModel.downloads[index].isPaused) {
|
||||
return qsTr("Paused")
|
||||
//% "Paused"
|
||||
return qsTrId("paused")
|
||||
}
|
||||
return `${downloadModel.downloads[index] ? (downloadModel.downloads[index].receivedBytes / 1000000).toFixed(2) : 0}/${downloadModel.downloads[index] ? (downloadModel.downloads[index].totalBytes / 1000000).toFixed(2) : 0} MB` //"14.4/109 MB, 26 sec left"
|
||||
}
|
||||
|
@ -139,14 +141,16 @@ Rectangle {
|
|||
icon.source: "../../img/browser/file.svg"
|
||||
icon.width: 16
|
||||
icon.height: 16
|
||||
text: qsTr("Open")
|
||||
//% "Open"
|
||||
text: qsTrId("open")
|
||||
onTriggered: openFile()
|
||||
}
|
||||
Action {
|
||||
icon.source: "../../img/add_watch_only.svg"
|
||||
icon.width: 13
|
||||
icon.height: 9
|
||||
text: qsTr("Show in folder")
|
||||
//% "Show in folder"
|
||||
text: qsTrId("show-in-folder")
|
||||
onTriggered: openDirectory()
|
||||
}
|
||||
Action {
|
||||
|
@ -154,7 +158,8 @@ Rectangle {
|
|||
icon.source: "../../img/browser/pause.svg"
|
||||
icon.width: 16
|
||||
icon.height: 16
|
||||
text: qsTr("Pause")
|
||||
//% "Pause"
|
||||
text: qsTrId("pause")
|
||||
onTriggered: {
|
||||
downloadModel.downloads[index].pause()
|
||||
}
|
||||
|
@ -164,7 +169,8 @@ Rectangle {
|
|||
icon.source: "../../img/browser/play.svg"
|
||||
icon.width: 16
|
||||
icon.height: 16
|
||||
text: qsTr("Resume")
|
||||
//% "Resume"
|
||||
text: qsTrId("resume")
|
||||
onTriggered: {
|
||||
downloadModel.downloads[index].resume()
|
||||
}
|
||||
|
@ -179,7 +185,8 @@ Rectangle {
|
|||
icon.source: "../../img/block-icon.svg"
|
||||
icon.width: 13
|
||||
icon.height: 13
|
||||
text: qsTr("Cancel")
|
||||
//% "Cancel"
|
||||
text: qsTrId("browsing-cancel")
|
||||
onTriggered: {
|
||||
downloadModel.downloads[index].cancel()
|
||||
isCanceled = true
|
||||
|
|
|
@ -34,7 +34,8 @@ Rectangle {
|
|||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
font.pixelSize: 15
|
||||
text: qsTr("Downloaded files will appear here.")
|
||||
//% "Downloaded files will appear here."
|
||||
text: qsTrId("downloaded-files-will-appear-here-")
|
||||
color: Style.current.secondaryText
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,7 +16,8 @@ PopupMenu {
|
|||
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
||||
|
||||
Action {
|
||||
text: qsTr("Open in new Tab")
|
||||
//% "Open in new Tab"
|
||||
text: qsTrId("open-in-new-tab")
|
||||
icon.source: "../../img/generate_account.svg"
|
||||
icon.width: 16
|
||||
icon.height: 16
|
||||
|
@ -28,7 +29,8 @@ PopupMenu {
|
|||
Separator {}
|
||||
|
||||
Action {
|
||||
text: qsTr("Edit")
|
||||
//% "Edit"
|
||||
text: qsTrId("edit")
|
||||
icon.source: "../../img/edit.svg"
|
||||
icon.width: 16
|
||||
icon.height: 16
|
||||
|
@ -41,7 +43,8 @@ PopupMenu {
|
|||
}
|
||||
|
||||
Action {
|
||||
text: qsTr("Remove")
|
||||
//% "Remove"
|
||||
text: qsTrId("remove")
|
||||
icon.source: "../../img/remove.svg"
|
||||
icon.color: Style.current.danger
|
||||
icon.width: 16
|
||||
|
|
|
@ -33,7 +33,8 @@ Item {
|
|||
|
||||
BookmarkButton {
|
||||
id: addBookmarkBtn
|
||||
text: qsTr("Add favorite")
|
||||
//% "Add favorite"
|
||||
text: qsTrId("add-favorite")
|
||||
onClicked: {
|
||||
addFavoriteModal.open()
|
||||
}
|
||||
|
|
|
@ -58,7 +58,8 @@ ModalPopup {
|
|||
StatusButton {
|
||||
id: okButton
|
||||
anchors.right: parent.right
|
||||
text: qsTr("Ok")
|
||||
//% "Ok"
|
||||
text: qsTrId("ok")
|
||||
anchors.bottom: parent.bottom
|
||||
onClicked: {
|
||||
request.dialogAccept(prompt.text);
|
||||
|
@ -71,7 +72,8 @@ ModalPopup {
|
|||
type: "secondary"
|
||||
anchors.right: okButton.left
|
||||
anchors.rightMargin: Style.current.smallPadding
|
||||
text: qsTr("Cancel")
|
||||
//% "Cancel"
|
||||
text: qsTrId("browsing-cancel")
|
||||
anchors.bottom: parent.bottom
|
||||
onClicked: {
|
||||
request.dialogReject();
|
||||
|
|
|
@ -25,7 +25,8 @@ ModalPopup {
|
|||
|
||||
id: root
|
||||
|
||||
title: qsTr("Signature request")
|
||||
//% "Signature request"
|
||||
title: qsTrId("signature-request")
|
||||
height: 504
|
||||
|
||||
onClosed: {
|
||||
|
@ -125,14 +126,16 @@ ModalPopup {
|
|||
}
|
||||
|
||||
LabelValueRow {
|
||||
label: qsTr("Data")
|
||||
//% "Data"
|
||||
label: qsTrId("data")
|
||||
value: Item {
|
||||
anchors.fill: parent
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
ModalPopup {
|
||||
id: messagePopup
|
||||
title: qsTr("Message")
|
||||
//% "Message"
|
||||
title: qsTrId("message")
|
||||
height: 286
|
||||
width: 400
|
||||
Item {
|
||||
|
@ -199,7 +202,8 @@ ModalPopup {
|
|||
id: btnReject
|
||||
anchors.right:btnNext.left
|
||||
anchors.rightMargin: Style.current.padding
|
||||
text: qsTr("Reject")
|
||||
//% "Reject"
|
||||
text: qsTrId("reject")
|
||||
color: Style.current.danger
|
||||
type: "secondary"
|
||||
onClicked: close()
|
||||
|
@ -209,8 +213,10 @@ ModalPopup {
|
|||
id: btnNext
|
||||
anchors.right: parent.right
|
||||
text: showSigningPhrase ?
|
||||
qsTr("Sign") :
|
||||
qsTr("Sign with password")
|
||||
//% "Sign"
|
||||
qsTrId("transactions-sign") :
|
||||
//% "Sign with password"
|
||||
qsTrId("sign-with-password")
|
||||
onClicked: {
|
||||
if(!showSigningPhrase){
|
||||
showSigningPhrase = true;
|
||||
|
|
|
@ -269,8 +269,10 @@ StackLayout {
|
|||
}
|
||||
enabled: !isBlocked
|
||||
chatInputPlaceholder: isBlocked ?
|
||||
qsTr("This user has been blocked.") :
|
||||
qsTr("Type a message.")
|
||||
//% "This user has been blocked."
|
||||
qsTrId("this-user-has-been-blocked-") :
|
||||
//% "Type a message."
|
||||
qsTrId("type-a-message-")
|
||||
anchors.bottom: parent.bottom
|
||||
recentStickers: chatsModel.stickers.recent
|
||||
stickerPackList: chatsModel.stickers.stickerPacks
|
||||
|
|
|
@ -41,7 +41,8 @@ ModalPopup {
|
|||
width: stack.width
|
||||
label: {
|
||||
return root.isRequested ?
|
||||
qsTr("Receive on account") :
|
||||
//% "Receive on account"
|
||||
qsTrId("receive-on-account") :
|
||||
//% "From account"
|
||||
qsTrId("from-account")
|
||||
}
|
||||
|
@ -58,7 +59,8 @@ ModalPopup {
|
|||
anchors.right: selectRecipient.right
|
||||
anchors.bottom: selectRecipient.top
|
||||
anchors.bottomMargin: -Style.current.padding
|
||||
text: qsTr("Address request required")
|
||||
//% "Address request required"
|
||||
text: qsTrId("address-request-required")
|
||||
color: Style.current.danger
|
||||
visible: addressRequiredValidator.isWarn
|
||||
}
|
||||
|
@ -68,8 +70,10 @@ ModalPopup {
|
|||
accounts: walletModel.accounts
|
||||
contacts: profileModel.contacts.addedContacts
|
||||
label: root.isRequested ?
|
||||
qsTr("From") :
|
||||
qsTr("To")
|
||||
//% "From"
|
||||
qsTrId("from") :
|
||||
//% "To"
|
||||
qsTrId("to")
|
||||
anchors.top: separator.bottom
|
||||
anchors.topMargin: 10
|
||||
width: stack.width
|
||||
|
@ -97,7 +101,8 @@ ModalPopup {
|
|||
TransactionFormGroup {
|
||||
id: group3
|
||||
headerText: root.isRequested ?
|
||||
qsTr("Preview") :
|
||||
//% "Preview"
|
||||
qsTrId("preview") :
|
||||
//% "Transaction preview"
|
||||
qsTrId("transaction-preview")
|
||||
footerText: root.finalButtonLabel
|
||||
|
|
|
@ -66,11 +66,13 @@ ModalPopup {
|
|||
if(trxData.startsWith("0x095ea7b3")){
|
||||
const approveData = JSON.parse(walletModel.decodeTokenApproval(selectedRecipient.address, trxData))
|
||||
if(approveData.symbol)
|
||||
return qsTr("Authorize %1 %2").arg(approveData.amount).arg(approveData.symbol)
|
||||
//% "Authorize %1 %2"
|
||||
return qsTrId("authorize--1--2").arg(approveData.amount).arg(approveData.symbol)
|
||||
}
|
||||
return qsTrId("command-button-send");
|
||||
}
|
||||
footerText: qsTr("Continue")
|
||||
//% "Continue"
|
||||
footerText: qsTrId("continue")
|
||||
showNextBtn: false
|
||||
onBackClicked: function() {
|
||||
if(validate()) {
|
||||
|
@ -100,7 +102,8 @@ ModalPopup {
|
|||
}
|
||||
TransactionFormGroup {
|
||||
id: groupSelectGas
|
||||
headerText: qsTr("Network fee")
|
||||
//% "Network fee"
|
||||
headerText: qsTrId("network-fee")
|
||||
//% "Preview"
|
||||
footerText: qsTrId("preview")
|
||||
showNextBtn: false
|
||||
|
@ -137,7 +140,8 @@ ModalPopup {
|
|||
//% "Error estimating gas: %1"
|
||||
let message = qsTrId("error-estimating-gas---1").arg(gasEstimate.error.message)
|
||||
console.warn(message)
|
||||
gasEstimateErrorPopup.confirmationText = message + qsTr(". The transaction will probably fail.")
|
||||
//% ". The transaction will probably fail."
|
||||
gasEstimateErrorPopup.confirmationText = message + qsTrId("--the-transaction-will-probably-fail-")
|
||||
gasEstimateErrorPopup.open()
|
||||
return
|
||||
}
|
||||
|
|
|
@ -184,12 +184,15 @@ ScrollView {
|
|||
let message;
|
||||
if (appSettings.notificationMessagePreviewSetting > Constants.notificationPreviewNameOnly) {
|
||||
switch(messageType){
|
||||
case Constants.imageType: message = qsTr("Image"); break
|
||||
case Constants.stickerType: message = qsTr("Sticker"); break
|
||||
//% "Image"
|
||||
case Constants.imageType: message = qsTrId("image"); break
|
||||
//% "Sticker"
|
||||
case Constants.stickerType: message = qsTrId("sticker"); break
|
||||
default: message = Emoji.parse(msg, "26x26").replace(/\n|\r/g, ' ')
|
||||
}
|
||||
} else {
|
||||
message = qsTr("You have a new message")
|
||||
//% "You have a new message"
|
||||
message = qsTrId("you-have-a-new-message")
|
||||
}
|
||||
|
||||
currentlyHasANotification = true
|
||||
|
@ -234,7 +237,8 @@ ScrollView {
|
|||
MessageDialog {
|
||||
id: sendingMsgFailedPopup
|
||||
standardButtons: StandardButton.Ok
|
||||
text: qsTr("Failed to send message.")
|
||||
//% "Failed to send message."
|
||||
text: qsTrId("failed-to-send-message-")
|
||||
icon: StandardIcon.Critical
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: shareKeyLink
|
||||
text: qsTr("Share your chat key")
|
||||
//% "Share your chat key"
|
||||
text: qsTrId("share-your-chat-key")
|
||||
font.pixelSize: 15
|
||||
color: Style.current.blue
|
||||
|
||||
|
@ -48,7 +49,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: orText
|
||||
text: qsTr("or")
|
||||
//% "or"
|
||||
text: qsTrId("or")
|
||||
font.pixelSize: 15
|
||||
color: Style.current.darkGrey
|
||||
anchors.left: shareKeyLink.right
|
||||
|
@ -58,7 +60,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: inviteLink
|
||||
text: qsTr("invite")
|
||||
//% "invite"
|
||||
text: qsTrId("invite")
|
||||
font.pixelSize: 15
|
||||
color: Style.current.blue
|
||||
anchors.left: orText.right
|
||||
|
@ -83,7 +86,8 @@ Item {
|
|||
}
|
||||
|
||||
StyledText {
|
||||
text: qsTr("friends to start messaging in Status")
|
||||
//% "friends to start messaging in Status"
|
||||
text: qsTrId("friends-to-start-messaging-in-status")
|
||||
font.pixelSize: 15
|
||||
color: Style.current.darkGrey
|
||||
anchors.horizontalCenter: walkieTalkieImage.horizontalCenter
|
||||
|
|
|
@ -81,8 +81,10 @@ Column {
|
|||
wrapMode: Text.Wrap
|
||||
text: {
|
||||
switch(chatsModel.activeChannel.chatType) {
|
||||
case Constants.chatTypePrivateGroupChat: return qsTr(`Welcome to the beginning of the <span style="color: ${Style.current.textColor}">%1</span> group!`).arg(chatsModel.activeChannel.name);
|
||||
case Constants.chatTypeOneToOne: return qsTr(`Any messages you send here are encrypted and can only be read by you and <span style="color: ${Style.current.textColor}">%1</span>`).arg(Utils.removeStatusEns(chatsModel.activeChannel.name))
|
||||
//% "Welcome to the beginning of the <span style='color: %1'>%2</span> group!"
|
||||
case Constants.chatTypePrivateGroupChat: return qsTrId("welcome-to-the-beginning-of-the--span-style--color---1---2--span--group-").arg(Style.current.textColor).arg(chatsModel.activeChannel.name);
|
||||
//% "Any messages you send here are encrypted and can only be read by you and <span style='color: %1'>%2</span>"
|
||||
case Constants.chatTypeOneToOne: return qsTrId("any-messages-you-send-here-are-encrypted-and-can-only-be-read-by-you-and--span-style--color---1---2--span-").arg(Style.current.textColor).arg(Utils.removeStatusEns(chatsModel.activeChannel.name))
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -71,7 +71,8 @@ Rectangle {
|
|||
|
||||
StatusToolTip {
|
||||
visible: emojiBtn.hovered
|
||||
text: qsTr("Add reaction")
|
||||
//% "Add reaction"
|
||||
text: qsTrId("add-reaction")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -90,7 +91,8 @@ Rectangle {
|
|||
|
||||
StatusToolTip {
|
||||
visible: replyBtn.hovered
|
||||
text: qsTr("Reply")
|
||||
//% "Reply"
|
||||
text: qsTrId("message-reply")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,7 +14,8 @@ Item {
|
|||
width: childrenRect.width
|
||||
|
||||
function lastTwoItems(nodes) {
|
||||
return nodes.join(qsTr(" and "));
|
||||
//% " and "
|
||||
return nodes.join(qsTrId("-and-"));
|
||||
}
|
||||
|
||||
function showReactionAuthors(fromAccounts, emojiId) {
|
||||
|
@ -34,7 +35,8 @@ Item {
|
|||
rightNode = fromAccounts.slice(maxReactions, fromAccounts.length);
|
||||
return (rightNode.length === 1) ?
|
||||
lastTwoItems([leftNode.join(", "), rightNode[0]]) :
|
||||
lastTwoItems([leftNode.join(", "), qsTr("%1 more").arg(rightNode.length)]);
|
||||
//% "%1 more"
|
||||
lastTwoItems([leftNode.join(", "), qsTrId("-1-more").arg(rightNode.length)]);
|
||||
}
|
||||
|
||||
leftNode = fromAccounts.slice(0, maximum - 1);
|
||||
|
@ -42,7 +44,8 @@ Item {
|
|||
tooltip = lastTwoItems([leftNode.join(", "), rightNode[0]])
|
||||
}
|
||||
|
||||
tooltip += qsTr(" reacted with ");
|
||||
//% " reacted with "
|
||||
tooltip += qsTrId("-reacted-with-");
|
||||
|
||||
switch (emojiId) {
|
||||
case 1: return tooltip + ":heart:"
|
||||
|
@ -217,7 +220,8 @@ Item {
|
|||
|
||||
StatusToolTip {
|
||||
visible: addEmojiBtn.isHovered
|
||||
text: qsTr("Add reaction")
|
||||
//% "Add reaction"
|
||||
text: qsTrId("add-reaction")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,8 +29,9 @@ Item {
|
|||
|
||||
StyledText {
|
||||
//% "Error loading the image"
|
||||
//% "Loading image..."
|
||||
text: loadingImage.hasError ? qsTrId("error-loading-the-image") : qsTrId("loading-image---")
|
||||
text: loadingImage.hasError ? qsTrId("error-loading-the-image") :
|
||||
//% "Loading image..."
|
||||
qsTrId("loading-image---")
|
||||
color: loadingImage.hasError ? Style.current.red : Style.current.textColor
|
||||
font.pixelSize: 15
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
|
|
@ -53,8 +53,10 @@ Item {
|
|||
id: title
|
||||
color: invitedCommunity.verifed ? Style.current.primary : Style.current.secondaryText
|
||||
text: invitedCommunity.verifed ?
|
||||
qsTr("Verified community invitation") :
|
||||
qsTr("Community invitation")
|
||||
//% "Verified community invitation"
|
||||
qsTrId("verified-community-invitation") :
|
||||
//% "Community invitation"
|
||||
qsTrId("community-invitation")
|
||||
font.weight: Font.Medium
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: Style.current.halfPadding
|
||||
|
@ -65,7 +67,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: invitedYou
|
||||
text: qsTr("%1 invited you to join a community").arg(userName)
|
||||
//% "%1 invited you to join a community"
|
||||
text: qsTrId("-1-invited-you-to-join-a-community").arg(userName)
|
||||
anchors.top: title.bottom
|
||||
anchors.topMargin: 4
|
||||
anchors.left: parent.left
|
||||
|
@ -113,7 +116,8 @@ Item {
|
|||
StyledText {
|
||||
id: communityNbMembers
|
||||
// TODO add the plural support
|
||||
text: qsTr("%1 members").arg(invitedCommunity.nbMembers)
|
||||
//% "%1 members"
|
||||
text: qsTrId("-1-members").arg(invitedCommunity.nbMembers)
|
||||
anchors.top: communityDesc.bottom
|
||||
anchors.topMargin: 2
|
||||
anchors.left: parent.left
|
||||
|
@ -135,8 +139,10 @@ Item {
|
|||
width: parent.width
|
||||
height: 44
|
||||
enabled: !invitedCommunity.joined
|
||||
text: root.joined || invitedCommunity.joined ? qsTr("Joined") :
|
||||
qsTr("Join")
|
||||
//% "Joined"
|
||||
text: root.joined || invitedCommunity.joined ? qsTrId("joined") :
|
||||
//% "Join"
|
||||
qsTrId("join")
|
||||
onClicked: {
|
||||
chatsModel.joinCommunity(communityId)
|
||||
root.joined = true
|
||||
|
|
|
@ -242,7 +242,8 @@ Column {
|
|||
|
||||
StyledText {
|
||||
id: enableText
|
||||
text: qsTr("Enable link previews in chat?")
|
||||
//% "Enable link previews in chat?"
|
||||
text: qsTrId("enable-link-previews")
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
width: parent.width
|
||||
wrapMode: Text.WordWrap
|
||||
|
@ -253,7 +254,8 @@ Column {
|
|||
|
||||
StyledText {
|
||||
id: infoText
|
||||
text: qsTr("Once enabled, links posted in the chat may share your metadata with their owners")
|
||||
//% "Once enabled, links posted in the chat may share your metadata with their owners"
|
||||
text: qsTrId("once-enabled--links-posted-in-the-chat-may-share-your-metadata-with-their-owners")
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
width: parent.width
|
||||
wrapMode: Text.WordWrap
|
||||
|
@ -270,7 +272,8 @@ Column {
|
|||
|
||||
StatusButton {
|
||||
id: enableBtn
|
||||
text: qsTr("Enable in Settings")
|
||||
//% "Enable in Settings"
|
||||
text: qsTrId("enable-in-settings")
|
||||
type: "secondary"
|
||||
onClicked: {
|
||||
appMain.changeAppSection(Constants.profile)
|
||||
|
@ -287,7 +290,8 @@ Column {
|
|||
}
|
||||
|
||||
StatusButton {
|
||||
text: qsTr("Don't ask me again")
|
||||
//% "Don't ask me again"
|
||||
text: qsTrId("dont-ask")
|
||||
type: "secondary"
|
||||
onClicked: {
|
||||
appSettings.neverAskAboutUnfurlingAgain = true
|
||||
|
|
|
@ -75,7 +75,8 @@ Item {
|
|||
text: {
|
||||
if (root.state === Constants.transactionRequested) {
|
||||
let prefix = root.outgoing ? "↓ ": "↑ "
|
||||
return prefix + qsTr("Transaction request")
|
||||
//% "Transaction request"
|
||||
return prefix + qsTrId("transaction-request")
|
||||
}
|
||||
return root.outgoing ?
|
||||
//% "↑ Outgoing transaction"
|
||||
|
@ -104,7 +105,8 @@ Item {
|
|||
id: txtError
|
||||
color: Style.current.danger
|
||||
visible: root.isError
|
||||
text: qsTr("Something has gone wrong")
|
||||
//% "Something has gone wrong"
|
||||
text: qsTrId("something-has-gone-wrong")
|
||||
}
|
||||
|
||||
Image {
|
||||
|
|
|
@ -8,7 +8,8 @@ import "../../../../../../shared/status"
|
|||
|
||||
ModalPopup {
|
||||
id: root
|
||||
title: qsTr("Select account")
|
||||
//% "Select account"
|
||||
title: qsTrId("select-account")
|
||||
height: 284
|
||||
property alias accountSelector: selectFromAccount
|
||||
signal selectAndShareAddressButtonClicked()
|
||||
|
@ -23,7 +24,8 @@ ModalPopup {
|
|||
currency: walletModel.defaultCurrency
|
||||
width: parent.width
|
||||
//% "Choose account"
|
||||
label: qsTr("Select account to share and receive assets")
|
||||
//% "Select account to share and receive assets"
|
||||
label: qsTrId("select-account-to-share-and-receive-assets")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -35,7 +37,8 @@ ModalPopup {
|
|||
StatusButton {
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.smallPadding
|
||||
text: qsTr("Confirm and share address")
|
||||
//% "Confirm and share address"
|
||||
text: qsTrId("confirm-and-share-address")
|
||||
anchors.bottom: parent.bottom
|
||||
onClicked: root.selectAndShareAddressButtonClicked()
|
||||
}
|
||||
|
|
|
@ -15,7 +15,8 @@ Item {
|
|||
StyledText {
|
||||
id: signText
|
||||
color: Style.current.blue
|
||||
text: qsTr("Sign and send")
|
||||
//% "Sign and send"
|
||||
text: qsTrId("sign-and-send")
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
wrapMode: Text.WordWrap
|
||||
font.weight: Font.Medium
|
||||
|
|
|
@ -56,18 +56,28 @@ Rectangle {
|
|||
}
|
||||
text: {
|
||||
switch (root.state) {
|
||||
case Constants.pending: return qsTr("Pending")
|
||||
case Constants.confirmed: return qsTr("Confirmed")
|
||||
case Constants.unknown: return qsTr("Unknown token")
|
||||
case Constants.addressRequested: return qsTr("Address requested")
|
||||
case Constants.transactionRequested: return qsTr("Waiting to accept")
|
||||
//% "Pending"
|
||||
case Constants.pending: return qsTrId("invite-chat-pending")
|
||||
//% "Confirmed"
|
||||
case Constants.confirmed: return qsTrId("status-confirmed")
|
||||
//% "Unknown token"
|
||||
case Constants.unknown: return qsTrId("unknown-token")
|
||||
//% "Address requested"
|
||||
case Constants.addressRequested: return qsTrId("address-requested")
|
||||
//% "Waiting to accept"
|
||||
case Constants.transactionRequested: return qsTrId("waiting-to-accept")
|
||||
case Constants.addressReceived: return (!root.outgoing ?
|
||||
qsTr("Address shared") :
|
||||
qsTr("Address received"))
|
||||
//% "Address shared"
|
||||
qsTrId("address-shared") :
|
||||
//% "Address received"
|
||||
qsTrId("address-received"))
|
||||
case Constants.transactionDeclined:
|
||||
case Constants.declined: return qsTr("Transaction declined")
|
||||
case Constants.failure: return qsTr("failure")
|
||||
default: return qsTr("Unknown state")
|
||||
//% "Transaction declined"
|
||||
case Constants.declined: return qsTrId("transaction-declined")
|
||||
//% "failure"
|
||||
case Constants.failure: return qsTrId("failure")
|
||||
//% "Unknown state"
|
||||
default: return qsTrId("unknown-state")
|
||||
}
|
||||
}
|
||||
font.weight: Font.Medium
|
||||
|
|
|
@ -14,7 +14,8 @@ Item {
|
|||
id: chatName
|
||||
text: {
|
||||
if (isCurrentUser) {
|
||||
return qsTr("You")
|
||||
//% "You"
|
||||
return qsTrId("You")
|
||||
}
|
||||
|
||||
if (localName !== "") {
|
||||
|
|
|
@ -138,7 +138,7 @@ Rectangle {
|
|||
icon.source: "../../../img/close.svg"
|
||||
icon.width: chatTopBarContent.iconSize
|
||||
icon.height: chatTopBarContent.iconSize
|
||||
//% "Clear history"
|
||||
//% "Clear History"
|
||||
text: qsTrId("clear-history")
|
||||
onTriggered: chatsModel.clearChatHistory(chatsModel.activeChannel.id)
|
||||
}
|
||||
|
@ -146,7 +146,7 @@ Rectangle {
|
|||
icon.source: "../../../img/leave_chat.svg"
|
||||
icon.width: chatTopBarContent.iconSize
|
||||
icon.height: chatTopBarContent.iconSize
|
||||
//% "Leave Group"
|
||||
//% "Leave group"
|
||||
text: qsTrId("leave-group")
|
||||
onTriggered: {
|
||||
//% "Leave group"
|
||||
|
|
|
@ -66,7 +66,8 @@ Item {
|
|||
|
||||
Action {
|
||||
enabled: chatsModel.activeCommunity.admin
|
||||
text: qsTrId("Create channel")
|
||||
//% "Create channel"
|
||||
text: qsTrId("create-channel")
|
||||
icon.source: "../../img/hash.svg"
|
||||
icon.width: 20
|
||||
icon.height: 20
|
||||
|
@ -74,7 +75,8 @@ Item {
|
|||
}
|
||||
|
||||
Action {
|
||||
text: qsTrId("Leave community")
|
||||
//% "Leave community"
|
||||
text: qsTrId("leave-community")
|
||||
icon.source: "../../img/delete.svg"
|
||||
icon.color: Style.current.red
|
||||
icon.width: 20
|
||||
|
|
|
@ -15,11 +15,13 @@ ModalPopup {
|
|||
searchBox.forceActiveFocus(Qt.MouseFocusReason)
|
||||
}
|
||||
|
||||
title: qsTr("Communities")
|
||||
//% "Communities"
|
||||
title: qsTrId("communities")
|
||||
|
||||
SearchBox {
|
||||
id: searchBox
|
||||
placeholderText: qsTr("Search for communities or topics")
|
||||
//% "Search for communities or topics"
|
||||
placeholderText: qsTrId("search-for-communities-or-topics")
|
||||
iconWidth: 17
|
||||
iconHeight: 17
|
||||
customHeight: 36
|
||||
|
@ -99,8 +101,10 @@ ModalPopup {
|
|||
StyledText {
|
||||
id: communityMembers
|
||||
text: nbMembers === 1 ?
|
||||
qsTr("1 member") :
|
||||
qsTr("%1 members").arg(nbMembers)
|
||||
//% "1 member"
|
||||
qsTrId("1-member") :
|
||||
//% "%1 members"
|
||||
qsTrId("-1-members").arg(nbMembers)
|
||||
anchors.left: communityDesc.left
|
||||
anchors.right: parent.right
|
||||
anchors.top: communityDesc.bottom
|
||||
|
@ -132,7 +136,8 @@ ModalPopup {
|
|||
|
||||
StatusButton {
|
||||
id: importBtn
|
||||
text: qsTr("Import a community")
|
||||
//% "Import a community"
|
||||
text: qsTrId("import-community")
|
||||
anchors.right: createBtn.left
|
||||
anchors.rightMargin: Style.current.smallPadding
|
||||
onClicked: {
|
||||
|
@ -143,7 +148,8 @@ ModalPopup {
|
|||
|
||||
StatusButton {
|
||||
id: createBtn
|
||||
text: qsTr("Create a community")
|
||||
//% "Create a community"
|
||||
text: qsTrId("create-community")
|
||||
anchors.right: parent.right
|
||||
onClicked: {
|
||||
openPopup(createCommunitiesPopupComponent)
|
||||
|
|
|
@ -44,10 +44,14 @@ ModalPopup {
|
|||
// TODO get this from access property
|
||||
text: {
|
||||
switch(access) {
|
||||
case Constants.communityChatPublicAccess: return qsTr("Public community");
|
||||
case Constants.communityChatInvitationOnlyAccess: return qsTr("Invitation only community");
|
||||
case Constants.communityChatOnRequestAccess: return qsTr("On request community");
|
||||
default: return qsTr("Unknown community");
|
||||
//% "Public community"
|
||||
case Constants.communityChatPublicAccess: return qsTrId("public-community");
|
||||
//% "Invitation only community"
|
||||
case Constants.communityChatInvitationOnlyAccess: return qsTrId("invitation-only-community");
|
||||
//% "On request community"
|
||||
case Constants.communityChatOnRequestAccess: return qsTrId("on-request-community");
|
||||
//% "Unknown community"
|
||||
default: return qsTrId("unknown-community");
|
||||
}
|
||||
}
|
||||
anchors.left: communityName.left
|
||||
|
@ -85,8 +89,10 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
text: nbMembers === 1 ?
|
||||
qsTr("1 member") :
|
||||
qsTr("%1 members").arg(popup.nbMembers)
|
||||
//% "1 member"
|
||||
qsTrId("1-member") :
|
||||
//% "%1 members"
|
||||
qsTrId("-1-members").arg(popup.nbMembers)
|
||||
wrapMode: Text.WrapAnywhere
|
||||
width: parent.width
|
||||
anchors.left: memberImage.right
|
||||
|
@ -109,7 +115,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
id: chatsTitle
|
||||
text: qsTr("Chats")
|
||||
//% "Chats"
|
||||
text: qsTrId("chats")
|
||||
anchors.top: sep1.bottom
|
||||
anchors.topMargin: Style.current.bigPadding
|
||||
font.pixelSize: 15
|
||||
|
@ -161,7 +168,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
StatusButton {
|
||||
text: qsTr("Join ‘%1’").arg(popup.name)
|
||||
//% "Join ‘%1’"
|
||||
text: qsTrId("join---1-").arg(popup.name)
|
||||
anchors.right: parent.right
|
||||
onClicked: {
|
||||
const error = chatsModel.joinCommunity(popup.communityId)
|
||||
|
@ -177,7 +185,8 @@ ModalPopup {
|
|||
|
||||
MessageDialog {
|
||||
id: joiningError
|
||||
title: qsTr("Error joining the community")
|
||||
//% "Error joining the community"
|
||||
title: qsTrId("error-joining-the-community")
|
||||
icon: StandardIcon.Critical
|
||||
standardButtons: StandardButton.Ok
|
||||
}
|
||||
|
|
|
@ -39,8 +39,10 @@ Button {
|
|||
StyledText {
|
||||
id: communityNbMember
|
||||
text: chatsModel.activeCommunity.nbMembers === 1 ?
|
||||
qsTr("1 member") :
|
||||
qsTr("%1 members").arg(chatsModel.activeCommunity.nbMembers)
|
||||
//% "1 member"
|
||||
qsTrId("1-member") :
|
||||
//% "%1 members"
|
||||
qsTrId("-1-members").arg(chatsModel.activeCommunity.nbMembers)
|
||||
anchors.left: communityName.left
|
||||
anchors.top: communityName.bottom
|
||||
font.pixelSize: 12
|
||||
|
|
|
@ -40,7 +40,8 @@ Item {
|
|||
color: Style.current.darkGrey
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: qsTr("No search results in Communities")
|
||||
//% "No search results in Communities"
|
||||
text: qsTrId("no-search-results-in-communities")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
id: groupName
|
||||
text: qsTr("Members")
|
||||
//% "Members"
|
||||
text: qsTrId("members-title")
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: 2
|
||||
anchors.left: parent.left
|
||||
|
@ -39,7 +40,8 @@ ModalPopup {
|
|||
|
||||
CommunityPopupButton {
|
||||
id: inviteBtn
|
||||
label: qsTr("Invite People")
|
||||
//% "Invite People"
|
||||
label: qsTrId("invite-people")
|
||||
width: popup.width
|
||||
iconName: "invite"
|
||||
onClicked: openPopup(inviteFriendsPopup)
|
||||
|
@ -119,14 +121,16 @@ ModalPopup {
|
|||
icon.source: "../../../img/communities/menu/view-profile.svg"
|
||||
icon.width: 16
|
||||
icon.height: 16
|
||||
text: qsTr("View Profile")
|
||||
//% "View Profile"
|
||||
text: qsTrId("view-profile")
|
||||
onTriggered: openProfilePopup(model.userName, model.pubKey, model.identicon, '', contactRow.nickname)
|
||||
}
|
||||
Action {
|
||||
icon.source: "../../../img/communities/menu/roles.svg"
|
||||
icon.width: 16
|
||||
icon.height: 16
|
||||
text: qsTr("Roles")
|
||||
//% "Roles"
|
||||
text: qsTrId("roles")
|
||||
onTriggered: console.log("TODO")
|
||||
}
|
||||
Separator {}
|
||||
|
@ -135,7 +139,8 @@ ModalPopup {
|
|||
icon.width: 16
|
||||
icon.height: 16
|
||||
icon.color: Style.current.red
|
||||
text: qsTr("Kick")
|
||||
//% "Kick"
|
||||
text: qsTrId("kick")
|
||||
onTriggered: chatsModel.removeUserFromCommunity(model.pubKey)
|
||||
}
|
||||
Action {
|
||||
|
@ -143,7 +148,8 @@ ModalPopup {
|
|||
icon.width: 16
|
||||
icon.height: 16
|
||||
icon.color: Style.current.red
|
||||
text: qsTr("Ban")
|
||||
//% "Ban"
|
||||
text: qsTrId("ban")
|
||||
onTriggered: console.log("TODO")
|
||||
}
|
||||
Separator {}
|
||||
|
@ -152,7 +158,8 @@ ModalPopup {
|
|||
icon.width: 16
|
||||
icon.height: 16
|
||||
icon.color: Style.current.red
|
||||
text: qsTr("Transfer ownership")
|
||||
//% "Transfer ownership"
|
||||
text: qsTrId("transfer-ownership")
|
||||
onTriggered: console.log("TODO")
|
||||
}
|
||||
}
|
||||
|
|
|
@ -47,10 +47,14 @@ ModalPopup {
|
|||
StyledText {
|
||||
text: {
|
||||
switch(access) {
|
||||
case Constants.communityChatPublicAccess: return qsTr("Public community");
|
||||
case Constants.communityChatInvitationOnlyAccess: return qsTr("Invitation only community");
|
||||
case Constants.communityChatOnRequestAccess: return qsTr("On request community");
|
||||
default: return qsTr("Unknown community");
|
||||
//% "Public community"
|
||||
case Constants.communityChatPublicAccess: return qsTrId("public-community");
|
||||
//% "Invitation only community"
|
||||
case Constants.communityChatInvitationOnlyAccess: return qsTrId("invitation-only-community");
|
||||
//% "On request community"
|
||||
case Constants.communityChatOnRequestAccess: return qsTrId("on-request-community");
|
||||
//% "Unknown community"
|
||||
default: return qsTrId("unknown-community");
|
||||
}
|
||||
}
|
||||
anchors.left: communityName.left
|
||||
|
@ -86,7 +90,8 @@ ModalPopup {
|
|||
id: shareCommunity
|
||||
anchors.top: sep1.bottom
|
||||
anchors.topMargin: Style.current.bigPadding
|
||||
label: qsTr("Share community")
|
||||
//% "Share community"
|
||||
label: qsTrId("share-community")
|
||||
text: "https://join.status.im/u/TODO"
|
||||
textToCopy: text
|
||||
}
|
||||
|
@ -112,7 +117,8 @@ ModalPopup {
|
|||
active: isAdmin
|
||||
width: parent.width
|
||||
sourceComponent: CommunityPopupButton {
|
||||
label: qsTr("Members")
|
||||
//% "Members"
|
||||
label: qsTrId("members-title")
|
||||
iconName: "members"
|
||||
txtColor: Style.current.textColor
|
||||
onClicked: openPopup(communityMembersPopup)
|
||||
|
@ -159,7 +165,8 @@ ModalPopup {
|
|||
active: isAdmin
|
||||
width: parent.width
|
||||
sourceComponent: CommunityPopupButton {
|
||||
label: qsTr("Roles")
|
||||
//% "Roles"
|
||||
label: qsTrId("roles")
|
||||
iconName: "roles"
|
||||
width: parent.width
|
||||
onClicked: console.log("TODO:")
|
||||
|
@ -184,7 +191,8 @@ ModalPopup {
|
|||
|
||||
CommunityPopupButton {
|
||||
id: notificationsBtn
|
||||
label: qsTr("Notifications")
|
||||
//% "Notifications"
|
||||
label: qsTrId("notifications")
|
||||
iconName: "notifications"
|
||||
width: parent.width
|
||||
txtColor: Style.current.textColor
|
||||
|
@ -209,7 +217,8 @@ ModalPopup {
|
|||
active: isAdmin
|
||||
width: parent.width
|
||||
sourceComponent: CommunityPopupButton {
|
||||
label: qsTr("Edit community")
|
||||
//% "Edit community"
|
||||
label: qsTrId("edit-community")
|
||||
iconName: "edit"
|
||||
onClicked: openPopup(editCommunityPopup)
|
||||
Component {
|
||||
|
@ -231,7 +240,8 @@ ModalPopup {
|
|||
Component {
|
||||
id: exportBtn
|
||||
CommunityPopupButton {
|
||||
label: qsTr("Export community")
|
||||
//% "Export community"
|
||||
label: qsTrId("export-community")
|
||||
iconName: "../fetch"
|
||||
onClicked: exportResult = chatsModel.exportComumnity()
|
||||
}
|
||||
|
@ -262,7 +272,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
CommunityPopupButton {
|
||||
label: qsTr("Leave community")
|
||||
//% "Leave community"
|
||||
label: qsTrId("leave-community")
|
||||
iconName: "leave"
|
||||
}
|
||||
|
||||
|
@ -271,7 +282,8 @@ ModalPopup {
|
|||
width: parent.width
|
||||
sourceComponent: CommunityPopupButton {
|
||||
id: deleteBtn
|
||||
label: qsTr("Delete")
|
||||
//% "Delete"
|
||||
label: qsTrId("delete")
|
||||
iconName: "delete"
|
||||
txtColor: Style.current.red
|
||||
//btnColor: Style.current.red // TODO: statusroundbutton should support changing color
|
||||
|
|
|
@ -53,7 +53,8 @@ Rectangle {
|
|||
|
||||
StyledText {
|
||||
id: welcomeText
|
||||
text: qsTr("Welcome to your community!")
|
||||
//% "Welcome to your community!"
|
||||
text: qsTrId("welcome-to-your-community-")
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: 60
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
|
@ -67,7 +68,8 @@ Rectangle {
|
|||
|
||||
StatusButton {
|
||||
id: addMembersBtn
|
||||
text: qsTr("Add members")
|
||||
//% "Add members"
|
||||
text: qsTrId("add-members")
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.bottom: manageBtn.top
|
||||
anchors.bottomMargin: Style.current.halfPadding
|
||||
|
@ -78,7 +80,8 @@ Rectangle {
|
|||
|
||||
StatusButton {
|
||||
id: manageBtn
|
||||
text: qsTr("Manage community")
|
||||
//% "Manage community"
|
||||
text: qsTrId("manage-community")
|
||||
type: "secondary"
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.bottom: parent.bottom
|
||||
|
|
|
@ -23,17 +23,21 @@ ModalPopup {
|
|||
nameValidationError = ""
|
||||
|
||||
if (nameInput.text === "") {
|
||||
nameValidationError = qsTr("You need to enter a name")
|
||||
//% "You need to enter a name"
|
||||
nameValidationError = qsTrId("you-need-to-enter-a-name")
|
||||
} else if (!(/^[a-z0-9\-\ ]+$/i.test(nameInput.text))) {
|
||||
nameValidationError = qsTr("Please restrict your name to letters, numbers, dashes and spaces")
|
||||
//% "Please restrict your name to letters, numbers, dashes and spaces"
|
||||
nameValidationError = qsTrId("please-restrict-your-name-to-letters--numbers--dashes-and-spaces")
|
||||
} else if (nameInput.text.length > 100) {
|
||||
nameValidationError = qsTr("Your name needs to be 100 characters or shorter")
|
||||
//% "Your name needs to be 100 characters or shorter"
|
||||
nameValidationError = qsTrId("your-name-needs-to-be-100-characters-or-shorter")
|
||||
}
|
||||
|
||||
return !nameValidationError && !descriptionTextArea.validationError
|
||||
}
|
||||
|
||||
title: qsTr("New channel")
|
||||
//% "New channel"
|
||||
title: qsTrId("new-channel")
|
||||
|
||||
ScrollView {
|
||||
property ScrollBar vScrollBar: ScrollBar.vertical
|
||||
|
@ -57,16 +61,21 @@ ModalPopup {
|
|||
|
||||
Input {
|
||||
id: nameInput
|
||||
label: qsTr("Channel name")
|
||||
placeholderText: qsTr("A cool name")
|
||||
//% "Channel name"
|
||||
label: qsTrId("channel-name")
|
||||
//% "A cool name"
|
||||
placeholderText: qsTrId("a-cool-name")
|
||||
validationError: popup.nameValidationError
|
||||
}
|
||||
|
||||
StyledTextArea {
|
||||
id: descriptionTextArea
|
||||
label: qsTr("Channel description")
|
||||
placeholderText: qsTr("What your channel is about")
|
||||
validationError: descriptionTextArea.text.length > maxDescChars ? qsTr("The description cannot exceed %1 characters").arg(maxDescChars) : ""
|
||||
//% "Channel description"
|
||||
label: qsTrId("channel-description")
|
||||
//% "What your channel is about"
|
||||
placeholderText: qsTrId("what-your-channel-is-about")
|
||||
//% "The description cannot exceed %1 characters"
|
||||
validationError: descriptionTextArea.text.length > maxDescChars ? qsTrId("the-description-cannot-exceed--1-characters").arg(maxDescChars) : ""
|
||||
anchors.top: nameInput.bottom
|
||||
anchors.topMargin: Style.current.bigPadding
|
||||
customHeight: 88
|
||||
|
@ -96,7 +105,8 @@ ModalPopup {
|
|||
anchors.topMargin: Style.current.smallPadding * 2
|
||||
|
||||
StyledText {
|
||||
text: qsTr("Private channel")
|
||||
//% "Private channel"
|
||||
text: qsTrId("private-channel")
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
|
||||
|
@ -112,13 +122,15 @@ ModalPopup {
|
|||
wrapMode: Text.WordWrap
|
||||
anchors.topMargin: Style.current.smallPadding * 2
|
||||
width: parent.width
|
||||
text: qsTr("By making a channel private, only members with selected permission will be able to access it")
|
||||
//% "By making a channel private, only members with selected permission will be able to access it"
|
||||
text: qsTrId("by-making-a-channel-private--only-members-with-selected-permission-will-be-able-to-access-it")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
footer: StatusButton {
|
||||
text: qsTr("Create")
|
||||
//% "Create"
|
||||
text: qsTrId("create")
|
||||
anchors.right: parent.right
|
||||
onClicked: {
|
||||
if (!validate()) {
|
||||
|
@ -140,7 +152,8 @@ ModalPopup {
|
|||
|
||||
MessageDialog {
|
||||
id: creatingError
|
||||
title: qsTr("Error creating the community")
|
||||
//% "Error creating the community"
|
||||
title: qsTrId("error-creating-the-community")
|
||||
icon: StandardIcon.Critical
|
||||
standardButtons: StandardButton.Ok
|
||||
}
|
||||
|
|
|
@ -36,29 +36,37 @@ ModalPopup {
|
|||
selectedImageValidationError = ""
|
||||
|
||||
if (nameInput.text === "") {
|
||||
nameValidationError = qsTr("You need to enter a name")
|
||||
//% "You need to enter a name"
|
||||
nameValidationError = qsTrId("you-need-to-enter-a-name")
|
||||
} else if (!(/^[a-z0-9\-\ ]+$/i.test(nameInput.text))) {
|
||||
nameValidationError = qsTr("Please restrict your name to letters, numbers, dashes and spaces")
|
||||
//% "Please restrict your name to letters, numbers, dashes and spaces"
|
||||
nameValidationError = qsTrId("please-restrict-your-name-to-letters--numbers--dashes-and-spaces")
|
||||
} else if (nameInput.text.length > 100) {
|
||||
nameValidationError = qsTr("Your name needs to be 100 characters or shorter")
|
||||
//% "Your name needs to be 100 characters or shorter"
|
||||
nameValidationError = qsTrId("your-name-needs-to-be-100-characters-or-shorter")
|
||||
}
|
||||
|
||||
if (selectedImage === "") {
|
||||
selectedImageValidationError = qsTr("You need to select an image")
|
||||
//% "You need to select an image"
|
||||
selectedImageValidationError = qsTrId("you-need-to-select-an-image")
|
||||
}
|
||||
|
||||
if (colorPicker.text === "") {
|
||||
colorValidationError = qsTr("You need to enter a color")
|
||||
//% "You need to enter a color"
|
||||
colorValidationError = qsTrId("you-need-to-enter-a-color")
|
||||
} else if (!Utils.isHexColor(colorPicker.text)) {
|
||||
colorValidationError = qsTr("This field needs to be an hexadecimal color (eg: #4360DF)")
|
||||
//% "This field needs to be an hexadecimal color (eg: #4360DF)"
|
||||
colorValidationError = qsTrId("this-field-needs-to-be-an-hexadecimal-color--eg---4360df-")
|
||||
}
|
||||
|
||||
return !nameValidationError && !descriptionTextArea.validationError && !colorValidationError
|
||||
}
|
||||
|
||||
title: isEdit ?
|
||||
qsTr("Edit community") :
|
||||
qsTr("New community")
|
||||
//% "Edit community"
|
||||
qsTrId("edit-community") :
|
||||
//% "New community"
|
||||
qsTrId("new-community")
|
||||
|
||||
ScrollView {
|
||||
property ScrollBar vScrollBar: ScrollBar.vertical
|
||||
|
@ -83,16 +91,21 @@ ModalPopup {
|
|||
|
||||
Input {
|
||||
id: nameInput
|
||||
label: qsTr("Name your community")
|
||||
placeholderText: qsTr("A catchy name")
|
||||
//% "Name your community"
|
||||
label: qsTrId("name-your-community")
|
||||
//% "A catchy name"
|
||||
placeholderText: qsTrId("name-your-community-placeholder")
|
||||
validationError: popup.nameValidationError
|
||||
}
|
||||
|
||||
StyledTextArea {
|
||||
id: descriptionTextArea
|
||||
label: qsTr("Give it a short description")
|
||||
placeholderText: qsTr("What your community is about")
|
||||
validationError: descriptionTextArea.text.length > maxDescChars ? qsTr("The description cannot exceed 140 characters") : ""
|
||||
//% "Give it a short description"
|
||||
label: qsTrId("give-a-short-description-community")
|
||||
//% "What your community is about"
|
||||
placeholderText: qsTrId("what-your-community-is-about")
|
||||
//% "The description cannot exceed 140 characters"
|
||||
validationError: descriptionTextArea.text.length > maxDescChars ? qsTrId("the-description-cannot-exceed-140-characters") : ""
|
||||
anchors.top: nameInput.bottom
|
||||
anchors.topMargin: Style.current.bigPadding
|
||||
customHeight: 88
|
||||
|
@ -112,7 +125,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
id: thumbnailText
|
||||
text: qsTr("Thumbnail image")
|
||||
//% "Thumbnail image"
|
||||
text: qsTrId("thumbnail-image")
|
||||
anchors.top: descriptionTextArea.bottom
|
||||
anchors.topMargin: Style.current.smallPadding
|
||||
font.pixelSize: 15
|
||||
|
@ -181,7 +195,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
id: uploadText
|
||||
text: qsTr("Upload")
|
||||
//% "Upload"
|
||||
text: qsTrId("upload")
|
||||
anchors.top: imageImg.bottom
|
||||
anchors.topMargin: 5
|
||||
font.pixelSize: 15
|
||||
|
@ -216,8 +231,10 @@ ModalPopup {
|
|||
|
||||
Input {
|
||||
id: colorPicker
|
||||
label: qsTr("Community color")
|
||||
placeholderText: qsTr("Pick a color")
|
||||
//% "Community color"
|
||||
label: qsTrId("community-color")
|
||||
//% "Pick a color"
|
||||
placeholderText: qsTrId("pick-a-color")
|
||||
anchors.top: addImageButton.bottom
|
||||
anchors.topMargin: Style.current.smallPadding
|
||||
validationError: popup.colorValidationError
|
||||
|
@ -237,7 +254,8 @@ ModalPopup {
|
|||
|
||||
ColorDialog {
|
||||
id: colorDialog
|
||||
title: qsTr("Please choose a color")
|
||||
//% "Please choose a color"
|
||||
title: qsTrId("please-choose-a-color")
|
||||
onAccepted: {
|
||||
colorPicker.text = colorDialog.color
|
||||
}
|
||||
|
@ -260,7 +278,8 @@ ModalPopup {
|
|||
anchors.topMargin: isEdit ? 0 : Style.current.smallPadding * 2
|
||||
|
||||
StyledText {
|
||||
text: qsTr("Private community")
|
||||
//% "Private community"
|
||||
text: qsTrId("private-community")
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
|
||||
|
@ -279,16 +298,20 @@ ModalPopup {
|
|||
anchors.topMargin: isEdit ? 0 : Style.current.smallPadding * 2
|
||||
width: parent.width
|
||||
text: privateSwitch.checked ?
|
||||
qsTr("Only members with an invite link will be able to join your community. Private communities are not listed inside Status") :
|
||||
qsTr("Your community will be public for anyone to join. Public communities are listed inside Status for easy discovery")
|
||||
//% "Only members with an invite link will be able to join your community. Private communities are not listed inside Status"
|
||||
qsTrId("only-members-with-an-invite-link-will-be-able-to-join-your-community--private-communities-are-not-listed-inside-status") :
|
||||
//% "Your community will be public for anyone to join. Public communities are listed inside Status for easy discovery"
|
||||
qsTrId("your-community-will-be-public-for-anyone-to-join--public-communities-are-listed-inside-status-for-easy-discovery")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
footer: StatusButton {
|
||||
text: isEdit ?
|
||||
qsTr("Edit") :
|
||||
qsTr("Create")
|
||||
//% "Edit"
|
||||
qsTrId("edit") :
|
||||
//% "Create"
|
||||
qsTrId("create")
|
||||
anchors.right: parent.right
|
||||
onClicked: {
|
||||
if (!validate()) {
|
||||
|
@ -317,7 +340,8 @@ ModalPopup {
|
|||
|
||||
MessageDialog {
|
||||
id: creatingError
|
||||
title: qsTr("Error creating the community")
|
||||
//% "Error creating the community"
|
||||
title: qsTrId("error-creating-the-community")
|
||||
icon: StandardIcon.Critical
|
||||
standardButtons: StandardButton.Ok
|
||||
}
|
||||
|
|
|
@ -20,25 +20,30 @@ ModalPopup {
|
|||
keyValidationError = ""
|
||||
|
||||
if (keyInput.text === "") {
|
||||
keyValidationError = qsTr("You need to enter a key")
|
||||
//% "You need to enter a key"
|
||||
keyValidationError = qsTrId("you-need-to-enter-a-key")
|
||||
}
|
||||
|
||||
return !keyValidationError
|
||||
}
|
||||
|
||||
title: qsTr("Import a community")
|
||||
//% "Import a community"
|
||||
title: qsTrId("import-community")
|
||||
|
||||
|
||||
Input {
|
||||
id: keyInput
|
||||
label: qsTr("Community key")
|
||||
placeholderText: qsTr("0x...")
|
||||
//% "Community key"
|
||||
label: qsTrId("community-key")
|
||||
//% "0x..."
|
||||
placeholderText: qsTrId("0x---")
|
||||
validationError: popup.keyValidationError
|
||||
pasteFromClipboard: true
|
||||
}
|
||||
|
||||
footer: StatusButton {
|
||||
text: qsTr("Import")
|
||||
//% "Import"
|
||||
text: qsTrId("import")
|
||||
anchors.right: parent.right
|
||||
onClicked: {
|
||||
if (!validate()) {
|
||||
|
@ -62,7 +67,8 @@ ModalPopup {
|
|||
|
||||
MessageDialog {
|
||||
id: creatingError
|
||||
title: qsTr("Error importing the community")
|
||||
//% "Error importing the community"
|
||||
title: qsTrId("error-importing-the-community")
|
||||
icon: StandardIcon.Critical
|
||||
standardButtons: StandardButton.Ok
|
||||
}
|
||||
|
|
|
@ -24,7 +24,8 @@ ModalPopup {
|
|||
contactList.visible = !noContactsRect.visible;
|
||||
}
|
||||
|
||||
title: qsTr("Invite friends")
|
||||
//% "Invite friends"
|
||||
title: qsTrId("invite-friends")
|
||||
|
||||
Item {
|
||||
anchors.fill: parent
|
||||
|
@ -33,7 +34,8 @@ ModalPopup {
|
|||
TextWithLabel {
|
||||
id: shareCommunity
|
||||
anchors.top: parent.top
|
||||
label: qsTr("Share community")
|
||||
//% "Share community"
|
||||
label: qsTrId("share-community")
|
||||
text: "https://join.status.im/u/TODO"
|
||||
textToCopy: text
|
||||
}
|
||||
|
@ -49,7 +51,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
StyledText {
|
||||
text: qsTr("Contacts")
|
||||
//% "Contacts"
|
||||
text: qsTrId("contacts")
|
||||
anchors.left: parent.left
|
||||
anchors.top: sep.bottom
|
||||
anchors.topMargin: Style.current.smallPadding
|
||||
|
@ -107,7 +110,8 @@ ModalPopup {
|
|||
id: inviteBtn
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.right: parent.right
|
||||
text: qsTr("Invite")
|
||||
//% "Invite"
|
||||
text: qsTrId("invite-button")
|
||||
onClicked : {
|
||||
console.log('invite')
|
||||
popup.pubKeys.forEach(function (pubKey) {
|
||||
|
|
|
@ -47,7 +47,8 @@ StatusRoundButton {
|
|||
}
|
||||
Action {
|
||||
enabled: appSettings.communitiesEnabled
|
||||
text: qsTr("Communities")
|
||||
//% "Communities"
|
||||
text: qsTrId("communities")
|
||||
icon.source: "../../../img/communities.svg"
|
||||
icon.width: 20
|
||||
icon.height: 20
|
||||
|
|
|
@ -71,7 +71,8 @@ Item {
|
|||
color: Style.current.darkGrey
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: qsTr("No search results")
|
||||
//% "No search results"
|
||||
text: qsTrId("no-search-results")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,8 @@ ModalPopup {
|
|||
|
||||
id: popup
|
||||
|
||||
title: qsTr("Choose browser")
|
||||
//% "Choose browser"
|
||||
title: qsTrId("choose-browser")
|
||||
width: 440
|
||||
height: 425
|
||||
|
||||
|
@ -25,7 +26,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
StatusButton {
|
||||
text: qsTr("Open in Status")
|
||||
//% "Open in Status"
|
||||
text: qsTrId("browsing-open-in-status")
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
onClicked: {
|
||||
appSettings.showBrowserSelector = !rememberChoiceCheckBox.checked
|
||||
|
@ -36,7 +38,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
StatusButton {
|
||||
text: qsTr("Open in my default browser")
|
||||
//% "Open in my default browser"
|
||||
text: qsTrId("open-in-my-default-browser")
|
||||
type: "secondary"
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
onClicked: {
|
||||
|
@ -48,7 +51,8 @@ ModalPopup {
|
|||
|
||||
StatusCheckBox {
|
||||
id: rememberChoiceCheckBox
|
||||
text: qsTr("Remember my choice. To override it, go to settings.")
|
||||
//% "Remember my choice. To override it, go to settings."
|
||||
text: qsTrId("remember-my-choice--to-override-it--go-to-settings-")
|
||||
width: parent.width
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,9 +45,11 @@ ModalPopup {
|
|||
|
||||
function validate() {
|
||||
if (groupName.text === "") {
|
||||
channelNameValidationError = qsTr("You need to enter a channel name")
|
||||
//% "You need to enter a channel name"
|
||||
channelNameValidationError = qsTrId("you-need-to-enter-a-channel-name")
|
||||
} else if (!Utils.isValidChannelName(groupName.text)) {
|
||||
channelNameValidationError = qsTr("The channel name can only contain lowercase letters, numbers and dashes")
|
||||
//% "The channel name can only contain lowercase letters, numbers and dashes"
|
||||
channelNameValidationError = qsTrId("the-channel-name-can-only-contain-lowercase-letters--numbers-and-dashes")
|
||||
} else {
|
||||
channelNameValidationError = ""
|
||||
}
|
||||
|
|
|
@ -232,7 +232,8 @@ ModalPopup {
|
|||
visible: model.pubKey === profileModel.profile.pubKey
|
||||
anchors.left: parent.right
|
||||
anchors.leftMargin: 5
|
||||
text: qsTr("(You)")
|
||||
//% "(You)"
|
||||
text: qsTrId("-you-")
|
||||
color: Style.current.secondaryText
|
||||
font.pixelSize: parent.font.pixelSize
|
||||
}
|
||||
|
|
|
@ -125,7 +125,7 @@ PopupMenu {
|
|||
|
||||
Action {
|
||||
id: viewProfileAction
|
||||
//% "View profile"
|
||||
//% "View Profile"
|
||||
text: qsTrId("view-profile")
|
||||
onTriggered: {
|
||||
openProfilePopup(userName, fromAuthor, identicon, "", nickname);
|
||||
|
|
|
@ -6,7 +6,8 @@ import "../../../../shared/status"
|
|||
Rectangle {
|
||||
id: noContactsRect
|
||||
width: 260
|
||||
property string text: qsTr("You don’t have any contacts yet. Invite your friends to start chatting.")
|
||||
//% "You don’t have any contacts yet. Invite your friends to start chatting."
|
||||
property string text: qsTrId("you-don-t-have-any-contacts-yet--invite-your-friends-to-start-chatting-")
|
||||
StyledText {
|
||||
id: noContacts
|
||||
text: noContactsRect.text
|
||||
|
|
|
@ -14,11 +14,13 @@ ModalPopup {
|
|||
|
||||
function validate() {
|
||||
if (!Utils.isChatKey(chatKey.text) && !Utils.isValidETHNamePrefix(chatKey.text)) {
|
||||
validationError = qsTr("Enter a valid chat key or ENS username");
|
||||
//% "Enter a valid chat key or ENS username"
|
||||
validationError = qsTrId("enter-a-valid-chat-key-or-ens-username");
|
||||
pubKey = ""
|
||||
ensUsername.text = "";
|
||||
} else if (profileModel.profile.pubKey === chatKey.text) {
|
||||
validationError = qsTr("Can't chat with yourself");
|
||||
//% "Can't chat with yourself"
|
||||
validationError = qsTrId("can-t-chat-with-yourself");
|
||||
} else {
|
||||
validationError = ""
|
||||
}
|
||||
|
@ -106,7 +108,8 @@ ModalPopup {
|
|||
searchResults.showProfileNotFoundMessage = true
|
||||
} else {
|
||||
if (profileModel.profile.pubKey === resolvedPubKey) {
|
||||
popup.validationError = qsTr("Can't chat with yourself");
|
||||
//% "Can't chat with yourself"
|
||||
popup.validationError = qsTrId("can-t-chat-with-yourself");
|
||||
} else {
|
||||
searchResults.username = chatsModel.formatENSUsername(chatKey.text)
|
||||
let userAlias = utilsModel.generateAlias(resolvedPubKey)
|
||||
|
|
|
@ -23,7 +23,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: nonContactsLabel
|
||||
text: qsTr("Non contacts")
|
||||
//% "Non contacts"
|
||||
text: qsTrId("non-contacts")
|
||||
anchors.top: parent.top
|
||||
color: Style.current.secondaryText
|
||||
font.pixelSize: 15
|
||||
|
@ -138,7 +139,8 @@ Item {
|
|||
font.pixelSize: 15
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
text: qsTr("No profile found")
|
||||
//% "No profile found"
|
||||
text: qsTrId("no-profile-found")
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -185,7 +185,8 @@ ModalPopup {
|
|||
|
||||
TextWithLabel {
|
||||
id: valueShareURL
|
||||
label: qsTr("Share Profile URL")
|
||||
//% "Share Profile URL"
|
||||
label: qsTrId("share-profile-url")
|
||||
text: "https://join.status.im/u/" + fromAuthor.substr(
|
||||
0, 4) + "..." + fromAuthor.substr(fromAuthor.length - 5)
|
||||
anchors.top: separator.top
|
||||
|
@ -279,8 +280,10 @@ ModalPopup {
|
|||
borderColor: Style.current.border
|
||||
hoveredBorderColor: Style.current.transparent
|
||||
text: isBlocked ?
|
||||
qsTr("Unblock User") :
|
||||
qsTr("Block User")
|
||||
//% "Unblock User"
|
||||
qsTrId("unblock-user") :
|
||||
//% "Block User"
|
||||
qsTrId("block-user")
|
||||
onClicked: {
|
||||
if (isBlocked) {
|
||||
unblockContactConfirmationDialog.contactName = userName;
|
||||
|
@ -329,7 +332,7 @@ ModalPopup {
|
|||
id: sendMessageBtn
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
//% "Send Message"
|
||||
//% "Send message"
|
||||
text: qsTrId("send-message")
|
||||
visible: !isBlocked && chatsModel.activeChannel.id !== popup.fromAuthor
|
||||
width: visible ? implicitWidth : 0
|
||||
|
|
|
@ -12,9 +12,11 @@ ModalPopup {
|
|||
|
||||
function validate() {
|
||||
if (channelName.text === "") {
|
||||
channelNameValidationError = qsTr("You need to enter a channel name")
|
||||
//% "You need to enter a channel name"
|
||||
channelNameValidationError = qsTrId("you-need-to-enter-a-channel-name")
|
||||
} else if (!Utils.isValidChannelName(channelName.text)) {
|
||||
channelNameValidationError = qsTr("The channel name can only contain lowercase letters, numbers and dashes")
|
||||
//% "The channel name can only contain lowercase letters, numbers and dashes"
|
||||
channelNameValidationError = qsTrId("the-channel-name-can-only-contain-lowercase-letters--numbers-and-dashes")
|
||||
} else {
|
||||
channelNameValidationError = ""
|
||||
}
|
||||
|
|
|
@ -21,17 +21,21 @@ Item {
|
|||
anchors.rightMargin: contentMargin
|
||||
|
||||
StatusSectionDescItem {
|
||||
name: qsTr("App version")
|
||||
description: qsTr("Version: %1").arg("beta.5")
|
||||
//% "App version"
|
||||
name: qsTrId("version")
|
||||
//% "Version: %1"
|
||||
description: qsTrId("version---1").arg("beta.5")
|
||||
}
|
||||
|
||||
StatusSectionDescItem {
|
||||
name: qsTr("Node version ")
|
||||
//% "Node version "
|
||||
name: qsTrId("node-version-")
|
||||
description: profileModel.nodeVersion()
|
||||
}
|
||||
|
||||
StyledText {
|
||||
text: qsTr("Check for updates")
|
||||
//% "Check for updates"
|
||||
text: qsTrId("check-for-updates")
|
||||
font.pixelSize: 15
|
||||
color: Style.current.blue
|
||||
|
||||
|
@ -52,7 +56,8 @@ Item {
|
|||
}
|
||||
|
||||
StyledText {
|
||||
text: qsTr("Privacy Policy")
|
||||
//% "Privacy Policy"
|
||||
text: qsTrId("privacy-policy")
|
||||
font.pixelSize: 15
|
||||
color: Style.current.blue
|
||||
|
||||
|
|
|
@ -21,13 +21,15 @@ Item {
|
|||
anchors.rightMargin: contentMargin
|
||||
|
||||
StatusSettingsLineButton {
|
||||
text: qsTr("Network")
|
||||
//% "Network"
|
||||
text: qsTrId("network")
|
||||
currentValue: utilsModel.getNetworkName()
|
||||
onClicked: networksModal.open()
|
||||
}
|
||||
|
||||
StatusSettingsLineButton {
|
||||
text: qsTr("Fleet")
|
||||
//% "Fleet"
|
||||
text: qsTrId("fleet")
|
||||
currentValue: profileModel.fleets.fleet
|
||||
onClicked: fleetModal.open()
|
||||
}
|
||||
|
@ -47,13 +49,15 @@ Item {
|
|||
}
|
||||
|
||||
StatusSectionHeadline {
|
||||
text: qsTr("Experimental features")
|
||||
//% "Experimental features"
|
||||
text: qsTrId("experimental-features")
|
||||
topPadding: Style.current.bigPadding
|
||||
bottomPadding: Style.current.padding
|
||||
}
|
||||
|
||||
StatusSettingsLineButton {
|
||||
text: qsTr("Wallet")
|
||||
//% "Wallet"
|
||||
text: qsTrId("wallet")
|
||||
isSwitch: true
|
||||
switchChecked: appSettings.walletEnabled
|
||||
onClicked: function (checked) {
|
||||
|
@ -62,7 +66,8 @@ Item {
|
|||
}
|
||||
|
||||
StatusSettingsLineButton {
|
||||
text: qsTr("Dapp Browser")
|
||||
//% "Dapp Browser"
|
||||
text: qsTrId("dapp-browser")
|
||||
isSwitch: true
|
||||
switchChecked: appSettings.browserEnabled
|
||||
onClicked: function (checked) {
|
||||
|
@ -71,7 +76,8 @@ Item {
|
|||
}
|
||||
|
||||
StatusSettingsLineButton {
|
||||
text: qsTr("Communities")
|
||||
//% "Communities"
|
||||
text: qsTrId("communities")
|
||||
isSwitch: true
|
||||
switchChecked: appSettings.communitiesEnabled
|
||||
onClicked: function (checked) {
|
||||
|
@ -80,7 +86,8 @@ Item {
|
|||
}
|
||||
|
||||
StatusSettingsLineButton {
|
||||
text: qsTr("Node Management")
|
||||
//% "Node Management"
|
||||
text: qsTrId("node-management")
|
||||
isSwitch: true
|
||||
switchChecked: appSettings.nodeManagementEnabled
|
||||
onClicked: function (checked) {
|
||||
|
|
|
@ -53,7 +53,8 @@ ScrollView {
|
|||
|
||||
StatusSectionHeadline {
|
||||
id: sectionHeadlinePreview
|
||||
text: qsTr("Preview")
|
||||
//% "Preview"
|
||||
text: qsTrId("preview")
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
@ -80,7 +81,8 @@ ScrollView {
|
|||
anchors.leftMargin: Style.current.smallPadding
|
||||
userName: "@vitalik"
|
||||
identicon: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAb0lEQVR4Ae3UQQqAIBRF0Wj9ba9Bq6l5JBQqfn/ngDMH3YS3AAB/tO3H+XRG3b9bR/+gVoREI2RapVXpfd5+X5oXERKNkHS+rk3tOpWkeREh0QiZVu91ql2zNC8iJBoh0yqtSqt1slpCghICANDPBc0ESPh0bHkHAAAAAElFTkSuQmCC"
|
||||
message: qsTr("Blockchains will drop search costs, causing a kind of decomposition that allows you to have markets of entities that are horizontally segregated and vertically segregated.")
|
||||
//% "Blockchains will drop search costs, causing a kind of decomposition that allows you to have markets of entities that are horizontally segregated and vertically segregated."
|
||||
message: qsTrId("blockchains-will-drop-search-costs--causing-a-kind-of-decomposition-that-allows-you-to-have-markets-of-entities-that-are-horizontally-segregated-and-vertically-segregated-")
|
||||
contentType: Constants.messageType
|
||||
placeholderMessage: true
|
||||
}
|
||||
|
@ -88,7 +90,8 @@ ScrollView {
|
|||
|
||||
StatusSectionHeadline {
|
||||
id: sectionHeadlineFontSize
|
||||
text: qsTr("Size")
|
||||
//% "Size"
|
||||
text: qsTrId("size")
|
||||
anchors.top: preview.bottom
|
||||
anchors.topMargin: Style.current.padding
|
||||
anchors.left: parent.left
|
||||
|
@ -101,7 +104,8 @@ ScrollView {
|
|||
anchors.topMargin: Style.current.padding
|
||||
anchors.left: parent.left
|
||||
font.pixelSize: 15
|
||||
text: qsTr("Change font size")
|
||||
//% "Change font size"
|
||||
text: qsTrId("change-font-size")
|
||||
}
|
||||
|
||||
StatusSlider {
|
||||
|
@ -129,41 +133,47 @@ ScrollView {
|
|||
|
||||
StyledText {
|
||||
font.pixelSize: 15
|
||||
text: qsTr("XS")
|
||||
//% "XS"
|
||||
text: qsTrId("xs")
|
||||
Layout.preferredWidth: fontSizeSlider.width/6
|
||||
}
|
||||
|
||||
StyledText {
|
||||
font.pixelSize: 15
|
||||
text: qsTr("S")
|
||||
//% "S"
|
||||
text: qsTrId("s")
|
||||
Layout.preferredWidth: fontSizeSlider.width/6
|
||||
Layout.leftMargin: 2
|
||||
}
|
||||
|
||||
StyledText {
|
||||
font.pixelSize: 15
|
||||
text: qsTr("M")
|
||||
//% "M"
|
||||
text: qsTrId("m")
|
||||
Layout.preferredWidth: fontSizeSlider.width/6
|
||||
Layout.leftMargin: 2
|
||||
}
|
||||
|
||||
StyledText {
|
||||
font.pixelSize: 15
|
||||
text: qsTr("L")
|
||||
//% "L"
|
||||
text: qsTrId("l")
|
||||
Layout.preferredWidth: fontSizeSlider.width/6
|
||||
Layout.leftMargin: 2
|
||||
}
|
||||
|
||||
StyledText {
|
||||
font.pixelSize: 15
|
||||
text: qsTr("XL")
|
||||
//% "XL"
|
||||
text: qsTrId("xl")
|
||||
Layout.preferredWidth: fontSizeSlider.width/6
|
||||
Layout.leftMargin: 0
|
||||
}
|
||||
|
||||
StyledText {
|
||||
font.pixelSize: 15
|
||||
text: qsTr("XXL")
|
||||
//% "XXL"
|
||||
text: qsTrId("xxl")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
Layout.leftMargin: -Style.current.smallPadding
|
||||
}
|
||||
|
@ -171,7 +181,8 @@ ScrollView {
|
|||
|
||||
StatusSectionHeadline {
|
||||
id: sectionHeadlineChatMode
|
||||
text: qsTr("Chat mode")
|
||||
//% "Chat mode"
|
||||
text: qsTrId("chat-mode")
|
||||
anchors.top: fontSizeSliderLegend.bottom
|
||||
anchors.topMargin: Style.current.padding*2
|
||||
anchors.left: parent.left
|
||||
|
@ -191,7 +202,8 @@ ScrollView {
|
|||
padding: Style.current.padding
|
||||
image.source: "../../../img/appearance-normal-light.svg"
|
||||
image.height: 186
|
||||
control.text: qsTr("Normal")
|
||||
//% "Normal"
|
||||
control.text: qsTrId("normal")
|
||||
control.checked: !appSettings.useCompactMode
|
||||
onRadioCheckedChanged: {
|
||||
if (checked) {
|
||||
|
@ -204,7 +216,8 @@ ScrollView {
|
|||
padding: Style.current.padding
|
||||
image.source: "../../../img/appearance-compact-light.svg"
|
||||
image.height: 186
|
||||
control.text: qsTr("Compact")
|
||||
//% "Compact"
|
||||
control.text: qsTrId("compact")
|
||||
control.checked: appSettings.useCompactMode
|
||||
onRadioCheckedChanged: {
|
||||
if (checked) {
|
||||
|
@ -216,7 +229,8 @@ ScrollView {
|
|||
|
||||
StatusSectionHeadline {
|
||||
id: sectionHeadlineAppearance
|
||||
text: qsTr("Appearance")
|
||||
//% "Appearance"
|
||||
text: qsTrId("appearance")
|
||||
anchors.top: chatModeSection.bottom
|
||||
anchors.topMargin: Style.current.padding*3
|
||||
anchors.left: parent.left
|
||||
|
@ -238,7 +252,8 @@ ScrollView {
|
|||
height: 184
|
||||
image.source: "../../../img/appearance-normal-light.svg"
|
||||
image.height: 128
|
||||
control.text: qsTr("Light")
|
||||
//% "Light"
|
||||
control.text: qsTrId("light")
|
||||
control.checked: profileModel.profile.appearance === AppearanceContainer.Theme.Light
|
||||
onRadioCheckedChanged: {
|
||||
if (checked) {
|
||||
|
@ -253,7 +268,8 @@ ScrollView {
|
|||
height: 184
|
||||
image.source: "../../../img/appearance-normal-dark.svg"
|
||||
image.height: 128
|
||||
control.text: qsTr("Dark")
|
||||
//% "Dark"
|
||||
control.text: qsTrId("dark")
|
||||
control.checked: profileModel.profile.appearance === AppearanceContainer.Theme.Dark
|
||||
onRadioCheckedChanged: {
|
||||
if (checked) {
|
||||
|
@ -268,7 +284,8 @@ ScrollView {
|
|||
height: 184
|
||||
image.source: "../../../img/appearance-normal-system.png"
|
||||
image.height: 128
|
||||
control.text: qsTr("System")
|
||||
//% "System"
|
||||
control.text: qsTrId("system")
|
||||
control.checked: profileModel.profile.appearance === AppearanceContainer.Theme.System
|
||||
onRadioCheckedChanged: {
|
||||
if (checked) {
|
||||
|
|
|
@ -24,7 +24,8 @@ ModalPopup {
|
|||
height: 50
|
||||
StyledText {
|
||||
id: lblTitle
|
||||
text: qsTr("Back up seed phrase")
|
||||
//% "Back up seed phrase"
|
||||
text: qsTrId("back-up-seed-phrase")
|
||||
font.pixelSize: 17
|
||||
font.bold: true
|
||||
anchors.left: parent.left
|
||||
|
@ -32,7 +33,8 @@ ModalPopup {
|
|||
StyledText {
|
||||
anchors.top: lblTitle.bottom
|
||||
anchors.topMargin: Style.current.smallPadding
|
||||
text: qsTr("Step %1 of 3").arg(seedWord2Idx > -1 ? 3 : (seedWord1Idx > -1 ? 2 : 1))
|
||||
//% "Step %1 of 3"
|
||||
text: qsTrId("step--1-of-3").arg(seedWord2Idx > -1 ? 3 : (seedWord1Idx > -1 ? 2 : 1))
|
||||
font.pixelSize: 14
|
||||
anchors.left: parent.left
|
||||
}
|
||||
|
@ -121,7 +123,8 @@ ModalPopup {
|
|||
anchors.right: parent.right
|
||||
StyledText {
|
||||
id: lblLoseSeed
|
||||
text: qsTr("If you lose your seed phrase you lose your data and funds")
|
||||
//% "If you lose your seed phrase you lose your data and funds"
|
||||
text: qsTrId("your-data-belongs-to-you")
|
||||
wrapMode: Text.WordWrap
|
||||
font.pixelSize: 17
|
||||
font.bold: true
|
||||
|
@ -132,7 +135,8 @@ ModalPopup {
|
|||
anchors.top: lblLoseSeed.bottom
|
||||
anchors.topMargin: Style.current.smallPadding
|
||||
wrapMode: Text.WordWrap
|
||||
text: qsTr("If you lose access, for example by losing your phone, you can only access your keys with your seed phrase. No one, but you has your seed phrase. Write it down. Keep it safe")
|
||||
//% "If you lose access, for example by losing your phone, you can only access your keys with your seed phrase. No one, but you has your seed phrase. Write it down. Keep it safe"
|
||||
text: qsTrId("your-data-belongs-to-you-description")
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
}
|
||||
|
@ -144,10 +148,12 @@ ModalPopup {
|
|||
anchors.right: parent.right
|
||||
StyledText {
|
||||
id: txtChk
|
||||
text: qsTr("Check your seed phrase")
|
||||
//% "Check your seed phrase"
|
||||
text: qsTrId("check-your-recovery-phrase")
|
||||
}
|
||||
StyledText {
|
||||
text: qsTr("Word #%1").arg((seedWord2Idx > -1 ? seedWord2Idx : seedWord1Idx) + 1)
|
||||
//% "Word #%1"
|
||||
text: qsTrId("word---1").arg((seedWord2Idx > -1 ? seedWord2Idx : seedWord1Idx) + 1)
|
||||
anchors.left: txtChk.right
|
||||
anchors.leftMargin: 5
|
||||
color: Style.current.secondaryText
|
||||
|
@ -159,7 +165,8 @@ ModalPopup {
|
|||
anchors.topMargin: Style.current.padding
|
||||
anchors.left: txtChk.left
|
||||
anchors.right: parent.right
|
||||
placeholderText: qsTr("Enter word")
|
||||
//% "Enter word"
|
||||
placeholderText: qsTrId("enter-word")
|
||||
text: ""
|
||||
validationError: popup.validationError
|
||||
}
|
||||
|
@ -170,14 +177,17 @@ ModalPopup {
|
|||
wrapMode: Text.WordWrap
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
text: qsTr("In order to check if you have backed up your seed phrase correctly, enter the word #%1 above").arg((seedWord2Idx > -1 ? seedWord2Idx : seedWord1Idx) + 1)
|
||||
//% "In order to check if you have backed up your seed phrase correctly, enter the word #%1 above"
|
||||
text: qsTrId("in-order-to-check-if-you-have-backed-up-your-seed-phrase-correctly--enter-the-word---1-above").arg((seedWord2Idx > -1 ? seedWord2Idx : seedWord1Idx) + 1)
|
||||
color: Style.current.secondaryText
|
||||
}
|
||||
|
||||
ConfirmationDialog {
|
||||
id: removeSeedPhraseConfirm
|
||||
title: qsTr("Are you sure?")
|
||||
confirmationText: qsTr("You will not be able to see the whole seed phrase again")
|
||||
//% "Are you sure?"
|
||||
title: qsTrId("are-you-sure?")
|
||||
//% "You will not be able to see the whole seed phrase again"
|
||||
confirmationText: qsTrId("are-you-sure-description")
|
||||
onConfirmButtonClicked: {
|
||||
profileModel.mnemonic.remove()
|
||||
popup.close();
|
||||
|
@ -214,8 +224,10 @@ ModalPopup {
|
|||
|
||||
footer: StatusButton {
|
||||
text: showWarning ?
|
||||
qsTr("Okay, continue") :
|
||||
qsTrId("Next")
|
||||
//% "Okay, continue"
|
||||
qsTrId("ok-continue") :
|
||||
//% "Next"
|
||||
qsTrId("next")
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.smallPadding
|
||||
anchors.bottom: parent.bottom
|
||||
|
@ -228,7 +240,8 @@ ModalPopup {
|
|||
} else {
|
||||
if(seedWord2Idx == -1){
|
||||
if(profileModel.mnemonic.getWord(seedWord1Idx) !== txtFieldWord.text){
|
||||
validationError = qsTr("Wrong word");
|
||||
//% "Wrong word"
|
||||
validationError = qsTrId("wrong-word");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -240,7 +253,8 @@ ModalPopup {
|
|||
} while(seedWord2Idx == seedWord1Idx);
|
||||
} else {
|
||||
if(profileModel.mnemonic.getWord(seedWord2Idx) !== txtFieldWord.text){
|
||||
validationError = qsTr("Wrong word");
|
||||
//% "Wrong word"
|
||||
validationError = qsTrId("wrong-word");
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -32,18 +32,22 @@ Item {
|
|||
width: parent.width
|
||||
|
||||
StatusSectionHeadline {
|
||||
text: qsTr("General")
|
||||
//% "General"
|
||||
text: qsTrId("general")
|
||||
bottomPadding: Style.current.bigPadding
|
||||
}
|
||||
|
||||
StatusSettingsLineButton {
|
||||
text: qsTr("Homepage")
|
||||
currentValue: appSettings.browserHomepage === "" ? qsTr("Default") : appSettings.browserHomepage
|
||||
//% "Homepage"
|
||||
text: qsTrId("homepage")
|
||||
//% "Default"
|
||||
currentValue: appSettings.browserHomepage === "" ? qsTrId("default") : appSettings.browserHomepage
|
||||
onClicked: homePagePopup.createObject(root).open()
|
||||
}
|
||||
|
||||
StatusSettingsLineButton {
|
||||
text: qsTr("Show favorites bar")
|
||||
//% "Show favorites bar"
|
||||
text: qsTrId("show-favorites-bar")
|
||||
isSwitch: true
|
||||
switchChecked: appSettings.showFavoritesBar
|
||||
onClicked: function (checked) {
|
||||
|
@ -52,14 +56,16 @@ Item {
|
|||
}
|
||||
|
||||
StatusSettingsLineButton {
|
||||
text: qsTr("Search engine used in the address bar")
|
||||
//% "Search engine used in the address bar"
|
||||
text: qsTrId("search-engine-used-in-the-address-bar")
|
||||
currentValue: {
|
||||
switch (appSettings.browserSearchEngine) {
|
||||
case Constants.browserSearchEngineGoogle: return "Google"
|
||||
case Constants.browserSearchEngineYahoo: return "Yahoo!"
|
||||
case Constants.browserSearchEngineDuckDuckGo: return "DuckDuckGo"
|
||||
case Constants.browserSearchEngineNone:
|
||||
default: return qsTr("None")
|
||||
//% "None"
|
||||
default: return qsTrId("none")
|
||||
}
|
||||
}
|
||||
onClicked: searchEngineModal.createObject(root).open()
|
||||
|
@ -67,20 +73,23 @@ Item {
|
|||
|
||||
StatusSettingsLineButton {
|
||||
id: ethereumExplorerBtn
|
||||
text: qsTr("Ethereum explorer used in the address bar")
|
||||
//% "Ethereum explorer used in the address bar"
|
||||
text: qsTrId("ethereum-explorer-used-in-the-address-bar")
|
||||
currentValue: {
|
||||
switch (appSettings.browserEthereumExplorer) {
|
||||
case Constants.browserEthereumExplorerEtherscan: return "etherscan.io"
|
||||
case Constants.browserEthereumExplorerEthplorer: return "ethplorer.io"
|
||||
case Constants.browserEthereumExplorerBlockchair: return "blockchair.com"
|
||||
case Constants.browserSearchEngineNone:
|
||||
default: return qsTr("None")
|
||||
//% "None"
|
||||
default: return qsTrId("none")
|
||||
}
|
||||
}
|
||||
onClicked: ethereumExplorerModal.createObject(root).open()
|
||||
}
|
||||
StyledText {
|
||||
text: qsTr("Open an ethereum explorer after a transaction hash or an address is entered")
|
||||
//% "Open an ethereum explorer after a transaction hash or an address is entered"
|
||||
text: qsTrId("open-an-ethereum-explorer-after-a-transaction-hash-or-an-address-is-entered")
|
||||
font.pixelSize: 15
|
||||
color: Style.current.secondaryText
|
||||
width: parent.width - 150
|
||||
|
@ -98,13 +107,15 @@ Item {
|
|||
}
|
||||
|
||||
StatusSectionHeadline {
|
||||
text: qsTr("Privacy")
|
||||
//% "Privacy"
|
||||
text: qsTrId("privacy")
|
||||
topPadding: Style.current.bigPadding
|
||||
bottomPadding: Style.current.padding
|
||||
}
|
||||
|
||||
StatusSettingsLineButton {
|
||||
text: qsTr("Set DApp access permissions")
|
||||
//% "Set DApp access permissions"
|
||||
text: qsTrId("set-dapp-access-permissions")
|
||||
isSwitch: false
|
||||
onClicked: {
|
||||
dappListPopup.createObject(root).open()
|
||||
|
|
|
@ -7,7 +7,8 @@ import "../../../../../shared/status"
|
|||
ModalPopup {
|
||||
id: popup
|
||||
|
||||
title: qsTr("Ethereum explorer")
|
||||
//% "Ethereum explorer"
|
||||
title: qsTrId("ethereum-explorer")
|
||||
|
||||
onClosed: {
|
||||
destroy()
|
||||
|
@ -22,7 +23,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
StatusRadioButton {
|
||||
text: qsTr("None")
|
||||
//% "None"
|
||||
text: qsTrId("none")
|
||||
ButtonGroup.group: searchEnginGroup
|
||||
checked: appSettings.browserEthereumExplorer === Constants.browserEthereumExplorerNone
|
||||
onCheckedChanged: {
|
||||
|
|
|
@ -7,7 +7,8 @@ import "../../../../../shared/status"
|
|||
ModalPopup {
|
||||
id: popup
|
||||
|
||||
title: qsTr("Homepage")
|
||||
//% "Homepage"
|
||||
title: qsTrId("homepage")
|
||||
|
||||
onClosed: {
|
||||
destroy()
|
||||
|
@ -22,7 +23,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
StatusRadioButton {
|
||||
text: qsTr("Default")
|
||||
//% "Default"
|
||||
text: qsTrId("default")
|
||||
ButtonGroup.group: homepageGroup
|
||||
checked: appSettings.browserHomepage === ""
|
||||
onCheckedChanged: {
|
||||
|
@ -34,7 +36,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
StatusRadioButton {
|
||||
text: qsTr("Custom...")
|
||||
//% "Custom..."
|
||||
text: qsTrId("custom---")
|
||||
ButtonGroup.group: homepageGroup
|
||||
checked: appSettings.browserHomepage !== "" || customUrl.visible
|
||||
onClicked: {
|
||||
|
@ -45,7 +48,8 @@ ModalPopup {
|
|||
Input {
|
||||
id: customUrl
|
||||
visible: appSettings.browserHomepage !== ""
|
||||
placeholderText: qsTr("Paste URL")
|
||||
//% "Paste URL"
|
||||
placeholderText: qsTrId("paste-url")
|
||||
text: appSettings.browserHomepage
|
||||
pasteFromClipboard: true
|
||||
textField.onTextChanged: {
|
||||
|
|
|
@ -7,7 +7,8 @@ import "../../../../../shared/status"
|
|||
ModalPopup {
|
||||
id: popup
|
||||
|
||||
title: qsTr("Search engine")
|
||||
//% "Search engine"
|
||||
title: qsTrId("search-engine")
|
||||
|
||||
onClosed: {
|
||||
destroy()
|
||||
|
@ -22,7 +23,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
StatusRadioButton {
|
||||
text: qsTr("None")
|
||||
//% "None"
|
||||
text: qsTrId("none")
|
||||
ButtonGroup.group: searchEnginGroup
|
||||
checked: appSettings.browserSearchEngine === Constants.browserSearchEngineNone
|
||||
onCheckedChanged: {
|
||||
|
|
|
@ -10,7 +10,8 @@ ModalPopup {
|
|||
|
||||
id: popup
|
||||
|
||||
title: qsTr("Profile picture")
|
||||
//% "Profile picture"
|
||||
title: qsTrId("profile-picture")
|
||||
|
||||
onClosed: {
|
||||
destroy()
|
||||
|
@ -57,7 +58,8 @@ ModalPopup {
|
|||
id: cropImageModal
|
||||
width: image.width + 50
|
||||
height: image.height + 170
|
||||
title: qsTr("Crop your image (optional)")
|
||||
//% "Crop your image (optional)"
|
||||
title: qsTrId("crop-your-image--optional-")
|
||||
|
||||
Image {
|
||||
id: image
|
||||
|
@ -77,7 +79,8 @@ ModalPopup {
|
|||
|
||||
footer: StatusButton {
|
||||
id: doUploadBtn
|
||||
text: qsTr("Finish")
|
||||
//% "Finish"
|
||||
text: qsTrId("finish")
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
onClicked: {
|
||||
|
@ -109,7 +112,8 @@ ModalPopup {
|
|||
type: "secondary"
|
||||
flat: true
|
||||
color: Style.current.danger
|
||||
text: qsTr("Remove")
|
||||
//% "Remove"
|
||||
text: qsTrId("remove")
|
||||
anchors.right: uploadBtn.left
|
||||
anchors.rightMargin: Style.current.padding
|
||||
anchors.bottom: parent.bottom
|
||||
|
@ -120,7 +124,8 @@ ModalPopup {
|
|||
|
||||
StatusButton {
|
||||
id: uploadBtn
|
||||
text: qsTr("Upload")
|
||||
//% "Upload"
|
||||
text: qsTrId("upload")
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
onClicked: {
|
||||
|
|
|
@ -7,7 +7,8 @@ import "../../../../shared/status"
|
|||
ModalPopup {
|
||||
id: popup
|
||||
|
||||
title: qsTr("Chat link previews")
|
||||
//% "Chat link previews"
|
||||
title: qsTrId("chat-link-previews")
|
||||
|
||||
onClosed: {
|
||||
destroy()
|
||||
|
@ -31,11 +32,13 @@ ModalPopup {
|
|||
|
||||
StatusSectionHeadline {
|
||||
id: labelWebsites
|
||||
text: qsTr("Websites")
|
||||
//% "Websites"
|
||||
text: qsTrId("websites")
|
||||
width: parent.width
|
||||
|
||||
StatusButton {
|
||||
text: qsTr("Enable all")
|
||||
//% "Enable all"
|
||||
text: qsTrId("enable-all")
|
||||
type: "secondary"
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
@ -152,7 +155,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
StyledText {
|
||||
text: qsTr("Previewing links from these websites may share your metadata with their owners.")
|
||||
//% "Previewing links from these websites may share your metadata with their owners."
|
||||
text: qsTrId("previewing-links-from-these-websites-may-share-your-metadata-with-their-owners-")
|
||||
width: parent.width
|
||||
wrapMode: Text.WordWrap
|
||||
font.weight: Font.Thin
|
||||
|
|
|
@ -112,6 +112,7 @@ Rectangle {
|
|||
icon.source: "../../../../img/profileActive.svg"
|
||||
icon.width: menuButton.iconSize
|
||||
icon.height: menuButton.iconSize
|
||||
//% "View Profile"
|
||||
text: qsTrId("view-profile")
|
||||
onTriggered: profileClick(true, name, address, identicon, "", localNickname)
|
||||
enabled: true
|
||||
|
@ -120,6 +121,7 @@ Rectangle {
|
|||
icon.source: "../../../../img/message.svg"
|
||||
icon.width: menuButton.iconSize
|
||||
icon.height: menuButton.iconSize
|
||||
//% "Send message"
|
||||
text: qsTrId("send-message")
|
||||
onTriggered: {
|
||||
changeAppSection(Constants.chat)
|
||||
|
@ -131,6 +133,7 @@ Rectangle {
|
|||
icon.source: "../../../../img/block-icon.svg"
|
||||
icon.width: menuButton.iconSize
|
||||
icon.height: menuButton.iconSize
|
||||
//% "Block User"
|
||||
text: qsTrId("block-user")
|
||||
enabled: !container.isBlocked
|
||||
onTriggered: {
|
||||
|
|
|
@ -246,7 +246,8 @@ Item {
|
|||
NoFriendsRectangle {
|
||||
id: element
|
||||
visible: profileModel.contacts.addedContacts.rowCount() === 0
|
||||
text: qsTr("You don’t have any contacts yet")
|
||||
//% "You don’t have any contacts yet"
|
||||
text: qsTrId("you-don-t-have-any-contacts-yet")
|
||||
width: parent.width
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
|
|
|
@ -179,8 +179,9 @@ Item {
|
|||
text: {
|
||||
let deviceId = model.installationId.split("-")[0].substr(0, 5)
|
||||
//% "No info"
|
||||
//% "you"
|
||||
let labelText = `${model.name || qsTrId("pairing-no-info")} (${model.isUserDevice ? qsTrId("you") + ", ": ""}${deviceId})`;
|
||||
let labelText = `${model.name || qsTrId("pairing-no-info")} ` +
|
||||
//% "you"
|
||||
`(${model.isUserDevice ? qsTrId("you") + ", ": ""}${deviceId})`;
|
||||
return labelText;
|
||||
}
|
||||
elide: Text.ElideRight
|
||||
|
|
|
@ -200,7 +200,7 @@ Item {
|
|||
StyledText {
|
||||
id: chatSettingsLabel
|
||||
visible: profileModel.ens.rowCount() > 0 && profileModel.ens.pendingLen() != profileModel.ens.rowCount()
|
||||
//% "Chat Settings"
|
||||
//% "Chat settings"
|
||||
text: qsTrId("chat-settings")
|
||||
anchors.left: parent.left
|
||||
anchors.top: ensList.bottom
|
||||
|
|
|
@ -155,7 +155,8 @@ ModalPopup {
|
|||
StatusButton {
|
||||
id: btnNext
|
||||
anchors.right: parent.right
|
||||
text: qsTr("Next")
|
||||
//% "Next"
|
||||
text: qsTrId("next")
|
||||
enabled: stack.currentGroup.isValid && !stack.currentGroup.isPending
|
||||
onClicked: {
|
||||
const validity = stack.currentGroup.validate()
|
||||
|
|
|
@ -135,7 +135,8 @@ Item {
|
|||
}
|
||||
|
||||
StyledText {
|
||||
text: qsTr(`<a href="%1%2">Look up on Etherscan</a>`).arg(walletModel.etherscanLink.replace("/tx", "/address")).arg(profileModel.ens.getUsernameRegistrar())
|
||||
//% "<a href='%1%2'>Look up on Etherscan</a>"
|
||||
text: qsTrId("-a-href---1-2--look-up-on-etherscan--a-").arg(walletModel.etherscanLink.replace("/tx", "/address")).arg(profileModel.ens.getUsernameRegistrar())
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
onLinkActivated: appMain.openLink(link)
|
||||
|
@ -156,7 +157,8 @@ Item {
|
|||
}
|
||||
|
||||
StyledText {
|
||||
text: qsTr(`<a href="%1%2">Look up on Etherscan</a>`).arg(walletModel.etherscanLink.replace("/tx", "/address")).arg(profileModel.ens.getENSRegistry())
|
||||
//% "<a href='%1%2'>Look up on Etherscan</a>"
|
||||
text: qsTrId("-a-href---1-2--look-up-on-etherscan--a-").arg(walletModel.etherscanLink.replace("/tx", "/address")).arg(profileModel.ens.getENSRegistry())
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
onLinkActivated: appMain.openLink(link)
|
||||
|
|
|
@ -11,8 +11,10 @@ RowLayout {
|
|||
|
||||
ConfirmationDialog {
|
||||
id: confirmDialog
|
||||
title: qsTr("Warning!")
|
||||
confirmationText: qsTr("Change fleet to %1").arg(newFleet)
|
||||
//% "Warning!"
|
||||
title: qsTrId("close-app-title")
|
||||
//% "Change fleet to %1"
|
||||
confirmationText: qsTrId("change-fleet-to--1").arg(newFleet)
|
||||
onConfirmButtonClicked: profileModel.fleets.setFleet(newFleet)
|
||||
onClosed: profileModel.fleets.triggerFleetChange()
|
||||
}
|
||||
|
|
|
@ -7,7 +7,8 @@ import "../../../../shared/status"
|
|||
|
||||
ModalPopup {
|
||||
id: popup
|
||||
title: qsTr("Fleet")
|
||||
//% "Fleet"
|
||||
title: qsTrId("fleet")
|
||||
|
||||
property string newFleet: "";
|
||||
|
||||
|
|
|
@ -135,7 +135,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: faqLink
|
||||
text: qsTr("Frequently asked questions")
|
||||
//% "Frequently asked questions"
|
||||
text: qsTrId("faq")
|
||||
font.pixelSize: 15
|
||||
color: Style.current.blue
|
||||
anchors.topMargin: Style.current.bigPadding
|
||||
|
@ -158,7 +159,8 @@ Item {
|
|||
}
|
||||
StyledText {
|
||||
id: issueLink
|
||||
text: qsTr("Submit a bug")
|
||||
//% "Submit a bug"
|
||||
text: qsTrId("submit-bug")
|
||||
font.pixelSize: 15
|
||||
color: Style.current.blue
|
||||
anchors.topMargin: Style.current.bigPadding
|
||||
|
@ -181,7 +183,8 @@ Item {
|
|||
}
|
||||
|
||||
StyledText {
|
||||
text: qsTr("Request a feature")
|
||||
//% "Request a feature"
|
||||
text: qsTrId("request-feature")
|
||||
font.pixelSize: 15
|
||||
color: Style.current.blue
|
||||
anchors.topMargin: Style.current.bigPadding
|
||||
|
|
|
@ -8,7 +8,8 @@ import "../../../../shared/status"
|
|||
|
||||
ModalPopup {
|
||||
id: root
|
||||
title: qsTr("Muted chats")
|
||||
//% "Muted chats"
|
||||
title: qsTrId("muted-chats")
|
||||
property bool showMutedContacts: false
|
||||
|
||||
onClosed: {
|
||||
|
@ -57,7 +58,8 @@ ModalPopup {
|
|||
type: "secondary"
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
text: qsTr("Unmute")
|
||||
//% "Unmute"
|
||||
text: qsTrId("unmute")
|
||||
onClicked: {
|
||||
profileModel.unmuteChannel(model.id)
|
||||
}
|
||||
|
|
|
@ -12,8 +12,10 @@ RowLayout {
|
|||
|
||||
ConfirmationDialog {
|
||||
id: confirmDialog
|
||||
title: qsTr("Warning!")
|
||||
confirmationText: qsTr("The account will be logged out. When you unlock it again, the selected network will be used")
|
||||
//% "Warning!"
|
||||
title: qsTrId("close-app-title")
|
||||
//% "The account will be logged out. When you unlock it again, the selected network will be used"
|
||||
confirmationText: qsTrId("logout-app-content")
|
||||
onConfirmButtonClicked: {
|
||||
profileModel.network.current = newNetwork;
|
||||
}
|
||||
|
|
|
@ -7,7 +7,8 @@ import "../../../../shared/status"
|
|||
|
||||
ModalPopup {
|
||||
id: popup
|
||||
title: qsTr("Network")
|
||||
//% "Network"
|
||||
title: qsTrId("network")
|
||||
|
||||
property string newNetwork: "";
|
||||
|
||||
|
@ -45,7 +46,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
id: usernameText
|
||||
text: qsTr("Add network")
|
||||
//% "Add network"
|
||||
text: qsTrId("add-network")
|
||||
color: Style.current.blue
|
||||
anchors.left: addButton.right
|
||||
anchors.leftMargin: Style.current.padding
|
||||
|
@ -61,7 +63,8 @@ ModalPopup {
|
|||
|
||||
ModalPopup {
|
||||
id: addNetworkPopup
|
||||
title: qsTr("Add network")
|
||||
//% "Add network"
|
||||
title: qsTrId("add-network")
|
||||
height: 650
|
||||
|
||||
property string nameValidationError: ""
|
||||
|
@ -76,22 +79,28 @@ ModalPopup {
|
|||
networkValidationError = "";
|
||||
|
||||
if (nameInput.text === "") {
|
||||
nameValidationError = qsTr("You need to enter a name")
|
||||
//% "You need to enter a name"
|
||||
nameValidationError = qsTrId("you-need-to-enter-a-name")
|
||||
}
|
||||
|
||||
if (rpcInput.text === "") {
|
||||
rpcValidationError = qsTr("You need to enter the RPC endpoint URL")
|
||||
//% "You need to enter the RPC endpoint URL"
|
||||
rpcValidationError = qsTrId("you-need-to-enter-the-rpc-endpoint-url")
|
||||
} else if(!Utils.isURL(rpcInput.text)) {
|
||||
rpcValidationError = qsTr("Invalid URL")
|
||||
//% "Invalid URL"
|
||||
rpcValidationError = qsTrId("invalid-url")
|
||||
}
|
||||
|
||||
if (customRadioBtn.checked) {
|
||||
if (networkInput.text === "") {
|
||||
networkValidationError = qsTr("You need to enter the network id")
|
||||
//% "You need to enter the network id"
|
||||
networkValidationError = qsTrId("you-need-to-enter-the-network-id")
|
||||
} else if (isNaN(networkInput.text)){
|
||||
networkValidationError = qsTr("Should be a number");
|
||||
//% "Should be a number"
|
||||
networkValidationError = qsTrId("should-be-a-number");
|
||||
} else if (parseInt(networkInput.text, 10) <= 4){
|
||||
networkValidationError = qsTr("Invalid network id");
|
||||
//% "Invalid network id"
|
||||
networkValidationError = qsTrId("invalid-network-id");
|
||||
}
|
||||
}
|
||||
return !nameValidationError && !rpcValidationError && !networkValidationError
|
||||
|
@ -113,7 +122,8 @@ ModalPopup {
|
|||
footer: StatusButton {
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.smallPadding
|
||||
text: qsTr("Save")
|
||||
//% "Save"
|
||||
text: qsTrId("save")
|
||||
anchors.bottom: parent.bottom
|
||||
enabled: nameInput.text !== "" && rpcInput.text !== ""
|
||||
onClicked: {
|
||||
|
@ -133,15 +143,19 @@ ModalPopup {
|
|||
|
||||
Input {
|
||||
id: nameInput
|
||||
label: qsTr("Name")
|
||||
placeholderText: qsTr("Specify a name")
|
||||
//% "Name"
|
||||
label: qsTrId("name")
|
||||
//% "Specify a name"
|
||||
placeholderText: qsTrId("specify-name")
|
||||
validationError: addNetworkPopup.nameValidationError
|
||||
}
|
||||
|
||||
Input {
|
||||
id: rpcInput
|
||||
label: qsTr("RPC URL")
|
||||
placeholderText: qsTr("Specify a RPC URL")
|
||||
//% "RPC URL"
|
||||
label: qsTrId("rpc-url")
|
||||
//% "Specify a RPC URL"
|
||||
placeholderText: qsTrId("specify-rpc-url")
|
||||
validationError: addNetworkPopup.rpcValidationError
|
||||
anchors.top: nameInput.bottom
|
||||
anchors.topMargin: Style.current.bigPadding
|
||||
|
@ -149,7 +163,8 @@ ModalPopup {
|
|||
|
||||
StatusSectionHeadline {
|
||||
id: networkChainHeadline
|
||||
text: qsTr("Network chain")
|
||||
//% "Network chain"
|
||||
text: qsTrId("network-chain")
|
||||
anchors.top: rpcInput.bottom
|
||||
anchors.topMargin: Style.current.bigPadding
|
||||
}
|
||||
|
@ -164,7 +179,8 @@ ModalPopup {
|
|||
RowLayout {
|
||||
width: parent.width
|
||||
StyledText {
|
||||
text: qsTr("Main network")
|
||||
//% "Main network"
|
||||
text: qsTrId("mainnet-network")
|
||||
font.pixelSize: 15
|
||||
}
|
||||
|
||||
|
@ -184,7 +200,8 @@ ModalPopup {
|
|||
RowLayout {
|
||||
width: parent.width
|
||||
StyledText {
|
||||
text: qsTr("Ropsten test network")
|
||||
//% "Ropsten test network"
|
||||
text: qsTrId("ropsten-network")
|
||||
font.pixelSize: 15
|
||||
}
|
||||
StatusRadioButton {
|
||||
|
@ -202,7 +219,8 @@ ModalPopup {
|
|||
RowLayout {
|
||||
width: parent.width
|
||||
StyledText {
|
||||
text: qsTr("Rinkeby test network")
|
||||
//% "Rinkeby test network"
|
||||
text: qsTrId("rinkeby-network")
|
||||
font.pixelSize: 15
|
||||
}
|
||||
StatusRadioButton {
|
||||
|
@ -220,7 +238,8 @@ ModalPopup {
|
|||
RowLayout {
|
||||
width: parent.width
|
||||
StyledText {
|
||||
text: qsTr("Custom")
|
||||
//% "Custom"
|
||||
text: qsTrId("custom")
|
||||
font.pixelSize: 15
|
||||
}
|
||||
StatusRadioButton {
|
||||
|
@ -237,8 +256,10 @@ ModalPopup {
|
|||
Input {
|
||||
id: networkInput
|
||||
visible: customRadioBtn.checked
|
||||
label: qsTr("Network Id")
|
||||
placeholderText: qsTr("Specify the network id")
|
||||
//% "Network Id"
|
||||
label: qsTrId("network-id")
|
||||
//% "Specify the network id"
|
||||
placeholderText: qsTrId("specify-the-network-id")
|
||||
validationError: addNetworkPopup.networkValidationError
|
||||
}
|
||||
}
|
||||
|
@ -246,7 +267,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
StatusSectionHeadline {
|
||||
text: qsTr("Main networks")
|
||||
//% "Main networks"
|
||||
text: qsTrId("main-networks")
|
||||
}
|
||||
|
||||
NetworkRadioSelector {
|
||||
|
@ -262,7 +284,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
StatusSectionHeadline {
|
||||
text: qsTr("Test networks")
|
||||
//% "Test networks"
|
||||
text: qsTrId("test-networks")
|
||||
}
|
||||
|
||||
NetworkRadioSelector {
|
||||
|
@ -278,7 +301,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
StatusSectionHeadline {
|
||||
text: qsTr("Custom Networks")
|
||||
//% "Custom Networks"
|
||||
text: qsTrId("custom-networks")
|
||||
}
|
||||
|
||||
Repeater {
|
||||
|
|
|
@ -101,7 +101,8 @@ ScrollView {
|
|||
|
||||
StatusSectionHeadline {
|
||||
id: sectionHeadlineSound
|
||||
text: qsTr("Appearance")
|
||||
//% "Appearance"
|
||||
text: qsTrId("appearance")
|
||||
anchors.top: separator.bottom
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
@ -126,7 +127,8 @@ ScrollView {
|
|||
}
|
||||
|
||||
StatusSettingsLineButton {
|
||||
text: qsTr("Use your operating system's notifications")
|
||||
//% "Use your operating system's notifications"
|
||||
text: qsTrId("use-your-operating-system-s-notifications")
|
||||
isSwitch: true
|
||||
switchChecked: appSettings.useOSNotifications
|
||||
onClicked: {
|
||||
|
@ -135,7 +137,8 @@ ScrollView {
|
|||
|
||||
StyledText {
|
||||
id: detailText
|
||||
text: qsTr("Setting this to false will instead use Status' notification style as seen below")
|
||||
//% "Setting this to false will instead use Status' notification style as seen below"
|
||||
text: qsTrId("setting-this-to-false-will-instead-use-status--notification-style-as-seen-below")
|
||||
color: Style.current.secondaryText
|
||||
width: parent.width
|
||||
font.pixelSize: 12
|
||||
|
@ -174,7 +177,8 @@ ScrollView {
|
|||
//% "Anonymous"
|
||||
name: qsTrId("anonymous")
|
||||
notificationTitle: "Status"
|
||||
notificationMessage: qsTr("You have a new message")
|
||||
//% "You have a new message"
|
||||
notificationMessage: qsTrId("you-have-a-new-message")
|
||||
buttonGroup: messageSetting
|
||||
checked: appSettings.notificationMessagePreviewSetting === Constants.notificationPreviewAnonymous
|
||||
onRadioCheckedChanged: {
|
||||
|
@ -188,7 +192,8 @@ ScrollView {
|
|||
//% "Name only"
|
||||
name: qsTrId("name-only")
|
||||
notificationTitle: "Vitalik Buterin"
|
||||
notificationMessage: qsTr("You have a new message")
|
||||
//% "You have a new message"
|
||||
notificationMessage: qsTrId("you-have-a-new-message")
|
||||
buttonGroup: messageSetting
|
||||
checked: appSettings.notificationMessagePreviewSetting === Constants.notificationPreviewNameOnly
|
||||
onRadioCheckedChanged: {
|
||||
|
@ -202,7 +207,8 @@ ScrollView {
|
|||
//% "Name & Message"
|
||||
name: qsTrId("name---message")
|
||||
notificationTitle: "Vitalik Buterin"
|
||||
notificationMessage: qsTr("Hi there! Yes, no problem, let me know if I can help.")
|
||||
//% "Hi there! Yes, no problem, let me know if I can help."
|
||||
notificationMessage: qsTrId("hi-there--yes--no-problem--let-me-know-if-i-can-help-")
|
||||
buttonGroup: messageSetting
|
||||
checked: appSettings.notificationMessagePreviewSetting === Constants.notificationPreviewNameAndMessage
|
||||
onRadioCheckedChanged: {
|
||||
|
@ -261,13 +267,15 @@ ScrollView {
|
|||
StatusSettingsLineButton {
|
||||
//% "Muted users"
|
||||
text: qsTrId("muted-users")
|
||||
currentValue: profileModel.mutedContacts.rowCount() > 0 ? profileModel.mutedContacts.rowCount() : qsTr("None")
|
||||
//% "None"
|
||||
currentValue: profileModel.mutedContacts.rowCount() > 0 ? profileModel.mutedContacts.rowCount() : qsTrId("none")
|
||||
isSwitch: false
|
||||
onClicked: {
|
||||
const mutedChatsModal = notificationsContainer.mutedChatsModalComponent.createObject(notificationsContainer, {
|
||||
showMutedContacts: true
|
||||
})
|
||||
mutedChatsModal.title = qsTr("Muted contacts")
|
||||
//% "Muted contacts"
|
||||
mutedChatsModal.title = qsTrId("muted-contacts")
|
||||
mutedChatsModal.open()
|
||||
}
|
||||
}
|
||||
|
@ -275,13 +283,15 @@ ScrollView {
|
|||
StatusSettingsLineButton {
|
||||
//% "Muted chats"
|
||||
text: qsTrId("muted-chats")
|
||||
currentValue: profileModel.mutedChats.rowCount() > 0 ? profileModel.mutedChats.rowCount() : qsTr("None")
|
||||
//% "None"
|
||||
currentValue: profileModel.mutedChats.rowCount() > 0 ? profileModel.mutedChats.rowCount() : qsTrId("none")
|
||||
isSwitch: false
|
||||
onClicked: {
|
||||
const mutedChatsModal = notificationsContainer.mutedChatsModalComponent.createObject(notificationsContainer, {
|
||||
showMutedContacts: false
|
||||
})
|
||||
mutedChatsModal.title = qsTr("Muted chats")
|
||||
//% "Muted chats"
|
||||
mutedChatsModal.title = qsTrId("muted-chats")
|
||||
mutedChatsModal.open()
|
||||
}
|
||||
|
||||
|
@ -320,7 +330,8 @@ ScrollView {
|
|||
width: parent.width
|
||||
|
||||
StyledText {
|
||||
text: qsTr("Reset notification settings")
|
||||
//% "Reset notification settings"
|
||||
text: qsTrId("reset-notification-settings")
|
||||
font.pixelSize: 15
|
||||
color: Style.current.danger
|
||||
MouseArea {
|
||||
|
|
|
@ -7,7 +7,8 @@ import "../../../../shared/status"
|
|||
ModalPopup {
|
||||
id: popup
|
||||
|
||||
title: qsTr("Open links with...")
|
||||
//% "Open links with..."
|
||||
title: qsTrId("open-links-with---")
|
||||
|
||||
onClosed: {
|
||||
destroy()
|
||||
|
@ -32,7 +33,8 @@ ModalPopup {
|
|||
}
|
||||
}
|
||||
StatusRadioButton {
|
||||
text: qsTr("My default browser")
|
||||
//% "My default browser"
|
||||
text: qsTrId("my-default-browser")
|
||||
ButtonGroup.group: openLinksWithGroup
|
||||
checked: !appSettings.openLinksInStatus
|
||||
onCheckedChanged: {
|
||||
|
|
|
@ -62,7 +62,8 @@ Item {
|
|||
}
|
||||
|
||||
StatusSettingsLineButton {
|
||||
text: qsTr("Display all profile pictures (not only contacts)")
|
||||
//% "Display all profile pictures (not only contacts)"
|
||||
text: qsTrId("display-all-profile-pictures--not-only-contacts-")
|
||||
isSwitch: true
|
||||
switchChecked: !appSettings.onlyShowContactsProfilePics
|
||||
onClicked: appSettings.onlyShowContactsProfilePics = !checked
|
||||
|
@ -77,7 +78,8 @@ Item {
|
|||
}
|
||||
StyledText {
|
||||
width: parent.width
|
||||
text: qsTr("All images (links that contain an image extension) will be downloaded and displayed, regardless of the whitelist settings below")
|
||||
//% "All images (links that contain an image extension) will be downloaded and displayed, regardless of the whitelist settings below"
|
||||
text: qsTrId("all-images--links-that-contain-an-image-extension--will-be-downloaded-and-displayed--regardless-of-the-whitelist-settings-below")
|
||||
font.pixelSize: 15
|
||||
font.weight: Font.Thin
|
||||
color: Style.current.secondaryText
|
||||
|
@ -86,7 +88,8 @@ Item {
|
|||
}
|
||||
|
||||
StatusSettingsLineButton {
|
||||
text: qsTr("Chat link previews")
|
||||
//% "Chat link previews"
|
||||
text: qsTrId("chat-link-previews")
|
||||
onClicked: openPopup(chatLinksPreviewModal)
|
||||
}
|
||||
|
||||
|
@ -101,8 +104,10 @@ Item {
|
|||
}
|
||||
|
||||
StatusSettingsLineButton {
|
||||
text: qsTr("Open links with...")
|
||||
currentValue: appSettings.openLinksInStatus ? "Status" : qsTr("My default browser")
|
||||
//% "Open links with..."
|
||||
text: qsTrId("open-links-with---")
|
||||
//% "My default browser"
|
||||
currentValue: appSettings.openLinksInStatus ? "Status" : qsTrId("my-default-browser")
|
||||
onClicked: openPopup(openLinksWithModal)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,8 @@ import "./"
|
|||
|
||||
ModalPopup {
|
||||
id: popup
|
||||
title: qsTr("Dapp permissions")
|
||||
//% "Dapp permissions"
|
||||
title: qsTrId("dapp-permissions")
|
||||
|
||||
Component.onCompleted: profileModel.dappList.init()
|
||||
Component.onDestruction: profileModel.dappList.clearData()
|
||||
|
|
|
@ -29,7 +29,8 @@ Item {
|
|||
|
||||
|
||||
StyledText {
|
||||
text: qsTr("Revoke access")
|
||||
//% "Revoke access"
|
||||
text: qsTrId("revoke-access")
|
||||
color: Style.current.red
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: Style.current.smallPadding
|
||||
|
|
|
@ -55,7 +55,8 @@ ModalPopup {
|
|||
footer: StatusButton {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
type: "warn"
|
||||
text: qsTr("Revoke all access")
|
||||
//% "Revoke all access"
|
||||
text: qsTrId("revoke-all-access")
|
||||
onClicked: {
|
||||
profileModel.dappList.permissionList.revokeAccess();
|
||||
accessRevoked(dapp);
|
||||
|
|
|
@ -55,7 +55,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: usernameText
|
||||
text: qsTr("Add mailserver")
|
||||
//% "Add mailserver"
|
||||
text: qsTrId("add-mailserver")
|
||||
color: Style.current.blue
|
||||
anchors.left: addButton.right
|
||||
anchors.leftMargin: Style.current.padding
|
||||
|
@ -71,7 +72,8 @@ Item {
|
|||
|
||||
ModalPopup {
|
||||
id: addMailserverPopup
|
||||
title: qsTr("Add mailserver")
|
||||
//% "Add mailserver"
|
||||
title: qsTrId("add-mailserver")
|
||||
|
||||
property string nameValidationError: ""
|
||||
property string enodeValidationError: ""
|
||||
|
@ -81,11 +83,13 @@ Item {
|
|||
enodeValidationError = ""
|
||||
|
||||
if (nameInput.text === "") {
|
||||
nameValidationError = qsTr("You need to enter a name")
|
||||
//% "You need to enter a name"
|
||||
nameValidationError = qsTrId("you-need-to-enter-a-name")
|
||||
}
|
||||
|
||||
if (enodeInput.text === "") {
|
||||
enodeValidationError = qsTr("You need to enter the enode address")
|
||||
//% "You need to enter the enode address"
|
||||
enodeValidationError = qsTrId("you-need-to-enter-the-enode-address")
|
||||
}
|
||||
return !nameValidationError && !enodeValidationError
|
||||
}
|
||||
|
@ -101,7 +105,8 @@ Item {
|
|||
footer: StatusButton {
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.smallPadding
|
||||
text: qsTr("Save")
|
||||
//% "Save"
|
||||
text: qsTrId("save")
|
||||
anchors.bottom: parent.bottom
|
||||
enabled: nameInput.text !== "" && enodeInput.text !== ""
|
||||
onClicked: {
|
||||
|
@ -115,15 +120,19 @@ Item {
|
|||
|
||||
Input {
|
||||
id: nameInput
|
||||
label: qsTr("Name")
|
||||
placeholderText: qsTr("Specify a name")
|
||||
//% "Name"
|
||||
label: qsTrId("name")
|
||||
//% "Specify a name"
|
||||
placeholderText: qsTrId("specify-name")
|
||||
validationError: addMailserverPopup.nameValidationError
|
||||
}
|
||||
|
||||
Input {
|
||||
id: enodeInput
|
||||
label: qsTr("History node address")
|
||||
placeholderText: qsTr("enode://{enode-id}:{password}@{ip-address}:{port-number}")
|
||||
//% "History node address"
|
||||
label: qsTrId("history-node-address")
|
||||
//% "enode://{enode-id}:{password}@{ip-address}:{port-number}"
|
||||
placeholderText: qsTrId("enode----enode-id---password---ip-address---port-number-")
|
||||
validationError: addMailserverPopup.enodeValidationError
|
||||
anchors.top: nameInput.bottom
|
||||
anchors.topMargin: Style.current.bigPadding
|
||||
|
@ -134,7 +143,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: switchLbl
|
||||
text: qsTr("Automatic mailserver selection")
|
||||
//% "Automatic mailserver selection"
|
||||
text: qsTrId("automatic-mailserver-selection")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
anchors.top: addMailserver.bottom
|
||||
|
@ -153,7 +163,8 @@ Item {
|
|||
}
|
||||
|
||||
StyledText {
|
||||
text: profileModel.mailservers.activeMailserver || qsTr("...")
|
||||
//% "..."
|
||||
text: profileModel.mailservers.activeMailserver || qsTrId("---")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
anchors.top: switchLbl.bottom
|
||||
|
|
|
@ -41,7 +41,8 @@ Rectangle {
|
|||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.halfPadding
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
text: qsTr("Share what's on your mind and stay updated with your contacts")
|
||||
//% "Share what's on your mind and stay updated with your contacts"
|
||||
text: qsTrId("share-what-s-on-your-mind-and-stay-updated-with-your-contacts")
|
||||
font.pixelSize: 15
|
||||
color: Style.current.secondaryText
|
||||
wrapMode: Text.WordWrap
|
||||
|
|
|
@ -44,7 +44,8 @@ ModalPopup {
|
|||
|
||||
function validate() {
|
||||
if (addressInput.text !== "" && !Utils.isAddress(addressInput.text)) {
|
||||
validationError = qsTr("This needs to be a valid address");
|
||||
//% "This needs to be a valid address"
|
||||
validationError = qsTrId("this-needs-to-be-a-valid-address");
|
||||
}
|
||||
return validationError === ""
|
||||
}
|
||||
|
@ -67,7 +68,8 @@ ModalPopup {
|
|||
onTokenDetailsWereResolved: {
|
||||
const jsonObj = JSON.parse(tokenDetails)
|
||||
if(jsonObj.name === "" || jsonObj.symbol === "" || jsonObj.decimals === ""){
|
||||
validationError = qsTr("Invalid ERC20 address")
|
||||
//% "Invalid ERC20 address"
|
||||
validationError = qsTrId("invalid-erc20-address")
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,8 @@ Rectangle {
|
|||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
StyledText {
|
||||
text: qsTr("Back up your seed phrase")
|
||||
//% "Back up your seed phrase"
|
||||
text: qsTrId("back-up-your-seed-phrase")
|
||||
font.pixelSize: 13
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
color: Style.current.white
|
||||
|
|
|
@ -17,7 +17,8 @@ ModalPopup {
|
|||
setCurrencyModalContent.currency = defaultCurrency
|
||||
}
|
||||
|
||||
title: qsTr("Set Currency")
|
||||
//% "Set Currency"
|
||||
title: qsTrId("set-currency")
|
||||
|
||||
SetCurrencyModalContent {
|
||||
id: setCurrencyModalContent
|
||||
|
|
|
@ -8,7 +8,8 @@ import "."
|
|||
|
||||
ModalPopup {
|
||||
id: signPhrasePopup
|
||||
title: qsTr("Signing phrase")
|
||||
//% "Signing phrase"
|
||||
title: qsTrId("signing-phrase")
|
||||
height: 390
|
||||
closePolicy: Popup.NoAutoClose
|
||||
|
||||
|
@ -17,7 +18,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: qsTr("This is your signing phrase")
|
||||
//% "This is your signing phrase"
|
||||
text: qsTrId("this-is-you-signing")
|
||||
font.pixelSize: 17
|
||||
font.weight: Font.Bold
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
|
@ -26,7 +28,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: qsTr("You should see these 3 words before signing each transaction")
|
||||
//% "You should see these 3 words before signing each transaction"
|
||||
text: qsTrId("three-words-description")
|
||||
font.pixelSize: 15
|
||||
width: 330
|
||||
wrapMode: Text.WordWrap
|
||||
|
@ -64,7 +67,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
StyledText {
|
||||
text: qsTr("If you see a different combination, cancel the transaction and sign out")
|
||||
//% "If you see a different combination, cancel the transaction and sign out"
|
||||
text: qsTrId("three-words-description-2")
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
font.pixelSize: 13
|
||||
|
@ -81,7 +85,8 @@ ModalPopup {
|
|||
StatusButton {
|
||||
anchors.right: btnRemindLater.left
|
||||
anchors.rightMargin: Style.current.padding
|
||||
text: qsTr("Ok, got it")
|
||||
//% "Ok, got it"
|
||||
text: qsTrId("ens-got-it")
|
||||
type: "secondary"
|
||||
onClicked: {
|
||||
appSettings.hideSignPhraseModal = true;
|
||||
|
@ -93,7 +98,8 @@ ModalPopup {
|
|||
StatusButton {
|
||||
id: btnRemindLater
|
||||
anchors.right: parent.right
|
||||
text: qsTr("Remind me later")
|
||||
//% "Remind me later"
|
||||
text: qsTrId("remind-me-later")
|
||||
onClicked: {
|
||||
hideSignPhraseModal = true;
|
||||
close();
|
||||
|
|
|
@ -7,7 +7,8 @@ import "./components"
|
|||
|
||||
ModalPopup {
|
||||
id: popup
|
||||
title: qsTr("Manage Assets")
|
||||
//% "Manage Assets"
|
||||
title: qsTrId("manage-assets")
|
||||
|
||||
|
||||
TokenSettingsModalContent {
|
||||
|
|
|
@ -164,7 +164,8 @@ Item {
|
|||
onTriggered: openPopup(accountSettingsModalComponent)
|
||||
}
|
||||
Action {
|
||||
text: qsTr("Manage Assets")
|
||||
//% "Manage Assets"
|
||||
text: qsTrId("manage-assets")
|
||||
icon.source: "../../img/add_remove_token.svg"
|
||||
icon.width: 16
|
||||
icon.height: 16
|
||||
|
|
|
@ -22,7 +22,8 @@ ModalPopup {
|
|||
//% "You need to enter a password"
|
||||
passwordValidationError = qsTrId("you-need-to-enter-a-password")
|
||||
} else if (passwordInput.text.length < 6) {
|
||||
passwordValidationError = qsTr("Password needs to be 6 characters or more")
|
||||
//% "Password needs to be 6 characters or more"
|
||||
passwordValidationError = qsTrId("password-needs-to-be-6-characters-or-more")
|
||||
} else {
|
||||
passwordValidationError = ""
|
||||
}
|
||||
|
@ -107,7 +108,8 @@ ModalPopup {
|
|||
text: loading ?
|
||||
//% "Loading..."
|
||||
qsTrId("loading") :
|
||||
qsTr("Add account")
|
||||
//% "Add account"
|
||||
qsTrId("add-account")
|
||||
|
||||
enabled: !loading && passwordInput.text !== "" && accountNameInput.text !== "" && accountPKeyInput.text !== ""
|
||||
|
||||
|
|
|
@ -26,7 +26,8 @@ ModalPopup {
|
|||
//% "You need to enter a password"
|
||||
passwordValidationError = qsTrId("you-need-to-enter-a-password")
|
||||
} else if (passwordInput.text.length < 6) {
|
||||
passwordValidationError = qsTr("Password needs to be 6 characters or more")
|
||||
//% "Password needs to be 6 characters or more"
|
||||
passwordValidationError = qsTrId("password-needs-to-be-6-characters-or-more")
|
||||
} else {
|
||||
passwordValidationError = ""
|
||||
}
|
||||
|
@ -120,7 +121,8 @@ ModalPopup {
|
|||
text: loading ?
|
||||
//% "Loading..."
|
||||
qsTrId("loading") :
|
||||
qsTr("Add account")
|
||||
//% "Add account"
|
||||
qsTrId("add-account")
|
||||
|
||||
enabled: !loading && passwordInput.text !== "" && accountNameInput.text !== "" && accountSeedInput.text !== ""
|
||||
|
||||
|
|
|
@ -81,7 +81,8 @@ ModalPopup {
|
|||
text: loading ?
|
||||
//% "Loading..."
|
||||
qsTrId("loading") :
|
||||
qsTr("Add account")
|
||||
//% "Add account"
|
||||
qsTrId("add-account")
|
||||
|
||||
enabled: !loading && addressInput.text !== "" && accountNameInput.text !== ""
|
||||
|
||||
|
|
|
@ -20,7 +20,8 @@ ModalPopup {
|
|||
//% "You need to enter a password"
|
||||
passwordValidationError = qsTrId("you-need-to-enter-a-password")
|
||||
} else if (passwordInput.text.length < 6) {
|
||||
passwordValidationError = qsTr("Password needs to be 6 characters or more")
|
||||
//% "Password needs to be 6 characters or more"
|
||||
passwordValidationError = qsTrId("password-needs-to-be-6-characters-or-more")
|
||||
} else {
|
||||
passwordValidationError = ""
|
||||
}
|
||||
|
@ -81,7 +82,8 @@ ModalPopup {
|
|||
text: loading ?
|
||||
//% "Loading..."
|
||||
qsTrId("loading") :
|
||||
qsTr("Add account")
|
||||
//% "Add account"
|
||||
qsTrId("add-account")
|
||||
|
||||
enabled: !loading && passwordInput.text !== "" && accountNameInput.text !== ""
|
||||
|
||||
|
|
|
@ -39,7 +39,8 @@ Rectangle {
|
|||
|
||||
StyledText {
|
||||
visible: collectiblesQty >= Constants.maxTokens
|
||||
text: qsTr("Maximum number of collectibles to display reached")
|
||||
//% "Maximum number of collectibles to display reached"
|
||||
text: qsTrId("maximum-number-of-collectibles-to-display-reached")
|
||||
font.pixelSize: 17
|
||||
color: Style.current.secondaryText
|
||||
anchors.left: collectibleName.right
|
||||
|
|
|
@ -135,7 +135,8 @@ RowLayout {
|
|||
|
||||
StatusInputListPopup {
|
||||
id: channelPicker
|
||||
title: qsTr("Where do you want to go?")
|
||||
//% "Where do you want to go?"
|
||||
title: qsTrId("where-do-you-want-to-go-")
|
||||
showSearchBox: true
|
||||
width: 350
|
||||
x: parent.width / 2 - width / 2
|
||||
|
|
BIN
ui/i18n/base.qm
BIN
ui/i18n/base.qm
Binary file not shown.
5974
ui/i18n/base.ts
5974
ui/i18n/base.ts
File diff suppressed because it is too large
Load Diff
Binary file not shown.
3407
ui/i18n/qml_af.ts
3407
ui/i18n/qml_af.ts
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue