Compare commits

..

1 Commits

Author SHA1 Message Date
Riccardo Spagni
ea8e3d0267 Merge pull request #841
2bc86d1 monero submodule: use release-v0.11.0.0 branch (Jaquee)
2017-09-25 17:50:24 +02:00
31 changed files with 487 additions and 2575 deletions

View File

@@ -475,14 +475,6 @@ Rectangle {
panel.settingsClicked() panel.settingsClicked()
} }
} }
Rectangle {
visible: settingsButton.present
anchors.left: parent.left
anchors.right: parent.right
anchors.leftMargin: 16
color: "#505050"
height: 1
}
} }

View File

@@ -10,11 +10,6 @@ Copyright (c) 2014-2017, The Monero Project
- Github: [https://github.com/monero-project/monero-core](https://github.com/monero-project/monero-core) - Github: [https://github.com/monero-project/monero-core](https://github.com/monero-project/monero-core)
- IRC: [#monero-dev on Freenode](irc://chat.freenode.net/#monero-dev) - IRC: [#monero-dev on Freenode](irc://chat.freenode.net/#monero-dev)
## Vulnerability Response
- Our [Vulnerability Response Process](https://github.com/monero-project/meta/blob/master/VULNERABILITY_RESPONSE_PROCESS.md) encourages responsible disclosure
- We are also available via [HackerOne](https://hackerone.com/monero)
## Introduction ## Introduction
Monero is a private, secure, untraceable, decentralised digital currency. You are your bank, you control your funds, and nobody can trace your transfers unless you allow them to do so. Monero is a private, secure, untraceable, decentralised digital currency. You are your bank, you control your funds, and nobody can trace your transfers unless you allow them to do so.
@@ -61,8 +56,7 @@ See [LICENSE](LICENSE).
Packages are available for Packages are available for
* Arch Linux via AUR: [monero-wallet-qt](https://aur.archlinux.org/packages/monero-wallet-qt/) * Arch Linux via AUR: [monero-core-git](https://aur.archlinux.org/packages/monero-core-git/)
* Void Linux: xbps-install -S monero-core
Packaging for your favorite distribution would be a welcome contribution! Packaging for your favorite distribution would be a welcome contribution!

View File

@@ -0,0 +1,147 @@
# Monero GUI Vulnerability Response Process
## Preamble
Researchers/Hackers: while you research/hack, we ask that you please refrain from committing the following:
- Denial of Service / Active exploiting against the network
- Social Engineering of Monero staff or contractors
- Any physical or electronic attacks against Monero community property and/or data centers
## I. Points of Contact for Security Issues
```
ric@getmonero.org
BDA6 BD70 42B7 21C4 67A9 759D 7455 C5E3 C0CD CEB9
luigi1111@getmonero.org
8777 AB8F 778E E894 87A2 F8E7 F4AC A018 3641 E010
moneromooo.monero@gmail.com
48B0 8161 FBDA DFE3 93AD FC3E 686F 0745 4D6C EFC3
jaquee.monero@gmail.com
D21E 9CC1 2F51 C4FE A9E0 52FF 384E 52B0 9F45 DC39
```
## II. Security Response Team
- fluffypony
- luigi1111
- moneromooo
- Jaquee
## III. Incident Response
1. Researcher submits report via one or both of two methods:
- a. Email
- b. [HackerOne](https://hackerone.com/monero)
2. Response Team designates a Response Manager who is in charge of the particular report based on availability and/or knowledge-set
3. In no more than 3 working days, Response Team should gratefully respond to researcher using only encrypted, secure channels
4. Response Manager makes inquiries to satisfy any needed information to confirm if submission is indeed a vulnerability
- a. If submission proves to be vulnerable, proceed to next step
- b. If not vulnerable:
- i. Response Manager responds with reasons why submission is not a vulnerability
- ii. Response Manager moves discussion to a new or existing ticket on GitHub if necessary
5. If over email, Response Manager opens a HackerOne issue for new submission
6. Establish severity of vulnerability:
- a. HIGH: impacts network as a whole, has potential to break entire network, results in the loss of monero, or is on a scale of great catastrophe
- b. MEDIUM: impacts individual nodes, wallets, or must be carefully exploited
- c. LOW: is not easily exploitable
7. Respond according to the severity of the vulnerability:
- a. HIGH severities must be notified on website and reddit /r/Monero within 3 working days of classification
- i. The notification should list appropriate steps for users to take, if any
- ii. The notification must not include any details that could suggest an exploitation path
- iii. The latter takes precedence over the former
- b. MEDIUM and HIGH severities will require a Point Release
- c. LOW severities will be addressed in the next Regular Release
8. Response Team applies appropriate patch(es)
- a. Response Manager designates a PRIVATE git "hotfix branch" to work in
- b. Patches are reviewed with the researcher
- c. Any messages associated with PUBLIC commits during the time of review should not make reference to the security nature of the PRIVATE branch or its commits
- d. Vulnerability announcement is drafted
- i. Include the severity of the vulnerability
- ii. Include all vulnerable systems/apps/code
- iii. Include solutions (if any) if patch cannot be applied
- e. Release date is discussed
9. At release date, Response Team coordinates with developers to finalize update:
- a. Response Manager propagates the "hotfix branch" to trunk
- b. Response Manager includes vulnerability announcement draft in release notes
- c. Proceed with the Point or Regular Release
## IV. Post-release Disclosure Process
1. Response Team has 90 days to fulfill all points within section III
2. If the Incident Response process in section III is successfully completed:
- a. Response Manager contacts researcher and asks if researcher wishes for credit
- b. Finalize vulnerability announcement draft and include the following:
- i. Project name and URL
- ii. Versions known to be affected
- iii. Versions known to be not affected (for example, the vulnerable code was introduced in a recent version, and older versions are therefore unaffected)
- iv. Versions not checked
- v. Type of vulnerability and its impact
- vi. If already obtained or applicable, a CVE-ID
- vii. The planned, coordinated release date
- viii. Mitigating factors (for example, the vulnerability is only exposed in uncommon, non-default configurations)
- ix. Workarounds (configuration changes users can make to reduce their exposure to the vulnerability)
- x. If applicable, credits to the original reporter
- c. Release finalized vulnerability announcement on website and reddit /r/Monero
- d. For HIGH severities, release finalized vulnerability announcement on well-known mailing lists:
- i. oss-security@lists.openwall.com
- ii. bugtraq@securityfocus.com
- e. If applicable, developers request a CVE-ID
- i. The commit that applied the fix is made reference too in a future commit and includes a CVE-ID
3. If the Incident Response process in section III is *not* successfully completed:
- a. Response Team and developers organize an IRC meeting to discuss why/what points in section III were not resolved and how the team can resolve them in the future
- b. Any developer meetings immediately following the incident should include points made in section V
- c. If disputes arise about whether or when to disclose information about a vulnerability, the Response Team will publicly discuss the issue via IRC and attempt to reach consensus
- d. If consensus on a timely disclosure is not met (no later than 90 days), the researcher (after 90 days) has every right to expose the vulnerability to the public
## V. Incident Analysis
1. Isolate codebase
- a. Response Team and developers should coordinate to work on the following:
- i. Problematic implementation of classes/libraries/functions, etc.
- ii. Focus on apps/distro packaging, etc.
- iii. Operator/config error, etc.
2. Auditing
- a. Response Team and developers should coordinate to work on the following:
- i. Auditing of problem area(s) as discussed in point 1
- ii. Generate internal reports and store for future reference
- iii. If results are not sensitive, share with the public via IRC or GitHub
3. Response Team has 45 days following completion of section III to ensure completion of section V
## VI. Resolutions
Any further questions or resolutions regarding the incident(s) between the researcher and response + development team after public disclosure can be addressed via the following:
- [GitHub](https://github.com/monero-project/monero/issues/)
- [HackerOne](https://hackerone.com/monero)
- [Reddit /r/Monero](https://reddit.com/r/Monero/)
- IRC
- Email
## VII. Continuous Improvement
1. Response Team and developers should hold annual meetings to review the previous year's incidents
2. Response Team or designated person(s) should give a brief presentation, including:
- a. Areas of Monero affected by the incidents
- b. Any network downtime or monetary cost (if any) of the incidents
- c. Ways in which the incidents could have been avoided (if any)
- d. How effective this process was in dealing with the incidents
3. After the presentation, Response Team and developers should discuss:
- a. Potential changes to development processes to reduce future incidents
- b. Potential changes to this process to improve future responses

View File

@@ -54,7 +54,7 @@ if [[ $platform == *bsd* ]]; then
fi fi
# build libwallet # build libwallet
./get_libwallet_api.sh $BUILD_TYPE $SHELL get_libwallet_api.sh $BUILD_TYPE
# build zxcvbn # build zxcvbn
$MAKE -C src/zxcvbn-c || exit $MAKE -C src/zxcvbn-c || exit

View File

@@ -116,7 +116,7 @@ Item {
Row { Row {
id: row2 id: row2
spacing: bar.width / 14 spacing: ((bar.width - 8) / 2) / 4
Repeater { Repeater {
model: 4 model: 4
@@ -125,7 +125,7 @@ Item {
id: delegateItem2 id: delegateItem2
currentX: x + row2.x currentX: x + row2.x
currentIndex: index currentIndex: index
mainTick: currentIndex === 0 mainTick: currentIndex === 0 || currentIndex === 3 || currentIndex === 13
Component.onCompleted: { Component.onCompleted: {
row.positions[currentIndex] = delegateItem2 row.positions[currentIndex] = delegateItem2
} }
@@ -135,7 +135,7 @@ Item {
Row { Row {
id: row1 id: row1
spacing: bar.width / 14 spacing: ((bar.width - 8) / 2) / 10
Repeater { Repeater {
model: 10 model: 10
@@ -144,7 +144,7 @@ Item {
id: delegateItem1 id: delegateItem1
currentX: x + row1.x currentX: x + row1.x
currentIndex: index + 4 currentIndex: index + 4
mainTick: currentIndex === 13 mainTick: currentIndex === 0 || currentIndex === 3 || currentIndex === 13
Component.onCompleted: { Component.onCompleted: {
row.positions[currentIndex] = delegateItem1 row.positions[currentIndex] = delegateItem1
} }

View File

@@ -53,6 +53,7 @@ Item {
color: "#4A4949" color: "#4A4949"
text: { text: {
if(currentIndex === 0) return qsTr("Normal") + translationManager.emptyString if(currentIndex === 0) return qsTr("Normal") + translationManager.emptyString
if(currentIndex === 3) return qsTr("Medium") + translationManager.emptyString
if(currentIndex === 13) return qsTr("High") + translationManager.emptyString if(currentIndex === 13) return qsTr("High") + translationManager.emptyString
return "" return ""
} }
@@ -64,7 +65,7 @@ Item {
anchors.topMargin: 14 anchors.topMargin: 14
width: 1 width: 1
color: "#DBDBDB" color: "#DBDBDB"
height: 8 height: currentIndex === 8 ? 16 : 8
visible: !parent.mainTick visible: !parent.mainTick
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 151 KiB

View File

@@ -1,14 +1,10 @@
; Monero Helium Hydra GUI Wallet Installer for Windows ; Monero GUI Wallet Beta 2 Installer for Windows
; Copyright (c) 2014-2017, The Monero Project ; Copyright (c) 2014-2017, The Monero Project
; See LICENSE ; See LICENSE
[Setup] [Setup]
AppName=Monero GUI Wallet AppName=Monero GUI Wallet
; For InnoSetup this is the property that uniquely identifies the application as such AppVersion=0.10.3.1
; Thus it's important to keep this stable over releases
; With a different "AppName" InnoSetup would treat a mere update as a completely new application and thus mess up
AppVersion=0.11.1.0
DefaultDirName={pf}\Monero GUI Wallet DefaultDirName={pf}\Monero GUI Wallet
DefaultGroupName=Monero GUI Wallet DefaultGroupName=Monero GUI Wallet
UninstallDisplayIcon={app}\monero-wallet-gui.exe UninstallDisplayIcon={app}\monero-wallet-gui.exe
@@ -40,7 +36,7 @@ Source: "FinishImage.bmp"; Flags: dontcopy
Source: "bin\monero-wallet-gui.exe"; DestDir: "{app}"; Flags: comparetimestamp Source: "bin\monero-wallet-gui.exe"; DestDir: "{app}"; Flags: comparetimestamp
; Monero GUI wallet log file ; Monero GUI wallet log file
; The GUI wallet does not have the "--log-file" command-line option of the CLI wallet and insists to put the .log beside the .exe ; Beta 2 does not have the "--log-file" command-line option of the CLI wallet and insists to put the .log beside the .exe
; so pre-create the file and give the necessary permissions to the wallet to write into it ; so pre-create the file and give the necessary permissions to the wallet to write into it
Source: "monero-wallet-gui.log"; DestDir: "{app}"; Flags: comparetimestamp; Permissions: users-modify Source: "monero-wallet-gui.log"; DestDir: "{app}"; Flags: comparetimestamp; Permissions: users-modify
@@ -59,9 +55,7 @@ Source: "monero-daemon.bat"; DestDir: "{app}"; Flags: comparetimestamp;
; Monero blockchain utilities ; Monero blockchain utilities
Source: "bin\monero-blockchain-export.exe"; DestDir: "{app}"; Flags: comparetimestamp Source: "bin\monero-blockchain-export.exe"; DestDir: "{app}"; Flags: comparetimestamp
Source: "bin\monero-blockchain-import.exe"; DestDir: "{app}"; Flags: comparetimestamp Source: "bin\monero-blockchain-import.exe"; DestDir: "{app}"; Flags: comparetimestamp
Source: "bin\monero-utils-deserialize.exe"; DestDir: "{app}"; Flags: comparetimestamp
; was present in 0.10.3.1, not present anymore in 0.11.1.0
; Source: "bin\monero-utils-deserialize.exe"; DestDir: "{app}"; Flags: comparetimestamp
; Various .qm files for translating the wallet UI "on the fly" into all supported languages ; Various .qm files for translating the wallet UI "on the fly" into all supported languages
Source: "bin\translations\*"; DestDir: "{app}\translations"; Flags: recursesubdirs comparetimestamp Source: "bin\translations\*"; DestDir: "{app}\translations"; Flags: recursesubdirs comparetimestamp
@@ -167,8 +161,7 @@ Source: "bin\libicuuc57.dll"; DestDir: "{app}"; Flags: comparetimestamp
Source: "bin\libintl-8.dll"; DestDir: "{app}"; Flags: comparetimestamp Source: "bin\libintl-8.dll"; DestDir: "{app}"; Flags: comparetimestamp
; JasPer, support for JPEG-2000 ; JasPer, support for JPEG-2000
; was present in 0.10.3.1, not present anymore in 0.11.1.0 Source: "bin\libjasper-1.dll"; DestDir: "{app}"; Flags: comparetimestamp
; Source: "bin\libjasper-1.dll"; DestDir: "{app}"; Flags: comparetimestamp
; libjpeg, C library for reading and writing JPEG image files ; libjpeg, C library for reading and writing JPEG image files
Source: "bin\libjpeg-8.dll"; DestDir: "{app}"; Flags: comparetimestamp Source: "bin\libjpeg-8.dll"; DestDir: "{app}"; Flags: comparetimestamp
@@ -235,7 +228,7 @@ begin
// Additional wizard page for entering a special blockchain location // Additional wizard page for entering a special blockchain location
blockChainDefaultDir := ExpandConstant('{commonappdata}\bitmonero'); blockChainDefaultDir := ExpandConstant('{commonappdata}\bitmonero');
s := 'The default folder to store the Monero blockchain is ' + blockChainDefaultDir; s := 'The default folder to store the Monero blockchain is ' + blockChainDefaultDir;
s := s + '. As this will need more than 30 GB of free space, you may want to use a folder on a different drive.'; s := s + '. As this will need up to 20 GB of free space, you may want to use a folder on a different drive.';
s := s + ' If yes, specify that folder here.'; s := s + ' If yes, specify that folder here.';
BlockChainDirPage := CreateInputDirPage(wpSelectDir, BlockChainDirPage := CreateInputDirPage(wpSelectDir,
@@ -341,10 +334,7 @@ Name: "{group}\Uninstall GUI Wallet"; Filename: "{uninstallexe}"
; and insists on displaying ALL icons on one single level ; and insists on displaying ALL icons on one single level
Name: "{group}\Utilities\Monero Daemon"; Filename: "{app}\monerod.exe"; Parameters: {code:DaemonFlags} Name: "{group}\Utilities\Monero Daemon"; Filename: "{app}\monerod.exe"; Parameters: {code:DaemonFlags}
Name: "{group}\Utilities\Read Me"; Filename: "{app}\ReadMe.htm" Name: "{group}\Utilities\Read Me"; Filename: "{app}\ReadMe.htm"
Name: "{group}\Utilities\Textual (CLI) Wallet"; Filename: "{app}\monero-wallet-cli.exe"
; CLI wallet: Needs a working directory ("Start in:") set in the icon, because with no such directory set
; it tries to create new wallets without a path given in the probably non-writable program folder and will abort with an error
Name: "{group}\Utilities\Textual (CLI) Wallet"; Filename: "{app}\monero-wallet-cli.exe"; WorkingDir: "{userdocs}\Monero\wallets"
; Icons for troubleshooting problems / testing / debugging ; Icons for troubleshooting problems / testing / debugging
; To show that they are in some way different (not for everyday use), make them visually different ; To show that they are in some way different (not for everyday use), make them visually different

View File

@@ -1,28 +1,26 @@
# Monero GUI Wallet Windows Installer # # Monero GUI Wallet Beta 2 Windows Installer #
Copyright (c) 2014-2017, The Monero Project Copyright (c) 2014-2017, The Monero Project
## Introduction ## ## Introduction ##
This is a *Inno Setup* script `Monero.iss` plus some related files This is a *Inno Setup* script `Monero.iss` plus some related files that
that allows you to build a standalone Windows installer (.exe) for allows you to build a standalone Windows installer (.exe) for the
the GUI wallet that comes with the Helium Hydra release of Monero. Monero GUI Wallet Beta 2.
This turns the GUI wallet into a more or less standard Windows program, This turns the GUI Wallet into a more or less standard Windows program,
by default installed into a subdirectory of `C:\Program Files`, a by default installed into a subdirectory of `C:\Program Files`, a
program group with some icons in the *Start* menu, and automatic program group with some icons in the *Start* menu, and automatic
uninstall support. It helps lowering the "barrier to entry" uninstall support. It helps lower the "barrier to entry" somewhat,
somewhat, especially for less technically experienced users of especially for less technically experienced users of Monero.
Monero.
As the setup script in file [Monero.iss](Monero.iss) has to list every As the setup script in file [Monero.iss](Monero.iss) has to list every
single file of the GUI wallet package to install by name, single file of the GUI Wallet package to install by name, this version
this version of the script only works with exactly the GUI wallet of the script only works with exactly the GUI Beta 2 that you find on
for Monero release *Helium Hydra* that you find on
[the official download page](https://getmonero.org/downloads/). [the official download page](https://getmonero.org/downloads/).
But of course it will be easy to modify the script for future But of course it will be easy to modify the script for future versions
versions of the GUI wallet. of the GUI Wallet.
## License ## ## License ##
@@ -30,15 +28,14 @@ See [LICENSE](LICENSE).
## Building ## ## Building ##
You can only build on Windows, and the result is always a You can only build on Windows, and the result is always a Windows .exe
Windows .exe file that can act as a standalone installer for the file that can act as a standalone installer for the GUI Wallet Beta 2.
Helium Hydra GUI wallet.
The build steps in detail: The build steps in detail:
1. Install *Inno Setup*. You can get it from [here](http://www.jrsoftware.org/isdl.php) 1. Install *Inno Setup*. You can get it from [here](http://www.jrsoftware.org/isdl.php)
2. Get the Inno Setup script plus related files by cloning the whole [monero-core GitHub repository](https://github.com/monero-project/monero-core); you will only need the files in the installer directory `installers\windows` however 2. Get the Inno Setup script plus related files by cloning the whole [monero-core](https://github.com/monero-project/monero-core) repository; you will only need the files in the installer directory `installers\windows` however
3. The setup script is written to take the GUI wallet files from a subdirectory named `bin`; so create `installers\windows\bin`, get the zip file of the GUI wallet from [here](https://getmonero.org/downloads/), unpack it somewhere, and copy all the files and subdirectories in the `monero-gui-0.11.1.0` directory to this `bin` subdirectory 3. The setup script is written to take the GUI Wallet files from a subdirectory named `bin`; so create `installers\windows\bin`, get the zip file of the GUI Wallet Beta 2 from [here](https://getmonero.org/downloads/), unpack it somewhere, and copy all the files and subdirectories in the `monero-gui-0.10.3.1-beta2` directory to this `bin` subdirectory
4. Start Inno Setup, load `Monero.iss` and compile it 4. Start Inno Setup, load `Monero.iss` and compile it.
5. The result i.e. the finished installer will be the file `mysetup.exe` in the `installers\windows\Output` subdirectory 5. The result i.e. the finished installer will be the file `mysetup.exe` in the `installers\windows\Output` subdirectory

View File

@@ -1,13 +1,13 @@
<html> <html>
<head> <head>
<title>Monero Helium Hydra GUI Wallet</title> <title>Monero GUI Wallet Beta 2</title>
</head> </head>
<body style="font-family: Arial, Helvetica, sans-serif"> <body style="font-family: Arial, Helvetica, sans-serif">
<h1>Monero Helium Hydra GUI Wallet</h1> <h1>Monero GUI Wallet Beta 2</h1>
<p>Copyright (c) 2014-2017, The Monero Project<br> <p>Copyright (c) 2014-2017, The Monero Project<br>
Date: September 19, 2017</p> Date: June 28, 2017</p>
<h2>Preface</h2> <h2>Preface</h2>
@@ -23,8 +23,8 @@
<h2>Content of the Package</h2> <h2>Content of the Package</h2>
<p>You just installed the <i>Monero GUI wallet</i> for Windows, release Helium Hydra, more exact version 0.11.1.0. <p>You just installed the Beta 2 of the <i>Monero GUI Wallet</i> for Windows, more exact version 0.10.3.1. The wallet
The wallet enables you to send and receive Moneroj in a secure and very private way. enables you to send and receive moneroj in a secure and very private way.
</p> </p>
<p>Also included is the <i>Monero daemon</i>, so you have everything now to run a so-called <i>full node</i> <p>Also included is the <i>Monero daemon</i>, so you have everything now to run a so-called <i>full node</i>
@@ -35,21 +35,6 @@
<a href="https://getmonero.org/downloads/">Downloads</a> page on <a href="https://getmonero.org/home">getmonero.org</a>, <a href="https://getmonero.org/downloads/">Downloads</a> page on <a href="https://getmonero.org/home">getmonero.org</a>,
the official Monero site.</p> the official Monero site.</p>
<h2>Upgrading</h2>
<p>If you have already a release of the GUI wallet software on your computer that was installed with the help
of this installer (in an earlier version), upgrading is easy: Just run the new installer; there is no need to
uninstall the old Monero release first.</p>
<p>But if you run a release of the GUI wallet software that you downloaded as a .zip file and unzipped into a
folder, if you "installed it manually" so to say, don't try to upgrade by pointing the installer to that folder,
because this might lead to problems e.g. if you try to uninstall everything later.</p>
<p>It's better to let the installer put the software into another folder and then delete the old folder, either
outright or after moving away any additional files that you may have stored there. (If you did not change
default locations for wallets and the blockchain, you don't have to worry about them, they won't be in that
particular folder, but elsewhere "in safety".)</p>
<h2>Access to the Blockchain</h2> <h2>Access to the Blockchain</h2>
<p>Any Monero wallet needs access to the <i>blockchain</i>, the ongoing ledger of all Monero transactions. For the <p>Any Monero wallet needs access to the <i>blockchain</i>, the ongoing ledger of all Monero transactions. For the
@@ -61,7 +46,7 @@
provides the most security and privacy possible for you.</p> provides the most security and privacy possible for you.</p>
<p>However if your Internet access makes it difficult to run a full node, or if you have simply no room to store <p>However if your Internet access makes it difficult to run a full node, or if you have simply no room to store
the blockchain locally (over 30 GB in fall 2017, and of course growing), you can compromise and try to connect the blockchain locally (over 17 GB in summer 2017, and of course growing), you can compromise and try to connect
to a remote node. One way of finding such a node is checking to a remote node. One way of finding such a node is checking
<a href="https://moneroworld.com/pages/nodes.html">this page</a>. <a href="https://moneroworld.com/pages/nodes.html">this page</a>.
</p> </p>
@@ -105,13 +90,21 @@
<h2>Troubleshooting</h2> <h2>Troubleshooting</h2>
<p>The Monero software and especially the GUI wallet are "work in progress", and sometimes things go wrong.</p> <p>The Monero software and especially the GUI wallet are "work in progress", as you can expect seeing the word
<i>Beta</i> in the name of the package, and sometimes things go wrong.</p>
<p>Please note that despite any technical problems that you may encounter your moneroj are almost always safe: You may <p>Please note that despite any technical problems that you may encounter your moneroj are almost always safe: You may
not be able to move them or you even may not see how many you currently have, but you most probably won't loose any. not be able to move them or you even may not see how many you currently have, but you most probably won't loose any.
But do remember that the seed needed to re-create the wallet <b>is</b> critical, however: <b>Never loose your But do remember that the seed needed to re-create the wallet <b>is</b> critical, however: <b>Never loose your
seed!</b></p> seed!</b></p>
<p>There is a <b>bug</b> in this beta of the GUI wallet that triggers if it is installed in a path that contains spaces /
blank characters, like the default location for Windows programs <i>C:\Program Files</i> unfortunately does.
Symptoms are problems in the communication between the wallet and the daemon, e.g. the wallet not "seeing" the
daemon and then not knowing whether it is "synchronized" with the network and thus ready to work or not. You can
avoid these problems by starting the daemon yourself, with the help of the <i>Monero Daemon</i> icon in the
<i>Utilities</i> sub-folder of the Monero program group.</p>
<p>In the <i>Utilities</i> sub-folder there are several more icons that may help you to solve problems. <p>In the <i>Utilities</i> sub-folder there are several more icons that may help you to solve problems.
These are the icons with a <i>x</i> in front and the name <i>(in parenthesis)</i> to make them visually stand These are the icons with a <i>x</i> in front and the name <i>(in parenthesis)</i> to make them visually stand
apart from the "normal" ones because you will probably only need them in case of trouble, but not during normal apart from the "normal" ones because you will probably only need them in case of trouble, but not during normal
@@ -149,15 +142,15 @@
<tr> <tr>
<td><i>x (Check GUI Wallet Log)</i></td> <td><i>x (Check GUI Wallet Log)</i></td>
<td>Open the log with status and error messages of the GUI wallet program in Notepad; <td>Open the log with status and error messages of the GUI wallet program in Notepad;
experienced people have a chance to diagnose technical problems with the wallet, experienced people have a chance to diagnose technical problems with the wallet by looking at the last few lines
usually by looking at the last few lines of this log</td> of this log</td>
</tr> </tr>
<tr> <tr>
<td><i>x (Check Daemon Log)</i></td> <td><i>x (Check Daemon Log)</i></td>
<td> <td>
Open the log with status and error messages of the daemon in Notepad; again, the last few Open the log with status and error messages of the daemon in Notepad; again, the last few
lines of this (possible very long) log are usually the most important for troubleshooting lines of this (possible very long) log are the most important for troubleshooting
</td> </td>
</tr> </tr>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 440 KiB

After

Width:  |  Height:  |  Size: 440 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

View File

@@ -37,5 +37,4 @@ List of available languages for your wallet's seed:
<language display_name="繁體中文 (台灣)" locale="zh-tw_CN" wallet_language="English" flag="/lang/flags/taiwan.png" qs="none"/> <language display_name="繁體中文 (台灣)" locale="zh-tw_CN" wallet_language="English" flag="/lang/flags/taiwan.png" qs="none"/>
<language display_name="עברית" locale="he_HE" wallet_language="English" flag="/lang/flags/israel.png" qs="none"/> <language display_name="עברית" locale="he_HE" wallet_language="English" flag="/lang/flags/israel.png" qs="none"/>
<language display_name="한국어" locale="ko_KO" wallet_language="English" flag="/lang/flags/south_korea.png" qs="none"/> <language display_name="한국어" locale="ko_KO" wallet_language="English" flag="/lang/flags/south_korea.png" qs="none"/>
<language display_name="Română" locale="ro_RO" wallet_language="English" flag="/lang/flags/romania.png" qs="none"/>
</languages> </languages>

View File

@@ -880,7 +880,7 @@ ApplicationWindow {
property bool allow_background_mining : false property bool allow_background_mining : false
property bool miningIgnoreBattery : true property bool miningIgnoreBattery : true
property bool testnet: false property bool testnet: false
property string daemon_address: testnet ? "localhost:28081" : "localhost:18081" property string daemon_address: "localhost:18081"
property string payment_id property string payment_id
property int restore_height : 0 property int restore_height : 0
property bool is_recovering : false property bool is_recovering : false
@@ -912,25 +912,13 @@ ApplicationWindow {
id: transactionConfirmationPopup id: transactionConfirmationPopup
onAccepted: { onAccepted: {
close(); close();
transactionConfirmationPasswordDialog.onAcceptedCallback = function() {
if(appWindow.password === transactionConfirmationPasswordDialog.password){ // Save transaction to file if view only wallet
// Save transaction to file if view only wallet if(viewOnly) {
if(viewOnly) { saveTxDialog.open();
saveTxDialog.open(); return;
} else { } else
handleTransactionConfirmed() handleTransactionConfirmed()
}
} else {
informationPopup.title = qsTr("Error") + translationManager.emptyString;
informationPopup.text = qsTr("Wrong password");
informationPopup.open()
informationPopup.onCloseCallback = function() {
transactionConfirmationPasswordDialog.open()
}
}
transactionConfirmationPasswordDialog.password = ""
}
transactionConfirmationPasswordDialog.open()
} }
} }
@@ -980,15 +968,6 @@ ApplicationWindow {
} }
PasswordDialog {
id: transactionConfirmationPasswordDialog
property var onAcceptedCallback
onAccepted: {
if (onAcceptedCallback())
onAcceptedCallback();
}
}
DaemonManagerDialog { DaemonManagerDialog {
id: daemonManagerDialog id: daemonManagerDialog
onRejected: { onRejected: {

View File

@@ -91,8 +91,7 @@ LIBS += -L$$WALLET_ROOT/lib \
-lwallet_merged \ -lwallet_merged \
-lepee \ -lepee \
-lunbound \ -lunbound \
-leasylogging \ -leasylogging
-lreadline \
} }
@@ -304,7 +303,6 @@ TRANSLATIONS = \ # English is default language, no explicit translation file
$$PWD/translations/monero-core_zh-tw.ts \ # Chinese (Traditional-Taiwan) $$PWD/translations/monero-core_zh-tw.ts \ # Chinese (Traditional-Taiwan)
$$PWD/translations/monero-core_he.ts \ # Hebrew $$PWD/translations/monero-core_he.ts \ # Hebrew
$$PWD/translations/monero-core_ko.ts \ # Korean $$PWD/translations/monero-core_ko.ts \ # Korean
$$PWD/translations/monero-core_ro.ts \ # Romanian
CONFIG(release, debug|release) { CONFIG(release, debug|release) {
DESTDIR = release/bin DESTDIR = release/bin

View File

@@ -497,76 +497,9 @@ Rectangle {
text: qsTr("Embedded Monero version: ") + Version.GUI_MONERO_VERSION + translationManager.emptyString text: qsTr("Embedded Monero version: ") + Version.GUI_MONERO_VERSION + translationManager.emptyString
} }
TextBlock { TextBlock {
id: restoreHeightText
Layout.fillWidth: true Layout.fillWidth: true
textFormat: Text.RichText text: (typeof currentWallet == "undefined") ? "" : qsTr("Wallet creation height: ") + currentWallet.walletCreationHeight + translationManager.emptyString
property var txt: "<style type='text/css'>a {text-decoration: none; color: #FF6C3C}</style>" + qsTr("Wallet creation height: ") + currentWallet.walletCreationHeight + translationManager.emptyString
property var linkTxt: qsTr(" <a href='#'>(Click to change)</a>") + translationManager.emptyString
text: (typeof currentWallet == "undefined") ? "" : txt + linkTxt
onLinkActivated: {
restoreHeightRow.visible = true;
}
} }
RowLayout {
id: restoreHeightRow
visible: false
LineEdit {
id: restoreHeight
Layout.preferredWidth: 80
Layout.fillWidth: true
text: currentWallet.walletCreationHeight
validator: IntValidator {
bottom:0
}
}
StandardButton {
id: restoreHeightSave
Layout.fillWidth: false
Layout.leftMargin: 30
text: qsTr("Save") + translationManager.emptyString
shadowReleasedColor: "#FF4304"
shadowPressedColor: "#B32D00"
releasedColor: "#FF6C3C"
pressedColor: "#FF4304"
onClicked: {
currentWallet.walletCreationHeight = restoreHeight.text
// Restore height is saved in .keys file. Set password to trigger rewrite.
currentWallet.setPassword(appWindow.password)
restoreHeightRow.visible = false
// Show confirmation dialog
confirmationDialog.title = qsTr("Rescan wallet cache") + translationManager.emptyString;
confirmationDialog.text = qsTr("Are you sure you want to rebuild the wallet cache?\n"
+ "The following information will be deleted\n"
+ "- Recipient addresses\n"
+ "- Tx keys\n"
+ "- Tx descriptions\n\n"
+ "The old wallet cache file will be renamed and can be restored later.\n"
);
confirmationDialog.icon = StandardIcon.Question
confirmationDialog.cancelText = qsTr("Cancel")
confirmationDialog.onAcceptedCallback = function() {
walletManager.closeWallet();
walletManager.clearWalletCache(persistentSettings.wallet_path);
walletManager.openWalletAsync(persistentSettings.wallet_path, appWindow.password,
persistentSettings.testnet);
}
confirmationDialog.onRejectedCallback = null;
confirmationDialog.open()
}
}
}
TextBlock { TextBlock {
Layout.fillWidth: true Layout.fillWidth: true
text: (typeof currentWallet == "undefined") ? "" : qsTr("Wallet log path: ") + currentWallet.walletLogPath + translationManager.emptyString text: (typeof currentWallet == "undefined") ? "" : qsTr("Wallet log path: ") + currentWallet.walletLogPath + translationManager.emptyString

View File

@@ -45,7 +45,7 @@ Rectangle {
property bool showAdvanced: false property bool showAdvanced: false
function scaleValueToMixinCount(scaleValue) { function scaleValueToMixinCount(scaleValue) {
var scaleToMixinCount = [4,5,6,7,8,9,10,11,12,14,16,18,21,25]; var scaleToMixinCount = [4,5,6,7,8,9,10,11,12,13,14,15,20,25];
if (scaleValue < scaleToMixinCount.length) { if (scaleValue < scaleToMixinCount.length) {
return scaleToMixinCount[scaleValue]; return scaleToMixinCount[scaleValue];
} else { } else {

View File

@@ -121,7 +121,6 @@
<file>lang/flags/usa.png</file> <file>lang/flags/usa.png</file>
<file>lang/flags/israel.png</file> <file>lang/flags/israel.png</file>
<file>lang/flags/south_korea.png</file> <file>lang/flags/south_korea.png</file>
<file>lang/flags/romania.png</file>
<file>wizard/WizardManageWalletUI.qml</file> <file>wizard/WizardManageWalletUI.qml</file>
<file>wizard/WizardRecoveryWallet.qml</file> <file>wizard/WizardRecoveryWallet.qml</file>
<file>wizard/WizardMemoTextInput.qml</file> <file>wizard/WizardMemoTextInput.qml</file>

View File

@@ -45,7 +45,7 @@ QList<TransactionInfo *> TransactionHistory::getAll() const
if (ti->timestamp() <= firstDateTime) { if (ti->timestamp() <= firstDateTime) {
firstDateTime = ti->timestamp(); firstDateTime = ti->timestamp();
} }
quint64 requiredConfirmations = (ti->blockHeight() < ti->unlockTime()) ? ti->unlockTime() - ti->blockHeight() : 10; quint64 requiredConfirmations = (ti->blockHeight() < ti->unlockTime()) ? ti->unlockTime() - ti->blockHeight() : 0;
// store last tx height // store last tx height
if (ti->confirmations() < requiredConfirmations && ti->blockHeight() >= lastTxHeight) { if (ti->confirmations() < requiredConfirmations && ti->blockHeight() >= lastTxHeight) {
lastTxHeight = ti->blockHeight(); lastTxHeight = ti->blockHeight();

View File

@@ -207,7 +207,6 @@ void Wallet::initAsync(const QString &daemonAddress, quint64 upperTransactionLim
QFuture<bool> future = watcher->future(); QFuture<bool> future = watcher->future();
watcher->deleteLater(); watcher->deleteLater();
if(future.result()){ if(future.result()){
emit walletCreationHeightChanged();
qDebug() << "init async finished - starting refresh"; qDebug() << "init async finished - starting refresh";
connected(true); connected(true);
m_walletImpl->startRefresh(); m_walletImpl->startRefresh();
@@ -600,12 +599,6 @@ bool Wallet::useForkRules(quint8 required_version, quint64 earlyBlocks) const
} }
} }
void Wallet::setWalletCreationHeight(quint64 height)
{
m_walletImpl->setRefreshFromBlockHeight(height);
emit walletCreationHeightChanged();
}
QString Wallet::getDaemonLogPath() const QString Wallet::getDaemonLogPath() const
{ {
return QString::fromStdString(m_walletImpl->getDefaultDataDir()) + "/bitmonero.log"; return QString::fromStdString(m_walletImpl->getDefaultDataDir()) + "/bitmonero.log";

View File

@@ -47,7 +47,7 @@ class Wallet : public QObject
Q_PROPERTY(QString publicSpendKey READ getPublicSpendKey) Q_PROPERTY(QString publicSpendKey READ getPublicSpendKey)
Q_PROPERTY(QString daemonLogPath READ getDaemonLogPath CONSTANT) Q_PROPERTY(QString daemonLogPath READ getDaemonLogPath CONSTANT)
Q_PROPERTY(QString walletLogPath READ getWalletLogPath CONSTANT) Q_PROPERTY(QString walletLogPath READ getWalletLogPath CONSTANT)
Q_PROPERTY(quint64 walletCreationHeight READ getWalletCreationHeight WRITE setWalletCreationHeight NOTIFY walletCreationHeightChanged) Q_PROPERTY(quint64 walletCreationHeight READ getWalletCreationHeight CONSTANT)
public: public:
@@ -245,8 +245,6 @@ public:
QString getPublicSpendKey() const {return QString::fromStdString(m_walletImpl->publicSpendKey());} QString getPublicSpendKey() const {return QString::fromStdString(m_walletImpl->publicSpendKey());}
quint64 getWalletCreationHeight() const {return m_walletImpl->getRefreshFromBlockHeight();} quint64 getWalletCreationHeight() const {return m_walletImpl->getRefreshFromBlockHeight();}
void setWalletCreationHeight(quint64 height);
QString getDaemonLogPath() const; QString getDaemonLogPath() const;
QString getWalletLogPath() const; QString getWalletLogPath() const;
@@ -265,7 +263,6 @@ signals:
void unconfirmedMoneyReceived(const QString &txId, quint64 amount); void unconfirmedMoneyReceived(const QString &txId, quint64 amount);
void newBlock(quint64 height, quint64 targetHeight); void newBlock(quint64 height, quint64 targetHeight);
void historyModelChanged() const; void historyModelChanged() const;
void walletCreationHeightChanged();
// emitted when transaction is created async // emitted when transaction is created async
void transactionCreated(PendingTransaction * transaction, QString address, QString paymentId, quint32 mixinCount); void transactionCreated(PendingTransaction * transaction, QString address, QString paymentId, quint32 mixinCount);

View File

@@ -3,7 +3,6 @@
#include "TransactionInfo.h" #include "TransactionInfo.h"
#include <QDateTime> #include <QDateTime>
#include <QDebug>
TransactionHistoryModel::TransactionHistoryModel(QObject *parent) TransactionHistoryModel::TransactionHistoryModel(QObject *parent)
@@ -87,7 +86,7 @@ QVariant TransactionHistoryModel::data(const QModelIndex &index, int role) const
result = tInfo->confirmations(); result = tInfo->confirmations();
break; break;
case TransactionConfirmationsRequiredRole: case TransactionConfirmationsRequiredRole:
result = (tInfo->blockHeight() < tInfo->unlockTime()) ? tInfo->unlockTime() - tInfo->blockHeight() : 10; result = (tInfo->blockHeight() < tInfo->unlockTime()) ? tInfo->unlockTime() - tInfo->blockHeight() : 0;
break; break;
case TransactionHashRole: case TransactionHashRole:
result = tInfo->hash(); result = tInfo->hash();

View File

@@ -16,12 +16,12 @@
<message> <message>
<location filename="../pages/AddressBook.qml" line="71"/> <location filename="../pages/AddressBook.qml" line="71"/>
<source>QRCODE</source> <source>QRCODE</source>
<translation>QR koodi</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../pages/AddressBook.qml" line="93"/> <location filename="../pages/AddressBook.qml" line="93"/>
<source>4...</source> <source>4...</source>
<translation>4...</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../pages/AddressBook.qml" line="102"/> <location filename="../pages/AddressBook.qml" line="102"/>
@@ -31,37 +31,37 @@
<message> <message>
<location filename="../pages/AddressBook.qml" line="114"/> <location filename="../pages/AddressBook.qml" line="114"/>
<source>Paste 64 hexadecimal characters</source> <source>Paste 64 hexadecimal characters</source>
<translation>Liitä 64 heksadesimaalimerkkiä</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../pages/AddressBook.qml" line="123"/> <location filename="../pages/AddressBook.qml" line="123"/>
<source>Description &lt;font size=&apos;2&apos;&gt;(Optional)&lt;/font&gt;</source> <source>Description &lt;font size=&apos;2&apos;&gt;(Optional)&lt;/font&gt;</source>
<translation>Kuvaus &lt;font size=&apos;2&apos;&gt;(Valinnainen)&lt;/font&gt;</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../pages/AddressBook.qml" line="135"/> <location filename="../pages/AddressBook.qml" line="135"/>
<source>Give this entry a name or description</source> <source>Give this entry a name or description</source>
<translation>Anna tähän nimi tai kuvaus</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../pages/AddressBook.qml" line="151"/> <location filename="../pages/AddressBook.qml" line="151"/>
<source>Add</source> <source>Add</source>
<translation>Lisää</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../pages/AddressBook.qml" line="156"/> <location filename="../pages/AddressBook.qml" line="156"/>
<source>Error</source> <source>Error</source>
<translation>Virhe</translation> <translation type="unfinished">Virhe</translation>
</message> </message>
<message> <message>
<location filename="../pages/AddressBook.qml" line="159"/> <location filename="../pages/AddressBook.qml" line="159"/>
<source>Invalid address</source> <source>Invalid address</source>
<translation>Virheellinen osoite</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../pages/AddressBook.qml" line="163"/> <location filename="../pages/AddressBook.qml" line="163"/>
<source>Can&apos;t create entry</source> <source>Can&apos;t create entry</source>
<translation>Ei voida lisätä merkintää</translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
@@ -105,12 +105,12 @@
<message> <message>
<location filename="../components/DaemonConsole.qml" line="117"/> <location filename="../components/DaemonConsole.qml" line="117"/>
<source>Close</source> <source>Close</source>
<translation>Sulje</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../components/DaemonConsole.qml" line="128"/> <location filename="../components/DaemonConsole.qml" line="128"/>
<source>command + enter (e.g help)</source> <source>command + enter (e.g help)</source>
<translation>Käsky + enter (esim. help)</translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
@@ -118,17 +118,17 @@
<message> <message>
<location filename="../components/DaemonManagerDialog.qml" line="93"/> <location filename="../components/DaemonManagerDialog.qml" line="93"/>
<source>Starting Monero daemon in %1 seconds</source> <source>Starting Monero daemon in %1 seconds</source>
<translation>Käynnistetään Monero taustaohjelma %1 sekunnin kuluttua</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../components/DaemonManagerDialog.qml" line="115"/> <location filename="../components/DaemonManagerDialog.qml" line="115"/>
<source>Start daemon (%1)</source> <source>Start daemon (%1)</source>
<translation>Käynnistä taustaohjelma (%1)</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../components/DaemonManagerDialog.qml" line="132"/> <location filename="../components/DaemonManagerDialog.qml" line="132"/>
<source>Use custom settings</source> <source>Use custom settings</source>
<translation>Käytä omavalintaisia asetuksia</translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
@@ -187,12 +187,12 @@
<message> <message>
<location filename="../pages/History.qml" line="183"/> <location filename="../pages/History.qml" line="183"/>
<source>Type for incremental search...</source> <source>Type for incremental search...</source>
<translation>Kirjoita hakeaksesi...</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../pages/History.qml" line="276"/> <location filename="../pages/History.qml" line="276"/>
<source>Filter</source> <source>Filter</source>
<translation>Filtteri</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../pages/History.qml" line="223"/> <location filename="../pages/History.qml" line="223"/>
@@ -248,7 +248,7 @@
<message> <message>
<location filename="../components/HistoryTable.qml" line="52"/> <location filename="../components/HistoryTable.qml" line="52"/>
<source>Destinations:</source> <source>Destinations:</source>
<translation>Kohteet:</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../components/HistoryTable.qml" line="78"/> <location filename="../components/HistoryTable.qml" line="78"/>
@@ -268,17 +268,17 @@
<message> <message>
<location filename="../components/HistoryTable.qml" line="266"/> <location filename="../components/HistoryTable.qml" line="266"/>
<source>(%1/10 confirmations)</source> <source>(%1/10 confirmations)</source>
<translation>(%1/10 vahvistusta)</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../components/HistoryTable.qml" line="270"/> <location filename="../components/HistoryTable.qml" line="270"/>
<source>UNCONFIRMED</source> <source>UNCONFIRMED</source>
<translation>VAHVISTAMATON</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../components/HistoryTable.qml" line="271"/> <location filename="../components/HistoryTable.qml" line="271"/>
<source>PENDING</source> <source>PENDING</source>
<translation>VIREILLÄ</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../components/HistoryTable.qml" line="300"/> <location filename="../components/HistoryTable.qml" line="300"/>
@@ -336,47 +336,47 @@
<message> <message>
<location filename="../LeftPanel.qml" line="93"/> <location filename="../LeftPanel.qml" line="93"/>
<source>Testnet</source> <source>Testnet</source>
<translation>Testnet</translation> <translation type="unfinished">Testnet</translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="304"/> <location filename="../LeftPanel.qml" line="304"/>
<source>Address book</source> <source>Address book</source>
<translation>Osoitekirja</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="305"/> <location filename="../LeftPanel.qml" line="305"/>
<source>B</source> <source>B</source>
<translation>B</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="354"/> <location filename="../LeftPanel.qml" line="354"/>
<source>H</source> <source>H</source>
<translation>H</translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="376"/> <location filename="../LeftPanel.qml" line="376"/>
<source>Advanced</source> <source>Advanced</source>
<translation>Edistynyt</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="377"/> <location filename="../LeftPanel.qml" line="377"/>
<source>D</source> <source>D</source>
<translation>D</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="398"/> <location filename="../LeftPanel.qml" line="398"/>
<source>Mining</source> <source>Mining</source>
<translation>Louhinta</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="399"/> <location filename="../LeftPanel.qml" line="399"/>
<source>M</source> <source>M</source>
<translation>M</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="422"/> <location filename="../LeftPanel.qml" line="422"/>
<source>Check payment</source> <source>Check payment</source>
<translation>Tarkista maksu</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="446"/> <location filename="../LeftPanel.qml" line="446"/>
@@ -386,17 +386,17 @@
<message> <message>
<location filename="../LeftPanel.qml" line="470"/> <location filename="../LeftPanel.qml" line="470"/>
<source>E</source> <source>E</source>
<translation>E</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="280"/> <location filename="../LeftPanel.qml" line="280"/>
<source>S</source> <source>S</source>
<translation>S</translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="447"/> <location filename="../LeftPanel.qml" line="447"/>
<source>I</source> <source>I</source>
<translation>I</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="469"/> <location filename="../LeftPanel.qml" line="469"/>
@@ -409,12 +409,12 @@
<message> <message>
<location filename="../MiddlePanel.qml" line="46"/> <location filename="../MiddlePanel.qml" line="46"/>
<source>Balance</source> <source>Balance</source>
<translation>Saldo</translation> <translation type="unfinished">Saldo</translation>
</message> </message>
<message> <message>
<location filename="../MiddlePanel.qml" line="48"/> <location filename="../MiddlePanel.qml" line="48"/>
<source>Unlocked Balance</source> <source>Unlocked Balance</source>
<translation>Lukittamaton Saldo</translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
@@ -422,17 +422,17 @@
<message> <message>
<location filename="../pages/Mining.qml" line="73"/> <location filename="../pages/Mining.qml" line="73"/>
<source>Solo mining</source> <source>Solo mining</source>
<translation>Soololouhinta</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../pages/Mining.qml" line="80"/> <location filename="../pages/Mining.qml" line="80"/>
<source>(only available for local daemons)</source> <source>(only available for local daemons)</source>
<translation>(saatavilla vain paikallisille taustaohjelmille)</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../pages/Mining.qml" line="86"/> <location filename="../pages/Mining.qml" line="86"/>
<source>Mining with your computer helps strengthen the Monero network. The more that people mine, the harder it is for the network to be attacked, and every little bit helps.&lt;br&gt; &lt;br&gt;Mining also gives you a small chance to earn some Monero. Your computer will create hashes looking for block solutions. If you find a block, you will get the associated reward. Good luck!</source> <source>Mining with your computer helps strengthen the Monero network. The more that people mine, the harder it is for the network to be attacked, and every little bit helps.&lt;br&gt; &lt;br&gt;Mining also gives you a small chance to earn some Monero. Your computer will create hashes looking for block solutions. If you find a block, you will get the associated reward. Good luck!</source>
<translation>Louhinta tietokoneellasi auttaa vahvistamaan Moneroverkkoa. Mitä enemmän ihmiset louhivat, sitä vaikeampaa on hyökätä verkkoon ja jokainen pieni osa auttaa.&lt;br&gt; &lt;br&gt;Louhinta myös antaa sinulle pienen mahdollisuuden ansaita vähän Moneroa. Tietokoneesi luo haketta etsien lohkon ratkaisuja. Jos löydät lohkon, saat siihen liittyvän palkinnon. Onnea!</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../pages/Mining.qml" line="96"/> <location filename="../pages/Mining.qml" line="96"/>
@@ -442,17 +442,17 @@
<message> <message>
<location filename="../pages/Mining.qml" line="104"/> <location filename="../pages/Mining.qml" line="104"/>
<source>(optional)</source> <source>(optional)</source>
<translation>(valinnainen)</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../pages/Mining.qml" line="116"/> <location filename="../pages/Mining.qml" line="116"/>
<source>Background mining (experimental)</source> <source>Background mining (experimental)</source>
<translation>Louhinta taustalla (kokeellinen)</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../pages/Mining.qml" line="132"/> <location filename="../pages/Mining.qml" line="132"/>
<source>Enable mining when running on battery</source> <source>Enable mining when running on battery</source>
<translation>Salli louhinta akkuvirralla</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../pages/Mining.qml" line="142"/> <location filename="../pages/Mining.qml" line="142"/>
@@ -462,12 +462,12 @@
<message> <message>
<location filename="../pages/Mining.qml" line="151"/> <location filename="../pages/Mining.qml" line="151"/>
<source>Start mining</source> <source>Start mining</source>
<translation>Aloita louhinta</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../pages/Mining.qml" line="161"/> <location filename="../pages/Mining.qml" line="161"/>
<source>Error starting mining</source> <source>Error starting mining</source>
<translation>Virhe louhinnan aloittamisessa</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../pages/Mining.qml" line="162"/> <location filename="../pages/Mining.qml" line="162"/>

View File

@@ -31,7 +31,7 @@
<message> <message>
<location filename="../pages/AddressBook.qml" line="114"/> <location filename="../pages/AddressBook.qml" line="114"/>
<source>Paste 64 hexadecimal characters</source> <source>Paste 64 hexadecimal characters</source>
<translation> 16 64 </translation> <translation>64 16 </translation>
</message> </message>
<message> <message>
<location filename="../pages/AddressBook.qml" line="123"/> <location filename="../pages/AddressBook.qml" line="123"/>
@@ -74,7 +74,7 @@
<message> <message>
<location filename="../components/AddressBookTable.qml" line="104"/> <location filename="../components/AddressBookTable.qml" line="104"/>
<source>Payment ID:</source> <source>Payment ID:</source>
<translation> :</translation> <translation> :</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -82,7 +82,7 @@
<message> <message>
<location filename="../BasicPanel.qml" line="97"/> <location filename="../BasicPanel.qml" line="97"/>
<source>Locked Balance:</source> <source>Locked Balance:</source>
<translation> :</translation> <translation> :</translation>
</message> </message>
<message> <message>
<location filename="../BasicPanel.qml" line="110"/> <location filename="../BasicPanel.qml" line="110"/>
@@ -92,7 +92,7 @@
<message> <message>
<location filename="../BasicPanel.qml" line="133"/> <location filename="../BasicPanel.qml" line="133"/>
<source>Available Balance:</source> <source>Available Balance:</source>
<translation> :</translation> <translation> :</translation>
</message> </message>
<message> <message>
<location filename="../BasicPanel.qml" line="146"/> <location filename="../BasicPanel.qml" line="146"/>
@@ -110,7 +110,7 @@
<message> <message>
<location filename="../components/DaemonConsole.qml" line="128"/> <location filename="../components/DaemonConsole.qml" line="128"/>
<source>command + enter (e.g help)</source> <source>command + enter (e.g help)</source>
<translation> + (: 도움)</translation> <translation> + (: 도움)</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -118,7 +118,7 @@
<message> <message>
<location filename="../components/DaemonManagerDialog.qml" line="93"/> <location filename="../components/DaemonManagerDialog.qml" line="93"/>
<source>Starting Monero daemon in %1 seconds</source> <source>Starting Monero daemon in %1 seconds</source>
<translation> %1 </translation> <translation>%1 </translation>
</message> </message>
<message> <message>
<location filename="../components/DaemonManagerDialog.qml" line="115"/> <location filename="../components/DaemonManagerDialog.qml" line="115"/>
@@ -177,17 +177,17 @@
<message> <message>
<location filename="../pages/History.qml" line="70"/> <location filename="../pages/History.qml" line="70"/>
<source> selected: </source> <source> selected: </source>
<translation> : </translation> <translation> : </translation>
</message> </message>
<message> <message>
<location filename="../pages/History.qml" line="135"/> <location filename="../pages/History.qml" line="135"/>
<source>Filter transaction history</source> <source>Filter transaction history</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/History.qml" line="183"/> <location filename="../pages/History.qml" line="183"/>
<source>Type for incremental search...</source> <source>Type for incremental search...</source>
<translation> ...</translation> <translation> ...</translation>
</message> </message>
<message> <message>
<location filename="../pages/History.qml" line="276"/> <location filename="../pages/History.qml" line="276"/>
@@ -218,7 +218,7 @@
<message> <message>
<location filename="../pages/History.qml" line="370"/> <location filename="../pages/History.qml" line="370"/>
<source>Amount from</source> <source>Amount from</source>
<translation> </translation> <translation></translation>
</message> </message>
</context> </context>
<context> <context>
@@ -226,23 +226,23 @@
<message> <message>
<location filename="../components/HistoryTable.qml" line="48"/> <location filename="../components/HistoryTable.qml" line="48"/>
<source>Tx ID:</source> <source>Tx ID:</source>
<translation> :</translation> <translation> :</translation>
</message> </message>
<message> <message>
<location filename="../components/HistoryTable.qml" line="49"/> <location filename="../components/HistoryTable.qml" line="49"/>
<location filename="../components/HistoryTable.qml" line="203"/> <location filename="../components/HistoryTable.qml" line="203"/>
<source>Payment ID:</source> <source>Payment ID:</source>
<translation> :</translation> <translation> :</translation>
</message> </message>
<message> <message>
<location filename="../components/HistoryTable.qml" line="50"/> <location filename="../components/HistoryTable.qml" line="50"/>
<source>Tx key:</source> <source>Tx key:</source>
<translation> :</translation> <translation> :</translation>
</message> </message>
<message> <message>
<location filename="../components/HistoryTable.qml" line="51"/> <location filename="../components/HistoryTable.qml" line="51"/>
<source>Tx note:</source> <source>Tx note:</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../components/HistoryTable.qml" line="52"/> <location filename="../components/HistoryTable.qml" line="52"/>
@@ -257,17 +257,17 @@
<message> <message>
<location filename="../components/HistoryTable.qml" line="110"/> <location filename="../components/HistoryTable.qml" line="110"/>
<source>Details</source> <source>Details</source>
<translation> </translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../components/HistoryTable.qml" line="251"/> <location filename="../components/HistoryTable.qml" line="251"/>
<source>BlockHeight:</source> <source>BlockHeight:</source>
<translation>:</translation> <translation>:</translation>
</message> </message>
<message> <message>
<location filename="../components/HistoryTable.qml" line="266"/> <location filename="../components/HistoryTable.qml" line="266"/>
<source>(%1/%2 confirmations)</source> <source>(%1/%2 confirmations)</source>
<translation type="unfinished">(%1/%2 }</translation> <translation type="unfinished">(%1/10 ) {1/%2 ?}</translation>
</message> </message>
<message> <message>
<location filename="../components/HistoryTable.qml" line="270"/> <location filename="../components/HistoryTable.qml" line="270"/>
@@ -305,7 +305,7 @@
<message> <message>
<location filename="../LeftPanel.qml" line="177"/> <location filename="../LeftPanel.qml" line="177"/>
<source>Unlocked balance</source> <source>Unlocked balance</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="279"/> <location filename="../LeftPanel.qml" line="279"/>
@@ -315,22 +315,22 @@
<message> <message>
<location filename="../LeftPanel.qml" line="329"/> <location filename="../LeftPanel.qml" line="329"/>
<source>Receive</source> <source>Receive</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="353"/> <location filename="../LeftPanel.qml" line="353"/>
<source>History</source> <source>History</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="93"/> <location filename="../LeftPanel.qml" line="93"/>
<source>Testnet</source> <source>Testnet</source>
<translation></translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="280"/> <location filename="../LeftPanel.qml" line="280"/>
<source>S</source> <source>S</source>
<translation type="unfinished">S</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="304"/> <location filename="../LeftPanel.qml" line="304"/>
@@ -340,17 +340,17 @@
<message> <message>
<location filename="../LeftPanel.qml" line="305"/> <location filename="../LeftPanel.qml" line="305"/>
<source>B</source> <source>B</source>
<translation type="unfinished">B</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="330"/> <location filename="../LeftPanel.qml" line="330"/>
<source>R</source> <source>R</source>
<translation type="unfinished">R</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="354"/> <location filename="../LeftPanel.qml" line="354"/>
<source>H</source> <source>H</source>
<translation type="unfinished">H</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="376"/> <location filename="../LeftPanel.qml" line="376"/>
@@ -360,7 +360,7 @@
<message> <message>
<location filename="../LeftPanel.qml" line="377"/> <location filename="../LeftPanel.qml" line="377"/>
<source>D</source> <source>D</source>
<translation type="unfinished">D</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="398"/> <location filename="../LeftPanel.qml" line="398"/>
@@ -370,7 +370,7 @@
<message> <message>
<location filename="../LeftPanel.qml" line="399"/> <location filename="../LeftPanel.qml" line="399"/>
<source>M</source> <source>M</source>
<translation type="unfinished">M</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="422"/> <location filename="../LeftPanel.qml" line="422"/>
@@ -380,7 +380,7 @@
<message> <message>
<location filename="../LeftPanel.qml" line="423"/> <location filename="../LeftPanel.qml" line="423"/>
<source>K</source> <source>K</source>
<translation type="unfinished">K</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="446"/> <location filename="../LeftPanel.qml" line="446"/>
@@ -390,17 +390,17 @@
<message> <message>
<location filename="../LeftPanel.qml" line="447"/> <location filename="../LeftPanel.qml" line="447"/>
<source>I</source> <source>I</source>
<translation type="unfinished">I</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="469"/> <location filename="../LeftPanel.qml" line="469"/>
<source>Settings</source> <source>Settings</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../LeftPanel.qml" line="470"/> <location filename="../LeftPanel.qml" line="470"/>
<source>E</source> <source>E</source>
<translation type="unfinished">E</translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context> <context>
@@ -413,7 +413,7 @@
<message> <message>
<location filename="../MiddlePanel.qml" line="48"/> <location filename="../MiddlePanel.qml" line="48"/>
<source>Unlocked Balance</source> <source>Unlocked Balance</source>
<translation> </translation> <translation> </translation>
</message> </message>
</context> </context>
<context> <context>
@@ -421,7 +421,7 @@
<message> <message>
<location filename="../pages/Mining.qml" line="73"/> <location filename="../pages/Mining.qml" line="73"/>
<source>Solo mining</source> <source>Solo mining</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Mining.qml" line="80"/> <location filename="../pages/Mining.qml" line="80"/>
@@ -431,7 +431,7 @@
<message> <message>
<location filename="../pages/Mining.qml" line="86"/> <location filename="../pages/Mining.qml" line="86"/>
<source>Mining with your computer helps strengthen the Monero network. The more that people mine, the harder it is for the network to be attacked, and every little bit helps.&lt;br&gt; &lt;br&gt;Mining also gives you a small chance to earn some Monero. Your computer will create hashes looking for block solutions. If you find a block, you will get the associated reward. Good luck!</source> <source>Mining with your computer helps strengthen the Monero network. The more that people mine, the harder it is for the network to be attacked, and every little bit helps.&lt;br&gt; &lt;br&gt;Mining also gives you a small chance to earn some Monero. Your computer will create hashes looking for block solutions. If you find a block, you will get the associated reward. Good luck!</source>
<translation> . . . , , . !</translation> <translation> . . . . . !</translation>
</message> </message>
<message> <message>
<location filename="../pages/Mining.qml" line="96"/> <location filename="../pages/Mining.qml" line="96"/>
@@ -446,12 +446,12 @@
<message> <message>
<location filename="../pages/Mining.qml" line="116"/> <location filename="../pages/Mining.qml" line="116"/>
<source>Background mining (experimental)</source> <source>Background mining (experimental)</source>
<translation> ( )</translation> <translation> ()</translation>
</message> </message>
<message> <message>
<location filename="../pages/Mining.qml" line="132"/> <location filename="../pages/Mining.qml" line="132"/>
<source>Enable mining when running on battery</source> <source>Enable mining when running on battery</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Mining.qml" line="142"/> <location filename="../pages/Mining.qml" line="142"/>
@@ -491,7 +491,7 @@
<message> <message>
<location filename="../pages/Mining.qml" line="203"/> <location filename="../pages/Mining.qml" line="203"/>
<source>Mining at %1 H/s</source> <source>Mining at %1 H/s</source>
<translation> %1 H/s </translation> <translation> %1 H/s</translation>
</message> </message>
<message> <message>
<location filename="../pages/Mining.qml" line="206"/> <location filename="../pages/Mining.qml" line="206"/>
@@ -509,7 +509,7 @@
<message> <message>
<location filename="../components/MobileHeader.qml" line="94"/> <location filename="../components/MobileHeader.qml" line="94"/>
<source>Unlocked Balance:</source> <source>Unlocked Balance:</source>
<translation> </translation> <translation> </translation>
</message> </message>
</context> </context>
<context> <context>
@@ -573,7 +573,7 @@
<message> <message>
<location filename="../components/PrivacyLevelSmall.qml" line="100"/> <location filename="../components/PrivacyLevelSmall.qml" line="100"/>
<source>Low</source> <source>Low</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../components/PrivacyLevelSmall.qml" line="109"/> <location filename="../components/PrivacyLevelSmall.qml" line="109"/>
@@ -583,7 +583,7 @@
<message> <message>
<location filename="../components/PrivacyLevelSmall.qml" line="118"/> <location filename="../components/PrivacyLevelSmall.qml" line="118"/>
<source>High</source> <source>High</source>
<translation></translation> <translation></translation>
</message> </message>
</context> </context>
<context> <context>
@@ -601,7 +601,7 @@
<message> <message>
<location filename="../components/ProgressBar.qml" line="100"/> <location filename="../components/ProgressBar.qml" line="100"/>
<source>Synchronizing blocks</source> <source>Synchronizing blocks</source>
<translation> </translation> <translation> </translation>
</message> </message>
</context> </context>
<context> <context>
@@ -609,7 +609,7 @@
<message> <message>
<location filename="../pages/Receive.qml" line="64"/> <location filename="../pages/Receive.qml" line="64"/>
<source>Invalid payment ID</source> <source>Invalid payment ID</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Receive.qml" line="107"/> <location filename="../pages/Receive.qml" line="107"/>
@@ -619,7 +619,7 @@
<message> <message>
<location filename="../pages/Receive.qml" line="129"/> <location filename="../pages/Receive.qml" line="129"/>
<source>in the txpool: %1</source> <source>in the txpool: %1</source>
<translation> : %1</translation> <translation> : %1</translation>
</message> </message>
<message> <message>
<location filename="../pages/Receive.qml" line="136"/> <location filename="../pages/Receive.qml" line="136"/>
@@ -649,12 +649,12 @@
<message> <message>
<location filename="../pages/Receive.qml" line="156"/> <location filename="../pages/Receive.qml" line="156"/>
<source> with more money (%1)</source> <source> with more money (%1)</source>
<translation> (%1)</translation> <translation> (%1)</translation>
</message> </message>
<message> <message>
<location filename="../pages/Receive.qml" line="158"/> <location filename="../pages/Receive.qml" line="158"/>
<source> with not enough money (%1)</source> <source> with not enough money (%1)</source>
<translation> (%1)</translation> <translation> (%1)</translation>
</message> </message>
<message> <message>
<location filename="../pages/Receive.qml" line="190"/> <location filename="../pages/Receive.qml" line="190"/>
@@ -664,17 +664,17 @@
<message> <message>
<location filename="../pages/Receive.qml" line="197"/> <location filename="../pages/Receive.qml" line="197"/>
<source>ReadOnly wallet address displayed here</source> <source>ReadOnly wallet address displayed here</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Receive.qml" line="230"/> <location filename="../pages/Receive.qml" line="230"/>
<source>16 hexadecimal characters</source> <source>16 hexadecimal characters</source>
<translation>16 16</translation> <translation>16 16 </translation>
</message> </message>
<message> <message>
<location filename="../pages/Receive.qml" line="266"/> <location filename="../pages/Receive.qml" line="266"/>
<source>Clear</source> <source>Clear</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../pages/Receive.qml" line="276"/> <location filename="../pages/Receive.qml" line="276"/>
@@ -729,7 +729,7 @@
<message> <message>
<location filename="../pages/Receive.qml" line="285"/> <location filename="../pages/Receive.qml" line="285"/>
<source>Generate payment ID for integrated address</source> <source>Generate payment ID for integrated address</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Receive.qml" line="309"/> <location filename="../pages/Receive.qml" line="309"/>
@@ -752,12 +752,12 @@
<message> <message>
<location filename="../RightPanel.qml" line="63"/> <location filename="../RightPanel.qml" line="63"/>
<source>Help</source> <source>Help</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../RightPanel.qml" line="64"/> <location filename="../RightPanel.qml" line="64"/>
<source>About</source> <source>About</source>
<translation></translation> <translation></translation>
</message> </message>
</context> </context>
<context> <context>
@@ -765,12 +765,12 @@
<message> <message>
<location filename="../components/SearchInput.qml" line="69"/> <location filename="../components/SearchInput.qml" line="69"/>
<source>Search by...</source> <source>Search by...</source>
<translation>... </translation> <translation> ...</translation>
</message> </message>
<message> <message>
<location filename="../components/SearchInput.qml" line="228"/> <location filename="../components/SearchInput.qml" line="228"/>
<source>SEARCH</source> <source>SEARCH</source>
<translation></translation> <translation></translation>
</message> </message>
</context> </context>
<context> <context>
@@ -819,7 +819,7 @@
<message> <message>
<location filename="../pages/Settings.qml" line="163"/> <location filename="../pages/Settings.qml" line="163"/>
<source>Rescan wallet balance</source> <source>Rescan wallet balance</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Settings.qml" line="172"/> <location filename="../pages/Settings.qml" line="172"/>
@@ -834,7 +834,7 @@
<message> <message>
<location filename="../pages/Settings.qml" line="178"/> <location filename="../pages/Settings.qml" line="178"/>
<source>Sucessfully rescanned spent outputs</source> <source>Sucessfully rescanned spent outputs</source>
<translation> .</translation> <translation> .</translation>
</message> </message>
<message> <message>
<location filename="../pages/Settings.qml" line="257"/> <location filename="../pages/Settings.qml" line="257"/>
@@ -884,7 +884,7 @@
<message> <message>
<location filename="../pages/Settings.qml" line="415"/> <location filename="../pages/Settings.qml" line="415"/>
<source>Custom decorations</source> <source>Custom decorations</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Settings.qml" line="426"/> <location filename="../pages/Settings.qml" line="426"/>
@@ -929,12 +929,12 @@
<message> <message>
<location filename="../pages/Settings.qml" line="585"/> <location filename="../pages/Settings.qml" line="585"/>
<source>Error: Filesystem is read only</source> <source>Error: Filesystem is read only</source>
<translation>오류: 해당 </translation> <translation>오류: </translation>
</message> </message>
<message> <message>
<location filename="../pages/Settings.qml" line="589"/> <location filename="../pages/Settings.qml" line="589"/>
<source>Warning: There&apos;s only %1 GB available on the device. Blockchain requires ~%2 GB of data.</source> <source>Warning: There&apos;s only %1 GB available on the device. Blockchain requires ~%2 GB of data.</source>
<translation>경고 : 해당장치에 %1 GB뿐입니다. ~ %2 GB의 .</translation> <translation>경고 : 장치에 %1 GB뿐입니다. ~ %2 GB의 .</translation>
</message> </message>
<message> <message>
<location filename="../pages/Settings.qml" line="591"/> <location filename="../pages/Settings.qml" line="591"/>
@@ -965,22 +965,22 @@
<message> <message>
<location filename="../pages/Settings.qml" line="527"/> <location filename="../pages/Settings.qml" line="527"/>
<source>Secret view key</source> <source>Secret view key</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Settings.qml" line="528"/> <location filename="../pages/Settings.qml" line="528"/>
<source>Public view key</source> <source>Public view key</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Settings.qml" line="529"/> <location filename="../pages/Settings.qml" line="529"/>
<source>Secret spend key</source> <source>Secret spend key</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Settings.qml" line="530"/> <location filename="../pages/Settings.qml" line="530"/>
<source>Public spend key</source> <source>Public spend key</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Settings.qml" line="540"/> <location filename="../pages/Settings.qml" line="540"/>
@@ -1003,33 +1003,33 @@
<message> <message>
<location filename="../pages/Sign.qml" line="68"/> <location filename="../pages/Sign.qml" line="68"/>
<source>Good signature</source> <source>Good signature</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Sign.qml" line="69"/> <location filename="../pages/Sign.qml" line="69"/>
<source>This is a good signature</source> <source>This is a good signature</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Sign.qml" line="73"/> <location filename="../pages/Sign.qml" line="73"/>
<source>Bad signature</source> <source>Bad signature</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Sign.qml" line="74"/> <location filename="../pages/Sign.qml" line="74"/>
<source>This signature did not verify</source> <source>This signature did not verify</source>
<translation> .</translation> <translation> .</translation>
</message> </message>
<message> <message>
<location filename="../pages/Sign.qml" line="111"/> <location filename="../pages/Sign.qml" line="111"/>
<source>Sign a message or file contents with your address:</source> <source>Sign a message or file contents with your address:</source>
<translation> :</translation> <translation> :</translation>
</message> </message>
<message> <message>
<location filename="../pages/Sign.qml" line="122"/> <location filename="../pages/Sign.qml" line="122"/>
<location filename="../pages/Sign.qml" line="294"/> <location filename="../pages/Sign.qml" line="294"/>
<source>Either message:</source> <source>Either message:</source>
<translation> :</translation> <translation> :</translation>
</message> </message>
<message> <message>
<location filename="../pages/Sign.qml" line="137"/> <location filename="../pages/Sign.qml" line="137"/>
@@ -1045,7 +1045,7 @@
<message> <message>
<location filename="../pages/Sign.qml" line="184"/> <location filename="../pages/Sign.qml" line="184"/>
<source>Please choose a file to sign</source> <source>Please choose a file to sign</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Sign.qml" line="197"/> <location filename="../pages/Sign.qml" line="197"/>
@@ -1067,7 +1067,7 @@
<message> <message>
<location filename="../pages/Sign.qml" line="419"/> <location filename="../pages/Sign.qml" line="419"/>
<source>&lt;style type=&apos;text/css&apos;&gt;a {text-decoration: none; color: #FF6C3C; font-size: 14px;}&lt;/style&gt; Signing address &lt;font size=&apos;2&apos;&gt; ( Paste in or select from &lt;/font&gt; &lt;a href=&apos;#&apos;&gt;Address book&lt;/a&gt;&lt;font size=&apos;2&apos;&gt; )&lt;/font&gt;</source> <source>&lt;style type=&apos;text/css&apos;&gt;a {text-decoration: none; color: #FF6C3C; font-size: 14px;}&lt;/style&gt; Signing address &lt;font size=&apos;2&apos;&gt; ( Paste in or select from &lt;/font&gt; &lt;a href=&apos;#&apos;&gt;Address book&lt;/a&gt;&lt;font size=&apos;2&apos;&gt; )&lt;/font&gt;</source>
<translation type="unfinished"> &lt;font size=&apos;2&apos;&gt; (&lt;/font&gt; &lt;a href=&apos;#&apos;&gt;&lt;/a&gt;&lt;font size=&apos;2&apos;&gt; )&lt;/font&gt;</translation> <translation type="unfinished"> &lt;font size=&apos;2&apos;&gt; ( &lt;/font&gt; &lt;a href=&apos;#&apos;&gt;&lt;/a&gt;&lt;font size=&apos;2&apos;&gt; )&lt;/font&gt;</translation>
</message> </message>
<message> <message>
<location filename="../pages/Sign.qml" line="172"/> <location filename="../pages/Sign.qml" line="172"/>
@@ -1078,7 +1078,7 @@
<message> <message>
<location filename="../pages/Sign.qml" line="212"/> <location filename="../pages/Sign.qml" line="212"/>
<source>Filename with message to sign</source> <source>Filename with message to sign</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Sign.qml" line="251"/> <location filename="../pages/Sign.qml" line="251"/>
@@ -1091,17 +1091,17 @@
<message> <message>
<location filename="../pages/Sign.qml" line="282"/> <location filename="../pages/Sign.qml" line="282"/>
<source>Verify a message or file signature from an address:</source> <source>Verify a message or file signature from an address:</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Sign.qml" line="309"/> <location filename="../pages/Sign.qml" line="309"/>
<source>Message to verify</source> <source>Message to verify</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Sign.qml" line="383"/> <location filename="../pages/Sign.qml" line="383"/>
<source>Filename with message to verify</source> <source>Filename with message to verify</source>
<translation> </translation> <translation> </translation>
</message> </message>
</context> </context>
<context> <context>
@@ -1132,27 +1132,27 @@
<message> <message>
<location filename="../components/StandardDropdown.qml" line="199"/> <location filename="../components/StandardDropdown.qml" line="199"/>
<source>High (x166 fee)</source> <source>High (x166 fee)</source>
<translation> (x166 )</translation> <translation> (x166 )</translation>
</message> </message>
<message> <message>
<location filename="../components/StandardDropdown.qml" line="200"/> <location filename="../components/StandardDropdown.qml" line="200"/>
<source>Slow (x0.25 fee)</source> <source>Slow (x0.25 fee)</source>
<translation> (x0.25 )</translation> <translation> (x0.25 )</translation>
</message> </message>
<message> <message>
<location filename="../components/StandardDropdown.qml" line="201"/> <location filename="../components/StandardDropdown.qml" line="201"/>
<source>Default (x1 fee)</source> <source>Default (x1 fee)</source>
<translation> (x1 )</translation> <translation> (x1 )</translation>
</message> </message>
<message> <message>
<location filename="../components/StandardDropdown.qml" line="202"/> <location filename="../components/StandardDropdown.qml" line="202"/>
<source>Fast (x5 fee)</source> <source>Fast (x5 fee)</source>
<translation> (x5 )</translation> <translation> (x5 )</translation>
</message> </message>
<message> <message>
<location filename="../components/StandardDropdown.qml" line="203"/> <location filename="../components/StandardDropdown.qml" line="203"/>
<source>Fastest (x41.5 fee)</source> <source>Fastest (x41.5 fee)</source>
<translation> (x41.5 )</translation> <translation> (x41.5 )</translation>
</message> </message>
<message> <message>
<location filename="../components/StandardDropdown.qml" line="204"/> <location filename="../components/StandardDropdown.qml" line="204"/>
@@ -1180,7 +1180,7 @@
<message> <message>
<location filename="../components/TableDropdown.qml" line="183"/> <location filename="../components/TableDropdown.qml" line="183"/>
<source>&lt;b&gt;Send to this address&lt;/b&gt;</source> <source>&lt;b&gt;Send to this address&lt;/b&gt;</source>
<translation>&lt;b&gt; &lt;/b&gt;</translation> <translation>&lt;b&gt; &lt;/b&gt;</translation>
</message> </message>
<message> <message>
<location filename="../components/TableDropdown.qml" line="184"/> <location filename="../components/TableDropdown.qml" line="184"/>
@@ -1198,7 +1198,7 @@
<message> <message>
<location filename="../components/TableHeader.qml" line="65"/> <location filename="../components/TableHeader.qml" line="65"/>
<source>Payment ID</source> <source>Payment ID</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../components/TableHeader.qml" line="66"/> <location filename="../components/TableHeader.qml" line="66"/>
@@ -1208,7 +1208,7 @@
<message> <message>
<location filename="../components/TableHeader.qml" line="67"/> <location filename="../components/TableHeader.qml" line="67"/>
<source>Block height</source> <source>Block height</source>
<translation> </translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../components/TableHeader.qml" line="68"/> <location filename="../components/TableHeader.qml" line="68"/>
@@ -1231,7 +1231,7 @@
<message> <message>
<location filename="../components/TickDelegate.qml" line="57"/> <location filename="../components/TickDelegate.qml" line="57"/>
<source>High</source> <source>High</source>
<translation></translation> <translation></translation>
</message> </message>
</context> </context>
<context> <context>
@@ -1249,7 +1249,7 @@
<message> <message>
<location filename="../pages/Transfer.qml" line="78"/> <location filename="../pages/Transfer.qml" line="78"/>
<source>Privacy level (ringsize %1)</source> <source>Privacy level (ringsize %1)</source>
<translation> ( %1)</translation> <translation> ( %1)</translation>
</message> </message>
<message> <message>
<location filename="../pages/Transfer.qml" line="125"/> <location filename="../pages/Transfer.qml" line="125"/>
@@ -1259,7 +1259,7 @@
<message> <message>
<location filename="../pages/Transfer.qml" line="135"/> <location filename="../pages/Transfer.qml" line="135"/>
<source>Transaction priority</source> <source>Transaction priority</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Transfer.qml" line="175"/> <location filename="../pages/Transfer.qml" line="175"/>
@@ -1269,17 +1269,17 @@
<message> <message>
<location filename="../pages/Transfer.qml" line="197"/> <location filename="../pages/Transfer.qml" line="197"/>
<source>Low (x1 fee)</source> <source>Low (x1 fee)</source>
<translation> (x1 )</translation> <translation> (x1 )</translation>
</message> </message>
<message> <message>
<location filename="../pages/Transfer.qml" line="198"/> <location filename="../pages/Transfer.qml" line="198"/>
<source>Medium (x20 fee)</source> <source>Medium (x20 fee)</source>
<translation> (x20 )</translation> <translation> (x20 )</translation>
</message> </message>
<message> <message>
<location filename="../pages/Transfer.qml" line="199"/> <location filename="../pages/Transfer.qml" line="199"/>
<source>High (x166 fee)</source> <source>High (x166 fee)</source>
<translation> (x166 )</translation> <translation> (x166 )</translation>
</message> </message>
<message> <message>
<location filename="../pages/Transfer.qml" line="237"/> <location filename="../pages/Transfer.qml" line="237"/>
@@ -1294,7 +1294,7 @@
<message> <message>
<location filename="../pages/Transfer.qml" line="285"/> <location filename="../pages/Transfer.qml" line="285"/>
<source>Resolve</source> <source>Resolve</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../pages/Transfer.qml" line="303"/> <location filename="../pages/Transfer.qml" line="303"/>
@@ -1345,22 +1345,22 @@
<message> <message>
<location filename="../pages/Transfer.qml" line="499"/> <location filename="../pages/Transfer.qml" line="499"/>
<source>Sweep Unmixable</source> <source>Sweep Unmixable</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Transfer.qml" line="513"/> <location filename="../pages/Transfer.qml" line="513"/>
<source>Create tx file</source> <source>Create tx file</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Transfer.qml" line="535"/> <location filename="../pages/Transfer.qml" line="535"/>
<source>Sign tx file</source> <source>Sign tx file</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Transfer.qml" line="549"/> <location filename="../pages/Transfer.qml" line="549"/>
<source>Submit tx file</source> <source>Submit tx file</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/Transfer.qml" line="582"/> <location filename="../pages/Transfer.qml" line="582"/>
@@ -1372,7 +1372,7 @@
<location filename="../pages/Transfer.qml" line="590"/> <location filename="../pages/Transfer.qml" line="590"/>
<source> <source>
Number of transactions: </source> Number of transactions: </source>
<translation> : </translation> <translation> : </translation>
</message> </message>
<message> <message>
<location filename="../pages/Transfer.qml" line="592"/> <location filename="../pages/Transfer.qml" line="592"/>
@@ -1539,12 +1539,12 @@ Please upgrade or connect to another daemon</source>
<message> <message>
<location filename="../pages/TxKey.qml" line="152"/> <location filename="../pages/TxKey.qml" line="152"/>
<source>Transaction ID</source> <source>Transaction ID</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/TxKey.qml" line="161"/> <location filename="../pages/TxKey.qml" line="161"/>
<source>Paste tx ID</source> <source>Paste tx ID</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../pages/TxKey.qml" line="193"/> <location filename="../pages/TxKey.qml" line="193"/>
@@ -1575,27 +1575,27 @@ Please upgrade or connect to another daemon</source>
<message> <message>
<location filename="../wizard/WizardConfigure.qml" line="79"/> <location filename="../wizard/WizardConfigure.qml" line="79"/>
<source>Were almost there - lets just configure some Monero preferences</source> <source>Were almost there - lets just configure some Monero preferences</source>
<translation> - .</translation> <translation> - .</translation>
</message> </message>
<message> <message>
<location filename="../wizard/WizardConfigure.qml" line="97"/> <location filename="../wizard/WizardConfigure.qml" line="97"/>
<source>Kickstart the Monero blockchain?</source> <source>Kickstart the Monero blockchain?</source>
<translation> ?</translation> <translation> ?</translation>
</message> </message>
<message> <message>
<location filename="../wizard/WizardConfigure.qml" line="115"/> <location filename="../wizard/WizardConfigure.qml" line="115"/>
<source>It is very important to write it down as this is the only backup you will need for your wallet.</source> <source>It is very important to write it down as this is the only backup you will need for your wallet.</source>
<translation> .</translation> <translation> .</translation>
</message> </message>
<message> <message>
<location filename="../wizard/WizardConfigure.qml" line="126"/> <location filename="../wizard/WizardConfigure.qml" line="126"/>
<source>Enable disk conservation mode?</source> <source>Enable disk conservation mode?</source>
<translation> ?</translation> <translation> ?</translation>
</message> </message>
<message> <message>
<location filename="../wizard/WizardConfigure.qml" line="144"/> <location filename="../wizard/WizardConfigure.qml" line="144"/>
<source>Disk conservation mode uses substantially less disk-space, but the same amount of bandwidth as a regular Monero instance. However, storing the full blockchain is beneficial to the security of the Monero network. If you are on a device with limited disk space, then this option is appropriate for you.</source> <source>Disk conservation mode uses substantially less disk-space, but the same amount of bandwidth as a regular Monero instance. However, storing the full blockchain is beneficial to the security of the Monero network. If you are on a device with limited disk space, then this option is appropriate for you.</source>
<translation> . . .</translation> <translation> . . .</translation>
</message> </message>
<message> <message>
<location filename="../wizard/WizardConfigure.qml" line="157"/> <location filename="../wizard/WizardConfigure.qml" line="157"/>
@@ -1629,32 +1629,32 @@ Please upgrade or connect to another daemon</source>
<message> <message>
<location filename="../wizard/WizardDonation.qml" line="93"/> <location filename="../wizard/WizardDonation.qml" line="93"/>
<source>Monero development is solely supported by donations</source> <source>Monero development is solely supported by donations</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../wizard/WizardDonation.qml" line="113"/> <location filename="../wizard/WizardDonation.qml" line="113"/>
<source>Enable auto-donations of?</source> <source>Enable auto-donations of?</source>
<translation> ?</translation> <translation> ?</translation>
</message> </message>
<message> <message>
<location filename="../wizard/WizardDonation.qml" line="153"/> <location filename="../wizard/WizardDonation.qml" line="153"/>
<source>% of my fee added to each transaction</source> <source>% of my fee added to each transaction</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../wizard/WizardDonation.qml" line="164"/> <location filename="../wizard/WizardDonation.qml" line="164"/>
<source>For every transaction, a small transaction fee is charged. This option lets you add an additional amount, as a percentage of that fee, to your transaction to support Monero development. For instance, a 50% autodonation take a transaction fee of 0.005 XMR and add a 0.0025 XMR to support Monero development.</source> <source>For every transaction, a small transaction fee is charged. This option lets you add an additional amount, as a percentage of that fee, to your transaction to support Monero development. For instance, a 50% autodonation take a transaction fee of 0.005 XMR and add a 0.0025 XMR to support Monero development.</source>
<translation> . . , 50% 0.005 XMR이면 0.0025 XMR이 .</translation> <translation> . . , 50 % 0.005 XMR이면 0.0025 XMR이 .</translation>
</message> </message>
<message> <message>
<location filename="../wizard/WizardDonation.qml" line="176"/> <location filename="../wizard/WizardDonation.qml" line="176"/>
<source>Allow background mining?</source> <source>Allow background mining?</source>
<translation> ?</translation> <translation> ?</translation>
</message> </message>
<message> <message>
<location filename="../wizard/WizardDonation.qml" line="194"/> <location filename="../wizard/WizardDonation.qml" line="194"/>
<source>Mining secures the Monero network, and also pays a small reward for the work done. This option will let Monero mine when your computer is on mains power and is idle. It will stop mining when you continue working.</source> <source>Mining secures the Monero network, and also pays a small reward for the work done. This option will let Monero mine when your computer is on mains power and is idle. It will stop mining when you continue working.</source>
<translation> . IDLE . .</translation> <translation> . . .</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -1701,7 +1701,7 @@ Please upgrade or connect to another daemon</source>
<message> <message>
<location filename="../wizard/WizardFinish.qml" line="68"/> <location filename="../wizard/WizardFinish.qml" line="68"/>
<source>Testnet</source> <source>Testnet</source>
<translation></translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../wizard/WizardFinish.qml" line="70"/> <location filename="../wizard/WizardFinish.qml" line="70"/>
@@ -1711,17 +1711,17 @@ Please upgrade or connect to another daemon</source>
<message> <message>
<location filename="../wizard/WizardFinish.qml" line="78"/> <location filename="../wizard/WizardFinish.qml" line="78"/>
<source>New wallet details:</source> <source>New wallet details:</source>
<translation> :</translation> <translation> :</translation>
</message> </message>
<message> <message>
<location filename="../wizard/WizardFinish.qml" line="82"/> <location filename="../wizard/WizardFinish.qml" line="82"/>
<source>Don&apos;t forget to write down your seed. You can view your seed and change your settings on settings page.</source> <source>Don&apos;t forget to write down your seed. You can view your seed and change your settings on settings page.</source>
<translation> (seed) . .</translation> <translation> (seed) . .</translation>
</message> </message>
<message> <message>
<location filename="../wizard/WizardFinish.qml" line="128"/> <location filename="../wizard/WizardFinish.qml" line="128"/>
<source>Youre all set up!</source> <source>Youre all set up!</source>
<translation> !</translation> <translation> !</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -1729,7 +1729,7 @@ Please upgrade or connect to another daemon</source>
<message> <message>
<location filename="../wizard/WizardMain.qml" line="176"/> <location filename="../wizard/WizardMain.qml" line="176"/>
<source>A wallet with same name already exists. Please change wallet name</source> <source>A wallet with same name already exists. Please change wallet name</source>
<translation> . .</translation> <translation> . .</translation>
</message> </message>
<message> <message>
<location filename="../wizard/WizardMain.qml" line="184"/> <location filename="../wizard/WizardMain.qml" line="184"/>
@@ -1739,7 +1739,7 @@ Please upgrade or connect to another daemon</source>
<message> <message>
<location filename="../wizard/WizardMain.qml" line="366"/> <location filename="../wizard/WizardMain.qml" line="366"/>
<source>USE MONERO</source> <source>USE MONERO</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../wizard/WizardMain.qml" line="383"/> <location filename="../wizard/WizardMain.qml" line="383"/>
@@ -1755,7 +1755,7 @@ Please upgrade or connect to another daemon</source>
<location filename="../wizard/WizardMain.qml" line="394"/> <location filename="../wizard/WizardMain.qml" line="394"/>
<source>The view only wallet has been created. You can open it by closing this current wallet, clicking the &quot;Open wallet from file&quot; option, and selecting the view wallet in: <source>The view only wallet has been created. You can open it by closing this current wallet, clicking the &quot;Open wallet from file&quot; option, and selecting the view wallet in:
%1</source> %1</source>
<translation> . &quot; &quot; : <translation> . &quot; &quot; :
%1</translation> %1</translation>
</message> </message>
<message> <message>
@@ -1799,7 +1799,7 @@ Please upgrade or connect to another daemon</source>
<message> <message>
<location filename="../wizard/WizardManageWalletUI.qml" line="220"/> <location filename="../wizard/WizardManageWalletUI.qml" line="220"/>
<source>Spend key (private)</source> <source>Spend key (private)</source>
<translation> ()</translation> <translation> ()</translation>
</message> </message>
<message> <message>
<location filename="../wizard/WizardManageWalletUI.qml" line="232"/> <location filename="../wizard/WizardManageWalletUI.qml" line="232"/>
@@ -1809,7 +1809,7 @@ Please upgrade or connect to another daemon</source>
<message> <message>
<location filename="../wizard/WizardManageWalletUI.qml" line="245"/> <location filename="../wizard/WizardManageWalletUI.qml" line="245"/>
<source>Your wallet is stored in</source> <source>Your wallet is stored in</source>
<translation> : </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../wizard/WizardManageWalletUI.qml" line="271"/> <location filename="../wizard/WizardManageWalletUI.qml" line="271"/>
@@ -1865,7 +1865,7 @@ Please upgrade or connect to another daemon</source>
<message> <message>
<location filename="../wizard/WizardOptions.qml" line="295"/> <location filename="../wizard/WizardOptions.qml" line="295"/>
<source>Testnet</source> <source>Testnet</source>
<translation></translation> <translation> </translation>
</message> </message>
</context> </context>
<context> <context>
@@ -1881,7 +1881,7 @@ Please upgrade or connect to another daemon</source>
<source> &lt;br&gt;Note: this password cannot be recovered. If you forget it then the wallet will have to be restored from its 25 word mnemonic seed.&lt;br/&gt;&lt;br/&gt; <source> &lt;br&gt;Note: this password cannot be recovered. If you forget it then the wallet will have to be restored from its 25 word mnemonic seed.&lt;br/&gt;&lt;br/&gt;
&lt;b&gt;Enter a strong password&lt;/b&gt; (using letters, numbers, and/or symbols):</source> &lt;b&gt;Enter a strong password&lt;/b&gt; (using letters, numbers, and/or symbols):</source>
<translation> &lt;br&gt;참고: , 25 .&lt;br/&gt;&lt;br/&gt; <translation> &lt;br&gt;참고: , 25 .&lt;br/&gt;&lt;br/&gt;
&lt;b&gt; &lt;/b&gt; (, ):</translation> &lt;b&gt; &lt;/b&gt; (, / ):</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -1942,27 +1942,27 @@ Please upgrade or connect to another daemon</source>
<message> <message>
<location filename="../main.qml" line="361"/> <location filename="../main.qml" line="361"/>
<source>Unlocked balance (waiting for block)</source> <source>Unlocked balance (waiting for block)</source>
<translation> ( )</translation> <translation> ( )</translation>
</message> </message>
<message> <message>
<location filename="../main.qml" line="361"/> <location filename="../main.qml" line="361"/>
<source>Unlocked balance (~%1 min)</source> <source>Unlocked balance (~%1 min)</source>
<translation> (~%1 )</translation> <translation> (~%1 )</translation>
</message> </message>
<message> <message>
<location filename="../main.qml" line="361"/> <location filename="../main.qml" line="361"/>
<source>Unlocked balance</source> <source>Unlocked balance</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../main.qml" line="413"/> <location filename="../main.qml" line="413"/>
<source>Waiting for daemon to start...</source> <source>Waiting for daemon to start...</source>
<translation> ...</translation> <translation> ...</translation>
</message> </message>
<message> <message>
<location filename="../main.qml" line="419"/> <location filename="../main.qml" line="419"/>
<source>Waiting for daemon to stop...</source> <source>Waiting for daemon to stop...</source>
<translation> ...</translation> <translation> ...</translation>
</message> </message>
<message> <message>
<location filename="../main.qml" line="444"/> <location filename="../main.qml" line="444"/>
@@ -1989,7 +1989,7 @@ Please upgrade or connect to another daemon</source>
<location filename="../main.qml" line="510"/> <location filename="../main.qml" line="510"/>
<location filename="../main.qml" line="623"/> <location filename="../main.qml" line="623"/>
<source>No unmixable outputs to sweep</source> <source>No unmixable outputs to sweep</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../main.qml" line="522"/> <location filename="../main.qml" line="522"/>
@@ -2000,18 +2000,21 @@ Please upgrade or connect to another daemon</source>
<message> <message>
<location filename="../main.qml" line="523"/> <location filename="../main.qml" line="523"/>
<location filename="../main.qml" line="636"/> <location filename="../main.qml" line="636"/>
<source>Please confirm transaction: </source> <source>Please confirm transaction:
</source>
<translation> :</translation> <translation> :</translation>
</message> </message>
<message> <message>
<location filename="../main.qml" line="524"/> <location filename="../main.qml" line="524"/>
<source> Address: </source> <source>
Address: </source>
<translation>:</translation> <translation>:</translation>
</message> </message>
<message> <message>
<location filename="../main.qml" line="525"/> <location filename="../main.qml" line="525"/>
<source> Payment ID: </source> <source>
<translation> : </translation> Payment ID: </source>
<translation> : </translation>
</message> </message>
<message> <message>
<location filename="../main.qml" line="526"/> <location filename="../main.qml" line="526"/>
@@ -2024,18 +2027,21 @@ Amount: </source>
<message> <message>
<location filename="../main.qml" line="527"/> <location filename="../main.qml" line="527"/>
<location filename="../main.qml" line="638"/> <location filename="../main.qml" line="638"/>
<source> Fee: </source> <source>
Fee: </source>
<translation>: </translation> <translation>: </translation>
</message> </message>
<message> <message>
<location filename="../main.qml" line="528"/> <location filename="../main.qml" line="528"/>
<source> Ringsize: </source> <source>
<translation> : </translation>
Ringsize: </source>
<translation>: </translation>
</message> </message>
<message> <message>
<location filename="../main.qml" line="734"/> <location filename="../main.qml" line="734"/>
<source>This address received %1 monero, with %2 confirmation(s).</source> <source>This address received %1 monero, with %2 confirmation(s).</source>
<translation> %1 XMR을 , %2 .</translation> <translation> % 1XMR을 , % 2 .</translation>
</message> </message>
<message> <message>
<location filename="../main.qml" line="1324"/> <location filename="../main.qml" line="1324"/>
@@ -2059,12 +2065,15 @@ Amount: </source>
</message> </message>
<message> <message>
<location filename="../main.qml" line="529"/> <location filename="../main.qml" line="529"/>
<source> Number of transactions: </source> <source>
Number of transactions: </source>
<translation> : </translation> <translation> : </translation>
</message> </message>
<message> <message>
<location filename="../main.qml" line="530"/> <location filename="../main.qml" line="530"/>
<source> Description: </source> <source>
Description: </source>
<translation>: </translation> <translation>: </translation>
</message> </message>
<message> <message>
@@ -2075,7 +2084,7 @@ Amount: </source>
<message> <message>
<location filename="../main.qml" line="572"/> <location filename="../main.qml" line="572"/>
<source>Insufficient funds. Unlocked balance: %1</source> <source>Insufficient funds. Unlocked balance: %1</source>
<translation> . : %1</translation> <translation> . : %1</translation>
</message> </message>
<message> <message>
<location filename="../main.qml" line="675"/> <location filename="../main.qml" line="675"/>
@@ -2090,7 +2099,7 @@ Amount: </source>
<message> <message>
<location filename="../main.qml" line="684"/> <location filename="../main.qml" line="684"/>
<source>Money sent successfully: %1 transaction(s) </source> <source>Money sent successfully: %1 transaction(s) </source>
<translation> : %1 </translation> <translation> : %1 () </translation>
</message> </message>
<message> <message>
<location filename="../main.qml" line="684"/> <location filename="../main.qml" line="684"/>
@@ -2105,12 +2114,12 @@ Amount: </source>
<message> <message>
<location filename="../main.qml" line="729"/> <location filename="../main.qml" line="729"/>
<source>This address received %1 monero, but the transaction is not yet mined</source> <source>This address received %1 monero, but the transaction is not yet mined</source>
<translation> % 1XMR을 , </translation> <translation> % 1XMR을 , </translation>
</message> </message>
<message> <message>
<location filename="../main.qml" line="738"/> <location filename="../main.qml" line="738"/>
<source>This address received nothing</source> <source>This address received nothing</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../main.qml" line="750"/> <location filename="../main.qml" line="750"/>
@@ -2140,7 +2149,7 @@ Amount: </source>
<message> <message>
<location filename="../main.qml" line="1072"/> <location filename="../main.qml" line="1072"/>
<source>send to the same destination</source> <source>send to the same destination</source>
<translation> </translation> <translation> </translation>
</message> </message>
</context> </context>
</TS> </TS>

File diff suppressed because it is too large Load Diff

View File

@@ -17,13 +17,13 @@ fi
if [[ "$BUILD_TYPE" == "Release" ]]; then if [[ "$BUILD_TYPE" == "Release" ]]; then
echo "Release build" echo "Release build"
ICU_FILES=(libicuuc57.dll libicuin57.dll libicudt57.dll) ICU_FILES="libicuuc57.dll libicuin57.dll libicudt57.dll"
else else
echo "Debug build" echo "Debug build"
ICU_FILES=(libicuucd57.dll libicuind57.dll libicudtd57.dll) ICU_FILES="libicuucd57.dll libicuind57.dll libicudtd57.dll"
fi fi
FILES=(zlib1.dll libwinpthread-1.dll libtiff-5.dll libstdc++-6.dll libpng16-16.dll libpcre16-0.dll libpcre-1.dll libmng-2.dll liblzma-5.dll liblcms2-2.dll libjpeg-8.dll libintl-8.dll libiconv-2.dll libharfbuzz-0.dll libgraphite2.dll libglib-2.0-0.dll libfreetype-6.dll libbz2-1.dll) FILES="zlib1.dll libwinpthread-1.dll libtiff-5.dll libstdc++-6.dll libpng16-16.dll libpcre16-0.dll libpcre-1.dll libmng-2.dll liblzma-5.dll liblcms2-2.dll libjpeg-8.dll libjasper-1.dll libintl-8.dll libiconv-2.dll libharfbuzz-0.dll libgraphite2.dll libglib-2.0-0.dll libfreetype-6.dll libbz2-1.dll"
platform=$(get_platform) platform=$(get_platform)
@@ -33,9 +33,10 @@ elif [[ "$platform" == "mingw32" ]]; then
PLATFORM_FILES="libgcc_s_dw2-1.dll" PLATFORM_FILES="libgcc_s_dw2-1.dll"
fi fi
for f in "${FILES[@]}"; do cp $MSYSTEM_PREFIX/bin/$f $TARGET || exit 1; done for f in $FILES; do cp $MSYSTEM_PREFIX/bin/$f $TARGET; done
for f in "${ICU_FILES[@]}"; do cp $MSYSTEM_PREFIX/bin/$f $TARGET || exit 1; done for f in $ICU_FILES; do cp $MSYSTEM_PREFIX/bin/$f $TARGET; done
for f in $PLATFORM_FILES; do cp $MSYSTEM_PREFIX/bin/$f $TARGET; done
for f in "${PLATFORM_FILES[@]}"; do cp $MSYSTEM_PREFIX/bin/$f $TARGET || exit 1; done

View File

@@ -50,7 +50,7 @@ ColumnLayout {
autoDonationAmount = wizard.settings["auto_donations_amount"] + " %", autoDonationAmount = wizard.settings["auto_donations_amount"] + " %",
backgroundMiningEnabled = wizard.settings["allow_background_mining"] === true, backgroundMiningEnabled = wizard.settings["allow_background_mining"] === true,
backgroundMiningText = backgroundMiningEnabled ? qsTr("Enabled") : qsTr("Disabled"), backgroundMiningText = backgroundMiningEnabled ? qsTr("Enabled") : qsTr("Disabled"),
testnetEnabled = appWindow.persistentSettings.testnet, testnetEnabled = wizard.settings['testnet'] === true,
testnetText = testnetEnabled ? qsTr("Enabled") : qsTr("Disabled"), testnetText = testnetEnabled ? qsTr("Enabled") : qsTr("Disabled"),
restoreHeightEnabled = wizard.settings['restore_height'] !== undefined; restoreHeightEnabled = wizard.settings['restore_height'] !== undefined;
@@ -64,7 +64,7 @@ ColumnLayout {
// ? trStart + qsTr("Donation amount") + trMiddle + autoDonationAmount + trEnd // ? trStart + qsTr("Donation amount") + trMiddle + autoDonationAmount + trEnd
// : "") // : "")
// + trStart + qsTr("Background mining") + trMiddle + backgroundMiningText + trEnd // + trStart + qsTr("Background mining") + trMiddle + backgroundMiningText + trEnd
+ trStart + qsTr("Daemon address") + trMiddle + persistentSettings.daemon_address + trEnd + trStart + qsTr("Daemon address") + trMiddle + wizard.settings["daemon_address"] + trEnd
+ trStart + qsTr("Testnet") + trMiddle + testnetText + trEnd + trStart + qsTr("Testnet") + trMiddle + testnetText + trEnd
+ (restoreHeightEnabled + (restoreHeightEnabled
? trStart + qsTr("Restore height") + trMiddle + wizard.settings['restore_height'] + trEnd ? trStart + qsTr("Restore height") + trMiddle + wizard.settings['restore_height'] + trEnd

View File

@@ -233,8 +233,11 @@ ColumnLayout {
appWindow.persistentSettings.allow_background_mining = false //settings.allow_background_mining appWindow.persistentSettings.allow_background_mining = false //settings.allow_background_mining
appWindow.persistentSettings.auto_donations_enabled = false //settings.auto_donations_enabled appWindow.persistentSettings.auto_donations_enabled = false //settings.auto_donations_enabled
appWindow.persistentSettings.auto_donations_amount = false //settings.auto_donations_amount appWindow.persistentSettings.auto_donations_amount = false //settings.auto_donations_amount
appWindow.persistentSettings.daemon_address = settings.daemon_address
appWindow.persistentSettings.testnet = settings.testnet
appWindow.persistentSettings.restore_height = (isNaN(settings.restore_height))? 0 : settings.restore_height appWindow.persistentSettings.restore_height = (isNaN(settings.restore_height))? 0 : settings.restore_height
appWindow.persistentSettings.is_recovering = (settings.is_recovering === undefined)? false : settings.is_recovering appWindow.persistentSettings.is_recovering = (settings.is_recovering === undefined)? false : settings.is_recovering
} }
// reading settings from persistent storage // reading settings from persistent storage

View File

@@ -56,10 +56,10 @@ ColumnLayout {
property int rowSpacing: 10 property int rowSpacing: 10
function checkFields(){ function checkFields(){
var addressOK = walletManager.addressValid(addressLine.text, persistentSettings.testnet) var addressOK = walletManager.addressValid(addressLine.text, wizard.settings.testnet)
var viewKeyOK = walletManager.keyValid(viewKeyLine.text, addressLine.text, true, persistentSettings.testnet) var viewKeyOK = walletManager.keyValid(viewKeyLine.text, addressLine.text, true, wizard.settings.testnet)
// Spendkey is optional // Spendkey is optional
var spendKeyOK = (spendKeyLine.text.length > 0)? walletManager.keyValid(spendKeyLine.text, addressLine.text, false, persistentSettings.testnet) : true var spendKeyOK = (spendKeyLine.text.length > 0)? walletManager.keyValid(spendKeyLine.text, addressLine.text, false, wizard.settings.testnet) : true
addressLine.error = !addressOK && addressLine.text.length != 0 addressLine.error = !addressOK && addressLine.text.length != 0
viewKeyLine.error = !viewKeyOK && viewKeyLine.text.length != 0 viewKeyLine.error = !viewKeyOK && viewKeyLine.text.length != 0

View File

@@ -44,12 +44,25 @@ ColumnLayout {
function onPageClosed() { function onPageClosed() {
// Save settings used in open from file. // Save settings used in open from file.
// other wizard settings are saved on last page in applySettings() // other wizard settings are saved on last page in applySettings()
appWindow.persistentSettings.testnet = wizard.settings["testnet"]
appWindow.persistentSettings.daemon_address = wizard.settings["daemon_address"]
appWindow.persistentSettings.language = wizard.settings.language appWindow.persistentSettings.language = wizard.settings.language
appWindow.persistentSettings.locale = wizard.settings.locale appWindow.persistentSettings.locale = wizard.settings.locale
return true; return true;
} }
function saveDaemonAddress() {
wizard.settings["daemon_address"] = daemonAddress.text
wizard.settings["testnet"] = testNet.checked
}
QtObject {
id: d
readonly property string daemonAddressTestnet : "localhost:38081"
readonly property string daemonAddressMainnet : "localhost:18081"
}
Behavior on opacity { Behavior on opacity {
NumberAnimation { duration: 100; easing.type: Easing.InQuad } NumberAnimation { duration: 100; easing.type: Easing.InQuad }
} }
@@ -126,6 +139,7 @@ ColumnLayout {
anchors.fill: parent anchors.fill: parent
hoverEnabled: true hoverEnabled: true
onClicked: { onClicked: {
page.saveDaemonAddress()
page.createWalletClicked() page.createWalletClicked()
} }
} }
@@ -168,6 +182,7 @@ ColumnLayout {
anchors.fill: parent anchors.fill: parent
hoverEnabled: true hoverEnabled: true
onClicked: { onClicked: {
page.saveDaemonAddress()
page.recoveryWalletClicked() page.recoveryWalletClicked()
} }
} }
@@ -211,6 +226,7 @@ ColumnLayout {
anchors.fill: parent anchors.fill: parent
hoverEnabled: true hoverEnabled: true
onClicked: { onClicked: {
page.saveDaemonAddress()
page.openWalletClicked() page.openWalletClicked()
} }
} }
@@ -231,30 +247,62 @@ ColumnLayout {
} }
RowLayout { // daemon select
// TODO: Move to separate page
ColumnLayout {
Layout.leftMargin: wizardLeftMargin Layout.leftMargin: wizardLeftMargin
Layout.rightMargin: wizardRightMargin Layout.rightMargin: wizardRightMargin
Layout.topMargin: 30
Layout.alignment: Qt.AlignCenter Layout.alignment: Qt.AlignCenter
Layout.fillWidth: true
Rectangle {
width: 100 Label {
CheckBox { Layout.topMargin: 20
id: testNet fontSize: 14
text: qsTr("Testnet") + translationManager.emptyString text: qsTr("Custom daemon address (optional)") + translationManager.emptyString
background: "#FFFFFF" + translationManager.emptyString
fontColor: "#4A4646" }
fontSize: 16
checkedIcon: "../images/checkedVioletIcon.png" GridLayout {
uncheckedIcon: "../images/uncheckedIcon.png" Layout.fillWidth: true
checked: appWindow.persistentSettings.testnet; Layout.alignment: Qt.AlignHCenter
onClicked: {
persistentSettings.testnet = testNet.checked columnSpacing: 20
console.log("testnet set to ", persistentSettings.testnet) rowSpacing: 20
flow: isMobile ? GridLayout.TopToBottom : GridLayout.LeftToRight
RowLayout {
spacing: 20
Layout.alignment: Qt.AlignCenter
LineEdit {
id: daemonAddress
Layout.alignment: Qt.AlignCenter
width: 200
fontSize: 14
text: {
if(appWindow.persistentSettings.daemon_address)
return appWindow.persistentSettings.daemon_address;
return testNet.checked ? d.daemonAddressTestnet : d.daemonAddressMainnet
}
}
CheckBox {
id: testNet
Layout.alignment: Qt.AlignCenter
anchors.verticalCenter: parent.verticalCenter
text: qsTr("Testnet") + translationManager.emptyString
background: "#FFFFFF"
fontColor: "#4A4646"
fontSize: 16
checkedIcon: "../images/checkedVioletIcon.png"
uncheckedIcon: "../images/uncheckedIcon.png"
checked: appWindow.persistentSettings.testnet;
} }
} }
} }
} }
} }

View File

@@ -39,6 +39,12 @@ ColumnLayout {
NumberAnimation { duration: 100; easing.type: Easing.InQuad } NumberAnimation { duration: 100; easing.type: Easing.InQuad }
} }
QtObject {
id: d
readonly property string daemonAddressTestnet : "localhost:38018";
readonly property string daemonAddressMainnet : "localhost:18018";
}
onOpacityChanged: visible = opacity !== 0 onOpacityChanged: visible = opacity !== 0
function onPageClosed(settingsObject) { function onPageClosed(settingsObject) {