chore: run qstrConverter script

This commit is contained in:
Jonathan Rainville 2020-08-26 11:52:26 -04:00 committed by Iuri Matias
parent d19f15bb84
commit 0c686c3fcf
54 changed files with 316 additions and 158 deletions

View File

@ -82,8 +82,10 @@ StackLayout {
color: Style.current.white
id: connectedStatusLbl
text: isConnected ?
qsTr("Connected") :
qsTr("Disconnected")
//% "Connected"
qsTrId("connected") :
//% "Disconnected"
qsTrId("disconnected")
}
}
@ -146,7 +148,8 @@ StackLayout {
id: removeContactConfirmationDialog
// % "Remove contact"
title: qsTrId("remove-contact")
confirmationText: qsTr("Are you sure you want to remove this contact?")
//% "Are you sure you want to remove this contact?"
confirmationText: qsTrId("are-you-sure-you-want-to-remove-this-contact-")
onConfirmButtonClicked: {
if (profileModel.isAdded(chatColumnLayout.contactToRemove)) {
profileModel.removeContact(chatColumnLayout.contactToRemove)

View File

@ -38,14 +38,16 @@ Popup {
ChatCommandButton {
iconColor: Style.current.purple
iconSource: "../../../../img/send.svg"
text: qsTr("Send transaction")
//% "Send transaction"
text: qsTrId("send-transaction")
}
ChatCommandButton {
iconColor: Style.current.orange
iconSource: "../../../../img/send.svg"
rotatedImage: true
text: qsTr("Request transaction")
//% "Request transaction"
text: qsTrId("request-transaction")
}
}
}

View File

@ -57,10 +57,12 @@ Rectangle {
FileDialog {
id: imageDialog
title: qsTr("Please choose an image")
//% "Please choose an image"
title: qsTrId("please-choose-an-image")
folder: shortcuts.pictures
nameFilters: [
qsTr("Image files (*.jpg *.jpeg *.png)")
//% "Image files (*.jpg *.jpeg *.png)"
qsTrId("image-files----jpg---jpeg---png-")
]
onAccepted: {
chatColumn.showImageArea(imageDialog.fileUrls);

View File

@ -48,7 +48,8 @@ ScrollView {
StyledText {
id: newMessagesText
text: qsTr("New message(s) received")
//% "New message(s) received"
text: qsTrId("new-message-s--received")
horizontalAlignment: Text.AlignHCenter
wrapMode: Text.WordWrap
anchors.left: parent.left
@ -61,7 +62,8 @@ ScrollView {
}
StyledText {
id: clickHereText
text: qsTr("Click here to scroll back down")
//% "Click here to scroll back down"
text: qsTrId("click-here-to-scroll-back-down")
horizontalAlignment: Text.AlignHCenter
wrapMode: Text.WordWrap
anchors.left: parent.left

View File

@ -21,7 +21,9 @@ Item {
radius: Style.current.radius
StyledText {
text: loadingImage.hasError ? qsTr("Error loading the image") : qsTr("Loading image...")
//% "Error loading the image"
//% "Loading image..."
text: loadingImage.hasError ? qsTrId("error-loading-the-image") : qsTrId("loading-image---")
color: loadingImage.hasError ? Style.current.red : Style.current.textColor
font.pixelSize: 15
anchors.verticalCenter: parent.verticalCenter

View File

@ -6,7 +6,8 @@ import "../../../../../imports"
StyledText {
id: retryLbl
color: Style.current.red
text: qsTr("Resend")
//% "Resend"
text: qsTrId("resend-message")
font.pixelSize: 12
visible: isCurrentUser && (timeout || isExpired)
MouseArea {

View File

@ -153,7 +153,8 @@ Rectangle {
deleteChatConfirmationDialog.title = qsTrId("delete-chat")
//% "Delete Chat"
deleteChatConfirmationDialog.confirmButtonLabel = qsTrId("delete-chat")
deleteChatConfirmationDialog.confirmationText = qsTr("Are you sure you want to delete this chat?")
//% "Are you sure you want to delete this chat?"
deleteChatConfirmationDialog.confirmationText = qsTrId("delete-chat-confirmation")
deleteChatConfirmationDialog.open()
}
}
@ -191,7 +192,8 @@ Rectangle {
deleteChatConfirmationDialog.title = qsTrId("leave-group")
//% "Leave group"
deleteChatConfirmationDialog.confirmButtonLabel = qsTrId("leave-group")
deleteChatConfirmationDialog.confirmationText = qsTr("Are you sure you want to leave this chat?")
//% "Are you sure you want to leave this chat?"
deleteChatConfirmationDialog.confirmationText = qsTrId("are-you-sure-you-want-to-leave-this-chat-")
deleteChatConfirmationDialog.open()
}
}

View File

@ -90,8 +90,10 @@ Rectangle {
//% "No messages"
text: {
switch(contentType){
case Constants.imageType: return qsTr("Image");
case Constants.stickerType: return qsTr("Sticker");
//% "Image"
case Constants.imageType: return qsTrId("image");
//% "Sticker"
case Constants.stickerType: return qsTrId("sticker");
default: return lastMessage ? Emoji.parse(lastMessage, "26x26").replace(/\n|\r/g, ' ') : qsTrId("no-messages")
}
}

View File

@ -77,7 +77,8 @@ ScrollView {
}
Action {
text: qsTr("View Group")
//% "View Group"
text: qsTrId("view-group")
icon.source: "../../../img/group.svg"
icon.width: 16
icon.height: 16
@ -88,8 +89,10 @@ ScrollView {
Action {
text: channelContextMenu.channelMuted ?
qsTr("Unmute chat") :
qsTr("Mute chat")
//% "Unmute chat"
qsTrId("unmute-chat") :
//% "Mute chat"
qsTrId("mute-chat")
icon.source: "../../../img/bell.svg"
icon.width: 16
icon.height: 16
@ -108,35 +111,40 @@ ScrollView {
/* // TODO implement mute chat in Model and call it here */
/* Action { */
/* text: qsTr("15 minutes"); */
//% "15 minutes"
/* text: qsTrId("15-minutes"); */
/* icon.width: 0; */
/* onTriggered: { */
/* chatsModel.muteChannel(channelContextMenu.channelIndex, Constants.muteChat15Minutes) */
/* } */
/* } */
/* Action { */
/* text: qsTr("1 hour"); */
//% "1 hour"
/* text: qsTrId("1-hour"); */
/* icon.width: 0; */
/* onTriggered: { */
/* chatsModel.muteChannel(channelContextMenu.channelIndex, Constants.muteChatOneHour) */
/* } */
/* } */
/* Action { */
/* text: qsTr("8 hours"); */
//% "8 hours"
/* text: qsTrId("8-hours"); */
/* icon.width: 0; */
/* onTriggered: { */
/* chatsModel.muteChannel(channelContextMenu.channelIndex, Constants.muteChatEightHours) */
/* } */
/* } */
/* Action { */
/* text: qsTr("24 hours"); */
//% "24 hours"
/* text: qsTrId("24-hours"); */
/* icon.width: 0; */
/* onTriggered: { */
/* chatsModel.muteChannel(channelContextMenu.channelIndex, Constants.muteChat24Hours) */
/* } */
/* } */
/* Action { */
/* text: qsTr("Until I turn it back on"); */
//% "Until I turn it back on"
/* text: qsTrId("until-i-turn-it-back-on"); */
/* icon.width: 0; */
/* onTriggered: { */
/* console.log(appSettings.mutedChannels) */
@ -149,7 +157,8 @@ ScrollView {
/* } */
/* } */
Action {
text: qsTr("Mark as Read")
//% "Mark as Read"
text: qsTrId("mark-as-read")
icon.source: "../../../img/check-circle.svg"
icon.width: 16
icon.height: 16
@ -159,16 +168,22 @@ ScrollView {
}
PopupMenu {
hasArrow: false
title: qsTr("Fetch Messages")
//% "Fetch Messages"
title: qsTrId("fetch-messages")
// TODO call fetch for the wanted duration
Action { text: qsTr("Last 24 hours"); icon.width: 0; }
Action { text: qsTr("Last 2 days"); icon.width: 0; }
Action { text: qsTr("Last 3 days"); icon.width: 0; }
Action { text: qsTr("Last 7 days"); icon.width: 0; }
//% "Last 24 hours"
Action { text: qsTrId("last-24-hours"); icon.width: 0; }
//% "Last 2 days"
Action { text: qsTrId("last-2-days"); icon.width: 0; }
//% "Last 3 days"
Action { text: qsTrId("last-3-days"); icon.width: 0; }
//% "Last 7 days"
Action { text: qsTrId("last-7-days"); icon.width: 0; }
}
Action {
text: qsTr("Clear History")
//% "Clear History"
text: qsTrId("clear-history")
icon.source: "../../../img/close.svg"
icon.width: 16
icon.height: 16
@ -178,7 +193,8 @@ ScrollView {
Separator {}
Action {
text: qsTr("Leave Group")
//% "Leave Group"
text: qsTrId("leave-group")
icon.source: "../../../img/leave_chat.svg"
icon.width: 16
icon.height: 16

View File

@ -33,7 +33,8 @@ Item {
StyledText {
id: noRecentText
visible: !!(allEmojis && allEmojis.length && allEmojis[0].empty)
text: qsTr("No recent emojis")
//% "No recent emojis"
text: qsTrId("no-recent-emojis")
color: Style.current.darkGrey
font.pixelSize: 10
anchors.top: categoryText.bottom

View File

@ -107,7 +107,8 @@ ModalPopup {
anchors.horizontalCenter: parent.horizontalCenter
StyledText {
id: noContacts
text: qsTr("You dont have any contacts yet. Invite your friends to start chatting.")
//% "You dont have any contacts yet. Invite your friends to start chatting."
text: qsTrId("you-don-t-have-any-contacts-yet--invite-your-friends-to-start-chatting-")
color: Style.current.darkGrey
anchors.top: parent.top
anchors.topMargin: Style.current.padding

View File

@ -166,7 +166,8 @@ ModalPopup {
anchors.horizontalCenter: parent.horizontalCenter
StyledText {
id: noContacts
text: qsTr("All your contacts are already in the group")
//% "All your contacts are already in the group"
text: qsTrId("group-chat-all-contacts-invited")
color: Style.current.textColor
anchors.top: parent.top
anchors.topMargin: Style.current.padding

View File

@ -101,7 +101,8 @@ PopupMenu {
}
Action {
text: messageContextMenu.isProfile ?
qsTr("Send message") :
//% "Send message"
qsTrId("send-message") :
//% "Reply to"
qsTrId("reply-to")
onTriggered: messageContextMenu.isProfile ? chatsModel.joinChat(profilePopup.fromAuthor, Constants.chatTypeOneToOne) : showReplyArea()

View File

@ -136,7 +136,8 @@ ModalPopup {
anchors.centerIn: parent
StyledText {
id: noContacts
text: qsTr("You dont have any contacts yet. Invite your friends to start chatting.")
//% "You dont have any contacts yet. Invite your friends to start chatting."
text: qsTrId("you-don-t-have-any-contacts-yet--invite-your-friends-to-start-chatting-")
color: Style.current.darkGrey
anchors.top: parent.top
anchors.topMargin: Style.current.padding

View File

@ -10,7 +10,8 @@ Item {
StyledText {
id: title
text: qsTr("Profile")
//% "Profile"
text: qsTrId("profile")
anchors.top: parent.top
anchors.topMargin: Style.current.padding
anchors.horizontalCenter: parent.horizontalCenter

View File

@ -109,7 +109,8 @@ Item {
}
StyledText {
text: qsTr("UI Components")
//% "UI Components"
text: qsTrId("ui-components")
}
Switch {
checked: uiComponentBtn.enabled
@ -118,7 +119,8 @@ Item {
}
}
StyledText {
text: qsTr("Developer setting")
//% "Developer setting"
text: qsTrId("developer-setting")
}
}

View File

@ -11,7 +11,8 @@ Item {
StyledText {
id: title
text: qsTr("Appearance setting")
//% "Appearance setting"
text: qsTrId("appearance-setting")
anchors.left: parent.left
anchors.leftMargin: 24
anchors.top: parent.top

View File

@ -70,7 +70,8 @@ ListView {
ConfirmationDialog {
id: removeContactConfirmationDialog
title: qsTrId("remove-contact")
confirmationText: qsTr("Are you sure you want to remove this contact?")
//% "Are you sure you want to remove this contact?"
confirmationText: qsTrId("are-you-sure-you-want-to-remove-this-contact-")
onConfirmButtonClicked: {
if (profileModel.isAdded(contactList.contactToRemove)) {
profileModel.removeContact(contactList.contactToRemove)

View File

@ -35,7 +35,8 @@ Item {
StyledText {
id: usernameText
text: qsTr("Add new contact")
//% "Add new contact"
text: qsTrId("add-new-contact")
color: Style.current.blue
anchors.left: addButton.right
anchors.leftMargin: Style.current.padding
@ -71,7 +72,8 @@ Item {
StyledText {
id: blockButtonLabel
text: qsTr("Blocked contacts")
//% "Blocked contacts"
text: qsTrId("blocked-contacts")
color: Style.current.blue
anchors.left: blockButton.right
anchors.leftMargin: Style.current.padding
@ -90,7 +92,8 @@ Item {
ModalPopup {
id: blockedContactsModal
title: qsTr("Blocked contacts")
//% "Blocked contacts"
title: qsTrId("blocked-contacts")
ContactList {
anchors.top: parent.top
@ -102,7 +105,8 @@ Item {
ModalPopup {
id: addContactModal
title: qsTr("Add contact")
//% "Add contact"
title: qsTrId("add-contact")
Input {
id: addContactSearchInput
@ -147,7 +151,8 @@ Item {
anchors.right: parent.right
anchors.leftMargin: Style.current.padding
//% "Send Message"
label: qsTr("Add contact")
//% "Add contact"
label: qsTrId("add-contact")
disabled: !contactToAddInfo.visible
anchors.bottom: parent.bottom
onClicked: {
@ -174,7 +179,8 @@ Item {
StyledText {
id: noFriendsText
text: qsTr("You dont have any contacts yet")
//% "You dont have any contacts yet"
text: qsTrId("you-don-t-have-any-contacts-yet")
anchors.verticalCenterOffset: -Style.current.bigPadding
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
@ -186,7 +192,8 @@ Item {
anchors.horizontalCenter: noFriendsText.horizontalCenter
anchors.top: noFriendsText.bottom
anchors.topMargin: Style.current.bigPadding
label: qsTr("Invite firends")
//% "Invite firends"
label: qsTrId("invite-firends")
onClicked: function () {
inviteFriendsPopup.open()
}

View File

@ -44,7 +44,8 @@ Item {
StyledText {
id: title
text: qsTr("Username added")
//% "Username added"
text: qsTrId("ens-saved-title")
anchors.top: circle.bottom
anchors.topMargin: 24
font.weight: Font.Bold
@ -57,7 +58,8 @@ Item {
StyledText {
id: subtitle
text: qsTr("%1 is now connected with your chat key and can be used in Status.").arg(ensUsername)
//% "%1 is now connected with your chat key and can be used in Status."
text: qsTrId("-1-is-now-connected-with-your-chat-key-and-can-be-used-in-status-").arg(ensUsername)
anchors.top: title.bottom
anchors.topMargin: 24
font.pixelSize: 14
@ -72,7 +74,8 @@ Item {
anchors.top: subtitle.bottom
anchors.topMargin: Style.current.padding
anchors.horizontalCenter: parent.horizontalCenter
label: qsTr("Ok, got it")
//% "Ok, got it"
label: qsTrId("ens-got-it")
onClicked: okBtnClicked()
}
}

View File

@ -58,7 +58,8 @@ Item {
TextWithLabel {
id: walletAddressLbl
label: qsTr("Wallet address")
//% "Wallet address"
label: qsTrId("wallet-address")
visible: false
text: ""
textToCopy: ""
@ -71,7 +72,8 @@ Item {
TextWithLabel {
id: keyLbl
visible: false
label: qsTr("Key")
//% "Key"
label: qsTrId("key")
text: ""
textToCopy: ""
anchors.left: parent.left
@ -84,7 +86,8 @@ Item {
anchors.bottom: parent.bottom
anchors.bottomMargin: Style.current.padding
anchors.horizontalCenter: parent.horizontalCenter
label: qsTr("Back")
//% "Back"
label: qsTrId("back")
onClicked: backBtnClicked()
}
}

View File

@ -8,7 +8,8 @@ import "../../../../../shared"
ModalPopup {
id: popup
title: qsTr("Primary username")
//% "Primary username"
title: qsTrId("ens-primary-username")
property string newUsername: ""
@ -20,7 +21,8 @@ ModalPopup {
StyledText {
id: lbl1
text: qsTr("Your messages are displayed to others with this username:")
//% "Your messages are displayed to others with this username:"
text: qsTrId("your-messages-are-displayed-to-others-with-this-username-")
font.pixelSize: 15
}

View File

@ -14,7 +14,8 @@ Item {
property bool isEmoji: false
property bool isCurrentUser: false
property int contentType: 1
property string message: qsTr("Hey")
//% "Hey"
property string message: qsTrId("ens-test-message")
property string authorCurrentMsg: "0"
property string authorPrevMsg: "1"
property var clickMessage: function(){}
@ -129,7 +130,8 @@ Item {
StyledText {
id: usernameText
text: qsTr("Add username")
//% "Add username"
text: qsTrId("ens-add-username")
color: Style.current.blue
anchors.left: addButton.right
anchors.leftMargin: Style.current.padding
@ -147,7 +149,8 @@ Item {
StyledText {
id: usernamesLabel
text: qsTr("Your usernames")
//% "Your usernames"
text: qsTrId("ens-your-usernames")
anchors.left: parent.left
anchors.top: addUsername.bottom
anchors.topMargin: 24
@ -190,7 +193,8 @@ Item {
StyledText {
id: chatSettingsLabel
visible: profileModel.ens.rowCount() > 1
text: qsTr("Chat Settings")
//% "Chat Settings"
text: qsTrId("chat-settings")
anchors.left: parent.left
anchors.top: ensList.bottom
anchors.topMargin: 24
@ -209,7 +213,8 @@ Item {
StyledText {
id: usernameLabel
visible: chatSettingsLabel.visible
text: qsTr("Primary Username")
//% "Primary Username"
text: qsTrId("primary-username")
font.pixelSize: 14
font.weight: Font.Bold
}

View File

@ -24,11 +24,14 @@ Item {
valid = false;
ensStatus = "";
if (ensUsername.length < 4) {
validationMessage = qsTr("At least 4 characters. Latin letters, numbers, and lowercase only.");
//% "At least 4 characters. Latin letters, numbers, and lowercase only."
validationMessage = qsTrId("ens-username-hints");
} else if(isStatus && !ensUsername.match(/^[a-z0-9]+$/)){
validationMessage = qsTr("Letters and numbers only.");
//% "Letters and numbers only."
validationMessage = qsTrId("ens-username-invalid");
} else if(!isStatus && !ensUsername.endsWith(".eth")){
validationMessage = qsTr("Type the entire username including the custom domain like username.domain.eth")
//% "Type the entire username including the custom domain like username.domain.eth"
validationMessage = qsTrId("ens-custom-username-hints")
}
return validationMessage === "";
}
@ -43,7 +46,8 @@ Item {
StyledText {
id: sectionTitle
text: qsTr("Your username")
//% "Your username"
text: qsTrId("ens-your-username")
anchors.left: parent.left
anchors.leftMargin: 24
anchors.top: parent.top
@ -112,26 +116,32 @@ Item {
switch(ensResult){
case "available":
valid = true;
validationMessage = qsTr("✓ Username available!");
//% " Username available!"
validationMessage = qsTrId("ens-username-available");
break;
case "owned":
console.log("TODO: - Continuing will connect this username with your chat key.");
case "taken":
validationMessage = !isStatus ?
qsTr("Username doesnt belong to you :(")
//% "Username doesnt belong to you :("
qsTrId("ens-custom-username-taken")
:
qsTr("Username already taken :(");
//% "Username already taken :("
qsTrId("ens-username-taken");
break;
case "already-connected":
validationMessage = qsTr("Username is already connected with your chat key and can be used inside Status.");
//% "Username is already connected with your chat key and can be used inside Status."
validationMessage = qsTrId("ens-username-already-added");
break;
case "connected":
valid = true;
validationMessage = qsTr("This user name is owned by you and connected with your chat key. Continue to set `Show my ENS username in chats`.");
//% "This user name is owned by you and connected with your chat key. Continue to set `Show my ENS username in chats`."
validationMessage = qsTrId("this-user-name-is-owned-by-you-and-connected-with-your-chat-key--continue-to-set--show-my-ens-username-in-chats--");
break;
case "connected-different-key":
valid = true;
validationMessage = qsTr("Continuing will require a transaction to connect the username with your current chat key.");
//% "Continuing will require a transaction to connect the username with your current chat key."
validationMessage = qsTrId("ens-username-connected-with-different-key");
break;
}
}
@ -187,7 +197,8 @@ Item {
StyledText {
text: !isStatus ?
qsTr("Custom domain")
//% "Custom domain"
qsTrId("ens-custom-domain")
:
".stateofus.eth"
font.weight: Font.Bold
@ -197,9 +208,11 @@ Item {
StyledText {
text: !isStatus ?
qsTr("I want a stateofus.eth domain")
//% "I want a stateofus.eth domain"
qsTrId("ens-want-domain")
:
qsTr("I own a name on another domain")
//% "I own a name on another domain"
qsTrId("ens-want-custom-domain")
font.pixelSize: 12
color: Style.current.blue
anchors.right: parent.right

View File

@ -38,7 +38,8 @@ Item {
StyledText {
id: title
text: qsTr("TODO: show T&C and confirmation screen for acquiring a ens username")
//% "TODO: show T&C and confirmation screen for acquiring a ens username"
text: qsTrId("todo--show-t-c-and-confirmation-screen-for-acquiring-a-ens-username")
anchors.top: parent.top
anchors.topMargin: 24
font.weight: Font.Bold
@ -56,7 +57,8 @@ Item {
anchors.bottom: parent.bottom
anchors.bottomMargin: Style.current.padding
anchors.horizontalCenter: parent.horizontalCenter
label: qsTr("Ok")
//% "Ok"
label: qsTrId("ok")
onClicked: onClick()
}
}

View File

@ -46,7 +46,8 @@ Item {
StyledText {
id: title
text: qsTr("Get a universal username")
//% "Get a universal username"
text: qsTrId("ens-get-name")
anchors.top: image.bottom
anchors.topMargin: 24
font.weight: Font.Bold
@ -59,7 +60,8 @@ Item {
StyledText {
id: subtitle
text: qsTr("ENS names transform those crazy-long addresses into unique usernames.")
//% "ENS names transform those crazy-long addresses into unique usernames."
text: qsTrId("ens-welcome-hints")
anchors.top: title.bottom
anchors.topMargin: 24
font.pixelSize: 14
@ -82,7 +84,8 @@ Item {
StyledText {
id: element1Title
text: qsTr("Customize your chat name")
//% "Customize your chat name"
text: qsTrId("ens-welcome-point-customize-title")
anchors.left: element1Number.right
anchors.leftMargin: 24
anchors.top: subtitle.bottom
@ -95,7 +98,8 @@ Item {
StyledText {
id: element1Subtitle
text: qsTr("An ENS name can replace your random 3-word name in chat. Be @yourname instead of %1.").arg(profileModel.profile.username)
//% "An ENS name can replace your random 3-word name in chat. Be @yourname instead of %1."
text: qsTrId("an-ens-name-can-replace-your-random-3-word-name-in-chat--be--yourname-instead-of--1-").arg(profileModel.profile.username)
anchors.left: element1Number.right
anchors.leftMargin: 24
anchors.top: element1Title.bottom
@ -118,7 +122,8 @@ Item {
StyledText {
id: element2Title
text: qsTr("Simplify your ETH address")
//% "Simplify your ETH address"
text: qsTrId("ens-welcome-point-simplify-title")
anchors.left: element2Number.right
anchors.leftMargin: 24
anchors.top: element1Subtitle.bottom
@ -131,7 +136,8 @@ Item {
StyledText {
id: element2Subtitle
text: qsTr("You can receive funds to your easy-to-share ENS name rather than your hexadecimal hash (0x...).")
//% "You can receive funds to your easy-to-share ENS name rather than your hexadecimal hash (0x...)."
text: qsTrId("ens-welcome-point-simplify")
anchors.left: element2Number.right
anchors.leftMargin: 24
anchors.top: element2Title.bottom
@ -154,7 +160,8 @@ Item {
StyledText {
id: element3Title
text: qsTr("Receive transactions in chat")
//% "Receive transactions in chat"
text: qsTrId("ens-welcome-point-receive-title")
anchors.left: element3Number.right
anchors.leftMargin: 24
anchors.top: element2Subtitle.bottom
@ -167,7 +174,8 @@ Item {
StyledText {
id: element3Subtitle
text: qsTr("Others can send you funds via chat in one simple step.")
//% "Others can send you funds via chat in one simple step."
text: qsTrId("ens-welcome-point-receive")
anchors.left: element3Number.right
anchors.leftMargin: 24
anchors.top: element3Title.bottom
@ -190,7 +198,8 @@ Item {
StyledText {
id: element4Title
text: qsTr("10 SNT to register")
//% "10 SNT to register"
text: qsTrId("ens-welcome-point-register-title")
anchors.left: element4Number.right
anchors.leftMargin: 24
anchors.top: element3Subtitle.bottom
@ -203,7 +212,8 @@ Item {
StyledText {
id: element4Subtitle
text: qsTr("Register once to keep the name forever. After 1 year you can release the name and get your SNT back.")
//% "Register once to keep the name forever. After 1 year you can release the name and get your SNT back."
text: qsTrId("ens-welcome-point-register")
anchors.left: element4Number.right
anchors.leftMargin: 24
anchors.top: element4Title.bottom
@ -227,7 +237,8 @@ Item {
StyledText {
id: element5Title
text: qsTr("Already own a username?")
//% "Already own a username?"
text: qsTrId("ens-welcome-point-verify-title")
anchors.left: element5Number.right
anchors.leftMargin: 24
anchors.top: element4Subtitle.bottom
@ -240,7 +251,8 @@ Item {
StyledText {
id: element5Subtitle
text: qsTr("You can verify and add any usernames you own in the next steps.")
//% "You can verify and add any usernames you own in the next steps."
text: qsTrId("ens-welcome-point-verify")
anchors.left: element5Number.right
anchors.leftMargin: 24
anchors.top: element5Title.bottom
@ -252,7 +264,8 @@ Item {
StyledText {
id: poweredBy
text: qsTr("Powered by Ethereum Name Services")
//% "Powered by Ethereum Name Services"
text: qsTrId("ens-powered-by")
anchors.left: element5Number.right
anchors.leftMargin: 24
anchors.top: element5Subtitle.bottom
@ -269,7 +282,8 @@ Item {
anchors.bottom: parent.bottom
anchors.bottomMargin: Style.current.padding
anchors.horizontalCenter: parent.horizontalCenter
label: qsTr("Start")
//% "Start"
label: qsTrId("start")
onClicked: startBtnClicked()
}
}

View File

@ -30,7 +30,8 @@ Item {
anchors.left: parent.left
anchors.leftMargin: 24
StyledText {
text: qsTr("Language")
//% "Language"
text: qsTrId("language")
}
Select {
id: select

View File

@ -131,13 +131,15 @@ Item {
anchors.topMargin: Style.current.smallPadding
TextWithLabel {
label: qsTr("Chat key")
//% "Chat key"
label: qsTrId("chat-key")
text: pubkey.substring(0, 13) + "..." + pubkey.substring(pubkey.length - 13)
textToCopy: pubkey
}
TextWithLabel {
label: qsTr("Share Profile URL")
//% "Share Profile URL"
label: qsTrId("share-profile-url")
text: `https://join.status.im/u/${pubkey.substring(0, 5)}...${pubkey.substring(pubkey.length - 5)}`
textToCopy: `https://join.status.im/u/${pubkey}`
}

View File

@ -77,7 +77,8 @@ Item {
}
StyledText {
id: labelPrivacy
text: qsTr("Privacy")
//% "Privacy"
text: qsTrId("privacy")
font.pixelSize: 15
color: Style.current.darkGrey
anchors.top: separator.bottom

View File

@ -13,7 +13,8 @@ Item {
StyledText {
id: element5
text: qsTr("Sounds settings")
//% "Sounds settings"
text: qsTrId("sounds-settings")
anchors.left: parent.left
anchors.leftMargin: 24
anchors.top: parent.top

View File

@ -11,7 +11,8 @@ Item {
StyledText {
id: noCollectiblesText
color: Style.current.secondaryText
text: qsTr("Collectibles will appear here")
//% "Collectibles will appear here"
text: qsTrId("collectibles-will-appear-here")
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
font.pixelSize: 15

View File

@ -55,7 +55,8 @@ Item {
StyledText {
id: totalValue
color: Style.current.darkGrey
text: qsTr("Total value")
//% "Total value"
text: qsTrId("wallet-total-value")
anchors.left: walletAmountValue.left
anchors.top: walletAmountValue.bottom
font.weight: Font.Medium

View File

@ -7,7 +7,8 @@ ModalPopup {
property string address: ""
id: popup
title: qsTr("Receive")
//% "Receive"
title: qsTrId("receive")
height: 500
width: 500
@ -51,7 +52,8 @@ ModalPopup {
}
Input {
label: qsTr("Wallet address")
//% "Wallet address"
label: qsTrId("wallet-address")
text: accountSelector.selectedAccount.address
anchors.top: accountSelector.bottom
anchors.topMargin: Style.current.padding

View File

@ -32,7 +32,8 @@ ModalPopup {
StyledButton {
id: btnBack
anchors.left: parent.left
label: qsTr("Back")
//% "Back"
label: qsTrId("back")
visible: !btnPreview.visible
onClicked: {
btnPreview.visible = true
@ -42,7 +43,8 @@ ModalPopup {
StyledButton {
id: btnPreview
anchors.right: parent.right
label: qsTr("Preview")
//% "Preview"
label: qsTrId("preview")
onClicked: {
if (!sendModalContent.validate()) {
return

View File

@ -21,7 +21,8 @@ Item {
width: 480
height: 510
title: qsTr("Settings")
//% "Settings"
title: qsTrId("settings")
SetCurrencyModalContent {
id: setCurrencyModalContent
@ -29,7 +30,8 @@ Item {
footer: StyledButton {
anchors.right: parent.right
label: qsTr("Save")
//% "Save"
label: qsTrId("save")
onClicked: {
console.log("TODO: apply all accounts")
popup.close()

View File

@ -110,7 +110,8 @@ Item {
HeaderButton {
id: sendBtn
imageSource: "../../img/send.svg"
text: qsTr("Send")
//% "Send"
text: qsTrId("command-button-send")
onClicked: function () {
sendModal.open()
}
@ -120,7 +121,8 @@ Item {
id: receiveBtn
imageSource: "../../img/send.svg"
flipImage: true
text: qsTr("Receive")
//% "Receive"
text: qsTrId("receive")
onClicked: function () {
receiveModal.open()
}

View File

@ -28,7 +28,8 @@ Item {
return sendingError.open()
}
sendingSuccess.text = qsTr("Transaction sent to the blockchain. You can watch the progress on Etherscan: %2/%1").arg(result).arg(walletModel.etherscanLink)
//% "Transaction sent to the blockchain. You can watch the progress on Etherscan: %2/%1"
sendingSuccess.text = qsTrId("transaction-sent-to-the-blockchain--you-can-watch-the-progress-on-etherscan---2--1").arg(result).arg(walletModel.etherscanLink)
sendingSuccess.open()
}
@ -106,7 +107,8 @@ Item {
anchors.topMargin: Style.current.padding
anchors.left: parent.left
anchors.right: parent.right
label: qsTr("From account")
//% "From account"
label: qsTrId("from-account")
onSelectedAccountChanged: {
txtAmount.selectedAccount = selectFromAccount.selectedAccount
}
@ -127,7 +129,8 @@ Item {
id: selectRecipient
accounts: walletModel.accounts
contacts: profileModel.addedContacts
label: qsTr("Recipient")
//% "Recipient"
label: qsTrId("recipient")
anchors.top: gasSelector.bottom
anchors.topMargin: Style.current.padding
anchors.left: parent.left

View File

@ -42,14 +42,16 @@ ScrollView {
StyledText {
id: somethingWentWrongText
text: qsTr("Something went wrong")
//% "Something went wrong"
text: qsTrId("something-went-wrong")
anchors.horizontalCenter: parent.horizontalCenter
color: Style.current.secondaryText
font.pixelSize: 13
}
StyledButton {
label: qsTr("Reload")
//% "Reload"
label: qsTrId("reload")
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: somethingWentWrongText.bottom
anchors.topMargin: Style.current.halfPadding

View File

@ -15,13 +15,15 @@ ModalPopup {
popup.collectibleId = options.id
popup.collectibleDescription = options.description
popup.collectibleImage = options.image
popup.buttonText = options.buttonText || qsTr("View")
//% "View"
popup.buttonText = options.buttonText || qsTrId("view")
popup.buttonLink = options.link
popup.open()
}
id: popup
title: collectibleName || qsTr("Unnamed")
//% "Unnamed"
title: collectibleName || qsTrId("unnamed")
CollectiblesModalContent {
collectibleName: popup.collectibleName

View File

@ -23,7 +23,8 @@ Item {
TextWithLabel {
id: idText
label: qsTr("ID")
//% "ID"
label: qsTrId("id")
text: root.collectibleId
anchors.top: collectibleImage.bottom
anchors.topMargin:0
@ -33,7 +34,8 @@ Item {
TextWithLabel {
visible: !!root.collectibleDescription
id: descriptionText
label: qsTr("Description")
//% "Description"
label: qsTrId("description")
text: root.collectibleDescription
anchors.top: idText.bottom
anchors.topMargin: 0

View File

@ -20,18 +20,19 @@ SOURCES = *.qml \
app/AppLayouts/*.qml \
app/AppLayouts/Chat/*.qml \
app/AppLayouts/Chat/ChatColumn/*.qml \
app/AppLayouts/Chat/ChatColumn/ChatComponents/*.qml \
app/AppLayouts/Chat/ChatColumn/MessageComponents/*.qml \
app/AppLayouts/Chat/ContactsColumn/*.qml \
app/AppLayouts/Chat/components/*.qml \
app/AppLayouts/Chat/Contacts/*.qml \
app/AppLayouts/Node/*.qml \
app/AppLayouts/Profile/*.qml \
app/AppLayouts/Profile/LeftTab/*.qml \
app/AppLayouts/Profile/LeftTab/components/*.qml \
app/AppLayouts/Profile/Sections/*.qml \
app/AppLayouts/Profile/Sections/Contacts/*.qml \
app/AppLayouts/Wallet/*.qml \
app/AppLayouts/Wallet/components/*.qml \
app/AppLayouts/Wallet/components/collectiblesComponents/*.qml \
app/AppLayouts/Wallet/data/*.qml \
}
TRANSLATIONS += \

View File

@ -18,7 +18,8 @@ Item {
let error = "";
if(!Utils.isMnemonic(mnemonic)){
error = qsTr("Invalid mnemonic")
//% "Invalid mnemonic"
error = qsTrId("invalid-mnemonic")
} else {
error = onboardingModel.validateMnemonic(mnemonic)
}

View File

@ -6,7 +6,8 @@ import "../imports"
Item {
id: root
property string label: qsTr("Choose account")
//% "Choose account"
property string label: qsTrId("choose-account")
property bool showAccountDetails: true
property var accounts
property var selectedAccount: {

View File

@ -31,7 +31,8 @@ Item {
Input {
id: inpAddress
placeholderText: qsTr("eg. 0x1234 or ENS")
//% "eg. 0x1234 or ENS"
placeholderText: qsTrId("eg--0x1234-or-ens")
customHeight: 56
validationErrorAlignment: TextEdit.AlignRight
validationErrorTopMargin: 8
@ -67,7 +68,8 @@ Item {
anchors.rightMargin: 8
anchors.top: parent.top
anchors.topMargin: 14
label: qsTr("Paste")
//% "Paste"
label: qsTrId("paste")
onClicked: {
if (inpAddress.textField.canPaste) {
inpAddress.textField.paste()

View File

@ -5,11 +5,14 @@ import QtGraphicalEffects 1.13
import "../imports"
Item {
property string balanceErrorMessage: qsTr("Insufficient balance")
property string greaterThan0ErrorMessage: qsTr("Must be greater than 0")
//% "Insufficient balance"
property string balanceErrorMessage: qsTrId("insufficient-balance")
//% "Must be greater than 0"
property string greaterThan0ErrorMessage: qsTrId("must-be-greater-than-0")
//% "This needs to be a number"
property string invalidInputErrorMessage: qsTrId("this-needs-to-be-a-number")
property string noInputErrorMessage: qsTr("Please enter an amount")
//% "Please enter an amount"
property string noInputErrorMessage: qsTrId("please-enter-an-amount")
property string defaultCurrency: "USD"
property alias selectedFiatAmount: txtFiatBalance.text
property alias selectedAmount: inputAmount.text
@ -72,7 +75,8 @@ Item {
StyledText {
id: txtBalanceDesc
text: qsTr("Balance: ")
//% "Balance: "
text: qsTrId("balance--")
anchors.right: txtBalance.left
font.weight: Font.Medium
font.pixelSize: 13
@ -111,7 +115,8 @@ Item {
Input {
id: inputAmount
label: qsTr("Asset & Amount")
//% "Asset & Amount"
label: qsTrId("asset---amount")
placeholderText: "0.00"
anchors.top: parent.top
customHeight: 56

View File

@ -14,7 +14,8 @@ ModalPopup {
title: qsTrId("block-user")
Text {
text: qsTr("Blocking will remove any messages you received from " + blockContactConfirmationDialog.contactName + " and stop new messages from reaching you.")
//% "Blocking will remove any messages you received from " + blockContactConfirmationDialog.contactName + " and stop new messages from reaching you."
text: qsTrId("blocking-will-remove-any-messages-you-received-from-----blockcontactconfirmationdialog-contactname-----and-stop-new-messages-from-reaching-you-")
font.pixelSize: 15
anchors.left: parent.left
anchors.right: parent.right

View File

@ -8,10 +8,13 @@ ModalPopup {
id: confirmationDialog
height: 186
width: 400
title: qsTr("Confirm your action")
//% "Confirm your action"
title: qsTrId("confirm-your-action")
property string confirmButtonLabel: qsTr("Confirm")
property string confirmationText: qsTr("Are you sure you want to this?")
//% "Confirm"
property string confirmButtonLabel: qsTrId("close-app-button")
//% "Are you sure you want to this?"
property string confirmationText: qsTrId("are-you-sure-you-want-to-this-")
signal confirmButtonClicked()
Text {

View File

@ -14,7 +14,8 @@ Item {
property alias validationErrorAlignment: validationErrorText.horizontalAlignment
onContactsChanged: {
root.selectedContact = { name: qsTr("Select a contact") }
//% "Select a contact"
root.selectedContact = { name: qsTrId("select-a-contact") }
}
function validate() {
@ -65,7 +66,8 @@ Item {
height: 186
StyledText {
anchors.fill: parent
text: qsTr("You don't have any contacts yet")
//% "You don't have any contacts yet"
text: qsTrId("you-don-t-have-any-contacts-yet")
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
font.pixelSize: 13
@ -80,7 +82,8 @@ Item {
TextEdit {
id: validationErrorText
visible: false
text: qsTr("Please select a contact")
//% "Please select a contact"
text: qsTrId("please-select-a-contact")
anchors.top: select.bottom
anchors.topMargin: 8
selectByMouse: true

View File

@ -43,7 +43,8 @@ Item {
id: txtNetworkFee
anchors.top: parent.top
anchors.left: parent.left
text: qsTr("Network fee")
//% "Network fee"
text: qsTrId("network-fee")
font.weight: Font.Medium
font.pixelSize: 13
color: Style.current.textColor
@ -86,7 +87,8 @@ Item {
anchors.top: gasSlider.bottom
anchors.topMargin: Style.current.padding
anchors.left: parent.left
text: qsTr("Slow")
//% "Slow"
text: qsTrId("slow")
font.pixelSize: 15
color: Style.current.textColor
visible: parent.visible
@ -97,7 +99,8 @@ Item {
anchors.top: gasSlider.bottom
anchors.topMargin: Style.current.padding
anchors.horizontalCenter: gasSlider.horizontalCenter
text: qsTr("Optimal")
//% "Optimal"
text: qsTrId("optimal")
font.pixelSize: 15
color: Style.current.textColor
visible: parent.visible
@ -108,7 +111,8 @@ Item {
anchors.top: gasSlider.bottom
anchors.topMargin: Style.current.padding
anchors.right: parent.right
text: qsTr("Fast")
//% "Fast"
text: qsTrId("fast")
font.pixelSize: 15
color: Style.current.textColor
visible: parent.visible
@ -121,7 +125,8 @@ Item {
anchors.topMargin: sliderWrapper.visible ? Style.current.smallPadding : 0
anchors.right: buttonAdvanced.left
anchors.rightMargin: -Style.current.padding
label: qsTr("Reset")
//% "Reset"
label: qsTrId("reset")
btnColor: "transparent"
textSize: 13
visible: !sliderWrapper.visible
@ -137,7 +142,8 @@ Item {
anchors.topMargin: sliderWrapper.visible ? Style.current.smallPadding : 0
anchors.right: parent.right
anchors.rightMargin: -Style.current.padding
label: qsTr("Advanced")
//% "Advanced"
label: qsTrId("advanced")
btnColor: "transparent"
textSize: 13
onClicked: {
@ -147,13 +153,15 @@ Item {
ModalPopup {
id: customNetworkFeeDialog
title: qsTr("Custom Network Fee")
//% "Custom Network Fee"
title: qsTrId("custom-network-fee")
height: 286
width: 400
Input {
id: inputGasLimit
label: qsTr("Gas limit")
//% "Gas limit"
label: qsTrId("gas-limit")
text: "22000"
customHeight: 56
anchors.top: parent.top
@ -172,7 +180,8 @@ Item {
Input {
id: inputGasPrice
label: qsTr("Gas price")
//% "Gas price"
label: qsTrId("gas-price")
anchors.top: parent.top
anchors.left: undefined
anchors.right: parent.right
@ -190,7 +199,8 @@ Item {
StyledText {
color: Style.current.darkGrey
text: qsTr("Gwei")
//% "Gwei"
text: qsTrId("gwei")
anchors.top: parent.top
anchors.topMargin: 42
anchors.right: parent.right
@ -213,7 +223,8 @@ Item {
id: applyButton
anchors.right: parent.right
anchors.rightMargin: Style.current.smallPadding
label: qsTr("Apply")
//% "Apply"
label: qsTrId("invalid-key-confirm")
disabled: !root.validate(inputGasLimit.text.trim()) || !root.validate(inputGasPrice.text.trim())
anchors.bottom: parent.bottom
onClicked: {

View File

@ -114,16 +114,19 @@ Item {
StyledButton {
id: copyBtn
label: qsTr("Copy")
//% "Copy"
label: qsTrId("copy-to-clipboard")
height: 28
textSize: 12
btnBorderColor: Style.current.blue
btnBorderWidth: 1
onClicked: {
chatsModel.copyToClipboard(inputValue.text)
copyBtn.label = qsTr("Copied")
//% "Copied"
copyBtn.label = qsTrId("sharing-copied-to-clipboard")
timer.setTimeout(function(){
copyBtn.label = qsTr("Copy")
//% "Copy"
copyBtn.label = qsTrId("copy-to-clipboard")
}, 2000);
}
}

View File

@ -16,7 +16,8 @@ Item {
property var selectedRecipient: { }
property bool readOnly: false
height: (readOnly ? inpReadOnly.height : inpAddress.height) + txtLabel.height
readonly property string addressValidationError: qsTr("Invalid ethereum address")
//% "Invalid ethereum address"
readonly property string addressValidationError: qsTrId("invalid-ethereum-address")
enum Type {
Address,
@ -42,7 +43,8 @@ Item {
Text {
id: txtLabel
visible: label !== ""
text: qsTr("Recipient")
//% "Recipient"
text: qsTrId("recipient")
font.pixelSize: 13
font.family: Style.current.fontRegular.name
font.weight: Font.Medium
@ -77,7 +79,8 @@ Item {
Layout.fillWidth: true
anchors.left: undefined
anchors.right: undefined
text: (root.selectedRecipient && root.selectedRecipient.name) ? root.selectedRecipient.name : qsTr("No recipient selected")
//% "No recipient selected"
text: (root.selectedRecipient && root.selectedRecipient.name) ? root.selectedRecipient.name : qsTrId("no-recipient-selected")
textField.leftPadding: 14
textField.topPadding: 18
textField.bottomPadding: 18

View File

@ -24,7 +24,8 @@ Button {
height: 16
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("Paste")
//% "Paste"
text: qsTrId("paste")
}
MouseArea {

View File

@ -21,7 +21,8 @@ Item {
LabelValueRow {
id: itmFrom
label: qsTr("From")
//% "From"
label: qsTrId("from")
value: Item {
anchors.fill: parent
anchors.verticalCenter: parent.verticalCenter
@ -58,7 +59,8 @@ Item {
LabelValueRow {
id: itmTo
property var props: { "primaryText": "replace1", "secondaryText": "me1" }
label: qsTr("Recipient")
//% "Recipient"
label: qsTrId("recipient")
states: [
State {
name: "Address"
@ -199,7 +201,8 @@ Item {
}
LabelValueRow {
id: itmAsset
label: qsTr("Asset")
//% "Asset"
label: qsTrId("wallet-asset")
value: Item {
anchors.fill: parent
anchors.verticalCenter: parent.verticalCenter
@ -246,7 +249,8 @@ Item {
}
LabelValueRow {
id: itmAmount
label: qsTr("Amount")
//% "Amount"
label: qsTrId("amount")
value: Item {
id: amountRoot
anchors.fill: parent
@ -303,7 +307,8 @@ Item {
}
LabelValueRow {
id: itmNetworkFee
label: qsTr("Network fee")
//% "Network fee"
label: qsTrId("network-fee")
value: Item {
id: networkFeeRoot
anchors.fill: parent

View File

@ -21,7 +21,8 @@ Item {
id: labelSigningPhrase
color: Style.current.secondaryText
font.pixelSize: 15
text: qsTr("Signing phrase")
//% "Signing phrase"
text: qsTrId("signing-phrase")
}
IconButton {
@ -37,7 +38,8 @@ Item {
StatusToolTip {
visible: infoButton.hovered
width: 337
text: qsTr("Signing phrase is a 3 word combination that displayed when you entered the wallet on this device for the first time.")
//% "Signing phrase is a 3 word combination that displayed when you entered the wallet on this device for the first time."
text: qsTrId("signing-phrase-is-a-3-word-combination-that-displayed-when-you-entered-the-wallet-on-this-device-for-the-first-time-")
}
}
}
@ -65,7 +67,8 @@ Item {
StatusToolTip {
visible: passwordInfoButton.hovered
width: 224
text: qsTr("Enter the password you use to unlock this device")
//% "Enter the password you use to unlock this device"
text: qsTrId("enter-the-password-you-use-to-unlock-this-device")
}
}