chore: run translation scripts

This commit is contained in:
Jonathan Rainville 2021-02-18 11:36:05 -05:00 committed by Iuri Matias
parent b277346490
commit 0e699cac65
240 changed files with 56952 additions and 193893 deletions

View File

@ -51,12 +51,15 @@ ModalPopup {
function validate() {
urlError = ""
if (!urlInput.text) {
urlError = qsTr("Please enter a URL")
//% "Please enter a URL"
urlError = qsTrId("please-enter-a-url")
} else if (!Utils.isURL(urlInput.text)) {
urlError = qsTr("This fields needs to be a valid URL")
//% "This fields needs to be a valid URL"
urlError = qsTrId("this-fields-needs-to-be-a-valid-url")
}
nameError = !nameInput.text ? qsTr("Please enter a Name") : ""
//% "Please enter a Name"
nameError = !nameInput.text ? qsTrId("please-enter-a-name") : ""
return !urlError && !nameError
}
@ -74,9 +77,12 @@ ModalPopup {
title: modifiyModal ?
toolbarMode ?
qsTr("Favorite added") :
qsTr("Edit")
: qsTr("Add favorite")
//% "Favorite added"
qsTrId("favorite-added") :
//% "Edit"
qsTrId("edit")
//% "Add favorite"
: qsTrId("add-favorite")
Column {
width: parent.width
@ -84,8 +90,10 @@ ModalPopup {
Input {
id: urlInput
label: qsTr("URL")
placeholderText: qsTr("Paste URL")
//% "URL"
label: qsTrId("url")
//% "Paste URL"
placeholderText: qsTrId("paste-url")
pasteFromClipboard: true
validationError: popup.urlError
text: popup.ogUrl
@ -93,8 +101,10 @@ ModalPopup {
Input {
id: nameInput
label: qsTr("Name")
placeholderText: qsTr("Name the website")
//% "Name"
label: qsTrId("name")
//% "Name the website"
placeholderText: qsTrId("name-the-website")
validationError: popup.nameError
text: popup.ogName
}
@ -109,7 +119,8 @@ ModalPopup {
anchors.right: addBtn.left
anchors.rightMargin: Style.current.padding
visible: popup.modifiyModal
text: qsTr("Remove")
//% "Remove"
text: qsTrId("remove")
anchors.bottom: parent.bottom
color: Style.current.danger
bgColor: Utils.setColorAlpha(Style.current.danger, 0.1)
@ -125,8 +136,10 @@ ModalPopup {
anchors.right: parent.right
anchors.rightMargin: Style.current.smallPadding
text: popup.modifiyModal ?
qsTr("Done") :
qsTr("Add")
//% "Done"
qsTrId("done") :
//% "Add"
qsTrId("add")
anchors.bottom: parent.bottom
onClicked: {
if (!validate()) {

View File

@ -101,7 +101,8 @@ Popup {
StyledText {
id: titleText
text: qsTr('"%1" would like to connect to').arg(request.title)
//% "'%1' would like to connect to"
text: qsTrId("--1--would-like-to-connect-to").arg(request.title)
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter | Qt.AlignTop
wrapMode: Text.WordWrap
@ -144,8 +145,10 @@ Popup {
id: infoText
text: {
switch(request.permission){
case Constants.permission_web3: return qsTr("Allowing authorizes this DApp to retrieve your wallet address and enable Web3");
case Constants.permission_contactCode: return qsTr("Granting access authorizes this DApp to retrieve your chat key");
//% "Allowing authorizes this DApp to retrieve your wallet address and enable Web3"
case Constants.permission_web3: return qsTrId("allowing-authorizes-this-dapp");
//% "Granting access authorizes this DApp to retrieve your chat key"
case Constants.permission_contactCode: return qsTrId("your-contact-code");
default: return qsTr("Unknown permission: " + request.permission);
}
}
@ -165,7 +168,8 @@ Popup {
StatusButton {
type: "warn"
width: 155
text: qsTr("Deny")
//% "Deny"
text: qsTrId("deny")
onClicked: {
postMessage(false);
root.close();
@ -176,7 +180,8 @@ Popup {
btnColor: Utils.setColorAlpha(Style.current.success, 0.1)
textColor: Style.current.success
width: 155
label: qsTr("Allow")
//% "Allow"
label: qsTrId("allow")
onClicked: {
postMessage(true);
root.close();

View File

@ -99,7 +99,8 @@ Rectangle {
radius: 20
}
leftPadding: Style.current.padding
placeholderText: qsTr("Enter URL")
//% "Enter URL"
placeholderText: qsTrId("enter-url")
focus: true
text: ""
color: Style.current.textColor

View File

@ -91,7 +91,8 @@ Rectangle {
property MessageDialog signingError: MessageDialog {
id: signingError
title: qsTr("Error signing message")
//% "Error signing message"
title: qsTrId("error-signing-message")
icon: StandardIcon.Critical
standardButtons: StandardButton.Ok
}
@ -444,9 +445,11 @@ Rectangle {
}
if (createAsStartPage) {
return qsTr("Start Page")
//% "Start Page"
return qsTrId("start-page")
}
return qsTr("New Tab")
//% "New Tab"
return qsTrId("new-tab")
})
tab.item.profile = profile;
@ -459,7 +462,8 @@ Rectangle {
function createDownloadTab(profile) {
var tab = addTab("", tabComponent);
tab.active = true;
tab.title = qsTr("Downloads Page")
//% "Downloads Page"
tab.title = qsTrId("downloads-page")
tab.item.profile = profile
tab.item.url = "status://downloads";
}
@ -727,9 +731,12 @@ Rectangle {
property var certErrors: []
icon: StandardIcon.Warning
standardButtons: StandardButton.No | StandardButton.Yes
title: qsTr("Server's certificate not trusted")
text: qsTr("Do you wish to continue?")
detailedText: qsTr("If you wish so, you may continue with an unverified certificate. Accepting an unverified certificate means you may not be connected with the host you tried to connect to.\nDo you wish to override the security check and continue?")
//% "Server's certificate not trusted"
title: qsTrId("server-s-certificate-not-trusted")
//% "Do you wish to continue?"
text: qsTrId("do-you-wish-to-continue-")
//% "If you wish so, you may continue with an unverified certificate. Accepting an unverified certificate means you may not be connected with the host you tried to connect to.\nDo you wish to override the security check and continue?"
detailedText: qsTrId("if-you-wish-so--you-may-continue-with-an-unverified-certificate--accepting-an-unverified-certificate-means-you-may-not-be-connected-with-the-host-you-tried-to-connect-to--ndo-you-wish-to-override-the-security-check-and-continue-")
onYes: {
certErrors.shift().ignoreCertificateError();
presentError();

View File

@ -13,7 +13,8 @@ PopupMenu {
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
Action {
text: qsTr("New Tab")
//% "New Tab"
text: qsTrId("new-tab")
shortcut: StandardKey.AddTab
onTriggered: {
addNewTab()
@ -24,8 +25,10 @@ PopupMenu {
id: offTheRecordEnabled
// TODO show an indicator on the browser or tab?
text: checked ?
qsTr("Exit Incognito mode") :
qsTr("Go Incognito")
//% "Exit Incognito mode"
qsTrId("exit-incognito-mode") :
//% "Go Incognito"
qsTrId("go-incognito")
checkable: true
checked: currentWebView && currentWebView.profile === otrProfile
onToggled: function(checked) {
@ -39,7 +42,8 @@ PopupMenu {
// TODO find a way to put both in one button
Action {
text: qsTr("Zoom In")
//% "Zoom In"
text: qsTrId("zoom-in")
shortcut: StandardKey.ZoomIn
onTriggered: {
const newZoom = currentWebView.zoomFactor + 0.1
@ -47,7 +51,8 @@ PopupMenu {
}
}
Action {
text: qsTr("Zoom Out")
//% "Zoom Out"
text: qsTrId("zoom-out")
shortcut: StandardKey.ZoomOut
onTriggered: {
const newZoom = currentWebView.zoomFactor - 0.1
@ -62,7 +67,8 @@ PopupMenu {
Separator {}
Action {
text: qsTr("Find")
//% "Find"
text: qsTrId("find")
shortcut: StandardKey.Find
onTriggered: {
if (!findBar.visible) {
@ -73,7 +79,8 @@ PopupMenu {
}
Action {
text: qsTr("Compatibility mode")
//% "Compatibility mode"
text: qsTrId("compatibility-mode")
checkable: true
checked: true
onToggled: {
@ -91,7 +98,8 @@ PopupMenu {
}
Action {
text: qsTr("Developer Tools")
//% "Developer Tools"
text: qsTrId("developer-tools")
shortcut: "F12"
onTriggered: {
appSettings.devToolsEnabled = !appSettings.devToolsEnabled
@ -101,7 +109,8 @@ PopupMenu {
Separator {}
Action {
text: qsTr("Settings")
//% "Settings"
text: qsTrId("settings")
shortcut: "Ctrl+,"
onTriggered: {
appMain.changeAppSection(Constants.profile)

View File

@ -59,7 +59,8 @@ TabViewStyle {
StatusIconButton {
id: closeTabBtn
visible: tabs.count > 1 || styleData.title !== qsTr("Start Page")
//% "Start Page"
visible: tabs.count > 1 || styleData.title !== qsTrId("start-page")
enabled: visible
icon.name: "browser/close"
iconColor: Style.current.textColor

View File

@ -60,9 +60,12 @@ Popup {
id: networkText
text: {
switch (profileModel.network.current) {
case Constants.networkMainnet: return qsTr("Mainnet");
case Constants.networkRopsten: return qsTr("Ropsten");
default: return qsTr("Unknown")
//% "Mainnet"
case Constants.networkMainnet: return qsTrId("mainnet");
//% "Ropsten"
case Constants.networkRopsten: return qsTrId("ropsten");
//% "Unknown"
default: return qsTrId("active-unknown")
}
}
font.pixelSize: 15
@ -73,7 +76,8 @@ Popup {
StyledText {
id: disconectBtn
text: qsTr("Disconnect")
//% "Disconnect"
text: qsTrId("disconnect")
font.pixelSize: 15
anchors.verticalCenter: parent.verticalCenter
anchors.right: parent.right

View File

@ -53,7 +53,8 @@ Rectangle {
StatusButton {
id: showAllBtn
size: "small"
text: qsTr("Show All")
//% "Show All"
text: qsTrId("show-all")
anchors.verticalCenter: parent.verticalCenter
anchors.right: closeBtn.left
anchors.rightMargin: Style.current.padding

View File

@ -101,10 +101,12 @@ Rectangle {
color: Style.current.secondaryText
text: {
if (isCanceled) {
return qsTr("Cancelled")
//% "Cancelled"
return qsTrId("cancelled")
}
if (downloadModel.downloads[index] && downloadModel.downloads[index].isPaused) {
return qsTr("Paused")
//% "Paused"
return qsTrId("paused")
}
return `${downloadModel.downloads[index] ? (downloadModel.downloads[index].receivedBytes / 1000000).toFixed(2) : 0}/${downloadModel.downloads[index] ? (downloadModel.downloads[index].totalBytes / 1000000).toFixed(2) : 0} MB` //"14.4/109 MB, 26 sec left"
}
@ -139,14 +141,16 @@ Rectangle {
icon.source: "../../img/browser/file.svg"
icon.width: 16
icon.height: 16
text: qsTr("Open")
//% "Open"
text: qsTrId("open")
onTriggered: openFile()
}
Action {
icon.source: "../../img/add_watch_only.svg"
icon.width: 13
icon.height: 9
text: qsTr("Show in folder")
//% "Show in folder"
text: qsTrId("show-in-folder")
onTriggered: openDirectory()
}
Action {
@ -154,7 +158,8 @@ Rectangle {
icon.source: "../../img/browser/pause.svg"
icon.width: 16
icon.height: 16
text: qsTr("Pause")
//% "Pause"
text: qsTrId("pause")
onTriggered: {
downloadModel.downloads[index].pause()
}
@ -164,7 +169,8 @@ Rectangle {
icon.source: "../../img/browser/play.svg"
icon.width: 16
icon.height: 16
text: qsTr("Resume")
//% "Resume"
text: qsTrId("resume")
onTriggered: {
downloadModel.downloads[index].resume()
}
@ -179,7 +185,8 @@ Rectangle {
icon.source: "../../img/block-icon.svg"
icon.width: 13
icon.height: 13
text: qsTr("Cancel")
//% "Cancel"
text: qsTrId("browsing-cancel")
onTriggered: {
downloadModel.downloads[index].cancel()
isCanceled = true

View File

@ -34,7 +34,8 @@ Rectangle {
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
font.pixelSize: 15
text: qsTr("Downloaded files will appear here.")
//% "Downloaded files will appear here."
text: qsTrId("downloaded-files-will-appear-here-")
color: Style.current.secondaryText
}
}

View File

@ -16,7 +16,8 @@ PopupMenu {
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
Action {
text: qsTr("Open in new Tab")
//% "Open in new Tab"
text: qsTrId("open-in-new-tab")
icon.source: "../../img/generate_account.svg"
icon.width: 16
icon.height: 16
@ -28,7 +29,8 @@ PopupMenu {
Separator {}
Action {
text: qsTr("Edit")
//% "Edit"
text: qsTrId("edit")
icon.source: "../../img/edit.svg"
icon.width: 16
icon.height: 16
@ -41,7 +43,8 @@ PopupMenu {
}
Action {
text: qsTr("Remove")
//% "Remove"
text: qsTrId("remove")
icon.source: "../../img/remove.svg"
icon.color: Style.current.danger
icon.width: 16

View File

@ -33,7 +33,8 @@ Item {
BookmarkButton {
id: addBookmarkBtn
text: qsTr("Add favorite")
//% "Add favorite"
text: qsTrId("add-favorite")
onClicked: {
addFavoriteModal.open()
}

View File

@ -58,7 +58,8 @@ ModalPopup {
StatusButton {
id: okButton
anchors.right: parent.right
text: qsTr("Ok")
//% "Ok"
text: qsTrId("ok")
anchors.bottom: parent.bottom
onClicked: {
request.dialogAccept(prompt.text);
@ -71,7 +72,8 @@ ModalPopup {
type: "secondary"
anchors.right: okButton.left
anchors.rightMargin: Style.current.smallPadding
text: qsTr("Cancel")
//% "Cancel"
text: qsTrId("browsing-cancel")
anchors.bottom: parent.bottom
onClicked: {
request.dialogReject();

View File

@ -25,7 +25,8 @@ ModalPopup {
id: root
title: qsTr("Signature request")
//% "Signature request"
title: qsTrId("signature-request")
height: 504
onClosed: {
@ -125,14 +126,16 @@ ModalPopup {
}
LabelValueRow {
label: qsTr("Data")
//% "Data"
label: qsTrId("data")
value: Item {
anchors.fill: parent
anchors.verticalCenter: parent.verticalCenter
ModalPopup {
id: messagePopup
title: qsTr("Message")
//% "Message"
title: qsTrId("message")
height: 286
width: 400
Item {
@ -199,7 +202,8 @@ ModalPopup {
id: btnReject
anchors.right:btnNext.left
anchors.rightMargin: Style.current.padding
text: qsTr("Reject")
//% "Reject"
text: qsTrId("reject")
color: Style.current.danger
type: "secondary"
onClicked: close()
@ -209,8 +213,10 @@ ModalPopup {
id: btnNext
anchors.right: parent.right
text: showSigningPhrase ?
qsTr("Sign") :
qsTr("Sign with password")
//% "Sign"
qsTrId("transactions-sign") :
//% "Sign with password"
qsTrId("sign-with-password")
onClicked: {
if(!showSigningPhrase){
showSigningPhrase = true;

View File

@ -269,8 +269,10 @@ StackLayout {
}
enabled: !isBlocked
chatInputPlaceholder: isBlocked ?
qsTr("This user has been blocked.") :
qsTr("Type a message.")
//% "This user has been blocked."
qsTrId("this-user-has-been-blocked-") :
//% "Type a message."
qsTrId("type-a-message-")
anchors.bottom: parent.bottom
recentStickers: chatsModel.stickers.recent
stickerPackList: chatsModel.stickers.stickerPacks

View File

@ -41,7 +41,8 @@ ModalPopup {
width: stack.width
label: {
return root.isRequested ?
qsTr("Receive on account") :
//% "Receive on account"
qsTrId("receive-on-account") :
//% "From account"
qsTrId("from-account")
}
@ -58,7 +59,8 @@ ModalPopup {
anchors.right: selectRecipient.right
anchors.bottom: selectRecipient.top
anchors.bottomMargin: -Style.current.padding
text: qsTr("Address request required")
//% "Address request required"
text: qsTrId("address-request-required")
color: Style.current.danger
visible: addressRequiredValidator.isWarn
}
@ -68,8 +70,10 @@ ModalPopup {
accounts: walletModel.accounts
contacts: profileModel.contacts.addedContacts
label: root.isRequested ?
qsTr("From") :
qsTr("To")
//% "From"
qsTrId("from") :
//% "To"
qsTrId("to")
anchors.top: separator.bottom
anchors.topMargin: 10
width: stack.width
@ -97,7 +101,8 @@ ModalPopup {
TransactionFormGroup {
id: group3
headerText: root.isRequested ?
qsTr("Preview") :
//% "Preview"
qsTrId("preview") :
//% "Transaction preview"
qsTrId("transaction-preview")
footerText: root.finalButtonLabel

View File

@ -66,11 +66,13 @@ ModalPopup {
if(trxData.startsWith("0x095ea7b3")){
const approveData = JSON.parse(walletModel.decodeTokenApproval(selectedRecipient.address, trxData))
if(approveData.symbol)
return qsTr("Authorize %1 %2").arg(approveData.amount).arg(approveData.symbol)
//% "Authorize %1 %2"
return qsTrId("authorize--1--2").arg(approveData.amount).arg(approveData.symbol)
}
return qsTrId("command-button-send");
}
footerText: qsTr("Continue")
//% "Continue"
footerText: qsTrId("continue")
showNextBtn: false
onBackClicked: function() {
if(validate()) {
@ -100,7 +102,8 @@ ModalPopup {
}
TransactionFormGroup {
id: groupSelectGas
headerText: qsTr("Network fee")
//% "Network fee"
headerText: qsTrId("network-fee")
//% "Preview"
footerText: qsTrId("preview")
showNextBtn: false
@ -137,7 +140,8 @@ ModalPopup {
//% "Error estimating gas: %1"
let message = qsTrId("error-estimating-gas---1").arg(gasEstimate.error.message)
console.warn(message)
gasEstimateErrorPopup.confirmationText = message + qsTr(". The transaction will probably fail.")
//% ". The transaction will probably fail."
gasEstimateErrorPopup.confirmationText = message + qsTrId("--the-transaction-will-probably-fail-")
gasEstimateErrorPopup.open()
return
}

View File

@ -184,12 +184,15 @@ ScrollView {
let message;
if (appSettings.notificationMessagePreviewSetting > Constants.notificationPreviewNameOnly) {
switch(messageType){
case Constants.imageType: message = qsTr("Image"); break
case Constants.stickerType: message = qsTr("Sticker"); break
//% "Image"
case Constants.imageType: message = qsTrId("image"); break
//% "Sticker"
case Constants.stickerType: message = qsTrId("sticker"); break
default: message = Emoji.parse(msg, "26x26").replace(/\n|\r/g, ' ')
}
} else {
message = qsTr("You have a new message")
//% "You have a new message"
message = qsTrId("you-have-a-new-message")
}
currentlyHasANotification = true
@ -234,7 +237,8 @@ ScrollView {
MessageDialog {
id: sendingMsgFailedPopup
standardButtons: StandardButton.Ok
text: qsTr("Failed to send message.")
//% "Failed to send message."
text: qsTrId("failed-to-send-message-")
icon: StandardIcon.Critical
}

View File

@ -26,7 +26,8 @@ Item {
StyledText {
id: shareKeyLink
text: qsTr("Share your chat key")
//% "Share your chat key"
text: qsTrId("share-your-chat-key")
font.pixelSize: 15
color: Style.current.blue
@ -48,7 +49,8 @@ Item {
StyledText {
id: orText
text: qsTr("or")
//% "or"
text: qsTrId("or")
font.pixelSize: 15
color: Style.current.darkGrey
anchors.left: shareKeyLink.right
@ -58,7 +60,8 @@ Item {
StyledText {
id: inviteLink
text: qsTr("invite")
//% "invite"
text: qsTrId("invite")
font.pixelSize: 15
color: Style.current.blue
anchors.left: orText.right
@ -83,7 +86,8 @@ Item {
}
StyledText {
text: qsTr("friends to start messaging in Status")
//% "friends to start messaging in Status"
text: qsTrId("friends-to-start-messaging-in-status")
font.pixelSize: 15
color: Style.current.darkGrey
anchors.horizontalCenter: walkieTalkieImage.horizontalCenter

View File

@ -81,8 +81,10 @@ Column {
wrapMode: Text.Wrap
text: {
switch(chatsModel.activeChannel.chatType) {
case Constants.chatTypePrivateGroupChat: return qsTr(`Welcome to the beginning of the <span style="color: ${Style.current.textColor}">%1</span> group!`).arg(chatsModel.activeChannel.name);
case Constants.chatTypeOneToOne: return qsTr(`Any messages you send here are encrypted and can only be read by you and <span style="color: ${Style.current.textColor}">%1</span>`).arg(Utils.removeStatusEns(chatsModel.activeChannel.name))
//% "Welcome to the beginning of the <span style='color: %1'>%2</span> group!"
case Constants.chatTypePrivateGroupChat: return qsTrId("welcome-to-the-beginning-of-the--span-style--color---1---2--span--group-").arg(Style.current.textColor).arg(chatsModel.activeChannel.name);
//% "Any messages you send here are encrypted and can only be read by you and <span style='color: %1'>%2</span>"
case Constants.chatTypeOneToOne: return qsTrId("any-messages-you-send-here-are-encrypted-and-can-only-be-read-by-you-and--span-style--color---1---2--span-").arg(Style.current.textColor).arg(Utils.removeStatusEns(chatsModel.activeChannel.name))
default: return "";
}
}

View File

@ -71,7 +71,8 @@ Rectangle {
StatusToolTip {
visible: emojiBtn.hovered
text: qsTr("Add reaction")
//% "Add reaction"
text: qsTrId("add-reaction")
}
}
@ -90,7 +91,8 @@ Rectangle {
StatusToolTip {
visible: replyBtn.hovered
text: qsTr("Reply")
//% "Reply"
text: qsTrId("message-reply")
}
}
}

View File

@ -14,7 +14,8 @@ Item {
width: childrenRect.width
function lastTwoItems(nodes) {
return nodes.join(qsTr(" and "));
//% " and "
return nodes.join(qsTrId("-and-"));
}
function showReactionAuthors(fromAccounts, emojiId) {
@ -34,7 +35,8 @@ Item {
rightNode = fromAccounts.slice(maxReactions, fromAccounts.length);
return (rightNode.length === 1) ?
lastTwoItems([leftNode.join(", "), rightNode[0]]) :
lastTwoItems([leftNode.join(", "), qsTr("%1 more").arg(rightNode.length)]);
//% "%1 more"
lastTwoItems([leftNode.join(", "), qsTrId("-1-more").arg(rightNode.length)]);
}
leftNode = fromAccounts.slice(0, maximum - 1);
@ -42,7 +44,8 @@ Item {
tooltip = lastTwoItems([leftNode.join(", "), rightNode[0]])
}
tooltip += qsTr(" reacted with ");
//% " reacted with "
tooltip += qsTrId("-reacted-with-");
switch (emojiId) {
case 1: return tooltip + ":heart:"
@ -217,7 +220,8 @@ Item {
StatusToolTip {
visible: addEmojiBtn.isHovered
text: qsTr("Add reaction")
//% "Add reaction"
text: qsTrId("add-reaction")
}
}
}

View File

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

View File

@ -53,8 +53,10 @@ Item {
id: title
color: invitedCommunity.verifed ? Style.current.primary : Style.current.secondaryText
text: invitedCommunity.verifed ?
qsTr("Verified community invitation") :
qsTr("Community invitation")
//% "Verified community invitation"
qsTrId("verified-community-invitation") :
//% "Community invitation"
qsTrId("community-invitation")
font.weight: Font.Medium
anchors.top: parent.top
anchors.topMargin: Style.current.halfPadding
@ -65,7 +67,8 @@ Item {
StyledText {
id: invitedYou
text: qsTr("%1 invited you to join a community").arg(userName)
//% "%1 invited you to join a community"
text: qsTrId("-1-invited-you-to-join-a-community").arg(userName)
anchors.top: title.bottom
anchors.topMargin: 4
anchors.left: parent.left
@ -113,7 +116,8 @@ Item {
StyledText {
id: communityNbMembers
// TODO add the plural support
text: qsTr("%1 members").arg(invitedCommunity.nbMembers)
//% "%1 members"
text: qsTrId("-1-members").arg(invitedCommunity.nbMembers)
anchors.top: communityDesc.bottom
anchors.topMargin: 2
anchors.left: parent.left
@ -135,8 +139,10 @@ Item {
width: parent.width
height: 44
enabled: !invitedCommunity.joined
text: root.joined || invitedCommunity.joined ? qsTr("Joined") :
qsTr("Join")
//% "Joined"
text: root.joined || invitedCommunity.joined ? qsTrId("joined") :
//% "Join"
qsTrId("join")
onClicked: {
chatsModel.joinCommunity(communityId)
root.joined = true

View File

@ -242,7 +242,8 @@ Column {
StyledText {
id: enableText
text: qsTr("Enable link previews in chat?")
//% "Enable link previews in chat?"
text: qsTrId("enable-link-previews")
horizontalAlignment: Text.AlignHCenter
width: parent.width
wrapMode: Text.WordWrap
@ -253,7 +254,8 @@ Column {
StyledText {
id: infoText
text: qsTr("Once enabled, links posted in the chat may share your metadata with their owners")
//% "Once enabled, links posted in the chat may share your metadata with their owners"
text: qsTrId("once-enabled--links-posted-in-the-chat-may-share-your-metadata-with-their-owners")
horizontalAlignment: Text.AlignHCenter
width: parent.width
wrapMode: Text.WordWrap
@ -270,7 +272,8 @@ Column {
StatusButton {
id: enableBtn
text: qsTr("Enable in Settings")
//% "Enable in Settings"
text: qsTrId("enable-in-settings")
type: "secondary"
onClicked: {
appMain.changeAppSection(Constants.profile)
@ -287,7 +290,8 @@ Column {
}
StatusButton {
text: qsTr("Don't ask me again")
//% "Don't ask me again"
text: qsTrId("dont-ask")
type: "secondary"
onClicked: {
appSettings.neverAskAboutUnfurlingAgain = true

View File

@ -75,7 +75,8 @@ Item {
text: {
if (root.state === Constants.transactionRequested) {
let prefix = root.outgoing ? "↓ ": "↑ "
return prefix + qsTr("Transaction request")
//% "Transaction request"
return prefix + qsTrId("transaction-request")
}
return root.outgoing ?
//% " Outgoing transaction"
@ -104,7 +105,8 @@ Item {
id: txtError
color: Style.current.danger
visible: root.isError
text: qsTr("Something has gone wrong")
//% "Something has gone wrong"
text: qsTrId("something-has-gone-wrong")
}
Image {

View File

@ -8,7 +8,8 @@ import "../../../../../../shared/status"
ModalPopup {
id: root
title: qsTr("Select account")
//% "Select account"
title: qsTrId("select-account")
height: 284
property alias accountSelector: selectFromAccount
signal selectAndShareAddressButtonClicked()
@ -23,7 +24,8 @@ ModalPopup {
currency: walletModel.defaultCurrency
width: parent.width
//% "Choose account"
label: qsTr("Select account to share and receive assets")
//% "Select account to share and receive assets"
label: qsTrId("select-account-to-share-and-receive-assets")
}
}
@ -35,7 +37,8 @@ ModalPopup {
StatusButton {
anchors.right: parent.right
anchors.rightMargin: Style.current.smallPadding
text: qsTr("Confirm and share address")
//% "Confirm and share address"
text: qsTrId("confirm-and-share-address")
anchors.bottom: parent.bottom
onClicked: root.selectAndShareAddressButtonClicked()
}

View File

@ -15,7 +15,8 @@ Item {
StyledText {
id: signText
color: Style.current.blue
text: qsTr("Sign and send")
//% "Sign and send"
text: qsTrId("sign-and-send")
horizontalAlignment: Text.AlignHCenter
wrapMode: Text.WordWrap
font.weight: Font.Medium

View File

@ -56,18 +56,28 @@ Rectangle {
}
text: {
switch (root.state) {
case Constants.pending: return qsTr("Pending")
case Constants.confirmed: return qsTr("Confirmed")
case Constants.unknown: return qsTr("Unknown token")
case Constants.addressRequested: return qsTr("Address requested")
case Constants.transactionRequested: return qsTr("Waiting to accept")
//% "Pending"
case Constants.pending: return qsTrId("invite-chat-pending")
//% "Confirmed"
case Constants.confirmed: return qsTrId("status-confirmed")
//% "Unknown token"
case Constants.unknown: return qsTrId("unknown-token")
//% "Address requested"
case Constants.addressRequested: return qsTrId("address-requested")
//% "Waiting to accept"
case Constants.transactionRequested: return qsTrId("waiting-to-accept")
case Constants.addressReceived: return (!root.outgoing ?
qsTr("Address shared") :
qsTr("Address received"))
//% "Address shared"
qsTrId("address-shared") :
//% "Address received"
qsTrId("address-received"))
case Constants.transactionDeclined:
case Constants.declined: return qsTr("Transaction declined")
case Constants.failure: return qsTr("failure")
default: return qsTr("Unknown state")
//% "Transaction declined"
case Constants.declined: return qsTrId("transaction-declined")
//% "failure"
case Constants.failure: return qsTrId("failure")
//% "Unknown state"
default: return qsTrId("unknown-state")
}
}
font.weight: Font.Medium

View File

@ -14,7 +14,8 @@ Item {
id: chatName
text: {
if (isCurrentUser) {
return qsTr("You")
//% "You"
return qsTrId("You")
}
if (localName !== "") {

View File

@ -138,7 +138,7 @@ Rectangle {
icon.source: "../../../img/close.svg"
icon.width: chatTopBarContent.iconSize
icon.height: chatTopBarContent.iconSize
//% "Clear history"
//% "Clear History"
text: qsTrId("clear-history")
onTriggered: chatsModel.clearChatHistory(chatsModel.activeChannel.id)
}
@ -146,7 +146,7 @@ Rectangle {
icon.source: "../../../img/leave_chat.svg"
icon.width: chatTopBarContent.iconSize
icon.height: chatTopBarContent.iconSize
//% "Leave Group"
//% "Leave group"
text: qsTrId("leave-group")
onTriggered: {
//% "Leave group"

View File

@ -66,7 +66,8 @@ Item {
Action {
enabled: chatsModel.activeCommunity.admin
text: qsTrId("Create channel")
//% "Create channel"
text: qsTrId("create-channel")
icon.source: "../../img/hash.svg"
icon.width: 20
icon.height: 20
@ -74,7 +75,8 @@ Item {
}
Action {
text: qsTrId("Leave community")
//% "Leave community"
text: qsTrId("leave-community")
icon.source: "../../img/delete.svg"
icon.color: Style.current.red
icon.width: 20

View File

@ -15,11 +15,13 @@ ModalPopup {
searchBox.forceActiveFocus(Qt.MouseFocusReason)
}
title: qsTr("Communities")
//% "Communities"
title: qsTrId("communities")
SearchBox {
id: searchBox
placeholderText: qsTr("Search for communities or topics")
//% "Search for communities or topics"
placeholderText: qsTrId("search-for-communities-or-topics")
iconWidth: 17
iconHeight: 17
customHeight: 36
@ -99,8 +101,10 @@ ModalPopup {
StyledText {
id: communityMembers
text: nbMembers === 1 ?
qsTr("1 member") :
qsTr("%1 members").arg(nbMembers)
//% "1 member"
qsTrId("1-member") :
//% "%1 members"
qsTrId("-1-members").arg(nbMembers)
anchors.left: communityDesc.left
anchors.right: parent.right
anchors.top: communityDesc.bottom
@ -132,7 +136,8 @@ ModalPopup {
StatusButton {
id: importBtn
text: qsTr("Import a community")
//% "Import a community"
text: qsTrId("import-community")
anchors.right: createBtn.left
anchors.rightMargin: Style.current.smallPadding
onClicked: {
@ -143,7 +148,8 @@ ModalPopup {
StatusButton {
id: createBtn
text: qsTr("Create a community")
//% "Create a community"
text: qsTrId("create-community")
anchors.right: parent.right
onClicked: {
openPopup(createCommunitiesPopupComponent)

View File

@ -44,10 +44,14 @@ ModalPopup {
// TODO get this from access property
text: {
switch(access) {
case Constants.communityChatPublicAccess: return qsTr("Public community");
case Constants.communityChatInvitationOnlyAccess: return qsTr("Invitation only community");
case Constants.communityChatOnRequestAccess: return qsTr("On request community");
default: return qsTr("Unknown community");
//% "Public community"
case Constants.communityChatPublicAccess: return qsTrId("public-community");
//% "Invitation only community"
case Constants.communityChatInvitationOnlyAccess: return qsTrId("invitation-only-community");
//% "On request community"
case Constants.communityChatOnRequestAccess: return qsTrId("on-request-community");
//% "Unknown community"
default: return qsTrId("unknown-community");
}
}
anchors.left: communityName.left
@ -85,8 +89,10 @@ ModalPopup {
StyledText {
text: nbMembers === 1 ?
qsTr("1 member") :
qsTr("%1 members").arg(popup.nbMembers)
//% "1 member"
qsTrId("1-member") :
//% "%1 members"
qsTrId("-1-members").arg(popup.nbMembers)
wrapMode: Text.WrapAnywhere
width: parent.width
anchors.left: memberImage.right
@ -109,7 +115,8 @@ ModalPopup {
StyledText {
id: chatsTitle
text: qsTr("Chats")
//% "Chats"
text: qsTrId("chats")
anchors.top: sep1.bottom
anchors.topMargin: Style.current.bigPadding
font.pixelSize: 15
@ -161,7 +168,8 @@ ModalPopup {
}
StatusButton {
text: qsTr("Join %1").arg(popup.name)
//% "Join %1"
text: qsTrId("join---1-").arg(popup.name)
anchors.right: parent.right
onClicked: {
const error = chatsModel.joinCommunity(popup.communityId)
@ -177,7 +185,8 @@ ModalPopup {
MessageDialog {
id: joiningError
title: qsTr("Error joining the community")
//% "Error joining the community"
title: qsTrId("error-joining-the-community")
icon: StandardIcon.Critical
standardButtons: StandardButton.Ok
}

View File

@ -39,8 +39,10 @@ Button {
StyledText {
id: communityNbMember
text: chatsModel.activeCommunity.nbMembers === 1 ?
qsTr("1 member") :
qsTr("%1 members").arg(chatsModel.activeCommunity.nbMembers)
//% "1 member"
qsTrId("1-member") :
//% "%1 members"
qsTrId("-1-members").arg(chatsModel.activeCommunity.nbMembers)
anchors.left: communityName.left
anchors.top: communityName.bottom
font.pixelSize: 12

View File

@ -40,7 +40,8 @@ Item {
color: Style.current.darkGrey
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("No search results in Communities")
//% "No search results in Communities"
text: qsTrId("no-search-results-in-communities")
}
}
}

View File

@ -17,7 +17,8 @@ ModalPopup {
StyledText {
id: groupName
text: qsTr("Members")
//% "Members"
text: qsTrId("members-title")
anchors.top: parent.top
anchors.topMargin: 2
anchors.left: parent.left
@ -39,7 +40,8 @@ ModalPopup {
CommunityPopupButton {
id: inviteBtn
label: qsTr("Invite People")
//% "Invite People"
label: qsTrId("invite-people")
width: popup.width
iconName: "invite"
onClicked: openPopup(inviteFriendsPopup)
@ -119,14 +121,16 @@ ModalPopup {
icon.source: "../../../img/communities/menu/view-profile.svg"
icon.width: 16
icon.height: 16
text: qsTr("View Profile")
//% "View Profile"
text: qsTrId("view-profile")
onTriggered: openProfilePopup(model.userName, model.pubKey, model.identicon, '', contactRow.nickname)
}
Action {
icon.source: "../../../img/communities/menu/roles.svg"
icon.width: 16
icon.height: 16
text: qsTr("Roles")
//% "Roles"
text: qsTrId("roles")
onTriggered: console.log("TODO")
}
Separator {}
@ -135,7 +139,8 @@ ModalPopup {
icon.width: 16
icon.height: 16
icon.color: Style.current.red
text: qsTr("Kick")
//% "Kick"
text: qsTrId("kick")
onTriggered: chatsModel.removeUserFromCommunity(model.pubKey)
}
Action {
@ -143,7 +148,8 @@ ModalPopup {
icon.width: 16
icon.height: 16
icon.color: Style.current.red
text: qsTr("Ban")
//% "Ban"
text: qsTrId("ban")
onTriggered: console.log("TODO")
}
Separator {}
@ -152,7 +158,8 @@ ModalPopup {
icon.width: 16
icon.height: 16
icon.color: Style.current.red
text: qsTr("Transfer ownership")
//% "Transfer ownership"
text: qsTrId("transfer-ownership")
onTriggered: console.log("TODO")
}
}

View File

@ -47,10 +47,14 @@ ModalPopup {
StyledText {
text: {
switch(access) {
case Constants.communityChatPublicAccess: return qsTr("Public community");
case Constants.communityChatInvitationOnlyAccess: return qsTr("Invitation only community");
case Constants.communityChatOnRequestAccess: return qsTr("On request community");
default: return qsTr("Unknown community");
//% "Public community"
case Constants.communityChatPublicAccess: return qsTrId("public-community");
//% "Invitation only community"
case Constants.communityChatInvitationOnlyAccess: return qsTrId("invitation-only-community");
//% "On request community"
case Constants.communityChatOnRequestAccess: return qsTrId("on-request-community");
//% "Unknown community"
default: return qsTrId("unknown-community");
}
}
anchors.left: communityName.left
@ -86,7 +90,8 @@ ModalPopup {
id: shareCommunity
anchors.top: sep1.bottom
anchors.topMargin: Style.current.bigPadding
label: qsTr("Share community")
//% "Share community"
label: qsTrId("share-community")
text: "https://join.status.im/u/TODO"
textToCopy: text
}
@ -112,7 +117,8 @@ ModalPopup {
active: isAdmin
width: parent.width
sourceComponent: CommunityPopupButton {
label: qsTr("Members")
//% "Members"
label: qsTrId("members-title")
iconName: "members"
txtColor: Style.current.textColor
onClicked: openPopup(communityMembersPopup)
@ -159,7 +165,8 @@ ModalPopup {
active: isAdmin
width: parent.width
sourceComponent: CommunityPopupButton {
label: qsTr("Roles")
//% "Roles"
label: qsTrId("roles")
iconName: "roles"
width: parent.width
onClicked: console.log("TODO:")
@ -184,7 +191,8 @@ ModalPopup {
CommunityPopupButton {
id: notificationsBtn
label: qsTr("Notifications")
//% "Notifications"
label: qsTrId("notifications")
iconName: "notifications"
width: parent.width
txtColor: Style.current.textColor
@ -209,7 +217,8 @@ ModalPopup {
active: isAdmin
width: parent.width
sourceComponent: CommunityPopupButton {
label: qsTr("Edit community")
//% "Edit community"
label: qsTrId("edit-community")
iconName: "edit"
onClicked: openPopup(editCommunityPopup)
Component {
@ -231,7 +240,8 @@ ModalPopup {
Component {
id: exportBtn
CommunityPopupButton {
label: qsTr("Export community")
//% "Export community"
label: qsTrId("export-community")
iconName: "../fetch"
onClicked: exportResult = chatsModel.exportComumnity()
}
@ -262,7 +272,8 @@ ModalPopup {
}
CommunityPopupButton {
label: qsTr("Leave community")
//% "Leave community"
label: qsTrId("leave-community")
iconName: "leave"
}
@ -271,7 +282,8 @@ ModalPopup {
width: parent.width
sourceComponent: CommunityPopupButton {
id: deleteBtn
label: qsTr("Delete")
//% "Delete"
label: qsTrId("delete")
iconName: "delete"
txtColor: Style.current.red
//btnColor: Style.current.red // TODO: statusroundbutton should support changing color

View File

@ -53,7 +53,8 @@ Rectangle {
StyledText {
id: welcomeText
text: qsTr("Welcome to your community!")
//% "Welcome to your community!"
text: qsTrId("welcome-to-your-community-")
anchors.top: parent.top
anchors.topMargin: 60
horizontalAlignment: Text.AlignHCenter
@ -67,7 +68,8 @@ Rectangle {
StatusButton {
id: addMembersBtn
text: qsTr("Add members")
//% "Add members"
text: qsTrId("add-members")
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: manageBtn.top
anchors.bottomMargin: Style.current.halfPadding
@ -78,7 +80,8 @@ Rectangle {
StatusButton {
id: manageBtn
text: qsTr("Manage community")
//% "Manage community"
text: qsTrId("manage-community")
type: "secondary"
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: parent.bottom

View File

@ -23,17 +23,21 @@ ModalPopup {
nameValidationError = ""
if (nameInput.text === "") {
nameValidationError = qsTr("You need to enter a name")
//% "You need to enter a name"
nameValidationError = qsTrId("you-need-to-enter-a-name")
} else if (!(/^[a-z0-9\-\ ]+$/i.test(nameInput.text))) {
nameValidationError = qsTr("Please restrict your name to letters, numbers, dashes and spaces")
//% "Please restrict your name to letters, numbers, dashes and spaces"
nameValidationError = qsTrId("please-restrict-your-name-to-letters--numbers--dashes-and-spaces")
} else if (nameInput.text.length > 100) {
nameValidationError = qsTr("Your name needs to be 100 characters or shorter")
//% "Your name needs to be 100 characters or shorter"
nameValidationError = qsTrId("your-name-needs-to-be-100-characters-or-shorter")
}
return !nameValidationError && !descriptionTextArea.validationError
}
title: qsTr("New channel")
//% "New channel"
title: qsTrId("new-channel")
ScrollView {
property ScrollBar vScrollBar: ScrollBar.vertical
@ -57,16 +61,21 @@ ModalPopup {
Input {
id: nameInput
label: qsTr("Channel name")
placeholderText: qsTr("A cool name")
//% "Channel name"
label: qsTrId("channel-name")
//% "A cool name"
placeholderText: qsTrId("a-cool-name")
validationError: popup.nameValidationError
}
StyledTextArea {
id: descriptionTextArea
label: qsTr("Channel description")
placeholderText: qsTr("What your channel is about")
validationError: descriptionTextArea.text.length > maxDescChars ? qsTr("The description cannot exceed %1 characters").arg(maxDescChars) : ""
//% "Channel description"
label: qsTrId("channel-description")
//% "What your channel is about"
placeholderText: qsTrId("what-your-channel-is-about")
//% "The description cannot exceed %1 characters"
validationError: descriptionTextArea.text.length > maxDescChars ? qsTrId("the-description-cannot-exceed--1-characters").arg(maxDescChars) : ""
anchors.top: nameInput.bottom
anchors.topMargin: Style.current.bigPadding
customHeight: 88
@ -96,7 +105,8 @@ ModalPopup {
anchors.topMargin: Style.current.smallPadding * 2
StyledText {
text: qsTr("Private channel")
//% "Private channel"
text: qsTrId("private-channel")
anchors.verticalCenter: parent.verticalCenter
}
@ -112,13 +122,15 @@ ModalPopup {
wrapMode: Text.WordWrap
anchors.topMargin: Style.current.smallPadding * 2
width: parent.width
text: qsTr("By making a channel private, only members with selected permission will be able to access it")
//% "By making a channel private, only members with selected permission will be able to access it"
text: qsTrId("by-making-a-channel-private--only-members-with-selected-permission-will-be-able-to-access-it")
}
}
}
footer: StatusButton {
text: qsTr("Create")
//% "Create"
text: qsTrId("create")
anchors.right: parent.right
onClicked: {
if (!validate()) {
@ -140,7 +152,8 @@ ModalPopup {
MessageDialog {
id: creatingError
title: qsTr("Error creating the community")
//% "Error creating the community"
title: qsTrId("error-creating-the-community")
icon: StandardIcon.Critical
standardButtons: StandardButton.Ok
}

View File

@ -36,29 +36,37 @@ ModalPopup {
selectedImageValidationError = ""
if (nameInput.text === "") {
nameValidationError = qsTr("You need to enter a name")
//% "You need to enter a name"
nameValidationError = qsTrId("you-need-to-enter-a-name")
} else if (!(/^[a-z0-9\-\ ]+$/i.test(nameInput.text))) {
nameValidationError = qsTr("Please restrict your name to letters, numbers, dashes and spaces")
//% "Please restrict your name to letters, numbers, dashes and spaces"
nameValidationError = qsTrId("please-restrict-your-name-to-letters--numbers--dashes-and-spaces")
} else if (nameInput.text.length > 100) {
nameValidationError = qsTr("Your name needs to be 100 characters or shorter")
//% "Your name needs to be 100 characters or shorter"
nameValidationError = qsTrId("your-name-needs-to-be-100-characters-or-shorter")
}
if (selectedImage === "") {
selectedImageValidationError = qsTr("You need to select an image")
//% "You need to select an image"
selectedImageValidationError = qsTrId("you-need-to-select-an-image")
}
if (colorPicker.text === "") {
colorValidationError = qsTr("You need to enter a color")
//% "You need to enter a color"
colorValidationError = qsTrId("you-need-to-enter-a-color")
} else if (!Utils.isHexColor(colorPicker.text)) {
colorValidationError = qsTr("This field needs to be an hexadecimal color (eg: #4360DF)")
//% "This field needs to be an hexadecimal color (eg: #4360DF)"
colorValidationError = qsTrId("this-field-needs-to-be-an-hexadecimal-color--eg---4360df-")
}
return !nameValidationError && !descriptionTextArea.validationError && !colorValidationError
}
title: isEdit ?
qsTr("Edit community") :
qsTr("New community")
//% "Edit community"
qsTrId("edit-community") :
//% "New community"
qsTrId("new-community")
ScrollView {
property ScrollBar vScrollBar: ScrollBar.vertical
@ -83,16 +91,21 @@ ModalPopup {
Input {
id: nameInput
label: qsTr("Name your community")
placeholderText: qsTr("A catchy name")
//% "Name your community"
label: qsTrId("name-your-community")
//% "A catchy name"
placeholderText: qsTrId("name-your-community-placeholder")
validationError: popup.nameValidationError
}
StyledTextArea {
id: descriptionTextArea
label: qsTr("Give it a short description")
placeholderText: qsTr("What your community is about")
validationError: descriptionTextArea.text.length > maxDescChars ? qsTr("The description cannot exceed 140 characters") : ""
//% "Give it a short description"
label: qsTrId("give-a-short-description-community")
//% "What your community is about"
placeholderText: qsTrId("what-your-community-is-about")
//% "The description cannot exceed 140 characters"
validationError: descriptionTextArea.text.length > maxDescChars ? qsTrId("the-description-cannot-exceed-140-characters") : ""
anchors.top: nameInput.bottom
anchors.topMargin: Style.current.bigPadding
customHeight: 88
@ -112,7 +125,8 @@ ModalPopup {
StyledText {
id: thumbnailText
text: qsTr("Thumbnail image")
//% "Thumbnail image"
text: qsTrId("thumbnail-image")
anchors.top: descriptionTextArea.bottom
anchors.topMargin: Style.current.smallPadding
font.pixelSize: 15
@ -181,7 +195,8 @@ ModalPopup {
StyledText {
id: uploadText
text: qsTr("Upload")
//% "Upload"
text: qsTrId("upload")
anchors.top: imageImg.bottom
anchors.topMargin: 5
font.pixelSize: 15
@ -216,8 +231,10 @@ ModalPopup {
Input {
id: colorPicker
label: qsTr("Community color")
placeholderText: qsTr("Pick a color")
//% "Community color"
label: qsTrId("community-color")
//% "Pick a color"
placeholderText: qsTrId("pick-a-color")
anchors.top: addImageButton.bottom
anchors.topMargin: Style.current.smallPadding
validationError: popup.colorValidationError
@ -237,7 +254,8 @@ ModalPopup {
ColorDialog {
id: colorDialog
title: qsTr("Please choose a color")
//% "Please choose a color"
title: qsTrId("please-choose-a-color")
onAccepted: {
colorPicker.text = colorDialog.color
}
@ -260,7 +278,8 @@ ModalPopup {
anchors.topMargin: isEdit ? 0 : Style.current.smallPadding * 2
StyledText {
text: qsTr("Private community")
//% "Private community"
text: qsTrId("private-community")
anchors.verticalCenter: parent.verticalCenter
}
@ -279,16 +298,20 @@ ModalPopup {
anchors.topMargin: isEdit ? 0 : Style.current.smallPadding * 2
width: parent.width
text: privateSwitch.checked ?
qsTr("Only members with an invite link will be able to join your community. Private communities are not listed inside Status") :
qsTr("Your community will be public for anyone to join. Public communities are listed inside Status for easy discovery")
//% "Only members with an invite link will be able to join your community. Private communities are not listed inside Status"
qsTrId("only-members-with-an-invite-link-will-be-able-to-join-your-community--private-communities-are-not-listed-inside-status") :
//% "Your community will be public for anyone to join. Public communities are listed inside Status for easy discovery"
qsTrId("your-community-will-be-public-for-anyone-to-join--public-communities-are-listed-inside-status-for-easy-discovery")
}
}
}
footer: StatusButton {
text: isEdit ?
qsTr("Edit") :
qsTr("Create")
//% "Edit"
qsTrId("edit") :
//% "Create"
qsTrId("create")
anchors.right: parent.right
onClicked: {
if (!validate()) {
@ -317,7 +340,8 @@ ModalPopup {
MessageDialog {
id: creatingError
title: qsTr("Error creating the community")
//% "Error creating the community"
title: qsTrId("error-creating-the-community")
icon: StandardIcon.Critical
standardButtons: StandardButton.Ok
}

View File

@ -20,25 +20,30 @@ ModalPopup {
keyValidationError = ""
if (keyInput.text === "") {
keyValidationError = qsTr("You need to enter a key")
//% "You need to enter a key"
keyValidationError = qsTrId("you-need-to-enter-a-key")
}
return !keyValidationError
}
title: qsTr("Import a community")
//% "Import a community"
title: qsTrId("import-community")
Input {
id: keyInput
label: qsTr("Community key")
placeholderText: qsTr("0x...")
//% "Community key"
label: qsTrId("community-key")
//% "0x..."
placeholderText: qsTrId("0x---")
validationError: popup.keyValidationError
pasteFromClipboard: true
}
footer: StatusButton {
text: qsTr("Import")
//% "Import"
text: qsTrId("import")
anchors.right: parent.right
onClicked: {
if (!validate()) {
@ -62,7 +67,8 @@ ModalPopup {
MessageDialog {
id: creatingError
title: qsTr("Error importing the community")
//% "Error importing the community"
title: qsTrId("error-importing-the-community")
icon: StandardIcon.Critical
standardButtons: StandardButton.Ok
}

View File

@ -24,7 +24,8 @@ ModalPopup {
contactList.visible = !noContactsRect.visible;
}
title: qsTr("Invite friends")
//% "Invite friends"
title: qsTrId("invite-friends")
Item {
anchors.fill: parent
@ -33,7 +34,8 @@ ModalPopup {
TextWithLabel {
id: shareCommunity
anchors.top: parent.top
label: qsTr("Share community")
//% "Share community"
label: qsTrId("share-community")
text: "https://join.status.im/u/TODO"
textToCopy: text
}
@ -49,7 +51,8 @@ ModalPopup {
}
StyledText {
text: qsTr("Contacts")
//% "Contacts"
text: qsTrId("contacts")
anchors.left: parent.left
anchors.top: sep.bottom
anchors.topMargin: Style.current.smallPadding
@ -107,7 +110,8 @@ ModalPopup {
id: inviteBtn
anchors.bottom: parent.bottom
anchors.right: parent.right
text: qsTr("Invite")
//% "Invite"
text: qsTrId("invite-button")
onClicked : {
console.log('invite')
popup.pubKeys.forEach(function (pubKey) {

View File

@ -47,7 +47,8 @@ StatusRoundButton {
}
Action {
enabled: appSettings.communitiesEnabled
text: qsTr("Communities")
//% "Communities"
text: qsTrId("communities")
icon.source: "../../../img/communities.svg"
icon.width: 20
icon.height: 20

View File

@ -71,7 +71,8 @@ Item {
color: Style.current.darkGrey
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("No search results")
//% "No search results"
text: qsTrId("no-search-results")
}
}

View File

@ -9,7 +9,8 @@ ModalPopup {
id: popup
title: qsTr("Choose browser")
//% "Choose browser"
title: qsTrId("choose-browser")
width: 440
height: 425
@ -25,7 +26,8 @@ ModalPopup {
}
StatusButton {
text: qsTr("Open in Status")
//% "Open in Status"
text: qsTrId("browsing-open-in-status")
anchors.horizontalCenter: parent.horizontalCenter
onClicked: {
appSettings.showBrowserSelector = !rememberChoiceCheckBox.checked
@ -36,7 +38,8 @@ ModalPopup {
}
StatusButton {
text: qsTr("Open in my default browser")
//% "Open in my default browser"
text: qsTrId("open-in-my-default-browser")
type: "secondary"
anchors.horizontalCenter: parent.horizontalCenter
onClicked: {
@ -48,7 +51,8 @@ ModalPopup {
StatusCheckBox {
id: rememberChoiceCheckBox
text: qsTr("Remember my choice. To override it, go to settings.")
//% "Remember my choice. To override it, go to settings."
text: qsTrId("remember-my-choice--to-override-it--go-to-settings-")
width: parent.width
}
}

View File

@ -45,9 +45,11 @@ ModalPopup {
function validate() {
if (groupName.text === "") {
channelNameValidationError = qsTr("You need to enter a channel name")
//% "You need to enter a channel name"
channelNameValidationError = qsTrId("you-need-to-enter-a-channel-name")
} else if (!Utils.isValidChannelName(groupName.text)) {
channelNameValidationError = qsTr("The channel name can only contain lowercase letters, numbers and dashes")
//% "The channel name can only contain lowercase letters, numbers and dashes"
channelNameValidationError = qsTrId("the-channel-name-can-only-contain-lowercase-letters--numbers-and-dashes")
} else {
channelNameValidationError = ""
}

View File

@ -232,7 +232,8 @@ ModalPopup {
visible: model.pubKey === profileModel.profile.pubKey
anchors.left: parent.right
anchors.leftMargin: 5
text: qsTr("(You)")
//% "(You)"
text: qsTrId("-you-")
color: Style.current.secondaryText
font.pixelSize: parent.font.pixelSize
}

View File

@ -125,7 +125,7 @@ PopupMenu {
Action {
id: viewProfileAction
//% "View profile"
//% "View Profile"
text: qsTrId("view-profile")
onTriggered: {
openProfilePopup(userName, fromAuthor, identicon, "", nickname);

View File

@ -6,7 +6,8 @@ import "../../../../shared/status"
Rectangle {
id: noContactsRect
width: 260
property string 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."
property string text: qsTrId("you-don-t-have-any-contacts-yet--invite-your-friends-to-start-chatting-")
StyledText {
id: noContacts
text: noContactsRect.text

View File

@ -14,11 +14,13 @@ ModalPopup {
function validate() {
if (!Utils.isChatKey(chatKey.text) && !Utils.isValidETHNamePrefix(chatKey.text)) {
validationError = qsTr("Enter a valid chat key or ENS username");
//% "Enter a valid chat key or ENS username"
validationError = qsTrId("enter-a-valid-chat-key-or-ens-username");
pubKey = ""
ensUsername.text = "";
} else if (profileModel.profile.pubKey === chatKey.text) {
validationError = qsTr("Can't chat with yourself");
//% "Can't chat with yourself"
validationError = qsTrId("can-t-chat-with-yourself");
} else {
validationError = ""
}
@ -106,7 +108,8 @@ ModalPopup {
searchResults.showProfileNotFoundMessage = true
} else {
if (profileModel.profile.pubKey === resolvedPubKey) {
popup.validationError = qsTr("Can't chat with yourself");
//% "Can't chat with yourself"
popup.validationError = qsTrId("can-t-chat-with-yourself");
} else {
searchResults.username = chatsModel.formatENSUsername(chatKey.text)
let userAlias = utilsModel.generateAlias(resolvedPubKey)

View File

@ -23,7 +23,8 @@ Item {
StyledText {
id: nonContactsLabel
text: qsTr("Non contacts")
//% "Non contacts"
text: qsTrId("non-contacts")
anchors.top: parent.top
color: Style.current.secondaryText
font.pixelSize: 15
@ -138,7 +139,8 @@ Item {
font.pixelSize: 15
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
text: qsTr("No profile found")
//% "No profile found"
text: qsTrId("no-profile-found")
}
}

View File

@ -185,7 +185,8 @@ ModalPopup {
TextWithLabel {
id: valueShareURL
label: qsTr("Share Profile URL")
//% "Share Profile URL"
label: qsTrId("share-profile-url")
text: "https://join.status.im/u/" + fromAuthor.substr(
0, 4) + "..." + fromAuthor.substr(fromAuthor.length - 5)
anchors.top: separator.top
@ -279,8 +280,10 @@ ModalPopup {
borderColor: Style.current.border
hoveredBorderColor: Style.current.transparent
text: isBlocked ?
qsTr("Unblock User") :
qsTr("Block User")
//% "Unblock User"
qsTrId("unblock-user") :
//% "Block User"
qsTrId("block-user")
onClicked: {
if (isBlocked) {
unblockContactConfirmationDialog.contactName = userName;
@ -329,7 +332,7 @@ ModalPopup {
id: sendMessageBtn
anchors.right: parent.right
anchors.bottom: parent.bottom
//% "Send Message"
//% "Send message"
text: qsTrId("send-message")
visible: !isBlocked && chatsModel.activeChannel.id !== popup.fromAuthor
width: visible ? implicitWidth : 0

View File

@ -12,9 +12,11 @@ ModalPopup {
function validate() {
if (channelName.text === "") {
channelNameValidationError = qsTr("You need to enter a channel name")
//% "You need to enter a channel name"
channelNameValidationError = qsTrId("you-need-to-enter-a-channel-name")
} else if (!Utils.isValidChannelName(channelName.text)) {
channelNameValidationError = qsTr("The channel name can only contain lowercase letters, numbers and dashes")
//% "The channel name can only contain lowercase letters, numbers and dashes"
channelNameValidationError = qsTrId("the-channel-name-can-only-contain-lowercase-letters--numbers-and-dashes")
} else {
channelNameValidationError = ""
}

View File

@ -21,17 +21,21 @@ Item {
anchors.rightMargin: contentMargin
StatusSectionDescItem {
name: qsTr("App version")
description: qsTr("Version: %1").arg("beta.5")
//% "App version"
name: qsTrId("version")
//% "Version: %1"
description: qsTrId("version---1").arg("beta.5")
}
StatusSectionDescItem {
name: qsTr("Node version ")
//% "Node version "
name: qsTrId("node-version-")
description: profileModel.nodeVersion()
}
StyledText {
text: qsTr("Check for updates")
//% "Check for updates"
text: qsTrId("check-for-updates")
font.pixelSize: 15
color: Style.current.blue
@ -52,7 +56,8 @@ Item {
}
StyledText {
text: qsTr("Privacy Policy")
//% "Privacy Policy"
text: qsTrId("privacy-policy")
font.pixelSize: 15
color: Style.current.blue

View File

@ -21,13 +21,15 @@ Item {
anchors.rightMargin: contentMargin
StatusSettingsLineButton {
text: qsTr("Network")
//% "Network"
text: qsTrId("network")
currentValue: utilsModel.getNetworkName()
onClicked: networksModal.open()
}
StatusSettingsLineButton {
text: qsTr("Fleet")
//% "Fleet"
text: qsTrId("fleet")
currentValue: profileModel.fleets.fleet
onClicked: fleetModal.open()
}
@ -47,13 +49,15 @@ Item {
}
StatusSectionHeadline {
text: qsTr("Experimental features")
//% "Experimental features"
text: qsTrId("experimental-features")
topPadding: Style.current.bigPadding
bottomPadding: Style.current.padding
}
StatusSettingsLineButton {
text: qsTr("Wallet")
//% "Wallet"
text: qsTrId("wallet")
isSwitch: true
switchChecked: appSettings.walletEnabled
onClicked: function (checked) {
@ -62,7 +66,8 @@ Item {
}
StatusSettingsLineButton {
text: qsTr("Dapp Browser")
//% "Dapp Browser"
text: qsTrId("dapp-browser")
isSwitch: true
switchChecked: appSettings.browserEnabled
onClicked: function (checked) {
@ -71,7 +76,8 @@ Item {
}
StatusSettingsLineButton {
text: qsTr("Communities")
//% "Communities"
text: qsTrId("communities")
isSwitch: true
switchChecked: appSettings.communitiesEnabled
onClicked: function (checked) {
@ -80,7 +86,8 @@ Item {
}
StatusSettingsLineButton {
text: qsTr("Node Management")
//% "Node Management"
text: qsTrId("node-management")
isSwitch: true
switchChecked: appSettings.nodeManagementEnabled
onClicked: function (checked) {

View File

@ -53,7 +53,8 @@ ScrollView {
StatusSectionHeadline {
id: sectionHeadlinePreview
text: qsTr("Preview")
//% "Preview"
text: qsTrId("preview")
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
@ -80,7 +81,8 @@ ScrollView {
anchors.leftMargin: Style.current.smallPadding
userName: "@vitalik"
identicon: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAb0lEQVR4Ae3UQQqAIBRF0Wj9ba9Bq6l5JBQqfn/ngDMH3YS3AAB/tO3H+XRG3b9bR/+gVoREI2RapVXpfd5+X5oXERKNkHS+rk3tOpWkeREh0QiZVu91ql2zNC8iJBoh0yqtSqt1slpCghICANDPBc0ESPh0bHkHAAAAAElFTkSuQmCC"
message: qsTr("Blockchains will drop search costs, causing a kind of decomposition that allows you to have markets of entities that are horizontally segregated and vertically segregated.")
//% "Blockchains will drop search costs, causing a kind of decomposition that allows you to have markets of entities that are horizontally segregated and vertically segregated."
message: qsTrId("blockchains-will-drop-search-costs--causing-a-kind-of-decomposition-that-allows-you-to-have-markets-of-entities-that-are-horizontally-segregated-and-vertically-segregated-")
contentType: Constants.messageType
placeholderMessage: true
}
@ -88,7 +90,8 @@ ScrollView {
StatusSectionHeadline {
id: sectionHeadlineFontSize
text: qsTr("Size")
//% "Size"
text: qsTrId("size")
anchors.top: preview.bottom
anchors.topMargin: Style.current.padding
anchors.left: parent.left
@ -101,7 +104,8 @@ ScrollView {
anchors.topMargin: Style.current.padding
anchors.left: parent.left
font.pixelSize: 15
text: qsTr("Change font size")
//% "Change font size"
text: qsTrId("change-font-size")
}
StatusSlider {
@ -129,41 +133,47 @@ ScrollView {
StyledText {
font.pixelSize: 15
text: qsTr("XS")
//% "XS"
text: qsTrId("xs")
Layout.preferredWidth: fontSizeSlider.width/6
}
StyledText {
font.pixelSize: 15
text: qsTr("S")
//% "S"
text: qsTrId("s")
Layout.preferredWidth: fontSizeSlider.width/6
Layout.leftMargin: 2
}
StyledText {
font.pixelSize: 15
text: qsTr("M")
//% "M"
text: qsTrId("m")
Layout.preferredWidth: fontSizeSlider.width/6
Layout.leftMargin: 2
}
StyledText {
font.pixelSize: 15
text: qsTr("L")
//% "L"
text: qsTrId("l")
Layout.preferredWidth: fontSizeSlider.width/6
Layout.leftMargin: 2
}
StyledText {
font.pixelSize: 15
text: qsTr("XL")
//% "XL"
text: qsTrId("xl")
Layout.preferredWidth: fontSizeSlider.width/6
Layout.leftMargin: 0
}
StyledText {
font.pixelSize: 15
text: qsTr("XXL")
//% "XXL"
text: qsTrId("xxl")
Layout.alignment: Qt.AlignRight
Layout.leftMargin: -Style.current.smallPadding
}
@ -171,7 +181,8 @@ ScrollView {
StatusSectionHeadline {
id: sectionHeadlineChatMode
text: qsTr("Chat mode")
//% "Chat mode"
text: qsTrId("chat-mode")
anchors.top: fontSizeSliderLegend.bottom
anchors.topMargin: Style.current.padding*2
anchors.left: parent.left
@ -191,7 +202,8 @@ ScrollView {
padding: Style.current.padding
image.source: "../../../img/appearance-normal-light.svg"
image.height: 186
control.text: qsTr("Normal")
//% "Normal"
control.text: qsTrId("normal")
control.checked: !appSettings.useCompactMode
onRadioCheckedChanged: {
if (checked) {
@ -204,7 +216,8 @@ ScrollView {
padding: Style.current.padding
image.source: "../../../img/appearance-compact-light.svg"
image.height: 186
control.text: qsTr("Compact")
//% "Compact"
control.text: qsTrId("compact")
control.checked: appSettings.useCompactMode
onRadioCheckedChanged: {
if (checked) {
@ -216,7 +229,8 @@ ScrollView {
StatusSectionHeadline {
id: sectionHeadlineAppearance
text: qsTr("Appearance")
//% "Appearance"
text: qsTrId("appearance")
anchors.top: chatModeSection.bottom
anchors.topMargin: Style.current.padding*3
anchors.left: parent.left
@ -238,7 +252,8 @@ ScrollView {
height: 184
image.source: "../../../img/appearance-normal-light.svg"
image.height: 128
control.text: qsTr("Light")
//% "Light"
control.text: qsTrId("light")
control.checked: profileModel.profile.appearance === AppearanceContainer.Theme.Light
onRadioCheckedChanged: {
if (checked) {
@ -253,7 +268,8 @@ ScrollView {
height: 184
image.source: "../../../img/appearance-normal-dark.svg"
image.height: 128
control.text: qsTr("Dark")
//% "Dark"
control.text: qsTrId("dark")
control.checked: profileModel.profile.appearance === AppearanceContainer.Theme.Dark
onRadioCheckedChanged: {
if (checked) {
@ -268,7 +284,8 @@ ScrollView {
height: 184
image.source: "../../../img/appearance-normal-system.png"
image.height: 128
control.text: qsTr("System")
//% "System"
control.text: qsTrId("system")
control.checked: profileModel.profile.appearance === AppearanceContainer.Theme.System
onRadioCheckedChanged: {
if (checked) {

View File

@ -24,7 +24,8 @@ ModalPopup {
height: 50
StyledText {
id: lblTitle
text: qsTr("Back up seed phrase")
//% "Back up seed phrase"
text: qsTrId("back-up-seed-phrase")
font.pixelSize: 17
font.bold: true
anchors.left: parent.left
@ -32,7 +33,8 @@ ModalPopup {
StyledText {
anchors.top: lblTitle.bottom
anchors.topMargin: Style.current.smallPadding
text: qsTr("Step %1 of 3").arg(seedWord2Idx > -1 ? 3 : (seedWord1Idx > -1 ? 2 : 1))
//% "Step %1 of 3"
text: qsTrId("step--1-of-3").arg(seedWord2Idx > -1 ? 3 : (seedWord1Idx > -1 ? 2 : 1))
font.pixelSize: 14
anchors.left: parent.left
}
@ -121,7 +123,8 @@ ModalPopup {
anchors.right: parent.right
StyledText {
id: lblLoseSeed
text: qsTr("If you lose your seed phrase you lose your data and funds")
//% "If you lose your seed phrase you lose your data and funds"
text: qsTrId("your-data-belongs-to-you")
wrapMode: Text.WordWrap
font.pixelSize: 17
font.bold: true
@ -132,7 +135,8 @@ ModalPopup {
anchors.top: lblLoseSeed.bottom
anchors.topMargin: Style.current.smallPadding
wrapMode: Text.WordWrap
text: qsTr("If you lose access, for example by losing your phone, you can only access your keys with your seed phrase. No one, but you has your seed phrase. Write it down. Keep it safe")
//% "If you lose access, for example by losing your phone, you can only access your keys with your seed phrase. No one, but you has your seed phrase. Write it down. Keep it safe"
text: qsTrId("your-data-belongs-to-you-description")
anchors.left: parent.left
anchors.right: parent.right
}
@ -144,10 +148,12 @@ ModalPopup {
anchors.right: parent.right
StyledText {
id: txtChk
text: qsTr("Check your seed phrase")
//% "Check your seed phrase"
text: qsTrId("check-your-recovery-phrase")
}
StyledText {
text: qsTr("Word #%1").arg((seedWord2Idx > -1 ? seedWord2Idx : seedWord1Idx) + 1)
//% "Word #%1"
text: qsTrId("word---1").arg((seedWord2Idx > -1 ? seedWord2Idx : seedWord1Idx) + 1)
anchors.left: txtChk.right
anchors.leftMargin: 5
color: Style.current.secondaryText
@ -159,7 +165,8 @@ ModalPopup {
anchors.topMargin: Style.current.padding
anchors.left: txtChk.left
anchors.right: parent.right
placeholderText: qsTr("Enter word")
//% "Enter word"
placeholderText: qsTrId("enter-word")
text: ""
validationError: popup.validationError
}
@ -170,14 +177,17 @@ ModalPopup {
wrapMode: Text.WordWrap
anchors.left: parent.left
anchors.right: parent.right
text: qsTr("In order to check if you have backed up your seed phrase correctly, enter the word #%1 above").arg((seedWord2Idx > -1 ? seedWord2Idx : seedWord1Idx) + 1)
//% "In order to check if you have backed up your seed phrase correctly, enter the word #%1 above"
text: qsTrId("in-order-to-check-if-you-have-backed-up-your-seed-phrase-correctly--enter-the-word---1-above").arg((seedWord2Idx > -1 ? seedWord2Idx : seedWord1Idx) + 1)
color: Style.current.secondaryText
}
ConfirmationDialog {
id: removeSeedPhraseConfirm
title: qsTr("Are you sure?")
confirmationText: qsTr("You will not be able to see the whole seed phrase again")
//% "Are you sure?"
title: qsTrId("are-you-sure?")
//% "You will not be able to see the whole seed phrase again"
confirmationText: qsTrId("are-you-sure-description")
onConfirmButtonClicked: {
profileModel.mnemonic.remove()
popup.close();
@ -214,8 +224,10 @@ ModalPopup {
footer: StatusButton {
text: showWarning ?
qsTr("Okay, continue") :
qsTrId("Next")
//% "Okay, continue"
qsTrId("ok-continue") :
//% "Next"
qsTrId("next")
anchors.right: parent.right
anchors.rightMargin: Style.current.smallPadding
anchors.bottom: parent.bottom
@ -228,7 +240,8 @@ ModalPopup {
} else {
if(seedWord2Idx == -1){
if(profileModel.mnemonic.getWord(seedWord1Idx) !== txtFieldWord.text){
validationError = qsTr("Wrong word");
//% "Wrong word"
validationError = qsTrId("wrong-word");
return;
}
@ -240,7 +253,8 @@ ModalPopup {
} while(seedWord2Idx == seedWord1Idx);
} else {
if(profileModel.mnemonic.getWord(seedWord2Idx) !== txtFieldWord.text){
validationError = qsTr("Wrong word");
//% "Wrong word"
validationError = qsTrId("wrong-word");
return;
}

View File

@ -32,18 +32,22 @@ Item {
width: parent.width
StatusSectionHeadline {
text: qsTr("General")
//% "General"
text: qsTrId("general")
bottomPadding: Style.current.bigPadding
}
StatusSettingsLineButton {
text: qsTr("Homepage")
currentValue: appSettings.browserHomepage === "" ? qsTr("Default") : appSettings.browserHomepage
//% "Homepage"
text: qsTrId("homepage")
//% "Default"
currentValue: appSettings.browserHomepage === "" ? qsTrId("default") : appSettings.browserHomepage
onClicked: homePagePopup.createObject(root).open()
}
StatusSettingsLineButton {
text: qsTr("Show favorites bar")
//% "Show favorites bar"
text: qsTrId("show-favorites-bar")
isSwitch: true
switchChecked: appSettings.showFavoritesBar
onClicked: function (checked) {
@ -52,14 +56,16 @@ Item {
}
StatusSettingsLineButton {
text: qsTr("Search engine used in the address bar")
//% "Search engine used in the address bar"
text: qsTrId("search-engine-used-in-the-address-bar")
currentValue: {
switch (appSettings.browserSearchEngine) {
case Constants.browserSearchEngineGoogle: return "Google"
case Constants.browserSearchEngineYahoo: return "Yahoo!"
case Constants.browserSearchEngineDuckDuckGo: return "DuckDuckGo"
case Constants.browserSearchEngineNone:
default: return qsTr("None")
//% "None"
default: return qsTrId("none")
}
}
onClicked: searchEngineModal.createObject(root).open()
@ -67,20 +73,23 @@ Item {
StatusSettingsLineButton {
id: ethereumExplorerBtn
text: qsTr("Ethereum explorer used in the address bar")
//% "Ethereum explorer used in the address bar"
text: qsTrId("ethereum-explorer-used-in-the-address-bar")
currentValue: {
switch (appSettings.browserEthereumExplorer) {
case Constants.browserEthereumExplorerEtherscan: return "etherscan.io"
case Constants.browserEthereumExplorerEthplorer: return "ethplorer.io"
case Constants.browserEthereumExplorerBlockchair: return "blockchair.com"
case Constants.browserSearchEngineNone:
default: return qsTr("None")
//% "None"
default: return qsTrId("none")
}
}
onClicked: ethereumExplorerModal.createObject(root).open()
}
StyledText {
text: qsTr("Open an ethereum explorer after a transaction hash or an address is entered")
//% "Open an ethereum explorer after a transaction hash or an address is entered"
text: qsTrId("open-an-ethereum-explorer-after-a-transaction-hash-or-an-address-is-entered")
font.pixelSize: 15
color: Style.current.secondaryText
width: parent.width - 150
@ -98,13 +107,15 @@ Item {
}
StatusSectionHeadline {
text: qsTr("Privacy")
//% "Privacy"
text: qsTrId("privacy")
topPadding: Style.current.bigPadding
bottomPadding: Style.current.padding
}
StatusSettingsLineButton {
text: qsTr("Set DApp access permissions")
//% "Set DApp access permissions"
text: qsTrId("set-dapp-access-permissions")
isSwitch: false
onClicked: {
dappListPopup.createObject(root).open()

View File

@ -7,7 +7,8 @@ import "../../../../../shared/status"
ModalPopup {
id: popup
title: qsTr("Ethereum explorer")
//% "Ethereum explorer"
title: qsTrId("ethereum-explorer")
onClosed: {
destroy()
@ -22,7 +23,8 @@ ModalPopup {
}
StatusRadioButton {
text: qsTr("None")
//% "None"
text: qsTrId("none")
ButtonGroup.group: searchEnginGroup
checked: appSettings.browserEthereumExplorer === Constants.browserEthereumExplorerNone
onCheckedChanged: {

View File

@ -7,7 +7,8 @@ import "../../../../../shared/status"
ModalPopup {
id: popup
title: qsTr("Homepage")
//% "Homepage"
title: qsTrId("homepage")
onClosed: {
destroy()
@ -22,7 +23,8 @@ ModalPopup {
}
StatusRadioButton {
text: qsTr("Default")
//% "Default"
text: qsTrId("default")
ButtonGroup.group: homepageGroup
checked: appSettings.browserHomepage === ""
onCheckedChanged: {
@ -34,7 +36,8 @@ ModalPopup {
}
StatusRadioButton {
text: qsTr("Custom...")
//% "Custom..."
text: qsTrId("custom---")
ButtonGroup.group: homepageGroup
checked: appSettings.browserHomepage !== "" || customUrl.visible
onClicked: {
@ -45,7 +48,8 @@ ModalPopup {
Input {
id: customUrl
visible: appSettings.browserHomepage !== ""
placeholderText: qsTr("Paste URL")
//% "Paste URL"
placeholderText: qsTrId("paste-url")
text: appSettings.browserHomepage
pasteFromClipboard: true
textField.onTextChanged: {

View File

@ -7,7 +7,8 @@ import "../../../../../shared/status"
ModalPopup {
id: popup
title: qsTr("Search engine")
//% "Search engine"
title: qsTrId("search-engine")
onClosed: {
destroy()
@ -22,7 +23,8 @@ ModalPopup {
}
StatusRadioButton {
text: qsTr("None")
//% "None"
text: qsTrId("none")
ButtonGroup.group: searchEnginGroup
checked: appSettings.browserSearchEngine === Constants.browserSearchEngineNone
onCheckedChanged: {

View File

@ -10,7 +10,8 @@ ModalPopup {
id: popup
title: qsTr("Profile picture")
//% "Profile picture"
title: qsTrId("profile-picture")
onClosed: {
destroy()
@ -57,7 +58,8 @@ ModalPopup {
id: cropImageModal
width: image.width + 50
height: image.height + 170
title: qsTr("Crop your image (optional)")
//% "Crop your image (optional)"
title: qsTrId("crop-your-image--optional-")
Image {
id: image
@ -77,7 +79,8 @@ ModalPopup {
footer: StatusButton {
id: doUploadBtn
text: qsTr("Finish")
//% "Finish"
text: qsTrId("finish")
anchors.right: parent.right
anchors.bottom: parent.bottom
onClicked: {
@ -109,7 +112,8 @@ ModalPopup {
type: "secondary"
flat: true
color: Style.current.danger
text: qsTr("Remove")
//% "Remove"
text: qsTrId("remove")
anchors.right: uploadBtn.left
anchors.rightMargin: Style.current.padding
anchors.bottom: parent.bottom
@ -120,7 +124,8 @@ ModalPopup {
StatusButton {
id: uploadBtn
text: qsTr("Upload")
//% "Upload"
text: qsTrId("upload")
anchors.right: parent.right
anchors.bottom: parent.bottom
onClicked: {

View File

@ -7,7 +7,8 @@ import "../../../../shared/status"
ModalPopup {
id: popup
title: qsTr("Chat link previews")
//% "Chat link previews"
title: qsTrId("chat-link-previews")
onClosed: {
destroy()
@ -31,11 +32,13 @@ ModalPopup {
StatusSectionHeadline {
id: labelWebsites
text: qsTr("Websites")
//% "Websites"
text: qsTrId("websites")
width: parent.width
StatusButton {
text: qsTr("Enable all")
//% "Enable all"
text: qsTrId("enable-all")
type: "secondary"
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
@ -152,7 +155,8 @@ ModalPopup {
}
StyledText {
text: qsTr("Previewing links from these websites may share your metadata with their owners.")
//% "Previewing links from these websites may share your metadata with their owners."
text: qsTrId("previewing-links-from-these-websites-may-share-your-metadata-with-their-owners-")
width: parent.width
wrapMode: Text.WordWrap
font.weight: Font.Thin

View File

@ -112,6 +112,7 @@ Rectangle {
icon.source: "../../../../img/profileActive.svg"
icon.width: menuButton.iconSize
icon.height: menuButton.iconSize
//% "View Profile"
text: qsTrId("view-profile")
onTriggered: profileClick(true, name, address, identicon, "", localNickname)
enabled: true
@ -120,6 +121,7 @@ Rectangle {
icon.source: "../../../../img/message.svg"
icon.width: menuButton.iconSize
icon.height: menuButton.iconSize
//% "Send message"
text: qsTrId("send-message")
onTriggered: {
changeAppSection(Constants.chat)
@ -131,6 +133,7 @@ Rectangle {
icon.source: "../../../../img/block-icon.svg"
icon.width: menuButton.iconSize
icon.height: menuButton.iconSize
//% "Block User"
text: qsTrId("block-user")
enabled: !container.isBlocked
onTriggered: {

View File

@ -246,7 +246,8 @@ Item {
NoFriendsRectangle {
id: element
visible: profileModel.contacts.addedContacts.rowCount() === 0
text: qsTr("You dont have any contacts yet")
//% "You dont have any contacts yet"
text: qsTrId("you-don-t-have-any-contacts-yet")
width: parent.width
anchors.verticalCenter: parent.verticalCenter
}

View File

@ -179,8 +179,9 @@ Item {
text: {
let deviceId = model.installationId.split("-")[0].substr(0, 5)
//% "No info"
//% "you"
let labelText = `${model.name || qsTrId("pairing-no-info")} (${model.isUserDevice ? qsTrId("you") + ", ": ""}${deviceId})`;
let labelText = `${model.name || qsTrId("pairing-no-info")} ` +
//% "you"
`(${model.isUserDevice ? qsTrId("you") + ", ": ""}${deviceId})`;
return labelText;
}
elide: Text.ElideRight

View File

@ -200,7 +200,7 @@ Item {
StyledText {
id: chatSettingsLabel
visible: profileModel.ens.rowCount() > 0 && profileModel.ens.pendingLen() != profileModel.ens.rowCount()
//% "Chat Settings"
//% "Chat settings"
text: qsTrId("chat-settings")
anchors.left: parent.left
anchors.top: ensList.bottom

View File

@ -155,7 +155,8 @@ ModalPopup {
StatusButton {
id: btnNext
anchors.right: parent.right
text: qsTr("Next")
//% "Next"
text: qsTrId("next")
enabled: stack.currentGroup.isValid && !stack.currentGroup.isPending
onClicked: {
const validity = stack.currentGroup.validate()

View File

@ -135,7 +135,8 @@ Item {
}
StyledText {
text: qsTr(`<a href="%1%2">Look up on Etherscan</a>`).arg(walletModel.etherscanLink.replace("/tx", "/address")).arg(profileModel.ens.getUsernameRegistrar())
//% "<a href='%1%2'>Look up on Etherscan</a>"
text: qsTrId("-a-href---1-2--look-up-on-etherscan--a-").arg(walletModel.etherscanLink.replace("/tx", "/address")).arg(profileModel.ens.getUsernameRegistrar())
anchors.left: parent.left
anchors.right: parent.right
onLinkActivated: appMain.openLink(link)
@ -156,7 +157,8 @@ Item {
}
StyledText {
text: qsTr(`<a href="%1%2">Look up on Etherscan</a>`).arg(walletModel.etherscanLink.replace("/tx", "/address")).arg(profileModel.ens.getENSRegistry())
//% "<a href='%1%2'>Look up on Etherscan</a>"
text: qsTrId("-a-href---1-2--look-up-on-etherscan--a-").arg(walletModel.etherscanLink.replace("/tx", "/address")).arg(profileModel.ens.getENSRegistry())
anchors.left: parent.left
anchors.right: parent.right
onLinkActivated: appMain.openLink(link)

View File

@ -11,8 +11,10 @@ RowLayout {
ConfirmationDialog {
id: confirmDialog
title: qsTr("Warning!")
confirmationText: qsTr("Change fleet to %1").arg(newFleet)
//% "Warning!"
title: qsTrId("close-app-title")
//% "Change fleet to %1"
confirmationText: qsTrId("change-fleet-to--1").arg(newFleet)
onConfirmButtonClicked: profileModel.fleets.setFleet(newFleet)
onClosed: profileModel.fleets.triggerFleetChange()
}

View File

@ -7,7 +7,8 @@ import "../../../../shared/status"
ModalPopup {
id: popup
title: qsTr("Fleet")
//% "Fleet"
title: qsTrId("fleet")
property string newFleet: "";

View File

@ -135,7 +135,8 @@ Item {
StyledText {
id: faqLink
text: qsTr("Frequently asked questions")
//% "Frequently asked questions"
text: qsTrId("faq")
font.pixelSize: 15
color: Style.current.blue
anchors.topMargin: Style.current.bigPadding
@ -158,7 +159,8 @@ Item {
}
StyledText {
id: issueLink
text: qsTr("Submit a bug")
//% "Submit a bug"
text: qsTrId("submit-bug")
font.pixelSize: 15
color: Style.current.blue
anchors.topMargin: Style.current.bigPadding
@ -181,7 +183,8 @@ Item {
}
StyledText {
text: qsTr("Request a feature")
//% "Request a feature"
text: qsTrId("request-feature")
font.pixelSize: 15
color: Style.current.blue
anchors.topMargin: Style.current.bigPadding

View File

@ -8,7 +8,8 @@ import "../../../../shared/status"
ModalPopup {
id: root
title: qsTr("Muted chats")
//% "Muted chats"
title: qsTrId("muted-chats")
property bool showMutedContacts: false
onClosed: {
@ -57,7 +58,8 @@ ModalPopup {
type: "secondary"
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
text: qsTr("Unmute")
//% "Unmute"
text: qsTrId("unmute")
onClicked: {
profileModel.unmuteChannel(model.id)
}

View File

@ -12,8 +12,10 @@ RowLayout {
ConfirmationDialog {
id: confirmDialog
title: qsTr("Warning!")
confirmationText: qsTr("The account will be logged out. When you unlock it again, the selected network will be used")
//% "Warning!"
title: qsTrId("close-app-title")
//% "The account will be logged out. When you unlock it again, the selected network will be used"
confirmationText: qsTrId("logout-app-content")
onConfirmButtonClicked: {
profileModel.network.current = newNetwork;
}

View File

@ -7,7 +7,8 @@ import "../../../../shared/status"
ModalPopup {
id: popup
title: qsTr("Network")
//% "Network"
title: qsTrId("network")
property string newNetwork: "";
@ -45,7 +46,8 @@ ModalPopup {
StyledText {
id: usernameText
text: qsTr("Add network")
//% "Add network"
text: qsTrId("add-network")
color: Style.current.blue
anchors.left: addButton.right
anchors.leftMargin: Style.current.padding
@ -61,7 +63,8 @@ ModalPopup {
ModalPopup {
id: addNetworkPopup
title: qsTr("Add network")
//% "Add network"
title: qsTrId("add-network")
height: 650
property string nameValidationError: ""
@ -76,22 +79,28 @@ ModalPopup {
networkValidationError = "";
if (nameInput.text === "") {
nameValidationError = qsTr("You need to enter a name")
//% "You need to enter a name"
nameValidationError = qsTrId("you-need-to-enter-a-name")
}
if (rpcInput.text === "") {
rpcValidationError = qsTr("You need to enter the RPC endpoint URL")
//% "You need to enter the RPC endpoint URL"
rpcValidationError = qsTrId("you-need-to-enter-the-rpc-endpoint-url")
} else if(!Utils.isURL(rpcInput.text)) {
rpcValidationError = qsTr("Invalid URL")
//% "Invalid URL"
rpcValidationError = qsTrId("invalid-url")
}
if (customRadioBtn.checked) {
if (networkInput.text === "") {
networkValidationError = qsTr("You need to enter the network id")
//% "You need to enter the network id"
networkValidationError = qsTrId("you-need-to-enter-the-network-id")
} else if (isNaN(networkInput.text)){
networkValidationError = qsTr("Should be a number");
//% "Should be a number"
networkValidationError = qsTrId("should-be-a-number");
} else if (parseInt(networkInput.text, 10) <= 4){
networkValidationError = qsTr("Invalid network id");
//% "Invalid network id"
networkValidationError = qsTrId("invalid-network-id");
}
}
return !nameValidationError && !rpcValidationError && !networkValidationError
@ -113,7 +122,8 @@ ModalPopup {
footer: StatusButton {
anchors.right: parent.right
anchors.rightMargin: Style.current.smallPadding
text: qsTr("Save")
//% "Save"
text: qsTrId("save")
anchors.bottom: parent.bottom
enabled: nameInput.text !== "" && rpcInput.text !== ""
onClicked: {
@ -133,15 +143,19 @@ ModalPopup {
Input {
id: nameInput
label: qsTr("Name")
placeholderText: qsTr("Specify a name")
//% "Name"
label: qsTrId("name")
//% "Specify a name"
placeholderText: qsTrId("specify-name")
validationError: addNetworkPopup.nameValidationError
}
Input {
id: rpcInput
label: qsTr("RPC URL")
placeholderText: qsTr("Specify a RPC URL")
//% "RPC URL"
label: qsTrId("rpc-url")
//% "Specify a RPC URL"
placeholderText: qsTrId("specify-rpc-url")
validationError: addNetworkPopup.rpcValidationError
anchors.top: nameInput.bottom
anchors.topMargin: Style.current.bigPadding
@ -149,7 +163,8 @@ ModalPopup {
StatusSectionHeadline {
id: networkChainHeadline
text: qsTr("Network chain")
//% "Network chain"
text: qsTrId("network-chain")
anchors.top: rpcInput.bottom
anchors.topMargin: Style.current.bigPadding
}
@ -164,7 +179,8 @@ ModalPopup {
RowLayout {
width: parent.width
StyledText {
text: qsTr("Main network")
//% "Main network"
text: qsTrId("mainnet-network")
font.pixelSize: 15
}
@ -184,7 +200,8 @@ ModalPopup {
RowLayout {
width: parent.width
StyledText {
text: qsTr("Ropsten test network")
//% "Ropsten test network"
text: qsTrId("ropsten-network")
font.pixelSize: 15
}
StatusRadioButton {
@ -202,7 +219,8 @@ ModalPopup {
RowLayout {
width: parent.width
StyledText {
text: qsTr("Rinkeby test network")
//% "Rinkeby test network"
text: qsTrId("rinkeby-network")
font.pixelSize: 15
}
StatusRadioButton {
@ -220,7 +238,8 @@ ModalPopup {
RowLayout {
width: parent.width
StyledText {
text: qsTr("Custom")
//% "Custom"
text: qsTrId("custom")
font.pixelSize: 15
}
StatusRadioButton {
@ -237,8 +256,10 @@ ModalPopup {
Input {
id: networkInput
visible: customRadioBtn.checked
label: qsTr("Network Id")
placeholderText: qsTr("Specify the network id")
//% "Network Id"
label: qsTrId("network-id")
//% "Specify the network id"
placeholderText: qsTrId("specify-the-network-id")
validationError: addNetworkPopup.networkValidationError
}
}
@ -246,7 +267,8 @@ ModalPopup {
}
StatusSectionHeadline {
text: qsTr("Main networks")
//% "Main networks"
text: qsTrId("main-networks")
}
NetworkRadioSelector {
@ -262,7 +284,8 @@ ModalPopup {
}
StatusSectionHeadline {
text: qsTr("Test networks")
//% "Test networks"
text: qsTrId("test-networks")
}
NetworkRadioSelector {
@ -278,7 +301,8 @@ ModalPopup {
}
StatusSectionHeadline {
text: qsTr("Custom Networks")
//% "Custom Networks"
text: qsTrId("custom-networks")
}
Repeater {

View File

@ -101,7 +101,8 @@ ScrollView {
StatusSectionHeadline {
id: sectionHeadlineSound
text: qsTr("Appearance")
//% "Appearance"
text: qsTrId("appearance")
anchors.top: separator.bottom
anchors.left: parent.left
anchors.right: parent.right
@ -126,7 +127,8 @@ ScrollView {
}
StatusSettingsLineButton {
text: qsTr("Use your operating system's notifications")
//% "Use your operating system's notifications"
text: qsTrId("use-your-operating-system-s-notifications")
isSwitch: true
switchChecked: appSettings.useOSNotifications
onClicked: {
@ -135,7 +137,8 @@ ScrollView {
StyledText {
id: detailText
text: qsTr("Setting this to false will instead use Status' notification style as seen below")
//% "Setting this to false will instead use Status' notification style as seen below"
text: qsTrId("setting-this-to-false-will-instead-use-status--notification-style-as-seen-below")
color: Style.current.secondaryText
width: parent.width
font.pixelSize: 12
@ -174,7 +177,8 @@ ScrollView {
//% "Anonymous"
name: qsTrId("anonymous")
notificationTitle: "Status"
notificationMessage: qsTr("You have a new message")
//% "You have a new message"
notificationMessage: qsTrId("you-have-a-new-message")
buttonGroup: messageSetting
checked: appSettings.notificationMessagePreviewSetting === Constants.notificationPreviewAnonymous
onRadioCheckedChanged: {
@ -188,7 +192,8 @@ ScrollView {
//% "Name only"
name: qsTrId("name-only")
notificationTitle: "Vitalik Buterin"
notificationMessage: qsTr("You have a new message")
//% "You have a new message"
notificationMessage: qsTrId("you-have-a-new-message")
buttonGroup: messageSetting
checked: appSettings.notificationMessagePreviewSetting === Constants.notificationPreviewNameOnly
onRadioCheckedChanged: {
@ -202,7 +207,8 @@ ScrollView {
//% "Name & Message"
name: qsTrId("name---message")
notificationTitle: "Vitalik Buterin"
notificationMessage: qsTr("Hi there! Yes, no problem, let me know if I can help.")
//% "Hi there! Yes, no problem, let me know if I can help."
notificationMessage: qsTrId("hi-there--yes--no-problem--let-me-know-if-i-can-help-")
buttonGroup: messageSetting
checked: appSettings.notificationMessagePreviewSetting === Constants.notificationPreviewNameAndMessage
onRadioCheckedChanged: {
@ -261,13 +267,15 @@ ScrollView {
StatusSettingsLineButton {
//% "Muted users"
text: qsTrId("muted-users")
currentValue: profileModel.mutedContacts.rowCount() > 0 ? profileModel.mutedContacts.rowCount() : qsTr("None")
//% "None"
currentValue: profileModel.mutedContacts.rowCount() > 0 ? profileModel.mutedContacts.rowCount() : qsTrId("none")
isSwitch: false
onClicked: {
const mutedChatsModal = notificationsContainer.mutedChatsModalComponent.createObject(notificationsContainer, {
showMutedContacts: true
})
mutedChatsModal.title = qsTr("Muted contacts")
//% "Muted contacts"
mutedChatsModal.title = qsTrId("muted-contacts")
mutedChatsModal.open()
}
}
@ -275,13 +283,15 @@ ScrollView {
StatusSettingsLineButton {
//% "Muted chats"
text: qsTrId("muted-chats")
currentValue: profileModel.mutedChats.rowCount() > 0 ? profileModel.mutedChats.rowCount() : qsTr("None")
//% "None"
currentValue: profileModel.mutedChats.rowCount() > 0 ? profileModel.mutedChats.rowCount() : qsTrId("none")
isSwitch: false
onClicked: {
const mutedChatsModal = notificationsContainer.mutedChatsModalComponent.createObject(notificationsContainer, {
showMutedContacts: false
})
mutedChatsModal.title = qsTr("Muted chats")
//% "Muted chats"
mutedChatsModal.title = qsTrId("muted-chats")
mutedChatsModal.open()
}
@ -320,7 +330,8 @@ ScrollView {
width: parent.width
StyledText {
text: qsTr("Reset notification settings")
//% "Reset notification settings"
text: qsTrId("reset-notification-settings")
font.pixelSize: 15
color: Style.current.danger
MouseArea {

View File

@ -7,7 +7,8 @@ import "../../../../shared/status"
ModalPopup {
id: popup
title: qsTr("Open links with...")
//% "Open links with..."
title: qsTrId("open-links-with---")
onClosed: {
destroy()
@ -32,7 +33,8 @@ ModalPopup {
}
}
StatusRadioButton {
text: qsTr("My default browser")
//% "My default browser"
text: qsTrId("my-default-browser")
ButtonGroup.group: openLinksWithGroup
checked: !appSettings.openLinksInStatus
onCheckedChanged: {

View File

@ -62,7 +62,8 @@ Item {
}
StatusSettingsLineButton {
text: qsTr("Display all profile pictures (not only contacts)")
//% "Display all profile pictures (not only contacts)"
text: qsTrId("display-all-profile-pictures--not-only-contacts-")
isSwitch: true
switchChecked: !appSettings.onlyShowContactsProfilePics
onClicked: appSettings.onlyShowContactsProfilePics = !checked
@ -77,7 +78,8 @@ Item {
}
StyledText {
width: parent.width
text: qsTr("All images (links that contain an image extension) will be downloaded and displayed, regardless of the whitelist settings below")
//% "All images (links that contain an image extension) will be downloaded and displayed, regardless of the whitelist settings below"
text: qsTrId("all-images--links-that-contain-an-image-extension--will-be-downloaded-and-displayed--regardless-of-the-whitelist-settings-below")
font.pixelSize: 15
font.weight: Font.Thin
color: Style.current.secondaryText
@ -86,7 +88,8 @@ Item {
}
StatusSettingsLineButton {
text: qsTr("Chat link previews")
//% "Chat link previews"
text: qsTrId("chat-link-previews")
onClicked: openPopup(chatLinksPreviewModal)
}
@ -101,8 +104,10 @@ Item {
}
StatusSettingsLineButton {
text: qsTr("Open links with...")
currentValue: appSettings.openLinksInStatus ? "Status" : qsTr("My default browser")
//% "Open links with..."
text: qsTrId("open-links-with---")
//% "My default browser"
currentValue: appSettings.openLinksInStatus ? "Status" : qsTrId("my-default-browser")
onClicked: openPopup(openLinksWithModal)
}
}

View File

@ -7,7 +7,8 @@ import "./"
ModalPopup {
id: popup
title: qsTr("Dapp permissions")
//% "Dapp permissions"
title: qsTrId("dapp-permissions")
Component.onCompleted: profileModel.dappList.init()
Component.onDestruction: profileModel.dappList.clearData()

View File

@ -29,7 +29,8 @@ Item {
StyledText {
text: qsTr("Revoke access")
//% "Revoke access"
text: qsTrId("revoke-access")
color: Style.current.red
anchors.top: parent.top
anchors.topMargin: Style.current.smallPadding

View File

@ -55,7 +55,8 @@ ModalPopup {
footer: StatusButton {
anchors.horizontalCenter: parent.horizontalCenter
type: "warn"
text: qsTr("Revoke all access")
//% "Revoke all access"
text: qsTrId("revoke-all-access")
onClicked: {
profileModel.dappList.permissionList.revokeAccess();
accessRevoked(dapp);

View File

@ -55,7 +55,8 @@ Item {
StyledText {
id: usernameText
text: qsTr("Add mailserver")
//% "Add mailserver"
text: qsTrId("add-mailserver")
color: Style.current.blue
anchors.left: addButton.right
anchors.leftMargin: Style.current.padding
@ -71,7 +72,8 @@ Item {
ModalPopup {
id: addMailserverPopup
title: qsTr("Add mailserver")
//% "Add mailserver"
title: qsTrId("add-mailserver")
property string nameValidationError: ""
property string enodeValidationError: ""
@ -81,11 +83,13 @@ Item {
enodeValidationError = ""
if (nameInput.text === "") {
nameValidationError = qsTr("You need to enter a name")
//% "You need to enter a name"
nameValidationError = qsTrId("you-need-to-enter-a-name")
}
if (enodeInput.text === "") {
enodeValidationError = qsTr("You need to enter the enode address")
//% "You need to enter the enode address"
enodeValidationError = qsTrId("you-need-to-enter-the-enode-address")
}
return !nameValidationError && !enodeValidationError
}
@ -101,7 +105,8 @@ Item {
footer: StatusButton {
anchors.right: parent.right
anchors.rightMargin: Style.current.smallPadding
text: qsTr("Save")
//% "Save"
text: qsTrId("save")
anchors.bottom: parent.bottom
enabled: nameInput.text !== "" && enodeInput.text !== ""
onClicked: {
@ -115,15 +120,19 @@ Item {
Input {
id: nameInput
label: qsTr("Name")
placeholderText: qsTr("Specify a name")
//% "Name"
label: qsTrId("name")
//% "Specify a name"
placeholderText: qsTrId("specify-name")
validationError: addMailserverPopup.nameValidationError
}
Input {
id: enodeInput
label: qsTr("History node address")
placeholderText: qsTr("enode://{enode-id}:{password}@{ip-address}:{port-number}")
//% "History node address"
label: qsTrId("history-node-address")
//% "enode://{enode-id}:{password}@{ip-address}:{port-number}"
placeholderText: qsTrId("enode----enode-id---password---ip-address---port-number-")
validationError: addMailserverPopup.enodeValidationError
anchors.top: nameInput.bottom
anchors.topMargin: Style.current.bigPadding
@ -134,7 +143,8 @@ Item {
StyledText {
id: switchLbl
text: qsTr("Automatic mailserver selection")
//% "Automatic mailserver selection"
text: qsTrId("automatic-mailserver-selection")
anchors.left: parent.left
anchors.leftMargin: 24
anchors.top: addMailserver.bottom
@ -153,7 +163,8 @@ Item {
}
StyledText {
text: profileModel.mailservers.activeMailserver || qsTr("...")
//% "..."
text: profileModel.mailservers.activeMailserver || qsTrId("---")
anchors.left: parent.left
anchors.leftMargin: 24
anchors.top: switchLbl.bottom

View File

@ -41,7 +41,8 @@ Rectangle {
anchors.right: parent.right
anchors.rightMargin: Style.current.halfPadding
anchors.verticalCenter: parent.verticalCenter
text: qsTr("Share what's on your mind and stay updated with your contacts")
//% "Share what's on your mind and stay updated with your contacts"
text: qsTrId("share-what-s-on-your-mind-and-stay-updated-with-your-contacts")
font.pixelSize: 15
color: Style.current.secondaryText
wrapMode: Text.WordWrap

View File

@ -44,7 +44,8 @@ ModalPopup {
function validate() {
if (addressInput.text !== "" && !Utils.isAddress(addressInput.text)) {
validationError = qsTr("This needs to be a valid address");
//% "This needs to be a valid address"
validationError = qsTrId("this-needs-to-be-a-valid-address");
}
return validationError === ""
}
@ -67,7 +68,8 @@ ModalPopup {
onTokenDetailsWereResolved: {
const jsonObj = JSON.parse(tokenDetails)
if(jsonObj.name === "" || jsonObj.symbol === "" || jsonObj.decimals === ""){
validationError = qsTr("Invalid ERC20 address")
//% "Invalid ERC20 address"
validationError = qsTrId("invalid-erc20-address")
return;
}

View File

@ -17,7 +17,8 @@ Rectangle {
anchors.verticalCenter: parent.verticalCenter
StyledText {
text: qsTr("Back up your seed phrase")
//% "Back up your seed phrase"
text: qsTrId("back-up-your-seed-phrase")
font.pixelSize: 13
anchors.verticalCenter: parent.verticalCenter
color: Style.current.white

View File

@ -17,7 +17,8 @@ ModalPopup {
setCurrencyModalContent.currency = defaultCurrency
}
title: qsTr("Set Currency")
//% "Set Currency"
title: qsTrId("set-currency")
SetCurrencyModalContent {
id: setCurrencyModalContent

View File

@ -8,7 +8,8 @@ import "."
ModalPopup {
id: signPhrasePopup
title: qsTr("Signing phrase")
//% "Signing phrase"
title: qsTrId("signing-phrase")
height: 390
closePolicy: Popup.NoAutoClose
@ -17,7 +18,8 @@ ModalPopup {
StyledText {
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("This is your signing phrase")
//% "This is your signing phrase"
text: qsTrId("this-is-you-signing")
font.pixelSize: 17
font.weight: Font.Bold
horizontalAlignment: Text.AlignHCenter
@ -26,7 +28,8 @@ ModalPopup {
StyledText {
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("You should see these 3 words before signing each transaction")
//% "You should see these 3 words before signing each transaction"
text: qsTrId("three-words-description")
font.pixelSize: 15
width: 330
wrapMode: Text.WordWrap
@ -64,7 +67,8 @@ ModalPopup {
}
StyledText {
text: qsTr("If you see a different combination, cancel the transaction and sign out")
//% "If you see a different combination, cancel the transaction and sign out"
text: qsTrId("three-words-description-2")
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
font.pixelSize: 13
@ -81,7 +85,8 @@ ModalPopup {
StatusButton {
anchors.right: btnRemindLater.left
anchors.rightMargin: Style.current.padding
text: qsTr("Ok, got it")
//% "Ok, got it"
text: qsTrId("ens-got-it")
type: "secondary"
onClicked: {
appSettings.hideSignPhraseModal = true;
@ -93,7 +98,8 @@ ModalPopup {
StatusButton {
id: btnRemindLater
anchors.right: parent.right
text: qsTr("Remind me later")
//% "Remind me later"
text: qsTrId("remind-me-later")
onClicked: {
hideSignPhraseModal = true;
close();

View File

@ -7,7 +7,8 @@ import "./components"
ModalPopup {
id: popup
title: qsTr("Manage Assets")
//% "Manage Assets"
title: qsTrId("manage-assets")
TokenSettingsModalContent {

View File

@ -164,7 +164,8 @@ Item {
onTriggered: openPopup(accountSettingsModalComponent)
}
Action {
text: qsTr("Manage Assets")
//% "Manage Assets"
text: qsTrId("manage-assets")
icon.source: "../../img/add_remove_token.svg"
icon.width: 16
icon.height: 16

View File

@ -22,7 +22,8 @@ ModalPopup {
//% "You need to enter a password"
passwordValidationError = qsTrId("you-need-to-enter-a-password")
} else if (passwordInput.text.length < 6) {
passwordValidationError = qsTr("Password needs to be 6 characters or more")
//% "Password needs to be 6 characters or more"
passwordValidationError = qsTrId("password-needs-to-be-6-characters-or-more")
} else {
passwordValidationError = ""
}
@ -107,7 +108,8 @@ ModalPopup {
text: loading ?
//% "Loading..."
qsTrId("loading") :
qsTr("Add account")
//% "Add account"
qsTrId("add-account")
enabled: !loading && passwordInput.text !== "" && accountNameInput.text !== "" && accountPKeyInput.text !== ""

View File

@ -26,7 +26,8 @@ ModalPopup {
//% "You need to enter a password"
passwordValidationError = qsTrId("you-need-to-enter-a-password")
} else if (passwordInput.text.length < 6) {
passwordValidationError = qsTr("Password needs to be 6 characters or more")
//% "Password needs to be 6 characters or more"
passwordValidationError = qsTrId("password-needs-to-be-6-characters-or-more")
} else {
passwordValidationError = ""
}
@ -120,7 +121,8 @@ ModalPopup {
text: loading ?
//% "Loading..."
qsTrId("loading") :
qsTr("Add account")
//% "Add account"
qsTrId("add-account")
enabled: !loading && passwordInput.text !== "" && accountNameInput.text !== "" && accountSeedInput.text !== ""

View File

@ -81,7 +81,8 @@ ModalPopup {
text: loading ?
//% "Loading..."
qsTrId("loading") :
qsTr("Add account")
//% "Add account"
qsTrId("add-account")
enabled: !loading && addressInput.text !== "" && accountNameInput.text !== ""

View File

@ -20,7 +20,8 @@ ModalPopup {
//% "You need to enter a password"
passwordValidationError = qsTrId("you-need-to-enter-a-password")
} else if (passwordInput.text.length < 6) {
passwordValidationError = qsTr("Password needs to be 6 characters or more")
//% "Password needs to be 6 characters or more"
passwordValidationError = qsTrId("password-needs-to-be-6-characters-or-more")
} else {
passwordValidationError = ""
}
@ -81,7 +82,8 @@ ModalPopup {
text: loading ?
//% "Loading..."
qsTrId("loading") :
qsTr("Add account")
//% "Add account"
qsTrId("add-account")
enabled: !loading && passwordInput.text !== "" && accountNameInput.text !== ""

View File

@ -39,7 +39,8 @@ Rectangle {
StyledText {
visible: collectiblesQty >= Constants.maxTokens
text: qsTr("Maximum number of collectibles to display reached")
//% "Maximum number of collectibles to display reached"
text: qsTrId("maximum-number-of-collectibles-to-display-reached")
font.pixelSize: 17
color: Style.current.secondaryText
anchors.left: collectibleName.right

View File

@ -135,7 +135,8 @@ RowLayout {
StatusInputListPopup {
id: channelPicker
title: qsTr("Where do you want to go?")
//% "Where do you want to go?"
title: qsTrId("where-do-you-want-to-go-")
showSearchBox: true
width: 350
x: parent.width / 2 - width / 2

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More