chore: run transform script to change qstr to qstrid
This commit is contained in:
parent
ef6cbf9d70
commit
1eb1d3d41c
|
@ -49,7 +49,8 @@ Rectangle {
|
|||
leftPadding: 12
|
||||
rightPadding: Style.current.padding
|
||||
font.pixelSize: 14
|
||||
placeholderText: qsTr("Type a message...")
|
||||
//% "Type a message..."
|
||||
placeholderText: qsTrId("type-a-message")
|
||||
Keys.onPressed: onEnter(event)
|
||||
background: Rectangle {
|
||||
color: "#00000000"
|
||||
|
|
|
@ -130,7 +130,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: joinChat
|
||||
text: qsTr("Join chat")
|
||||
//% "Join chat"
|
||||
text: qsTrId("join-chat")
|
||||
font.pixelSize: 20
|
||||
color: Style.current.blue
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
@ -145,7 +146,8 @@ Item {
|
|||
}
|
||||
|
||||
StyledText {
|
||||
text: qsTr("Decline invitation")
|
||||
//% "Decline invitation"
|
||||
text: qsTrId("group-chat-decline-invitation")
|
||||
font.pixelSize: 20
|
||||
color: Style.current.blue
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
@ -332,7 +334,11 @@ Item {
|
|||
StyledTextEdit {
|
||||
id: sentMessage
|
||||
color: Style.current.darkGrey
|
||||
text: outgoingStatus == "sent" ? qsTr("Sent") : qsTr("Sending...")
|
||||
text: outgoingStatus == "sent" ?
|
||||
//% "Sent"
|
||||
qsTrId("status-sent") :
|
||||
//% "Sending..."
|
||||
qsTrId("sending")
|
||||
anchors.top: chatTime.top
|
||||
anchors.bottomMargin: Style.current.padding
|
||||
anchors.right: chatTime.left
|
||||
|
|
|
@ -42,12 +42,19 @@ Rectangle {
|
|||
color: Style.current.darkGrey
|
||||
text: {
|
||||
switch(chatsModel.activeChannel.chatType){
|
||||
case Constants.chatTypePublic: return qsTr("Public chat")
|
||||
case Constants.chatTypeOneToOne: return (profileModel.isAdded(chatsModel.activeChannel.id) ? qsTr("Contact") : qsTr("Not a contact"))
|
||||
//% "Public chat"
|
||||
case Constants.chatTypePublic: return qsTrId("public-chat")
|
||||
case Constants.chatTypeOneToOne: return (profileModel.isAdded(chatsModel.activeChannel.id) ?
|
||||
//% "Contact"
|
||||
qsTrId("chat-is-a-contact") :
|
||||
//% "Not a contact"
|
||||
qsTrId("chat-is-not-a-contact"))
|
||||
case Constants.chatTypePrivateGroupChat:
|
||||
let cnt = chatsModel.activeChannel.members.rowCount();
|
||||
if(cnt > 1) return qsTr("%1 members").arg(cnt);
|
||||
return qsTr("1 member");
|
||||
//% "%1 members"
|
||||
if(cnt > 1) return qsTrId("%1-members").arg(cnt);
|
||||
//% "1 member"
|
||||
return qsTrId("1-member");
|
||||
default: return "...";
|
||||
}
|
||||
}
|
||||
|
@ -94,12 +101,14 @@ Rectangle {
|
|||
id: chatContextMenu
|
||||
Action {
|
||||
icon.source: "../../../img/close.svg"
|
||||
text: qsTr("Clear history")
|
||||
//% "Clear history"
|
||||
text: qsTrId("clear-history")
|
||||
onTriggered: chatsModel.clearChatHistory(chatsModel.activeChannel.id)
|
||||
}
|
||||
Action {
|
||||
icon.source: "../../../img/leave_chat.svg"
|
||||
text: qsTr("Leave Chat")
|
||||
//% "Leave Chat"
|
||||
text: qsTrId("leave-chat")
|
||||
onTriggered: chatsModel.leaveActiveChat()
|
||||
}
|
||||
}
|
||||
|
@ -108,17 +117,20 @@ Rectangle {
|
|||
id: groupContextMenu
|
||||
Action {
|
||||
icon.source: "../../../img/group_chat.svg"
|
||||
text: qsTr("Group Information")
|
||||
//% "Group Information"
|
||||
text: qsTrId("group-information")
|
||||
onTriggered: groupInfoPopup.open()
|
||||
}
|
||||
Action {
|
||||
icon.source: "../../../img/close.svg"
|
||||
text: qsTr("Clear history")
|
||||
//% "Clear history"
|
||||
text: qsTrId("clear-history")
|
||||
onTriggered: chatsModel.clearChatHistory(chatsModel.activeChannel.id)
|
||||
}
|
||||
Action {
|
||||
icon.source: "../../../img/leave_chat.svg"
|
||||
text: qsTr("Leave Group")
|
||||
//% "Leave Group"
|
||||
text: qsTrId("leave-group")
|
||||
onTriggered: chatsModel.leaveActiveChat()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,7 +17,8 @@ Item {
|
|||
StyledText {
|
||||
id: title
|
||||
x: 772
|
||||
text: qsTr("Chat")
|
||||
//% "Chat"
|
||||
text: qsTrId("chat")
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: 17
|
||||
font.bold: true
|
||||
|
|
|
@ -16,17 +16,20 @@ AddButton {
|
|||
PopupMenu {
|
||||
id: newChatMenu
|
||||
Action {
|
||||
text: qsTr("Start new chat")
|
||||
//% "Start new chat"
|
||||
text: qsTrId("start-new-chat")
|
||||
icon.source: "../../../img/new_chat.svg"
|
||||
onTriggered: privateChatPopup.open()
|
||||
}
|
||||
Action {
|
||||
text: qsTr("Start group chat")
|
||||
//% "Start group chat"
|
||||
text: qsTrId("start-group-chat")
|
||||
icon.source: "../../../img/group_chat.svg"
|
||||
onTriggered: groupChatPopup.open()
|
||||
}
|
||||
Action {
|
||||
text: qsTr("Join public chat")
|
||||
//% "Join public chat"
|
||||
text: qsTrId("new-public-group-chat")
|
||||
icon.source: "../../../img/public_chat.svg"
|
||||
onTriggered: publicChatPopup.open()
|
||||
}
|
||||
|
|
|
@ -73,7 +73,8 @@ Rectangle {
|
|||
|
||||
StyledText {
|
||||
id: lastChatMessage
|
||||
text: lastMessage ? Emoji.parse(lastMessage, "26x26").replace(/\n|\r/g, ' ') : qsTr("No messages")
|
||||
//% "No messages"
|
||||
text: lastMessage ? Emoji.parse(lastMessage, "26x26").replace(/\n|\r/g, ' ') : qsTrId("no-messages")
|
||||
clip: true // This is needed because emojis don't ellide correctly
|
||||
anchors.right: contactNumberChatsCircle.left
|
||||
anchors.rightMargin: Style.current.smallPadding
|
||||
|
@ -101,9 +102,17 @@ Rectangle {
|
|||
if (now.toDateString() == messageDate.toDateString()) {
|
||||
return (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes)
|
||||
} else if (yesterday.toDateString() == messageDate.toDateString()) {
|
||||
return qsTr("Yesterday")
|
||||
//% "Yesterday"
|
||||
return qsTrId("yesterday")
|
||||
} else if (lastWeek.getTime() < messageDate.getTime()) {
|
||||
let days = [qsTr('Sunday'), qsTr('Monday'), qsTr('Tuesday'), qsTr('Wednesday'), qsTr('Thursday'), qsTr('Friday'), qsTr('Saturday')];
|
||||
//% "Sunday"
|
||||
//% "Monday"
|
||||
//% "Tuesday"
|
||||
//% "Wednesday"
|
||||
//% "Thursday"
|
||||
//% "Friday"
|
||||
//% "Saturday"
|
||||
let days = [qsTrId("sunday"), qsTrId("monday"), qsTrId("tuesday"), qsTrId("wednesday"), qsTrId("thursday"), qsTrId("friday"), qsTrId("saturday")];
|
||||
return days[messageDate.getDay()];
|
||||
} else {
|
||||
return messageDate.getMonth()+1+"/"+messageDate.getDay()+"/"+messageDate.getFullYear()
|
||||
|
|
|
@ -18,7 +18,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
width: parent.width
|
||||
text: qsTr("Follow your interests in one of the many Public Chats.")
|
||||
//% "Follow your interests in one of the many Public Chats."
|
||||
text: qsTrId("follow-your-interests-in-one-of-the-many-public-chats.")
|
||||
font.pointSize: 15
|
||||
wrapMode: Text.WordWrap
|
||||
verticalAlignment: Text.AlignTop
|
||||
|
|
|
@ -84,7 +84,8 @@ Rectangle {
|
|||
|
||||
StyledText {
|
||||
visible: isUser
|
||||
text: qsTr("Admin")
|
||||
//% "Admin"
|
||||
text: qsTrId("group-chat-admin")
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.padding
|
||||
font.pixelSize: 15
|
||||
|
|
|
@ -39,7 +39,8 @@ ModalPopup {
|
|||
});
|
||||
}
|
||||
data.append({
|
||||
name: profileModel.profile.username + " " + qsTr("(You)"),
|
||||
//% "(You)"
|
||||
name: profileModel.profile.username + " " + qsTrId("(you)"),
|
||||
pubKey: profileModel.profile.pubKey,
|
||||
address: "",
|
||||
identicon: profileModel.profile.identicon,
|
||||
|
@ -59,7 +60,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
id: lblNewGroup
|
||||
text: qsTr("New group chat")
|
||||
//% "New group chat"
|
||||
text: qsTrId("new-group-chat")
|
||||
anchors.left: parent.left
|
||||
font.bold: true
|
||||
font.pixelSize: 17
|
||||
|
@ -69,7 +71,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
anchors.top: lblNewGroup.bottom
|
||||
text: qsTr("%1 / 10 members").arg(memberCount)
|
||||
//% "%1 / 10 members"
|
||||
text: qsTrId("%1-/-10-members").arg(memberCount)
|
||||
color: Style.current.darkGrey
|
||||
font.pixelSize: 15
|
||||
}
|
||||
|
@ -86,7 +89,8 @@ ModalPopup {
|
|||
|
||||
Input {
|
||||
id: groupName
|
||||
placeholderText: qsTr("Group name")
|
||||
//% "Group name"
|
||||
placeholderText: qsTrId("group-name")
|
||||
visible: !selectChatMembers
|
||||
}
|
||||
|
||||
|
@ -219,7 +223,8 @@ ModalPopup {
|
|||
visible: !selectChatMembers
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.right: parent.right
|
||||
label: qsTr("Create Group Chat")
|
||||
//% "Create Group Chat"
|
||||
label: qsTrId("create-group-chat")
|
||||
disabled: groupName.text === ""
|
||||
onClicked : doJoin()
|
||||
}
|
||||
|
|
|
@ -74,7 +74,8 @@ ModalPopup {
|
|||
|
||||
StyledTextEdit {
|
||||
id: groupName
|
||||
text: addMembers ? qsTr("Add members") : chatsModel.activeChannel.name
|
||||
//% "Add members"
|
||||
text: addMembers ? qsTrId("add-members") : chatsModel.activeChannel.name
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: 18
|
||||
anchors.left: letterIdenticon.right
|
||||
|
@ -89,10 +90,13 @@ ModalPopup {
|
|||
text: {
|
||||
let cnt = memberCount;
|
||||
if(addMembers){
|
||||
return qsTr("%1 / 10 members").arg(cnt)
|
||||
//% "%1 / 10 members"
|
||||
return qsTrId("%1-/-10-members").arg(cnt)
|
||||
} else {
|
||||
if(cnt > 1) return qsTr("%1 members").arg(cnt);
|
||||
return qsTr("1 member");
|
||||
//% "%1 members"
|
||||
if(cnt > 1) return qsTrId("%1-members").arg(cnt);
|
||||
//% "1 member"
|
||||
return qsTrId("1-member");
|
||||
}
|
||||
}
|
||||
width: 160
|
||||
|
@ -208,7 +212,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
id: memberLabel
|
||||
text: qsTr("Members")
|
||||
//% "Members"
|
||||
text: qsTrId("members-title")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: Style.current.padding
|
||||
font.pixelSize: 15
|
||||
|
@ -276,7 +281,8 @@ ModalPopup {
|
|||
Column {
|
||||
StyledText {
|
||||
visible: model.isAdmin
|
||||
text: qsTr("Admin")
|
||||
//% "Admin"
|
||||
text: qsTrId("group-chat-admin")
|
||||
width: 100
|
||||
font.pixelSize: 13
|
||||
}
|
||||
|
@ -295,13 +301,15 @@ ModalPopup {
|
|||
id: contextMenu
|
||||
Action {
|
||||
icon.source: "../../../img/make-admin.svg"
|
||||
text: qsTr("Make Admin")
|
||||
//% "Make Admin"
|
||||
text: qsTrId("make-admin")
|
||||
onTriggered: chatsModel.makeAdmin(chatsModel.activeChannel.id, model.pubKey)
|
||||
}
|
||||
Action {
|
||||
icon.source: "../../../img/remove-from-group.svg"
|
||||
icon.color: Style.current.red
|
||||
text: qsTr("Remove From Group")
|
||||
//% "Remove From Group"
|
||||
text: qsTrId("remove-from-group")
|
||||
onTriggered: chatsModel.kickGroupMember(chatsModel.activeChannel.id, model.pubKey)
|
||||
}
|
||||
}
|
||||
|
@ -319,7 +327,8 @@ ModalPopup {
|
|||
StyledButton {
|
||||
visible: !addMembers
|
||||
anchors.right: parent.right
|
||||
label: qsTr("Add members")
|
||||
//% "Add members"
|
||||
label: qsTrId("add-members")
|
||||
anchors.bottom: parent.bottom
|
||||
onClicked: {
|
||||
addMembers = true;
|
||||
|
@ -356,7 +365,8 @@ ModalPopup {
|
|||
visible: addMembers
|
||||
disabled: memberCount <= currMemberCount
|
||||
anchors.right: parent.right
|
||||
label: qsTr("Add selected")
|
||||
//% "Add selected"
|
||||
label: qsTrId("add-selected")
|
||||
anchors.bottom: parent.bottom
|
||||
onClicked: doAddMembers()
|
||||
}
|
||||
|
|
|
@ -35,7 +35,8 @@ ModalPopup {
|
|||
|
||||
pubKey = chatsModel.resolveENS(chatKey.text)
|
||||
if(pubKey == ""){
|
||||
ensUsername.text = qsTr("User not found");
|
||||
//% "User not found"
|
||||
ensUsername.text = qsTrId("user-not-found");
|
||||
} else {
|
||||
ensUsername.text = chatsModel.formatENSUsername(chatKey.text) + " • " + Utils.compactAddress(pubKey, 4)
|
||||
}
|
||||
|
@ -48,7 +49,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
id: popup
|
||||
title: qsTr("New chat")
|
||||
//% "New chat"
|
||||
title: qsTrId("new-chat")
|
||||
|
||||
onOpened: {
|
||||
chatKey.text = "";
|
||||
|
@ -59,7 +61,8 @@ ModalPopup {
|
|||
|
||||
Input {
|
||||
id: chatKey
|
||||
placeholderText: qsTr("Enter ENS username or chat key")
|
||||
//% "Enter ENS username or chat key"
|
||||
placeholderText: qsTrId("enter-contact-code")
|
||||
Keys.onEnterPressed: doJoin()
|
||||
Keys.onReturnPressed: doJoin()
|
||||
validationError: popup.validationError
|
||||
|
|
|
@ -127,7 +127,8 @@ ModalPopup {
|
|||
id: labelEnsUsername
|
||||
height: isEnsVerified ? 20 : 0
|
||||
visible: isEnsVerified
|
||||
text: qsTr("ENS username")
|
||||
//% "ENS username"
|
||||
text: qsTrId("ens-username")
|
||||
font.pixelSize: 13
|
||||
font.weight: Font.Medium
|
||||
color: Style.current.darkGrey
|
||||
|
@ -162,7 +163,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
id: labelChatKey
|
||||
text: qsTr("Chat key")
|
||||
//% "Chat key"
|
||||
text: qsTrId("chat-key")
|
||||
font.pixelSize: 13
|
||||
font.weight: Font.Medium
|
||||
color: Style.current.darkGrey
|
||||
|
@ -205,7 +207,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
id: labelShareURL
|
||||
text: qsTr("Share Profile URL")
|
||||
//% "Share Profile URL"
|
||||
text: qsTrId("share-profile-url")
|
||||
font.pixelSize: 13
|
||||
font.weight: Font.Medium
|
||||
color: Style.current.darkGrey
|
||||
|
@ -243,7 +246,8 @@ ModalPopup {
|
|||
StyledButton {
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 20
|
||||
label: qsTr("Send Message")
|
||||
//% "Send Message"
|
||||
label: qsTrId("send-message")
|
||||
anchors.bottom: parent.bottom
|
||||
onClicked: {
|
||||
profilePopup.close()
|
||||
|
@ -260,7 +264,8 @@ ModalPopup {
|
|||
btnBorderWidth: 1
|
||||
btnBorderColor: Style.current.grey
|
||||
textColor: Style.current.red
|
||||
label: qsTr("Block User")
|
||||
//% "Block User"
|
||||
label: qsTrId("block-user")
|
||||
anchors.bottom: parent.bottom
|
||||
onClicked: {
|
||||
chatsModel.blockContact(fromAuthor)
|
||||
|
@ -274,9 +279,11 @@ ModalPopup {
|
|||
id: addToContactsButton
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.smallPadding
|
||||
label: profileModel.isAdded(
|
||||
fromAuthor) ? qsTr("Remove Contact") : qsTr(
|
||||
"Add to contacts")
|
||||
label: profileModel.isAdded(fromAuthor) ?
|
||||
//% "Remove Contact"
|
||||
qsTrId("remove-contact") :
|
||||
//% "Add to contacts"
|
||||
qsTrId("add-to-contacts")
|
||||
anchors.bottom: parent.bottom
|
||||
onClicked: {
|
||||
if (profileModel.isAdded(fromAuthor)) {
|
||||
|
|
|
@ -14,7 +14,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
id: popup
|
||||
title: qsTr("Join public chat")
|
||||
//% "Join public chat"
|
||||
title: qsTrId("new-public-group-chat")
|
||||
|
||||
onOpened: {
|
||||
channelName.text = "";
|
||||
|
@ -30,7 +31,8 @@ ModalPopup {
|
|||
StyledText {
|
||||
width: parent.width
|
||||
font.pixelSize: 15
|
||||
text: qsTr("A public chat is where you get to hang out with others, make friends and talk about subjects of your interest.")
|
||||
//% "A public chat is where you get to hang out with others, make friends and talk about subjects of your interest."
|
||||
text: qsTrId("a-public-chat-is-where-you-get-to-hang-out-with-others,-make-friends-and-talk-about-subjects-of-your-interest.")
|
||||
wrapMode: Text.WordWrap
|
||||
verticalAlignment: Text.AlignTop
|
||||
}
|
||||
|
@ -40,7 +42,8 @@ ModalPopup {
|
|||
id: channelName
|
||||
anchors.top: description.bottom
|
||||
anchors.topMargin: Style.current.padding
|
||||
placeholderText: qsTr("chat-name")
|
||||
//% "chat-name"
|
||||
placeholderText: qsTrId("chat-name")
|
||||
Keys.onEnterPressed: doJoin()
|
||||
Keys.onReturnPressed: doJoin()
|
||||
icon: "../../../img/hash.svg"
|
||||
|
|
|
@ -38,7 +38,8 @@ Popup {
|
|||
contentItem: Item {
|
||||
StyledText {
|
||||
id: groupTitleLabel
|
||||
text: qsTr("Group name")
|
||||
//% "Group name"
|
||||
text: qsTrId("group-name")
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
font.pixelSize: 13
|
||||
|
@ -55,7 +56,8 @@ Popup {
|
|||
anchors.leftMargin: Style.current.padding
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.padding
|
||||
placeholderText: qsTr("Group Name")
|
||||
//% "Group name"
|
||||
placeholderText: qsTrId("group-name")
|
||||
Keys.onEnterPressed: doRename()
|
||||
Keys.onReturnPressed: doRename()
|
||||
}
|
||||
|
@ -66,7 +68,8 @@ Popup {
|
|||
anchors.topMargin: 22
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.padding
|
||||
label: qsTr("Save")
|
||||
//% "Save"
|
||||
label: qsTrId("save")
|
||||
onClicked : doRename()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -67,7 +67,8 @@ Popup {
|
|||
visible: stickerPackListView.count <= 0
|
||||
anchors.fill: parent
|
||||
font.pixelSize: 15
|
||||
text: qsTr("You don't have any stickers yet")
|
||||
//% "You don't have any stickers yet"
|
||||
text: qsTrId("you-don't-have-any-stickers-yet")
|
||||
lineHeight: 22
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
|
@ -77,7 +78,8 @@ Popup {
|
|||
visible: stickerPackListView.count > 0 && stickerGrid.count <= 0
|
||||
anchors.fill: parent
|
||||
font.pixelSize: 15
|
||||
text: qsTr("Recently used stickers will appear here")
|
||||
//% "Recently used stickers will appear here"
|
||||
text: qsTrId("recently-used-stickers")
|
||||
lineHeight: 22
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
|
@ -85,7 +87,8 @@ Popup {
|
|||
|
||||
StyledButton {
|
||||
visible: stickerPackListView.count <= 0
|
||||
label: qsTr("Get Stickers")
|
||||
//% "Get Stickers"
|
||||
label: qsTrId("get-stickers")
|
||||
anchors.top: noStickersContainer.bottom
|
||||
anchors.topMargin: Style.current.padding
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
|
|
@ -96,7 +96,8 @@ Item {
|
|||
leftPadding: 0
|
||||
padding: 0
|
||||
font.pixelSize: 14
|
||||
placeholderText: qsTr("Type json-rpc message... e.g {\"method\": \"eth_accounts\"}")
|
||||
//% "Type json-rpc message... e.g {\"method\": \"eth_accounts\"}"
|
||||
placeholderText: qsTrId("type-json-rpc-message")
|
||||
anchors.right: rpcSendBtn.left
|
||||
anchors.rightMargin: 16
|
||||
anchors.top: parent.top
|
||||
|
|
|
@ -42,7 +42,8 @@ Rectangle {
|
|||
StyledText {
|
||||
id: element1
|
||||
color: "#000000"
|
||||
text: qsTr("ENS usernames")
|
||||
//% "ENS usernames"
|
||||
text: qsTrId("ens-usernames")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 72
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
@ -67,7 +68,8 @@ Rectangle {
|
|||
StyledText {
|
||||
id: element2
|
||||
color: "#000000"
|
||||
text: qsTr("Contacts")
|
||||
//% "Contacts"
|
||||
text: qsTrId("contacts")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 72
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
@ -92,7 +94,8 @@ Rectangle {
|
|||
StyledText {
|
||||
id: element3
|
||||
color: "#000000"
|
||||
text: qsTr("Privacy and security")
|
||||
//% "Privacy and security"
|
||||
text: qsTrId("privacy-and-security")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 72
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
@ -117,7 +120,8 @@ Rectangle {
|
|||
|
||||
StyledText {
|
||||
color: "#000000"
|
||||
text: qsTr("Devices")
|
||||
//% "Devices"
|
||||
text: qsTrId("devices")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 72
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
@ -143,7 +147,8 @@ Rectangle {
|
|||
StyledText {
|
||||
id: element4
|
||||
color: "#000000"
|
||||
text: qsTr("Sync settings")
|
||||
//% "Sync settings"
|
||||
text: qsTrId("sync-settings")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 72
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
@ -169,7 +174,8 @@ Rectangle {
|
|||
StyledText {
|
||||
id: element5
|
||||
color: "#000000"
|
||||
text: qsTr("Language settings")
|
||||
//% "Language settings"
|
||||
text: qsTrId("language-settings")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 72
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
@ -195,7 +201,8 @@ Rectangle {
|
|||
StyledText {
|
||||
id: element6
|
||||
color: "#000000"
|
||||
text: qsTr("Notifications settings")
|
||||
//% "Notifications settings"
|
||||
text: qsTrId("notifications-settings")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 72
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
@ -220,7 +227,8 @@ Rectangle {
|
|||
StyledText {
|
||||
id: element7
|
||||
color: "#000000"
|
||||
text: qsTr("Advanced settings")
|
||||
//% "Advanced settings"
|
||||
text: qsTrId("advanced-settings")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 72
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
@ -246,7 +254,8 @@ Rectangle {
|
|||
StyledText {
|
||||
id: element8
|
||||
color: "#000000"
|
||||
text: qsTr("Need help?")
|
||||
//% "Need help?"
|
||||
text: qsTrId("need-help")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 72
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
@ -271,7 +280,8 @@ Rectangle {
|
|||
StyledText {
|
||||
id: element9
|
||||
color: "#000000"
|
||||
text: qsTr("About")
|
||||
//% "About"
|
||||
text: qsTrId("about-app")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 72
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
@ -296,7 +306,8 @@ Rectangle {
|
|||
StyledText {
|
||||
id: element10
|
||||
color: "#000000"
|
||||
text: qsTr("Sign out")
|
||||
//% "Sign out"
|
||||
text: qsTrId("sign-out")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 72
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
|
|
@ -13,7 +13,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: element9
|
||||
text: qsTr("About the app")
|
||||
//% "About the app"
|
||||
text: qsTrId("about-the-app")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
anchors.top: parent.top
|
||||
|
@ -24,7 +25,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: element10
|
||||
text: qsTr("Status Desktop")
|
||||
//% "Status Desktop"
|
||||
text: qsTrId("status-desktop")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
anchors.top: element9.top
|
||||
|
@ -34,7 +36,8 @@ Item {
|
|||
}
|
||||
StyledText {
|
||||
id: element11
|
||||
text: qsTr("Version: alpha.0")
|
||||
//% "Version: alpha.0"
|
||||
text: qsTrId("version:-alpha.0")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
anchors.top: element10.top
|
||||
|
@ -44,7 +47,8 @@ Item {
|
|||
}
|
||||
StyledText {
|
||||
id: element12
|
||||
text: qsTr("Node Version: %1").arg(profileModel.nodeVersion())
|
||||
//% "Node Version: %1"
|
||||
text: qsTrId("node-version:-%1").arg(profileModel.nodeVersion())
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
anchors.top: element11.top
|
||||
|
@ -85,7 +89,8 @@ Item {
|
|||
StyledText {
|
||||
id: warningMessage
|
||||
x: 772
|
||||
text: qsTr("Thanks for trying Status Desktop! Please note that this is an alpha release and we advise you that using this app should be done for testing purposes only and you assume the full responsibility for all risks concerning your data and funds. Status makes no claims of security or integrity of funds in these builds.")
|
||||
//% "Thanks for trying Status Desktop! Please note that this is an alpha release and we advise you that using this app should be done for testing purposes only and you assume the full responsibility for all risks concerning your data and funds. Status makes no claims of security or integrity of funds in these builds."
|
||||
text: qsTrId("thanks-for-trying-status-desktop!-please-note-that-this-is-an-alpha-release-and-we-advise-you-that-using-this-app-should-be-done-for-testing-purposes-only-and-you-assume-the-full-responsibility-for-all-risks-concerning-your-data-and-funds.-status-makes-no-claims-of-security-or-integrity-of-funds-in-these-builds.")
|
||||
font.bold: true
|
||||
anchors.top: faqLink.bottom
|
||||
anchors.topMargin: 30
|
||||
|
|
|
@ -13,7 +13,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: title
|
||||
text: qsTr("Advanced settings")
|
||||
//% "Advanced settings"
|
||||
text: qsTrId("advanced-settings")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
anchors.top: parent.top
|
||||
|
@ -39,7 +40,8 @@ Item {
|
|||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
StyledText {
|
||||
text: qsTr("Theme (Light - Dark)")
|
||||
//% "Theme (Light - Dark)"
|
||||
text: qsTrId("theme-(light---dark)")
|
||||
}
|
||||
Switch {
|
||||
checked: themeSetting.isDarkTheme
|
||||
|
@ -56,7 +58,8 @@ Item {
|
|||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
StyledText {
|
||||
text: qsTr("Wallet Tab")
|
||||
//% "Wallet Tab"
|
||||
text: qsTrId("wallet-tab")
|
||||
}
|
||||
Switch {
|
||||
checked: walletBtn.enabled
|
||||
|
@ -65,7 +68,8 @@ Item {
|
|||
}
|
||||
}
|
||||
StyledText {
|
||||
text: qsTr("NOT RECOMMENDED - Use at your own risk")
|
||||
//% "NOT RECOMMENDED - Use at your own risk"
|
||||
text: qsTrId("not-recommended---use-at-your-own-risk")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -76,7 +80,8 @@ Item {
|
|||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
StyledText {
|
||||
text: qsTr("Browser Tab")
|
||||
//% "Browser Tab"
|
||||
text: qsTrId("browser-tab")
|
||||
}
|
||||
Switch {
|
||||
checked: browserBtn.enabled
|
||||
|
@ -85,7 +90,8 @@ Item {
|
|||
}
|
||||
}
|
||||
StyledText {
|
||||
text: qsTr("experimental (web3 not supported yet)")
|
||||
//% "experimental (web3 not supported yet)"
|
||||
text: qsTrId("experimental-(web3-not-supported-yet)")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -95,7 +101,8 @@ Item {
|
|||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
StyledText {
|
||||
text: qsTr("Node Management Tab")
|
||||
//% "Node Management Tab"
|
||||
text: qsTrId("node-management-tab")
|
||||
}
|
||||
Switch {
|
||||
checked: nodeBtn.enabled
|
||||
|
@ -104,7 +111,8 @@ Item {
|
|||
}
|
||||
}
|
||||
StyledText {
|
||||
text: qsTr("under development")
|
||||
//% "under development"
|
||||
text: qsTrId("under-development")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,8 @@ import "../../../../shared"
|
|||
ModalPopup {
|
||||
id: popup
|
||||
|
||||
title: qsTr("Write down your seed phrase")
|
||||
//% "Write down your seed phrase"
|
||||
title: qsTrId("write-down-your-seed-phrase")
|
||||
|
||||
Item {
|
||||
|
||||
|
@ -80,7 +81,8 @@ ModalPopup {
|
|||
|
||||
Text {
|
||||
id: confirmationsInfo
|
||||
text: qsTr("With this 12 words you can always get your key back. Write it down. Keep it safe, offline, and separate from this device.")
|
||||
//% "With this 12 words you can always get your key back. Write it down. Keep it safe, offline, and separate from this device."
|
||||
text: qsTrId("with-this-12-words-you-can-always-get-your-key-back.-write-it-down.-keep-it-safe,-offline,-and-separate-from-this-device.")
|
||||
font.pixelSize: 14
|
||||
font.weight: Font.Medium
|
||||
color: Style.current.darkGrey
|
||||
|
@ -94,7 +96,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
footer: StyledButton {
|
||||
label: qsTr("Done")
|
||||
//% "Done"
|
||||
label: qsTrId("done")
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.smallPadding
|
||||
anchors.bottom: parent.bottom
|
||||
|
|
|
@ -14,7 +14,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: element2
|
||||
text: qsTr("Contacts")
|
||||
//% "Contacts"
|
||||
text: qsTrId("contacts")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
anchors.top: parent.top
|
||||
|
|
|
@ -16,7 +16,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: sectionTitle
|
||||
text: qsTr("Devices")
|
||||
//% "Devices"
|
||||
text: qsTrId("devices")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
anchors.top: parent.top
|
||||
|
@ -37,13 +38,15 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: deviceNameLbl
|
||||
text: qsTr("Please set a name for your device.")
|
||||
//% "Please set a name for your device."
|
||||
text: qsTrId("pairing-please-set-a-name")
|
||||
font.pixelSize: 14
|
||||
}
|
||||
|
||||
Input {
|
||||
id: deviceNameTxt
|
||||
placeholderText: qsTr("Specify a name")
|
||||
//% "Specify a name"
|
||||
placeholderText: qsTrId("specify-name")
|
||||
anchors.top: deviceNameLbl.bottom
|
||||
anchors.topMargin: Style.current.padding
|
||||
}
|
||||
|
@ -53,7 +56,8 @@ Item {
|
|||
anchors.top: deviceNameTxt.bottom
|
||||
anchors.topMargin: 10
|
||||
anchors.right: deviceNameTxt.right
|
||||
label: qsTr("Continue")
|
||||
//% "Continue"
|
||||
label: qsTrId("continue")
|
||||
disabled: deviceNameTxt.text === ""
|
||||
onClicked : profileModel.setDeviceName(deviceNameTxt.text.trim())
|
||||
}
|
||||
|
@ -86,7 +90,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: advertiseDeviceTitle
|
||||
text: qsTr("Advertise device")
|
||||
//% "Advertise device"
|
||||
text: qsTrId("pair-this-device")
|
||||
font.pixelSize: 18
|
||||
font.weight: Font.Bold
|
||||
color: Style.current.blue
|
||||
|
@ -96,7 +101,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: advertiseDeviceDesk
|
||||
text: qsTr("Pair your devices to sync contacts and chats between them")
|
||||
//% "Pair your devices to sync contacts and chats between them"
|
||||
text: qsTrId("pair-this-device-description")
|
||||
font.pixelSize: 14
|
||||
anchors.top: advertiseDeviceTitle.bottom
|
||||
anchors.topMargin: 6
|
||||
|
@ -114,7 +120,8 @@ Item {
|
|||
StyledText {
|
||||
anchors.top: advertiseDevice.bottom
|
||||
anchors.topMargin: Style.current.padding
|
||||
text: qsTr("Learn more")
|
||||
//% "Learn more"
|
||||
text: qsTrId("learn-more")
|
||||
font.pixelSize: 16
|
||||
color: Style.current.blue
|
||||
anchors.left: parent.left
|
||||
|
@ -131,7 +138,11 @@ Item {
|
|||
anchors.bottom: syncContainer.bottom
|
||||
anchors.bottomMargin: Style.current.padding
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
label: isSyncing ? qsTr("Syncing...") : qsTr("Sync all devices")
|
||||
label: isSyncing ?
|
||||
//% "Syncing..."
|
||||
qsTrId("sync-in-progress") :
|
||||
//% "Sync all devices"
|
||||
qsTrId("sync-all-devices")
|
||||
disabled: isSyncing
|
||||
onClicked : {
|
||||
isSyncing = true;
|
||||
|
|
|
@ -13,7 +13,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: element1
|
||||
text: qsTr("ENS usernames")
|
||||
//% "ENS usernames"
|
||||
text: qsTrId("ens-usernames")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
anchors.top: parent.top
|
||||
|
|
|
@ -27,7 +27,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: element8
|
||||
text: qsTr("Help menus: FAQ, Glossary, etc.")
|
||||
//% "Help menus: FAQ, Glossary, etc."
|
||||
text: qsTrId("help-menus:-faq,-glossary,-etc.")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
anchors.top: parent.top
|
||||
|
|
|
@ -13,7 +13,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: element5
|
||||
text: qsTr("Language settings")
|
||||
//% "Language settings"
|
||||
text: qsTrId("language-settings")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
anchors.top: parent.top
|
||||
|
|
|
@ -13,7 +13,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: element6
|
||||
text: qsTr("Notifications settings")
|
||||
//% "Notifications settings"
|
||||
text: qsTrId("notifications-settings")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
anchors.top: parent.top
|
||||
|
|
|
@ -13,7 +13,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: element3
|
||||
text: qsTr("Privacy and security settings")
|
||||
//% "Privacy and security settings"
|
||||
text: qsTrId("privacy-and-security-settings")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
anchors.top: parent.top
|
||||
|
@ -24,7 +25,8 @@ Item {
|
|||
|
||||
Text {
|
||||
id: labelSecurity
|
||||
text: qsTr("Security")
|
||||
//% "Security"
|
||||
text: qsTrId("security")
|
||||
font.pixelSize: 13
|
||||
font.weight: Font.Medium
|
||||
color: Style.current.darkGrey
|
||||
|
@ -42,7 +44,8 @@ Item {
|
|||
height: children[0].height
|
||||
width: children[0].width
|
||||
Text {
|
||||
text: qsTr("Backup Seed Phrase")
|
||||
//% "Backup Seed Phrase"
|
||||
text: qsTrId("backup-seed-phrase")
|
||||
font.pixelSize: 14
|
||||
}
|
||||
MouseArea {
|
||||
|
|
|
@ -13,7 +13,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: txtTitle
|
||||
text: qsTr("Sign out controls")
|
||||
//% "Sign out controls"
|
||||
text: qsTrId("sign-out-controls")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
anchors.top: parent.top
|
||||
|
@ -26,8 +27,10 @@ Item {
|
|||
id: btnLogout
|
||||
anchors.top: txtTitle.bottom
|
||||
anchors.topMargin: Style.current.padding
|
||||
// label: qsTr("Logout")
|
||||
label: qsTr("Exit")
|
||||
//% "Logout"
|
||||
// label: qsTrId("logout")
|
||||
//% "Exit"
|
||||
label: qsTrId("exit")
|
||||
|
||||
onClicked: {
|
||||
// profileModel.logout();
|
||||
|
|
|
@ -13,7 +13,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: element4
|
||||
text: qsTr("Sync settings")
|
||||
//% "Sync settings"
|
||||
text: qsTrId("sync-settings")
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 24
|
||||
anchors.top: parent.top
|
||||
|
|
|
@ -11,7 +11,8 @@ ModalPopup {
|
|||
property var changeSelectedAccount
|
||||
id: popup
|
||||
// TODO add icon when we have that feature
|
||||
title: qsTr("Status account settings")
|
||||
//% "Status account settings"
|
||||
title: qsTrId("status-account-settings")
|
||||
height: 635
|
||||
|
||||
property int marginBetweenInputs: 35
|
||||
|
@ -20,7 +21,8 @@ ModalPopup {
|
|||
|
||||
function validate() {
|
||||
if (accountNameInput.text === "") {
|
||||
accountNameValidationError = qsTr("You need to enter an account name")
|
||||
//% "You need to enter an account name"
|
||||
accountNameValidationError = qsTrId("you-need-to-enter-an-account-name")
|
||||
} else {
|
||||
accountNameValidationError = ""
|
||||
}
|
||||
|
@ -40,8 +42,10 @@ ModalPopup {
|
|||
|
||||
Input {
|
||||
id: accountNameInput
|
||||
placeholderText: qsTr("Enter an account name...")
|
||||
label: qsTr("Account name")
|
||||
//% "Enter an account name..."
|
||||
placeholderText: qsTrId("enter-an-account-name...")
|
||||
//% "Account name"
|
||||
label: qsTrId("account-name")
|
||||
text: currentAccount.name
|
||||
validationError: popup.accountNameValidationError
|
||||
}
|
||||
|
@ -51,7 +55,8 @@ ModalPopup {
|
|||
anchors.top: accountNameInput.bottom
|
||||
anchors.topMargin: marginBetweenInputs
|
||||
bgColor: selectedColor
|
||||
label: qsTr("Account color")
|
||||
//% "Account color"
|
||||
label: qsTrId("account-color")
|
||||
selectOptions: Constants.accountColors.map(color => {
|
||||
return {
|
||||
text: "",
|
||||
|
@ -66,14 +71,18 @@ ModalPopup {
|
|||
|
||||
TextWithLabel {
|
||||
id: typeText
|
||||
label: qsTr("Type")
|
||||
//% "Type"
|
||||
label: qsTrId("type")
|
||||
text: {
|
||||
var result = ""
|
||||
switch (currentAccount.walletType) {
|
||||
case Constants.watchWalletType: result = qsTr("Watch-only"); break;
|
||||
//% "Watch-only"
|
||||
case Constants.watchWalletType: result = qsTrId("watch-only"); break;
|
||||
case Constants.keyWalletType:
|
||||
case Constants.seedWalletType: result = qsTr("Off Status tree"); break;
|
||||
default: result = qsTr("On Status tree")
|
||||
//% "Off Status tree"
|
||||
case Constants.seedWalletType: result = qsTrId("off-status-tree"); break;
|
||||
//% "On Status tree"
|
||||
default: result = qsTrId("on-status-tree")
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
@ -83,7 +92,8 @@ ModalPopup {
|
|||
|
||||
TextWithLabel {
|
||||
id: addressText
|
||||
label: qsTr("Wallet address")
|
||||
//% "Wallet address"
|
||||
label: qsTrId("wallet-address")
|
||||
text: currentAccount.address
|
||||
fontFamily: Style.current.fontHexRegular.name
|
||||
anchors.top: typeText.bottom
|
||||
|
@ -92,7 +102,8 @@ ModalPopup {
|
|||
|
||||
TextWithLabel {
|
||||
id: pathText
|
||||
label: qsTr("Derivation path")
|
||||
//% "Derivation path"
|
||||
label: qsTrId("derivation-path")
|
||||
text: currentAccount.path
|
||||
anchors.top: addressText.bottom
|
||||
anchors.topMargin: marginBetweenInputs
|
||||
|
@ -101,8 +112,10 @@ ModalPopup {
|
|||
TextWithLabel {
|
||||
id: storageText
|
||||
visible: currentAccount.walletType !== Constants.watchWalletType
|
||||
label: qsTr("Storage")
|
||||
text: qsTr("This device")
|
||||
//% "Storage"
|
||||
label: qsTrId("storage")
|
||||
//% "This device"
|
||||
text: qsTrId("this-device")
|
||||
anchors.top: pathText.bottom
|
||||
anchors.topMargin: marginBetweenInputs
|
||||
}
|
||||
|
@ -113,7 +126,8 @@ ModalPopup {
|
|||
anchors.top: parent.top
|
||||
anchors.right: saveBtn.left
|
||||
anchors.rightMargin: Style.current.padding
|
||||
label: qsTr("Delete account")
|
||||
//% "Delete account"
|
||||
label: qsTrId("delete-account")
|
||||
btnColor: Style.current.white
|
||||
textColor: Style.current.red
|
||||
|
||||
|
@ -127,8 +141,10 @@ ModalPopup {
|
|||
|
||||
MessageDialog {
|
||||
id: confirmationDialog
|
||||
title: qsTr("Are you sure?")
|
||||
text: qsTr("A deleted account cannot be retrieved later. Only press yes if you backed up your key/seed or don't care about this account anymore")
|
||||
//% "Are you sure?"
|
||||
title: qsTrId("are-you-sure?")
|
||||
//% "A deleted account cannot be retrieved later. Only press yes if you backed up your key/seed or don't care about this account anymore"
|
||||
text: qsTrId("a-deleted-account-cannot-be-retrieved-later.-only-press-yes-if-you-backed-up-your-key/seed-or-don't-care-about-this-account-anymore")
|
||||
icon: StandardIcon.Warning
|
||||
standardButtons: StandardButton.Yes | StandardButton.No
|
||||
onAccepted: {
|
||||
|
@ -155,7 +171,8 @@ ModalPopup {
|
|||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.padding
|
||||
label: qsTr("Save changes")
|
||||
//% "Save changes"
|
||||
label: qsTrId("save-changes")
|
||||
|
||||
disabled: accountNameInput.text === ""
|
||||
|
||||
|
|
|
@ -7,7 +7,8 @@ import "../../../sounds"
|
|||
|
||||
ModalPopup {
|
||||
id: popup
|
||||
title: qsTr("add custom token")
|
||||
//% "Add custom token"
|
||||
title: qsTrId("add-custom-token")
|
||||
height: 630
|
||||
|
||||
property int marginBetweenInputs: 35
|
||||
|
@ -24,31 +25,38 @@ ModalPopup {
|
|||
|
||||
Input {
|
||||
id: addressInput
|
||||
placeholderText: qsTr("Enter contract address...")
|
||||
label: qsTr("Contract address")
|
||||
//% "Enter contract address..."
|
||||
placeholderText: qsTrId("enter-contract-address...")
|
||||
//% "Contract address"
|
||||
label: qsTrId("contract-address")
|
||||
}
|
||||
|
||||
Input {
|
||||
id: nameInput
|
||||
anchors.top: addressInput.bottom
|
||||
anchors.topMargin: marginBetweenInputs
|
||||
placeholderText: qsTr("The name of your token...")
|
||||
label: qsTr("Name")
|
||||
//% "The name of your token..."
|
||||
placeholderText: qsTrId("the-name-of-your-token...")
|
||||
//% "Name"
|
||||
label: qsTrId("name")
|
||||
}
|
||||
|
||||
Input {
|
||||
id: symbolInput
|
||||
anchors.top: nameInput.bottom
|
||||
anchors.topMargin: marginBetweenInputs
|
||||
placeholderText: qsTr("ABC")
|
||||
label: qsTr("Symbol")
|
||||
//% "ABC"
|
||||
placeholderText: qsTrId("abc")
|
||||
//% "Symbol"
|
||||
label: qsTrId("symbol")
|
||||
}
|
||||
|
||||
Input {
|
||||
id: decimalsInput
|
||||
anchors.top: symbolInput.bottom
|
||||
anchors.topMargin: marginBetweenInputs
|
||||
label: qsTr("Decimals")
|
||||
//% "Decimals"
|
||||
label: qsTrId("decimals")
|
||||
text: "18"
|
||||
}
|
||||
|
||||
|
@ -60,7 +68,8 @@ ModalPopup {
|
|||
anchors.topMargin: Style.current.padding
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.padding
|
||||
label: qsTr("Add")
|
||||
//% "Add"
|
||||
label: qsTrId("add")
|
||||
|
||||
disabled: addressInput.text === "" || nameInput.text === "" || symbolInput.text === "" || decimalsInput.text === ""
|
||||
|
||||
|
|
|
@ -5,7 +5,8 @@ import "../../../shared"
|
|||
Item {
|
||||
StyledText {
|
||||
visible: walletModel.collectibles.rowCount() === 0
|
||||
text: qsTr("No collectibles in this account")
|
||||
//% "No collectibles in this account"
|
||||
text: qsTrId("no-collectibles-in-this-account")
|
||||
}
|
||||
|
||||
Component {
|
||||
|
|
|
@ -32,7 +32,8 @@ Item {
|
|||
id: title
|
||||
x: 143
|
||||
y: 16
|
||||
text: qsTr("Wallet")
|
||||
//% "Wallet"
|
||||
text: qsTrId("wallet")
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: Style.current.padding
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
|
|
@ -9,7 +9,8 @@ import "./components"
|
|||
ModalPopup {
|
||||
id: popup
|
||||
|
||||
title: qsTr("Send")
|
||||
//% "Send"
|
||||
title: qsTrId("command-button-send")
|
||||
height: 600
|
||||
|
||||
onOpened: {
|
||||
|
@ -53,7 +54,8 @@ ModalPopup {
|
|||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.padding
|
||||
label: qsTr("Send")
|
||||
//% "Send"
|
||||
label: qsTrId("command-button-send")
|
||||
|
||||
onClicked: {
|
||||
sendModalContent.send()
|
||||
|
|
|
@ -6,7 +6,8 @@ import "./components"
|
|||
|
||||
ModalPopup {
|
||||
id: popup
|
||||
title: qsTr("Add/Remove Tokens")
|
||||
//% "Add/Remove Tokens"
|
||||
title: qsTrId("add/remove-tokens")
|
||||
|
||||
|
||||
TokenSettingsModalContent {
|
||||
|
@ -16,7 +17,8 @@ ModalPopup {
|
|||
footer: StyledButton {
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.padding
|
||||
label: qsTr("Add custom token")
|
||||
//% "Add custom token"
|
||||
label: qsTrId("add-custom-token")
|
||||
anchors.top: parent.top
|
||||
onClicked: {
|
||||
popup.close()
|
||||
|
|
|
@ -184,21 +184,24 @@ Item {
|
|||
id: newSettingsMenu
|
||||
width: 280
|
||||
Action {
|
||||
text: qsTr("Account Settings")
|
||||
//% "Account Settings"
|
||||
text: qsTrId("account-settings")
|
||||
icon.source: "../../img/walletIcon.svg"
|
||||
onTriggered: {
|
||||
accountSettingsModal.open()
|
||||
}
|
||||
}
|
||||
Action {
|
||||
text: qsTr("Add/Remove Tokens")
|
||||
//% "Add/Remove Tokens"
|
||||
text: qsTrId("add/remove-tokens")
|
||||
icon.source: "../../img/add_remove_token.svg"
|
||||
onTriggered: {
|
||||
tokenSettingsModal.open()
|
||||
}
|
||||
}
|
||||
Action {
|
||||
text: qsTr("Set Currency")
|
||||
//% "Set Currency"
|
||||
text: qsTrId("set-currency")
|
||||
icon.source: "../../img/set_currency.svg"
|
||||
onTriggered: {
|
||||
setCurrencyModal.open()
|
||||
|
|
|
@ -27,28 +27,32 @@ AddButton {
|
|||
id: newAccountMenu
|
||||
width: 280
|
||||
Action {
|
||||
text: qsTr("Generate an account")
|
||||
//% "Generate an account"
|
||||
text: qsTrId("generate-a-new-account")
|
||||
icon.source: "../../../img/generate_account.svg"
|
||||
onTriggered: {
|
||||
generateAccountModal.open()
|
||||
}
|
||||
}
|
||||
Action {
|
||||
text: qsTr("Add a watch-only address")
|
||||
//% "Add a watch-only address"
|
||||
text: qsTrId("add-a-watch-account")
|
||||
icon.source: "../../../img/add_watch_only.svg"
|
||||
onTriggered: {
|
||||
addWatchOnlyAccountModal.open()
|
||||
}
|
||||
}
|
||||
Action {
|
||||
text: qsTr("Enter a seed phrase")
|
||||
//% "Enter a seed phrase"
|
||||
text: qsTrId("enter-a-seed-phrase")
|
||||
icon.source: "../../../img/enter_seed_phrase.svg"
|
||||
onTriggered: {
|
||||
addAccountWithSeedModal.open()
|
||||
}
|
||||
}
|
||||
Action {
|
||||
text: qsTr("Enter a private key")
|
||||
//% "Enter a private key"
|
||||
text: qsTrId("enter-a-private-key")
|
||||
icon.source: "../../../img/enter_private_key.svg"
|
||||
onTriggered: {
|
||||
addAccountWithPrivateKeydModal.open()
|
||||
|
|
|
@ -6,7 +6,8 @@ import "../../../../sounds"
|
|||
|
||||
ModalPopup {
|
||||
id: popup
|
||||
title: qsTr("Add account from private key")
|
||||
//% "Add account from private key"
|
||||
title: qsTrId("add-private-key-account")
|
||||
height: 600
|
||||
|
||||
property int marginBetweenInputs: 38
|
||||
|
@ -18,23 +19,28 @@ ModalPopup {
|
|||
|
||||
function validate() {
|
||||
if (passwordInput.text === "") {
|
||||
passwordValidationError = qsTr("You need to enter a password")
|
||||
//% "You need to enter a password"
|
||||
passwordValidationError = qsTrId("you-need-to-enter-a-password")
|
||||
} else if (passwordInput.text.length < 4) {
|
||||
passwordValidationError = qsTr("Password needs to be 4 characters or more")
|
||||
//% "Password needs to be 4 characters or more"
|
||||
passwordValidationError = qsTrId("password-needs-to-be-4-characters-or-more")
|
||||
} else {
|
||||
passwordValidationError = ""
|
||||
}
|
||||
|
||||
if (accountNameInput.text === "") {
|
||||
accountNameValidationError = qsTr("You need to enter an account name")
|
||||
//% "You need to enter an account name"
|
||||
accountNameValidationError = qsTrId("you-need-to-enter-an-account-name")
|
||||
} else {
|
||||
accountNameValidationError = ""
|
||||
}
|
||||
|
||||
if (accountPKeyInput.text === "") {
|
||||
privateKeyValidationError = qsTr("You need to enter a private key")
|
||||
//% "You need to enter a private key"
|
||||
privateKeyValidationError = qsTrId("you-need-to-enter-a-private-key")
|
||||
} else if (!Utils.isPrivateKey(accountPKeyInput.text)) {
|
||||
privateKeyValidationError = qsTr("Enter a valid private key (64 characters hexadecimal string)")
|
||||
//% "Enter a valid private key (64 characters hexadecimal string)"
|
||||
privateKeyValidationError = qsTrId("enter-a-valid-private-key-(64-characters-hexadecimal-string)")
|
||||
} else {
|
||||
privateKeyValidationError = ""
|
||||
}
|
||||
|
@ -55,8 +61,10 @@ ModalPopup {
|
|||
|
||||
Input {
|
||||
id: passwordInput
|
||||
placeholderText: qsTr("Enter your password…")
|
||||
label: qsTr("Password")
|
||||
//% "Enter your password…"
|
||||
placeholderText: qsTrId("enter-your-password…")
|
||||
//% "Password"
|
||||
label: qsTrId("password")
|
||||
textField.echoMode: TextInput.Password
|
||||
validationError: popup.passwordValidationError
|
||||
}
|
||||
|
@ -66,8 +74,10 @@ ModalPopup {
|
|||
id: accountPKeyInput
|
||||
anchors.top: passwordInput.bottom
|
||||
anchors.topMargin: marginBetweenInputs
|
||||
placeholderText: qsTr("Paste the contents of your private key")
|
||||
label: qsTr("Private key")
|
||||
//% "Paste the contents of your private key"
|
||||
placeholderText: qsTrId("paste-the-contents-of-your-private-key")
|
||||
//% "Private key"
|
||||
label: qsTrId("private-key")
|
||||
customHeight: 88
|
||||
validationError: popup.privateKeyValidationError
|
||||
}
|
||||
|
@ -76,8 +86,10 @@ ModalPopup {
|
|||
id: accountNameInput
|
||||
anchors.top: accountPKeyInput.bottom
|
||||
anchors.topMargin: marginBetweenInputs
|
||||
placeholderText: qsTr("Enter an account name...")
|
||||
label: qsTr("Account name")
|
||||
//% "Enter an account name..."
|
||||
placeholderText: qsTrId("enter-an-account-name...")
|
||||
//% "Account name"
|
||||
label: qsTrId("account-name")
|
||||
validationError: popup.accountNameValidationError
|
||||
}
|
||||
|
||||
|
@ -86,7 +98,8 @@ ModalPopup {
|
|||
anchors.top: accountNameInput.bottom
|
||||
anchors.topMargin: marginBetweenInputs
|
||||
bgColor: selectedColor
|
||||
label: qsTr("Account color")
|
||||
//% "Account color"
|
||||
label: qsTrId("account-color")
|
||||
selectOptions: Constants.accountColors.map(color => {
|
||||
return {
|
||||
text: "",
|
||||
|
@ -103,7 +116,11 @@ ModalPopup {
|
|||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.padding
|
||||
label: loading ? qsTr("Loading...") : qsTr("Add account >")
|
||||
label: loading ?
|
||||
//% "Loading..."
|
||||
qsTrId("loading") :
|
||||
//% "Add account >"
|
||||
qsTrId("add-account")
|
||||
|
||||
disabled: loading || passwordInput.text === "" || accountNameInput.text === "" || accountPKeyInput.text === ""
|
||||
|
||||
|
|
|
@ -17,23 +17,28 @@ ModalPopup {
|
|||
|
||||
function validate() {
|
||||
if (passwordInput.text === "") {
|
||||
passwordValidationError = qsTr("You need to enter a password")
|
||||
//% "You need to enter a password"
|
||||
passwordValidationError = qsTrId("you-need-to-enter-a-password")
|
||||
} else if (passwordInput.text.length < 4) {
|
||||
passwordValidationError = qsTr("Password needs to be 4 characters or more")
|
||||
//% "Password needs to be 4 characters or more"
|
||||
passwordValidationError = qsTrId("password-needs-to-be-4-characters-or-more")
|
||||
} else {
|
||||
passwordValidationError = ""
|
||||
}
|
||||
|
||||
if (accountNameInput.text === "") {
|
||||
accountNameValidationError = qsTr("You need to enter an account name")
|
||||
//% "You need to enter an account name"
|
||||
accountNameValidationError = qsTrId("you-need-to-enter-an-account-name")
|
||||
} else {
|
||||
accountNameValidationError = ""
|
||||
}
|
||||
|
||||
if (accountSeedInput.text === "") {
|
||||
seedValidationError = qsTr("You need to enter a seed phrase")
|
||||
//% "You need to enter a seed phrase"
|
||||
seedValidationError = qsTrId("you-need-to-enter-a-seed-phrase")
|
||||
} else if (!Utils.isMnemonic(accountSeedInput.text)) {
|
||||
seedValidationError = qsTr("Enter a valid mnemonic")
|
||||
//% "Enter a valid mnemonic"
|
||||
seedValidationError = qsTrId("enter-a-valid-mnemonic")
|
||||
} else {
|
||||
seedValidationError = ""
|
||||
}
|
||||
|
@ -46,7 +51,8 @@ ModalPopup {
|
|||
passwordInput.forceActiveFocus(Qt.MouseFocusReason)
|
||||
}
|
||||
|
||||
title: qsTr("Add account with a seed phrase")
|
||||
//% "Add account with a seed phrase"
|
||||
title: qsTrId("add-seed-account")
|
||||
|
||||
Item {
|
||||
ErrorSound {
|
||||
|
@ -56,8 +62,10 @@ ModalPopup {
|
|||
|
||||
Input {
|
||||
id: passwordInput
|
||||
placeholderText: qsTr("Enter your password…")
|
||||
label: qsTr("Password")
|
||||
//% "Enter your password…"
|
||||
placeholderText: qsTrId("enter-your-password…")
|
||||
//% "Password"
|
||||
label: qsTrId("password")
|
||||
textField.echoMode: TextInput.Password
|
||||
validationError: popup.passwordValidationError
|
||||
}
|
||||
|
@ -67,8 +75,10 @@ ModalPopup {
|
|||
id: accountSeedInput
|
||||
anchors.top: passwordInput.bottom
|
||||
anchors.topMargin: marginBetweenInputs
|
||||
placeholderText: qsTr("Enter your seed phrase, separate words with commas or spaces...")
|
||||
label: qsTr("Seed phrase")
|
||||
//% "Enter your seed phrase, separate words with commas or spaces..."
|
||||
placeholderText: qsTrId("enter-your-seed-phrase,-separate-words-with-commas-or-spaces...")
|
||||
//% "Seed phrase"
|
||||
label: qsTrId("recovery-phrase")
|
||||
customHeight: 88
|
||||
validationError: popup.seedValidationError
|
||||
}
|
||||
|
@ -77,8 +87,10 @@ ModalPopup {
|
|||
id: accountNameInput
|
||||
anchors.top: accountSeedInput.bottom
|
||||
anchors.topMargin: marginBetweenInputs
|
||||
placeholderText: qsTr("Enter an account name...")
|
||||
label: qsTr("Account name")
|
||||
//% "Enter an account name..."
|
||||
placeholderText: qsTrId("enter-an-account-name...")
|
||||
//% "Account name"
|
||||
label: qsTrId("account-name")
|
||||
validationError: popup.accountNameValidationError
|
||||
}
|
||||
|
||||
|
@ -87,7 +99,8 @@ ModalPopup {
|
|||
anchors.top: accountNameInput.bottom
|
||||
anchors.topMargin: marginBetweenInputs
|
||||
bgColor: selectedColor
|
||||
label: qsTr("Account color")
|
||||
//% "Account color"
|
||||
label: qsTrId("account-color")
|
||||
selectOptions: Constants.accountColors.map(color => {
|
||||
return {
|
||||
text: "",
|
||||
|
@ -104,7 +117,11 @@ ModalPopup {
|
|||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.padding
|
||||
label: loading ? qsTr("Loading...") : qsTr("Add account >")
|
||||
label: loading ?
|
||||
//% "Loading..."
|
||||
qsTrId("loading") :
|
||||
//% "Add account >"
|
||||
qsTrId("add-account")
|
||||
|
||||
disabled: loading || passwordInput.text === "" || accountNameInput.text === "" || accountSeedInput.text === ""
|
||||
|
||||
|
|
|
@ -6,7 +6,8 @@ import "../../../../sounds"
|
|||
|
||||
ModalPopup {
|
||||
id: popup
|
||||
title: qsTr("Add a watch-only account")
|
||||
//% "Add a watch-only account"
|
||||
title: qsTrId("add-watch-account")
|
||||
|
||||
property int marginBetweenInputs: 38
|
||||
property string selectedColor: Constants.accountColors[0]
|
||||
|
@ -16,15 +17,18 @@ ModalPopup {
|
|||
|
||||
function validate() {
|
||||
if (addressInput.text === "") {
|
||||
addressError = qsTr("You need to enter an address")
|
||||
//% "You need to enter an address"
|
||||
addressError = qsTrId("you-need-to-enter-an-address")
|
||||
} else if (!Utils.isAddress(addressInput.text)) {
|
||||
addressError = qsTr("This needs to be a valid address (starting with 0x)")
|
||||
//% "This needs to be a valid address (starting with 0x)"
|
||||
addressError = qsTrId("this-needs-to-be-a-valid-address-(starting-with-0x)")
|
||||
} else {
|
||||
addressError = ""
|
||||
}
|
||||
|
||||
if (accountNameInput.text === "") {
|
||||
accountNameValidationError = qsTr("You need to enter an account name")
|
||||
//% "You need to enter an account name"
|
||||
accountNameValidationError = qsTrId("you-need-to-enter-an-account-name")
|
||||
} else {
|
||||
accountNameValidationError = ""
|
||||
}
|
||||
|
@ -46,8 +50,10 @@ ModalPopup {
|
|||
Input {
|
||||
id: addressInput
|
||||
// TODO add QR code reader for the address
|
||||
placeholderText: qsTr("Enter address...")
|
||||
label: qsTr("Account address")
|
||||
//% "Enter address..."
|
||||
placeholderText: qsTrId("enter-address...")
|
||||
//% "Account address"
|
||||
label: qsTrId("wallet-key-title")
|
||||
validationError: popup.addressError
|
||||
}
|
||||
|
||||
|
@ -55,8 +61,10 @@ ModalPopup {
|
|||
id: accountNameInput
|
||||
anchors.top: addressInput.bottom
|
||||
anchors.topMargin: marginBetweenInputs
|
||||
placeholderText: qsTr("Enter an account name...")
|
||||
label: qsTr("Account name")
|
||||
//% "Enter an account name..."
|
||||
placeholderText: qsTrId("enter-an-account-name...")
|
||||
//% "Account name"
|
||||
label: qsTrId("account-name")
|
||||
validationError: popup.accountNameValidationError
|
||||
}
|
||||
|
||||
|
@ -65,7 +73,8 @@ ModalPopup {
|
|||
anchors.top: accountNameInput.bottom
|
||||
anchors.topMargin: marginBetweenInputs
|
||||
bgColor: selectedColor
|
||||
label: qsTr("Account color")
|
||||
//% "Account color"
|
||||
label: qsTrId("account-color")
|
||||
selectOptions: Constants.accountColors.map(color => {
|
||||
return {
|
||||
text: "",
|
||||
|
@ -82,7 +91,11 @@ ModalPopup {
|
|||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.padding
|
||||
label: loading ? qsTr("Loading...") : qsTr("Add account >")
|
||||
label: loading ?
|
||||
//% "Loading..."
|
||||
qsTrId("loading") :
|
||||
//% "Add account >"
|
||||
qsTrId("add-account")
|
||||
|
||||
disabled: loading || addressInput.text === "" || accountNameInput.text === ""
|
||||
|
||||
|
|
|
@ -6,7 +6,8 @@ import "../../../../sounds"
|
|||
|
||||
ModalPopup {
|
||||
id: popup
|
||||
title: qsTr("Generate an account")
|
||||
//% "Generate an account"
|
||||
title: qsTrId("generate-a-new-account")
|
||||
|
||||
property int marginBetweenInputs: 38
|
||||
property string selectedColor: Constants.accountColors[0]
|
||||
|
@ -16,15 +17,18 @@ ModalPopup {
|
|||
|
||||
function validate() {
|
||||
if (passwordInput.text === "") {
|
||||
passwordValidationError = qsTr("You need to enter a password")
|
||||
//% "You need to enter a password"
|
||||
passwordValidationError = qsTrId("you-need-to-enter-a-password")
|
||||
} else if (passwordInput.text.length < 4) {
|
||||
passwordValidationError = qsTr("Password needs to be 4 characters or more")
|
||||
//% "Password needs to be 4 characters or more"
|
||||
passwordValidationError = qsTrId("password-needs-to-be-4-characters-or-more")
|
||||
} else {
|
||||
passwordValidationError = ""
|
||||
}
|
||||
|
||||
if (accountNameInput.text === "") {
|
||||
accountNameValidationError = qsTr("You need to enter an account name")
|
||||
//% "You need to enter an account name"
|
||||
accountNameValidationError = qsTrId("you-need-to-enter-an-account-name")
|
||||
} else {
|
||||
accountNameValidationError = ""
|
||||
}
|
||||
|
@ -45,8 +49,10 @@ ModalPopup {
|
|||
|
||||
Input {
|
||||
id: passwordInput
|
||||
placeholderText: qsTr("Enter your password…")
|
||||
label: qsTr("Password")
|
||||
//% "Enter your password…"
|
||||
placeholderText: qsTrId("enter-your-password…")
|
||||
//% "Password"
|
||||
label: qsTrId("password")
|
||||
textField.echoMode: TextInput.Password
|
||||
validationError: popup.passwordValidationError
|
||||
}
|
||||
|
@ -55,8 +61,10 @@ ModalPopup {
|
|||
id: accountNameInput
|
||||
anchors.top: passwordInput.bottom
|
||||
anchors.topMargin: marginBetweenInputs
|
||||
placeholderText: qsTr("Enter an account name...")
|
||||
label: qsTr("Account name")
|
||||
//% "Enter an account name..."
|
||||
placeholderText: qsTrId("enter-an-account-name...")
|
||||
//% "Account name"
|
||||
label: qsTrId("account-name")
|
||||
validationError: popup.accountNameValidationError
|
||||
}
|
||||
|
||||
|
@ -65,7 +73,8 @@ ModalPopup {
|
|||
anchors.top: accountNameInput.bottom
|
||||
anchors.topMargin: marginBetweenInputs
|
||||
bgColor: selectedColor
|
||||
label: qsTr("Account color")
|
||||
//% "Account color"
|
||||
label: qsTrId("account-color")
|
||||
selectOptions: Constants.accountColors.map(color => {
|
||||
return {
|
||||
text: "",
|
||||
|
@ -82,7 +91,11 @@ ModalPopup {
|
|||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.padding
|
||||
label: loading ? qsTr("Loading...") : qsTr("Add account >")
|
||||
label: loading ?
|
||||
//% "Loading..."
|
||||
qsTrId("loading") :
|
||||
//% "Add account >"
|
||||
qsTrId("add-account")
|
||||
|
||||
disabled: loading || passwordInput.text === "" || accountNameInput.text === ""
|
||||
|
||||
|
|
|
@ -43,33 +43,41 @@ Item {
|
|||
return sendingError.open()
|
||||
}
|
||||
|
||||
sendingSuccess.text = qsTr("Transaction sent to the blockchain. You can watch the progress on Etherscan: https://etherscan.io/tx/%1").arg(result)
|
||||
//% "Transaction sent to the blockchain. You can watch the progress on Etherscan: https://etherscan.io/tx/%1"
|
||||
sendingSuccess.text = qsTrId("transaction-sent-to-the-blockchain.-you-can-watch-the-progress-on-etherscan:-https://etherscan.io/tx/%1").arg(result)
|
||||
sendingSuccess.open()
|
||||
}
|
||||
|
||||
function validate() {
|
||||
if (txtPassword.text === "") {
|
||||
passwordValidationError = qsTr("You need to enter a password")
|
||||
//% "You need to enter a password"
|
||||
passwordValidationError = qsTrId("you-need-to-enter-a-password")
|
||||
} else if (txtPassword.text.length < 4) {
|
||||
passwordValidationError = qsTr("Password needs to be 4 characters or more")
|
||||
//% "Password needs to be 4 characters or more"
|
||||
passwordValidationError = qsTrId("password-needs-to-be-4-characters-or-more")
|
||||
} else {
|
||||
passwordValidationError = ""
|
||||
}
|
||||
|
||||
if (txtTo.text === "") {
|
||||
toValidationError = qsTr("You need to enter a destination address")
|
||||
//% "You need to enter a destination address"
|
||||
toValidationError = qsTrId("you-need-to-enter-a-destination-address")
|
||||
} else if (!Utils.isAddress(txtTo.text)) {
|
||||
toValidationError = qsTr("This needs to be a valid address (starting with 0x)")
|
||||
//% "This needs to be a valid address (starting with 0x)"
|
||||
toValidationError = qsTrId("this-needs-to-be-a-valid-address-(starting-with-0x)")
|
||||
} else {
|
||||
toValidationError = ""
|
||||
}
|
||||
|
||||
if (txtAmount.text === "") {
|
||||
amountValidationError = qsTr("You need to enter an amount")
|
||||
//% "You need to enter an amount"
|
||||
amountValidationError = qsTrId("you-need-to-enter-an-amount")
|
||||
} else if (isNaN(txtAmount.text)) {
|
||||
amountValidationError = qsTr("This needs to be a number")
|
||||
//% "This needs to be a number"
|
||||
amountValidationError = qsTrId("this-needs-to-be-a-number")
|
||||
} else if (parseFloat(txtAmount.text) > parseFloat(selectedAccountValue)) {
|
||||
amountValidationError = qsTr("Amount needs to be lower than your balance (%1)").arg(selectedAccountValue)
|
||||
//% "Amount needs to be lower than your balance (%1)"
|
||||
amountValidationError = qsTrId("amount-needs-to-be-lower-than-your-balance-(%1)").arg(selectedAccountValue)
|
||||
} else {
|
||||
amountValidationError = ""
|
||||
}
|
||||
|
@ -88,7 +96,8 @@ Item {
|
|||
}
|
||||
MessageDialog {
|
||||
id: sendingSuccess
|
||||
title: qsTr("Success sending the transaction")
|
||||
//% "Success sending the transaction"
|
||||
title: qsTrId("success-sending-the-transaction")
|
||||
icon: StandardIcon.NoIcon
|
||||
standardButtons: StandardButton.Ok
|
||||
onAccepted: {
|
||||
|
@ -98,9 +107,11 @@ Item {
|
|||
|
||||
Input {
|
||||
id: txtAmount
|
||||
label: qsTr("Amount")
|
||||
//% "Amount"
|
||||
label: qsTrId("amount")
|
||||
anchors.top: parent.top
|
||||
placeholderText: qsTr("Enter amount...")
|
||||
//% "Enter amount..."
|
||||
placeholderText: qsTrId("enter-amount...")
|
||||
validationError: amountValidationError
|
||||
}
|
||||
|
||||
|
@ -110,7 +121,8 @@ Item {
|
|||
iconHeight: 24
|
||||
iconWidth: 24
|
||||
icon: "../../../img/tokens/" + selectedAssetSymbol.toUpperCase() + ".png"
|
||||
label: qsTr("Select the asset")
|
||||
//% "Select the asset"
|
||||
label: qsTrId("select-the-asset")
|
||||
anchors.top: txtAmount.bottom
|
||||
anchors.topMargin: Style.current.padding
|
||||
selectedText: selectedAssetName
|
||||
|
@ -126,7 +138,8 @@ Item {
|
|||
|
||||
StyledText {
|
||||
id: currentBalanceText
|
||||
text: qsTr("Balance: %1").arg(selectedAccountValue)
|
||||
//% "Balance: %1"
|
||||
text: qsTrId("balance:-%1").arg(selectedAccountValue)
|
||||
font.pixelSize: 13
|
||||
color: Style.current.darkGrey
|
||||
anchors.top: assetTypeSelect.top
|
||||
|
@ -141,7 +154,8 @@ Item {
|
|||
iconWidth: 12
|
||||
icon: "../../../img/walletIcon.svg"
|
||||
iconColor: selectedAccountIconColor
|
||||
label: qsTr("From account")
|
||||
//% "From account"
|
||||
label: qsTrId("from-account")
|
||||
anchors.top: assetTypeSelect.bottom
|
||||
anchors.topMargin: Style.current.padding
|
||||
selectedText: selectedAccountName
|
||||
|
@ -170,8 +184,10 @@ Item {
|
|||
|
||||
Input {
|
||||
id: txtTo
|
||||
label: qsTr("Recipient")
|
||||
placeholderText: qsTr("Send to")
|
||||
//% "Recipient"
|
||||
label: qsTrId("recipient")
|
||||
//% "Send to"
|
||||
placeholderText: qsTrId("send-to")
|
||||
anchors.top: textSelectAccountAddress.bottom
|
||||
anchors.topMargin: Style.current.padding
|
||||
validationError: toValidationError
|
||||
|
@ -179,8 +195,10 @@ Item {
|
|||
|
||||
Input {
|
||||
id: txtPassword
|
||||
label: qsTr("Password")
|
||||
placeholderText: qsTr("Enter Password")
|
||||
//% "Password"
|
||||
label: qsTrId("password")
|
||||
//% "Enter Password"
|
||||
placeholderText: qsTrId("biometric-auth-login-ios-fallback-label")
|
||||
anchors.top: txtTo.bottom
|
||||
anchors.topMargin: Style.current.padding
|
||||
textField.echoMode: TextInput.Password
|
||||
|
|
|
@ -5,7 +5,8 @@ import "./"
|
|||
|
||||
ModalPopup {
|
||||
id: popup
|
||||
title: qsTr("Transaction Details")
|
||||
//% "Transaction Details"
|
||||
title: qsTrId("transaction-details")
|
||||
|
||||
Item {
|
||||
id: confirmations
|
||||
|
@ -19,13 +20,15 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
id: confirmationsCount
|
||||
text: qsTr("9999 Confirmations")
|
||||
//% "9999 Confirmations"
|
||||
text: qsTrId("9999-confirmations")
|
||||
font.pixelSize: 14
|
||||
}
|
||||
|
||||
StyledText {
|
||||
id: confirmationsInfo
|
||||
text: qsTr("When the transaction has 12 confirmations you can consider it settled.")
|
||||
//% "When the transaction has 12 confirmations you can consider it settled."
|
||||
text: qsTrId("confirmations-helper-text")
|
||||
font.pixelSize: 14
|
||||
font.weight: Font.Medium
|
||||
color: Style.current.darkGrey
|
||||
|
@ -54,7 +57,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
id: labelBlock
|
||||
text: qsTr("Block")
|
||||
//% "Block"
|
||||
text: qsTrId("block")
|
||||
font.pixelSize: 14
|
||||
font.weight: Font.Medium
|
||||
color: Style.current.darkGrey
|
||||
|
@ -79,7 +83,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
id: labelHash
|
||||
text: qsTr("Hash")
|
||||
//% "Hash"
|
||||
text: qsTrId("hash")
|
||||
font.pixelSize: 14
|
||||
font.weight: Font.Medium
|
||||
color: Style.current.darkGrey
|
||||
|
@ -107,7 +112,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
id: labelFrom
|
||||
text: qsTr("From")
|
||||
//% "From"
|
||||
text: qsTrId("from")
|
||||
font.pixelSize: 14
|
||||
font.weight: Font.Medium
|
||||
color: Style.current.darkGrey
|
||||
|
@ -135,7 +141,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
id: labelTo
|
||||
text: qsTr("To")
|
||||
//% "To"
|
||||
text: qsTrId("to")
|
||||
font.pixelSize: 14
|
||||
font.weight: Font.Medium
|
||||
color: Style.current.darkGrey
|
||||
|
@ -162,7 +169,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
id: labelGasLimit
|
||||
text: qsTr("Gas limit")
|
||||
//% "Gas limit"
|
||||
text: qsTrId("gas-limit")
|
||||
font.pixelSize: 14
|
||||
font.weight: Font.Medium
|
||||
color: Style.current.darkGrey
|
||||
|
@ -187,7 +195,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
id: labelGasPrice
|
||||
text: qsTr("Gas price")
|
||||
//% "Gas price"
|
||||
text: qsTrId("gas-price")
|
||||
font.pixelSize: 14
|
||||
font.weight: Font.Medium
|
||||
color: Style.current.darkGrey
|
||||
|
@ -212,7 +221,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
id: labelGasUsed
|
||||
text: qsTr("Gas used")
|
||||
//% "Gas used"
|
||||
text: qsTrId("gas-used")
|
||||
font.pixelSize: 14
|
||||
font.weight: Font.Medium
|
||||
color: Style.current.darkGrey
|
||||
|
@ -237,7 +247,8 @@ ModalPopup {
|
|||
|
||||
StyledText {
|
||||
id: labelNonce
|
||||
text: qsTr("Nonce")
|
||||
//% "Nonce"
|
||||
text: qsTrId("nonce")
|
||||
font.pixelSize: 14
|
||||
font.weight: Font.Medium
|
||||
color: Style.current.darkGrey
|
||||
|
|
|
@ -5,553 +5,632 @@ ListModel {
|
|||
ListElement {
|
||||
key: "usd"
|
||||
code: "USD"
|
||||
name: qsTr("US Dollars")
|
||||
//% "US Dollars"
|
||||
name: qsTrId("us-dollars")
|
||||
symbol: "$"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "eur"
|
||||
code: "EUR"
|
||||
name: qsTr("Euros")
|
||||
//% "Euros"
|
||||
name: qsTrId("euros")
|
||||
symbol: "€"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "aed"
|
||||
code: "AED"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "د.إ"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "afn"
|
||||
code: "AFN"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "؋"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "ars"
|
||||
code: "ARS"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "$"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "aud"
|
||||
code: "AUD"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "$"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "bbd"
|
||||
code: "BBD"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "$"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "bdt"
|
||||
code: "BDT"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: " Tk"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "bgn"
|
||||
code: "BGN"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "лв"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "bhd"
|
||||
code: "BHD"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "BD"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "bnd"
|
||||
code: "BND"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "$"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "bob"
|
||||
code: "BOB"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "$b"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "brl"
|
||||
code: "BRL"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "R$"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "btn"
|
||||
code: "BTN"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "Nu."
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "cad"
|
||||
code: "CAD"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "$"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "chf"
|
||||
code: "CHF"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "CHF"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "clp"
|
||||
code: "CLP"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "$"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "cny"
|
||||
code: "CNY"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "¥"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "cop"
|
||||
code: "COP"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "$"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "crc"
|
||||
code: "CRC"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "₡"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "czk"
|
||||
code: "CZK"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "Kč"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "dkk"
|
||||
code: "DKK"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "kr"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "dop"
|
||||
code: "DOP"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "RD$"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "egp"
|
||||
code: "EGP"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "£"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "etb"
|
||||
code: "ETB"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "Br"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "gbp"
|
||||
code: "GBP"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "£"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "gel"
|
||||
code: "GEL"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "₾"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "ghs"
|
||||
code: "GHS"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "¢"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "hkd"
|
||||
code: "HKD"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "$"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "hrk"
|
||||
code: "HRK"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "kn"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "huf"
|
||||
code: "HUF"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "Ft"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "idr"
|
||||
code: "IDR"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "Rp"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "ils"
|
||||
code: "ILS"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "₪"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "inr"
|
||||
code: "INR"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "₹"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "isk"
|
||||
code: "ISK"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "kr"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "jmd"
|
||||
code: "JMD"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "J$"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "jpy"
|
||||
code: "JPY"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "¥"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "kes"
|
||||
code: "KES"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "KSh"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "krw"
|
||||
code: "KRW"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "₩"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "kwd"
|
||||
code: "KWD"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "د.ك"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "kzt"
|
||||
code: "KZT"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "лв"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "lkr"
|
||||
code: "LKR"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "₨"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "mad"
|
||||
code: "MAD"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "MAD"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "mdl"
|
||||
code: "MDL"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "MDL"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "mur"
|
||||
code: "MUR"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "₨"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "mwk"
|
||||
code: "MWK"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "MK"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "mxn"
|
||||
code: "MXN"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "$"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "myr"
|
||||
code: "MYR"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "RM"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "mzn"
|
||||
code: "MZN"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "MT"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "nad"
|
||||
code: "NAD"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "$"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "ngn"
|
||||
code: "NGN"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "₦"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "nok"
|
||||
code: "NOK"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "kr"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "npr"
|
||||
code: "NPR"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "₨"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "nzd"
|
||||
code: "NZD"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "$"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "omr"
|
||||
code: "OMR"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "﷼"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "pen"
|
||||
code: "PEN"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "S/."
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "pgk"
|
||||
code: "PGK"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "K"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "php"
|
||||
code: "PHP"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "₱"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "pkr"
|
||||
code: "PKR"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "₨"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "pln"
|
||||
code: "PLN"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "zł"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "pyg"
|
||||
code: "PYG"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "Gs"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "qar"
|
||||
code: "QAR"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "﷼"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "ron"
|
||||
code: "RON"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "lei"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "rsd"
|
||||
code: "RSD"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "Дин."
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "rub"
|
||||
code: "RUB"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "₽"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "sar"
|
||||
code: "SAR"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "﷼"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "sek"
|
||||
code: "SEK"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "kr"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "sgd"
|
||||
code: "SGD"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "$"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "thb"
|
||||
code: "THB"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "฿"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "ttd"
|
||||
code: "TTD"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "TT$"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "twd"
|
||||
code: "TWD"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "NT$"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "tzs"
|
||||
code: "TZS"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "TSh"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "try"
|
||||
code: "TRY"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "₺"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "uah"
|
||||
code: "UAH"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "₴"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "ugx"
|
||||
code: "UGX"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "USh"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "uyu"
|
||||
code: "UYU"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "$U"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "vef"
|
||||
code: "VEF"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "Bs"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "vnd"
|
||||
code: "VND"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "₫"
|
||||
}
|
||||
|
||||
ListElement {
|
||||
key: "zar"
|
||||
code: "ZAR"
|
||||
name: qsTr("")
|
||||
//% ""
|
||||
name: qsTrId("")
|
||||
symbol: "R"
|
||||
}
|
||||
|
||||
|
|
|
@ -19,7 +19,8 @@ ApplicationWindow {
|
|||
color: Style.current.white
|
||||
title: {
|
||||
// Set application settings
|
||||
Qt.application.name = qsTr("Nim Status Client")
|
||||
//% "Nim Status Client"
|
||||
Qt.application.name = qsTrId("nim-status-client")
|
||||
Qt.application.organization = "Status"
|
||||
Qt.application.domain = "status.im"
|
||||
return Qt.application.name
|
||||
|
@ -40,7 +41,8 @@ ApplicationWindow {
|
|||
icon.source: "shared/img/status-logo.png"
|
||||
menu: Menu {
|
||||
MenuItem {
|
||||
text: qsTr("Quit")
|
||||
//% "Quit"
|
||||
text: qsTrId("quit")
|
||||
onTriggered: Qt.quit()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,17 +12,21 @@ ModalPopup {
|
|||
|
||||
function validate() {
|
||||
if (firstPasswordField.text === "") {
|
||||
passwordValidationError = qsTr("You need to enter a password")
|
||||
//% "You need to enter a password"
|
||||
passwordValidationError = qsTrId("you-need-to-enter-a-password")
|
||||
} else if (firstPasswordField.text.length < 4) {
|
||||
passwordValidationError = qsTr("Password needs to be 4 characters or more")
|
||||
//% "Password needs to be 4 characters or more"
|
||||
passwordValidationError = qsTrId("password-needs-to-be-4-characters-or-more")
|
||||
} else {
|
||||
passwordValidationError = ""
|
||||
}
|
||||
|
||||
if (repeatPasswordField.text === "") {
|
||||
repeatPasswordValidationError = qsTr("You need to repeat your password")
|
||||
//% "You need to repeat your password"
|
||||
repeatPasswordValidationError = qsTrId("you-need-to-repeat-your-password")
|
||||
} else if (repeatPasswordField.text !== firstPasswordField.text) {
|
||||
repeatPasswordValidationError = qsTr("Both passwords must match")
|
||||
//% "Both passwords must match"
|
||||
repeatPasswordValidationError = qsTrId("both-passwords-must-match")
|
||||
} else {
|
||||
repeatPasswordValidationError = ""
|
||||
}
|
||||
|
@ -31,7 +35,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
id: popup
|
||||
title: qsTr("Create a password")
|
||||
//% "Create a password"
|
||||
title: qsTrId("intro-wizard-title-alt4")
|
||||
height: 500
|
||||
|
||||
onOpened: {
|
||||
|
@ -51,7 +56,8 @@ ModalPopup {
|
|||
anchors.leftMargin: 56
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: 88
|
||||
placeholderText: qsTr("New password...")
|
||||
//% "New password..."
|
||||
placeholderText: qsTrId("new-password...")
|
||||
textField.echoMode: TextInput.Password
|
||||
validationError: popup.passwordValidationError
|
||||
}
|
||||
|
@ -64,7 +70,8 @@ ModalPopup {
|
|||
anchors.left: firstPasswordField.left
|
||||
anchors.top: firstPasswordField.bottom
|
||||
anchors.topMargin: Style.current.xlPadding
|
||||
placeholderText: qsTr("Confirm password…")
|
||||
//% "Confirm password…"
|
||||
placeholderText: qsTrId("confirm-password…")
|
||||
textField.echoMode: TextInput.Password
|
||||
validationError: popup.repeatPasswordValidationError
|
||||
Keys.onReturnPressed: {
|
||||
|
@ -73,7 +80,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
StyledText {
|
||||
text: qsTr("At least 6 characters. You will use this password to unlock status on this device & sign transactions.")
|
||||
//% "At least 6 characters. You will use this password to unlock status on this device & sign transactions."
|
||||
text: qsTrId("at-least-6-characters.-you-will-use-this-password-to-unlock-status-on-this-device-&-sign-transactions.")
|
||||
wrapMode: Text.WordWrap
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.xlPadding
|
||||
|
@ -119,14 +127,18 @@ ModalPopup {
|
|||
anchors.topMargin: Style.current.padding
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.padding
|
||||
label: loading ? qsTr("Logging in...") : qsTr("Create password")
|
||||
//% "Logging in..."
|
||||
//% "Create password"
|
||||
label: loading ? qsTrId("logging-in...") : qsTrId("create-password")
|
||||
|
||||
disabled: firstPasswordField.text === "" || repeatPasswordField.text === "" || loading
|
||||
|
||||
MessageDialog {
|
||||
id: importError
|
||||
title: qsTr("Error importing account")
|
||||
text: qsTr("An error occurred while importing your account: ")
|
||||
//% "Error importing account"
|
||||
title: qsTrId("error-importing-account")
|
||||
//% "An error occurred while importing your account: "
|
||||
text: qsTrId("an-error-occurred-while-importing-your-account:-")
|
||||
icon: StandardIcon.Critical
|
||||
standardButtons: StandardButton.Ok
|
||||
onVisibilityChanged: {
|
||||
|
@ -136,8 +148,10 @@ ModalPopup {
|
|||
|
||||
MessageDialog {
|
||||
id: importLoginError
|
||||
title: qsTr("Login failed")
|
||||
text: qsTr("Login failed. Please re-enter your password and try again.")
|
||||
//% "Login failed"
|
||||
title: qsTrId("login-failed")
|
||||
//% "Login failed. Please re-enter your password and try again."
|
||||
text: qsTrId("login-failed.-please-re-enter-your-password-and-try-again.")
|
||||
icon: StandardIcon.Critical
|
||||
standardButtons: StandardButton.Ok
|
||||
onVisibilityChanged: {
|
||||
|
|
|
@ -6,7 +6,8 @@ import "../shared"
|
|||
ModalPopup {
|
||||
property var onConfirmSeedClick: function () {}
|
||||
id: popup
|
||||
title: qsTr("Add key")
|
||||
//% "Add key"
|
||||
title: qsTrId("add-key")
|
||||
height: 400
|
||||
|
||||
onOpened: {
|
||||
|
@ -33,7 +34,8 @@ ModalPopup {
|
|||
}
|
||||
|
||||
StyledText {
|
||||
text: qsTr("Enter 12, 15, 18, 21 or 24 words.\nSeperate words by a single space.")
|
||||
//% "Enter 12, 15, 18, 21 or 24 words.\nSeperate words by a single space."
|
||||
text: qsTrId("enter-12,-15,-18,-21-or-24-words.\nseperate-words-by-a-single-space.")
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.bottomMargin: 0
|
||||
|
|
|
@ -9,7 +9,8 @@ ModalPopup {
|
|||
property var onClosed: function () {}
|
||||
property var onNextClick: function () {}
|
||||
id: popup
|
||||
title: qsTr("Choose a chat name")
|
||||
//% "Choose a chat name"
|
||||
title: qsTrId("intro-wizard-title2")
|
||||
|
||||
AccountList {
|
||||
id: accountList
|
||||
|
|
|
@ -28,19 +28,25 @@ RowLayout {
|
|||
|
||||
Slide {
|
||||
image: "img/chat@2x.jpg"
|
||||
title: qsTr("Truly private communication")
|
||||
description: qsTr("Chat over a peer-to-peer, encrypted network\n where messages can't be censored or hacked")
|
||||
//% "Truly private communication"
|
||||
title: qsTrId("intro-title1")
|
||||
//% "Chat over a peer-to-peer, encrypted network\n where messages can't be censored or hacked"
|
||||
description: qsTrId("chat-over-a-peer-to-peer,-encrypted-network\n-where-messages-can't-be-censored-or-hacked")
|
||||
isFirst: true
|
||||
}
|
||||
Slide {
|
||||
image: "img/wallet@2x.jpg"
|
||||
title: qsTr("Secure crypto wallet")
|
||||
description: qsTr("Send and receive digital assets anywhere in the\nworld--no bank account required")
|
||||
//% "Secure crypto wallet"
|
||||
title: qsTrId("intro-title2")
|
||||
//% "Send and receive digital assets anywhere in the\nworld--no bank account required"
|
||||
description: qsTrId("send-and-receive-digital-assets-anywhere-in-the\nworld--no-bank-account-required")
|
||||
}
|
||||
Slide {
|
||||
image: "img/browser@2x.jpg"
|
||||
title: qsTr("Decentralized apps")
|
||||
description: qsTr("Explore games, exchanges and social networks\nwhere you alone own your data")
|
||||
//% "Decentralized apps"
|
||||
title: qsTrId("intro-title3")
|
||||
//% "Explore games, exchanges and social networks\nwhere you alone own your data"
|
||||
description: qsTrId("explore-games,-exchanges-and-social-networks\nwhere-you-alone-own-your-data")
|
||||
isLast: true
|
||||
}
|
||||
}
|
||||
|
@ -73,7 +79,8 @@ RowLayout {
|
|||
StyledText {
|
||||
id: warningMessage
|
||||
x: 772
|
||||
text: qsTr("Thanks for trying Status Desktop! Please note that this is an alpha release and we advise you that using this app should be done for testing purposes only and you assume the full responsibility for all risks concerning your data and funds. Status makes no claims of security or integrity of funds in these builds.")
|
||||
//% "Thanks for trying Status Desktop! Please note that this is an alpha release and we advise you that using this app should be done for testing purposes only and you assume the full responsibility for all risks concerning your data and funds. Status makes no claims of security or integrity of funds in these builds."
|
||||
text: qsTrId("thanks-for-trying-status-desktop!-please-note-that-this-is-an-alpha-release-and-we-advise-you-that-using-this-app-should-be-done-for-testing-purposes-only-and-you-assume-the-full-responsibility-for-all-risks-concerning-your-data-and-funds.-status-makes-no-claims-of-security-or-integrity-of-funds-in-these-builds.")
|
||||
font.bold: true
|
||||
anchors.top: rctPageIndicator.bottom
|
||||
anchors.topMargin: 5
|
||||
|
@ -90,7 +97,8 @@ RowLayout {
|
|||
anchors.top: warningMessage.bottom
|
||||
anchors.topMargin: 0
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: qsTr("I understand")
|
||||
//% "I understand"
|
||||
text: qsTrId("i-understand")
|
||||
}
|
||||
|
||||
StyledButton {
|
||||
|
@ -108,7 +116,8 @@ RowLayout {
|
|||
StyledText {
|
||||
id: txtPrivacyPolicy
|
||||
x: 772
|
||||
text: qsTr("Status does not collect, share or sell any personal data. By continuing you agree with the privacy policy.")
|
||||
//% "Status does not collect, share or sell any personal data. By continuing you agree with the privacy policy."
|
||||
text: qsTrId("status-does-not-collect,-share-or-sell-any-personal-data.-by-continuing-you-agree-with-the-privacy-policy.")
|
||||
anchors.top: btnGetStarted.bottom
|
||||
anchors.topMargin: 8
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
|
|
@ -5,12 +5,13 @@ import "../shared"
|
|||
|
||||
ModalPopup {
|
||||
id: popup
|
||||
title: qsTr("Invalid seed phrase")
|
||||
//% "Invalid seed phrase"
|
||||
title: qsTrId("custom-seed-phrase")
|
||||
height: 200
|
||||
property string error: "Invalid seed phrase."
|
||||
|
||||
StyledText {
|
||||
text: qsTr(popup.error)
|
||||
text: popup.error
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
font.pixelSize: 15
|
||||
|
@ -19,7 +20,8 @@ ModalPopup {
|
|||
footer: StyledButton {
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: Style.current.smallPadding
|
||||
label: qsTr("Cancel")
|
||||
//% "Cancel"
|
||||
label: qsTrId("browsing-cancel")
|
||||
anchors.bottom: parent.bottom
|
||||
onClicked: {
|
||||
popup.close()
|
||||
|
|
|
@ -34,7 +34,8 @@ Page {
|
|||
|
||||
StyledText {
|
||||
id: txtTitle1
|
||||
text: qsTr("Get your keys")
|
||||
//% "Get your keys"
|
||||
text: qsTrId("intro-wizard-title1")
|
||||
anchors.topMargin: Style.current.padding
|
||||
font.bold: true
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
@ -46,7 +47,8 @@ Page {
|
|||
StyledText {
|
||||
id: txtDesc1
|
||||
color: Style.current.darkGrey
|
||||
text: qsTr("A set of keys controls your account. Your keys live on your device, so only you can use them.")
|
||||
//% "A set of keys controls your account. Your keys live on your device, so only you can use them."
|
||||
text: qsTrId("a-set-of-keys-controls-your-account.-your-keys-live-on-your-device,-so-only-you-can-use-them.")
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
wrapMode: Text.WordWrap
|
||||
anchors.right: parent.right
|
||||
|
@ -63,12 +65,14 @@ Page {
|
|||
anchors.top: txtDesc1.bottom
|
||||
anchors.topMargin: 40
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
label: qsTr("I'm new, generate keys")
|
||||
//% "I'm new, generate keys"
|
||||
label: qsTrId("i'm-new,-generate-keys")
|
||||
}
|
||||
|
||||
StyledButton {
|
||||
id: btnExistingKey
|
||||
label: qsTr("Access existing key")
|
||||
//% "Access existing key"
|
||||
label: qsTrId("access-existing-key")
|
||||
anchors.top: btnGenKey.bottom
|
||||
anchors.topMargin: Style.current.padding
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
|
|
@ -245,7 +245,8 @@ Item {
|
|||
StyledText {
|
||||
id: generateKeysLinkText
|
||||
color: Style.current.blue
|
||||
text: qsTr("Generate new keys")
|
||||
//% "Generate new keys"
|
||||
text: qsTrId("generate-new-keys")
|
||||
font.pixelSize: 13
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,8 @@ import "../../shared"
|
|||
ModalPopup {
|
||||
property var onOpenModalClick: function () {}
|
||||
id: popup
|
||||
title: qsTr("Enter seed phrase")
|
||||
//% "Enter seed phrase"
|
||||
title: qsTrId("enter-seed-phrase")
|
||||
height: 200
|
||||
|
||||
StyledText {
|
||||
|
|
|
@ -7,7 +7,8 @@ ModalPopup {
|
|||
property var onAccountSelect: function () {}
|
||||
property var onOpenModalClick: function () {}
|
||||
id: popup
|
||||
title: qsTr("Your accounts")
|
||||
//% "Your accounts"
|
||||
title: qsTrId("your-accounts")
|
||||
|
||||
AccountList {
|
||||
id: accountList
|
||||
|
|
|
@ -3,7 +3,8 @@ import "../imports"
|
|||
|
||||
Input {
|
||||
id: searchBox
|
||||
placeholderText: qsTr("Search")
|
||||
//% "Search"
|
||||
placeholderText: qsTrId("search")
|
||||
icon: "../app/img/search.svg"
|
||||
iconWidth: 17
|
||||
iconHeight: 17
|
||||
|
|
Loading…
Reference in New Issue