From 1eb1d3d41c9d7316e1bc314de31c9b5ee99efcd8 Mon Sep 17 00:00:00 2001 From: Jonathan Rainville Date: Mon, 6 Jul 2020 16:39:55 -0400 Subject: [PATCH] chore: run transform script to change qstr to qstrid --- .../AppLayouts/Chat/ChatColumn/ChatInput.qml | 3 +- ui/app/AppLayouts/Chat/ChatColumn/Message.qml | 12 +- ui/app/AppLayouts/Chat/ChatColumn/TopBar.qml | 30 ++- ui/app/AppLayouts/Chat/ContactsColumn.qml | 3 +- .../Chat/ContactsColumn/AddChat.qml | 9 +- .../Chat/ContactsColumn/Channel.qml | 15 +- .../Chat/ContactsColumn/EmptyView.qml | 3 +- ui/app/AppLayouts/Chat/components/Contact.qml | 3 +- .../Chat/components/GroupChatPopup.qml | 15 +- .../Chat/components/GroupInfoPopup.qml | 30 ++- .../Chat/components/PrivateChatPopup.qml | 9 +- .../Chat/components/ProfilePopup.qml | 23 +- .../Chat/components/PublicChatPopup.qml | 9 +- .../Chat/components/RenameGroupPopup.qml | 9 +- .../Chat/components/StickersPopup.qml | 9 +- ui/app/AppLayouts/Node/NodeLayout.qml | 3 +- ui/app/AppLayouts/Profile/LeftTab/Menu.qml | 33 ++- .../Profile/Sections/AboutContainer.qml | 15 +- .../Profile/Sections/AdvancedContainer.qml | 24 +- .../Profile/Sections/BackupSeedModal.qml | 9 +- .../Profile/Sections/ContactsContainer.qml | 3 +- .../Profile/Sections/DevicesContainer.qml | 27 +- .../Profile/Sections/EnsContainer.qml | 3 +- .../Profile/Sections/HelpContainer.qml | 3 +- .../Profile/Sections/LanguageContainer.qml | 3 +- .../Sections/NotificationsContainer.qml | 3 +- .../Profile/Sections/PrivacyContainer.qml | 9 +- .../Profile/Sections/SignoutContainer.qml | 9 +- .../Profile/Sections/SyncContainer.qml | 3 +- .../Wallet/AccountSettingsModal.qml | 51 ++-- .../AppLayouts/Wallet/AddCustomTokenModal.qml | 27 +- ui/app/AppLayouts/Wallet/CollectiblesTab.qml | 3 +- ui/app/AppLayouts/Wallet/LeftTab.qml | 3 +- ui/app/AppLayouts/Wallet/SendModal.qml | 6 +- .../AppLayouts/Wallet/TokenSettingsModal.qml | 6 +- ui/app/AppLayouts/Wallet/WalletHeader.qml | 9 +- .../Wallet/components/AddAccount.qml | 12 +- .../components/AddAccountWithPrivateKey.qml | 45 ++-- .../Wallet/components/AddAccountWithSeed.qml | 45 ++-- .../Wallet/components/AddWatchOnlyAccount.qml | 33 ++- .../components/GenerateAccountModal.qml | 33 ++- .../Wallet/components/SendModalContent.qml | 54 ++-- .../Wallet/components/TransactionModal.qml | 33 ++- ui/app/AppLayouts/Wallet/data/Currencies.qml | 237 ++++++++++++------ ui/main.qml | 6 +- ui/onboarding/CreatePasswordModal.qml | 40 ++- ui/onboarding/EnterSeedPhraseModal.qml | 6 +- ui/onboarding/GenKeyModal.qml | 3 +- ui/onboarding/Intro.qml | 27 +- ui/onboarding/InvalidSeedPhraseModal.qml | 8 +- ui/onboarding/KeysMain.qml | 12 +- ui/onboarding/Login.qml | 3 +- .../Login/ConfirmAddExistingKeyModal.qml | 3 +- .../Login/SelectAnotherAccountModal.qml | 3 +- ui/shared/SearchBox.qml | 3 +- 55 files changed, 702 insertions(+), 338 deletions(-) diff --git a/ui/app/AppLayouts/Chat/ChatColumn/ChatInput.qml b/ui/app/AppLayouts/Chat/ChatColumn/ChatInput.qml index f4eacb8189..ebc6bbb356 100644 --- a/ui/app/AppLayouts/Chat/ChatColumn/ChatInput.qml +++ b/ui/app/AppLayouts/Chat/ChatColumn/ChatInput.qml @@ -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" diff --git a/ui/app/AppLayouts/Chat/ChatColumn/Message.qml b/ui/app/AppLayouts/Chat/ChatColumn/Message.qml index 89ee05c88a..dc8fd94396 100644 --- a/ui/app/AppLayouts/Chat/ChatColumn/Message.qml +++ b/ui/app/AppLayouts/Chat/ChatColumn/Message.qml @@ -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 diff --git a/ui/app/AppLayouts/Chat/ChatColumn/TopBar.qml b/ui/app/AppLayouts/Chat/ChatColumn/TopBar.qml index f3f69a8bd0..76cbc29302 100644 --- a/ui/app/AppLayouts/Chat/ChatColumn/TopBar.qml +++ b/ui/app/AppLayouts/Chat/ChatColumn/TopBar.qml @@ -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() } } diff --git a/ui/app/AppLayouts/Chat/ContactsColumn.qml b/ui/app/AppLayouts/Chat/ContactsColumn.qml index e80d7be0ea..e0398d20ec 100644 --- a/ui/app/AppLayouts/Chat/ContactsColumn.qml +++ b/ui/app/AppLayouts/Chat/ContactsColumn.qml @@ -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 diff --git a/ui/app/AppLayouts/Chat/ContactsColumn/AddChat.qml b/ui/app/AppLayouts/Chat/ContactsColumn/AddChat.qml index 4d5daada6e..9999046884 100644 --- a/ui/app/AppLayouts/Chat/ContactsColumn/AddChat.qml +++ b/ui/app/AppLayouts/Chat/ContactsColumn/AddChat.qml @@ -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() } diff --git a/ui/app/AppLayouts/Chat/ContactsColumn/Channel.qml b/ui/app/AppLayouts/Chat/ContactsColumn/Channel.qml index 704ee08800..dbd542343c 100644 --- a/ui/app/AppLayouts/Chat/ContactsColumn/Channel.qml +++ b/ui/app/AppLayouts/Chat/ContactsColumn/Channel.qml @@ -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() diff --git a/ui/app/AppLayouts/Chat/ContactsColumn/EmptyView.qml b/ui/app/AppLayouts/Chat/ContactsColumn/EmptyView.qml index f14696e2ba..2fa79f359b 100644 --- a/ui/app/AppLayouts/Chat/ContactsColumn/EmptyView.qml +++ b/ui/app/AppLayouts/Chat/ContactsColumn/EmptyView.qml @@ -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 diff --git a/ui/app/AppLayouts/Chat/components/Contact.qml b/ui/app/AppLayouts/Chat/components/Contact.qml index 6f18e3bb39..1e2e86cfb5 100644 --- a/ui/app/AppLayouts/Chat/components/Contact.qml +++ b/ui/app/AppLayouts/Chat/components/Contact.qml @@ -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 diff --git a/ui/app/AppLayouts/Chat/components/GroupChatPopup.qml b/ui/app/AppLayouts/Chat/components/GroupChatPopup.qml index 6b64fc1450..a9fa44cdb7 100644 --- a/ui/app/AppLayouts/Chat/components/GroupChatPopup.qml +++ b/ui/app/AppLayouts/Chat/components/GroupChatPopup.qml @@ -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() } diff --git a/ui/app/AppLayouts/Chat/components/GroupInfoPopup.qml b/ui/app/AppLayouts/Chat/components/GroupInfoPopup.qml index 79618903e1..e1469fcd28 100644 --- a/ui/app/AppLayouts/Chat/components/GroupInfoPopup.qml +++ b/ui/app/AppLayouts/Chat/components/GroupInfoPopup.qml @@ -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() } diff --git a/ui/app/AppLayouts/Chat/components/PrivateChatPopup.qml b/ui/app/AppLayouts/Chat/components/PrivateChatPopup.qml index cef72e853d..1b565e862d 100644 --- a/ui/app/AppLayouts/Chat/components/PrivateChatPopup.qml +++ b/ui/app/AppLayouts/Chat/components/PrivateChatPopup.qml @@ -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 diff --git a/ui/app/AppLayouts/Chat/components/ProfilePopup.qml b/ui/app/AppLayouts/Chat/components/ProfilePopup.qml index eb5071d523..bb520d6ba9 100644 --- a/ui/app/AppLayouts/Chat/components/ProfilePopup.qml +++ b/ui/app/AppLayouts/Chat/components/ProfilePopup.qml @@ -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)) { diff --git a/ui/app/AppLayouts/Chat/components/PublicChatPopup.qml b/ui/app/AppLayouts/Chat/components/PublicChatPopup.qml index 2cd7ec7f0f..2c2da86884 100644 --- a/ui/app/AppLayouts/Chat/components/PublicChatPopup.qml +++ b/ui/app/AppLayouts/Chat/components/PublicChatPopup.qml @@ -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" diff --git a/ui/app/AppLayouts/Chat/components/RenameGroupPopup.qml b/ui/app/AppLayouts/Chat/components/RenameGroupPopup.qml index 7e889ed184..58a66b9a34 100644 --- a/ui/app/AppLayouts/Chat/components/RenameGroupPopup.qml +++ b/ui/app/AppLayouts/Chat/components/RenameGroupPopup.qml @@ -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() } } diff --git a/ui/app/AppLayouts/Chat/components/StickersPopup.qml b/ui/app/AppLayouts/Chat/components/StickersPopup.qml index 0e85f2a628..689364427e 100644 --- a/ui/app/AppLayouts/Chat/components/StickersPopup.qml +++ b/ui/app/AppLayouts/Chat/components/StickersPopup.qml @@ -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 diff --git a/ui/app/AppLayouts/Node/NodeLayout.qml b/ui/app/AppLayouts/Node/NodeLayout.qml index 5215770071..faad73e407 100644 --- a/ui/app/AppLayouts/Node/NodeLayout.qml +++ b/ui/app/AppLayouts/Node/NodeLayout.qml @@ -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 diff --git a/ui/app/AppLayouts/Profile/LeftTab/Menu.qml b/ui/app/AppLayouts/Profile/LeftTab/Menu.qml index 050376ce3e..8acf7d03a9 100644 --- a/ui/app/AppLayouts/Profile/LeftTab/Menu.qml +++ b/ui/app/AppLayouts/Profile/LeftTab/Menu.qml @@ -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 diff --git a/ui/app/AppLayouts/Profile/Sections/AboutContainer.qml b/ui/app/AppLayouts/Profile/Sections/AboutContainer.qml index 52c95f979a..dd22f41825 100644 --- a/ui/app/AppLayouts/Profile/Sections/AboutContainer.qml +++ b/ui/app/AppLayouts/Profile/Sections/AboutContainer.qml @@ -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 diff --git a/ui/app/AppLayouts/Profile/Sections/AdvancedContainer.qml b/ui/app/AppLayouts/Profile/Sections/AdvancedContainer.qml index cb90dc0d3d..f85bf19f23 100644 --- a/ui/app/AppLayouts/Profile/Sections/AdvancedContainer.qml +++ b/ui/app/AppLayouts/Profile/Sections/AdvancedContainer.qml @@ -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") } } } diff --git a/ui/app/AppLayouts/Profile/Sections/BackupSeedModal.qml b/ui/app/AppLayouts/Profile/Sections/BackupSeedModal.qml index 1b4bde6314..5f23b2dbec 100644 --- a/ui/app/AppLayouts/Profile/Sections/BackupSeedModal.qml +++ b/ui/app/AppLayouts/Profile/Sections/BackupSeedModal.qml @@ -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 diff --git a/ui/app/AppLayouts/Profile/Sections/ContactsContainer.qml b/ui/app/AppLayouts/Profile/Sections/ContactsContainer.qml index 6fcea220f7..970f89ce61 100644 --- a/ui/app/AppLayouts/Profile/Sections/ContactsContainer.qml +++ b/ui/app/AppLayouts/Profile/Sections/ContactsContainer.qml @@ -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 diff --git a/ui/app/AppLayouts/Profile/Sections/DevicesContainer.qml b/ui/app/AppLayouts/Profile/Sections/DevicesContainer.qml index 11ac780a85..08ced695fa 100644 --- a/ui/app/AppLayouts/Profile/Sections/DevicesContainer.qml +++ b/ui/app/AppLayouts/Profile/Sections/DevicesContainer.qml @@ -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; diff --git a/ui/app/AppLayouts/Profile/Sections/EnsContainer.qml b/ui/app/AppLayouts/Profile/Sections/EnsContainer.qml index 4d4c8eb650..45ba608ea8 100644 --- a/ui/app/AppLayouts/Profile/Sections/EnsContainer.qml +++ b/ui/app/AppLayouts/Profile/Sections/EnsContainer.qml @@ -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 diff --git a/ui/app/AppLayouts/Profile/Sections/HelpContainer.qml b/ui/app/AppLayouts/Profile/Sections/HelpContainer.qml index 1600e15277..473774394e 100644 --- a/ui/app/AppLayouts/Profile/Sections/HelpContainer.qml +++ b/ui/app/AppLayouts/Profile/Sections/HelpContainer.qml @@ -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 diff --git a/ui/app/AppLayouts/Profile/Sections/LanguageContainer.qml b/ui/app/AppLayouts/Profile/Sections/LanguageContainer.qml index a281854cf3..1d55d8cef7 100644 --- a/ui/app/AppLayouts/Profile/Sections/LanguageContainer.qml +++ b/ui/app/AppLayouts/Profile/Sections/LanguageContainer.qml @@ -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 diff --git a/ui/app/AppLayouts/Profile/Sections/NotificationsContainer.qml b/ui/app/AppLayouts/Profile/Sections/NotificationsContainer.qml index 1a8afc2412..1877adb0d6 100644 --- a/ui/app/AppLayouts/Profile/Sections/NotificationsContainer.qml +++ b/ui/app/AppLayouts/Profile/Sections/NotificationsContainer.qml @@ -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 diff --git a/ui/app/AppLayouts/Profile/Sections/PrivacyContainer.qml b/ui/app/AppLayouts/Profile/Sections/PrivacyContainer.qml index 734833973c..b64b280c84 100644 --- a/ui/app/AppLayouts/Profile/Sections/PrivacyContainer.qml +++ b/ui/app/AppLayouts/Profile/Sections/PrivacyContainer.qml @@ -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 { diff --git a/ui/app/AppLayouts/Profile/Sections/SignoutContainer.qml b/ui/app/AppLayouts/Profile/Sections/SignoutContainer.qml index 8ea0d77fec..cd017461fc 100644 --- a/ui/app/AppLayouts/Profile/Sections/SignoutContainer.qml +++ b/ui/app/AppLayouts/Profile/Sections/SignoutContainer.qml @@ -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(); diff --git a/ui/app/AppLayouts/Profile/Sections/SyncContainer.qml b/ui/app/AppLayouts/Profile/Sections/SyncContainer.qml index 1fbf1ef893..c4508cceb0 100644 --- a/ui/app/AppLayouts/Profile/Sections/SyncContainer.qml +++ b/ui/app/AppLayouts/Profile/Sections/SyncContainer.qml @@ -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 diff --git a/ui/app/AppLayouts/Wallet/AccountSettingsModal.qml b/ui/app/AppLayouts/Wallet/AccountSettingsModal.qml index 0454592eb6..b62583e2f5 100644 --- a/ui/app/AppLayouts/Wallet/AccountSettingsModal.qml +++ b/ui/app/AppLayouts/Wallet/AccountSettingsModal.qml @@ -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 === "" diff --git a/ui/app/AppLayouts/Wallet/AddCustomTokenModal.qml b/ui/app/AppLayouts/Wallet/AddCustomTokenModal.qml index 0d94156835..4294db33f0 100644 --- a/ui/app/AppLayouts/Wallet/AddCustomTokenModal.qml +++ b/ui/app/AppLayouts/Wallet/AddCustomTokenModal.qml @@ -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 === "" diff --git a/ui/app/AppLayouts/Wallet/CollectiblesTab.qml b/ui/app/AppLayouts/Wallet/CollectiblesTab.qml index 0246627ed4..833d850ac4 100644 --- a/ui/app/AppLayouts/Wallet/CollectiblesTab.qml +++ b/ui/app/AppLayouts/Wallet/CollectiblesTab.qml @@ -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 { diff --git a/ui/app/AppLayouts/Wallet/LeftTab.qml b/ui/app/AppLayouts/Wallet/LeftTab.qml index 6f4682f345..9dea07b5a7 100644 --- a/ui/app/AppLayouts/Wallet/LeftTab.qml +++ b/ui/app/AppLayouts/Wallet/LeftTab.qml @@ -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 diff --git a/ui/app/AppLayouts/Wallet/SendModal.qml b/ui/app/AppLayouts/Wallet/SendModal.qml index cf2c22ef04..fe30f6b0b1 100644 --- a/ui/app/AppLayouts/Wallet/SendModal.qml +++ b/ui/app/AppLayouts/Wallet/SendModal.qml @@ -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() diff --git a/ui/app/AppLayouts/Wallet/TokenSettingsModal.qml b/ui/app/AppLayouts/Wallet/TokenSettingsModal.qml index 59760a1d94..a34c4c8213 100644 --- a/ui/app/AppLayouts/Wallet/TokenSettingsModal.qml +++ b/ui/app/AppLayouts/Wallet/TokenSettingsModal.qml @@ -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() diff --git a/ui/app/AppLayouts/Wallet/WalletHeader.qml b/ui/app/AppLayouts/Wallet/WalletHeader.qml index b9fd5ec3dd..68e8d9d185 100644 --- a/ui/app/AppLayouts/Wallet/WalletHeader.qml +++ b/ui/app/AppLayouts/Wallet/WalletHeader.qml @@ -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() diff --git a/ui/app/AppLayouts/Wallet/components/AddAccount.qml b/ui/app/AppLayouts/Wallet/components/AddAccount.qml index 2f19c85c80..91be0f2191 100644 --- a/ui/app/AppLayouts/Wallet/components/AddAccount.qml +++ b/ui/app/AppLayouts/Wallet/components/AddAccount.qml @@ -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() diff --git a/ui/app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml b/ui/app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml index 1d3bbf146f..7d6545c1fe 100644 --- a/ui/app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml +++ b/ui/app/AppLayouts/Wallet/components/AddAccountWithPrivateKey.qml @@ -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 === "" diff --git a/ui/app/AppLayouts/Wallet/components/AddAccountWithSeed.qml b/ui/app/AppLayouts/Wallet/components/AddAccountWithSeed.qml index ebce30b534..6c2dba06b4 100644 --- a/ui/app/AppLayouts/Wallet/components/AddAccountWithSeed.qml +++ b/ui/app/AppLayouts/Wallet/components/AddAccountWithSeed.qml @@ -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 === "" diff --git a/ui/app/AppLayouts/Wallet/components/AddWatchOnlyAccount.qml b/ui/app/AppLayouts/Wallet/components/AddWatchOnlyAccount.qml index b66864be6e..4fc488b699 100644 --- a/ui/app/AppLayouts/Wallet/components/AddWatchOnlyAccount.qml +++ b/ui/app/AppLayouts/Wallet/components/AddWatchOnlyAccount.qml @@ -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 === "" diff --git a/ui/app/AppLayouts/Wallet/components/GenerateAccountModal.qml b/ui/app/AppLayouts/Wallet/components/GenerateAccountModal.qml index d40480d246..de9e2ec469 100644 --- a/ui/app/AppLayouts/Wallet/components/GenerateAccountModal.qml +++ b/ui/app/AppLayouts/Wallet/components/GenerateAccountModal.qml @@ -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 === "" diff --git a/ui/app/AppLayouts/Wallet/components/SendModalContent.qml b/ui/app/AppLayouts/Wallet/components/SendModalContent.qml index 8c936e5db5..af34558f1f 100644 --- a/ui/app/AppLayouts/Wallet/components/SendModalContent.qml +++ b/ui/app/AppLayouts/Wallet/components/SendModalContent.qml @@ -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 diff --git a/ui/app/AppLayouts/Wallet/components/TransactionModal.qml b/ui/app/AppLayouts/Wallet/components/TransactionModal.qml index 8134d6ac09..fd58559c24 100644 --- a/ui/app/AppLayouts/Wallet/components/TransactionModal.qml +++ b/ui/app/AppLayouts/Wallet/components/TransactionModal.qml @@ -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 diff --git a/ui/app/AppLayouts/Wallet/data/Currencies.qml b/ui/app/AppLayouts/Wallet/data/Currencies.qml index 0f15b929f6..07d3449b36 100644 --- a/ui/app/AppLayouts/Wallet/data/Currencies.qml +++ b/ui/app/AppLayouts/Wallet/data/Currencies.qml @@ -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" } diff --git a/ui/main.qml b/ui/main.qml index 2942b968fa..77af783791 100644 --- a/ui/main.qml +++ b/ui/main.qml @@ -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() } } diff --git a/ui/onboarding/CreatePasswordModal.qml b/ui/onboarding/CreatePasswordModal.qml index 7e6aeae123..c8a975813f 100644 --- a/ui/onboarding/CreatePasswordModal.qml +++ b/ui/onboarding/CreatePasswordModal.qml @@ -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: { diff --git a/ui/onboarding/EnterSeedPhraseModal.qml b/ui/onboarding/EnterSeedPhraseModal.qml index b748e0e79b..b4abbd7ca4 100644 --- a/ui/onboarding/EnterSeedPhraseModal.qml +++ b/ui/onboarding/EnterSeedPhraseModal.qml @@ -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 diff --git a/ui/onboarding/GenKeyModal.qml b/ui/onboarding/GenKeyModal.qml index 397de78f1a..a2829c7af4 100644 --- a/ui/onboarding/GenKeyModal.qml +++ b/ui/onboarding/GenKeyModal.qml @@ -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 diff --git a/ui/onboarding/Intro.qml b/ui/onboarding/Intro.qml index ed555e4a5f..988ae56c21 100644 --- a/ui/onboarding/Intro.qml +++ b/ui/onboarding/Intro.qml @@ -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 diff --git a/ui/onboarding/InvalidSeedPhraseModal.qml b/ui/onboarding/InvalidSeedPhraseModal.qml index d79ba1ad57..7aa6f0e1ee 100644 --- a/ui/onboarding/InvalidSeedPhraseModal.qml +++ b/ui/onboarding/InvalidSeedPhraseModal.qml @@ -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() diff --git a/ui/onboarding/KeysMain.qml b/ui/onboarding/KeysMain.qml index 9d6157511d..d7d93dacfc 100644 --- a/ui/onboarding/KeysMain.qml +++ b/ui/onboarding/KeysMain.qml @@ -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 diff --git a/ui/onboarding/Login.qml b/ui/onboarding/Login.qml index d5c2aa052e..631a328bb4 100644 --- a/ui/onboarding/Login.qml +++ b/ui/onboarding/Login.qml @@ -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 } } diff --git a/ui/onboarding/Login/ConfirmAddExistingKeyModal.qml b/ui/onboarding/Login/ConfirmAddExistingKeyModal.qml index b0b33c6544..1cccf685cd 100644 --- a/ui/onboarding/Login/ConfirmAddExistingKeyModal.qml +++ b/ui/onboarding/Login/ConfirmAddExistingKeyModal.qml @@ -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 { diff --git a/ui/onboarding/Login/SelectAnotherAccountModal.qml b/ui/onboarding/Login/SelectAnotherAccountModal.qml index 03730fb0aa..7230e8fef4 100644 --- a/ui/onboarding/Login/SelectAnotherAccountModal.qml +++ b/ui/onboarding/Login/SelectAnotherAccountModal.qml @@ -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 diff --git a/ui/shared/SearchBox.qml b/ui/shared/SearchBox.qml index 4fbdeca61e..40ce34d09e 100644 --- a/ui/shared/SearchBox.qml +++ b/ui/shared/SearchBox.qml @@ -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