diff --git a/application.qrc b/application.qrc index 4c5ae9c..cd094ae 100644 --- a/application.qrc +++ b/application.qrc @@ -47,6 +47,8 @@ res/addContactBlack.png res/unknownBlack.png res/unknownWhite.png + res/hush-passion.png + res/dark-01.png res/hushdlogo.gif @@ -67,6 +69,7 @@ res/silentdragonlite_fa.qm res/silentdragonlite_id.qm res/silentdragonlite_ar.qm + res/silentdragonlite_ro.qm res/css/Blue.css @@ -74,6 +77,7 @@ res/css/Default.css res/css/Light.css res/css/Midnight.css + res/css/test.css res/images/blue/unchecked.png @@ -85,4 +89,7 @@ res/images/blue/blue_rightArrow_small.png res/images/blue/blue_qtreeview_selected.png + + res/images/tile.png + diff --git a/lib/Cargo.lock b/lib/Cargo.lock index 3c5dbf4..df000b4 100644 --- a/lib/Cargo.lock +++ b/lib/Cargo.lock @@ -194,6 +194,20 @@ dependencies = [ "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "blake3" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "arrayref 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", + "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "block-buffer" version = "0.7.3" @@ -1175,9 +1189,10 @@ dependencies = [ name = "qtlib" version = "0.1.0" dependencies = [ + "blake3 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "silentdragonlitelib 0.1.0 (git+https://github.com/MyHush/silentdragonlite-cli?rev=d2887d07879a93bdd9b2c8bd12504bb977e82fe0)", + "silentdragonlitelib 0.1.0 (git+https://github.com/MyHush/silentdragonlite-cli?rev=07288de82d84b9bf35d1210ccc98eb1e4b757eb7)", ] [[package]] @@ -1640,7 +1655,7 @@ dependencies = [ [[package]] name = "silentdragonlitelib" version = "0.1.0" -source = "git+https://github.com/MyHush/silentdragonlite-cli?rev=d2887d07879a93bdd9b2c8bd12504bb977e82fe0#d2887d07879a93bdd9b2c8bd12504bb977e82fe0" +source = "git+https://github.com/MyHush/silentdragonlite-cli?rev=07288de82d84b9bf35d1210ccc98eb1e4b757eb7#07288de82d84b9bf35d1210ccc98eb1e4b757eb7" dependencies = [ "base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "bellman 0.1.0 (git+https://github.com/MyHush/librustzcash.git?rev=1a0204113d487cdaaf183c2967010e5214ff9e37)", @@ -2461,6 +2476,7 @@ dependencies = [ "checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" "checksum blake2b_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a" "checksum blake2s_simd 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ab9e07352b829279624ceb7c64adb4f585dacdb81d35cafae81139ccd617cf44" +"checksum blake3 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "423897d97e11b810c9da22458400b28ec866991c711409073662eb34dc44bfff" "checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" "checksum block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774" "checksum block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" @@ -2631,7 +2647,7 @@ dependencies = [ "checksum serde_yaml 0.8.11 (registry+https://github.com/rust-lang/crates.io-index)" = "691b17f19fc1ec9d94ec0b5864859290dff279dbd7b03f017afda54eb36c3c35" "checksum sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "27044adfd2e1f077f649f59deb9490d3941d674002f7d062870a60ebe9bd47a0" "checksum signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41" -"checksum silentdragonlitelib 0.1.0 (git+https://github.com/MyHush/silentdragonlite-cli?rev=d2887d07879a93bdd9b2c8bd12504bb977e82fe0)" = "" +"checksum silentdragonlitelib 0.1.0 (git+https://github.com/MyHush/silentdragonlite-cli?rev=07288de82d84b9bf35d1210ccc98eb1e4b757eb7)" = "" "checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" "checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" "checksum socket2 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "e8b74de517221a2cb01a53349cf54182acdc31a074727d3079068448c0676d85" diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 39a70e9..5d7a33c 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -11,4 +11,5 @@ crate-type = ["staticlib"] [dependencies] libc = "0.2.58" lazy_static = "1.4.0" -silentdragonlitelib = { git = "https://github.com/MyHush/silentdragonlite-cli", rev = "d2887d07879a93bdd9b2c8bd12504bb977e82fe0" } +blake3 = "0.3.4" +silentdragonlitelib = { git = "https://github.com/MyHush/silentdragonlite-cli", rev = "07288de82d84b9bf35d1210ccc98eb1e4b757eb7" } diff --git a/lib/silentdragonlitelib.h b/lib/silentdragonlitelib.h index 4546e70..638ac0c 100644 --- a/lib/silentdragonlitelib.h +++ b/lib/silentdragonlitelib.h @@ -9,10 +9,11 @@ extern bool litelib_wallet_exists (const char* chain_name); extern char * litelib_initialize_new (bool dangerous, const char* server); extern char * litelib_initialize_new_from_phrase (bool dangerous, const char* server, const char* seed, - unsigned long long birthday); + unsigned long long birthday, unsigned long long number); extern char * litelib_initialize_existing (bool dangerous, const char* server); extern char * litelib_execute (const char* s, const char* args); extern void litelib_rust_free_string (char* s); +extern char * blake3_PW (char* pw); #ifdef __cplusplus } diff --git a/lib/src/lib.rs b/lib/src/lib.rs index 8be7c55..174c2b8 100644 --- a/lib/src/lib.rs +++ b/lib/src/lib.rs @@ -29,6 +29,30 @@ pub extern fn litelib_wallet_exists(chain_name: *const c_char) -> bool { println!("Wallet exists: {}", config.wallet_exists()); config.wallet_exists() +} + +//////hash blake3 + +#[no_mangle] +pub extern fn blake3_PW(pw: *const c_char) -> *mut c_char{ + + let passwd = unsafe { + assert!(!pw.is_null()); + + CStr::from_ptr(pw).to_string_lossy().into_owned() + }; + + let data = passwd.as_bytes(); +// Hash an input all at once. +let hash1 = blake3::hash(data).to_hex(); +println!("\nBlake3 Hash: {}", hash1); + +//let sttring = CString::new(hash1).unwrap(); +let e_str = CString::new(format!("{}", hash1)).unwrap(); +return e_str.into_raw(); + + + } /// Create a new wallet and return the seed for the newly created wallet. @@ -78,7 +102,7 @@ pub extern fn litelib_initialize_new(dangerous: bool, server: *const c_char) -> /// Restore a wallet from the seed phrase #[no_mangle] pub extern fn litelib_initialize_new_from_phrase(dangerous: bool, server: *const c_char, - seed: *const c_char, birthday: u64) -> *mut c_char { + seed: *const c_char, birthday: u64, number: u64) -> *mut c_char { let server_str = unsafe { assert!(!server.is_null()); @@ -100,7 +124,7 @@ pub extern fn litelib_initialize_new_from_phrase(dangerous: bool, server: *const } }; - let lightclient = match LightClient::new_from_phrase(seed_str, &config, birthday) { + let lightclient = match LightClient::new_from_phrase(seed_str, &config, birthday, number, false) { Ok(l) => l, Err(e) => { let e_str = CString::new(format!("Error: {}", e)).unwrap(); diff --git a/res/SilentDragonLite.png b/res/SilentDragonLite.png new file mode 100644 index 0000000..a6339b3 Binary files /dev/null and b/res/SilentDragonLite.png differ diff --git a/res/css/test.css b/res/css/test.css new file mode 100644 index 0000000..ddb7f35 --- /dev/null +++ b/res/css/test.css @@ -0,0 +1,239 @@ + +QWidget, QMainWindow, QMenuBar, QMenu, QDialog, QTabWidget, QTableView, QTableView::item, QScrollArea, QGroupBox, QPlainTextEdit, QLineEdit, QLabel, MainWindow +{ + /* background-color: #303335; */ + background: transparent; + color: #ffffff; +} + +QMainWindow +{ + border-image: url(':images/res/images/tile.png') 0 0 0 0 repeat repeat; + color: #ffffff; +} + +QTabWidget QTabBar::tab { +padding-left:20px; +padding-right:20px; +padding-top:5px; +padding-bottom:5px; +border: 1px solid #525355; +/*background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.25, stop: 0 #747577, stop: 1 #3E4244);*/ +background-color: rgba(0, 0, 0, 128); +} + +QTabWidget QTabBar::tab:selected { +min-height: 10px; +/*background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.25, stop: 0 #525355, stop: 1 #303335);*/ +background-color: rgba(0, 64, 0, 128); +color:#fff; +border: 1px ridge #000; +} + +QTabWidget QTabBar::tab:hover { +/*background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.25, stop: 0 #747577, stop: 1 #3E4244);*/ +background-color: rgba(0, 0, 0, 32); +color:#fff; +border: 1px ridge #fff; +min-height: 20px +} + +QTabWidget::pane { + background-color: rgba(0, 0, 0, 128); + border: 2px solid rgb(0, 0, 0); + border-top-left-radius: 0px; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-top-right-radius: 4px; + top: -2px; +} + +QStatusBar { + background-color: rgba(0, 0, 64, 128); +} + +QHeaderView { /* Table Header */ +/* background-color:#303335;*/ +background-color: rgba(0, 0, 0, 64); +border:1px solid #fff; +} + +QHeaderView::section { /* Table Header Sections */ +qproperty-alignment:center; +/*background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.25, stop: 0 #747577, stop: 1 #3E4244);*/ +background: transparent; +color:#fff; +min-height:25px; +font-weight:bold; +font-size:11px; +outline:0; +border:1px solid #525355; +border-right:1px solid #fff; +border-left:1px solid #fff; +padding-left:5px; +padding-right:5px; +padding-top:2px; +padding-bottom:2px; +} + +QHeaderView::section:last { +border-right: 0px solid #d7d7d7; +} + +QScrollArea { +background:transparent; +border:0px; +} + +QTableView { /* Table - has to be selected as a class otherwise it throws off QCalendarWidget */ +/*background:#303335;*/ +background: transparent; +} + +QTableView::item { /* Table Item */ +/*background-color:#303335;*/ +background: transparent; +border:1px solid #fff; +font-size:12px; +} + +QTableView::item:selected { /* Table Item Selected */ +background-color:#fff; +color:#000; +} + +QMenuBar { +background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.25, stop: 0 #525355, stop: 1 #303335); +color: #fff; +} + +QMenuBar::item { +background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.25, stop: 0 #525355, stop: 1 #303335); +color: #fff; +} + +QMenuBar::item:selected { +background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.25, stop: 0 #747577, stop: 1 #3E4244); +} + +QTabBar::tab { + background-color: rgba(0, 0, 0, 128); + min-width: 150px; + padding: 4px; + border-bottom: 2px solid rgb(68, 49, 141); + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +QTabBar::tab:selected { + /* font: bold; */ + border: 2px solid rgb(68, 49, 141); + border-bottom: none; +} + + +QTabBar::tab:hover { + /* font: bold; */ + border: 2px solid rgb(68, 49, 141); +} + + +QGroupBox { + background-color: rgba(0, 0, 0, 128); + font-weight: bold; + font-style: italic; + border: 1px solid rgba(0, 128, 0, 128); + border-radius: 4px; + padding: 4px; + margin-top: 16px; +} + +QGroupBox::title { + subcontrol-origin: margin; + subcontrol-position: top left; + left: 8px; + padding-left: 3px; + padding-right: 3px; + padding-top: 6px; + padding-bottom: 8px; +} + +QLineEdit, QPushButton, QPlainTextEdit { + background-color: rgba(10, 7, 20, 128); + min-width: 100px; + border: 1px solid rgb(68, 49, 141); + border-radius: 4px; + padding:5px; +} + +QLineEdit:focus, QPushButton:pressed, QPlainTextEdit:focus { + border: 1px solid rgb(216, 00, 255); +} + +QLineEdit:hover, QPushButton:hover, QPlainTextEdit:hover { + border: 1px solid rgb(216, 00, 255); +} + +QLineEdit:disabled, QPushButton:disabled, QPlainTextEdit:disabled { + border: 1px solid rgb(64, 64, 64); +} + +QComboBox { + background-color: rgba(10, 7, 20, 128); + min-height: 28px; + min-width: 80px; + border: 1px solid rgb(68, 49, 141); + border-radius: 4px; +} + +QComboBox:hover { + border: 1px solid rgb(216, 00, 255); +} + +QComboBox QAbstractItemView { + background-color: rgb(0, 0, 0); + border: 1px solid rgb(68, 49, 141); + border-radius: 4px; +} + +QComboBox::item { + background-color: rgb(0, 0, 0); + border: 1px solid rgb(0, 0, 0); + border-radius: 4px; + height:28px; +} + +QComboBox::item:selected { /* when user selects item using mouse or keyboard */ + background-color: rgb(20, 15, 40); + border: 1px solid rgb(68, 49, 141); + border-radius: 4px; + +} + + +QCheckBox::indicator, QRadioButton::indicator { + border: 2px solid rgb(68, 49, 141); + border-radius: 6px; +} + +QCheckBox::indicator:checked, QRadioButton::indicator:checked { + background-color: rgba(0, 255, 0, 128); +} + +QCheckBox::indicator:unchecked, QRadioButton::indicator:unchecked { + background-color: rgba(0, 16, 0, 128); +} + +QCheckBox::indicator:hover, QRadioButton::indicator:hover { + border: 2px solid rgb(0, 192, 0); +} + +QCheckBox::indicator:disabled, QRadioButton::indicator:disabled { + border: 2px solid rgb(64, 64, 64); +} + +QWidget.FilledIconLabel /* targets custom ui widget by class name */ +{ + background-color: rgba(255, 255, 255, 64); + border: 2px solid rgb(255, 0, 0); +} diff --git a/res/dark-01.png b/res/dark-01.png new file mode 100644 index 0000000..bcfc33d Binary files /dev/null and b/res/dark-01.png differ diff --git a/res/images/tile.png b/res/images/tile.png new file mode 100644 index 0000000..eeba408 Binary files /dev/null and b/res/images/tile.png differ diff --git a/res/silentdragonlite_ar.qm b/res/silentdragonlite_ar.qm index cdef56c..cc809ec 100644 Binary files a/res/silentdragonlite_ar.qm and b/res/silentdragonlite_ar.qm differ diff --git a/res/silentdragonlite_ar.ts b/res/silentdragonlite_ar.ts index 1590186..3572309 100644 --- a/res/silentdragonlite_ar.ts +++ b/res/silentdragonlite_ar.ts @@ -4,1145 +4,901 @@ AddressBookModel - + Label - + - + Address - - - - - Avatar - - - - - HushChatAddress - - - - - CID - + BalancesTableModel - + Address - + - + Amount - - - - - ChatBubbleMe - - - Form - - - - - Lorem ipsum dolor sit amet - - - - - 12/03/2020 12:34 - - - - - ChatBubblePartner - - - Form - - - - - Lorem ipsum dolor sit amet - - - - - 12/03/2020 12:34 - + ConnectionDialog - + SilentDragonLite - + - - The Dragon Awakens... - + + Starting Up + Controller - + Wallet Password - + - + Your wallet is encrypted. Please enter your wallet password - + - - + + Wallet Decryption Failed - + - + Please enter a valid password - + - + Failed to unlock wallet - + CreateWalletForm - Create New SDL Wallet - - - - - Confirm Passphrase: - + Form + - + Restore wallet from seed - + - + Restore an existing wallet, using the 24-word seed. - - - - - Create a new wallet - - - - - Encryption Passphrase: - + - - <html><head/><body><p><span style=" font-style:italic;">Passphrase don't match</span></p></body></html> - + + Create a new Wallet + - - <html><head/><body><p><span style=" font-style:italic;">16 letters minimum</span></p></body></html> - - - - + Create a new wallet with a randomly generated seed. - - - - - Dialog - - - Send Contact Request - - - - - <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Insert a nickname for your contact:</span></p></body></html> - - - - - <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Choose an avatar for your contact:</span></p></body></html> - - - - - <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Insert a memo for your request:</span></p></body></html> - - - - - <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Your HushChat Address:</span></p></body></html> - - - - - Create New Address - - - - - <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Insert the address of your contact:</span></p></body></html> - - - - - <html><head/><body><p><span style=" color:#d3d7cf;">Generate your HushChat Address - please wait a second - </span></p></body></html> - - - - - SDLogo - - - - - Duke - - - - - Denio - - - - - Berg - - - - - Stag - - - - - Sharpee - - - - - Elsa - - - - - Yoda - - - - - Garfield - - - - - Snoopy - - - - - Popey - - - - - Pinguin - - - - - Mickey - - - - - 0/512 - - - - - Add a memo to your request - - - - - Cancel - - - - - Add Contact and Send Request - + MainWindow - + SilentDragonLite - + - + Balance - + - + Summary - + - + Shielded - + - + Notarized - + - + Transparent - + - + Total - + - + Your node is still syncing, balances may not be updated. - + - + Some transactions are not yet confirmed. Balances may change. - + - + Address Balances - + - - + + Send - + - + Total notarized funds available: - + - + Send To - + - + Recipient - + - - - + + + Address - + - + Address Book - + - - + + Amount - + - + Max Available - + - - - + + + Memo - + - + Add Recipient - + - + + Recurring payment + + + + + Every month, starting 12-May-2012, for 6 payments + + + + + Edit Schedule + + + + Miner Fee - + - + 0 - + - + Cancel - + - + Receive - + - + Address Type - + - + z-Addr - + - + t-Addr - + - + Next Address - + - + Information about Hush - + - + <html><head/><body><p align="center"><span style=" font-weight:600;">Hush Blockchain Information</span></p></body></html> - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + <html><head/><body><p align="center">|</p></body></html> - + - + Next Halving - + - + Difficulty - + - + Last Notarized Block - + - + Total Supply - + - + Longestchain - + - + BlockHeight - + - + Supply zAddr - + - + Supply tAddr - + - + <html><head/><body><p align="center"><span style=" font-weight:600;">Hush Market Information</span></p></body></html> - + - + Market Cap - + - + Volume on Exchanges - + - + <html><head/><body><p align="center">This is a Lightwallet, you cant mine with it!</p></body></html> - + - + View All Addresses - + - + Label - + - + Update Label - + - + Address balance - + - + Optional - + - - + + Export Private Key - + - + Your node is still syncing, balances may not be updated - + - + Transactions - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + Loading... - + - + Version hushlightd - + - + Vendor - - - - - Deposit Hush - + - HushChat - - - - - Incoming contact request - - - - - Add a new contact - - - - - Get a new Address - - - - - <html><head/><body><p align="center"><span style=" font-weight:600; text-decoration: underline;">Contactlist</span></p></body></html> - - - - - <html><head/><body><p align="center"><span style=" font-weight:600;">Contact Name :</span></p></body></html> - - - - - <html><head/><body><p align="center"><br/></p></body></html> - - - - - The locks shows you the status of the message. Red lock = unconfirmed, green lock = min. 1 confirmations, orange lock = message is notarized - - - - &File - + - + &Help - + - + &Apps - + - + &Edit - + - + E&xit - + - + &About - + - + &Settings - + - + Ctrl+P - + - + &Send DenioD Feedback - + - + &Hush Discord - + - + &Hush Website - + - + Check github.com for &updates - + - + &Export all private keys - + - + Address &book - + - + Ctrl+B - + - + &Export seed phrase - + - - + + Export transactions - + - + Pay hush &URI... - + - + Connect mobile &app - + - + Ctrl+M - + - + &Recurring Payments - + - + Request hush... - + - + File a bug... - + - + Encrypt Wallet - + - + Remove Wallet Encryption - + - + Rescan - + + + + + Wallet is already encrypted + + + + + Your wallet is already encrypted with a password. +Please use 'Remove Wallet Encryption' if you want to remove the wallet encryption. + - + Passwords don't match - + - - + + Error was: + + + + + + Wallet Encrypted + + + + + Your wallet was successfully encrypted! The password will be needed to send funds or export private keys. + + + + + Wallet Encryption Failed - + - + Wallet is not encrypted - + - - - Copy txid - + + Your wallet is not encrypted with a password. + - - - Copy block explorer link - + + Wallet Password + - - View tx on block explorer - + + Please enter your wallet password + - - Refresh - + + + + Wallet Decryption Failed + - - Restart - + + Please enter a password to decrypt your wallet! + - - Please restart Silentdragonlite to have the theme apply - + + Wallet Encryption Removed + - - Currency Change - + + Your wallet was successfully decrypted! You will no longer need a password to send funds or export private keys. + - - Some feedback about SilentDragonlite or Hush... - + + + Copy txid + - - This change can take a few seconds. - + + + Copy block explorer link + - - - Wallet Encryption Success - + + View tx on block explorer + - - Your wallet is not encrypted with a passphrase. + + Refresh + + + Restart + + + + + Please restart Silentdragonlite to have the theme apply + + + + + Currency Change + + - Wallet decryption Success - + Some feedback about SilentDragonlite or Hush... + - - You still have plaintext data on your disk! - + + This change can take a few seconds. + - + or SilentDragonLite - + - + Send DenioD some private and shielded feedback about - + - + Paste HUSH URI - + - + Error paying HUSH URI - + - + URI should be of the form 'hush:<addr>?amt=x&memo=y - + - + Error - + - + Error exporting transactions, file was not saved - + - + This is your wallet seed. Please back it up carefully and safely. - + - - + + Save File - + - - + + Unable to open file - + - + Error getting private keys - + - + Error loading private keys: - + - + These are all the private keys for all the addresses in your wallet - + - + Private key for - + - - + + Copy address - + - - - - + + + Copied to clipboard - + - + Get private key - + - - + + View on block explorer - + - + View Payment Request - + - + View Memo - + - + Reply to - + - - Copied message to clipboard - - - - - Copied Txid to clipboard - - - - + Created new t-Addr - + - + Copy Address - + - + Address has been previously used - + - + Address is unused - + Cannot support multiple addresses - + Recurring payments doesn't currently support multiple addresses - + Recipient - + Only z-addresses can have memos - - - - - Transaction Error - - - - - - Please wait... - - - - - Computing your transaction - - - - - - Done! - + - - - - Recipient Address - + + Memos can only be used with z-addresses + - - - You have to select a contact and insert a Memo - - - - - - You have selected no Contact from Contactlist, + + The memo field can only be used with a z-address. - + - - + -or your Memo is empty - +doesn't look like a z-address + - - - Your Message is too long - + + Transaction Error + - - - You can only write messages with 235 character maximum - - + + Please wait... + - - - - Please reduce your message to 235 character. - + + Computing your transaction + - - - Message Error - + + Done! + + + + + Recipient Address + - - - + is Invalid - + - - - + Amount for address '%1' is invalid! - + - - - + Not enough available funds to send this transaction Have: %1 Need: %2 -Note: Funds need 1 confirmations before they can be spent - - - - - Missing HushChat Address - - - - - You have to create your HushChat address to send a contact request, - - - - - - Your contact request will be sent - +Note: Funds need 5 confirmations before they can be spent + @@ -1151,12 +907,12 @@ Note: Funds need 1 confirmations before they can be spent Memo - + Include Reply Address - + @@ -1164,7 +920,7 @@ Note: Funds need 1 confirmations before they can be spent Reply to - + @@ -1172,94 +928,86 @@ Note: Funds need 1 confirmations before they can be spent Migration Turnstile - + Migration History - + Migrated Amount - + Unmigrated Amount - + Sprout -> Sapling migration enabled - + If enabled, hushd will slowly migrate your Sprout shielded funds to your Sapling address. - + MobileAppConnector - Mobile Connector App - + Connect Mobile App + Scan this QRCode from your silentdragon companion app to connect your phone - + QR Code - + Connection String - + Allow connections over the internet via silentdragon wormhole - + silentdragon Companion App - + Disconnect - + TextLabel - + Last seen: - + Connection type: - - - - - NewOrRestorePage - - - Passphrase don't match or You have entered too few letters (16 minimum) - + @@ -1267,35 +1015,35 @@ Note: Funds need 1 confirmations before they can be spent Form - + This is your new wallet's seed phrase. PLEASE BACK IT UP SECURELY. - + - + The seed phrase is the only way to restore the wallet. If you forget the seed phrase, THERE IS NO WAY TO RESTORE YOUR WALLET AND THE FUNDS in it - + NewSeedPage - + Error creating a wallet - + - + Failed to save wallet - + - + Couldn't save the wallet - + @@ -1303,315 +1051,285 @@ Note: Funds need 1 confirmations before they can be spent Private Keys - + QObject - + Pick - + - - - + Address or Label Error - + - - - + Address or Label cannot be empty - + - - - + Address Format Error - + - - - + %1 doesn't seem to be a valid hush address. - + - + Label Error - - - - - The label '%1' already exists. Please remove the existing label. - - - - - - Added Contact - + - - - successfully added your new contact - + + The label '%1' already exists. Please remove the existing label. + - + Import Address Book - + - + Unable to open file - + - + Address Book Import Done - + - + Imported %1 new Address book entries - + - + Copy address - + - + Copied to clipboard - + - + Delete label - + - + Attempting to initialize library with - + - + Using existing wallet. - + - + Create/restore wallet. - + - - + + Connection Error - + - - - - - + + + Transaction Error - + - + There was an error sending the transaction. The error was: - + - - + + No Connection - + + + + + There was an error connecting to hushd. The error was + - - - + - + Tx - + - - - + - + failed - + - - - - + + The transaction with id - + - - - - + + failed. The error was - - - - - There was an error connecting to the server. Please check your internet connection. The error was - + - + Update Available - + - + A new release v%1 is available! You have v%2. Would you like to visit the releases page? - + - + No updates available - + - + You already have the latest release v%1 - + - - + Please wait for SilentDragonLite to exit - + - - + Waiting for hushd to exit - + No hush price was available to convert from USD - + View on block explorer - + View Error - + Reported Error - + Are you sure you want to delete the recurring payment? - + All future payments will be cancelled. - + - + Tx submitted (right click to copy) txid: - + Type - + Address - + Date/Time - + Confirmations - + Amount - + Connected directly - + Connected over the internet via silentdragon wormhole service - + Node is still syncing. - + No sapling or transparent addresses with enough balance to spend. - + RecurringDialog - Reccuring Dialog + Dialog View - + Delete - + @@ -1619,45 +1337,45 @@ Would you like to visit the releases page? Amount - + Schedule - + Payments Left - + Next Payment - + To - + Every - + None - + RecurringPayments - Reocurring Payments - + Payments + @@ -1665,111 +1383,111 @@ Would you like to visit the releases page? Date - + Status - + Txid - + Not due yet - + Pending - + Skipped - + Paid - + Error - + Unknown - + RecurringPending - Recurring Multiple Payments - + Dialog + No payments will be processed. You can manually pay them from the Recurring Payments Dialog box - + Schedule - + How should silentdragon proceed? - + Pay All in 1 Tx - + Only the latest pending payment will be processed. All previous pending payments will be skipped - + Pay Latest Only - + Pay None - + All pending payments collected, added up and paid in a single transaction - + Description - + To - + The following recurring payment has multiple payments pending - + @@ -1777,292 +1495,288 @@ Would you like to visit the releases page? Payment Request - + - + AddressBook - + - + Request From - + - + My Address - + - + Amount in - + - + z address - + - + Amount - + - + The recipient will see this address in the "to" field when they pay your request. - + - + Amount USD - + - + Memo - + - + TextLabel - + - + Request payment from a Sapling address. You'll send a hush 0.0001 transaction to the address with a hush payment URI. The memo will be included in the transaction when the address pays you. - + Error paying hush URI - + URI should be of the form 'hush:<addr>?amt=x&memo=y - + Pay To - + Pay - + You are paying a payment request. Your address will not be visible to the person requesting this payment. - + Can only request from Sapling addresses - + RestoreSeedForm - Restore Wallet Seed - + Form + Please enter your 24-word seed below - + Wallet Seed - + Wallet Birthday - + 0 - + Wallet birthday is the block height at which the wallet had the first transaction. If you don't know this, you can leave it as "0" (It'll take longer to rescan) - + RestoreSeedPage - - + + Failed to restore wallet - + - + SilentDragonLite needs 24 words to restore wallet - + - + Failed to parse wallet birthday - + - + Couldn't understand wallet birthday. This should be a block height from where to rescan the wallet. You can leave it as '0' if you don't know what it should be. - + - + Couldn't restore the wallet - + - + Failed to save wallet - + - + Couldn't save the wallet - + Settings - + Settings - + - + Connection - + - + Lightwallet Server - + - + Options - - - - - Dark - + - - Midnight - + + default + - - Light - + + blue + - - Blue - + + light + - - Default - + + dark + - + Fetch hush prices - + - + Check github for updates at startup - + - + Connect to github on startup to check for updates - + - + Theme - + - + Connect to the internet to fetch hush prices - + - + Currency - + - + AUD - + - + BTC - + - + CAD - + - + CHF - + - + CNY - + - + EUR - + - + GBP - + - + INR - + - + RUB - + - + USD - + @@ -2070,12 +1784,12 @@ Would you like to visit the releases page? All Addresses - + Export All Keys - + @@ -2083,12 +1797,12 @@ Would you like to visit the releases page? Address - + Balance (%1) - + @@ -2096,7 +1810,7 @@ Would you like to visit the releases page? About - + @@ -2104,117 +1818,32 @@ Would you like to visit the releases page? Address Book - + - + Add New Address - + - + Address (z-Addr or t-Addr) - - - - - <html><head/><body><p>Nickname :</p></body></html> - - - - - HushChat Address - give this Address only to your contact - - - - - <html><head/><body><p>Conversation ID:</p></body></html> - - - - - SDLogo - - - - - Duke - - - - - Denio - - - - - Berg - - - - - Sharpee - - - - - Elsa - - - - - Yoda - - - - - Garflied - - - - - Snoopy - - - - - Popey - - - - - Pinguin - - - - - Mickey - - - - - Stag - + - - <html><head/><body><p>Avatar :</p></body></html> - - - - - Create a new HushChat zaddr - + + Label + - + Add to Address Book - + - + Import Address Book - + @@ -2222,27 +1851,27 @@ Would you like to visit the releases page? Confirm Transaction - + To - + Recurring Payment - + TextLabel - + You are sending a transaction while your node is still syncing. This may not work. - + @@ -2250,180 +1879,80 @@ Would you like to visit the releases page? Configure hush.conf - + Your hush node will be configured for you automatically - + Show Advanced Configuration - + Allow connections to the internet to check for updates, get hush prices etc... - + Use custom datadir - + Choose directory - + Please note that you'll need to already have a Tor service configured on port 9050 - + Connect to the internet for updates and price feeds - + Please choose a directory to store your wallet.dat and blockchain - + Connect over Tor - - - - - deposithush - - - Deposit Hush - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:16pt;">Please use the following hush address to transfer funds to SilentDragonLite. You can either copy the address or use the QR Code. </span></p></body></html> - - - - - <html><head/><body><p align="center">QR Code of your Hush Address</p></body></html> - - - - - <html><head/><body><p align="center"><span style=" text-decoration: underline;">Your Hush Address </span></p></body></html> - - - - - Hush zaddr - - - - - Copy Address - + encryptionDialog - + Encrypt Your Wallet - - - - - Encryption Passphrase: - - - - - <html><head/><body><p><span style=" font-size:14pt; color:#ef2929;">WARNING:</span> If you forget your passphrase, the only way to recover the wallet is from the seed phrase. If you don't have a backup of your seed phrase, please do it now!</p></body></html> - - - - - Confirm Passphrase: - - - - - <html><head/><body><p><span style=" font-style:italic;">Passphrase don't match</span></p></body></html> - - - - - <html><head/><body><p><span style=" font-style:italic;">16 letters minimum</span></p></body></html> - - - - - hushrequest - - - Request Payment - - - - - TextLabel - - - - - Request payment from a Sapling address. You'll send a hush 0.0001 transaction to the address with a hush payment URI. The memo will be included in the transaction when the address pays you. - - - - - Request From - - - - - zaddr - - - - - Amount in - - - - - Amount - + - - Amount USD - + + Encryption Password: + - - Memo - + + Confirm Password: + - - My Address - + + Passwords don't match + - - The recipient will see this address in the "to" field when they pay your request. - + + WARNING: If you forget your password, the only way to recover the wallet is from the seed phrase. + @@ -2431,221 +1960,47 @@ p, li { white-space: pre-wrap; } Edit Schedule - + Payment Description - + Schedule - + Next Payment - + Amount - + Memo - + To - + From - + Number of payments - - - - - removeencryption - - - Decrypt Your Wallet - - - - - <html><head/><body><p><span style=" font-size:14pt; color:#ef2929;">WARNING:</span> If you remove your wallet.dat encryption, all your transactions and contacts are plaintext on disk!<br/><br/>Messages sent and received are always encrypted.</p></body></html> - - - - - <html><head/><body><p><span style=" font-style:italic;">16 letters minimum</span></p></body></html> - - - - - Encryption Passphrase: - - - - - Confirm Passphrase: - - - - - <html><head/><body><p><span style=" font-style:italic;">Passphrase don't match</span></p></body></html> - - - - - requestDialog - - - Incoming Contact Request - - - - - <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Memo of the request</span></p></body></html> - - - - - <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Open requests</span></p></body></html> - - - - - Request from: - - - - - Add New Contact - - - - - <html><head/><body><p>Choose an avatar for your contact:</p></body></html> - - - - - My Zaddr: - - - - - Cancel - - - - - SDLogo - - - - - Duke - - - - - Denio - - - - - Berg - - - - - Sharpee - - - - - Elsa - - - - - Yoda - - - - - Garfield - - - - - Snoopy - - - - - Popey - - - - - Pinguin - - - - - Mickey - - - - - Stag - - - - - <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Recently closed requests</span></p></body></html> - - - - - <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Details of the request</span></p></body></html> - - - - - Give a Nickname: - - - - - startup - - - SDL Startup Decryption - - - - - <html><head/><body><p>If you have forgotten your passphrase, restore your wallet with your seed!</p></body></html> - - - - - Encryption Passphrase: - + diff --git a/res/silentdragonlite_ro.qm b/res/silentdragonlite_ro.qm new file mode 100644 index 0000000..185fba5 Binary files /dev/null and b/res/silentdragonlite_ro.qm differ diff --git a/res/silentdragonlite_ro.ts b/res/silentdragonlite_ro.ts new file mode 100644 index 0000000..4075e9f --- /dev/null +++ b/res/silentdragonlite_ro.ts @@ -0,0 +1,2001 @@ + + + + + AddressBookModel + + + Label + Eticheta + + + + Address + Adresa + + + + BalancesTableModel + + + Address + Adresa + + + + Amount + Valoare + + + + ConnectionDialog + + + SilentDragonLite + SilentDragonLite + + + + Starting Up + Se Porneste + + + + Controller + + + Wallet Password + Parola Portofelului + + + + Your wallet is encrypted. +Please enter your wallet password + Portofelul Dvs. este criptat + + + + + Wallet Decryption Failed + Decriptarea Portofelului a Esuat + + + + Please enter a valid password + Rugam sa introduceti parola valida + + + + Failed to unlock wallet + Deblocarea portofelului a esuat + + + + CreateWalletForm + + + Form + Forma + + + + Restore wallet from seed + Recuperati portmoneul cu ajutorul semnaturii + + + + Restore an existing wallet, using the 24-word seed. + Recuperati portofel existent folosind semnatura de 24 de cuvinte + + + + Create a new Wallet + Creati Portofel Nou + + + + Create a new wallet with a randomly generated seed. + Creati portofel nou cu ajutorul semnaturii, generate aleatoriu + + + + MainWindow + + + SilentDragonLite + SilentDragonLite + + + + Balance + Soldul + + + + Summary + Rezumat + + + + Shielded + Ecranat + + + + Notarized + Notarizat + + + + Transparent + Transparent + + + + Total + Total + + + + Your node is still syncing, balances may not be updated. + Are loc sincronizarea nodului, soldurile pot fi neactualizate. + + + + Some transactions are not yet confirmed. Balances may change. + Tranzactia nu este inca confirmata. Soldul poate schimba. + + + + Address Balances + Soldul Adresei + + + + + Send + Trimite + + + + Total notarized funds available: + Totalul fondurlor notarizate valabile: + + + + Send To + Trimite Catre + + + + Recipient + Destinatar + + + + + + + + Address + Adesa + + + + + Address Book + Carte de Adrese + + + + + + + Amount + Valoare + + + + Max Available + Maxim Disponibil + + + + + + + Memo + + + + + Add Recipient + Adauga Destinatar + + + + Recurring payment + Plata recurenta + + + + Every month, starting 12-May-2012, for 6 payments + Fiecare luna, incepind cu 12-Mai-2012 + + + + Edit Schedule + Editati Programul + + + + + Miner Fee + Taxa Minerului + + + + 0 + 0 + + + + Cancel + Anulare + + + + Receive + Primeste + + + + Address Type + Tipul Adresei + + + + z-Addr + Adresa-z + + + + t-Addr + Adresa-t + + + + Next Address + Adresa Urmatoare + + + + Information about Hush + Informatia despre Hush + + + + <html><head/><body><p align="center"><span style=" font-weight:600;">Hush Blockchain Information</span></p></body></html> + + + + + + + + + + + + + + + + <html><head/><body><p align="center">|</p></body></html> + + + + + Next Halving + Halving Urmator + + + + Difficulty + Dificultate + + + + Last Notarized Block + Ultimul Bloc Notarizat + + + + Total Supply + Cantitatea Totala + + + + Longestchain + Cel mai lung lant + + + + BlockHeight + Inaltimea Blocului + + + + Supply zAddr + Cantitatea adreselor z + + + + Supply tAddr + Cantitatea adreselor t + + + + <html><head/><body><p align="center"><span style=" font-weight:600;">Hush Market Information</span></p></body></html> + + + + + Market Cap + Capitalizarea Pietii + + + + Volume on Exchanges + Volumul Schimbului Valutar + + + + <html><head/><body><p align="center">This is a Lightwallet, you cant mine with it!</p></body></html> + + + + + View All Addresses + Vizualizati Toate Adresele + + + + Label + Eticheta + + + + Update Label + Actualizati Eticheta + + + + Address balance + Soldul Adresei + + + + Optional + Optional + + + + + Export Private Key + Exporta Cheia Privata + + + + Your node is still syncing, balances may not be updated + Are loc sincronizarea nodului, soldurile pot fi neactualizate. + + + + Transactions + Tranzactii + + + + + + + + + + + + + + + Loading... + Se Incarca... + + + + Version hushlightd + Versiunea hushlighttd + + + + Vendor + Furnizor + + + + &File + &Fisier + + + + &Help + &Ajutor + + + + &Apps + &Aplicatii + + + + &Edit + &Editati + + + + E&xit + &Iesire + + + + &About + &Despre + + + + &Settings + &Setari + + + + Ctrl+P + Ctrl+P + + + + &Send DenioD Feedback + Trimite Feedback lui Duke + + + + &Hush Discord + Hush Discord + + + + &Hush Website + Hush Website + + + + Check github.com for &updates + Verifica github.com pentru &actualizari + + + + &Export all private keys + &Exporta toate cheile private + + + + Address &book + &Carte de Adrese + + + + Ctrl+B + Ctrl+B + + + + &Export seed phrase + &Exporta semnatura + + + + + Export transactions + Exporta tranzactiile + + + + Pay hush &URI... + Plateste HUSH &URI... + + + + Connect mobile &app + Conecteaza aplicatia &mobila + + + + Ctrl+M + Ctrl+M + + + + &Recurring Payments + &Solicitarea Platilor + + + + Request hush... + Solicita HUSH... + + + + File a bug... + Depune Eroare + + + + Encrypt Wallet + Criptati Portofelul + + + + Remove Wallet Encryption + Eliminati Criptarea Portofelului + + + + Rescan + Rescanati + + + + Wallet is already encrypted + Portofelul e deja criptat + + + + Your wallet is already encrypted with a password. +Please use 'Remove Wallet Encryption' if you want to remove the wallet encryption. + Portofelul dvs. este deja criptat cu parola. +Rugam sa folositi 'Eliminati Criptarea Portofelului' daca doriti sa eliminati criptarea portofelului. + + + + Passwords don't match + Parole nu coincid + + + + Error was: + + Eroarea este: + + + + Wallet Encrypted + Portofel Criptat + + + + Your wallet was successfully encrypted! The password will be needed to send funds or export private keys. + Portofelul a fost criptat cu succes! Folosirea parolei va fi necesara in cazul transferului sau exportului fondurilor. + + + + + Wallet Encryption Failed + Criptarea Portofelului a Esuat + + + + Wallet is not encrypted + Portofelul nu este criptat + + + + Your wallet is not encrypted with a password. + Portofelul dvs. nu este criptat cu parola. + + + + Wallet Password + Parola Portofelului + + + + Please enter your wallet password + Rugam sa introduceti parola portofelului + + + + + + Wallet Decryption Failed + Decriptarea Portofelului a Esuat + + + + Please enter a password to decrypt your wallet! + Rugam sa introduceti parola pentru a decripta portofelul! + + + + Wallet Encryption Removed + Criptarea Portofelului a fost Scoasa + + + + Your wallet was successfully decrypted! You will no longer need a password to send funds or export private keys. + Portofelul Dvs. a fost decriptat cu succes! Folosirea parolei nu va fi necesara in cazul transferului sau exportului cheilor private. + + + + + Copy txid + Copiati tranzactia ID + + + + + Copy block explorer link + Copiati link-ul exploratorului de blocuri + + + + View tx on block explorer + Vizualizati tranzactia in explorator de blocuri + + + + Refresh + Actualizare + + + + Restart + Reporniti + + + + Please restart Silentdragonlite to have the theme apply + Rugam sa reporniti SilentDragon pentru aplicarea temei + + + + Currency Change + Schimbarea Valutei + + + + Some feedback about SilentDragonlite or Hush... + Feedback despre SilentDragonLite sau Hush... + + + + This change can take a few seconds. + Aceasta schimbare poate dura citeva secunde. + + + + or SilentDragonLite + sau SilentDragonLite + + + + Send DenioD some private and shielded feedback about + Trimite lui DenioD feedback privat sau ecranat + + + + Paste HUSH URI + Lipeste HUSH URI + + + + Error paying HUSH URI + Eroarea platii HUSH URI + + + + URI should be of the form 'hush:<addr>?amt=x&memo=y + Uri trebuie sa fie de forma 'hush:<addr>?amt=x&memo=y + + + + Error + Eroare + + + + Error exporting transactions, file was not saved + Eroare in timpul exportului tranzactiei, fisierul nu a fost salvat + + + + This is your wallet seed. Please back it up carefully and safely. + Aceasta este semnatura dvs. Rugam sa o copiati atent si cu siguranta. + + + + + Save File + Salveaza Fisierul + + + + + Unable to open file + Fisierul nu poate fi deschis + + + + Error getting private keys + Eroare la primirea cheilor private + + + + Error loading private keys: + Eroare la incarcarea cheilor private: + + + + These are all the private keys for all the addresses in your wallet + Acestea sint toate cheile private adreselor din portofel + + + + Private key for + Cheia privata privata + + + + + Copy address + Copiaza adresa + + + + + + Copied to clipboard + Copiata \EEn clipboard + + + + Get private key + Obtine cheia privata + + + + + View on block explorer + Vizualizare pe exploator de bloc + + + + View Payment Request + Vizualizati Plata Solicitata + + + + View Memo + Vizualizati Memo + + + + Reply to + Raspunde + + + + Created new t-Addr + O noua t-Addr a fost creata + + + + Copy Address + Copiati Adresa + + + + Address has been previously used + Adresa data a fost folosita anterior + + + + Address is unused + Adresa nu poate fi utilizata + + + + Cannot support multiple addresses + Nu poate suporta adrese multiple + + + + Recurring payments doesn't currently support multiple addresses + In momentul dat platile recurente nu suporta adrese multiple + + + + Recipient + Destinatar + + + + Only z-addresses can have memos + Doar adrese-z pot avea memo + + + + Memos can only be used with z-addresses + Memo pot fi folosite doar cu adrese-z + + + + The memo field can only be used with a z-address. + + Cimpul cu memo poate fi folosit doar cu adrese-z + + + + +doesn't look like a z-address + nu arata ca adresaz- + + + + Transaction Error + Eroarea de Tranzactie + + + + Please wait... + Rugam sa asteptati + + + + Computing your transaction + Calcularea tranzactiei + + + + Done! + Terminat! + + + + Recipient Address + Adresa Recipientului + + + + is Invalid + Este Nevalid + + + + Amount for address '%1' is invalid! + Valoarea adresei '%1' este nevalida! + + + + Not enough available funds to send this transaction + +Disponibil: %1 +Necesar: %2 + +Note: Funds need 5 confirmations before they can be spent + Nu sint suficiente fondurile pentru a trimite aceasta transactie +Aveti: %1 +Este Nevoie: %2 +Nota: Fondurile au nevoie de 5 confirmatii inainte ca sa fiu transmise + + + + MemoDialog + + + + Memo + Memo + + + + Include Reply Address + Include adresa de raspuns + + + + MemoEdit + + + Reply to + Raspunde + + + + MigrationDialog + + + Migration Turnstile + Migrarea Turnstile + + + + Migration History + Istoria Migrarii + + + + Migrated Amount + Valoarea Migrata + + + + Unmigrated Amount + Valoarea Nemigrata + + + + Sprout -> Sapling migration enabled + Sprout -> Sapling migrarea este aplicata + + + + If enabled, hushd will slowly migrate your Sprout shielded funds to your Sapling address. + Daca este aplicat, hushd va migra fondurile ecranate Sprout spre Sapling adrese. + + + + MobileAppConnector + + + Connect Mobile App + Conectati Aplicatia Mobila + + + + Scan this QRCode from your silentdragon companion app to connect your phone + Scanati acest QRcod pe de aplicatia SilentDragon Companion pentru a conecta telefonul + + + + QR Code + QR Cod + + + + Connection String + Sirul de conexiune + + + + Allow connections over the internet via silentdragon wormhole + Permiteti conexiunea prin internet cu ajutorl SilentDragon wormhole + + + + silentdragon Companion App + Aplicatia SilentDragon Companion + + + + Disconnect + Deconectati + + + + + TextLabel + TextMarca + + + + Last seen: + Vazut ultima data + + + + Connection type: + Tipul Conexiunii + + + + NewSeedForm + + + Form + Forma + + + + This is your new wallet's seed phrase. PLEASE BACK IT UP SECURELY. + Aceasta este semnatura portofelului nou. RUGAM SA O COPIATI CU SIGURANTA. + + + + The seed phrase is the only way to restore the wallet. If you forget the seed phrase, THERE IS NO WAY TO RESTORE YOUR WALLET AND THE FUNDS in it + Semnatura este unica solutie pentru restabilirea portofelului. Daca uitati semnatura, NU EXISTA NICI O SOLUTIE PENTRU RESTABILIREA PORTOFELULUI SI FONDURILOR. + + + + NewSeedPage + + + Error creating a wallet + Eroarea crearii portofelului + + + + Failed to save wallet + Salvarea portofelului a esuat + + + + Couldn't save the wallet + Salvarea portofelului nu a fost posibila + + + + PrivKey + + + Private Keys + Cheia Privata + + + + QObject + + + Pick + Alege + + + + Address or Label Error + Eroarea Marcii sau Adresei + + + + Address or Label cannot be empty + Adresa sau Marca nu pot fi goi + + + + Address Format Error + Eroarea Formatului Adresei + + + + %1 doesn't seem to be a valid hush address. + nu este o adresa HUSH valida + + + + Label Error + Eroare de Marca + + + + The label '%1' already exists. Please remove the existing label. + Marca '%1' deja exista. Rugam sa eliminati marca existenta + + + + Import Address Book + Importa Cartea de Adrese + + + + Unable to open file + Accesarea fisierului nu este posibila + + + + Address Book Import Done + typ>Importul Cartii de Adrese este Terminat + + + + Imported %1 new Address book entries + Importul %1 adresei noi a fost efectuat + + + + Copy address + Copiati adresa + + + + Copied to clipboard + Copiat in clipboard + + + + Delete label + Sterge marca + + + + Attempting to initialize library with + Incercare de initiere a bibliotecii cu + + + + Using existing wallet. + Folosirea portofelului existent. + + + + Create/restore wallet. + Creati/Restabiliti portofelul. + + + + + Connection Error + Eroare la Conexiune + + + + + + Transaction Error + Eroarea de Tranzactie + + + + There was an error sending the transaction. The error was: + A avut loc eroarea la transmiterea tranzactiei. Eroarea a fost de tip: + + + + + No Connection + Conexiunea nu exista + + + + There was an error connecting to hushd. The error was + A fost eroarea conexiunii la hushd. Eroarea a fost + + + + + + Tx + Tranzactia + + + + + + failed + a esuat + + + + + The transaction with id + Tranzactia cu id + + + + + failed. The error was + a esuat. Eroarea a fost + + + + Update Available + Update Valabil + + + + A new release v%1 is available! You have v%2. + +Would you like to visit the releases page? + O noua veriune V%1 este valabila! Tu ai v%2 +Doriti sa vizitati pagina veriunii? + + + + No updates available + Update nu este valabil + + + + You already have the latest release v%1 + Deja aveti cea mai recenta versiune v%1 + + + + Please wait for SilentDragonLite to exit + Rugam sa asteptati pina ce SilentDragonLite sa o sa iasa + + + + Waiting for hushd to exit + Asteptam ca hushd sa iasa + + + + No hush price was available to convert from USD + Nici un pret al hush nu a fost valabil pentru convertare in USD + + + + View on block explorer + Vizualizare pe expoator de bloc + + + + View Error + Vizualizati Erorea + + + + Reported Error + Eroare Raportata + + + + + Are you sure you want to delete the recurring payment? + Sinteti siguri in stergerea platii recurente? + + + + All future payments will be cancelled. + Toate platile viitoare vor fi anulate. + + + + Tx submitted (right click to copy) txid: + Tranzactia a fost inaintata (clic drept pentru a copia) tranzactia ID:> + + + + Type + Tipul + + + + Address + Adresa + + + + Date/Time + Data/Tipul + + + + Confirmations + Confirmatii + + + + Amount + Valoare + + + + Connected directly + Conectat direct + + + + Connected over the internet via silentdragon wormhole service + Conectat la internet prin serviciul SilentDragon wormhole + + + + + Node is still syncing. + Nodul inca se sincronizeaza + + + + + No sapling or transparent addresses with enough balance to spend. + Nici o adreasa Sapling sau transparenta cu sold suficient pentru transmitere. + + + + RecurringDialog + + + Dialog + Dialog + + + + View + Vizualizare + + + + Delete + Sterge + + + + RecurringListViewModel + + + Amount + Valoare + + + + Schedule + Programa + + + + Payments Left + Platile ramase + + + + Next Payment + Urmatoarea Plata + + + + To + Catre + + + + Every + Fiecare + + + + None + Nici unul + + + + RecurringPayments + + + Payments + Platile + + + + RecurringPaymentsListViewModel + + + Date + Data + + + + Status + Stare + + + + Txid + Tranzactia ID + + + + Not due yet + Inca nu + + + + Pending + In asteptare + + + + Skipped + Omit + + + + Paid + Platit + + + + Error + Eroare + + + + + Unknown + Necunoscut + + + + RecurringPending + + + Dialog + Dialog + + + + No payments will be processed. You can manually pay them from the Recurring Payments Dialog box + Platile nu vor fi procesate. Ele pot fi platite manual din Caseta de Dialog a Platilor Recurente + + + + Schedule + Programa + + + + How should silentdragon proceed? + Cum Silent Dragon trebuie sa procedeze? + + + + Pay All in 1 Tx + Platiti tot in 1 Tranzactie + + + + Only the latest pending payment will be processed. All previous pending payments will be skipped + Doar cea mai recenta plata va fi procesata. Toate platile anterioare vor fi omise + + + + Pay Latest Only + Platiti doar plata recenta + + + + Pay None + Nu plati niciuna + + + + All pending payments collected, added up and paid in a single transaction + Toate platile in asteptare au fost colectate, combinate si platite intr-o singura tranzatie + + + + Description + Descriptie + + + + To + Catre + + + + The following recurring payment has multiple payments pending + Urmatoarea plata recurenta are plati multiple, in asteptare + + + + RequestDialog + + + Payment Request + Plata Solicitata + + + + AddressBook + Carte de Adrese + + + + Request From + Solicita De la + + + + My Address + Adresa Mea + + + + Amount in + Valoare in + + + + z address + adresa z + + + + Amount + Valoare + + + + The recipient will see this address in the "to" field when they pay your request. + Destinatarul va vedea aceasta adresa in cimpul \ABpentru\BB la platirea solicitarii + + + + Amount USD + Valoarea USD + + + + Memo + Memo + + + + TextLabel + TextMarca + + + + Request payment from a Sapling address. You'll send a hush 0.0001 transaction to the address with a hush payment URI. The memo will be included in the transaction when the address pays you. + Solicita plata de pe Sapling adresa. HUSH 0.0001 tranzactia va fi transmisa la adresa cu plata HUSH URI. Memo va fi inclus in tranzactie cind adresa va plati. + + + + Error paying hush URI + Eroare platii HUSH URI + + + + URI should be of the form 'hush:<addr>?amt=x&memo=y + URI trebuie sa fie de forma 'hush:<addr>?amt=x&memo=y + + + + Pay To + Platiti lui + + + + Pay + Platiti + + + + You are paying a payment request. Your address will not be visible to the person requesting this payment. + Platiti plata solicitata. Adresa voastra nu va fi vizibila persoanei care solicita aceasta plata. + + + + Can only request from Sapling addresses + Puteti doar solicita de la adresa Sapling + + + + RestoreSeedForm + + + Form + Forma + + + + Please enter your 24-word seed below + Rugam, sa introduceti semnatura de 24 de cuvinte mai jos + + + + Wallet Seed + Semnatura Portofelului + + + + Wallet Birthday + Ziua de Nastere a Portofelului + + + + 0 + 0 + + + + Wallet birthday is the block height at which the wallet had the first transaction. If you don't know this, you can leave it as "0" (It'll take longer to rescan) + Ziua de nastere a portofelului e inaltimea blocului cind a avut loc prima tranzactie a portofelului. Daca nu o cunoasteti, lasati-o ca "0" (Rescanarea va dura mai mult timp) + + + + RestoreSeedPage + + + + Failed to restore wallet + Restabilirea portofelului a esuat + + + + SilentDragonLite needs 24 words to restore wallet + SilentDragonLite are nevoie de semnatura de 24 de cuvinte pentru restabilirea portofelului + + + + Failed to parse wallet birthday + Analizarea zilei de nastere a portofelului a esuat + + + + Couldn't understand wallet birthday. This should be a block height from where to rescan the wallet. You can leave it as '0' if you don't know what it should be. + Ziua de nastere a portofelului nu este inteleasa. Aceasta trebuie sa fe inaltimea blocului de unde rescanarea va avea loc. O puteti lasa ca '0' in caz daca nu cunoasteti care e. + + + + Couldn't restore the wallet + Restaurarea portofelului nu s-a putut + + + + Failed to save wallet + Salvarea portofelului a esuat + + + + Couldn't save the wallet + Salvarea portofelului nu s-a putut + + + + Settings + + + Settings + Setari + + + + Connection + Conexiuni + + + + Lightwallet Server + Lightwallet Server + + + + Options + Optiuni + + + + default + mod implicit + + + + blue + albastru + + + + light + deschis + + + + dark + inchis + + + + Fetch hush prices + Vezi pretul hush + + + + Check github for updates at startup + Verificati actualizarile pe github la pornire + + + + Connect to github on startup to check for updates + Conectati github la pornire pentru verificarea actualizarilor + + + + Theme + Teme + + + + Connect to the internet to fetch hush prices + Conectati la internet pentru a vedea pretul HUSH + + + + Currency + Valuta + + + + AUD + AUD + + + + BTC + BTC + + + + CAD + CAD + + + + CHF + CHF + + + + CNY + CNY + + + + EUR + EUR + + + + GBP + GBP + + + + INR + INR + + + + RUB + RUB + + + + USD + USD + + + + ViewAddressesDialog + + + All Addresses + Toate Adrese + + + + Export All Keys + Exporta Toate Cheile + + + + ViewAllAddressesModel + + + Address + Adresa + + + + Balance (%1) + Soldul (1%) + + + + about + + + About + Despre + + + + addressBook + + + Address Book + Carte de Adrese + + + + Add New Address + Adauga Adresa Noua + + + + Address (z-Addr or t-Addr) + Adresa (z-Addr sau t-Addr) + + + + Label + Marca + + + + Add to Address Book + Adauga in Carte de Adrese + + + + Import Address Book + Importa Cartea de Adrese + + + + confirm + + + Confirm Transaction + Confirma Tranzactia + + + + To + Catre + + + + Recurring Payment + Plata recurenta + + + + TextLabel + TextMarca + + + + You are sending a transaction while your node is still syncing. This may not work. + Trimiteti tranzactia in timp ce are loc sincronizarea nodului.E posibil aceasta sa nu functioneze. + + + + createhushConf + + + Configure hush.conf + Configureaza hush.conf + + + + Your hush node will be configured for you automatically + Nodul Hush va fi configurat in mod automat + + + + Show Advanced Configuration + Arata configuratii avansate + + + + Allow connections to the internet to check for updates, get hush prices etc... + Permiteti conexiunea prin internet pentru verificarea actualizarilor, pretului hush, etc... + + + + Use custom datadir + Indica directia stocarii datelor + + + + Choose directory + Alege locatia + + + + Please note that you'll need to already have a Tor service configured on port 9050 + Rugam sa retineti ca serviciul Tor trebuie sa fie deja configurat prin port 9050 + + + + Connect to the internet for updates and price feeds + Conectati-va la internet pentru actualizari si feed-uri preturilor + + + + Please choose a directory to store your wallet.dat and blockchain + Rugam sa alegeti locatia stocarii wallet.dat si a lantului de blocuri + + + + Connect over Tor + Conecteaza prin Tor + + + + encryptionDialog + + + Encrypt Your Wallet + Criptati Portofelul Dvs. + + + + Encryption Password: + Parola Criptarii + + + + Confirm Password: + Confirma Parola + + + + Passwords don't match + Parola nu se potriveste + + + + WARNING: If you forget your password, the only way to recover the wallet is from the seed phrase. + ATENTIE: Daca uitati parola, unica solutie de recuperare a portofelului va fi semnatura. + + + + newRecurringDialog + + + Edit Schedule + Editati Programul + + + + Payment Description + Descriptia Platii + + + + Schedule + Programa + + + + Next Payment + Urmatoarea Plata + + + + Amount + Valoare + + + + Memo + Memo + + + + To + Catre + + + + From + De la + + + + Number of payments + Numarul de plati + + + + diff --git a/silentdragon-lite.pro b/silentdragon-lite.pro index 762dab7..4338b4b 100644 --- a/silentdragon-lite.pro +++ b/silentdragon-lite.pro @@ -94,7 +94,6 @@ HEADERS += \ src/3rdparty/qrcode/BitBuffer.hpp \ src/3rdparty/qrcode/QrCode.hpp \ src/3rdparty/qrcode/QrSegment.hpp \ - src/3rdparty/json/json.hpp \ src/settings.h \ src/txtablemodel.h \ src/qrcodelabel.h \ @@ -162,6 +161,7 @@ TRANSLATIONS = res/silentdragonlite_es.ts \ res/silentdragonlite_fa.ts \ res/silentdragonlite_id.ts \ res/silentdragonlite_ar.ts \ + res/silentdragonlite_ro.ts \ res/silentdragonlite_tr.ts include(singleapplication/singleapplication.pri) diff --git a/src/3rdparty/json/json.hpp b/src/3rdparty/json/json.hpp deleted file mode 100644 index c40620a..0000000 --- a/src/3rdparty/json/json.hpp +++ /dev/null @@ -1,18928 +0,0 @@ -/* - __ _____ _____ _____ - __| | __| | | | JSON for Modern C++ -| | |__ | | | | | | version 3.3.0 -|_____|_____|_____|_|___| https://github.com/nlohmann/json - -Licensed under the MIT License . -SPDX-License-Identifier: MIT -Copyright (c) 2013-2018 Niels Lohmann . - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ - -#ifndef NLOHMANN_JSON_HPP -#define NLOHMANN_JSON_HPP - -#define NLOHMANN_JSON_VERSION_MAJOR 3 -#define NLOHMANN_JSON_VERSION_MINOR 3 -#define NLOHMANN_JSON_VERSION_PATCH 0 - -#include // all_of, find, for_each -#include // assert -#include // and, not, or -#include // nullptr_t, ptrdiff_t, size_t -#include // hash, less -#include // initializer_list -#include // istream, ostream -#include // iterator_traits, random_access_iterator_tag -#include // accumulate -#include // string, stoi, to_string -#include // declval, forward, move, pair, swap - -// #include -#ifndef NLOHMANN_JSON_FWD_HPP -#define NLOHMANN_JSON_FWD_HPP - -#include // int64_t, uint64_t -#include // map -#include // allocator -#include // string -#include // vector - -/*! -@brief namespace for Niels Lohmann -@see https://github.com/nlohmann -@since version 1.0.0 -*/ -namespace nlohmann -{ -/*! -@brief default JSONSerializer template argument - -This serializer ignores the template arguments and uses ADL -([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl)) -for serialization. -*/ -template -struct adl_serializer; - -template class ObjectType = - std::map, - template class ArrayType = std::vector, - class StringType = std::string, class BooleanType = bool, - class NumberIntegerType = std::int64_t, - class NumberUnsignedType = std::uint64_t, - class NumberFloatType = double, - template class AllocatorType = std::allocator, - template class JSONSerializer = - adl_serializer> -class basic_json; - -/*! -@brief JSON Pointer - -A JSON pointer defines a string syntax for identifying a specific value -within a JSON document. It can be used with functions `at` and -`operator[]`. Furthermore, JSON pointers are the base for JSON patches. - -@sa [RFC 6901](https://tools.ietf.org/html/rfc6901) - -@since version 2.0.0 -*/ -template -class json_pointer; - -/*! -@brief default JSON class - -This type is the default specialization of the @ref basic_json class which -uses the standard template types. - -@since version 1.0.0 -*/ -using json = basic_json<>; -} - -#endif - -// #include - - -// This file contains all internal macro definitions -// You MUST include macro_unscope.hpp at the end of json.hpp to undef all of them - -// exclude unsupported compilers -#if !defined(JSON_SKIP_UNSUPPORTED_COMPILER_CHECK) - #if defined(__clang__) - #if (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) < 30400 - #error "unsupported Clang version - see https://github.com/nlohmann/json#supported-compilers" - #endif - #elif defined(__GNUC__) && !(defined(__ICC) || defined(__INTEL_COMPILER)) - #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40800 - #error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers" - #endif - #endif -#endif - -// disable float-equal warnings on GCC/clang -#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wfloat-equal" -#endif - -// disable documentation warnings on clang -#if defined(__clang__) - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wdocumentation" -#endif - -// allow for portable deprecation warnings -#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) - #define JSON_DEPRECATED __attribute__((deprecated)) -#elif defined(_MSC_VER) - #define JSON_DEPRECATED __declspec(deprecated) -#else - #define JSON_DEPRECATED -#endif - -// allow to disable exceptions -#if (defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND)) && !defined(JSON_NOEXCEPTION) - #define JSON_THROW(exception) throw exception - #define JSON_TRY try - #define JSON_CATCH(exception) catch(exception) - #define JSON_INTERNAL_CATCH(exception) catch(exception) -#else - #define JSON_THROW(exception) std::abort() - #define JSON_TRY if(true) - #define JSON_CATCH(exception) if(false) - #define JSON_INTERNAL_CATCH(exception) if(false) -#endif - -// override exception macros -#if defined(JSON_THROW_USER) - #undef JSON_THROW - #define JSON_THROW JSON_THROW_USER -#endif -#if defined(JSON_TRY_USER) - #undef JSON_TRY - #define JSON_TRY JSON_TRY_USER -#endif -#if defined(JSON_CATCH_USER) - #undef JSON_CATCH - #define JSON_CATCH JSON_CATCH_USER - #undef JSON_INTERNAL_CATCH - #define JSON_INTERNAL_CATCH JSON_CATCH_USER -#endif -#if defined(JSON_INTERNAL_CATCH_USER) - #undef JSON_INTERNAL_CATCH - #define JSON_INTERNAL_CATCH JSON_INTERNAL_CATCH_USER -#endif - -// manual branch prediction -#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) - #define JSON_LIKELY(x) __builtin_expect(!!(x), 1) - #define JSON_UNLIKELY(x) __builtin_expect(!!(x), 0) -#else - #define JSON_LIKELY(x) x - #define JSON_UNLIKELY(x) x -#endif - -// C++ language standard detection -#if (defined(__cplusplus) && __cplusplus >= 201703L) || (defined(_HAS_CXX17) && _HAS_CXX17 == 1) // fix for issue #464 - #define JSON_HAS_CPP_17 - #define JSON_HAS_CPP_14 -#elif (defined(__cplusplus) && __cplusplus >= 201402L) || (defined(_HAS_CXX14) && _HAS_CXX14 == 1) - #define JSON_HAS_CPP_14 -#endif - -// Ugly macros to avoid uglier copy-paste when specializing basic_json. They -// may be removed in the future once the class is split. - -#define NLOHMANN_BASIC_JSON_TPL_DECLARATION \ - template class ObjectType, \ - template class ArrayType, \ - class StringType, class BooleanType, class NumberIntegerType, \ - class NumberUnsignedType, class NumberFloatType, \ - template class AllocatorType, \ - template class JSONSerializer> - -#define NLOHMANN_BASIC_JSON_TPL \ - basic_json - -// #include - - -#include // not -#include // size_t -#include // conditional, enable_if, false_type, integral_constant, is_constructible, is_integral, is_same, remove_cv, remove_reference, true_type - -namespace nlohmann -{ -namespace detail -{ -// alias templates to reduce boilerplate -template -using enable_if_t = typename std::enable_if::type; - -template -using uncvref_t = typename std::remove_cv::type>::type; - -// implementation of C++14 index_sequence and affiliates -// source: https://stackoverflow.com/a/32223343 -template -struct index_sequence -{ - using type = index_sequence; - using value_type = std::size_t; - static constexpr std::size_t size() noexcept - { - return sizeof...(Ints); - } -}; - -template -struct merge_and_renumber; - -template -struct merge_and_renumber, index_sequence> - : index_sequence < I1..., (sizeof...(I1) + I2)... > {}; - -template -struct make_index_sequence - : merge_and_renumber < typename make_index_sequence < N / 2 >::type, - typename make_index_sequence < N - N / 2 >::type > {}; - -template<> struct make_index_sequence<0> : index_sequence<> {}; -template<> struct make_index_sequence<1> : index_sequence<0> {}; - -template -using index_sequence_for = make_index_sequence; - -// dispatch utility (taken from ranges-v3) -template struct priority_tag : priority_tag < N - 1 > {}; -template<> struct priority_tag<0> {}; - -// taken from ranges-v3 -template -struct static_const -{ - static constexpr T value{}; -}; - -template -constexpr T static_const::value; -} -} - -// #include - - -#include // not -#include // numeric_limits -#include // false_type, is_constructible, is_integral, is_same, true_type -#include // declval - -// #include - -// #include - -// #include - - -#include - -// #include - - -namespace nlohmann -{ -namespace detail -{ -template struct make_void -{ - using type = void; -}; -template using void_t = typename make_void::type; -} -} - - -// http://en.cppreference.com/w/cpp/experimental/is_detected -namespace nlohmann -{ -namespace detail -{ -struct nonesuch -{ - nonesuch() = delete; - ~nonesuch() = delete; - nonesuch(nonesuch const&) = delete; - void operator=(nonesuch const&) = delete; -}; - -template class Op, - class... Args> -struct detector -{ - using value_t = std::false_type; - using type = Default; -}; - -template class Op, class... Args> -struct detector>, Op, Args...> -{ - using value_t = std::true_type; - using type = Op; -}; - -template