diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 0a21d60..5319dc2 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -265,6 +265,7 @@ jobs: os: [ ubuntu-latest, windows-latest, macos-latest ] name: Building, ${{ matrix.os }} steps: + - name: Fix CRLF on Windows if: runner.os == 'Windows' run: git config --global core.autocrlf false @@ -279,6 +280,10 @@ jobs: - name: Checkout sources uses: actions/checkout@v4 + - name: Setup Environment + shell: bash + run: echo "SHORT_SHA=`git rev-parse --short HEAD`" >> $GITHUB_ENV + - name: Install Protoc uses: arduino/setup-protoc@v3 with: @@ -298,23 +303,58 @@ jobs: target/ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - name: Build on Linux - if: runner.os == 'Linux' - run: | - cargo build --bin kaspa-ng --release - mkdir -p .debpkg/usr/bin - cp target/release/kaspa-ng .debpkg/usr/bin/ - - name: Build on Windows if: runner.os == 'Windows' shell: bash run: | + mkdir kaspa-ng-${{ env.SHORT_SHA }}-windows-x64 || true cargo build --bin kaspa-ng --release + cp target/release/kaspa-ng.exe kaspa-ng-${{ env.SHORT_SHA }}-windows-x64/kaspa-ng.exe + cargo build --bin kaspa-ng --profile console --features console + cp target/release/kaspa-ng.exe kaspa-ng-${{ env.SHORT_SHA }}-windows-x64/kaspa-ng-console.exe + archive="kaspa-ng-${{ env.SHORT_SHA }}-windows-x64/kaspa-ng-${{ env.SHORT_SHA }}-windows-x64.zip" + powershell "Compress-Archive kaspa-ng-${{ env.SHORT_SHA }}-windows-x64/* \"${archive}\"" + + - name: Upload Windows build to GitHub + if: runner.os == 'Windows' + uses: actions/upload-artifact@v4 + with: + name: kaspa-ng-${{ env.SHORT_SHA }}-windows-x64.zip + path: kaspa-ng-${{ env.SHORT_SHA }}-windows-x64/kaspa-ng-${{ env.SHORT_SHA }}-windows-x64.zip - name: Build on MacOS if: runner.os == 'macOS' run: | + mkdir kaspa-ng-${{ env.SHORT_SHA }}-macos-arm64 || true cargo build --bin kaspa-ng --release + cp target/release/kaspa-ng kaspa-ng-${{ env.SHORT_SHA }}-macos-arm64/ + archive="kaspa-ng-${{ env.SHORT_SHA }}-macos-arm64/kaspa-ng-${{ env.SHORT_SHA }}-macos-arm64.zip" + zip -r "${archive}" ./kaspa-ng-${{ env.SHORT_SHA }}-macos-arm64/* + + - name: Upload MacOS build to GitHub + if: runner.os == 'macOS' + uses: actions/upload-artifact@v4 + with: + name: kaspa-ng-${{ env.SHORT_SHA }}-macos-arm64.zip + path: kaspa-ng-${{ env.SHORT_SHA }}-macos-arm64/kaspa-ng-${{ env.SHORT_SHA }}-macos-arm64.zip + + - name: Build on Linux + if: runner.os == 'Linux' + run: | + mkdir kaspa-ng-${{ env.SHORT_SHA }}-linux-gnu-amd64 || true + cargo build --bin kaspa-ng --release + mkdir -p .debpkg/usr/bin + cp target/release/kaspa-ng .debpkg/usr/bin/ + cp target/release/kaspa-ng kaspa-ng-${{ env.SHORT_SHA }}-linux-gnu-amd64/ + archive="kaspa-ng-${{ env.SHORT_SHA }}-linux-gnu-amd64/kaspa-ng-${{ env.SHORT_SHA }}-linux-gnu-amd64.zip" + zip -r "${archive}" ./kaspa-ng-${{ env.SHORT_SHA }}-linux-gnu-amd64/* + + - name: Upload Linux build to GitHub + if: runner.os == 'Linux' + uses: actions/upload-artifact@v4 + with: + name: kaspa-ng-${{ env.SHORT_SHA }}-linux-gnu-amd64.zip + path: kaspa-ng-${{ env.SHORT_SHA }}-linux-gnu-amd64/kaspa-ng-${{ env.SHORT_SHA }}-linux-gnu-amd64.zip - name: Package Debian Release if: runner.os == 'Linux' diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index f639e10..74f2cf9 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -54,9 +54,11 @@ jobs: if: runner.os == 'Windows' shell: bash run: | - cargo build --bin kaspa-ng --release mkdir kaspa-ng-${{ github.event.release.tag_name }}-windows-x64 || true + cargo build --bin kaspa-ng --release cp target/release/kaspa-ng.exe kaspa-ng-${{ github.event.release.tag_name }}-windows-x64/ + cargo build --bin kaspa-ng --profile console --features console + cp target/release/kaspa-ng.exe kaspa-ng-${{ github.event.release.tag_name }}-windows-x64/kaspa-ng-console.exe archive="kaspa-ng-${{ github.event.release.tag_name }}-windows-x64/kaspa-ng-${{ github.event.release.tag_name }}-windows-x64.zip" asset_name="kaspa-ng-${{ github.event.release.tag_name }}-windows-x64.zip" powershell "Compress-Archive kaspa-ng-${{ github.event.release.tag_name }}-windows-x64/* \"${archive}\"" diff --git a/.gitignore b/.gitignore index 4dbcceb..1fa7e8b 100644 --- a/.gitignore +++ b/.gitignore @@ -11,5 +11,7 @@ datadir /discard analyzer-target .vscode/launch.json -/kaspa-ng.log -kaspa-ng* \ No newline at end of file +kaspa-ng* +/.idea +*.log +kaspa-ng.log diff --git a/Cargo.lock b/Cargo.lock index 5b1c8b1..fe2a3d6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "ab_glyph" -version = "0.2.26" +version = "0.2.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e53b0a3d5760cd2ba9b787ae0c6440ad18ee294ff71b05e3381c900a7d16cfd" +checksum = "79faae4620f45232f599d9bc7b290f88247a0834162c4495ab2f02d60004adfb" dependencies = [ "ab_glyph_rasterizer", "owned_ttf_parser", @@ -57,13 +57,13 @@ checksum = "09f46c18d99ba61ad7123dd13eeb0c104436ab6af1df6a1cd8c11054ed394a08" dependencies = [ "accesskit", "accesskit_consumer", - "async-channel 2.2.1", + "async-channel 2.3.1", "async-once-cell", "atspi", "futures-lite 1.13.0", "once_cell", "serde", - "zbus", + "zbus 3.15.2", ] [[package]] @@ -77,14 +77,14 @@ dependencies = [ "once_cell", "paste", "static_assertions", - "windows", + "windows 0.48.0", ] [[package]] name = "accesskit_winit" -version = "0.15.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88e39fcec2e10971e188730b7a76bab60647dacc973d4591855ebebcadfaa738" +checksum = "5284218aca17d9e150164428a0ebc7b955f70e3a9a78b4c20894513aabf98a67" dependencies = [ "accesskit", "accesskit_macos", @@ -95,21 +95,21 @@ dependencies = [ [[package]] name = "accessory" -version = "1.3.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "850bb534b9dc04744fbbb71d30ad6d25a7e4cf6dc33e223c81ef3a92ebab4e0b" +checksum = "87537f9ae7cfa78d5b8ebd1a1db25959f5e737126be4d8eb44a5452fc4b63cde" dependencies = [ "macroific", "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] name = "addr2line" -version = "0.21.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375" dependencies = [ "gimli", ] @@ -120,6 +120,12 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + [[package]] name = "aead" version = "0.5.2" @@ -141,17 +147,6 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "ahash" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - [[package]] name = "ahash" version = "0.8.11" @@ -177,20 +172,23 @@ dependencies = [ [[package]] name = "android-activity" -version = "0.4.3" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64529721f27c2314ced0890ce45e469574a73e5e6fdd6e9da1860eb29285f5e0" +checksum = "ee91c0c2905bae44f84bfa4e044536541df26b7703fd0888deeb9060fcc44289" dependencies = [ "android-properties", - "bitflags 1.3.2", + "bitflags 2.6.0", "cc", + "cesu8", + "jni", "jni-sys", "libc", "log", "ndk", "ndk-context", "ndk-sys", - "num_enum 0.6.1", + "num_enum", + "thiserror", ] [[package]] @@ -225,9 +223,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.14" +version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" dependencies = [ "anstyle", "anstyle-parse", @@ -240,33 +238,33 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" [[package]] name = "anstyle-parse" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.3" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -274,19 +272,19 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.83" +version = "1.0.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25bdb32cbbdce2b519a9cd7df3a678443100e265d5e25ca763b7572a5104f5f3" +checksum = "4e1496f8fb1fbf272686b8d37f523dab3e4a7443300055e74cdaa449f3114356" [[package]] name = "arboard" -version = "3.4.0" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb4009533e8ff8f1450a5bcbc30f4242a1d34442221f72314bea1f5dc9c7f89" +checksum = "df099ccb16cd014ff054ac1bf392c67feeef57164b05c42f037cd40f5d4357f4" dependencies = [ "clipboard-win", "log", - "objc2 0.5.1", + "objc2 0.5.2", "objc2-app-kit", "objc2-foundation", "parking_lot", @@ -313,15 +311,39 @@ dependencies = [ [[package]] name = "arrayref" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" [[package]] name = "arrayvec" -version = "0.7.4" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "as-raw-xcb-connection" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" + +[[package]] +name = "ashpd" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +checksum = "dd884d7c72877a94102c3715f3b1cd09ff4fac28221add3e57cfbe25c236d093" +dependencies = [ + "async-fs 2.1.2", + "async-net", + "enumflags2", + "futures-channel", + "futures-util", + "rand", + "serde", + "serde_repr", + "url", + "zbus 4.4.0", +] [[package]] name = "async-attributes" @@ -343,6 +365,18 @@ dependencies = [ "futures-core", ] +[[package]] +name = "async-broadcast" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cd0e2e25ea8e5f7e9df04578dc6cf5c83577fd09b1a46aaf5c85e1c33f2a7e" +dependencies = [ + "event-listener 5.3.1", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + [[package]] name = "async-channel" version = "1.9.0" @@ -356,26 +390,25 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.2.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "136d4d23bcc79e27423727b36823d86233aad06dfea531837b038394d11e9928" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener 5.3.0", - "event-listener-strategy 0.5.2", + "event-listener-strategy", "futures-core", "pin-project-lite", ] [[package]] name = "async-executor" -version = "1.11.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a" +checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" dependencies = [ "async-task", "concurrent-queue", - "fastrand 2.1.0", + "fastrand 2.1.1", "futures-lite 2.3.0", "slab", ] @@ -392,16 +425,27 @@ dependencies = [ "futures-lite 1.13.0", ] +[[package]] +name = "async-fs" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" +dependencies = [ + "async-lock 3.4.0", + "blocking", + "futures-lite 2.3.0", +] + [[package]] name = "async-global-executor" version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" dependencies = [ - "async-channel 2.2.1", + "async-channel 2.3.1", "async-executor", - "async-io 2.3.2", - "async-lock 3.3.0", + "async-io 2.3.4", + "async-lock 3.4.0", "blocking", "futures-lite 2.3.0", "once_cell", @@ -429,21 +473,21 @@ dependencies = [ [[package]] name = "async-io" -version = "2.3.2" +version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" +checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" dependencies = [ - "async-lock 3.3.0", + "async-lock 3.4.0", "cfg-if 1.0.0", "concurrent-queue", "futures-io", "futures-lite 2.3.0", "parking", - "polling 3.7.0", - "rustix 0.38.34", + "polling 3.7.3", + "rustix 0.38.37", "slab", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -457,15 +501,26 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener 4.0.3", - "event-listener-strategy 0.4.0", + "event-listener 5.3.1", + "event-listener-strategy", "pin-project-lite", ] +[[package]] +name = "async-net" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b948000fad4873c1c9339d60f2623323a0cfd3816e5181033c6a5cb68b2accf7" +dependencies = [ + "async-io 2.3.4", + "blocking", + "futures-lite 2.3.0", +] + [[package]] name = "async-once-cell" version = "0.5.3" @@ -485,10 +540,30 @@ dependencies = [ "cfg-if 1.0.0", "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.34", + "rustix 0.38.37", "windows-sys 0.48.0", ] +[[package]] +name = "async-process" +version = "2.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8a07789659a4d385b79b18b9127fc27e1a59e1e89117c78c5ea3b806f016374" +dependencies = [ + "async-channel 2.3.1", + "async-io 2.3.4", + "async-lock 3.4.0", + "async-signal", + "async-task", + "blocking", + "cfg-if 1.0.0", + "event-listener 5.3.1", + "futures-lite 2.3.0", + "rustix 0.38.37", + "tracing", + "windows-sys 0.59.0", +] + [[package]] name = "async-recursion" version = "1.1.1" @@ -497,43 +572,43 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] name = "async-signal" -version = "0.2.6" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda" +checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" dependencies = [ - "async-io 2.3.2", - "async-lock 3.3.0", + "async-io 2.3.4", + "async-lock 3.4.0", "atomic-waker", "cfg-if 1.0.0", "futures-core", "futures-io", - "rustix 0.38.34", + "rustix 0.38.37", "signal-hook-registry", "slab", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "async-std" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" +checksum = "c634475f29802fde2b8f0b505b1bd00dfe4df7d4a000f0b36f7671197d5c3615" dependencies = [ "async-attributes", "async-channel 1.9.0", "async-global-executor", - "async-io 1.13.0", - "async-lock 2.8.0", + "async-io 2.3.4", + "async-lock 3.4.0", "crossbeam-utils", "futures-channel", "futures-core", "futures-io", - "futures-lite 1.13.0", + "futures-lite 2.3.0", "gloo-timers", "kv-log-macro", "log", @@ -564,7 +639,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] @@ -575,34 +650,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.80" +version = "0.1.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", -] - -[[package]] -name = "atk-sys" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "251e0b7d90e33e0ba930891a505a9a35ece37b2dd37a14f3ffc306c13b980009" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "atomic-polyfill" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" -dependencies = [ - "critical-section", + "syn 2.0.77", ] [[package]] @@ -631,9 +685,9 @@ dependencies = [ "enumflags2", "serde", "static_assertions", - "zbus", - "zbus_names", - "zvariant", + "zbus 3.15.2", + "zbus_names 2.6.1", + "zvariant 3.15.2", ] [[package]] @@ -645,7 +699,7 @@ dependencies = [ "atspi-common", "atspi-proxies", "futures-lite 1.13.0", - "zbus", + "zbus 3.15.2", ] [[package]] @@ -656,7 +710,7 @@ checksum = "6495661273703e7a229356dcbe8c8f38223d697aacfaf0e13590a9ac9977bb52" dependencies = [ "atspi-common", "serde", - "zbus", + "zbus 3.15.2", ] [[package]] @@ -699,8 +753,8 @@ dependencies = [ "bytes", "futures-util", "http 0.2.12", - "http-body", - "hyper", + "http-body 0.4.6", + "hyper 0.14.30", "itoa", "matchit", "memchr", @@ -709,7 +763,7 @@ dependencies = [ "pin-project-lite", "rustversion", "serde", - "sync_wrapper", + "sync_wrapper 0.1.2", "tower", "tower-layer", "tower-service", @@ -725,7 +779,7 @@ dependencies = [ "bytes", "futures-util", "http 0.2.12", - "http-body", + "http-body 0.4.6", "mime", "rustversion", "tower-layer", @@ -734,25 +788,19 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.71" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cc", "cfg-if 1.0.0", "libc", - "miniz_oxide", + "miniz_oxide 0.8.0", "object", "rustc-demangle", + "windows-targets 0.52.6", ] -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.7" @@ -798,30 +846,29 @@ dependencies = [ "proc-macro2", "quote", "regex", - "rustc-hash", + "rustc-hash 1.1.0", "shlex", "which", ] [[package]] name = "bindgen" -version = "0.65.1" +version = "0.69.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" +checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "cexpr", "clang-sys", + "itertools 0.12.1", "lazy_static", "lazycell", - "peeking_take_while", - "prettyplease", "proc-macro2", "quote", "regex", - "rustc-hash", + "rustc-hash 1.1.0", "shlex", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] @@ -832,9 +879,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" dependencies = [ "serde", ] @@ -883,33 +930,51 @@ dependencies = [ "objc-sys 0.2.0-beta.2", ] +[[package]] +name = "block-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae85a0696e7ea3b835a453750bf002770776609115e6d25c6d2ff28a8200f7e7" +dependencies = [ + "objc-sys 0.3.5", +] + [[package]] name = "block2" version = "0.2.0-alpha.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42" dependencies = [ - "block-sys", + "block-sys 0.1.0-beta.1", "objc2-encode 2.0.0-pre.2", ] [[package]] name = "block2" -version = "0.5.0" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15b55663a85f33501257357e6421bb33e769d5c9ffb5ba0921c975a123e35e68" +dependencies = [ + "block-sys 0.2.1", + "objc2 0.4.1", +] + +[[package]] +name = "block2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43ff7d91d3c1d568065b06c899777d1e48dcf76103a672a0adbc238a7f247f1e" +checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" dependencies = [ - "objc2 0.5.1", + "objc2 0.5.2", ] [[package]] name = "blocking" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "495f7104e962b7356f0aeb34247aca1fe7d2e783b346582db7f2904cb5717e88" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" dependencies = [ - "async-channel 2.2.1", - "async-lock 3.3.0", + "async-channel 2.3.1", "async-task", "futures-io", "futures-lite 2.3.0", @@ -918,47 +983,26 @@ dependencies = [ [[package]] name = "borsh" -version = "0.9.3" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa" +checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" dependencies = [ "borsh-derive", - "hashbrown 0.11.2", + "cfg_aliases 0.2.1", ] [[package]] name = "borsh-derive" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" -dependencies = [ - "borsh-derive-internal", - "borsh-schema-derive-internal", - "proc-macro-crate 0.1.5", - "proc-macro2", - "syn 1.0.109", -] - -[[package]] -name = "borsh-derive-internal" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "borsh-schema-derive-internal" -version = "0.9.3" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" +checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" dependencies = [ + "once_cell", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.77", + "syn_derive", ] [[package]] @@ -979,22 +1023,22 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytemuck" -version = "1.15.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15" +checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60" +checksum = "0cc8b54b395f2fcfbb3d90c47b01c7f444d94d05bdeb775811dec868ac3bbc26" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] @@ -1003,11 +1047,17 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +[[package]] +name = "byteorder-lite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" + [[package]] name = "bytes" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" [[package]] name = "bzip2-sys" @@ -1021,34 +1071,62 @@ dependencies = [ ] [[package]] -name = "cairo-sys-rs" -version = "0.18.2" +name = "calloop" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298" dependencies = [ - "libc", - "system-deps", + "bitflags 2.6.0", + "log", + "polling 3.7.3", + "rustix 0.38.37", + "slab", + "thiserror", ] [[package]] name = "calloop" -version = "0.10.6" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e0d00eb1ea24371a97d2da6201c6747a633dc6dc1988ef503403b4c59504a8" +checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "log", - "nix 0.25.1", - "slotmap", + "polling 3.7.3", + "rustix 0.38.37", + "slab", "thiserror", - "vec_map", +] + +[[package]] +name = "calloop-wayland-source" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02" +dependencies = [ + "calloop 0.12.4", + "rustix 0.38.37", + "wayland-backend", + "wayland-client", +] + +[[package]] +name = "calloop-wayland-source" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20" +dependencies = [ + "calloop 0.13.0", + "rustix 0.38.37", + "wayland-backend", + "wayland-client", ] [[package]] name = "camino" -version = "1.1.6" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" dependencies = [ "serde", ] @@ -1078,13 +1156,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.97" +version = "1.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099a5357d84c4c61eb35fc8eafa9a79a902c2f76911e5747ced4e032edd8d9b4" +checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476" dependencies = [ "jobserver", "libc", - "once_cell", + "shlex", ] [[package]] @@ -1111,16 +1189,6 @@ dependencies = [ "cipher", ] -[[package]] -name = "cfg-expr" -version = "0.15.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" -dependencies = [ - "smallvec", - "target-lexicon", -] - [[package]] name = "cfg-if" version = "0.1.10" @@ -1139,6 +1207,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "cgl" version = "0.3.2" @@ -1202,7 +1276,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -1218,13 +1292,13 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", "libc", - "libloading 0.8.3", + "libloading", ] [[package]] @@ -1244,9 +1318,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.4" +version = "4.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac" dependencies = [ "clap_builder", "clap_derive", @@ -1254,9 +1328,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.2" +version = "4.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73" dependencies = [ "anstream", "anstyle", @@ -1266,61 +1340,31 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.4" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] name = "clap_lex" -version = "0.7.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" [[package]] name = "clipboard-win" -version = "5.3.1" +version = "5.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79f4473f5144e20d9aceaf2972478f06ddf687831eafeeb434fbaf0acc4144ad" +checksum = "15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892" dependencies = [ "error-code", ] -[[package]] -name = "cocoa" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" -dependencies = [ - "bitflags 1.3.2", - "block", - "cocoa-foundation", - "core-foundation", - "core-graphics", - "foreign-types", - "libc", - "objc", -] - -[[package]] -name = "cocoa-foundation" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" -dependencies = [ - "bitflags 1.3.2", - "block", - "core-foundation", - "core-graphics-types", - "libc", - "objc", -] - [[package]] name = "color_quant" version = "1.1.0" @@ -1329,9 +1373,9 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" [[package]] name = "colorchoice" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" [[package]] name = "combine" @@ -1367,9 +1411,9 @@ dependencies = [ [[package]] name = "constant_time_eq" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "convert_case" @@ -1404,20 +1448,20 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core-graphics" -version = "0.22.3" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" dependencies = [ "bitflags 1.3.2", "core-foundation", "core-graphics-types", - "foreign-types", + "foreign-types 0.5.0", "libc", ] @@ -1434,33 +1478,27 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" dependencies = [ "libc", ] [[package]] name = "crc32fast" -version = "1.4.0" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if 1.0.0", ] -[[package]] -name = "critical-section" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" - [[package]] name = "crossbeam-channel" -version = "0.5.12" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" dependencies = [ "crossbeam-utils", ] @@ -1486,9 +1524,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crossterm" @@ -1496,10 +1534,10 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "crossterm_winapi", "libc", - "mio", + "mio 0.8.11", "parking_lot", "signal-hook", "signal-hook-mio", @@ -1559,25 +1597,30 @@ dependencies = [ [[package]] name = "ctrlc" -version = "3.4.4" +version = "3.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "672465ae37dc1bc6380a6547a8883d5dd397b0f1faaad4f265726cc7042a5345" +checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" dependencies = [ - "nix 0.28.0", - "windows-sys 0.52.0", + "nix 0.29.0", + "windows-sys 0.59.0", ] +[[package]] +name = "cursor-icon" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" + [[package]] name = "curve25519-dalek" -version = "4.1.2" +version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if 1.0.0", "cpufeatures", "curve25519-dalek-derive", "fiat-crypto", - "platforms", "rustc_version", "subtle", "zeroize", @@ -1591,14 +1634,14 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] name = "darling" -version = "0.20.8" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ "darling_core", "darling_macro", @@ -1606,36 +1649,37 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.8" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", - "strsim 0.10.0", - "syn 2.0.63", + "strsim 0.11.1", + "syn 2.0.77", ] [[package]] name = "darling_macro" -version = "0.20.8" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] name = "dashmap" -version = "5.5.3" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ "cfg-if 1.0.0", + "crossbeam-utils", "hashbrown 0.14.5", "lock_api", "once_cell", @@ -1650,9 +1694,9 @@ checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "data-url" -version = "0.2.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5" +checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a" [[package]] name = "delegate-display" @@ -1663,7 +1707,7 @@ dependencies = [ "macroific", "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] @@ -1687,17 +1731,48 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive_builder" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd33f37ee6a119146a1781d3356a7c26028f83d779b2e04ecd45fdc75c76877b" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7431fa049613920234f22c47fdc33e6cf3ee83067091ea4277a3f8c4587aae38" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "derive_builder_macro" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4abae7035bf79b9877b779505d8cf3749285b80c43941eda66604841889451dc" +dependencies = [ + "derive_builder_core", + "syn 2.0.77", +] + [[package]] name = "derive_more" -version = "0.99.17" +version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ "convert_case 0.4.0", "proc-macro2", "quote", "rustc_version", - "syn 1.0.109", + "syn 2.0.77", ] [[package]] @@ -1708,9 +1783,9 @@ checksum = "3c877555693c14d2f84191cfd3ad8582790fc52b5e2274b40b59cf5f5cea25c7" [[package]] name = "deunicode" -version = "1.4.4" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322ef0094744e63628e6f0eb2295517f79276a5b342a4c2ff3042566ca181d4e" +checksum = "339544cc9e2c4dc3fc7149fd630c5f22263a4fdf18a98afd0075784968b5cf00" [[package]] name = "digest" @@ -1724,13 +1799,12 @@ dependencies = [ ] [[package]] -name = "directories-next" -version = "2.0.0" +name = "directories" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" +checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" dependencies = [ - "cfg-if 1.0.0", - "dirs-sys-next", + "dirs-sys", ] [[package]] @@ -1754,17 +1828,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - [[package]] name = "dispatch" version = "0.2.0" @@ -1777,7 +1840,16 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" dependencies = [ - "libloading 0.8.3", + "libloading", +] + +[[package]] +name = "document-features" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" +dependencies = [ + "litrs", ] [[package]] @@ -1792,63 +1864,78 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" +[[package]] +name = "duct" +version = "0.13.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4ab5718d1224b63252cd0c6f74f6480f9ffeb117438a2e0f5cf6d9a4798929c" +dependencies = [ + "libc", + "once_cell", + "os_pipe", + "shared_child", +] + [[package]] name = "duration-string" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fcc1d9ae294a15ed05aeae8e11ee5f2b3fe971c077d45a42fb20825fba6ee13" +checksum = "2334658684d7c213e18602aa72ce37e94d1c9b535882ef6e30bc444b7514a1ee" [[package]] name = "ecolor" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b7637fc2e74d17e52931bac90ff4fc061ac776ada9c7fa272f24cdca5991972" +version = "0.28.1" +source = "git+https://github.com/aspectron/egui?branch=gamma#13c350e2b5584a0e99cbe0785a2dc717a015adf4" dependencies = [ "bytemuck", + "emath", "serde", ] [[package]] name = "eframe" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e466044128e75141e10f80943c8e9012f37c65fa3fce34f6ac976856fe289e65" +version = "0.28.1" +source = "git+https://github.com/aspectron/egui?branch=gamma#13c350e2b5584a0e99cbe0785a2dc717a015adf4" dependencies = [ + "ahash", "bytemuck", - "cocoa", - "directories-next", + "directories", + "document-features", "egui", "egui-winit", "egui_glow", "glow", "glutin", "glutin-winit", - "image 0.24.9", + "image 0.25.2", "js-sys", "log", - "objc", + "objc2 0.5.2", + "objc2-app-kit", + "objc2-foundation", "parking_lot", "percent-encoding", - "raw-window-handle", + "raw-window-handle 0.5.2", + "raw-window-handle 0.6.2", "ron", "serde", "static_assertions", - "thiserror", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", + "web-time", "winapi", "winit", ] [[package]] name = "egui" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e46df77bb493b9ead5733540efdd2a1b0c18a5f75915921fc734495108172a5" +version = "0.28.1" +source = "git+https://github.com/aspectron/egui?branch=gamma#13c350e2b5584a0e99cbe0785a2dc717a015adf4" dependencies = [ "accesskit", - "ahash 0.8.11", + "ahash", + "emath", "epaint", "log", "nohash-hasher", @@ -1858,33 +1945,31 @@ dependencies = [ [[package]] name = "egui-notify" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bedb26510c661d5d69958aae802d768aa1c344673e9029a20b356fa7f8a4a8e1" +version = "0.15.0" +source = "git+https://github.com/aspectron/egui-notify?branch=gamma#e9c04d5b9cdaf09c9094b7c796b2b2c3cb2644c1" dependencies = [ "egui", ] [[package]] name = "egui-phosphor" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3bb4c76b07a91bcc3021ea7a53c7484b62880a307680f92d81affe57c9e61b" +version = "0.6.0" +source = "git+https://github.com/aspectron/egui-phosphor?branch=gamma#f12c3e90855608814ce69aaa9add1d9773dd20aa" dependencies = [ "egui", ] [[package]] name = "egui-winit" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065960051f1ff843be036a1743bd9fc8dfd508c0444dce35d620febed91fad2b" +version = "0.28.1" +source = "git+https://github.com/aspectron/egui?branch=gamma#13c350e2b5584a0e99cbe0785a2dc717a015adf4" dependencies = [ "accesskit_winit", + "ahash", "arboard", "egui", "log", - "raw-window-handle", + "raw-window-handle 0.6.2", "serde", "smithay-clipboard", "web-time", @@ -1894,56 +1979,54 @@ dependencies = [ [[package]] name = "egui_extras" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c70596b97ab671969d54c70ab31e3f47e5f1fce07f74bb775281b956d8ccf052" +version = "0.28.1" +source = "git+https://github.com/aspectron/egui?branch=gamma#13c350e2b5584a0e99cbe0785a2dc717a015adf4" dependencies = [ + "ahash", "egui", "enum-map", - "image 0.24.9", + "image 0.25.2", "log", "mime_guess2", "resvg", "serde", - "tiny-skia", - "usvg", ] [[package]] name = "egui_glow" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcacd802e71d0c3b510cf1e1558432e4afc1434f3ccc9a8b23b42c39cd194207" +version = "0.28.1" +source = "git+https://github.com/aspectron/egui?branch=gamma#13c350e2b5584a0e99cbe0785a2dc717a015adf4" dependencies = [ + "ahash", "bytemuck", "egui", "glow", "log", - "memoffset 0.7.1", + "memoffset 0.9.1", "wasm-bindgen", "web-sys", ] [[package]] name = "egui_plot" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7659d721c5d7f05827ea947e18f766c15332d2ee8635a24e3356645d90f3e272" +version = "0.28.1" +source = "git+https://github.com/aspectron/egui_plot?branch=gamma#d5a4183d3b825b2f7b005e2052f59944577a46cd" dependencies = [ + "ahash", "egui", + "emath", ] [[package]] name = "either" -version = "1.11.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "emath" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a045c6c0b44b35e98513fc1e9d183ab42881ac27caccb9fa345465601f56cce4" +version = "0.28.1" +source = "git+https://github.com/aspectron/egui?branch=gamma#13c350e2b5584a0e99cbe0785a2dc717a015adf4" dependencies = [ "bytemuck", "serde", @@ -1964,6 +2047,12 @@ dependencies = [ "cfg-if 1.0.0", ] +[[package]] +name = "endi" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf" + [[package]] name = "enum-map" version = "2.7.3" @@ -1982,25 +2071,25 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] name = "enum-primitive-derive" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c375b9c5eadb68d0a6efee2999fef292f45854c3444c86f09d8ab086ba942b0e" +checksum = "ba7795da175654fe16979af73f81f26a8ea27638d8d9823d317016888a63dc4c" dependencies = [ "num-traits", "quote", - "syn 1.0.109", + "syn 2.0.77", ] [[package]] name = "enumflags2" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d" +checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" dependencies = [ "enumflags2_derive", "serde", @@ -2008,24 +2097,24 @@ dependencies = [ [[package]] name = "enumflags2_derive" -version = "0.7.9" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" +checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] name = "enumn" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" +checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] @@ -2056,12 +2145,11 @@ dependencies = [ [[package]] name = "epaint" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f370b53e435fc235243174f3b2bf68a4b0202f3885cece16ad4aecd03222c4" +version = "0.28.1" +source = "git+https://github.com/aspectron/egui?branch=gamma#13c350e2b5584a0e99cbe0785a2dc717a015adf4" dependencies = [ "ab_glyph", - "ahash 0.8.11", + "ahash", "bytemuck", "ecolor", "emath", @@ -2089,9 +2177,9 @@ dependencies = [ [[package]] name = "error-code" -version = "3.2.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0474425d51df81997e2f90a21591180b38eccf27292d755f3e30750225c175b" +checksum = "a5d9305ccc6942a704f4335694ecd3de2ea531b114ac2d51f5f843750787a92f" [[package]] name = "event-listener" @@ -2112,43 +2200,22 @@ dependencies = [ [[package]] name = "event-listener" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener" -version = "5.3.0" +version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" dependencies = [ "concurrent-queue", "parking", "pin-project-lite", ] -[[package]] -name = "event-listener-strategy" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" -dependencies = [ - "event-listener 4.0.3", - "pin-project-lite", -] - [[package]] name = "event-listener-strategy" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "event-listener 5.3.0", + "event-listener 5.3.1", "pin-project-lite", ] @@ -2163,22 +2230,16 @@ dependencies = [ [[package]] name = "fancy_constructor" -version = "1.2.2" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f71f317e4af73b2f8f608fac190c52eac4b1879d2145df1db2fe48881ca69435" +checksum = "07b19d0e43eae2bfbafe4931b5e79c73fb1a849ca15cd41a761a7b8587f9a1a2" dependencies = [ "macroific", "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] -[[package]] -name = "faster-hex" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e2ce894d53b295cf97b05685aa077950ff3e8541af83217fc720a6437169f8" - [[package]] name = "faster-hex" version = "0.9.0" @@ -2199,9 +2260,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "fdeflate" @@ -2214,20 +2275,20 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38793c55593b33412e3ae40c2c9781ffaa6f438f6f8c10f24e71846fbd7ae01e" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "filetime" -version = "0.2.23" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.4.1", - "windows-sys 0.52.0", + "libredox 0.1.3", + "windows-sys 0.59.0", ] [[package]] @@ -2238,21 +2299,21 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "fixedstr" -version = "0.5.5" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4e4dfef7b590ab7d11e531d602fdfb6a3413b09924db1428902bbc4410a9a8" +checksum = "54e049f021908beff8f8c430a99f5c136d3be69f1667346e581f446b173bc012" dependencies = [ "serde", ] [[package]] name = "flate2" -version = "1.0.30" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +checksum = "324a1be68054ef05ad64b861cc9eaf1d623d2d8cb25b4bf2cb9cdd902b4bf253" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.8.0", ] [[package]] @@ -2273,7 +2334,28 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" dependencies = [ - "foreign-types-shared", + "foreign-types-shared 0.1.1", +] + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared 0.3.1", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", ] [[package]] @@ -2282,6 +2364,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + [[package]] name = "form_urlencoded" version = "1.2.1" @@ -2360,7 +2448,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ - "fastrand 2.1.0", + "fastrand 2.1.1", "futures-core", "futures-io", "parking", @@ -2375,7 +2463,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] @@ -2408,36 +2496,6 @@ dependencies = [ "slab", ] -[[package]] -name = "gdk-pixbuf-sys" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" -dependencies = [ - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - -[[package]] -name = "gdk-sys" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31ff856cb3386dae1703a920f803abafcc580e9b5f711ca62ed1620c25b51ff2" -dependencies = [ - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "pango-sys", - "pkg-config", - "system-deps", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -2474,22 +2532,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" - -[[package]] -name = "gio-sys" -version = "0.18.1" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", - "winapi", -] +checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" [[package]] name = "gl_generator" @@ -2502,16 +2547,6 @@ dependencies = [ "xml-rs", ] -[[package]] -name = "glib-sys" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" -dependencies = [ - "libc", - "system-deps", -] - [[package]] name = "glob" version = "0.3.1" @@ -2520,9 +2555,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "gloo-timers" -version = "0.2.6" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" dependencies = [ "futures-channel", "futures-core", @@ -2532,9 +2567,9 @@ dependencies = [ [[package]] name = "glow" -version = "0.12.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca0fe580e4b60a8ab24a868bc08e2f03cbcb20d3d676601fa909386713333728" +checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1" dependencies = [ "js-sys", "slotmap", @@ -2544,54 +2579,55 @@ dependencies = [ [[package]] name = "glutin" -version = "0.30.10" +version = "0.31.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc93b03242719b8ad39fb26ed2b01737144ce7bd4bfc7adadcef806596760fe" +checksum = "18fcd4ae4e86d991ad1300b8f57166e5be0c95ef1f63f3f5b827f8a164548746" dependencies = [ - "bitflags 1.3.2", - "cfg_aliases", + "bitflags 2.6.0", + "cfg_aliases 0.1.1", "cgl", "core-foundation", "dispatch", "glutin_egl_sys", "glutin_glx_sys", "glutin_wgl_sys", - "libloading 0.7.4", - "objc2 0.3.0-beta.3.patch-leaks.3", + "icrate", + "libloading", + "objc2 0.4.1", "once_cell", - "raw-window-handle", - "wayland-sys 0.30.1", - "windows-sys 0.45.0", + "raw-window-handle 0.5.2", + "wayland-sys", + "windows-sys 0.48.0", "x11-dl", ] [[package]] name = "glutin-winit" -version = "0.3.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629a873fc04062830bfe8f97c03773bcd7b371e23bcc465d0a61448cd1588fa4" +checksum = "1ebcdfba24f73b8412c5181e56f092b5eff16671c514ce896b258a0a64bd7735" dependencies = [ - "cfg_aliases", + "cfg_aliases 0.1.1", "glutin", - "raw-window-handle", + "raw-window-handle 0.5.2", "winit", ] [[package]] name = "glutin_egl_sys" -version = "0.5.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af784eb26c5a68ec85391268e074f0aa618c096eadb5d6330b0911cf34fe57c5" +checksum = "77cc5623f5309ef433c3dd4ca1223195347fe62c413da8e2fdd0eb76db2d9bcd" dependencies = [ "gl_generator", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] name = "glutin_glx_sys" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b53cb5fe568964aa066a3ba91eac5ecbac869fb0842cd0dc9e412434f1a1494" +checksum = "a165fd686c10dcc2d45380b35796e577eacfd43d4660ee741ec8ebe2201b3b4f" dependencies = [ "gl_generator", "x11-dl", @@ -2599,42 +2635,13 @@ dependencies = [ [[package]] name = "glutin_wgl_sys" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef89398e90033fc6bc65e9bd42fd29bbbfd483bda5b56dc5562f455550618165" +checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead" dependencies = [ "gl_generator", ] -[[package]] -name = "gobject-sys" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" -dependencies = [ - "glib-sys", - "libc", - "system-deps", -] - -[[package]] -name = "gtk-sys" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771437bf1de2c1c0b496c11505bdf748e26066bbe942dfc8f614c9460f6d7722" -dependencies = [ - "atk-sys", - "cairo-sys-rs", - "gdk-pixbuf-sys", - "gdk-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "libc", - "pango-sys", - "system-deps", -] - [[package]] name = "h2" version = "0.3.26" @@ -2647,7 +2654,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.2.6", + "indexmap 2.5.0", "slab", "tokio", "tokio-util", @@ -2655,21 +2662,31 @@ dependencies = [ ] [[package]] -name = "hash32" -version = "0.2.1" +name = "h2" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" dependencies = [ - "byteorder", + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.1.0", + "indexmap 2.5.0", + "slab", + "tokio", + "tokio-util", + "tracing", ] [[package]] -name = "hashbrown" -version = "0.11.2" +name = "hash32" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" dependencies = [ - "ahash 0.7.8", + "byteorder", ] [[package]] @@ -2684,19 +2701,16 @@ version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "ahash 0.8.11", + "ahash", ] [[package]] name = "heapless" -version = "0.7.17" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" dependencies = [ - "atomic-polyfill", "hash32", - "rustc_version", - "spin", "stable_deref_trait", ] @@ -2721,6 +2735,12 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + [[package]] name = "hex" version = "0.4.3" @@ -2791,6 +2811,29 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "pin-project-lite", +] + [[package]] name = "http-range-header" version = "0.3.1" @@ -2799,9 +2842,9 @@ checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" [[package]] name = "httparse" -version = "1.8.0" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" [[package]] name = "httpdate" @@ -2817,17 +2860,17 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.28" +version = "0.14.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" dependencies = [ "bytes", "futures-channel", "futures-core", "futures-util", - "h2", + "h2 0.3.26", "http 0.2.12", - "http-body", + "http-body 0.4.6", "httparse", "httpdate", "itoa", @@ -2835,8 +2878,46 @@ dependencies = [ "socket2 0.5.7", "tokio", "tower-service", - "tracing", - "want", + "tracing", + "want", +] + +[[package]] +name = "hyper" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.6", + "http 1.1.0", + "http-body 1.0.1", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +dependencies = [ + "futures-util", + "http 1.1.0", + "hyper 1.4.1", + "hyper-util", + "rustls 0.23.13", + "rustls-pki-types", + "tokio", + "tokio-rustls 0.26.0", + "tower-service", + "webpki-roots 0.26.5", ] [[package]] @@ -2845,7 +2926,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ - "hyper", + "hyper 0.14.30", "pin-project-lite", "tokio", "tokio-io-timeout", @@ -2853,15 +2934,38 @@ dependencies = [ [[package]] name = "hyper-tls" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", - "hyper", + "http-body-util", + "hyper 1.4.1", + "hyper-util", "native-tls", "tokio", "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da62f120a8a37763efb0cf8fdf264b884c7b8b9ac8660b900c8661030c00e6ba" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.4.1", + "pin-project-lite", + "socket2 0.5.7", + "tokio", + "tower", + "tower-service", + "tracing", ] [[package]] @@ -2875,7 +2979,7 @@ dependencies = [ "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core", + "windows-core 0.52.0", ] [[package]] @@ -2887,6 +2991,17 @@ dependencies = [ "cc", ] +[[package]] +name = "icrate" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d3aaff8a54577104bafdf686ff18565c3b6903ca5782a2026ef06e2c7aa319" +dependencies = [ + "block2 0.3.0", + "dispatch", + "objc2 0.4.1", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -2914,7 +3029,7 @@ dependencies = [ "bytes", "futures", "http 0.2.12", - "hyper", + "hyper 0.14.30", "log", "rand", "tokio", @@ -2949,24 +3064,36 @@ dependencies = [ "png", ] +[[package]] +name = "image" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99314c8a2152b8ddb211f924cdae532d8c5e4c8bb54728e12fff1b0cd5963a10" +dependencies = [ + "bytemuck", + "byteorder-lite", + "num-traits", + "png", +] + [[package]] name = "imagesize" -version = "0.10.1" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df19da1e92fbfec043ca97d622955381b1f3ee72a180ec999912df31b1ccd951" +checksum = "029d73f573d8e8d63e6d5020011d3255b28c3ba85d6cf870a07184ed23de9284" [[package]] name = "indexed_db_futures" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cc2083760572ee02385ab8b7c02c20925d2dd1f97a1a25a8737a238608f1152" +checksum = "43315957678a70eb21fb0d2384fe86dde0d6c859a01e24ce127eb65a0143d28c" dependencies = [ "accessory", "cfg-if 1.0.0", "delegate-display", "fancy_constructor", "js-sys", - "uuid 1.6.1", + "uuid 1.10.0", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -2985,9 +3112,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -3005,9 +3132,9 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -3051,9 +3178,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" [[package]] name = "is-docker" @@ -3066,11 +3193,11 @@ dependencies = [ [[package]] name = "is-terminal" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" dependencies = [ - "hermit-abi 0.3.9", + "hermit-abi 0.4.0", "libc", "windows-sys 0.52.0", ] @@ -3087,9 +3214,9 @@ dependencies = [ [[package]] name = "is_terminal_polyfill" -version = "1.70.0" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itertools" @@ -3109,6 +3236,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" @@ -3139,26 +3275,26 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" dependencies = [ "wasm-bindgen", ] [[package]] name = "kaspa-addresses" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "borsh", "js-sys", @@ -3172,12 +3308,12 @@ dependencies = [ [[package]] name = "kaspa-addressmanager" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "borsh", "igd-next", - "itertools 0.11.0", + "itertools 0.13.0", "kaspa-consensus-core", "kaspa-core", "kaspa-database", @@ -3194,22 +3330,23 @@ dependencies = [ [[package]] name = "kaspa-alloc" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "mimalloc", ] [[package]] name = "kaspa-bip32" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "borsh", "bs58", "getrandom", "hmac", "js-sys", + "kaspa-consensus-core", "kaspa-utils", "once_cell", "pbkdf2", @@ -3228,8 +3365,8 @@ dependencies = [ [[package]] name = "kaspa-cli" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "async-trait", "borsh", @@ -3237,8 +3374,9 @@ dependencies = [ "convert_case 0.6.0", "dashmap", "downcast", - "faster-hex 0.6.1", + "faster-hex", "futures", + "hex", "js-sys", "kaspa-addresses", "kaspa-bip32", @@ -3250,6 +3388,7 @@ dependencies = [ "kaspa-utils", "kaspa-wallet-core", "kaspa-wallet-keys", + "kaspa-wallet-pskt", "kaspa-wrpc-client", "nw-sys", "pad", @@ -3274,12 +3413,12 @@ dependencies = [ [[package]] name = "kaspa-connectionmanager" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "duration-string", "futures-util", - "itertools 0.11.0", + "itertools 0.13.0", "kaspa-addressmanager", "kaspa-core", "kaspa-p2p-lib", @@ -3292,17 +3431,17 @@ dependencies = [ [[package]] name = "kaspa-consensus" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "arc-swap", - "async-channel 2.2.1", + "async-channel 2.3.1", "bincode", "crossbeam-channel", - "faster-hex 0.6.1", + "faster-hex", "futures-util", - "indexmap 2.2.6", - "itertools 0.11.0", + "indexmap 2.5.0", + "itertools 0.13.0", "kaspa-consensus-core", "kaspa-consensus-notify", "kaspa-consensusmanager", @@ -3315,6 +3454,7 @@ dependencies = [ "kaspa-notify", "kaspa-pow", "kaspa-txscript", + "kaspa-txscript-errors", "kaspa-utils", "log", "once_cell", @@ -3331,14 +3471,14 @@ dependencies = [ [[package]] name = "kaspa-consensus-client" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ - "ahash 0.8.11", + "ahash", "cfg-if 1.0.0", - "faster-hex 0.6.1", + "faster-hex", "hex", - "itertools 0.11.0", + "itertools 0.13.0", "js-sys", "kaspa-addresses", "kaspa-consensus-core", @@ -3360,16 +3500,16 @@ dependencies = [ [[package]] name = "kaspa-consensus-core" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "async-trait", "borsh", "cfg-if 1.0.0", - "faster-hex 0.6.1", + "faster-hex", "futures-util", "getrandom", - "itertools 0.11.0", + "itertools 0.13.0", "js-sys", "kaspa-addresses", "kaspa-core", @@ -3389,15 +3529,16 @@ dependencies = [ "wasm-bindgen", "workflow-core", "workflow-log", + "workflow-serializer", "workflow-wasm", ] [[package]] name = "kaspa-consensus-notify" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ - "async-channel 2.2.1", + "async-channel 2.3.1", "cfg-if 1.0.0", "derive_more", "futures", @@ -3414,11 +3555,11 @@ dependencies = [ [[package]] name = "kaspa-consensus-wasm" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "cfg-if 1.0.0", - "faster-hex 0.6.1", + "faster-hex", "js-sys", "kaspa-addresses", "kaspa-consensus-client", @@ -3439,13 +3580,13 @@ dependencies = [ [[package]] name = "kaspa-consensusmanager" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "duration-string", "futures", "futures-util", - "itertools 0.11.0", + "itertools 0.13.0", "kaspa-consensus-core", "kaspa-consensus-notify", "kaspa-core", @@ -3458,8 +3599,8 @@ dependencies = [ [[package]] name = "kaspa-core" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "cfg-if 1.0.0", "ctrlc", @@ -3477,8 +3618,8 @@ dependencies = [ [[package]] name = "kaspa-daemon" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "async-trait", "borsh", @@ -3500,14 +3641,14 @@ dependencies = [ [[package]] name = "kaspa-database" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "bincode", "enum-primitive-derive", - "faster-hex 0.6.1", - "indexmap 2.2.6", - "itertools 0.11.0", + "faster-hex", + "indexmap 2.5.0", + "itertools 0.13.0", "kaspa-hashes", "kaspa-utils", "num-traits", @@ -3523,17 +3664,17 @@ dependencies = [ [[package]] name = "kaspa-grpc-client" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ - "async-channel 2.2.1", + "async-channel 2.3.1", "async-stream", "async-trait", - "faster-hex 0.6.1", + "faster-hex", "futures", "futures-util", - "h2", - "itertools 0.11.0", + "h2 0.4.6", + "itertools 0.13.0", "kaspa-core", "kaspa-grpc-core", "kaspa-notify", @@ -3546,6 +3687,7 @@ dependencies = [ "prost", "rand", "regex", + "rustls 0.23.13", "thiserror", "tokio", "tokio-stream", @@ -3555,15 +3697,15 @@ dependencies = [ [[package]] name = "kaspa-grpc-core" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ - "async-channel 2.2.1", + "async-channel 2.3.1", "async-stream", "async-trait", - "faster-hex 0.6.1", + "faster-hex", "futures", - "h2", + "h2 0.4.6", "kaspa-consensus-core", "kaspa-core", "kaspa-notify", @@ -3585,16 +3727,16 @@ dependencies = [ [[package]] name = "kaspa-grpc-server" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ - "async-channel 2.2.1", + "async-channel 2.3.1", "async-stream", "async-trait", - "faster-hex 0.6.1", + "faster-hex", "futures", - "h2", - "itertools 0.11.0", + "h2 0.4.6", + "itertools 0.13.0", "kaspa-consensus-core", "kaspa-core", "kaspa-grpc-core", @@ -3610,23 +3752,24 @@ dependencies = [ "paste", "prost", "rand", + "rustls 0.23.13", "thiserror", "tokio", "tokio-stream", "tonic", "triggered", - "uuid 1.6.1", + "uuid 1.10.0", ] [[package]] name = "kaspa-hashes" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "blake2b_simd", "borsh", "cc", - "faster-hex 0.6.1", + "faster-hex", "js-sys", "kaspa-utils", "keccak", @@ -3639,10 +3782,10 @@ dependencies = [ [[package]] name = "kaspa-index-core" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ - "async-channel 2.2.1", + "async-channel 2.3.1", "async-trait", "derive_more", "futures", @@ -3659,10 +3802,10 @@ dependencies = [ [[package]] name = "kaspa-index-processor" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ - "async-channel 2.2.1", + "async-channel 2.3.1", "async-trait", "derive_more", "futures", @@ -3685,11 +3828,11 @@ dependencies = [ [[package]] name = "kaspa-math" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "borsh", - "faster-hex 0.6.1", + "faster-hex", "js-sys", "kaspa-utils", "malachite-base", @@ -3705,16 +3848,16 @@ dependencies = [ [[package]] name = "kaspa-merkle" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "kaspa-hashes", ] [[package]] name = "kaspa-metrics-core" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "async-trait", "borsh", @@ -3730,11 +3873,11 @@ dependencies = [ [[package]] name = "kaspa-mining" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "futures-util", - "itertools 0.11.0", + "itertools 0.13.0", "kaspa-addresses", "kaspa-consensus-core", "kaspa-consensusmanager", @@ -3749,14 +3892,15 @@ dependencies = [ "rand", "serde", "smallvec", + "sweep-bptree", "thiserror", "tokio", ] [[package]] name = "kaspa-mining-errors" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "kaspa-consensus-core", "thiserror", @@ -3764,8 +3908,8 @@ dependencies = [ [[package]] name = "kaspa-muhash" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "kaspa-hashes", "kaspa-math", @@ -3775,7 +3919,7 @@ dependencies = [ [[package]] name = "kaspa-ng" -version = "0.2.6" +version = "0.3.0" dependencies = [ "cfg-if 1.0.0", "kaspa-alloc", @@ -3787,7 +3931,7 @@ dependencies = [ [[package]] name = "kaspa-ng-chrome" -version = "0.2.6" +version = "0.3.0" dependencies = [ "async-trait", "borsh", @@ -3810,15 +3954,15 @@ dependencies = [ [[package]] name = "kaspa-ng-core" -version = "0.2.6" +version = "0.3.0" dependencies = [ - "ahash 0.8.11", + "ahash", "async-trait", "borsh", "cfg-if 1.0.0", "chrome-sys", "chrono", - "clap 4.5.4", + "clap 4.5.17", "convert_case 0.6.0", "ctrlc", "derivative", @@ -3846,6 +3990,7 @@ dependencies = [ "kaspa-notify", "kaspa-rpc-core", "kaspa-rpc-service", + "kaspa-txscript", "kaspa-utils", "kaspa-wallet-core", "kaspa-wallet-keys", @@ -3868,10 +4013,10 @@ dependencies = [ "serde_json", "slug", "smallvec", - "sysinfo", + "sysinfo 0.29.11", "thiserror", "tokio", - "toml 0.8.12", + "toml", "vergen", "walkdir", "wasm-bindgen", @@ -3891,7 +4036,7 @@ dependencies = [ [[package]] name = "kaspa-ng-macros" -version = "0.2.6" +version = "0.3.0" dependencies = [ "convert_case 0.6.0", "parse-variants", @@ -3905,17 +4050,17 @@ dependencies = [ [[package]] name = "kaspa-notify" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ - "async-channel 2.2.1", + "async-channel 2.3.1", "async-trait", "borsh", "derive_more", "futures", "futures-util", - "indexmap 2.2.6", - "itertools 0.11.0", + "indexmap 2.5.0", + "itertools 0.13.0", "kaspa-addresses", "kaspa-consensus-core", "kaspa-core", @@ -3932,18 +4077,19 @@ dependencies = [ "triggered", "workflow-core", "workflow-log", + "workflow-serializer", ] [[package]] name = "kaspa-p2p-flows" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "async-trait", "chrono", "futures", - "indexmap 2.2.6", - "itertools 0.11.0", + "indexmap 2.5.0", + "itertools 0.13.0", "kaspa-addressmanager", "kaspa-connectionmanager", "kaspa-consensus-core", @@ -3963,19 +4109,19 @@ dependencies = [ "thiserror", "tokio", "tokio-stream", - "uuid 1.6.1", + "uuid 1.10.0", ] [[package]] name = "kaspa-p2p-lib" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "borsh", "ctrlc", "futures", - "h2", - "itertools 0.11.0", + "h2 0.4.6", + "itertools 0.13.0", "kaspa-consensus-core", "kaspa-core", "kaspa-hashes", @@ -3994,13 +4140,13 @@ dependencies = [ "tokio-stream", "tonic", "tonic-build", - "uuid 1.6.1", + "uuid 1.10.0", ] [[package]] name = "kaspa-perf-monitor" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "kaspa-core", "log", @@ -4012,8 +4158,8 @@ dependencies = [ [[package]] name = "kaspa-pow" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "js-sys", "kaspa-consensus-client", @@ -4028,16 +4174,16 @@ dependencies = [ [[package]] name = "kaspa-rpc-core" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ - "async-channel 2.2.1", + "async-channel 2.3.1", "async-trait", "borsh", "cfg-if 1.0.0", "derive_more", "downcast", - "faster-hex 0.6.1", + "faster-hex", "hex", "js-sys", "kaspa-addresses", @@ -4056,20 +4202,22 @@ dependencies = [ "kaspa-utils", "log", "paste", + "rand", "serde", "serde-wasm-bindgen", "smallvec", "thiserror", - "uuid 1.6.1", + "uuid 1.10.0", "wasm-bindgen", "workflow-core", + "workflow-serializer", "workflow-wasm", ] [[package]] name = "kaspa-rpc-macros" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "convert_case 0.6.0", "proc-macro-error", @@ -4081,8 +4229,8 @@ dependencies = [ [[package]] name = "kaspa-rpc-service" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "async-trait", "kaspa-addresses", @@ -4111,32 +4259,39 @@ dependencies = [ [[package]] name = "kaspa-txscript" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "blake2b_simd", "borsh", - "indexmap 2.2.6", - "itertools 0.11.0", + "cfg-if 1.0.0", + "hexplay", + "indexmap 2.5.0", + "itertools 0.13.0", "kaspa-addresses", "kaspa-consensus-core", "kaspa-hashes", "kaspa-txscript-errors", + "kaspa-utils", + "kaspa-wasm-core", "log", "parking_lot", "rand", "secp256k1", "serde", + "serde-wasm-bindgen", + "serde_json", "sha2", "smallvec", "thiserror", "wasm-bindgen", + "workflow-wasm", ] [[package]] name = "kaspa-txscript-errors" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "secp256k1", "thiserror", @@ -4144,35 +4299,42 @@ dependencies = [ [[package]] name = "kaspa-utils" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ - "async-channel 2.2.1", + "arc-swap", + "async-channel 2.3.1", "borsh", "cfg-if 1.0.0", + "duct", "event-listener 2.5.3", - "faster-hex 0.6.1", + "faster-hex", "ipnet", - "itertools 0.11.0", + "itertools 0.13.0", "log", + "mac_address", + "num_cpus", + "once_cell", "parking_lot", "rlimit", "serde", + "sha2", "smallvec", + "sysinfo 0.31.4", "thiserror", "triggered", - "uuid 1.6.1", + "uuid 1.10.0", "wasm-bindgen", ] [[package]] name = "kaspa-utils-tower" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "cfg-if 1.0.0", "futures", - "hyper", + "hyper 0.14.30", "log", "pin-project-lite", "tokio", @@ -4182,8 +4344,8 @@ dependencies = [ [[package]] name = "kaspa-utxoindex" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "futures", "kaspa-consensus-core", @@ -4202,16 +4364,16 @@ dependencies = [ [[package]] name = "kaspa-wallet-core" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "aes", - "ahash 0.8.11", + "ahash", "argon2", - "async-channel 2.2.1", + "async-channel 2.3.1", "async-std", "async-trait", - "base64 0.21.7", + "base64 0.22.1", "borsh", "cfb-mode", "cfg-if 1.0.0", @@ -4222,14 +4384,14 @@ dependencies = [ "derivative", "downcast", "evpkdf", - "faster-hex 0.6.1", + "faster-hex", "fixedstr", "futures", "heapless", "hmac", "home", "indexed_db_futures", - "itertools 0.11.0", + "itertools 0.13.0", "js-sys", "kaspa-addresses", "kaspa-bip32", @@ -4246,6 +4408,7 @@ dependencies = [ "kaspa-utils", "kaspa-wallet-keys", "kaspa-wallet-macros", + "kaspa-wallet-pskt", "kaspa-wasm-core", "kaspa-wrpc-client", "kaspa-wrpc-wasm", @@ -4280,13 +4443,13 @@ dependencies = [ [[package]] name = "kaspa-wallet-keys" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "async-trait", "borsh", "downcast", - "faster-hex 0.6.1", + "faster-hex", "hmac", "js-sys", "kaspa-addresses", @@ -4313,8 +4476,8 @@ dependencies = [ [[package]] name = "kaspa-wallet-macros" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "convert_case 0.5.0", "proc-macro-error", @@ -4325,20 +4488,50 @@ dependencies = [ "xxhash-rust", ] +[[package]] +name = "kaspa-wallet-pskt" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" +dependencies = [ + "bincode", + "derive_builder", + "futures", + "hex", + "js-sys", + "kaspa-addresses", + "kaspa-bip32", + "kaspa-consensus-client", + "kaspa-consensus-core", + "kaspa-txscript", + "kaspa-txscript-errors", + "kaspa-utils", + "secp256k1", + "serde", + "serde-value", + "serde-wasm-bindgen", + "serde_json", + "serde_repr", + "thiserror", + "wasm-bindgen", + "workflow-wasm", +] + [[package]] name = "kaspa-wasm-core" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ - "faster-hex 0.6.1", + "faster-hex", + "hexplay", "js-sys", "wasm-bindgen", + "workflow-wasm", ] [[package]] name = "kaspa-wrpc-client" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "async-std", "async-trait", @@ -4355,11 +4548,12 @@ dependencies = [ "paste", "rand", "regex", + "rustls 0.23.13", "serde", "serde-wasm-bindgen", "serde_json", "thiserror", - "toml 0.8.12", + "toml", "wasm-bindgen", "wasm-bindgen-futures", "workflow-core", @@ -4367,13 +4561,14 @@ dependencies = [ "workflow-http", "workflow-log", "workflow-rpc", + "workflow-serializer", "workflow-wasm", ] [[package]] name = "kaspa-wrpc-server" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ "async-trait", "borsh", @@ -4388,22 +4583,23 @@ dependencies = [ "kaspa-utils", "log", "num_cpus", - "openssl", "paste", + "rustls 0.23.13", "serde", "thiserror", "tokio", "workflow-core", "workflow-log", "workflow-rpc", + "workflow-serializer", ] [[package]] name = "kaspa-wrpc-wasm" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ - "ahash 0.8.11", + "ahash", "async-std", "cfg-if 1.0.0", "futures", @@ -4417,6 +4613,7 @@ dependencies = [ "kaspa-rpc-macros", "kaspa-wasm-core", "kaspa-wrpc-client", + "ring", "serde", "serde-wasm-bindgen", "serde_json", @@ -4430,11 +4627,12 @@ dependencies = [ [[package]] name = "kaspad" -version = "0.14.1" -source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=integrations#7e609dc43db2a21a115f1b9ec13ca299dfac836b" +version = "0.15.1" +source = "git+https://github.com/aspectron/rusty-kaspa.git?branch=gamma#29e32c91c5bf50d40ad1c3e77dd0a79c897a189f" dependencies = [ - "async-channel 2.2.1", - "clap 4.5.4", + "async-channel 2.3.1", + "cfg-if 1.0.0", + "clap 4.5.17", "dirs", "futures-util", "kaspa-addresses", @@ -4469,7 +4667,7 @@ dependencies = [ "tempfile", "thiserror", "tokio", - "toml 0.8.12", + "toml", "workflow-log", ] @@ -4490,9 +4688,9 @@ checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" [[package]] name = "kurbo" -version = "0.8.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a53776d271cfb873b17c618af0298445c88afc52837f3e948fa3fafd131f449" +checksum = "bd85a5776cd9500c2e2059c8c76c3b01528566b7fcbaf8098b55a33fc298849b" dependencies = [ "arrayvec", ] @@ -4508,9 +4706,9 @@ dependencies = [ [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "lazycell" @@ -4520,28 +4718,18 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.154" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" - -[[package]] -name = "libloading" -version = "0.7.4" +version = "0.2.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" -dependencies = [ - "cfg-if 1.0.0", - "winapi", -] +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" [[package]] name = "libloading" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" +checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" dependencies = [ "cfg-if 1.0.0", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -4552,9 +4740,9 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "libmimalloc-sys" -version = "0.1.37" +version = "0.1.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81eb4061c0582dedea1cbc7aff2240300dd6982e0239d1c99e65c1dbf4a30ba7" +checksum = "23aa6811d3bd4deb8a84dde645f943476d13b248d818edcf8ce0b2f37f036b44" dependencies = [ "cc", "libc", @@ -4566,7 +4754,7 @@ version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "libc", "redox_syscall 0.4.1", ] @@ -4577,17 +4765,18 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "libc", + "redox_syscall 0.5.4", ] [[package]] name = "librocksdb-sys" -version = "0.11.0+8.1.1" +version = "0.16.0+8.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e" +checksum = "ce3d60bc059831dc1c83903fb45c103f75db65c5a7bf22272764d9cc683e348c" dependencies = [ - "bindgen 0.65.1", + "bindgen 0.69.4", "bzip2-sys", "cc", "glob", @@ -4599,9 +4788,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.16" +version = "1.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9" +checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" dependencies = [ "cc", "pkg-config", @@ -4636,15 +4825,21 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.13" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "litrs" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" [[package]] name = "local-ip-address" -version = "0.5.7" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "612ed4ea9ce5acfb5d26339302528a5e1e59dfed95e9e11af3c083236ff1d15d" +checksum = "b435d7dd476416a905f9634dff8c330cee8d3168fdd1fbd472a17d1a75c00c3e" dependencies = [ "libc", "neli", @@ -4664,9 +4859,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" dependencies = [ "serde", "value-bag", @@ -4709,14 +4904,24 @@ dependencies = [ [[package]] name = "lz4-sys" -version = "1.9.4" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" +checksum = "fcb44a01837a858d47e5a630d2ccf304c8efcc4b83b8f9f75b7a9ee4fcc6e57d" dependencies = [ "cc", "libc", ] +[[package]] +name = "mac_address" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8836fae9d0d4be2c8b4efcdd79e828a2faa058a90d005abf42f91cac5493a08e" +dependencies = [ + "nix 0.28.0", + "winapi", +] + [[package]] name = "mach" version = "0.3.2" @@ -4746,7 +4951,7 @@ dependencies = [ "cfg-if 1.0.0", "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] @@ -4757,7 +4962,7 @@ checksum = "13198c120864097a565ccb3ff947672d969932b7975ebd4085732c9f09435e55" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] @@ -4770,14 +4975,14 @@ dependencies = [ "macroific_core", "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] name = "malachite-base" -version = "0.4.7" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d073a3d1e4e037975af5ef176a2632672e25e8ddbe8e1811745c2e0726b6ad94" +checksum = "46059721011b0458b7bd6d9179be5d0b60294281c23320c207adceaecc54d13b" dependencies = [ "hashbrown 0.14.5", "itertools 0.11.0", @@ -4787,9 +4992,9 @@ dependencies = [ [[package]] name = "malachite-nz" -version = "0.4.7" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2546fc6ae29728079e87a2a0f011509e6060713b65e62ee46ba5d413b495ebc7" +checksum = "1503b27e825cabd1c3d0ff1e95a39fb2ec9eab6fd3da6cfa41aec7091d273e78" dependencies = [ "itertools 0.11.0", "libm", @@ -4832,26 +5037,17 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.2" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memmap2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.6.5" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" dependencies = [ - "autocfg", + "libc", ] [[package]] @@ -4874,9 +5070,9 @@ dependencies = [ [[package]] name = "mimalloc" -version = "0.1.41" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f41a2280ded0da56c8cf898babb86e8f10651a34adcfff190ae9a1159c6908d" +checksum = "68914350ae34959d83f732418d51e2427a794055d0b9529f48259ac07af65633" dependencies = [ "libmimalloc-sys", ] @@ -4905,14 +5101,23 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", "simd-adler32", ] +[[package]] +name = "miniz_oxide" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +dependencies = [ + "adler2", +] + [[package]] name = "mio" version = "0.8.11" @@ -4925,6 +5130,18 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "mio" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "wasi", + "windows-sys 0.52.0", +] + [[package]] name = "multimap" version = "0.10.0" @@ -4942,11 +5159,10 @@ dependencies = [ [[package]] name = "native-tls" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" dependencies = [ - "lazy_static", "libc", "log", "openssl", @@ -4960,15 +5176,17 @@ dependencies = [ [[package]] name = "ndk" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" +checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "jni-sys", + "log", "ndk-sys", - "num_enum 0.5.11", - "raw-window-handle", + "num_enum", + "raw-window-handle 0.5.2", + "raw-window-handle 0.6.2", "thiserror", ] @@ -4980,9 +5198,9 @@ checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" [[package]] name = "ndk-sys" -version = "0.4.1+23.1.7779620" +version = "0.5.0+25.2.9519653" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" +checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" dependencies = [ "jni-sys", ] @@ -5014,51 +5232,40 @@ dependencies = [ [[package]] name = "nix" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" -dependencies = [ - "bitflags 1.3.2", - "cfg-if 1.0.0", - "libc", - "memoffset 0.6.5", -] - -[[package]] -name = "nix" -version = "0.25.1" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" dependencies = [ - "autocfg", "bitflags 1.3.2", "cfg-if 1.0.0", "libc", - "memoffset 0.6.5", + "memoffset 0.7.1", ] [[package]] name = "nix" -version = "0.26.4" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" +checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "cfg-if 1.0.0", + "cfg_aliases 0.1.1", "libc", - "memoffset 0.7.1", + "memoffset 0.9.1", ] [[package]] name = "nix" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg-if 1.0.0", - "cfg_aliases", + "cfg_aliases 0.2.1", "libc", + "memoffset 0.9.1", ] [[package]] @@ -5115,9 +5322,9 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", "num-traits", @@ -5201,44 +5408,23 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" -dependencies = [ - "num_enum_derive 0.5.11", -] - -[[package]] -name = "num_enum" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" -dependencies = [ - "num_enum_derive 0.6.1", -] - -[[package]] -name = "num_enum_derive" -version = "0.5.11" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ - "proc-macro-crate 1.3.1", - "proc-macro2", - "quote", - "syn 1.0.109", + "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.6.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] @@ -5297,9 +5483,9 @@ checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7" [[package]] name = "objc-sys" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da284c198fb9b7b0603f8635185e85fbd5b64ee154b1ed406d489077de2d6d60" +checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" [[package]] name = "objc2" @@ -5314,35 +5500,62 @@ dependencies = [ [[package]] name = "objc2" -version = "0.5.1" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d" +dependencies = [ + "objc-sys 0.3.5", + "objc2-encode 3.0.0", +] + +[[package]] +name = "objc2" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b25e1034d0e636cd84707ccdaa9f81243d399196b8a773946dcffec0401659" +checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" dependencies = [ - "objc-sys 0.3.3", - "objc2-encode 4.0.1", + "objc-sys 0.3.5", + "objc2-encode 4.0.3", ] [[package]] name = "objc2-app-kit" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb79768a710a9a1798848179edb186d1af7e8a8679f369e4b8d201dd2a034047" +checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "block2 0.5.0", - "objc2 0.5.1", + "bitflags 2.6.0", + "block2 0.5.1", + "libc", + "objc2 0.5.2", "objc2-core-data", + "objc2-core-image", "objc2-foundation", + "objc2-quartz-core", ] [[package]] name = "objc2-core-data" -version = "0.2.0" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" +dependencies = [ + "bitflags 2.6.0", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-image" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e092bc42eaf30a08844e6a076938c60751225ec81431ab89f5d1ccd9f958d6c" +checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" dependencies = [ - "block2 0.5.0", - "objc2 0.5.1", + "block2 0.5.1", + "objc2 0.5.2", "objc2-foundation", + "objc2-metal", ] [[package]] @@ -5356,18 +5569,51 @@ dependencies = [ [[package]] name = "objc2-encode" -version = "4.0.1" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88658da63e4cc2c8adb1262902cd6af51094df0488b760d6fd27194269c0950a" +checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666" + +[[package]] +name = "objc2-encode" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8" [[package]] name = "objc2-foundation" -version = "0.2.0" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" +dependencies = [ + "bitflags 2.6.0", + "block2 0.5.1", + "libc", + "objc2 0.5.2", +] + +[[package]] +name = "objc2-metal" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" +dependencies = [ + "bitflags 2.6.0", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfaefe14254871ea16c7d88968c0ff14ba554712a20d76421eec52f0a7fb8904" +checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "block2 0.5.0", - "objc2 0.5.1", + "bitflags 2.6.0", + "block2 0.5.1", + "objc2 0.5.2", + "objc2-foundation", + "objc2-metal", ] [[package]] @@ -5381,18 +5627,18 @@ dependencies = [ [[package]] name = "object" -version = "0.32.2" +version = "0.36.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "33ea5043e58958ee56f3e15a90aee535795cd7dfd319846288d93c5b57d85cbe" [[package]] name = "opaque-debug" @@ -5402,9 +5648,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "open" -version = "5.1.2" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "449f0ff855d85ddbf1edd5b646d65249ead3f5e422aaa86b7d2d0b049b103e32" +checksum = "61a877bf6abd716642a53ef1b89fb498923a4afca5c754f9050b4d081c05c4b3" dependencies = [ "is-wsl", "libc", @@ -5413,13 +5659,13 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.64" +version = "0.10.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg-if 1.0.0", - "foreign-types", + "foreign-types 0.3.2", "libc", "once_cell", "openssl-macros", @@ -5434,7 +5680,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] @@ -5443,24 +5689,14 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" -[[package]] -name = "openssl-src" -version = "300.2.3+3.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843" -dependencies = [ - "cc", -] - [[package]] name = "openssl-sys" -version = "0.9.102" +version = "0.9.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" dependencies = [ "cc", "libc", - "openssl-src", "pkg-config", "vcpkg", ] @@ -5499,11 +5735,21 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "os_pipe" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ffd2b0a5634335b135d5728d84c5e0fd726954b87111f7506a61c502280d982" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + [[package]] name = "owned_ttf_parser" -version = "0.21.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b41438d2fc63c46c74a2203bf5ccd82c41ba04347b2fcf5754f230b167067d5" +checksum = "490d3a563d3122bf7c911a59b0add9389e5ec0f5f0c3ac6b91ff235a0e6a7f90" dependencies = [ "ttf-parser", ] @@ -5517,29 +5763,17 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "pango-sys" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps", -] - [[package]] name = "parking" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", "parking_lot_core", @@ -5553,16 +5787,16 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if 1.0.0", "libc", - "redox_syscall 0.5.1", + "redox_syscall 0.5.4", "smallvec", - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] name = "parse-variants" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f048110646aae15ec0e4299c37a012739d28d92c82b7ad945c0578c188cbe3" +checksum = "99088a2b0695df5940d7b5a3b4c4460b765053cf5ecd6d46da43812d3fad7f13" dependencies = [ "parse-variants-derive", ] @@ -5575,7 +5809,7 @@ checksum = "70df726c43c645ef1dde24c7ae14692036ebe5457c92c5f0ec4cfceb99634ff6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] @@ -5639,7 +5873,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.2.6", + "indexmap 2.5.0", ] [[package]] @@ -5665,7 +5899,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] @@ -5682,12 +5916,12 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.1" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", - "fastrand 2.1.0", + "fastrand 2.1.1", "futures-io", ] @@ -5697,12 +5931,6 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" -[[package]] -name = "platforms" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7" - [[package]] name = "png" version = "0.17.13" @@ -5713,7 +5941,7 @@ dependencies = [ "crc32fast", "fdeflate", "flate2", - "miniz_oxide", + "miniz_oxide 0.7.4", ] [[package]] @@ -5734,19 +5962,25 @@ dependencies = [ [[package]] name = "polling" -version = "3.7.0" +version = "3.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3" +checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" dependencies = [ "cfg-if 1.0.0", "concurrent-queue", - "hermit-abi 0.3.9", + "hermit-abi 0.4.0", "pin-project-lite", - "rustix 0.38.34", + "rustix 0.38.37", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] +[[package]] +name = "pollster" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2" + [[package]] name = "poly1305" version = "0.8.0" @@ -5760,9 +5994,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" +checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" [[package]] name = "powerfmt" @@ -5772,37 +6006,40 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "prettyplease" -version = "0.2.20" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" dependencies = [ "proc-macro2", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] name = "proc-macro-crate" -version = "0.1.5" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ - "toml 0.5.11", + "once_cell", + "toml_edit 0.19.15", ] [[package]] name = "proc-macro-crate" -version = "1.3.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "once_cell", - "toml_edit 0.19.15", + "toml_edit 0.22.20", ] [[package]] @@ -5836,18 +6073,18 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.82" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] [[package]] name = "prost" -version = "0.12.4" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0f5d036824e4761737860779c906171497f6d55681139d8312388f8fe398922" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" dependencies = [ "bytes", "prost-derive", @@ -5855,9 +6092,9 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.12.4" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80b776a1b2dc779f5ee0641f8ade0125bc1298dd41a9a0c16d8bd57b42d222b1" +checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" dependencies = [ "bytes", "heck", @@ -5870,28 +6107,28 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.63", + "syn 2.0.77", "tempfile", ] [[package]] name = "prost-derive" -version = "0.12.5" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9554e3ab233f0a932403704f1a1d08c30d5ccd931adfdfa1e8b5a19b52c1d55a" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] name = "prost-types" -version = "0.12.4" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3235c33eb02c1f1e212abdbe34c78b264b038fb58ca612664343271e36e55ffe" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" dependencies = [ "prost", ] @@ -5906,11 +6143,68 @@ dependencies = [ "image 0.23.14", ] +[[package]] +name = "quick-xml" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96a05e2e8efddfa51a84ca47cec303fac86c8541b686d37cac5efc0e094417bc" +dependencies = [ + "memchr", +] + +[[package]] +name = "quinn" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash 2.0.0", + "rustls 0.23.13", + "socket2 0.5.7", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +dependencies = [ + "bytes", + "rand", + "ring", + "rustc-hash 2.0.0", + "rustls 0.23.13", + "slab", + "thiserror", + "tinyvec", + "tracing", +] + +[[package]] +name = "quinn-udp" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" +dependencies = [ + "libc", + "once_cell", + "socket2 0.5.7", + "tracing", + "windows-sys 0.59.0", +] + [[package]] name = "quote" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -5964,7 +6258,7 @@ checksum = "8b86292cf41ccfc96c5de7165c1c53d5b4ac540c5bab9d1857acbe9eba5f1a0b" dependencies = [ "proc-macro-hack", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] @@ -5982,6 +6276,12 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" +[[package]] +name = "raw-window-handle" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" + [[package]] name = "rayon" version = "1.10.0" @@ -6028,18 +6328,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.1" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", ] [[package]] name = "redox_users" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" dependencies = [ "getrandom", "libredox 0.1.3", @@ -6048,9 +6348,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.4" +version = "1.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" dependencies = [ "aho-corasick", "memchr", @@ -6060,9 +6360,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" dependencies = [ "aho-corasick", "memchr", @@ -6071,26 +6371,29 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "reqwest" -version = "0.11.27" +version = "0.12.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", "bytes", "encoding_rs", "futures-core", "futures-util", - "h2", - "http 0.2.12", - "http-body", - "hyper", + "h2 0.4.6", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.4.1", + "hyper-rustls", "hyper-tls", + "hyper-util", "ipnet", "js-sys", "log", @@ -6099,27 +6402,32 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls-pemfile", + "quinn", + "rustls 0.23.13", + "rustls-pemfile 2.1.3", + "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 1.0.1", "system-configuration", "tokio", "tokio-native-tls", + "tokio-rustls 0.26.0", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg", + "webpki-roots 0.26.5", + "windows-registry", ] [[package]] name = "resvg" -version = "0.28.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c115863f2d3621999cf187e318bc92b16402dfeff6a48c74df700d77381394c1" +checksum = "cadccb3d99a9efb8e5e00c16fbb732cbe400db2ec7fc004697ee7d97d86cf1f4" dependencies = [ "log", "pico-args", @@ -6131,21 +6439,21 @@ dependencies = [ [[package]] name = "rfd" -version = "0.12.1" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c9e7b57df6e8472152674607f6cc68aa14a748a3157a857a94f516e11aeacc2" +checksum = "25a73a7337fc24366edfca76ec521f51877b114e42dab584008209cca6719251" dependencies = [ + "ashpd", "block", "dispatch", - "glib-sys", - "gobject-sys", - "gtk-sys", "js-sys", "log", "objc", "objc-foundation", "objc_id", - "raw-window-handle", + "pollster", + "raw-window-handle 0.6.2", + "urlencoding", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -6154,9 +6462,9 @@ dependencies = [ [[package]] name = "rgb" -version = "0.8.37" +version = "0.8.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8" +checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a" dependencies = [ "bytemuck", ] @@ -6193,18 +6501,18 @@ checksum = "80eb5f11ebcdd09266eb7897503d7451c2fceea3881538c63dd2651e2c5ebe0c" [[package]] name = "rlimit" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3560f70f30a0f16d11d01ed078a07740fe6b489667abc7c7b029155d9f21c3d8" +checksum = "7043b63bd0cd1aaa628e476b80e6d4023a3b50eb32789f2728908107bd0c793a" dependencies = [ "libc", ] [[package]] name = "rocksdb" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe" +checksum = "6bd13e55d6d7b8cd0ea569161127567cd587676c99f4472f779a0279aa60a7a7" dependencies = [ "libc", "librocksdb-sys", @@ -6217,19 +6525,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" dependencies = [ "base64 0.21.7", - "bitflags 2.5.0", + "bitflags 2.6.0", "serde", "serde_derive", ] [[package]] name = "roxmltree" -version = "0.15.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9de9831a129b122e7e61f242db509fa9d0838008bf0b29bb0624669edfe48a" -dependencies = [ - "xmlparser", -] +checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f" [[package]] name = "rustc-demangle" @@ -6243,11 +6548,17 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" + [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver", ] @@ -6268,14 +6579,14 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.34" +version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "errno", "libc", - "linux-raw-sys 0.4.13", + "linux-raw-sys 0.4.14", "windows-sys 0.52.0", ] @@ -6287,8 +6598,22 @@ checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", "ring", - "rustls-webpki", - "sct", + "rustls-webpki 0.101.7", + "sct", +] + +[[package]] +name = "rustls" +version = "0.23.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8" +dependencies = [ + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki 0.102.8", + "subtle", + "zeroize", ] [[package]] @@ -6300,6 +6625,22 @@ dependencies = [ "base64 0.21.7", ] +[[package]] +name = "rustls-pemfile" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +dependencies = [ + "base64 0.22.1", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" + [[package]] name = "rustls-webpki" version = "0.101.7" @@ -6310,11 +6651,22 @@ dependencies = [ "untrusted", ] +[[package]] +name = "rustls-webpki" +version = "0.102.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + [[package]] name = "rustversion" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "092474d1a01ea8278f69e6a358998405fae5b8b963ddaeb2b0b04a128bf1dfb0" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "ryu" @@ -6342,11 +6694,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -6373,9 +6725,9 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.28.2" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" +checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" dependencies = [ "rand", "secp256k1-sys", @@ -6384,20 +6736,20 @@ dependencies = [ [[package]] name = "secp256k1-sys" -version = "0.9.2" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" dependencies = [ "cc", ] [[package]] name = "security-framework" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "core-foundation", "core-foundation-sys", "libc", @@ -6406,9 +6758,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" dependencies = [ "core-foundation-sys", "libc", @@ -6440,9 +6792,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.201" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" dependencies = [ "serde_derive", ] @@ -6470,22 +6822,23 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.201" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865" +checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] name = "serde_json" -version = "1.0.117" +version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] @@ -6498,14 +6851,14 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] name = "serde_spanned" -version = "0.6.5" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" dependencies = [ "serde", ] @@ -6524,15 +6877,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.8.1" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad483d2ab0149d5a5ebcd9972a3852711e0153d863bf5a5d0391d28883c4a20" +checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.2.6", + "indexmap 2.5.0", "serde", "serde_derive", "serde_json", @@ -6542,14 +6895,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.8.1" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65569b702f41443e8bc8bbb1c5779bd0450bbe723b56198980e80ec45780bce2" +checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] @@ -6558,7 +6911,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.5.0", "itoa", "ryu", "serde", @@ -6587,6 +6940,16 @@ dependencies = [ "digest", ] +[[package]] +name = "shared_child" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09fa9338aed9a1df411814a5b2252f7cd206c55ae9bf2fa763f8de84603aa60c" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + [[package]] name = "shlex" version = "1.3.0" @@ -6605,12 +6968,12 @@ dependencies = [ [[package]] name = "signal-hook-mio" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" dependencies = [ "libc", - "mio", + "mio 0.8.11", "signal-hook", ] @@ -6664,9 +7027,9 @@ dependencies = [ [[package]] name = "slug" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bd94acec9c8da640005f8e135a39fc0372e74535e6b368b7a04b875f784c8c4" +checksum = "882a80f72ee45de3cc9a5afeb2da0331d58df69e4e7d8eeb5d3c7784ae67e724" dependencies = [ "deunicode", "wasm-bindgen", @@ -6699,31 +7062,72 @@ checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" [[package]] name = "smithay-client-toolkit" -version = "0.16.1" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870427e30b8f2cbe64bf43ec4b86e88fe39b0a84b3f15efd9c9c2d020bc86eb9" +checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a" dependencies = [ - "bitflags 1.3.2", - "calloop", - "dlib", - "lazy_static", + "bitflags 2.6.0", + "calloop 0.12.4", + "calloop-wayland-source 0.2.0", + "cursor-icon", + "libc", "log", "memmap2", - "nix 0.24.3", - "pkg-config", + "rustix 0.38.37", + "thiserror", + "wayland-backend", "wayland-client", + "wayland-csd-frame", "wayland-cursor", - "wayland-protocols", + "wayland-protocols 0.31.2", + "wayland-protocols-wlr 0.2.0", + "wayland-scanner", + "xkeysym", ] [[package]] -name = "smithay-clipboard" -version = "0.6.6" +name = "smithay-client-toolkit" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a345c870a1fae0b1b779085e81b51e614767c239e93503588e54c5b17f4b0e8" +checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" dependencies = [ - "smithay-client-toolkit", + "bitflags 2.6.0", + "calloop 0.13.0", + "calloop-wayland-source 0.3.0", + "cursor-icon", + "libc", + "log", + "memmap2", + "rustix 0.38.37", + "thiserror", + "wayland-backend", "wayland-client", + "wayland-csd-frame", + "wayland-cursor", + "wayland-protocols 0.32.4", + "wayland-protocols-wlr 0.3.4", + "wayland-scanner", + "xkeysym", +] + +[[package]] +name = "smithay-clipboard" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc8216eec463674a0e90f29e0ae41a4db573ec5b56b1c6c1c71615d249b6d846" +dependencies = [ + "libc", + "smithay-client-toolkit 0.19.2", + "wayland-backend", +] + +[[package]] +name = "smol_str" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" +dependencies = [ + "serde", ] [[package]] @@ -6757,9 +7161,6 @@ name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] [[package]] name = "stable_deref_trait" @@ -6788,12 +7189,6 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - [[package]] name = "strsim" version = "0.11.1" @@ -6802,19 +7197,26 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "svgtypes" -version = "0.8.2" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22975e8a2bac6a76bb54f898a6b18764633b00e780330f0b689f65afb3975564" +checksum = "6e44e288cd960318917cbd540340968b90becc8bc81f171345d706e7a89d9d70" dependencies = [ + "kurbo", "siphasher", ] +[[package]] +name = "sweep-bptree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bea7b1b7c5eaabc40bab84ec98b2f12523d97e91c9bfc430fe5d2a1ea15c9960" + [[package]] name = "syn" version = "1.0.109" @@ -6828,21 +7230,42 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.63" +version = "2.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf5be731623ca1a1fb7d8be6f261a3be6d3e2337b8a1f97be944d020c8fcb704" +checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.77", +] + [[package]] name = "sync_wrapper" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +dependencies = [ + "futures-core", +] + [[package]] name = "sysinfo" version = "0.29.11" @@ -6858,56 +7281,52 @@ dependencies = [ "winapi", ] +[[package]] +name = "sysinfo" +version = "0.31.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "355dbe4f8799b304b05e1b0f05fc59b2a18d36645cf169607da45bde2f69a1be" +dependencies = [ + "core-foundation-sys", + "libc", + "memchr", + "ntapi", + "rayon", + "windows 0.57.0", +] + [[package]] name = "system-configuration" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "core-foundation", "system-configuration-sys", ] [[package]] name = "system-configuration-sys" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" dependencies = [ "core-foundation-sys", "libc", ] -[[package]] -name = "system-deps" -version = "6.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" -dependencies = [ - "cfg-expr", - "heck", - "pkg-config", - "toml 0.8.12", - "version-compare", -] - -[[package]] -name = "target-lexicon" -version = "0.12.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" - [[package]] name = "tempfile" -version = "3.10.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" dependencies = [ "cfg-if 1.0.0", - "fastrand 2.1.0", - "rustix 0.38.34", - "windows-sys 0.52.0", + "fastrand 2.1.1", + "once_cell", + "rustix 0.38.37", + "windows-sys 0.59.0", ] [[package]] @@ -6941,29 +7360,29 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.60" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.60" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] name = "thread-id" -version = "4.2.1" +version = "4.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0ec81c46e9eb50deaa257be2f148adf052d1fb7701cfd55ccfab2525280b70b" +checksum = "cfe8f25bbdd100db7e1d34acf7fd2dc59c4bf8f7483f505eaa7d4f12f76cc0ea" dependencies = [ "libc", "winapi", @@ -7004,23 +7423,24 @@ dependencies = [ [[package]] name = "tiny-skia" -version = "0.8.4" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8493a203431061e901613751931f047d1971337153f96d0e5e363d6dbf6a67" +checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab" dependencies = [ "arrayref", "arrayvec", "bytemuck", "cfg-if 1.0.0", + "log", "png", "tiny-skia-path", ] [[package]] name = "tiny-skia-path" -version = "0.8.4" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adbfb5d3f3dd57a0e11d12f4f13d4ebbbc1b5c15b7ab0a156d030b21da5f677c" +checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93" dependencies = [ "arrayref", "bytemuck", @@ -7029,9 +7449,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -7044,20 +7464,19 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.37.0" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ "backtrace", "bytes", "libc", - "mio", - "num_cpus", + "mio 1.0.2", "pin-project-lite", "signal-hook-registry", "socket2 0.5.7", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -7072,13 +7491,13 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.2.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] @@ -7097,15 +7516,26 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls", + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +dependencies = [ + "rustls 0.23.13", + "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", "pin-project-lite", @@ -7114,23 +7544,25 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.21.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38" +checksum = "c6989540ced10490aaf14e6bad2e3d33728a2813310a0c71d1574304c49631cd" dependencies = [ "futures-util", "log", - "native-tls", + "rustls 0.23.13", + "rustls-pki-types", "tokio", - "tokio-native-tls", + "tokio-rustls 0.26.0", "tungstenite", + "webpki-roots 0.26.5", ] [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", @@ -7141,30 +7573,21 @@ dependencies = [ [[package]] name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - -[[package]] -name = "toml" -version = "0.8.12" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.12", + "toml_edit 0.22.20", ] [[package]] name = "toml_datetime" -version = "0.6.5" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ "serde", ] @@ -7175,22 +7598,22 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.5.0", "toml_datetime", "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.22.12" +version = "0.22.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" dependencies = [ - "indexmap 2.2.6", + "indexmap 2.5.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.8", + "winnow 0.6.18", ] [[package]] @@ -7205,23 +7628,24 @@ dependencies = [ "base64 0.21.7", "bytes", "flate2", - "h2", + "h2 0.3.26", "http 0.2.12", - "http-body", - "hyper", + "http-body 0.4.6", + "hyper 0.14.30", "hyper-timeout", "percent-encoding", "pin-project", "prost", - "rustls", - "rustls-pemfile", + "rustls 0.21.12", + "rustls-pemfile 1.0.4", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", "tokio-stream", "tower", "tower-layer", "tower-service", "tracing", + "webpki-roots 0.25.4", ] [[package]] @@ -7234,7 +7658,7 @@ dependencies = [ "proc-macro2", "prost-build", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] @@ -7263,12 +7687,12 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "bytes", "futures-core", "futures-util", "http 0.2.12", - "http-body", + "http-body 0.4.6", "http-range-header", "pin-project-lite", "tower-layer", @@ -7277,15 +7701,15 @@ dependencies = [ [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -7307,7 +7731,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] @@ -7333,15 +7757,15 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "ttf-parser" -version = "0.21.1" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8" +checksum = "5be21190ff5d38e8b4a2d3b6a3ae57f612cc39c96e83cedeaf7abc338a8bac4a" [[package]] name = "tungstenite" -version = "0.21.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" +checksum = "6e2e2ce1e47ed2994fd43b04c8f618008d4cabdd5ee34027cf14f9d918edd9c8" dependencies = [ "byteorder", "bytes", @@ -7349,11 +7773,11 @@ dependencies = [ "http 1.1.0", "httparse", "log", - "native-tls", "rand", + "rustls 0.23.13", + "rustls-pki-types", "sha1", "thiserror", - "url", "utf-8", ] @@ -7400,9 +7824,9 @@ checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-linebreak" @@ -7421,15 +7845,15 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" +checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" [[package]] name = "universal-hash" @@ -7464,33 +7888,64 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna", "percent-encoding", + "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "usvg" -version = "0.28.0" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b0a51b72ab80ca511d126b77feeeb4fb1e972764653e61feac30adc161a756" +dependencies = [ + "base64 0.21.7", + "log", + "pico-args", + "usvg-parser", + "usvg-tree", + "xmlwriter", +] + +[[package]] +name = "usvg-parser" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b5b7c2b30845b3348c067ca3d09e20cc6e327c288f0ca4c48698712abf432e9" +checksum = "9bd4e3c291f45d152929a31f0f6c819245e2921bfd01e7bd91201a9af39a2bdc" dependencies = [ - "base64 0.13.1", "data-url", "flate2", "imagesize", "kurbo", "log", - "rctree", "roxmltree", "simplecss", "siphasher", + "svgtypes", + "usvg-tree", +] + +[[package]] +name = "usvg-tree" +version = "0.37.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee3d202ebdb97a6215604b8f5b4d6ef9024efd623cf2e373a6416ba976ec7d3" +dependencies = [ + "rctree", "strict-num", "svgtypes", + "tiny-skia-path", ] [[package]] @@ -7501,9 +7956,9 @@ checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" @@ -7516,9 +7971,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.6.1" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" +checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" dependencies = [ "getrandom", "rand", @@ -7546,9 +8001,9 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" [[package]] name = "vergen" -version = "8.3.1" +version = "8.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e27d6bdd219887a9eadd19e1c34f32e47fa332301184935c6d9bca26f3cca525" +checksum = "2990d9ea5967266ea0ccf413a4aa5c42a93dbcfda9cb49a97de6931726b12566" dependencies = [ "anyhow", "cargo_metadata", @@ -7559,23 +8014,17 @@ dependencies = [ "time", ] -[[package]] -name = "version-compare" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" - [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "waker-fn" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" [[package]] name = "walkdir" @@ -7604,11 +8053,12 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" dependencies = [ "cfg-if 1.0.0", + "once_cell", "serde", "serde_json", "wasm-bindgen-macro", @@ -7616,24 +8066,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -7643,9 +8093,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7653,113 +8103,162 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] -name = "wayland-client" -version = "0.29.5" +name = "wayland-backend" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715" +checksum = "056535ced7a150d45159d3a8dc30f91a2e2d588ca0b23f70e56033622b8016f6" dependencies = [ - "bitflags 1.3.2", + "cc", "downcast-rs", - "libc", - "nix 0.24.3", + "rustix 0.38.37", "scoped-tls", - "wayland-commons", + "smallvec", + "wayland-sys", +] + +[[package]] +name = "wayland-client" +version = "0.31.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3f45d1222915ef1fd2057220c1d9d9624b7654443ea35c3877f7a52bd0a5a2d" +dependencies = [ + "bitflags 2.6.0", + "rustix 0.38.37", + "wayland-backend", "wayland-scanner", - "wayland-sys 0.29.5", ] [[package]] -name = "wayland-commons" -version = "0.29.5" +name = "wayland-csd-frame" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902" +checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "nix 0.24.3", - "once_cell", - "smallvec", - "wayland-sys 0.29.5", + "bitflags 2.6.0", + "cursor-icon", + "wayland-backend", ] [[package]] name = "wayland-cursor" -version = "0.29.5" +version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661" +checksum = "3a94697e66e76c85923b0d28a0c251e8f0666f58fc47d316c0f4da6da75d37cb" dependencies = [ - "nix 0.24.3", + "rustix 0.38.37", "wayland-client", "xcursor", ] [[package]] -name = "wayland-protocols" -version = "0.29.5" +name = "wayland-protocols" +version = "0.31.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4" +dependencies = [ + "bitflags 2.6.0", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols" +version = "0.32.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b5755d77ae9040bb872a25026555ce4cb0ae75fd923e90d25fba07d81057de0" +dependencies = [ + "bitflags 2.6.0", + "wayland-backend", + "wayland-client", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-plasma" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479" +dependencies = [ + "bitflags 2.6.0", + "wayland-backend", + "wayland-client", + "wayland-protocols 0.31.2", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-wlr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" +dependencies = [ + "bitflags 2.6.0", + "wayland-backend", + "wayland-client", + "wayland-protocols 0.31.2", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-wlr" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6" +checksum = "dad87b5fd1b1d3ca2f792df8f686a2a11e3fe1077b71096f7a175ab699f89109" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", + "wayland-backend", "wayland-client", - "wayland-commons", + "wayland-protocols 0.32.4", "wayland-scanner", ] [[package]] name = "wayland-scanner" -version = "0.29.5" +version = "0.31.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53" +checksum = "597f2001b2e5fc1121e3d5b9791d3e78f05ba6bfa4641053846248e3a13661c3" dependencies = [ "proc-macro2", + "quick-xml", "quote", - "xml-rs", -] - -[[package]] -name = "wayland-sys" -version = "0.29.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4" -dependencies = [ - "dlib", - "lazy_static", - "pkg-config", ] [[package]] name = "wayland-sys" -version = "0.30.1" +version = "0.31.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b2a02ac608e07132978689a6f9bf4214949c85998c247abadd4f4129b1aa06" +checksum = "efa8ac0d8e8ed3e3b5c9fc92c7881406a268e11555abe36493efabe649a29e09" dependencies = [ "dlib", - "lazy_static", "log", + "once_cell", "pkg-config", ] [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" dependencies = [ "js-sys", "wasm-bindgen", @@ -7777,21 +8276,37 @@ dependencies = [ [[package]] name = "webbrowser" -version = "0.8.15" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db67ae75a9405634f5882791678772c94ff5f16a66535aae186e26aa0841fc8b" +checksum = "425ba64c1e13b1c6e8c5d2541c8fac10022ca584f33da781db01b5756aef1f4e" dependencies = [ + "block2 0.5.1", "core-foundation", "home", "jni", "log", "ndk-context", - "objc", - "raw-window-handle", + "objc2 0.5.2", + "objc2-foundation", "url", "web-sys", ] +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + +[[package]] +name = "webpki-roots" +version = "0.26.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "which" version = "4.4.2" @@ -7801,7 +8316,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.34", + "rustix 0.38.37", ] [[package]] @@ -7822,11 +8337,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -7841,18 +8356,40 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-implement", - "windows-interface", + "windows-implement 0.48.0", + "windows-interface 0.48.0", "windows-targets 0.48.5", ] +[[package]] +name = "windows" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" +dependencies = [ + "windows-core 0.57.0", + "windows-targets 0.52.6", +] + [[package]] name = "windows-core" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +dependencies = [ + "windows-implement 0.57.0", + "windows-interface 0.57.0", + "windows-result 0.1.2", + "windows-targets 0.52.6", ] [[package]] @@ -7866,6 +8403,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "windows-implement" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + [[package]] name = "windows-interface" version = "0.48.0" @@ -7877,6 +8425,56 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "windows-interface" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] + +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result 0.2.0", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result 0.2.0", + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.45.0" @@ -7901,7 +8499,16 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -7936,18 +8543,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -7964,9 +8571,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -7982,9 +8589,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -8000,15 +8607,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -8024,9 +8631,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -8042,9 +8649,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -8060,9 +8667,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -8078,42 +8685,56 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winit" -version = "0.28.7" +version = "0.29.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9596d90b45384f5281384ab204224876e8e8bf7d58366d9b795ad99aa9894b94" +checksum = "0d59ad965a635657faf09c8f062badd885748428933dad8e8bdd64064d92e5ca" dependencies = [ + "ahash", "android-activity", - "bitflags 1.3.2", - "cfg_aliases", + "atomic-waker", + "bitflags 2.6.0", + "bytemuck", + "calloop 0.12.4", + "cfg_aliases 0.1.1", "core-foundation", "core-graphics", - "dispatch", - "instant", + "cursor-icon", + "icrate", + "js-sys", "libc", "log", - "mio", + "memmap2", "ndk", - "objc2 0.3.0-beta.3.patch-leaks.3", + "ndk-sys", + "objc2 0.4.1", "once_cell", "orbclient", "percent-encoding", - "raw-window-handle", + "raw-window-handle 0.5.2", + "raw-window-handle 0.6.2", "redox_syscall 0.3.5", - "smithay-client-toolkit", + "rustix 0.38.37", + "smithay-client-toolkit 0.18.1", + "smol_str", + "unicode-segmentation", "wasm-bindgen", + "wasm-bindgen-futures", + "wayland-backend", "wayland-client", - "wayland-commons", - "wayland-protocols", - "wayland-scanner", + "wayland-protocols 0.31.2", + "wayland-protocols-plasma", "web-sys", - "windows-sys 0.45.0", + "web-time", + "windows-sys 0.48.0", "x11-dl", + "x11rb", + "xkbcommon-dl", ] [[package]] @@ -8127,9 +8748,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.8" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c52e9c97a68071b23e836c9380edae937f17b9c4667bd021973efc689f618d" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" dependencies = [ "memchr", ] @@ -8155,9 +8776,9 @@ dependencies = [ [[package]] name = "workflow-chrome" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109b6289f65b3e1cdfa6f2d9e8eb454453d5763c5061350e2300473c48d91b99" +checksum = "1e0c0dfbc178cb7c3a47bd2aabf6902364d2db7e4c4f5b0dad57b75d78c6fe1f" dependencies = [ "cfg-if 1.0.0", "chrome-sys", @@ -8170,23 +8791,24 @@ dependencies = [ [[package]] name = "workflow-core" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcea01cb6122ac3f20dc14f8e4104e2c0cd9c718c17ddb3fc115f9b2ed99f9ae" +checksum = "a1d67bbe225ea90aa6979167f28935275506696ac867661e218893d3a42e1666" dependencies = [ - "async-channel 2.2.1", + "async-channel 2.3.1", "async-std", "borsh", "bs58", "cfg-if 1.0.0", "chrono", "dirs", - "faster-hex 0.9.0", + "faster-hex", "futures", "getrandom", "instant", "js-sys", "rand", + "rlimit", "serde", "serde-wasm-bindgen", "thiserror", @@ -8197,13 +8819,14 @@ dependencies = [ "wasm-bindgen-futures", "web-sys", "workflow-core-macros", + "workflow-log", ] [[package]] name = "workflow-core-macros" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe24820a62e2b544c75c000cff72781383495a0e05157ec3e29b2abafe1ca2cb" +checksum = "65659ed208b0066a9344142218abda353eb6c6cc1fc3ae4808b750c560de004b" dependencies = [ "convert_case 0.6.0", "parse-variants", @@ -8218,9 +8841,9 @@ dependencies = [ [[package]] name = "workflow-dom" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91264d4e789f23c6730c2f3adede04a24b6a9eb9797f9d4ab23de370ba04c27f" +checksum = "503bba85907753c960ddfd73b4e79bffadf521cc3c992ef2b2a29fd3af09a957" dependencies = [ "futures", "js-sys", @@ -8236,9 +8859,9 @@ dependencies = [ [[package]] name = "workflow-http" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b191def1625c3aa5e7d62d1ebbbb3e639113a4a2f122418e4cf8d3379374f8" +checksum = "a3c654c7395e448001c658309377a44a8c3d7c28c7acb30e9babbaeacb575bb0" dependencies = [ "cfg-if 1.0.0", "reqwest", @@ -8252,13 +8875,14 @@ dependencies = [ [[package]] name = "workflow-i18n" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb62e7cbafa88f8e75845a707a28acc48939aecdefd9d188fa11d8b2fe47a94" +checksum = "91542f4952afa7131b97d46c9328635c1c92478f4bc105bab815b332dd273ba2" dependencies = [ "arc-swap", "cfg-if 1.0.0", - "itertools 0.12.1", + "itertools 0.13.0", + "reqwest", "ritehash", "serde", "serde_json", @@ -8267,9 +8891,9 @@ dependencies = [ [[package]] name = "workflow-log" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "077a8f720aa45c8cd867de1ccc73e068c4084d9fea46d11be7697a108e6a00ba" +checksum = "64bf52c539193f219b7a79eb0c7c5f6c222ccf9b95c5e0bd59e924feb762256f" dependencies = [ "cfg-if 1.0.0", "console", @@ -8283,9 +8907,9 @@ dependencies = [ [[package]] name = "workflow-macro-tools" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5a8af8b8951fa0cf94df4057b8cf583e067a525d3d997370db7797f33ba201f" +checksum = "085d3045d5ca780fb589d230030e34fec962b3638d6c69806a72a7d7d1affea4" dependencies = [ "convert_case 0.6.0", "parse-variants", @@ -8296,9 +8920,9 @@ dependencies = [ [[package]] name = "workflow-node" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7748eb6c76779993ed7f4457356d6b57f48f97f9e264c64c3405098330bcb8c7" +checksum = "9b85c9add43b5da3bed3d0d6d92eb3a2c5986c0ae65c7c3f5189876c19648154" dependencies = [ "borsh", "futures", @@ -8317,11 +8941,11 @@ dependencies = [ [[package]] name = "workflow-nw" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "010fff3468303b39fb0d5d267847a3d293ed083afbf83f4184fb1a749be56010" +checksum = "a2dd8c77686e6456be8e92237daaa88ad31546974e04514a09b1a38f812530ef" dependencies = [ - "ahash 0.8.11", + "ahash", "async-trait", "borsh", "futures", @@ -8341,9 +8965,9 @@ dependencies = [ [[package]] name = "workflow-panic-hook" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71c1ed51290daf255e5fd83dfe6bd754b108e371b971afbb5c5fd1ea8fe148af" +checksum = "74c76ca8b459e4f0c949f06ce2d45565a6769748e83ca7064d36671bbd67b4da" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen", @@ -8366,11 +8990,11 @@ dependencies = [ [[package]] name = "workflow-rpc" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14784fbad27d0403fc752d835c4c4683cfc6af970a484ea83f40ce7ad6dc7745" +checksum = "ec4235eb167f0bef3bcbdf0c578823a0105ab5303115e3b2afb4d526e2498b08" dependencies = [ - "ahash 0.8.11", + "ahash", "async-std", "async-trait", "borsh", @@ -8396,9 +9020,9 @@ dependencies = [ [[package]] name = "workflow-rpc-macros" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c372e99d1336a137b907274a3c50fc195e30141c87fc6da4dba54e7d4b09b8ec" +checksum = "f048ca6b1c551f468c3c0c829f958e83dd15b20138b5466bb617ffde500e8cf4" dependencies = [ "parse-variants", "proc-macro-error", @@ -8407,17 +9031,28 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "workflow-serializer" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64679db6856852a472caff4ce869e3ecebe291fbccc9406e9643eb5951a0904a" +dependencies = [ + "ahash", + "borsh", + "serde", +] + [[package]] name = "workflow-store" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "762861614298160b9205302bec4f2b7eb45853413d10a90ad8edca44bafc324b" +checksum = "d161c4b844eee479f81306f2526266f9608a663e0a679d9fc0572ee15c144e06" dependencies = [ "async-std", - "base64 0.21.7", + "base64 0.22.1", "cfg-if 1.0.0", "chrome-sys", - "faster-hex 0.9.0", + "faster-hex", "filetime", "home", "js-sys", @@ -8437,9 +9072,9 @@ dependencies = [ [[package]] name = "workflow-task" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4023e2598734e04aa4e968a4dd1cd2b5d0c344edc38b40970926d5742f5afa0" +checksum = "3d1a90743bb4d3f68606cb4e9a78551a53399ebc35ddba981cbb56bf2b31940a" dependencies = [ "futures", "thiserror", @@ -8449,9 +9084,9 @@ dependencies = [ [[package]] name = "workflow-task-macros" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057801365ce04c520a2a694bc5bfdf1784f1a33fff97af4cd735f94eb12947b1" +checksum = "7ecf6be36b52dc1e16d11b55f717d9ec2fec5804aff7f392af591933ba4af45e" dependencies = [ "convert_case 0.6.0", "parse-variants", @@ -8465,9 +9100,9 @@ dependencies = [ [[package]] name = "workflow-terminal" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "895c236dd5cf493e01fc31733c4687b3e67032f610d594ce3b8e5cafd14eaf33" +checksum = "75b64a2ecf68442edf844c3138f0b78e1398cfe4279540f94cc51b4afb885e5b" dependencies = [ "async-std", "async-trait", @@ -8494,9 +9129,9 @@ dependencies = [ [[package]] name = "workflow-terminal-macros" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1fe67beb12d31f2e69715898aa32abd2349ffc8fe0555617f0d77500cebc56" +checksum = "7bf96dca7d1847a74d7566c5620610d1accc854032308489105b80c08ebf525f" dependencies = [ "convert_case 0.6.0", "parse-variants", @@ -8510,12 +9145,12 @@ dependencies = [ [[package]] name = "workflow-wasm" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ffbd1de665304ba6040a1ab4e0867fd9174446491d257bc6a1474ae25d4a6c" +checksum = "799e5fbf266e0fffb5c24d6103735eb2b94bb31f93b664b91eaaf63b4f959804" dependencies = [ "cfg-if 1.0.0", - "faster-hex 0.9.0", + "faster-hex", "futures", "js-sys", "serde", @@ -8531,9 +9166,9 @@ dependencies = [ [[package]] name = "workflow-wasm-macros" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "082644f52215ecc86b4b8a20a763e482adee52c338208ade268f47fe25eb07ca" +checksum = "40237c65ecff78dbfedb13985e33f802a31f6f7de72dff12a6674fcdcf601822" dependencies = [ "js-sys", "proc-macro-error", @@ -8545,12 +9180,12 @@ dependencies = [ [[package]] name = "workflow-websocket" -version = "0.12.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6967baf2bd85deb2a014a32d34c1664ded9333e10d11d43ffc179fa09cc55db8" +checksum = "515483a047477c91b5142e1090cce0afc21a0139d9c0c06ea42f0d3dbf3a6fcd" dependencies = [ - "ahash 0.8.11", - "async-channel 2.2.1", + "ahash", + "async-channel 2.3.1", "async-std", "async-trait", "cfg-if 1.0.0", @@ -8589,8 +9224,12 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12" dependencies = [ + "as-raw-xcb-connection", "gethostname", - "rustix 0.38.34", + "libc", + "libloading", + "once_cell", + "rustix 0.38.37", "x11rb-protocol", ] @@ -8602,31 +9241,44 @@ checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" [[package]] name = "xcursor" -version = "0.3.5" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911" +checksum = "0ef33da6b1660b4ddbfb3aef0ade110c8b8a781a3b6382fa5f2b5b040fd55f61" [[package]] name = "xdg-home" -version = "1.1.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e5a325c3cb8398ad6cf859c1135b25dd29e186679cf2da7581d9679f63b38e" +checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6" dependencies = [ "libc", - "winapi", + "windows-sys 0.59.0", ] [[package]] -name = "xml-rs" -version = "0.8.20" +name = "xkbcommon-dl" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" +dependencies = [ + "bitflags 2.6.0", + "dlib", + "log", + "once_cell", + "xkeysym", +] + +[[package]] +name = "xkeysym" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" +checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56" [[package]] -name = "xmlparser" -version = "0.13.6" +name = "xml-rs" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" +checksum = "af4e2e2f7cba5a093896c1e150fbfe177d1883e7448200efb81d40b9d339ef26" [[package]] name = "xmltree" @@ -8637,11 +9289,17 @@ dependencies = [ "xml-rs", ] +[[package]] +name = "xmlwriter" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec7a2a501ed189703dba8b08142f057e887dfc4b2cc4db2d343ac6376ba3e0b9" + [[package]] name = "xxhash-rust" -version = "0.8.10" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "927da81e25be1e1a2901d59b81b37dd2efd1fc9c9345a55007f09bf5a2d3ee03" +checksum = "6a5cbf750400958819fb6178eaa83bee5cd9c29a26a40cc241df8c70fdd46984" [[package]] name = "zbus" @@ -8649,12 +9307,12 @@ version = "3.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "675d170b632a6ad49804c8cf2105d7c31eddd3312555cffd4b740e08e97c25e6" dependencies = [ - "async-broadcast", + "async-broadcast 0.5.1", "async-executor", - "async-fs", + "async-fs 1.6.0", "async-io 1.13.0", "async-lock 2.8.0", - "async-process", + "async-process 1.8.1", "async-recursion", "async-task", "async-trait", @@ -8679,9 +9337,47 @@ dependencies = [ "uds_windows", "winapi", "xdg-home", - "zbus_macros", - "zbus_names", - "zvariant", + "zbus_macros 3.15.2", + "zbus_names 2.6.1", + "zvariant 3.15.2", +] + +[[package]] +name = "zbus" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725" +dependencies = [ + "async-broadcast 0.7.1", + "async-executor", + "async-fs 2.1.2", + "async-io 2.3.4", + "async-lock 3.4.0", + "async-process 2.2.4", + "async-recursion", + "async-task", + "async-trait", + "blocking", + "enumflags2", + "event-listener 5.3.1", + "futures-core", + "futures-sink", + "futures-util", + "hex", + "nix 0.29.0", + "ordered-stream", + "rand", + "serde", + "serde_repr", + "sha1", + "static_assertions", + "tracing", + "uds_windows", + "windows-sys 0.52.0", + "xdg-home", + "zbus_macros 4.4.0", + "zbus_names 3.0.0", + "zvariant 4.2.0", ] [[package]] @@ -8695,7 +9391,20 @@ dependencies = [ "quote", "regex", "syn 1.0.109", - "zvariant_utils", + "zvariant_utils 1.0.1", +] + +[[package]] +name = "zbus_macros" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.77", + "zvariant_utils 2.1.0", ] [[package]] @@ -8706,40 +9415,52 @@ checksum = "437d738d3750bed6ca9b8d423ccc7a8eb284f6b1d6d4e225a0e4e6258d864c8d" dependencies = [ "serde", "static_assertions", - "zvariant", + "zvariant 3.15.2", +] + +[[package]] +name = "zbus_names" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b9b1fef7d021261cc16cba64c351d291b715febe0fa10dc3a443ac5a5022e6c" +dependencies = [ + "serde", + "static_assertions", + "zvariant 4.2.0", ] [[package]] name = "zerocopy" -version = "0.7.34" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ + "byteorder", "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.34" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.63", + "syn 2.0.77", ] [[package]] name = "zeroize" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" [[package]] name = "zstd-sys" -version = "2.0.10+zstd.1.5.6" +version = "2.0.13+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" dependencies = [ "cc", "pkg-config", @@ -8756,7 +9477,21 @@ dependencies = [ "libc", "serde", "static_assertions", - "zvariant_derive", + "zvariant_derive 3.15.2", +] + +[[package]] +name = "zvariant" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2084290ab9a1c471c38fc524945837734fbf124487e105daec2bb57fd48c81fe" +dependencies = [ + "endi", + "enumflags2", + "serde", + "static_assertions", + "url", + "zvariant_derive 4.2.0", ] [[package]] @@ -8769,7 +9504,20 @@ dependencies = [ "proc-macro2", "quote", "syn 1.0.109", - "zvariant_utils", + "zvariant_utils 1.0.1", +] + +[[package]] +name = "zvariant_derive" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.77", + "zvariant_utils 2.1.0", ] [[package]] @@ -8782,3 +9530,14 @@ dependencies = [ "quote", "syn 1.0.109", ] + +[[package]] +name = "zvariant_utils" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.77", +] diff --git a/Cargo.toml b/Cargo.toml index 3e41fce..1429cde 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,8 +9,8 @@ members = [ default-members = ["app"] [workspace.package] -rust-version = "1.78.0" -version = "0.2.6" +rust-version = "1.81.0" +version = "0.3.0" authors = ["ASPECTRON Inc.","Kaspa Developers"] license = "PROPRIETARY" edition = "2021" @@ -18,9 +18,9 @@ repository = "https://github.com/aspectron/kaspa-ng" [workspace.dependencies] -kaspa-ng = { version = "0.2.3", path = "app/" } -kaspa-ng-core = { version = "0.2.3", path = "core/" } -kaspa-ng-macros = { version = "0.2.3", path = "macros/" } +kaspa-ng = { version = "0.3.0", path = "app/", default-features = false } +kaspa-ng-core = { version = "0.3.0", path = "core/", default-features = false } +kaspa-ng-macros = { version = "0.3.0", path = "macros/", default-features = false } # ___________________ # ____ ____ _ _ _ @@ -28,19 +28,51 @@ kaspa-ng-macros = { version = "0.2.3", path = "macros/" } # |___ |__] |__| | # ___________________ -egui = "=0.24.0" -epaint = "=0.24.0" -egui_plot = "=0.24.0" -egui_extras = { version = "=0.24.0", features = ["svg","image"] } -eframe = { version = "=0.24.0", default-features = false, features = [ +# egui = "=0.28.1" +# epaint = "=0.28.1" +# egui_plot = "=0.28.1" +# egui_extras = { version = "=0.28.1", features = ["svg","image"] } +# eframe = { version = "=0.28.1", default-features = false, features = [ +# "accesskit", # Make egui comptaible with screen readers. NOTE: adds a lot of dependencies. +# "default_fonts", # Embed the default egui fonts. +# "glow", # Use the glow rendering backend. Alternative: "wgpu". +# "persistence", # Enable restoring app state when restarting the app. +# ] } + +# egui-phosphor = { git = "https://github.com/aspectron/egui-phosphor", branch = "gamma", version = "=0.6.0", features = ["thin","light","regular","bold"] } +# egui-notify = { git = "https://github.com/aspectron/egui-notify", branch = "gamma"} + + +# egui = { path="../egui/crates/egui", version="=0.28.1"} +# epaint = { path="../egui/crates/epaint"} +# # epaint = "=0.28.1" +# egui_plot = "=0.28.1" +# # egui_plot = { path="../egui/crates/egui_plot"} +# egui_extras = { path="../egui/crates/egui_extras", features = ["svg","image", "serde"] } +# eframe = { path="../egui/crates/eframe", default-features = false, features = [ +# "accesskit", # Make egui comptaible with screen readers. NOTE: adds a lot of dependencies. +# "default_fonts", # Embed the default egui fonts. +# "glow", # Use the glow rendering backend. Alternative: "wgpu". +# "persistence", # Enable restoring app state when restarting the app. +# ] } +# egui-phosphor = { path = "../egui-phosphor", version = "=0.6.0", features = ["thin","light","regular","bold"] } +# egui-notify = { path = "../egui-notify" } +# egui-toast = { path = "../egui-toast" } + +egui = { git = "https://github.com/aspectron/egui", branch = "gamma"} +epaint = { git = "https://github.com/aspectron/egui", branch = "gamma"} + +egui_plot = { git = "https://github.com/aspectron/egui_plot", branch = "gamma"} +egui_extras = { git = "https://github.com/aspectron/egui", branch = "gamma", features = ["svg","image", "serde"] } +eframe = { git = "https://github.com/aspectron/egui", branch = "gamma", default-features = false, features = [ "accesskit", # Make egui comptaible with screen readers. NOTE: adds a lot of dependencies. "default_fonts", # Embed the default egui fonts. "glow", # Use the glow rendering backend. Alternative: "wgpu". "persistence", # Enable restoring app state when restarting the app. ] } -egui-phosphor = { version = "=0.3.1", features = ["thin","light","regular","bold"] } -egui-notify = "=0.11.0" -# egui-toast = "0.9.0" +egui-phosphor = { git = "https://github.com/aspectron/egui-phosphor", branch = "gamma", version = "=0.6.0", features = ["thin","light","regular","bold"] } +egui-notify = { git = "https://github.com/aspectron/egui-notify", branch = "gamma"} +# egui-toast = { git = "https://github.com/aspectron/egui-toast", branch = "omega" } # egui = { path = "../egui/crates/egui" } # egui_extras = { path = "../egui/crates/egui_extras", features = ["svg", "image"] } @@ -91,8 +123,27 @@ egui-notify = "=0.11.0" # kaspa-wallet-keys = { path = "../rusty-kaspa/wallet/keys" } # kaspa-wrpc-client = { path = "../rusty-kaspa/rpc/wrpc/client"} # kaspa-wrpc-server = { path = "../rusty-kaspa/rpc/wrpc/server" } +# kaspa-txscript = { path = "../rusty-kaspa/crypto/txscript" } # kaspad = { path = "../rusty-kaspa/kaspad" } +kaspa-addresses = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "gamma" } +kaspa-alloc = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "gamma" } +kaspa-bip32 = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "gamma" } +kaspa-cli = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "gamma" } +kaspa-consensus-core = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "gamma" } +kaspa-core = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "gamma" } +kaspa-metrics-core = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "gamma" } +kaspa-notify = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "gamma" } +kaspa-rpc-core = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "gamma" } +kaspa-rpc-service = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "gamma" } +kaspa-utils = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "gamma" } +kaspa-wallet-core = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "gamma" } +kaspa-wallet-keys = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "gamma" } +kaspa-wrpc-client = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "gamma" } +kaspa-wrpc-server = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "gamma" } +kaspa-txscript = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "gamma" } +kaspad = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "gamma" } + # kaspa-addresses = { git = "https://github.com/kaspanet/rusty-kaspa.git", branch = "master" } # kaspa-alloc = { git = "https://github.com/kaspanet/rusty-kaspa.git", branch = "master" } # kaspa-bip32 = { git = "https://github.com/kaspanet/rusty-kaspa.git", branch = "master" } @@ -109,23 +160,7 @@ egui-notify = "=0.11.0" # kaspa-wrpc-client = { git = "https://github.com/kaspanet/rusty-kaspa.git", branch = "master" } # kaspa-wrpc-server = { git = "https://github.com/kaspanet/rusty-kaspa.git", branch = "master" } # kaspad = { git = "https://github.com/kaspanet/rusty-kaspa.git", branch = "master" } - -kaspa-addresses = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "integrations" } -kaspa-alloc = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "integrations" } -kaspa-bip32 = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "integrations" } -kaspa-cli = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "integrations" } -kaspa-consensus-core = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "integrations" } -kaspa-core = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "integrations" } -kaspa-metrics-core = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "integrations" } -kaspa-notify = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "integrations" } -kaspa-rpc-core = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "integrations" } -kaspa-rpc-service = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "integrations" } -kaspa-utils = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "integrations" } -kaspa-wallet-core = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "integrations" } -kaspa-wallet-keys = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "integrations" } -kaspa-wrpc-client = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "integrations" } -kaspa-wrpc-server = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "integrations" } -kaspad = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "integrations" } +# kaspa-addresses = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "gamma" } # _________________________________________________________ # _ _ _ ____ ____ _ _ ____ _ ____ _ _ _ ____ ____ @@ -133,14 +168,14 @@ kaspad = { git = "https://github.com/aspectron/rusty-kaspa.git", branch = "integ # |_|_| |__| | \ | \_ | |___ |__| |_|_| | \ ___] # _________________________________________________________ -workflow-core = "0.12.0" -workflow-i18n = "0.12.0" -workflow-chrome = "0.12.0" -workflow-dom = "0.12.0" -workflow-http = "0.12.0" -workflow-log = "0.12.0" -workflow-store = "0.12.0" -workflow-wasm = "0.12.0" +workflow-core = "0.18.0" +workflow-i18n = "0.18.0" +workflow-chrome = "0.18.0" +workflow-dom = "0.18.0" +workflow-http = "0.18.0" +workflow-log = "0.18.0" +workflow-store = "0.18.0" +workflow-wasm = "0.18.0" # workflow-core = { path = "../workflow-rs/core" } # workflow-i18n = { path = "../workflow-rs/i18n" } @@ -166,7 +201,7 @@ workflow-wasm = "0.12.0" ahash = "0.8.6" async-trait = "0.1.73" -borsh = { version = "0.9.1", features = ["rc"] } # please keep this fixed +borsh = { version = "1.5.1", features = ["derive", "rc"] } cfg-if = "1.0.0" chrome-sys = "0.2.0" # chrome-sys = {path = "../chrome-sys"} @@ -184,14 +219,14 @@ futures-util = { version = "0.3.29", default-features = false, features = ["allo image = { version = "0.24.7", default-features = false, features = ["png"] } js-sys = "0.3.64" log = "0.4.20" -nix = "0.28.0" +nix = { version = "0.28.0", features = ["signal"]} num_cpus = "1.15.0" open = "5.0.1" pad = "0.1.6" passwords = "3.1.16" qrcode = "0.12.0" rand = "0.8.5" -rfd = "0.12.1" +rfd = "0.14.1" ritehash = "0.2.0" rlimit = "0.10.1" separator = "0.4.1" @@ -207,7 +242,7 @@ toml = "0.8.12" walkdir = "2.4.0" wasm-bindgen = "0.2.92" wasm-bindgen-futures = "0.4" -web-sys = { version = "0.3.64", features = ['Window'] } +web-sys = { version = "0.3.70", features = ['Window'] } xxhash-rust = { version = "0.8.7", features = ["xxh3"] } zeroize = { version = "1", default-features = false, features = ["alloc"] } diff --git a/README.md b/README.md index f6ba811..d143bc3 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,12 @@ Kaspa NG application binary can be started in 3 ways: If you need access to the wallet in a headless environment, you can start Kaspa NG in daemon mode and then use the CLI wallet to access the wallet. +#### Solo Mining + +You can use the following stratum bridge to solo mine with Kaspa NG: https://github.com/rdugan/kaspa-stratum-bridge/releases +In order to allow for mining, you need to enable gRPC interface in the Settings panel (*'Local'* if running the stratum bridge on the same machine, *'Any'* if running the stratum bridge on a different machine). +In the stratum configuration setup kaspa_address of the machine running Kaspa NG (`127.0.0.1` if local) and use `stratum+tcp://:(5555)`. + ## License Licensed under a [PROPRIETARY MIT-style Open Source LICENSE](LICENSE) with the following restrictions: diff --git a/app/index.html b/app/index.html index 9713443..f2c534c 100644 --- a/app/index.html +++ b/app/index.html @@ -23,7 +23,6 @@ - @@ -68,8 +67,10 @@ display: block; position: absolute; top: 0%; - left: 50%; - transform: translate(-50%, 0%); + left: 0%; + /* transform: translate(-50%, 0%); */ + width:100%; + height:100%; } .centered { diff --git a/app/src/main.rs b/app/src/main.rs index 4c8ec11..b2cd3eb 100644 --- a/app/src/main.rs +++ b/app/src/main.rs @@ -13,7 +13,7 @@ cfg_if! { if #[cfg(not(target_arch = "wasm32"))] { fn main() { - + #[cfg(feature = "console")] { std::env::set_var("RUST_BACKTRACE", "full"); } @@ -27,13 +27,13 @@ cfg_if! { }; #[allow(clippy::expect_used, clippy::diverging_sub_expression)] - let result = { + //{ tokio::runtime::Builder::new_multi_thread() .enable_all() .build() .expect("Failed building the Runtime") - .block_on(body) - }; + .block_on(body); + //}; #[cfg(feature = "console")] { @@ -42,7 +42,7 @@ cfg_if! { std::io::stdin().read_line(&mut input).expect("Failed to read line"); } - result + } } else { diff --git a/check b/check index 343dff1..e48b8c2 100755 --- a/check +++ b/check @@ -5,4 +5,5 @@ cargo fmt --all # cargo clippy --workspace --all-targets --all-features -- -D warnings -W clippy::all # cargo clippy --workspace --all-targets -- -D warnings -W clippy::all # cargo clippy --workspace --all-targets -- -W clippy::all -cargo clippy --workspace --all-targets +cargo clippy --workspace +cargo clippy --workspace --target=wasm32-unknown-unknown diff --git a/core/CHANGELOG.md b/core/CHANGELOG.md index 96064fa..df93f2b 100644 --- a/core/CHANGELOG.md +++ b/core/CHANGELOG.md @@ -1,5 +1,26 @@ # Changelog +# 0.3.0 + +- Rusty Kaspa 0.15.1 +- Add `Settings > ... > Local p2p Node .. > Public wRPC (Borsh)` to allow for external wRPC connections. +- A new priority fee estimation algorithm based on the network load (Send panel). +- Add support for legacy wallets created with [KDX](https://kdx.app) and Web Wallet at [https://wallet.kaspanet.io](https://wallet.kaspanet.io). +- The ability to choose from a list of available public nodes is no longer available (public nodes are load-balanced). +- Kaspa NG has been updated to EGUI 0.28.0, which includes various improvements and bug fixes. +- Display addresses in the transaction history panel. +- Transaction history elements are now clickable leading to the Kaspa Explorer. +- Add experimental `Passive Sync` mode that allows connecting to a public node while synchronizing the local node in the background. + +# 0.2.7 + +- Pagination in transaction history panel +- Resolve an issue with some transactions not being displayed in the correct sort order. +- Refactor public node connectivity (now using Rusty Kaspa public node resolver). +- Add `Settings > User Interface > Options > Disable Window Frame` options that allows the user to disable custom window frame. Custom window frame currently affects ability to resize KaspaNG window on the Windows operating system. + +NOTE: This release includes the underlying changes to the wRPC Borsh protocol that breaks compatibility with older versions of Kaspa nodes (all versions before `0.14.2`). This change is necessary to support future features and improvements. + # 0.2.6 - Fix an issue in WASM32 (browser) where after the wallet is loaded, even though the balance is displayed correctly, attempt to send a transaction would result in the "Insufficient funds" error. diff --git a/core/Cargo.toml b/core/Cargo.toml index 6d46f14..c332f45 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -38,6 +38,7 @@ kaspa-utils.workspace = true kaspa-wallet-core.workspace = true kaspa-wallet-keys.workspace = true kaspa-wrpc-client.workspace = true +kaspa-txscript.workspace = true workflow-core.workspace = true workflow-i18n.workspace = true @@ -92,7 +93,8 @@ eframe = { workspace = true, default-features = false, features = [ "glow", # Use the glow rendering backend. Alternative: "wgpu". "persistence", # Enable restoring app state when restarting the app. ] } -egui-phosphor = { workspace = true, features = ["thin","light","regular","bold"] } +egui-phosphor = { workspace = true, features = ["light"] } +# egui-phosphor = { workspace = true, features = ["thin","light","regular","bold"] } egui-notify.workspace = true [dependencies.web-sys] diff --git a/core/resources/Servers.toml b/core/resources/Servers.toml deleted file mode 100644 index 099c3c0..0000000 --- a/core/resources/Servers.toml +++ /dev/null @@ -1,63 +0,0 @@ - -[[server]] -name = "kaspa-ng.org" -location = "EU" -protocol = "borsh" -network = "mainnet" -address = "wss://eu-1.kaspa-ng.org/mainnet" - -[[server]] -name = "kaspa-ng.org" -location = "EU" -protocol = "borsh" -network = "testnet-10" -address = "wss://eu-1.kaspa-ng.org/testnet-10" - -[[server]] -name = "kaspa-ng.org" -location = "EU" -protocol = "borsh" -network = "testnet-11" -address = "wss://eu-1.kaspa-ng.org/testnet-11" - -[[server]] -name = "kaspa-ng.org" -location = "US" -protocol = "borsh" -network = "mainnet" -address = "wss://us-1.kaspa-ng.org/mainnet" - -[[server]] -name = "kaspa-ng.org" -location = "US" -protocol = "borsh" -network = "testnet-10" -address = "wss://us-1.kaspa-ng.org/testnet-10" - -[[server]] -name = "kaspa-ng.org" -location = "US" -protocol = "borsh" -network = "testnet-11" -address = "wss://us-1.kaspa-ng.org/testnet-11" - -[[server]] -name = "kaspa-ng.io" -location = "EU" -protocol = "borsh" -network = "mainnet" -address = "wss://eu-1.kaspa-ng.io:443/mainnet" - -[[server]] -name = "kaspa-ng.io" -location = "EU" -protocol = "borsh" -network = "testnet-10" -address = "wss://eu-1.kaspa-ng.io:443/testnet-10" - -[[server]] -name = "kaspa-ng.io" -location = "EU" -protocol = "borsh" -network = "testnet-11" -address = "wss://eu-1.kaspa-ng.io:443/testnet-11" diff --git a/core/resources/i18n/i18n.json b/core/resources/i18n/i18n.json index f46678d..0255108 100644 --- a/core/resources/i18n/i18n.json +++ b/core/resources/i18n/i18n.json @@ -7,19 +7,27 @@ }, "enabled": [ "ar", + "bn", + "bg", "de", "en", + "el", "es", "fa", - "he", + "fi", + "fr", "hi", "id", "ja", + "ka", "ko", "nl", "pl", + "pt", + "pt_BR", "ro", "ru", + "tr", "uk", "zh" ], @@ -40,13 +48,14 @@ "fil": "Filipino", "fr": "Français", "he": "עִברִית", - "hi": "हिंदी", + "hi": "हिन्दी", "hr": "Croatian", "hu": "Hungarian", "id": "Indonesian", "is": "Icelandic", "it": "Italiano", "ja": "日本語", + "ka": "Georgian", "ko": "한국어", "lt": "Lithuanian", "mn": "Mongolian", @@ -56,6 +65,7 @@ "pa": "Panjabi", "pl": "Polish", "pt": "Português", + "pt_BR": "Português (Brazil)", "ro": "Romanian", "ru": "Русский", "sk": "Slovak", @@ -74,808 +84,1568 @@ "translations": { "af": {}, "ar": { - "1 BPS test network": "شبكة اختبار 1 BPS", - "10 BPS test network": "شبكة اختبار 10 BPS", - "12 word mnemonic": "العبارة الذهنية المكونة من 12 كلمة", - "24 word mnemonic": "العبارة الذهنية المكونة من 24 كلمة", - "24h Change": "تغير 24 ساعة", - "A binary at another location is spawned a child process (experimental, for development purposes only).": "يتم تشغيل عملية فرعية لثنائي في موقع آخر (تجريبي، لأغراض التطوير فقط).", - "A random node will be selected on startup": "سيتم اختيار عقدة عشوائية عند البدء", - "A wallet is stored in a file on your computer.": "يتم تخزين المحفظة في ملف على جهاز الكمبيوتر الخاص بك.", - "Account Index": "فهرس الحساب", + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "شبكة اختبار 1 بلوك في الثانية", + "10 BPS test network": "شبكة اختبار 10 بلوكات في الثانية", + "12 word mnemonic": "12 كلمة سرية", + "24 word mnemonic": "24 كلمة سرية", + "24h Change": "التغيير خلال 24 ساعة", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "ملف ثنائي في موقع آخر يُشغَّل عملية فرعية (تجريبي، لأغراض التطوير فقط)", + "A random node will be selected on startup": "سيتم اختيار عقدة عشوائية عند بدء التشغيل", + "A wallet is stored in a file on your computer.": "يتم تخزين المحفظة في ملف على جهاز الكمبيوتر الخاص بك", + "Account Index": "Account Index", "Account Name": "اسم الحساب", - "Account:": "الحساب:", - "Activate custom daemon arguments": "تفعيل وسائط الخادم المخصصة", - "Active p2p Peers": "الأقران النشطين p2p", - "Address derivation scan": "فحص استنتاج العنوان", - "Address:": "العنوان:", + "Account not found": "Account not found", + "Account:": "الحساب", + "Activate custom daemon arguments": "تفعيل معلمات الخادم المخصصة", + "Active p2p Peers": "الأقران النشطة للاتصال بـ p2p", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "فحص اشتقاق العنوان", + "Address:": "العنوان", "Advanced": "متقدم", "All": "الكل", - "Allow custom arguments for the Rusty Kaspa daemon": "السماح بوسائط مخصصة لخادم Rusty Kaspa", - "Allows you to take screenshots from within the application": "يسمح لك بأخذ لقطات شاشة من داخل التطبيق", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "السماح بمعلمات مخصصة لخادم Rusty Kaspa", + "Allows you to take screenshots from within the application": "مسموج بلقطات شاشة من داخل التطبيق", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", "Apply": "تطبيق", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", "Balance: N/A": "الرصيد: غير متوفر", - "Bandwidth": "عرض النطاق", - "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "بسبب تركيزه على الأمان والأداء، تم تطوير هذا البرنامج بالكامل بلغة Rust، مما يتطلب وقتًا وجهدًا أكبر بشكل ملحوظ مقارنة بالبرمجيات الحديثة الأخرى المعتمدة على الويب.", - "Bezier Curves": "منحنيات بيزييه", - "Block DAG": "Block DAG", + "Bandwidth": "النطاق الترددي", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "بسبب التركيز على الأمان والأداء، تم تطوير هذا البرنامج بالكامل باستخدام لغة البرمجة Rust، مما يتطلب مزيدًا كبيرًا من الوقت والجهد مقارنة بالبرمجيات الحديثة التقليدية التي تعتمد على الويب.", + "Bezier Curves": "منحنيات بيزير", + "Block DAG": "الرسم البياني للكتل", "Block Scale": "مقياس الكتل", "Blocks": "الكتل", - "Bodies": "الأجسام", - "Borsh Active Connections": "الاتصالات النشطة لـ Borsh", - "Borsh Connection Attempts": "محاولات الاتصال لـ Borsh", - "Borsh Handshake Failures": "فشل مصافحة Borsh", + "Bodies": "الهياكل", + "Borsh Active Connections": "الاتصالات النشطة لبروتوكول Borsh", + "Borsh Connection Attempts": "محاولات الاتصال ببروتوكول Borsh", + "Borsh Handshake Failures": "فشل الاتصال ببروتوكول Borsh", "Build": "بناء", "CONNECTED": "متصل", - "CPU": "المعالج", - "Cache Memory Size": "حجم ذاكرة التخزين المؤقت", - "Cache Memory Size:": "حجم ذاكرة التخزين المؤقت:", + "CPU": "وحدة المعالجة المركزية", + "Cache Memory Size": "حجم الذاكرة المؤقتة", "Cancel": "إلغاء", "Cannot delete data folder while the node is running": "لا يمكن حذف مجلد البيانات أثناء تشغيل العقدة", - "Capture a screenshot": "التقاط لقطة شاشة", + "Capture a screenshot": "لقطة شاشة", + "Capture saved to {path}": "Capture saved to {path}", "Center VSPC": "مركز VSPC", "Chain Blocks": "كتل السلسلة", "Change Address": "تغيير العنوان", - "Check for Software Updates on GitHub": "التحقق من تحديثات البرنامج على GitHub", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "التحقق من تحديثات البرمجيات على GitHub", "Check for Updates": "التحقق من التحديثات", "Clear": "مسح", - "Click to try another server...": "انقر لتجربة خادم آخر...", - "Client RPC": "Client RPC", + "Click to try another server...": "انقر لمحاولة الاتصال بخادم آخر...", + "Client RPC": "عميل RPC", "Close": "إغلاق", - "Close the window": "إغلاق النافذة", + "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", "Confirm wallet password": "تأكيد كلمة مرور المحفظة", - "Connect to a local node (localhost)": "الاتصال بعقدة محلية (localhost)", - "Connecting to": "جار الاتصال بـ", + "Connecting to": "الاتصال بـ", "Connection": "الاتصال", "Connections": "الاتصالات", "Connects to a Remote Rusty Kaspa Node via wRPC.": "يتصل بعقدة Rusty Kaspa البعيدة عبر wRPC.", - "Conservative": "محافظ", - "Continue": "استمرار", - "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.": "المساهمات الموجهة نحو هذا المشروع تدعم بشكل مباشر برمجيات Kaspa NG ونظامها البيئي.", + "Conservative": "مُحافِظ", + "Continue": "متابعة", "Copied to clipboard": "تم النسخ إلى الحافظة", "Copy": "نسخ", "Copy logs to clipboard": "نسخ السجلات إلى الحافظة", - "Create New Account": "إنشاء حساب جديد", "Create New Wallet": "إنشاء محفظة جديدة", + "Create Wallet": "Create Wallet", "Create new wallet": "إنشاء محفظة جديدة", - "Creating Account": "جار إنشاء الحساب", - "Creating Wallet": "جار إنشاء المحفظة", + "Creating Account": "إنشاء حساب", + "Creating Wallet": "إنشاء محفظة", "Custom": "مخصص", "Custom Public Node": "عقدة عامة مخصصة", - "Custom arguments:": "وسائط مخصصة:", - "Custom data storage folder": "مجلد تخزين البيانات المخصص", - "DAA": "DAA", - "DAA Offset": "إزاحة DAA", - "DAA Range": "نطاق DAA", - "DB Blocks": "كتل DB", - "DB Headers": "رؤوس DB", - "Data Storage": "تخزين البيانات", + "Custom arguments:": "معاملات مخصصة:", + "Custom data storage folder": "Custom data storage folder", + "DAA": "تعديل الصعوبة الديناميكي", + "DAA Offset": "تعديل الإزاحة للصعوبة الديناميكية", + "DAA Range": "نطاق الصعوبة الديناميكية", + "DB Blocks": "كتل قاعدة البيانات", + "DB Headers": "رؤوس قاعدة البيانات", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", "Database Blocks": "كتل قاعدة البيانات", "Database Headers": "رؤوس قاعدة البيانات", - "Decrypting wallet, please wait...": "جار فك تشفير المحفظة، يرجى الانتظار...", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "فك تشفير المحفظة، يرجى الانتظار...", "Default": "افتراضي", "Default Account Name": "اسم الحساب الافتراضي", "Delete Data Folder": "حذف مجلد البيانات", - "Dependencies": "التبعيات", - "Derivation Indexes": "مؤشرات الاشتقاق", + "Dependencies": "الاعتماديات", + "Derivation Indexes": "Derivation Indexes", "Details": "التفاصيل", "Developer Mode": "وضع المطور", "Developer Resources": "موارد المطور", - "Developer mode enables advanced and experimental features": "وضع المطور يتيح الميزات المتقدمة والتجريبية", + "Developer mode enables advanced and experimental features": "يمكن لوضع المطور تمكين الميزات المتقدمة والتجريبية", "Difficulty": "الصعوبة", "Dimensions": "الأبعاد", - "Disable password score restrictions": "تعطيل قيود درجة كلمة المرور", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", "Disabled": "معطل", - "Disables node connectivity (Offline Mode).": "يعطل اتصال العقدة (وضع غير متصل).", - "Discord": "Discord", - "Donations": "التبرعات", + "Disables node connectivity (Offline Mode).": "تعطيل الاتصال بالعقدة (وضع عدم الاتصال).", + "Discord": "ديسكورد", + "Donations": "تبرعات", "Double click on the graph to re-center...": "انقر نقرًا مزدوجًا على الرسم البياني لإعادة التوسيط...", "ECDSA": "ECDSA", - "Enable Market Monitor": "تفعيل مراقب السوق", - "Enable UPnP": "تفعيل UPnP", - "Enable custom daemon arguments": "تفعيل وسائط الخادم المخصصة", - "Enable experimental features": "تفعيل الميزات التجريبية", - "Enable gRPC": "تفعيل gRPC", - "Enable optional BIP39 passphrase": "تفعيل عبارة مرور BIP39 الاختيارية", - "Enable screen capture": "تفعيل التقاط الشاشة", - "Enables features currently in development": "يفعل الميزات قيد التطوير حاليًا", - "Enter": "أدخل", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "تمكين مراقبة السوق", + "Enable UPnP": "تمكين UPnP", + "Enable custom daemon arguments": "تمكين معاملات الخادم المخصصة", + "Enable experimental features": "تمكين الميزات التجريبية", + "Enable gRPC": "تمكين gRPC", + "Enable optional BIP39 passphrase": "تمكين عبارة مرور BIP39 الاختيارية", + "Enable screen capture": "تمكين التقاط الشاشة", + "Enables features currently in development": "يمكن الميزات التي تم تطويرها حاليًا", + "Enter": "إدخال", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", "Enter account name (optional)": "أدخل اسم الحساب (اختياري)", + "Enter destination address": "Enter destination address", "Enter first account name": "أدخل اسم الحساب الأول", - "Enter phishing hint": "أدخل تلميح الاحتيال", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "أدخل تلميح للتصيد الاحتيالي", + "Enter priority fees": "Enter priority fees", "Enter the amount": "أدخل المبلغ", "Enter the password for your wallet": "أدخل كلمة المرور لمحفظتك", "Enter the password to unlock your wallet": "أدخل كلمة المرور لفتح محفظتك", "Enter wallet name": "أدخل اسم المحفظة", "Enter wallet password": "أدخل كلمة مرور المحفظة", "Enter your wallet secret": "أدخل سر محفظتك", - "Explorer": "المستكشف", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "مستكشف", "Export Wallet Data": "تصدير بيانات المحفظة", + "FIRST": "FIRST", "Faucet": "صنبور", - "File Handles": "مقابض الملف", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "مقابض الملفات", + "File contents": "File contents", "Filename:": "اسم الملف:", "Final Amount:": "المبلغ النهائي:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", "GitHub Release": "إصدار GitHub", - "Go to Settings": "اذهب إلى الإعدادات", - "Handles": "المقابض", - "Headers": "الرؤوس", - "IBD:": "IBD:", - "If not specified, the account will be represented by the numeric id.": "إذا لم يتم تحديده، سيتم تمثيل الحساب بالمعرف الرقمي.", - "If you are running locally, use: ": "إذا كنت تشغله محليًا، استخدم: ", - "Import existing": "استيراد موجود", - "Inbound": "وارد", - "Include QoS Priority Fees": "تضمين رسوم الأولوية لـ QoS", - "Integrated Daemon": "الخادم المدمج", - "Invalid daemon arguments": "وسائط الخادم غير صالحة", - "Invalid network type - expected: testnet-10 connected to: testnet-11": "نوع الشبكة غير صالح - المتوقع: testnet-10 متصل بـ: testnet-11", - "Invalid wRPC URL": "عنوان wRPC غير صالح", - "Json Active Connections": "الاتصالات النشطة Json", - "Json Connection Attempts": "محاولات الاتصال Json", - "Json Handshake Failures": "فشل مصافحة Json", - "Kaspa Discord": "Kaspa Discord", - "Kaspa Integration Guide": "دليل تكامل Kaspa", - "Kaspa NG": "Kaspa NG", - "Kaspa NG Online": "Kaspa NG على الإنترنت", - "Kaspa NG Web App": "تطبيق ويب Kaspa NG", - "Kaspa NG on GitHub": "Kaspa NG على GitHub", - "Kaspa NG online": "Kaspa NG على الإنترنت", - "Kaspa Network": "شبكة Kaspa", - "Kaspa Node": "عقدة Kaspa", - "Kaspa p2p Network & Node Connection": "شبكة Kaspa p2p واتصال العقدة", - "Kaspa p2p Node": "عقدة Kaspa p2p", - "Kaspa p2p Node & Connection": "عقدة Kaspa p2p والاتصال", - "Key Perf.": "أداء رئيسي.", - "Language:": "اللغة:", + "Go to Settings": "الذهاب للإعدادات", + "Good": "Good", + "Handles": "مقابض", + "Headers": "رؤوس", + "High": "High", + "IBD:": "تحميل الكتل الأولية IBD", + "If not specified, the account will be represented by the numeric id.": "إذا لم يتم تحديد ذلك، سيتم تمثيل الحساب بواسطة معرف رقمي.", + "If you are running locally, use: ": "إذا كنت تقوم بتشغيله محليًا، استخدم:", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "استيراد الموجود", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "الوارد", + "Integrated Daemon": "Integrated Daemon", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "وسيط البرنامج غير صالح", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "عنوان URL غير صالح لـ wRPC", + "Json Active Connections": "الاتصالات النشطة بتنسيق Json", + "Json Connection Attempts": "محاولات الاتصال بتنسيق Json", + "Json Handshake Failures": "فشل الاتصال بتنسيق Json", + "Kaspa Discord": "كاسبا ديسكورد", + "Kaspa Integration Guide": "دليل تكامل كاسبا", + "Kaspa NG": "كاسبا NG", + "Kaspa NG on GitHub": "كاسبا NG على GitHub", + "Kaspa NG online": "كاسبا NG متصل", + "Kaspa Network": "شبكة كاسبا", + "Kaspa Node": "عقدة كاسبا", + "Kaspa p2p Network & Node Connection": "شبكة كاسبا p2p واتصال العقدة", + "Kaspa p2p Node": "عقدة كاسبا p2p", + "Kaspa p2p Node & Connection": "عقدة كاسبا p2p واتصال", + "Key Perf.": "الأداء الرئيسي", + "LAST": "LAST", + "Language:": "اللغة", "Large (1 BPS)": "كبير (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", "Levels": "المستويات", "License Information": "معلومات الترخيص", "Local": "محلي", - "Local p2p Node Configuration": "تكوين عقدة p2p محلية", + "Local p2p Node Configuration": "تكوين العقدة المحلية p2p", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", "Logs": "السجلات", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", "MT": "MT", - "Main Kaspa network": "الشبكة الرئيسية Kaspa", + "Main Kaspa network": "الشبكة الرئيسية لكاسبا", "Mainnet": "الشبكة الرئيسية", - "Mainnet (Main Kaspa network)": "الشبكة الرئيسية (شبكة Kaspa الرئيسية)", - "Managed by the Rusty Kaspa daemon": "تدار بواسطة خادم Rusty Kaspa", + "Managed by the Rusty Kaspa daemon": "Managed by the Rusty Kaspa daemon", "Market": "السوق", "Market Cap": "القيمة السوقية", "Market Monitor": "مراقب السوق", - "Mass Processed": "الكتلة المعالجة", - "Medium Narrow": "متوسط ضيق", - "Medium Wide": "متوسط واسع", + "Mass Processed": "معالجة الكتلة", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Medium Narrow", + "Medium Wide": "Medium Wide", "Memory": "الذاكرة", - "Mempool": "Mempool", - "Mempool Size": "حجم Mempool", - "Metrics": "المقاييس", - "Metrics are not currently available": "المقاييس غير متوفرة حالياً", + "Mempool": "حوض المعاملات", + "Mempool Size": "حجم حوض المعاملات", + "Metrics": "مقاييس", + "Metrics are not currently available": "لا تتوفر مقاييس حاليًا", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", "NPM Modules for NodeJS": "وحدات NPM لـ NodeJS", "Network": "الشبكة", "Network Difficulty": "صعوبة الشبكة", - "Network Fees:": "رسوم الشبكة:", + "Network Fee Estimator": "Network Fee Estimator", "Network Interface": "واجهة الشبكة", "Network Peers": "أقران الشبكة", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", "No peers": "لا يوجد أقران", - "No public node selected - please select a public node": "لم يتم اختيار عقدة عامة - يرجى اختيار عقدة عامة", + "No public node selected - please select a public node": "لم يتم اختيار عقدة عامة - يرجى تحديد عقدة عامة", "No transactions": "لا توجد معاملات", "No wallets found, please create a new wallet": "لم يتم العثور على محافظ، يرجى إنشاء محفظة جديدة", "Node": "العقدة", "Node Status": "حالة العقدة", - "Noise": "الضجيج", + "Noise": "الضوضاء", "None": "لا شيء", + "Normal": "Normal", "Not Connected": "غير متصل", "Not connected": "غير متصل", "Notifications": "الإشعارات", "Open Data Folder": "فتح مجلد البيانات", - "Opening wallet:": "جار فتح المحفظة:", + "Opening wallet:": "فتح المحفظة:", "Optional": "اختياري", + "Options": "Options", "Other operations": "عمليات أخرى", - "Outbound": "صادر", + "Outbound": "الصادرة", "Overview": "نظرة عامة", - "Parents": "الوالدين", - "Past Median Time": "الوقت الأوسط الماضي", - "Payment & Recovery Password": "كلمة المرور للدفع والاسترداد", + "PREV": "PREV", + "Parents": "الآباء", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "الوقت الوسيط السابق", + "Payment & Recovery Password": "كلمة المرور للدفع والاستعادة", "Payment Request": "طلب الدفع", + "Payment request to account: {account}": "Payment request to account: {account}", "Peers": "الأقران", + "Pending: {amount}": "Pending: {amount}", "Performance": "الأداء", - "Phishing Hint": "تلميح ضد الاحتيال", - "Ping:": "بينغ:", - "Please Confirm Deletion": "يرجى تأكيد الحذف", - "Please configure your Kaspa NG settings": "يرجى تكوين إعدادات Kaspa NG الخاصة بك", - "Please connect to Kaspa p2p node": "يرجى الاتصال بعقدة Kaspa p2p", - "Please create a stronger password": "يرجى إنشاء كلمة مرور أقوى", - "Please enter": "يرجى الإدخال", - "Please enter KAS amount to send": "يرجى إدخال مبلغ KAS للإرسال", - "Please enter an amount": "يرجى إدخال المبلغ", - "Please enter the account name": "يرجى إدخال اسم الحساب", - "Please enter the wallet secret": "يرجى إدخال سر المحفظة", - "Please note that this is a beta release. Until this message is removed, please avoid using the wallet with mainnet funds.": "يرجى ملاحظة أن هذا إصدار أولي. حتى يتم إزالة هذه الرسالة، يرجى تجنب استخدام المحفظة بأموال الشبكة الرئيسية.", - "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "يرجى ملاحظة، أن النسخ إلى الحافظة يحمل خطر تعريض العبارة الذهنية للبرمجيات الخبيثة.", - "Please select an account type": "يرجى اختيار نوع الحساب", - "Please select the private key to export": "يرجى اختيار المفتاح الخاص للتصدير", - "Please set node to 'Disabled' to delete the data folder": "يرجى ضبط العقدة على 'معطل' لحذف مجلد البيانات", - "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "يرجى تحديد اسم الحساب الافتراضي. سيتم إنشاء المحفظة بحساب افتراضي. بمجرد إنشائها، ستتمكن من إنشاء حسابات إضافية حسب الحاجة.", - "Please specify the name of the new wallet": "يرجى تحديد اسم المحفظة الجديدة", - "Please specify the private key type for the new wallet": "يرجى تحديد نوع المفتاح الخاص للمحفظة الجديدة", - "Please wait for the node to sync or connect to a remote node.": "يرجى الانتظار حتى يتم مزامنة العقدة أو الاتصال بعقدة بعيدة.", - "Please wait for the node to sync...": "يرجى الانتظار حتى تتم مزامنة العقدة...", - "Please wait...": "يرجى الانتظار...", + "Phishing Hint": "تلميح الاحتيال", + "Ping:": "Ping:", + "Please Confirm Deletion": "الرجاء تأكيد الحذف", + "Please configure your Kaspa NG settings": "الرجاء تكوين إعدادات كاسبا NG الخاصة بك", + "Please connect to Kaspa p2p node": "الرجاء الاتصال بعقدة كاسبا p2p", + "Please create a stronger password": "الرجاء إنشاء كلمة مرور أقوى", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "الرجاء إدخال مبلغ", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "الرجاء إدخال اسم الحساب", + "Please enter the wallet secret": "الرجاء إدخال كلمة سر المحفظة", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "الرجاء ملاحظة أن نسخ المفتاح إلى الحافظة يحمل مخاطر كشف مفتاح الذاكرة إلى البرمجيات الخبيثة.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "الرجاء تحديد نوع الحساب", + "Please select export type": "Please select export type", + "Please select the private key to export": "الرجاء تحديد المفتاح الخاص الذي يتم تصديره", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "الرجاء تعيين العقدة على 'تعطيل' لحذف مجلد البيانات", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "الرجاء تحديد اسم الحساب الافتراضي. سيتم إنشاء المحفظة مع حساب افتراضي. بمجرد الإنشاء، ستتمكن من إنشاء حسابات إضافية حسب الحاجة.", + "Please specify the name of the new wallet": "الرجاء تحديد اسم المحفظة الجديدة", + "Please specify the private key type for the new wallet": "الرجاء تحديد نوع المفتاح الخاص للمحفظة الجديدة", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "الرجاء الانتظار حتى يتم مزامنة العقدة أو الاتصال بعقدة بعيدة.", + "Please wait for the node to sync...": "الرجاء الانتظار حتى يتم مزامنة العقدة...", + "Please wait...": "الرجاء الانتظار...", "Presets": "الإعدادات المسبقة", "Price": "السعر", - "Private Key Mnemonic": "العبارة الذهنية للمفتاح الخاص", - "Processed Bodies": "الأجسام المعالجة", - "Processed Dependencies": "التبعيات المعالجة", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "مفتاح سري خاص", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "الجسم المعالج", + "Processed Dependencies": "الاعتماديات المعالجة", "Processed Headers": "الرؤوس المعالجة", "Processed Mass Counts": "عدد الكتل المعالجة", "Processed Transactions": "المعاملات المعالجة", + "Processing...": "Processing...", "Protocol:": "البروتوكول:", - "Public Node": "العقدة العامة", - "Public Nodes": "العقد العامة", - "Public Server": "الخادم العام", - "Public p2p Nodes for": "عقد p2p العامة لـ", + "Public Node": "عقدة عامة", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", "Random Public Node": "عقدة عامة عشوائية", - "Range:": "النطاق:", + "Range:": "نطاق:", "Receive Address": "عنوان الاستلام", - "Recommended arguments for the remote node: ": "الوسائط الموصى بها للعقدة البعيدة: ", - "Redistributables": "قابلة لإعادة التوزيع", + "Recommended arguments for the remote node: ": "الوسائط الموصى بها للعقدة البعيدة:", + "Redistributables": "Redistributables", "Remote": "بعيد", - "Remote Connection:": "الاتصال البعيد:", - "Remote p2p Node Configuration": "تكوين عقدة p2p بعيدة", - "Removes security restrictions, allows for single-letter passwords": "يزيل قيود الأمان، يسمح بكلمات مرور من حرف واحد", - "Reset Settings": "إعادة تعيين الإعدادات", - "Reset VSPC": "إعادة تعيين VSPC", - "Resident Memory": "الذاكرة المقيمة", + "Remote Connection:": "اتصال بعيد:", + "Remote p2p Node Configuration": "تكوين عقدة p2p البعيدة", + "Removes security restrictions, allows for single-letter passwords": "ازالة القيود الأمنية، يسمح بكلمات المرور من حرف واحد", + "Reset Settings": "إعادة ضبط الإعدادات", + "Reset VSPC": "إعادة ضبط VSPC", + "Resident Memory": "الذاكرة الدائمة", "Resources": "الموارد", - "Resulting daemon arguments:": "الوسائط الناتجة للخادم:", - "Rust Wallet SDK": "Rust Wallet SDK", - "Rusty Kaspa on GitHub": "Rusty Kaspa على GitHub", - "Secret is too weak": "السر ضعيف للغاية", - "Secret score:": "درجة السرية:", - "Select Account": "اختر حساب", - "Select Available Server": "اختر الخادم المتاح", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Resulting daemon arguments:", + "Rust Wallet SDK": "مجموعة أدوات تطوير المحفظة بلغة Rust", + "Rusty Kaspa on GitHub": "كاسبا Rusty على GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "كلمة السر ضيفة جداً", + "Secret score:": "تقييم كلمة السر", + "Select Account": "اختر الحساب", "Select Private Key Type": "اختر نوع المفتاح الخاص", "Select Public Node": "اختر العقدة العامة", "Select Wallet": "اختر المحفظة", "Select a wallet to unlock": "اختر محفظة لفتحها", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", "Send": "إرسال", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", "Services": "الخدمات", "Settings": "الإعدادات", - "Show DAA": "عرض DAA", - "Show Grid": "عرض الشبكة", + "Show DAA": "عرض خوارزمية التكيف مع الصعوبة", + "Show Grid": "عرض شبكي", "Show VSPC": "عرض VSPC", - "Show balances in alternate currencies for testnet coins": "عرض الرصيد بعملات بديلة لعملات شبكة الاختبار", + "Show balances in alternate currencies for testnet coins": "عرض الأرصدة بالعملات البديلة لعملات الشبكة التجريبية", + "Show passphrase": "Show passphrase", "Show password": "عرض كلمة المرور", - "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "يعرض الأرصدة بعملات بديلة (BTC, USD) عند استخدام عملات الشبكة التجريبية كما لو كنت في الشبكة الرئيسية", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "إعرض الأرصدة بالعملات البديلة (BTC، USD) عند استخدام عملات الشبكة التجريبية كما لو كنت على الشبكة الرئيسية", "Skip": "تخطي", "Small (10 BPS)": "صغير (10 BPS)", - "Spread": "الانتشار", + "Spread": "توزيع", "Stage": "المرحلة", - "Starting...": "جار البدء...", + "Starting...": "جاري البدء...", "Statistics": "الإحصائيات", - "Stor Read": "قراءة التخزين", - "Stor Write": "كتابة التخزين", + "Stop": "Stop", + "Stor Read": "قراءة Stor", + "Stor Write": "كتابة Stor", "Storage": "التخزين", "Storage Read": "قراءة التخزين", - "Storage Read/s": "قراءة التخزين/ثانية", + "Storage Read/s": "قراءة التخزين/ث", + "Storage Size": "Storage Size", "Storage Write": "كتابة التخزين", - "Storage Write/s": "كتابة التخزين/ثانية", + "Storage Write/s": "كتابة التخزين/ث", + "Strong": "Strong", "Submitted Blocks": "الكتل المقدمة", - "Supporting Kaspa NG development": "دعم تطوير Kaspa NG", "Syncing Cryptographic Proof...": "مزامنة البرهان التشفيري...", "Syncing DAG Blocks...": "مزامنة كتل DAG...", "Syncing Headers...": "مزامنة الرؤوس...", - "Syncing UTXO entries...": "مزامنة إدخالات UTXO...", - "Syncing...": "جار المزامنة...", + "Syncing UTXO entries...": "مزامنة مدخلات UTXO...", + "Syncing...": "جاري المزامنة...", "System": "النظام", - "TPS": "المعاملات في الثانية", - "Testnet 10": "شبكة اختبار 10", - "Testnet 10 (1 BPS)": "شبكة اختبار 10 (1 BPS)", - "Testnet 11": "شبكة اختبار 11", - "Testnet 11 (10 BPS)": "شبكة اختبار 11 (10 BPS)", - "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.": "شبكة الاختبار 11 لم تُفعل بعد للاختبار العام. يمكنك، مع ذلك، تكوين العقدة للاتصال بشبكة الاختبار الخاصة بالمطورين من خلال لوحة الإعدادات.", - "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "يمثل برنامج Kaspa NG جهدًا مستمرًا يركز على بناء منصة برمجيات حديثة مخصصة لشبكة العملة المشفرة Kaspa BlockDAG. يعطي هذا البرنامج الأولوية للأمان والخصوصية والأداء واللامركزية، وهو أيديولوجي في جوهره.", - "The balance may be out of date during node sync": "قد يكون الرصيد غير محدث أثناء مزامنة العقدة", - "The following will guide you through the process of creating or importing a wallet.": "سيوجهك ما يلي خلال عملية إنشاء أو استيراد محفظة.", - "The node is currently syncing with the Kaspa p2p network.": "العقدة تتزامن حاليًا مع شبكة Kaspa p2p.", - "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "العقدة تتزامن حاليًا مع شبكة Kaspa p2p. قد يكون رصيد الحساب غير محدث.", - "The node is spawned as a child daemon process (recommended).": "تم إنشاء العقدة كعملية خادم فرعية (موصى به).", - "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "تعمل العقدة كجزء من عملية تطبيق Kaspa-NG. هذا يقلل من النفقات العامة للتواصل (تجريبي).", - "Theme Color": "لون الثيم", - "Theme Color:": "لون الثيم:", - "Theme Style": "أسلوب الثيم", - "Theme Style:": "أسلوب الثيم:", - "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "لن تطلب منك هذه المحفظة عبارتك الذهنية إلا إذا بدأت يدويًا في استعادة المفتاح الخاص.", - "Threshold": "العتبة", - "Time Offset:": "الفارق الزمني:", - "Tip Hashes": "هاشات القمة", - "Tools ⏷": "أدوات ⏷", - "Total Rx": "إجمالي الاستقبال", - "Total Rx/s": "إجمالي الاستقبال/ثانية", - "Total Tx": "إجمالي الإرسال", - "Total Tx/s": "إجمالي الإرسال/ثانية", - "Track in the background": "التتبع في الخلفية", + "TPS": "العمليات في الثانية", + "Testnet 10": "الشبكة التجريبية 10", + "Testnet 11": "الشبكة التجريبية 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "يمثل برنامج كاسبا NG جهودًا مستمرة تركز على بناء منصة برمجية متطورة مخصصة لشبكة العملات الرقمية كاسبا BlockDAG. في جوهرها، هذا البرنامج يعطي الأولوية للأمان والخصوصية والأداء واللامركزية.", + "The balance may be out of date during node sync": "قد تكون الأرصدة غير محدثة أثناء مزامنة العقدة", + "The following will guide you through the process of creating or importing a wallet.": "التالي سيوجّهك خلال عملية إنشاء أو استيراد محفظة.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "العقدة تقوم حاليًا بالمزامنة مع شبكة كاسبا p2p.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "العقدة تقوم حاليًا بالمزامنة مع شبكة كاسبا p2p. قد تكون الأرصدة غير محدثة.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "العقدة تعمل كجزء من عملية تطبيق كاسبا-NG. هذا يقلل من العبء التواصلي (تجريبي).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "لون السمة", + "Theme Color:": "لون السمة:", + "Theme Style": "نمط السمة", + "Theme Style:": "نمط السمة:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "لن تطلب هذه المحفظة منك أبدًا هذه العبارة السرية إلا إذا قمت ببدء استعادة المفتاح الخاص يدويًا.", + "Threshold": "الحد الأدنى", + "Time Offset:": "الانحراف الزمني:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "تلميح التجزئة", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "تتبع في الخلفية", "Transactions": "المعاملات", "Transactions:": "المعاملات:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", "Type": "النوع", + "URI copied to clipboard": "URI copied to clipboard", "UTXO Manager": "مدير UTXO", "UTXOs": "UTXOs", "UTXOs:": "UTXOs:", - "Unable to change node settings until the problem is resolved": "لا يمكن تغيير إعدادات العقدة حتى يتم حل المشكلة", - "Unlock": "فتح القفل", - "Unlock Wallet": "فتح قفل المحفظة", - "Unlocking": "جار فتح القفل", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "تعذّر تغيير إعدادات العقدة حتى يتم حل المشكلة", + "Unable to store settings": "Unable to store settings", + "Unlock": "فتح", + "Unlock Wallet": "فتح المحفظة", + "Unlocking": "جاري الفتح", "Update Available to version": "التحديث متاح للإصدار", - "Updating...": "جار التحديث...", + "Updating...": "جاري التحديث...", "Uptime:": "زمن التشغيل:", - "Use 50%-75% of available system memory": "استخدم 50%-75% من ذاكرة النظام المتاحة", - "Use all available system memory": "استخدم كل ذاكرة النظام المتاحة", + "Use 50%-75% of available system memory": "Use 50%-75% of available system memory", + "Use all available system memory": "استخدام كل ذاكرة النظام المتاحة", "User Agent": "وكيل المستخدم", "User Interface": "واجهة المستخدم", - "Very dangerous (may be cracked within few seconds)": "خطير جدًا (قد يتم اختراقه خلال بضع ثوان)", - "Virt Parents": "الوالدين الافتراضيين", - "Virtual DAA Score": "درجة DAA الافتراضية", - "Virtual Memory": "الذاكرة الافتراضية", - "Virtual Parent Hashes": "هاشات الوالدين الافتراضيين", + "Very dangerous (may be cracked within few seconds)": "خطير للغاية (قد يتم اختراقه في ثواني قليلة)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "الآباء الافتراضيون", + "Virtual DAA Score": "تيجة DAA الافتراضية", + "Virtual Memory": "الذاكرة الظاهرية", + "Virtual Parent Hashes": "Virtual Parent Hashes", "Volume": "الحجم", - "WASM SDK for JavaScript and TypeScript": "WASM SDK لـ JavaScript و TypeScript", + "WASM SDK for JavaScript and TypeScript": "مجموعة أدوات تطوير WASM لـ JavaScript و TypeScript", "Wallet": "المحفظة", "Wallet Created": "تم إنشاء المحفظة", "Wallet Encryption Password": "كلمة مرور تشفير المحفظة", + "Wallet File Secret": "Wallet File Secret", "Wallet Name": "اسم المحفظة", - "Wallet Secret": "سر المحفظة", - "Wallet password is used to encrypt your wallet data.": "تُستخدم كلمة مرور المحفظة لتشفير بيانات محفظتك.", + "Wallet Secret": "كلمة سر المحفظة", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "كلمة مرور المحفظة تُستخدم لتشفير بيانات المحفظة.", + "Wallet with this name already exists": "Wallet with this name already exists", "Wallet:": "المحفظة:", - "We greatly appreciate your help in backing our efforts.": "نقدر كثيرًا مساعدتك في دعم جهودنا.", - "Welcome to Kaspa NG": "مرحبًا بك في Kaspa NG", - "Xpub Keys": "مفاتيح Xpub", - "You are currently not connected to the Kaspa node.": "أنت حاليًا غير متصل بعقدة Kaspa.", - "You can configure remote connection in Settings": "يمكنك تكوين اتصال بعيد في الإعدادات", - "You can create multiple wallets, but only one wallet can be open at a time.": "يمكنك إنشاء محافظ متعددة، لكن يمكن فتح محفظة واحدة فقط في وقت واحد.", - "You must be connected to a node...": "يجب أن تكون متصلًا بعقدة...", - "Your default wallet private key mnemonic is:": "العبارة الذهنية لمفتاح محفظتك الافتراضية الخاص هي:", - "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "تتيح لك العبارة الذهنية إعادة إنشاء مفتاحك الخاص. الشخص الذي لديه الوصول إلى هذه العبارة الذهنية سيكون لديه السيطرة الكاملة على Kaspa المخزنة فيها. احفظ عبارتك الذهنية بأمان. اكتبها واحفظها في مكان آمن، يفضل أن يكون مقاومًا للحريق. لا تخزن عبارتك الذهنية على هذا الكمبيوتر أو جهاز محمول. لن تطلب منك هذه المحفظة عبارتك الذهنية إلا إذا بدأت يدويًا في استعادة المفتاح الخاص.", - "Your private key mnemonic is:": "العبارة الذهنية لمفتاحك الخاص هي:", + "We greatly appreciate your help in backing our efforts.": "نحن نقدر تقديرًا كبيرًا مساعدتك في دعم جهودنا.", + "Weak": "Weak", + "Welcome to Kaspa NG": "مرحبًا بك في كاسبا NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "انت غير متصل بعقدة كاسبا.", + "You can configure remote connection in Settings": "يمكنك تكوين الاتصال عن بُعد في الإعدادات", + "You can create multiple wallets, but only one wallet can be open at a time.": "يمكنك إنشاء محافظ متعددة، ولكن يمكن فتح محفظة واحدة فقط في نفس الوقت.", + "You must be connected to a node...": "يجب أن تكون متصلاً بعقدة...", + "Your default wallet private key mnemonic is:": "العبارة السرية الخاصة بمفتاح محفظتك الافتراضي هي:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "العبارة السرية لمفتاحك الخاص هي:", "Your wallet has been created and is ready to use.": "تم إنشاء محفظتك وهي جاهزة للاستخدام.", - "Zoom": "تكبير", - "amount to send": "المبلغ للإرسال", - "bye!": "وداعًا!", - "gRPC Network Interface & Port": "واجهة شبكة gRPC والمنفذ", - "gRPC Rx": "استقبال gRPC", - "gRPC Rx/s": "gRPC استقبال/ثانية", - "gRPC Tx": "gRPC إرسال", - "gRPC Tx/s": "gRPC إرسال/ثانية", + "Zoom": "التكبير", + "bye!": "وداعاً!", + "gRPC Network Interface & Port": "واجهة ومنفذ شبكة gRPC", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", "of": "من", "p2p RPC": "p2p RPC", - "p2p Rx": "p2p استقبال", - "p2p Rx/s": "p2p استقبال/ثانية", - "p2p Tx": "p2p إرسال", - "p2p Tx/s": "p2p إرسال/ثانية", - "peer": "نظير", - "peers": "أقران", - "wRPC Borsh Rx": "wRPC Borsh استقبال", - "wRPC Borsh Rx/s": "wRPC Borsh استقبال/ثانية", - "wRPC Borsh Tx": "wRPC Borsh إرسال", - "wRPC Borsh Tx/s": "wRPC Borsh إرسال/ثانية", - "wRPC Connection Settings": "إعدادات اتصال wRPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "قرين", + "peers": "الأقران", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "إعدادات إتصال wRPC", "wRPC Encoding:": "ترميز wRPC:", - "wRPC JSON Rx": "wRPC JSON استقبال", - "wRPC JSON Rx/s": "wRPC JSON استقبال/ثانية", - "wRPC JSON Tx": "wRPC JSON إرسال", - "wRPC JSON Tx/s": "wRPC JSON إرسال/ثانية", - "wRPC URL:": "wRPC العنوان:" + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "عنوان wRPC:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" }, - "bg": {}, - "bn": {}, - "cs": {}, - "da": {}, - "de": { - "1 BPS test network": "1 BPS Testnetz", - "10 BPS test network": "10 BPS test network", - "12 word mnemonic": "12-Wort Merktext", - "24 word mnemonic": "24-Wort Merkspruch", - "24h Change": "24h Marktpreisänderung", - "A binary at another location is spawned a child process (experimental, for development purposes only).": "Ein Programm an einer anderen Lokation hat einen Kind-Prozess gestartet (experimentell, nur für Entwickler).", - "A random node will be selected on startup": "Beim Start wird ein zufälliger Knoten ausgewählt", - "A wallet is stored in a file on your computer.": "Das Wallet wird in einer Datei auf Ihrem Computer abgespeichert.", - "Account Index": "Kontoindex", - "Account Name": "Kontoname", - "Account:": "Konto:", - "Activate custom daemon arguments": "Erweiterte Dienst-Argumente aktivieren", - "Active p2p Peers": "Aktive p2p-Verbindungen", - "Address derivation scan": "Abgeleitete Adressen suchen", - "Address:": "Adresse:", - "Advanced": "Erweitert", - "All": "Alle", - "Allow custom arguments for the Rusty Kaspa daemon": "Erlaube zusätzliche Argumente für den Rusty Kaspa Dienst", - "Allows you to take screenshots from within the application": "Ermöglicht es, innerhalb der Applikation Bildschirmfotos anzufertigen", - "Apply": "Anwenden", - "Balance: N/A": "Kontostand: N/A", - "Bandwidth": "Bandbreite", - "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Durch den Fokus auf Sicherheit und Leistung, wurde diese Software vollständig in Rust entwickelt, was einen signifikant höheren Einsatz und Zeitaufwand gegenüber herkömmlicher, Web-basierter Software bedeutet.", - "Bezier Curves": "Bezier-Kurven", + "bg": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS тестова мрежа", + "10 BPS test network": "10 BPS тестова мрежа", + "12 word mnemonic": "Мнемонична фраза от 12 думи", + "24 word mnemonic": "Мнемонична фраза от 24 думи", + "24h Change": "24 ч. промяна", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "Бинарен файл на друго място се стартира като дъщерен процес (експериментално, само за разработка).", + "A random node will be selected on startup": "Ще бъде избран нод на случаен принцип при стартиране", + "A wallet is stored in a file on your computer.": "Портфейлът се съхранява във файл на вашия компютър.", + "Account Index": "Account Index", + "Account Name": "Име на акаунта", + "Account not found": "Account not found", + "Account:": "Акаунт:", + "Activate custom daemon arguments": "Активиране на персонализирани аргументи на daemon", + "Active p2p Peers": "Активни p2p връзки", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Сканиране за извличане на адреси", + "Address:": "Адрес:", + "Advanced": "Разширени", + "All": "Всички", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Позволете персонализирани аргументи на Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Позволява ви да правите снимки на екрана от самото приложение", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Приложи", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Баланс: недостъпен", + "Bandwidth": "Bandwidth", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Поради фокуса си към сигурността и производителността, този софтуер е напълно разработен на Rust и изисква значително повече време и усилия в сравнение с други традиционни съвременни уеб-базирани софтуери.", + "Bezier Curves": "Криви на Безие", "Block DAG": "Block DAG", - "Block Scale": "Block-Skalierung", - "Blocks": "Blöcke", - "Bodies": "Inhalt", - "Borsh Active Connections": "Aktive Borsh-Verbindungen", - "Borsh Connection Attempts": "Borsh Verbindungsversuche", - "Borsh Handshake Failures": "Borsh Handshake-Fehler", - "Build": "Bauen", - "CONNECTED": "VERBUNDEN", + "Block Scale": "Мащаб на блока", + "Blocks": "Блокове", + "Bodies": "Тела", + "Borsh Active Connections": "Borsh активни връзки", + "Borsh Connection Attempts": "Borsh опити за връзка", + "Borsh Handshake Failures": "Borsh грешка при ръкостискането", + "Build": "Версия", + "CONNECTED": "СВЪРЗАН", "CPU": "CPU", - "Cache Memory Size": "Grösse Zwischenspeicher", - "Cache Memory Size:": "Grösse des Cache-Speichers:", - "Cancel": "Abbrechen", - "Cannot delete data folder while the node is running": "Datenverzeichnis kann nicht gelöscht werden, solange der Knoten läuft", - "Capture a screenshot": "Bildschirmfoto anlegen", - "Center VSPC": "Zentriere VSPC", - "Chain Blocks": "Blockkette", - "Change Address": "Adresse wechseln", - "Check for Software Updates on GitHub": "GitHub auf Updates überprüfen", - "Check for Updates": "Auf Aktualisierungen prüfen", - "Clear": "Löschen", - "Click to try another server...": "Versuche anderen Server...", - "Client RPC": "Client RPC", - "Close": "Schliessen", - "Confirm wallet password": "Wallet-Passwort bestätigen", - "Connect to a local node (localhost)": "Zu einem lokalen Knoten (localhost) verbinden", - "Connecting to": "Verbinde zu", - "Connection": "Verbindung", - "Connections": "Verbindungen", - "Connects to a Remote Rusty Kaspa Node via wRPC.": "Verbindet zu einem entfernten Rusty Kaspa Knoten via wRPC.", - "Conservative": "Zurückhaltend", - "Continue": "Weiter", - "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.": "Spenden an das Projekt fliessen direkt in die Weiterentwicklung von Kaspa NG sowie dessen Ökosystem.", - "Copied to clipboard": "In die Zwischenablage kopiert", - "Copy": "Kopieren", - "Copy logs to clipboard": "Logs in die Zwischenablage kopieren", - "Create New Account": "Neues Konto anlegen", - "Create New Wallet": "Neues Wallet anlegen", - "Create new wallet": "Neues Wallet anlegen", - "Creating Account": "Lege Konto an", - "Creating Wallet": "Lege Wallet an", - "Custom": "Individuell", - "Custom Public Node": "Individueller öffentlicher Knoten", - "Custom arguments:": "Zusätzliche Argumente:", + "Cache Memory Size": "Размер на кеш паметта", + "Cancel": "Отказ", + "Cannot delete data folder while the node is running": "Не може да се изтрие папката с данни, докато нода работи.", + "Capture a screenshot": "Заснемане на екрана", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Центрирай VSPC", + "Chain Blocks": "Верижни блокове", + "Change Address": "Адрес за ресто", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Проверка за софтуерни актуализации в GitHub", + "Check for Updates": "Проверка за обновления", + "Clear": "Изчисти", + "Click to try another server...": "Натисни, за да опиташ с друг сървър...", + "Client RPC": "Клиент RPC", + "Close": "Затвори", + "Close the window": "Затвори прозореца", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Потвърди паролата на портфейла", + "Connecting to": "Свързване с", + "Connection": "Връзка", + "Connections": "Връзки", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Свързва се с отдалечен Rusty Kaspa нод чрез wRPC.", + "Conservative": "Консервативно", + "Continue": "Продължи", + "Copied to clipboard": "Копирано в клипборда", + "Copy": "Копирай", + "Copy logs to clipboard": "Копирайте логовете в клипборда", + "Create New Wallet": "Създай нов портфейл", + "Create Wallet": "Create Wallet", + "Create new wallet": "Създай нов портфейл", + "Creating Account": "Създаване на акаунта", + "Creating Wallet": "Създаване на портфейла", + "Custom": "Персонализиран", + "Custom Public Node": "Персонализиран публичен нод", + "Custom arguments:": "Персонализирани аргументи:", + "Custom data storage folder": "Персонализирана папка за данни", "DAA": "DAA", - "DAA Offset": "DAA Offset", - "DAA Range": "DAA-Bereich", - "DB Blocks": "Datenbankblöcke", - "DB Headers": "DB Headers", - "Database Blocks": "Datenbankblöcke", - "Database Headers": "Datenbank Kopfzeilen", - "Decrypting wallet, please wait...": "Entschlüssele Wallet, bitte warten...", - "Default": "Standard", - "Default Account Name": "Name Standardkonto", - "Delete Data Folder": "Datenordner löschen", - "Dependencies": "Abhängigkeiten", - "Derivation Indexes": "Herleitungsindexe", - "Details": "Details", - "Developer Mode": "Entwicklermodus", - "Developer Resources": "Entwickler-Resourcen", - "Developer mode enables advanced and experimental features": "Entwicklermodus aktiviert erweiterte und experimentelle Funktionen", - "Difficulty": "Schwierigkeitsgrad", - "Dimensions": "Abmessungen", - "Disable password score restrictions": "Passwort Stärkerestriktionen abschalten", - "Disabled": "Deaktiviert", - "Disables node connectivity (Offline Mode).": "Schaltet die Verbindung des Knotens ab (Offline-Modus).", + "DAA Offset": "DAA Офсет", + "DAA Range": "DAA Диапазон", + "DB Blocks": "DB Блокове", + "DB Headers": "DB Хедъри", + "Dangerous": "Dangerous", + "Data Storage": "Съхранение на данни", + "Database Blocks": "Блокове на база данни", + "Database Headers": "Хедъри на база данни", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Декриптиране на портфейла, моля, изчакайте...", + "Default": "По подразбиране", + "Default Account Name": "Име на акаунта по подразбиране", + "Delete Data Folder": "Изтрийте папката с данни", + "Dependencies": "Зависимости", + "Derivation Indexes": "Derivation Indexes", + "Details": "Детайли", + "Developer Mode": "Режим за разработчици", + "Developer Resources": "Ресурси за разработчици", + "Developer mode enables advanced and experimental features": "Режимът за разработчици позволява разширени и експериментални функции", + "Difficulty": "Трудност", + "Dimensions": "Размери", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Изключено", + "Disables node connectivity (Offline Mode).": "Изключва свързаността на нода (офлайн режим).", "Discord": "Discord", - "Donations": "Spenden", - "Double click on the graph to re-center...": "Im Graph doppelklicken, um zu zentrieren...", + "Donations": "Дарения", + "Double click on the graph to re-center...": "Кликнете двукратно върху графиката, за да я центрирате...", "ECDSA": "ECDSA", - "Enable Market Monitor": "Markt-Monitor einschalten", - "Enable UPnP": "UPnP aktivieren", - "Enable custom daemon arguments": "Individuelle Argumente des Dienstes aktivieren", - "Enable experimental features": "Experimentelle Funktionen aktivieren", - "Enable gRPC": "gRPC aktivieren", - "Enable optional BIP39 passphrase": "Optionales BIP39-Passwort aktivieren", - "Enable screen capture": "Bildschirmfotos ermöglichen", - "Enables features currently in development": "Schaltet Funktionen frei, welche sich noch in Entwicklung befinden", - "Enter": "Bestätige", - "Enter account name (optional)": "Bitte Kontoname eingeben (optional)", - "Enter first account name": "Name des ersten Kontos eingeben", - "Enter phishing hint": "Bitte Phishing-Hinweis eingeben", - "Enter the amount": "Bitte Betrag eingeben", - "Enter the password for your wallet": "Bitte Wallet-Passwort eingeben", - "Enter the password to unlock your wallet": "Bitte Passwort zum Entsperren des Wallet eingeben", - "Enter wallet name": "Wallet-Name eingeben", - "Enter wallet password": "Wallet-Passwort eingeben", - "Enter your wallet secret": "Bitte Wallet-Geheimtext eingeben", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Активиране на монитор на пазара", + "Enable UPnP": "Активиране на UPnP", + "Enable custom daemon arguments": "Разрешете персонализирани аргументи на daemon", + "Enable experimental features": "Активиране на експериментални функции", + "Enable gRPC": "Активиране на gRPC", + "Enable optional BIP39 passphrase": "Активиране на опционална BIP39 парола", + "Enable screen capture": "Активиране на запис на екрана", + "Enables features currently in development": "Позволява функции, които в момента се разработват", + "Enter": "Въведи", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Въведи име на акаунта (незадължително)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Въведете първото име на акаунта", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Въведете фишинг подсказката", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Въведете сумата", + "Enter the password for your wallet": "Въведете паролата на вашия портфейл", + "Enter the password to unlock your wallet": "Въведете паролата, за да отключите портфейла си", + "Enter wallet name": "Въведи името на портфейла", + "Enter wallet password": "Въведи паролата на портфейла", + "Enter your wallet secret": "Въведете тайната на портфейла си", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", "Explorer": "Explorer", - "Export Wallet Data": "Walletdaten exportieren", - "Faucet": "Fontäne", - "File Handles": "Dateihandles", - "Filename:": "Dateiname:", - "Final Amount:": "Gesamtbetrag:", - "GitHub Release": "GitHub Release", - "Go to Settings": "Settings öffnen", - "Handles": "Handles", - "Headers": "Kopfzeilen", + "Export Wallet Data": "Експортирай данните на портфейла", + "FIRST": "FIRST", + "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "Файлови указатели", + "File contents": "File contents", + "Filename:": "Име на файла:", + "Final Amount:": "Крайна сума:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub Издание", + "Go to Settings": "Отидете в Настройки", + "Good": "Good", + "Handles": "Указатели", + "Headers": "Хедъри", + "High": "High", "IBD:": "IBD:", - "If not specified, the account will be represented by the numeric id.": "Wenn nicht angegeben, wird das Konto durch einen numerischen Identifikator repräsentiert.", - "If you are running locally, use: ": "Bei lokalem Betrieb, bitte folgendes verwenden:", - "Import existing": "Import existierendes", - "Inbound": "Eingehend", - "Include QoS Priority Fees": "QoS Prioritätsgebühren integrieren", - "Integrated Daemon": "Integrierter Dienst", - "Invalid daemon arguments": "Ungültige Service-Argumente", - "Invalid network type - expected: testnet-10 connected to: testnet-11": "Ungültiger Netzwerktyp. Erwartet: testnet-10 jedoch verbunden mit testnet-11", - "Invalid wRPC URL": "Ungültige wRPC URL", - "Json Active Connections": "Aktive JSON-Verbindungen", - "Json Connection Attempts": "JSON Verbindungsversuche", - "Json Handshake Failures": "Json Handshake Fehler", + "If not specified, the account will be represented by the numeric id.": "Ако не е посочено, акаунтът ще бъде представен чрез цифров идентификатор.", + "If you are running locally, use: ": "Ако работите локално, използвайте:", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Импортирай съществуващ", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Входящи", + "Integrated Daemon": "Интегриран daemon", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Невалидни аргументи за daemon", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Невалиден wRPC URL", + "Json Active Connections": "Json активни връзки", + "Json Connection Attempts": "Json опити за връзка", + "Json Handshake Failures": "Json грешка при ръкостискането", "Kaspa Discord": "Kaspa Discord", - "Kaspa Integration Guide": "Kaspa Integrationsleitfaden", + "Kaspa Integration Guide": "Ръководство за интегриране на Kaspa", "Kaspa NG": "Kaspa NG", - "Kaspa NG Online": "Kaspa NG Online", - "Kaspa NG Web App": "Kaspa NG Web-Applikation", - "Kaspa NG on GitHub": "Kaspa NG auf GitHub", - "Kaspa NG online": "Kaspa NG online", - "Kaspa Network": "Kaspa-Netzwerk", - "Kaspa Node": "Kaspa Knoten", - "Kaspa p2p Network & Node Connection": "Kaspa p2p Netzwerk & Knotenverbindungen", - "Kaspa p2p Node": "Kaspa p2p Knoten", - "Kaspa p2p Node & Connection": "Kaspa p2p Knoten und Verbindung", - "Key Perf.": "Leistung", - "Language:": "Sprache:", - "Large (1 BPS)": "Gross (1 BPS)", - "Levels": "Ebenen", - "License Information": "Lizenzinformationen", - "Local": "Lokal", - "Local p2p Node Configuration": "Konfiguration des lokalen p2p Knotens", - "Logs": "Logs", + "Kaspa NG on GitHub": "Kaspa NG в GitHub", + "Kaspa NG online": "Kaspa NG онлайн", + "Kaspa Network": "Мрежа на Kaspa", + "Kaspa Node": "Kaspa нод", + "Kaspa p2p Network & Node Connection": "Kaspa p2p мрежа и връзка с нод", + "Kaspa p2p Node": "Kaspa p2p нод", + "Kaspa p2p Node & Connection": "Kaspa p2p нод и връзка", + "Key Perf.": "Ключова производителност", + "LAST": "LAST", + "Language:": "Език:", + "Large (1 BPS)": "Голямо (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Нива", + "License Information": "Информация за лиценза", + "Local": "Локален", + "Local p2p Node Configuration": "Конфигурация на локален p2p нод", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Логове", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", "MT": "MT", - "Main Kaspa network": "Kaspa Hauptnetz", + "Main Kaspa network": "Главна мрежа на Kaspa", "Mainnet": "Mainnet", - "Mainnet (Main Kaspa network)": "Hauptnetz (Kaspa Main-Netzwerk)", - "Managed by the Rusty Kaspa daemon": "Verwaltet vom Rusty Kaspa Dienst", - "Market": "Markt", - "Market Cap": "Marktkapitalisierung", - "Market Monitor": "Marktmonitor", - "Mass Processed": "Bearbeitete Menge", - "Medium Narrow": "Mittelbreit", - "Medium Wide": "Mittlere Breite", - "Memory": "Speicher", - "Mempool": "Speicherbereich", - "Mempool Size": "Mempool-Grösse", - "Metrics": "Metriken", - "Metrics are not currently available": "Metriken momentan nicht verfügbar", - "NPM Modules for NodeJS": "NPM Module für NodeJS", - "Network": "Netzwerk", - "Network Difficulty": "Netzwerk-Schwierigkeitsgrad", - "Network Fees:": "Netzwerk-Gebühren:", - "Network Interface": "Netzwerkschnittstelle", - "Network Peers": "Netzwerkverbindungen", - "No peers": "Keine Verbindungen", - "No public node selected - please select a public node": "Kein öffentlicher Knoten ausgewählt - bitte öffentlichen Knoten auswählen", - "No transactions": "Keine Transaktionen", - "No wallets found, please create a new wallet": "Keine Wallets gefunden, bitte neues Wallet anlegen", - "Node": "Knoten", - "Node Status": "Status des Knotens", - "Noise": "Rauschen", - "None": "Keine", - "Not Connected": "Nicht verbunden", - "Not connected": "Nicht verbunden", - "Notifications": "Benachrichtigungen", - "Open Data Folder": "Datenverzeichnis öffnen", - "Opening wallet:": "Öffne Wallet:", - "Optional": "Optional", - "Other operations": "Andere Tätigkeiten", - "Outbound": "Ausgehend", - "Overview": "Übersicht", - "Parents": "Eltern", - "Past Median Time": "Durchschnitt letzter Blockzeiten", - "Payment & Recovery Password": "Zahlungs- und Wiederherstellungspasswort", - "Payment Request": "Zahlungsanforderung", - "Peers": "Verbindungen", - "Performance": "Leistung", - "Phishing Hint": "Phishing-Hinweis", - "Ping:": "Ping:", - "Please Confirm Deletion": "Löschen bitte bestätigen", - "Please configure your Kaspa NG settings": "Bitte Kaspa NG einrichten", - "Please connect to Kaspa p2p node": "Bitte zu einem Kaspa p2p-Knoten verbinden", - "Please create a stronger password": "Bitte ein stärkeres Passwort verwenden", - "Please enter": "Bitte eingeben", - "Please enter KAS amount to send": "Bitte den zu sendenden KAS-Betrag eingeben", - "Please enter an amount": "Bitte Betrag eingeben", - "Please enter the account name": "Bitte den Kontoname eingeben", - "Please enter the wallet secret": "Bitte Wallet-Merktext eingeben", - "Please note that this is a beta release. Until this message is removed, please avoid using the wallet with mainnet funds.": "Bitte beachten, dass das ein Beta-Release ist. Solange diese Meldung nicht entfernt wurde, bitte die Verwendung mit Mainnet-Wallets vermeiden.", - "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Bitte beachten: Das Kopieren in die Zwischenablage birgt das Risiko, dass ihre Merktext von einer Malware ausgelesen werden kann.", - "Please select an account type": "Bitte Kontotyp auswählen", - "Please select the private key to export": "Bitte zu exportierenden privaten Schlüssel auswählen", - "Please set node to 'Disabled' to delete the data folder": "Um den Datenordner zu löschen, bitte den Knoten auf 'Deaktiviert' stellen", - "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Bitte geben Sie den Name des Standardkontos an. Das Wallet wird mit einem Standardkonto angelegt. Einmal erzeugt, können nach Bedarf weitere Konten angelegt werden.", - "Please specify the name of the new wallet": "Bitte Name des neuen Wallet eingeben", - "Please specify the private key type for the new wallet": "Bitte Typ des privaten Schlüssels für das neue Wallet angeben", - "Please wait for the node to sync or connect to a remote node.": "Bitte warten, bis der Knoten synchronisiert bzw. zu einem entfernten Knoten verbunden ist.", - "Please wait for the node to sync...": "Bitte warten bis Knoten synchronisiert ist...", - "Please wait...": "Bitte warten...", - "Presets": "Standardeinstellungen", - "Price": "Preis", - "Private Key Mnemonic": "Merktext des privaten Schlüssels", - "Processed Bodies": "Bearbeiteter Inhalt", - "Processed Dependencies": "Bearbeitete Abhängigkeiten", - "Processed Headers": "Abgearbeitete Kopfzeilen", - "Processed Mass Counts": "Verarbeitete Menge", - "Processed Transactions": "Abgearbeitete Transaktionen", - "Protocol:": "Protokoll:", - "Public Node": "Öffentlicher Knoten", - "Public Nodes": "Öffentliche Knoten", - "Public Server": "Öffentlicher Server", - "Public p2p Nodes for": "Öffentliche p2p-Knoten für", - "Random Public Node": "Zufälliger öffentlicher Knoten", - "Range:": "Bereich:", - "Receive Address": "Empfangsadresse", - "Recommended arguments for the remote node: ": "Empfohlene Argumente für den entfernten Knoten:", - "Remote": "Entfernt", - "Remote Connection:": "Verbindungen nach aussen:", - "Remote p2p Node Configuration": "Konfiguration des entfernten p2p-Knotens", - "Removes security restrictions, allows for single-letter passwords": "Entfernt Sicherheitsbeschränkungen, erlaubt Passwörter mit nur einem Zeichen", - "Reset Settings": "Einstellungen zurücksetzen", - "Reset VSPC": "VSPC zurücksetzen", - "Resident Memory": "Physischer Speicher", - "Resources": "Resourcen", - "Resulting daemon arguments:": "Resultierende Dienst-Argumente:", + "Managed by the Rusty Kaspa daemon": "Управляван от Rusty Kaspa daemon", + "Market": "Пазар", + "Market Cap": "Пазарна капитализация", + "Market Monitor": "Монитор на пазара", + "Mass Processed": "Обраб. тегло", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Средно тесен", + "Medium Wide": "Средно широк", + "Memory": "Памет", + "Mempool": "Мемпул", + "Mempool Size": "Големина на мемпула", + "Metrics": "Метрики", + "Metrics are not currently available": "Метриките в момента не са налични", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM модули за NodeJS", + "Network": "Мрежа", + "Network Difficulty": "Мрежова трудност", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Мрежови интерфейс", + "Network Peers": "Мрежови връзки", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "Няма връзки", + "No public node selected - please select a public node": "Не е избран публичен нод - моля, изберете публичен нод", + "No transactions": "Няма транзакции", + "No wallets found, please create a new wallet": "Няма намерени портфейли, моля, създайте нов портфейл", + "Node": "Нод", + "Node Status": "Статус на нода", + "Noise": "Шум", + "None": "Няма", + "Normal": "Normal", + "Not Connected": "Не е свързан", + "Not connected": "Не е свързан", + "Notifications": "Известия", + "Open Data Folder": "Отвори папката с данни", + "Opening wallet:": "Отваряне на портфейл:", + "Optional": "По желание", + "Options": "Options", + "Other operations": "Други операции", + "Outbound": "Изходящи", + "Overview": "Преглед", + "PREV": "PREV", + "Parents": "Родители", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Минало медианно време", + "Payment & Recovery Password": "Парола за плащане и възстановяване", + "Payment Request": "Заявка за плащане", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Връзки", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Производителност", + "Phishing Hint": "Подсказка за фишинг", + "Ping:": "Пинг", + "Please Confirm Deletion": "Моля, потвърдете изтриването", + "Please configure your Kaspa NG settings": "Моля, конфигурирайте настройките на Kaspa NG", + "Please connect to Kaspa p2p node": "Моля, свържете се с Kaspa p2p нод", + "Please create a stronger password": "Моля, създайте по-сигурна парола", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Моля, въведете сума", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Моля, въведете име на акунта", + "Please enter the wallet secret": "Моля, въведете тайната на акаунта", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Обърнете внимание, че копирането в клипборда крие риск от излагане на вашата мнемонична фраза на зловреден софтуер.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Моля, изберете тип на акаунта", + "Please select export type": "Please select export type", + "Please select the private key to export": "Моля, изберете личен ключ за експортиране", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Моля, настройте нода на „Деактивиран“, за да изтриете папката с данни", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Моля, посочете името на акаунта по подразбиране. Портфейлът ще бъде създаден с акаунт по подразбиране. След като бъде създаден, ще можете да създавате допълнителни акаунти, ако имате нужда.", + "Please specify the name of the new wallet": "Моля, посочете името на новия портфейл", + "Please specify the private key type for the new wallet": "Моля, посочете типа на личния ключ за новия портфейл", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Моля, изчакайте да се синхронизира нода или се свържете с отдалечен нод.", + "Please wait for the node to sync...": "Моля, изчакайте да се синхронизира нода...", + "Please wait...": "Моля, изчакайте...", + "Presets": "Предварителни настройки", + "Price": "Цена", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Мнемонична фраза на личния ключ", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Обработени тела", + "Processed Dependencies": "Обработени зависимости", + "Processed Headers": "Обработени хедъри", + "Processed Mass Counts": "Брой обработени тегла", + "Processed Transactions": "Обработени транзакции", + "Processing...": "Processing...", + "Protocol:": "Протокол:", + "Public Node": "Публичен нод", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Случайни публични нодове", + "Range:": "Диапазон:", + "Receive Address": "Адрес за получаване", + "Recommended arguments for the remote node: ": "Препоръчителни аргументи за отдалечен нод:", + "Redistributables": "Разпространяеми пакети", + "Remote": "Отдалечен", + "Remote Connection:": "Отдалечена връзка:", + "Remote p2p Node Configuration": "Отдалечена конфигурация на p2p нод", + "Removes security restrictions, allows for single-letter passwords": "Премахва ограниченията за сигурност, позволява еднобуквени пароли", + "Reset Settings": "Нулиране на настройките", + "Reset VSPC": "Нулирай VSPC", + "Resident Memory": "Резидентна памет", + "Resources": "Ресурси", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Резултатни аргументи на daemon:", "Rust Wallet SDK": "Rust Wallet SDK", - "Rusty Kaspa on GitHub": "Rusty Kaspa auf GitHub", - "Secret is too weak": "Geheimschlüssel zu schwach", - "Secret score:": "Passwortstärke", - "Select Account": "Konto auswählen", - "Select Available Server": "Verfügbaren Server auswählen", - "Select Private Key Type": "Typ des privaten Schlüssels auswählen", - "Select Public Node": "Öffentlichen Knoten auswählen", - "Select Wallet": "Wallet auswählen", - "Select a wallet to unlock": "Zum Entsperren bitte Wallet auswählen", - "Send": "Senden", - "Services": "Dienste", - "Settings": "Einstellungen", - "Show DAA": "DAA anzeigen", - "Show Grid": "Netz anzeigen", - "Show VSPC": "VSPC anzeigen", - "Show balances in alternate currencies for testnet coins": "Kontostand für Testnet-Coins in alternativer Währung anzeigen", - "Show password": "Passwort zeigen", - "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Zeigt den Kontostand in einer alternativen Währung (BTC, USD) im Testnetz, so als wären Sie im Mainnetz.", - "Skip": "Überspringen", - "Small (10 BPS)": "Klein (10BPS)", - "Spread": "Spreizung", - "Stage": "Stufe", - "Starting...": "Starte...", - "Statistics": "Statistiken", - "Stor Read": "Speicher lesen", - "Stor Write": "Speicher schreiben", - "Storage": "Speicher", - "Storage Read": "Lesezugriff", - "Storage Read/s": "Speicher lesen/s", - "Storage Write": "Schreibzugriff", - "Storage Write/s": "Speicher schreiben/s", - "Submitted Blocks": "Übermittelte Blöcke", - "Supporting Kaspa NG development": "Kaspa NG Entwicklung unterstützen", - "Syncing Cryptographic Proof...": "Synchronisiere kryptografischen Nachweiss...", - "Syncing DAG Blocks...": "DAG-Blöcke werden synchronisiert...", - "Syncing Headers...": "Synchronisiere Kopfzeilen...", - "Syncing UTXO entries...": "UTXO-Einträge werden synchronisiert...", - "Syncing...": "Synchronisiere...", - "System": "System", - "TPS": "TPS", - "Testnet 10": "Testnetz 10", - "Testnet 10 (1 BPS)": "Testnetz 10 (1 BPS)", - "Testnet 11": "Testnetz 11", - "Testnet 11 (10 BPS)": "Testnetz 11 (10 BPS)", - "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.": "Testnetz 11 ist im Moment für öffentliche Tests noch nicht aktiviert. Sie können aber in den Einstellungen die Verbindung zu einem privaten Entwickler-Testnetz einstellen.", - "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Kaspa NG repräsentiert einen fortwährenden Einsatz, für das Kaspa BlockDAG Kryptowährung eine Software-Platform basierend auf aktuellem Stand der Technik zu entwickeln. Der ideologische Focus priorisiert dabei Sicherheit, Privatsphäre, Leistung und Dezentralisierung.", - "The balance may be out of date during node sync": "Der Kontostand ist während der Synchronisation des Knotens mglw. nicht aktuell", - "The following will guide you through the process of creating or importing a wallet.": "Im folgenden werden Sie durch den Prozess von Wallet-Erzeugung und -Import geführt", - "The node is currently syncing with the Kaspa p2p network.": "Der Knoten synchronisiert sich mit dem Kaspa p2p-Netzwerk.", - "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "Der Knoten synchronisiert sich momentan mit dem Kaspa p2p Netzwerk. Die Kontostände können daher nicht aktuell sein.", - "The node is spawned as a child daemon process (recommended).": "Der Knoten wurde als Kind-Prozess gestartet (empfohlen).", - "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "Der Knoten läuft als Teil des Kaspa NG Applikationsprozesses. Das reduziert den Kommunikationsaufwand (experimentell).", - "Theme Color": "Farbschema", - "Theme Color:": "Farbschema:", - "Theme Style": "Thema", - "Theme Style:": "Thema:", - "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Das Wallet wird niemals nach Ihrem Merktext fragen, solange Sie nicht die Wiederherstellung des privaten Schlüssels starten.", - "Threshold": "Schwellwert", - "Time Offset:": "Zeitversatz:", - "Tip Hashes": "BlockDAG-Spitzen", - "Tools ⏷": "Werkzeuge⏷", - "Total Rx": "Gesamt Rx", - "Total Rx/s": "Gesamt Rx/s", - "Total Tx": "Gesamt-Tx", - "Total Tx/s": "Gesamt Tx/s", - "Track in the background": "Im Hintergrund verfolgen", - "Transactions": "Transaktionen", - "Transactions:": "Transaktionen:", - "Type": "Typ", - "UTXO Manager": "UTXO-Manager", + "Rusty Kaspa on GitHub": "Rusty Kaspa в GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Тайната е твърде кратка", + "Secret score:": "Оценка на тайната:", + "Select Account": "Изберете акаунт", + "Select Private Key Type": "Изберете типа на личния ключ", + "Select Public Node": "Изберете публичен нод", + "Select Wallet": "Изберете портфейл", + "Select a wallet to unlock": "Изберете портфейл за отключване", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Изпрати", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Услуги", + "Settings": "Настройки", + "Show DAA": "Покажи DAA", + "Show Grid": "Покажи решетка", + "Show VSPC": "Покажи VSPC", + "Show balances in alternate currencies for testnet coins": "Показване на наличностите в алтернативни валути за монетите в тестовата мрежа", + "Show passphrase": "Show passphrase", + "Show password": "Покажи парола", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Показва наличностите в алтернативни валути (BTC, USD), когато използвате тестови монети, сякаш сте в основната мрежа", + "Skip": "Пропусни", + "Small (10 BPS)": "Малко (10 BPS)", + "Spread": "Спред", + "Stage": "Етап", + "Starting...": "Стартиране...", + "Statistics": "Статистики", + "Stop": "Stop", + "Stor Read": "Чет. от диск", + "Stor Write": "Зап. на диск", + "Storage": "Пространство", + "Storage Read": "Прочетено от диск", + "Storage Read/s": "Четене от диск/сек", + "Storage Size": "Storage Size", + "Storage Write": "Записано на диск", + "Storage Write/s": "Запис на диск/сек", + "Strong": "Strong", + "Submitted Blocks": "Изпратени блокове", + "Syncing Cryptographic Proof...": "Синхронизиране на криптографско доказателство...", + "Syncing DAG Blocks...": "Синхронизиране на DAG блоковете...", + "Syncing Headers...": "Синхронизиране на хедърите...", + "Syncing UTXO entries...": "Синхронизиране на UTXO записите...", + "Syncing...": "Синхронизиране...", + "System": "Система", + "TPS": "тр./сек.", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Софтуерът Kaspa NG представлява продължаващо усилие, насочено към изграждането на високотехнологична софтуерна платформа, посветена на криптовалутната мрежа Kaspa BlockDAG. Идеологически в своята същност този софтуер дава приоритет на сигурността, поверителността, производителността и децентрализацията.", + "The balance may be out of date during node sync": "Балансът може да е неактуален по време на синхронизацията на нода", + "The following will guide you through the process of creating or importing a wallet.": "Следното описва процеса на създаване или импортиране на портфейл.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "В момента нода се синхронизира с p2p мрежата на Kaspa.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "В момента нода се синхронизира с p2p мрежата на Kaspa. Балансите по сметките може да са неактуални.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "Нода се стартира като child daemon process (препоръчително).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "Нода работи като част от процеса на апликацията Kaspa-NG. Това намалява натоварването на комуникацията (експериментално).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Цвят на темата", + "Theme Color:": "Цвят на темата:", + "Theme Style": "Стил на темата", + "Theme Style:": "Стил на темата:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Този портфейл никога няма да ви попита за тази мнемонична фраза, освен ако не инициирате ръчно възстановяване на личен ключ.", + "Threshold": "Праг", + "Time Offset:": "Времево изместване:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Върхови хешове", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Общо Rx", + "Total Rx/s": "Общо Rx/s", + "Total Tx": "Общо Tx", + "Total Tx/s": "Общо Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Следи във фонов режим", + "Transactions": "Транзакции", + "Transactions:": "Транзакции:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Тип", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO мениджър", "UTXOs": "UTXOs", "UTXOs:": "UTXOs:", - "Unable to change node settings until the problem is resolved": "Bis das Problem gelöst ist, können die Einstellungen des Knotens nicht angepasst werden", - "Unlock": "Entsperren", - "Unlock Wallet": "Wallet entsperren", - "Unlocking": "Entsperren", - "Update Available to version": "Aktualisierung verfügbar auf Version", - "Updating...": "Aktualisiere...", - "Uptime:": "Laufzeit:", - "Use 50%-75% of available system memory": "Benutze 50 %-75%des verfügbaren Systemspeichers", - "Use all available system memory": "Gesamten verfügbaren Systemspeicher verwenden", - "User Agent": "Programm", - "User Interface": "Benutzeroberfläche", - "Very dangerous (may be cracked within few seconds)": "Sehr gefährlich (mglw. innerhalb von Sekunden gebrochen)", - "Virt Parents": "Virt Eltern", - "Virtual DAA Score": "Virtueller DAA-Stand", - "Virtual Memory": "Virtueller Speicher", - "Virtual Parent Hashes": "Checksummen der virtuellen Eltern", - "Volume": "Menge", - "WASM SDK for JavaScript and TypeScript": "WASM SDK für JavaScript und TypeScript", - "Wallet": "Wallet", - "Wallet Created": "Wallet angelegt", - "Wallet Encryption Password": "Wallet Verschlüsselungspasswort", - "Wallet Name": "Wallet-Name", - "Wallet Secret": "Wallet-Passwort", - "Wallet password is used to encrypt your wallet data.": "Das Wallet-Passwort wird verwendet, um die Daten im Wallet zu verschlüsseln.", - "Wallet:": "Wallet:", - "We greatly appreciate your help in backing our efforts.": "Jedwede Unterstützung unserer Anstrengungen wird geschätzt.", - "Welcome to Kaspa NG": "Herzlich willkommen bei Kaspa NG", - "Xpub Keys": "Xpub Schlüssel", - "You are currently not connected to the Kaspa node.": "Sie sind momentan nicht mit einem Kaspa-Knoten verbunden.", - "You can configure remote connection in Settings": "Verindungen können in den Einstellungen konfiguriert werden", - "You can create multiple wallets, but only one wallet can be open at a time.": "Sie können mehrere Wallets anlegen aber nur ein Wallet kann jeweils geöffnet sein.", - "You must be connected to a node...": "Sie müssen zu einem Knoten verbunden sein", - "Your default wallet private key mnemonic is:": "Ihr Merktext zum privaten Schlüssel des Standard-Wallet ist:", - "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Ihr Merktext erlaubt es, Ihren privaten Schlüssel wiederherzustellen. Jeder mit Zugriff auf diesen Merktext hat die volle Kontrolle über die darin enthaltenen Kaspa. Bitte verwahren Sie den Merktext sicher. Schreiben Sie ihn auf und verwahren Sie ihn an einem sicheren, idealerweise brandgeschütztem Ort. Speichern Sie den Merktext keinesfalls auf einem Computer oder einem Mobiltelefon! Das Wallet wird niemals nach dem Merktext fragen, solange Sie nicht die Wiederherstellung des privaten Schlüssels starten.", - "Your private key mnemonic is:": "Ihre privater Merkhilfeschlüssel ist: ", - "Your wallet has been created and is ready to use.": "Ihr Wallet wurde angelegt und ist bereit zur Verwendung.", - "Zoom": "Vergrösserung", - "amount to send": "Zu sendender Betrag", - "bye!": "Auf Wiedersehen!", - "gRPC Network Interface & Port": "gRPC Netzwerkschnittstelle und Port", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Докато проблемът не бъде резрешен, не е възможно да се променят настройките на нода", + "Unable to store settings": "Unable to store settings", + "Unlock": "Отключи", + "Unlock Wallet": "Отключи портфейла", + "Unlocking": "Отключване", + "Update Available to version": "Налично е обновяване на версията", + "Updating...": "Обновяване...", + "Uptime:": "Време на работа:", + "Use 50%-75% of available system memory": "Използвай 50%-75% от свободната системна памет", + "Use all available system memory": "Използвай всичката налична системна памет", + "User Agent": "Агент на потребителя", + "User Interface": "Потребителски интерфейс", + "Very dangerous (may be cracked within few seconds)": "Много опасно (може да бъде кракнато в рамките на секунди)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Вирт. родители", + "Virtual DAA Score": "Виртуален DAA резултат", + "Virtual Memory": "Виртуална памет", + "Virtual Parent Hashes": "Хешове на виртуалния родител", + "Volume": "Обем", + "WASM SDK for JavaScript and TypeScript": "WASM SDK за JavaScript и TypeScript", + "Wallet": "Портфейл", + "Wallet Created": "Портфейлът е създаден", + "Wallet Encryption Password": "Парола за криптиране на портфейла", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Име на портфейла", + "Wallet Secret": "Тайна на портфейла", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Паролата на портфейла се използва за криптиране на данните от портфейла ви.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Портфейл:", + "We greatly appreciate your help in backing our efforts.": "Оценяваме високо вашата помощ в подкрепа на нашите усилия.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Добре дошли в Kaspa NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "В момента не сте свързани с Kaspa нода.", + "You can configure remote connection in Settings": "Можете да конфигурирате отдалечена връзка в Настройки", + "You can create multiple wallets, but only one wallet can be open at a time.": "Можете да създадете няколко портфейла, но само един портфейл може да бъде отворен в един и същ момент.", + "You must be connected to a node...": "Трябва да сте свързани към нод...", + "Your default wallet private key mnemonic is:": "Личния ключ на портфейла по подразбиране е:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Вашата мнемонична фраза ви позволява да създадете отново личния си ключ. Лицето, което има достъп до тази фраза, ще има пълен контрол върху съхранената в него Kaspa. Пазете мнемочната си фраза на сигурно място. Запишете я и я съхранявайте в сейф, за предпочитане на пожароустойчиво място. Не съхранявайте фразата си на този компютър или на мобилно устройство. Този портфейл никога няма да ви попита за тази мнемонична фраза, освен ако ръчно не инициирате възстановяване на личния ключ.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Мнемоничната фраза на вашия личен ключ е:", + "Your wallet has been created and is ready to use.": "Вашият портфейл е създаден и е готов за използване.", + "Zoom": "Увеличи", + "bye!": "чао!", + "gRPC Network Interface & Port": "gRPC мрежови интерфейс и порт", "gRPC Rx": "gRPC Rx", "gRPC Rx/s": "gRPC Rx/s", "gRPC Tx": "gRPC Tx", "gRPC Tx/s": "gRPC Tx/s", - "of": "von", + "of": "от", "p2p RPC": "p2p RPC", "p2p Rx": "p2p Rx", "p2p Rx/s": "p2p Rx/s", "p2p Tx": "p2p Tx", "p2p Tx/s": "p2p Tx/s", - "peer": "Verbindung", - "peers": "Peers", + "peer": "връзка", + "peers": "връзки", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", "wRPC Borsh Rx": "wRPC Borsh Rx", "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", "wRPC Borsh Tx": "wRPC Borsh Tx", "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", - "wRPC Connection Settings": "wRPC Verbindungseinstellungen", - "wRPC Encoding:": "wRPC Kodierung:", + "wRPC Connection Settings": "wRPC настройки за връзка", + "wRPC Encoding:": "wRPC кодиране", "wRPC JSON Rx": "wRPC JSON Rx", "wRPC JSON Rx/s": "wRPC JSON Rx/s", "wRPC JSON Tx": "wRPC JSON Tx", "wRPC JSON Tx/s": "wRPC JSON Tx/s", - "wRPC URL:": "wRPC URL:" + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" }, - "el": {}, - "en": { + "bn": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS টেস্ট নেটওয়ার্ক", + "10 BPS test network": "10 BPS টেস্ট নেটওয়ার্ক", + "12 word mnemonic": "12 শব্দের গোপন বাক্যাংশ", + "24 word mnemonic": "24 শব্দের গোপন বাক্যাংশ", + "24h Change": "24 ঘন্টা পরিবর্তন", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "অন্য স্থানে একটি বাইনারি ক্ষুদ্র প্রক্রিয়ার জন্ম দেয় (পরীক্ষামূলক, শুধুমাত্র উন্নয়নের উদ্দেশ্যে)।", + "A random node will be selected on startup": "স্টার্টআপে একটি রেন্ডম নোড নির্বাচন করা হবে", + "A wallet is stored in a file on your computer.": "ওয়ালেট আপনার কম্পিউটারে একটি ফাইল এ সংরক্ষিত হয়ে থাকে।", + "Account Index": "Account Index", + "Account Name": "অ্যাকাউন্ট এর নাম", + "Account not found": "Account not found", + "Account:": "অ্যাকাউন্ট:", + "Activate custom daemon arguments": "কাস্টম ডেমন আর্গুমেন্ট সক্রিয় করুন", + "Active p2p Peers": "সক্রিয় p2p জোড়া", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "ঠিকানা ডেরিভেশন স্ক্যান", + "Address:": "ঠিকানা", + "Advanced": "উন্নত", + "All": "সমস্ত", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "রাস্টি কাসপা ডেমনের জন্য কাস্টম আর্গুমেন্টের অনুমতি দিন", + "Allows you to take screenshots from within the application": "আপনাকে অ্যাপ্লিকেশনের মধ্যে থেকে স্ক্রিনশট নেওয়ার অনুমতি দেয়", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "আবেদন", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "ব্যালেন্স: N/A", + "Bandwidth": "ব্যান্ডউইথ", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "নিরাপত্তা এবং কর্মক্ষমতার উপর লক্ষ্য রেখে, এই সফ্টওয়্যারটি সম্পূর্ণরূপে রাস্ট এ বিকশিত হয়েছে, যা অন্যান্য ঐতিহ্যগত আধুনিক ওয়েব-চালিত সফ্টওয়্যারের তুলনায় উল্লেখযোগ্যভাবে বেশি সময় এবং প্রচেষ্টার প্রয়োজন।", + "Bezier Curves": "বেজিয়ার কার্ভস", + "Block DAG": "ব্লক DAG", + "Block Scale": "ব্লক স্কেল", + "Blocks": "ব্লক", + "Bodies": "বডি", + "Borsh Active Connections": "Borsh সক্রিয় সংযোগ", + "Borsh Connection Attempts": "Borsh সংযোগ প্রচেষ্টা", + "Borsh Handshake Failures": "Borsh হ্যান্ডশেক ব্যর্থতা", + "Build": "নির্মাণ", + "CONNECTED": "সংযুক্ত", + "CPU": "CPU", + "Cache Memory Size": "ক্যাশে মেমরি আকার", + "Cancel": "বাতিল করুন", + "Cannot delete data folder while the node is running": "নোড চলাকালীন ডেটা ফোল্ডার মুছে ফেলা যাবে না", + "Capture a screenshot": "একটি স্ক্রিনশট ক্যাপচার করুন", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "কেন্দ্র VSPC", + "Chain Blocks": "চেইন ব্লক", + "Change Address": "ঠিকানা পরিবর্তন", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "GitHub এ সফ্টওয়্যার আপডেটের জন্য চেক করুন", + "Check for Updates": "আপডেটের জন্য অনুসন্ধান করুন", + "Clear": "মুছে ফেলা", + "Click to try another server...": "অন্য সার্ভার চেষ্টা করতে ক্লিক করুন...", + "Client RPC": "ক্লায়েন্ট RPC", + "Close": "বন্ধ", + "Close the window": "উইন্ডো বন্ধ করুন", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "ওয়ালেট পাসওয়ার্ড নিশ্চিত করুন", + "Connecting to": "সাথে সংযোগ করা হচ্ছে", + "Connection": "সংযোগ", + "Connections": "সংযোগ", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "wRPC এর মাধ্যমে দূরবর্তী রাস্ট কাসপা নোডের সাথে সংযোগ করে।", + "Conservative": "রক্ষণশীল", + "Continue": "চালিয়ে যান", + "Copied to clipboard": "ক্লিপবোর্ডে কপি করা হয়েছে", + "Copy": "কপি ", + "Copy logs to clipboard": "ক্লিপবোর্ডে লগ কপি করুন", + "Create New Wallet": "নতুন ওয়ালেট তৈরি করুন", + "Create Wallet": "Create Wallet", + "Create new wallet": "নতুন ওয়ালেট তৈরি করুন", + "Creating Account": "একাউন্ট তৈরী করা হচ্ছে", + "Creating Wallet": "ওয়ালেট তৈরি করা হচ্ছে", + "Custom": "কাস্টম", + "Custom Public Node": "কাস্টম পাবলিক নোড", + "Custom arguments:": "কাস্টম আর্গুমেন্ট:", + "Custom data storage folder": "কাস্টম ডেটা স্টোরেজ ফোল্ডার", + "DAA": "DDA", + "DAA Offset": "DDA অফসেট", + "DAA Range": "DAA রেঞ্জ", + "DB Blocks": "ডিবি ব্লক", + "DB Headers": "ডিবি হেডার", + "Dangerous": "Dangerous", + "Data Storage": "ডেটা ভান্ডার", + "Database Blocks": "ডাটাবেস ব্লক", + "Database Headers": "ডাটাবেস হেডার", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "ওয়ালেট ডিক্রিপ্ট করা হচ্ছে, অনুগ্রহ করে অপেক্ষা করুন...", + "Default": "ডিফল্ট", + "Default Account Name": "ডিফল্ট অ্যাকাউন্টের নাম", + "Delete Data Folder": "ডেটা ফোল্ডার মুছুন", + "Dependencies": "নির্ভরতা", + "Derivation Indexes": "Derivation Indexes", + "Details": "বিস্তারিত", + "Developer Mode": "ডেভেলপার মোড", + "Developer Resources": "ডেভেলপার দের সংস্থান", + "Developer mode enables advanced and experimental features": "ডেভেলপার মোড উন্নত এবং পরীক্ষামূলক বৈশিষ্ট্যগুলিকে সক্ষম করে ৷", + "Difficulty": "অসুবিধা", + "Dimensions": "মাত্রা", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "অক্ষম", + "Disables node connectivity (Offline Mode).": "নোড সংযোগ নিষ্ক্রিয় করে (অফলাইন মোড)।", + "Discord": "ডিসকোর্ড", + "Donations": "দান", + "Double click on the graph to re-center...": "পুনরায় কেন্দ্রীভূত করতে গ্রাফটিতে ডাবল ক্লিক করুন...", + "ECDSA": "ECDSA", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "মার্কেট মনিটর সক্ষম করুন", + "Enable UPnP": "UPnP সক্ষম করুন", + "Enable custom daemon arguments": "কাস্টম ডেমন আর্গুমেন্ট সক্রিয় করুন", + "Enable experimental features": "পরীক্ষামূলক বৈশিষ্ট্যগুলি সক্ষম করুন৷", + "Enable gRPC": "gRPC সক্ষম করুন", + "Enable optional BIP39 passphrase": "ঐচ্ছিক BIP39 পাসফ্রেজ সক্ষম করুন", + "Enable screen capture": "স্ক্রিন ক্যাপচার সক্ষম করুন", + "Enables features currently in development": "বর্তমানে ক্রমবিকাশে থাকা বৈশিষ্ট্যগুলিকে সক্ষম করে৷", + "Enter": "প্রবেশ করুন", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "অ্যাকাউন্টের নাম লিখুন (স্বেচ্ছামূলক)", + "Enter destination address": "Enter destination address", + "Enter first account name": "প্রথম অ্যাকাউন্টের নাম লিখুন", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "ফিশিং ইঙ্গিত লিখুন", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "পরিমাণ লিখুন", + "Enter the password for your wallet": "আপনার ওয়ালেট জন্য পাসওয়ার্ড লিখুন", + "Enter the password to unlock your wallet": "আপনার ওয়ালেট আনলক করতে পাসওয়ার্ড লিখুন", + "Enter wallet name": "ওয়ালেটের নাম লিখুন", + "Enter wallet password": "ওয়ালেট পাসওয়ার্ড লিখুন", + "Enter your wallet secret": "আপনার ওয়ালেট এর গোপন বাক্য লিখুন", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "এক্সপ্লোরার", + "Export Wallet Data": "ওয়ালেট ডেটা এক্সপোর্ট করুন", + "FIRST": "FIRST", + "Faucet": "ফুঁসেট", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "ফাইল হ্যান্ডল", + "File contents": "File contents", + "Filename:": "ফাইলের নাম:", + "Final Amount:": "চূড়ান্ত পরিমাণ:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub রিলিজ", + "Go to Settings": "সেটিংস এ যান", + "Good": "Good", + "Handles": "হ্যান্ডেল", + "Headers": "হেডার", + "High": "High", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "নির্দিষ্ট না থাকলে, অ্যাকাউন্টটি সংখ্যাসূচক আইডি দ্বারা প্রতিনিধিত্ব করা হবে।", + "If you are running locally, use: ": "আপনি যদি স্থানীয়ভাবে চালান তা হলে, ব্যবহার করুন:", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "উপলব্ধ থেকে আমদানি", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "অন্তর্মুখী", + "Integrated Daemon": "ইন্টিগ্রেটেড ডেমন", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "অবৈধ ডেমন আর্গুমেন্ট", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "অবৈধ wRPC URL", + "Json Active Connections": "Json সক্রিয় সংযোগ", + "Json Connection Attempts": "Json সংযোগ প্রচেষ্টা", + "Json Handshake Failures": "Json হ্যান্ডশেক ব্যর্থতা", + "Kaspa Discord": "কাসপা ডিসকর্ড", + "Kaspa Integration Guide": "কাসপা ইন্টিগ্রেশন গাইড", + "Kaspa NG": "কাসপা NG", + "Kaspa NG on GitHub": "GitHub-এ কাসপা NG", + "Kaspa NG online": "কাসপা NG অনলাইন", + "Kaspa Network": "কাসপা নেটওয়ার্ক", + "Kaspa Node": "কাসপা নোড", + "Kaspa p2p Network & Node Connection": "কাসপা p2p নেটওয়ার্ক এবং নোড সংযোগ", + "Kaspa p2p Node": "কাসপা p2p নোড", + "Kaspa p2p Node & Connection": "কাসপা p2p নোড এবং সংযোগ", + "Key Perf.": "মূল পছন্দ", + "LAST": "LAST", + "Language:": "ভাষা:", + "Large (1 BPS)": "বড় (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "স্তর", + "License Information": "লাইসেন্স এর তথ্য", + "Local": "স্থানীয়", + "Local p2p Node Configuration": "স্থানীয় p2p নোড কনফিগারেশন", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "লগ", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "প্রধান কাসপা নেটওয়ার্ক", + "Mainnet": "মেইননেট", + "Managed by the Rusty Kaspa daemon": "রাস্টি কাসপা ডেমন দ্বারা পরিচালিত", + "Market": "মার্কেট", + "Market Cap": "মার্কেট ক্যাপ", + "Market Monitor": "মার্কেট মনিটর", + "Mass Processed": "ম্যাস প্রসেসেড", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "মাঝারি সরু", + "Medium Wide": "মাঝারি প্রশস্ত", + "Memory": "স্মৃতি", + "Mempool": "মেমপুল", + "Mempool Size": "মেম্পুল সাইজ", + "Metrics": "মেট্রিক্স", + "Metrics are not currently available": "মেট্রিক্স বর্তমানে উপলব্ধ নেই", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NodeJS-এর জন্য NPM মডিউল", + "Network": "নেটওয়ার্ক", + "Network Difficulty": "নেটওয়ার্ক অসুবিধা", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "নেটওয়ার্ক ইন্টারফেস", + "Network Peers": "নেটওয়ার্ক সহকর্মীরা", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "পিয়ার নেই", + "No public node selected - please select a public node": "পাবলিক নোড নির্বাচিত - দয়া করে একটি পাবলিক নোড নির্বাচন করুন৷", + "No transactions": "কোনো লেনদেন নেই", + "No wallets found, please create a new wallet": "কোনো ওয়ালেট পাওয়া যায়নি, অনুগ্রহ করে একটি নতুন ওয়ালেট তৈরি করুন", + "Node": "নোড", + "Node Status": "নোড স্থিতি", + "Noise": "গোলমাল", + "None": "গোলমাল", + "Normal": "Normal", + "Not Connected": "সংযোগ বিচ্ছিন্ন", + "Not connected": "সংযোগ বিচ্ছিন্ন", + "Notifications": "বিজ্ঞপ্তি", + "Open Data Folder": "ডাটা ফোল্ডার খুলুন", + "Opening wallet:": "মানিব্যাগ খোলা:", + "Optional": "ঐচ্ছিক", + "Options": "Options", + "Other operations": "অন্যান্য অপারেশন", + "Outbound": "বহির্গামী", + "Overview": "ওভারভিউ", + "PREV": "PREV", + "Parents": "প্যারেন্টস", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "বিগত মাঝারি সময়", + "Payment & Recovery Password": "পেমেন্ট এবং রিকভারি পাসওয়ার্ড", + "Payment Request": "পরিশোধের অনুরোধ", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "সহকর্মীরা", + "Pending: {amount}": "Pending: {amount}", + "Performance": "কর্মক্ষমতা", + "Phishing Hint": "ফিশিং ইঙ্গিত", + "Ping:": "পিং:", + "Please Confirm Deletion": "মুছে ফেলা নিশ্চিত করুন", + "Please configure your Kaspa NG settings": "আপনার Kaspa NG সেটিংস কনফিগার করুন", + "Please connect to Kaspa p2p node": "Kaspa p2p নোডে সংযোগ করুন", + "Please create a stronger password": "একটি শক্তিশালী পাসওয়ার্ড তৈরি করুন", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "অনুগ্রহ করে একটি পরিমাণ লিখুন", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "অনুগ্রহ করে অ্যাকাউন্টের নাম লিখুন", + "Please enter the wallet secret": "ওয়ালেট এর গোপন বাক্যাংশ লিখুন", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "অনুগ্রহ করে মনে রাখবেন, ক্লিপবোর্ডে অনুলিপি করা আপনার স্মৃতিকে ম্যালওয়্যারের কাছে প্রকাশ করার ঝুঁকি বহন করে।", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "অনুগ্রহ করে একটি অ্যাকাউন্টের ধরন নির্বাচন করুন৷", + "Please select export type": "Please select export type", + "Please select the private key to export": "রপ্তানি করতে ব্যক্তিগত কী নির্বাচন করুন", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "ডেটা ফোল্ডার মুছে ফেলার জন্য অনুগ্রহ করে নোডটিকে 'অক্ষম' এ সেট করুন৷", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "অনুগ্রহ করে ডিফল্ট অ্যাকাউন্টের নাম উল্লেখ করুন। একটি ডিফল্ট অ্যাকাউন্ট দিয়ে ওয়ালেট তৈরি করা হবে। একবার তৈরি হয়ে গেলে, আপনি আপনার প্রয়োজন অনুযায়ী অতিরিক্ত অ্যাকাউন্ট তৈরি করতে সক্ষম হবেন।", + "Please specify the name of the new wallet": "অনুগ্রহ করে নতুন ওয়ালেটের নাম উল্লেখ করুন", + "Please specify the private key type for the new wallet": "অনুগ্রহ করে নতুন ওয়ালেটের জন্য ব্যক্তিগত কী প্রকার নির্দিষ্ট করুন৷", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "অনুগ্রহ করে নোডটি সিঙ্ক বা দূরবর্তী নোডের সাথে সংযোগ করার জন্য অপেক্ষা করুন৷", + "Please wait for the node to sync...": "অনুগ্রহ করে নোড সিঙ্ক করার জন্য অপেক্ষা করুন...", + "Please wait...": "অনুগ্রহপূর্বক অপেক্ষা করুন...", + "Presets": "প্রিসেট", + "Price": "মূল্য", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "প্রাইভেট কী মেমোনিক", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "প্রক্রিয়াকৃত বডি", + "Processed Dependencies": "প্রক্রিয়াকৃত নির্ভরতা", + "Processed Headers": "প্রসেসড হেডার", + "Processed Mass Counts": "প্রক্রিয়াকৃত ভর গণনা", + "Processed Transactions": "প্রক্রিয়াকৃত লেনদেন", + "Processing...": "Processing...", + "Protocol:": "প্রোটোকল:", + "Public Node": "পাবলিক নোড", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "রেন্ডম পাবলিক নোড", + "Range:": "পরিসীমা:", + "Receive Address": "ঠিকানা গ্রহণ করুন", + "Recommended arguments for the remote node: ": "দূরবর্তী নোডের জন্য প্রস্তাবিত আর্গুমেন্ট:", + "Redistributables": "পুনরায় বিতরণযোগ্য", + "Remote": "দূরবর্তী", + "Remote Connection:": "দূরবর্তী সংযোগ:", + "Remote p2p Node Configuration": "দূরবর্তী p2p নোড কনফিগারেশন", + "Removes security restrictions, allows for single-letter passwords": "নিরাপত্তা সীমাবদ্ধতা সরিয়ে দেয়, একক-অক্ষরের পাসওয়ার্ডের জন্য অনুমতি দেয়", + "Reset Settings": "রিসেট সেটিংস", + "Reset VSPC": "VSPC রিসেট করুন", + "Resident Memory": "রেসিডেন্ট স্মৃতি", + "Resources": "সম্পদ", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "ডেমন আর্গুমেন্ট ফলাফল:", + "Rust Wallet SDK": "রাস্ট ওয়ালেট SDK", + "Rusty Kaspa on GitHub": "GitHub-এ রাস্টি কাসপা", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "গোপন খুব দুর্বল", + "Secret score:": "গোপন স্কোর:", + "Select Account": "নির্বাচন অ্যাকাউন্ট", + "Select Private Key Type": "ব্যক্তিগত কী এর প্রকার নির্বাচন করুন", + "Select Public Node": "পাবলিক নোড নির্বাচন করুন", + "Select Wallet": "Wallet নির্বাচন করুন", + "Select a wallet to unlock": "আনলক করতে একটি ওয়ালেট নির্বাচন করুন", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "পাঠান", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "সেবা", + "Settings": "সেটিংস", + "Show DAA": "DAA দেখান", + "Show Grid": "গ্রিড দেখান", + "Show VSPC": "VSPC দেখান", + "Show balances in alternate currencies for testnet coins": "টেস্টনেট কয়েনের জন্য বিকল্প মুদ্রায় ব্যালেন্স দেখান", + "Show passphrase": "Show passphrase", + "Show password": "পাসওয়ার্ড দেখাও", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "টেস্টনেট কয়েন ব্যবহার করার সময় বিকল্প মুদ্রায় (বিটিসি, ইউএসডি) ব্যালেন্স দেখায় যেন আপনি মেইননেটে আছেন", + "Skip": "এড়িয়ে যান", + "Small (10 BPS)": "ছোট (10 BPS)", + "Spread": "ছড়িয়ে পড়া", + "Stage": "মঞ্চ", + "Starting...": "শুরু হচ্ছে...", + "Statistics": "পরিসংখ্যান", + "Stop": "Stop", + "Stor Read": "স্টোর রিড", + "Stor Write": "স্টোর লিখুন", + "Storage": "স্টোরেজ", + "Storage Read": "স্টোরেজ রিড", + "Storage Read/s": "স্টোরেজ রিড/স", + "Storage Size": "Storage Size", + "Storage Write": "স্টোরেজ লিখুন", + "Storage Write/s": "স্টোরেজ লিখুন", + "Strong": "Strong", + "Submitted Blocks": "জমা ব্লক", + "Syncing Cryptographic Proof...": "ক্রিপ্টোগ্রাফিক প্রমাণ সিঙ্ক হচ্ছে...", + "Syncing DAG Blocks...": "DAG ব্লক সিঙ্ক হচ্ছে...", + "Syncing Headers...": "শিরোনাম সিঙ্ক হচ্ছে...", + "Syncing UTXO entries...": "UTXO এন্ট্রি সিঙ্ক করা হচ্ছে...", + "Syncing...": "সিঙ্ক হচ্ছে...", + "System": "পদ্ধতি", + "TPS": "TPS", + "Testnet 10": "টেস্টনেট 10", + "Testnet 11": "টেস্টনেট 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "কাসপা NG সফ্টওয়্যারটি কাসপা ব্লকডিএজি ক্রিপ্টোকারেন্সি নেটওয়ার্কে নিবেদিত একটি অত্যাধুনিক সফ্টওয়্যার প্ল্যাটফর্ম তৈরির উপর দৃষ্টি নিবদ্ধ করে চলমান প্রচেষ্টার প্রতিনিধিত্ব করে। আদর্শগত, এই সফ্টওয়্যারটি নিরাপত্তা, গোপনীয়তা, কর্মক্ষমতা এবং বিকেন্দ্রীকরণকে অগ্রাধিকার দেয়।", + "The balance may be out of date during node sync": "নোড সিঙ্কের সময় ব্যালেন্স পুরানো হতে পারে", + "The following will guide you through the process of creating or importing a wallet.": "নিম্নলিখিতটি আপনাকে একটি ওয়ালেট তৈরি বা আমদানি করার প্রক্রিয়ার মাধ্যমে গাইড করবে৷", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "নোডটি বর্তমানে Kaspa p2p নেটওয়ার্কের সাথে সিঙ্ক হচ্ছে।", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "নোডটি বর্তমানে Kaspa p2p নেটওয়ার্কের সাথে সিঙ্ক হচ্ছে। অ্যাকাউন্ট ব্যালেন্স পুরানো হতে পারে.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "নোডটি একটি চাইল্ড ডেমন প্রক্রিয়া হিসাবে তৈরি করা হয়েছে (প্রস্তাবিত)।", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "নোডটি কাসপা-এনজি অ্যাপ্লিকেশন প্রক্রিয়ার একটি অংশ হিসাবে চলে। এটি যোগাযোগ ওভারহেড (পরীক্ষামূলক) হ্রাস করে।", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "থিম এর রঙ", + "Theme Color:": "থিম এর রঙ:", + "Theme Style": "থিম শৈলী", + "Theme Style:": "থিম শৈলী:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "আপনি মানুয়ালি একটি ব্যক্তিগত কী পুনরুদ্ধার শুরু না করা পর্যন্ত এই ওয়ালেটটি আপনাকে প্রাইভেট কী এর জন্য কখনই জিজ্ঞাসা করবে না।", + "Threshold": "থ্রেশহোল্ড", + "Time Offset:": "সময় অফসেট:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "টিপ হ্যাশ", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "মোট Rx", + "Total Rx/s": "মোট Rx/s", + "Total Tx": "মোট লেনদেন", + "Total Tx/s": "মোট লেনদেন", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "ব্যাকগ্রাউন্ডে ট্র্যাক করুন", + "Transactions": "লেনদেন", + "Transactions:": "লেনদেন:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "টাইপ", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO ম্যানেজার", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "সমস্যা সমাধান না হওয়া পর্যন্ত নোড সেটিংস পরিবর্তন করতে অক্ষম", + "Unable to store settings": "Unable to store settings", + "Unlock": "আনলক", + "Unlock Wallet": "ওয়ালেট আনলক করুন", + "Unlocking": "আনলকিং", + "Update Available to version": "সংস্করণ উপলব্ধ আপডেট", + "Updating...": "আপডেট হচ্ছে...", + "Uptime:": "আপটাইম:", + "Use 50%-75% of available system memory": "উপলব্ধ সিস্টেম মেমরির 50 %-75% ব্যবহার করুন", + "Use all available system memory": "সমস্ত উপলব্ধ সিস্টেম মেমরি ব্যবহার করুন", + "User Agent": "ইউজার এজেন্ট ", + "User Interface": "ব্যবহারকারী ইন্টারফেস", + "Very dangerous (may be cracked within few seconds)": "খুব বিপজ্জনক (কয়েক সেকেন্ডের মধ্যে ক্রেক হতে পারে)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "ভার্চুয়াল প্যারেন্ট", + "Virtual DAA Score": "ভার্চুয়াল DAA স্কোর", + "Virtual Memory": "ভার্চুয়াল মেমরি", + "Virtual Parent Hashes": "ভার্চুয়াল প্যারেন্ট হ্যাশ", + "Volume": "​পরিমাণ", + "WASM SDK for JavaScript and TypeScript": "জাভাস্ক্রিপ্ট এবং টাইপস্ক্রিপ্টের জন্য WASM SDK", + "Wallet": "ওয়ালেট ", + "Wallet Created": "ওয়ালেট তৈরি করা হয়েছে", + "Wallet Encryption Password": "ওয়ালেট এনক্রিপশন পাসওয়ার্ড", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "ওয়ালেটের নাম", + "Wallet Secret": "ওয়ালেট গোপন বাক্যাংশ", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "ওয়ালেট পাসওয়ার্ড আপনার ওয়ালেট ডেটা এনক্রিপ্ট করতে ব্যবহৃত হয়।", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "ওয়ালেট:", + "We greatly appreciate your help in backing our efforts.": "আমরা আমাদের প্রচেষ্টাকে সমর্থন করার জন্য আপনার সাহায্যের প্রশংসা করি।", + "Weak": "Weak", + "Welcome to Kaspa NG": "কাসপা NG তে স্বাগতম", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "আপনি বর্তমানে কাসপা নোডের সাথে সংযুক্ত নন।", + "You can configure remote connection in Settings": "আপনি সেটিংসে দূরবর্তী সংযোগ কনফিগার করতে পারেন", + "You can create multiple wallets, but only one wallet can be open at a time.": "আপনি একাধিক ওয়ালেট তৈরি করতে পারেন, কিন্তু একবারে শুধুমাত্র একটি ওয়ালেট খোলা থাকতে পারে।", + "You must be connected to a node...": "আপনাকে অবশ্যই একটি নোডের সাথে সংযুক্ত থাকতে হবে...", + "Your default wallet private key mnemonic is:": "আপনার ডিফল্ট ওয়ালেট প্রাইভেট কী মেমোনিক হল:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "আপনার স্মৃতি সংক্রান্ত বাক্যাংশ আপনাকে আপনার ব্যক্তিগত কী পুনরায় তৈরি করতে দেয়। যে ব্যক্তির কাছে এই বাক্যাংশের অ্যাক্সেস রয়েছে তার এটিতে সংরক্ষিত কাস্পার সম্পূর্ণ নিয়ন্ত্রণ থাকবে। আপনার স্মৃতিশক্তি নিরাপদ রাখুন। এটি লিখে রাখুন এবং একটি নিরাপদে সংরক্ষণ করুন, বিশেষত আগুন-প্রতিরোধী স্থানে। এই কম্পিউটার বা মোবাইল ডিভাইসে আপনার স্মৃতিচিহ্ন সংরক্ষণ করবেন না। আপনি ম্যানুয়ালি একটি ব্যক্তিগত কী পুনরুদ্ধার শুরু না করা পর্যন্ত এই ওয়ালেটটি আপনাকে এই স্মৃতিকথার জন্য কখনই জিজ্ঞাসা করবে না।", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "আপনার প্রাইভেট মেমোনিক কী হল:", + "Your wallet has been created and is ready to use.": "আপনার ওয়ালেট তৈরি করা হয়েছে এবং ব্যবহারের জন্য প্রস্তুত৷", + "Zoom": "জুম", + "bye!": "বিদায়", + "gRPC Network Interface & Port": "gRPC নেটওয়ার্ক ইন্টারফেস এবং পোর্ট", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "of", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "peer", + "peers": "peers", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "wRPC Connection Settings", + "wRPC Encoding:": "wRPC Encoding:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" + }, + "cs": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", "1 BPS test network": "1 BPS test network", "10 BPS test network": "10 BPS test network", "12 word mnemonic": "12 word mnemonic", "24 word mnemonic": "24 word mnemonic", "24h Change": "24h Change", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", "A binary at another location is spawned a child process (experimental, for development purposes only).": "A binary at another location is spawned a child process (experimental, for development purposes only).", "A random node will be selected on startup": "A random node will be selected on startup", "A wallet is stored in a file on your computer.": "A wallet is stored in a file on your computer.", "Account Index": "Account Index", "Account Name": "Account Name", + "Account not found": "Account not found", "Account:": "Account:", "Activate custom daemon arguments": "Activate custom daemon arguments", "Active p2p Peers": "Active p2p Peers", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", "Address derivation scan": "Address derivation scan", "Address:": "Address:", "Advanced": "Advanced", - "Advanced Options": "Advanced Options", "All": "All", + "Allow clipboard copy": "Allow clipboard copy", "Allow custom arguments for the Rusty Kaspa daemon": "Allow custom arguments for the Rusty Kaspa daemon", "Allows you to take screenshots from within the application": "Allows you to take screenshots from within the application", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", "Apply": "Apply", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", "Balance: N/A": "Balance: N/A", "Bandwidth": "Bandwidth", "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.", @@ -891,13 +1661,14 @@ "CONNECTED": "CONNECTED", "CPU": "CPU", "Cache Memory Size": "Cache Memory Size", - "Cache Memory Size:": "Cache Memory Size:", "Cancel": "Cancel", "Cannot delete data folder while the node is running": "Cannot delete data folder while the node is running", "Capture a screenshot": "Capture a screenshot", + "Capture saved to {path}": "Capture saved to {path}", "Center VSPC": "Center VSPC", "Chain Blocks": "Chain Blocks", "Change Address": "Change Address", + "Change Wallet Secret": "Change Wallet Secret", "Check for Software Updates on GitHub": "Check for Software Updates on GitHub", "Check for Updates": "Check for Updates", "Clear": "Clear", @@ -905,25 +1676,23 @@ "Client RPC": "Client RPC", "Close": "Close", "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", "Confirm wallet password": "Confirm wallet password", - "Connect to a local node (localhost)": "Connect to a local node (localhost)", "Connecting to": "Connecting to", "Connection": "Connection", "Connections": "Connections", "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connects to a Remote Rusty Kaspa Node via wRPC.", "Conservative": "Conservative", "Continue": "Continue", - "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.": "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.", "Copied to clipboard": "Copied to clipboard", "Copy": "Copy", "Copy logs to clipboard": "Copy logs to clipboard", - "Create New Account": "Create New Account", "Create New Wallet": "Create New Wallet", + "Create Wallet": "Create Wallet", "Create new wallet": "Create new wallet", "Creating Account": "Creating Account", "Creating Wallet": "Creating Wallet", "Custom": "Custom", - "Custom Network Interface:": "Custom Network Interface:", "Custom Public Node": "Custom Public Node", "Custom arguments:": "Custom arguments:", "Custom data storage folder": "Custom data storage folder", @@ -936,6 +1705,8 @@ "Data Storage": "Data Storage", "Database Blocks": "Database Blocks", "Database Headers": "Database Headers", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", "Decrypting wallet, please wait...": "Decrypting wallet, please wait...", "Default": "Default", "Default Account Name": "Default Account Name", @@ -948,13 +1719,16 @@ "Developer mode enables advanced and experimental features": "Developer mode enables advanced and experimental features", "Difficulty": "Difficulty", "Dimensions": "Dimensions", - "Disable password score restrictions": "Disable password score restrictions", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", "Disabled": "Disabled", "Disables node connectivity (Offline Mode).": "Disables node connectivity (Offline Mode).", "Discord": "Discord", "Donations": "Donations", "Double click on the graph to re-center...": "Double click on the graph to re-center...", "ECDSA": "ECDSA", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", "Enable Market Monitor": "Enable Market Monitor", "Enable UPnP": "Enable UPnP", "Enable custom daemon arguments": "Enable custom daemon arguments", @@ -964,48 +1738,68 @@ "Enable screen capture": "Enable screen capture", "Enables features currently in development": "Enables features currently in development", "Enter": "Enter", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", "Enter account name (optional)": "Enter account name (optional)", + "Enter destination address": "Enter destination address", "Enter first account name": "Enter first account name", "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", "Enter phishing hint": "Enter phishing hint", + "Enter priority fees": "Enter priority fees", "Enter the amount": "Enter the amount", "Enter the password for your wallet": "Enter the password for your wallet", "Enter the password to unlock your wallet": "Enter the password to unlock your wallet", "Enter wallet name": "Enter wallet name", "Enter wallet password": "Enter wallet password", "Enter your wallet secret": "Enter your wallet secret", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", "Explorer": "Explorer", "Export Wallet Data": "Export Wallet Data", + "FIRST": "FIRST", "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", "File Handles": "File Handles", + "File contents": "File contents", "Filename:": "Filename:", "Final Amount:": "Final Amount:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", "GitHub Release": "GitHub Release", "Go to Settings": "Go to Settings", + "Good": "Good", "Handles": "Handles", "Headers": "Headers", - "I have a 12 word mnemonic legacy account": "I have a 12 word mnemonic legacy account", + "High": "High", "IBD:": "IBD:", "If not specified, the account will be represented by the numeric id.": "If not specified, the account will be represented by the numeric id.", "If you are running locally, use: ": "If you are running locally, use: ", "Import Existing Private Key": "Import Existing Private Key", "Import existing": "Import existing", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", "Inbound": "Inbound", - "Include QoS Priority Fees": "Include QoS Priority Fees", "Integrated Daemon": "Integrated Daemon", + "Invalid amount:": "Invalid amount:", "Invalid daemon arguments": "Invalid daemon arguments", - "Invalid network type - expected: testnet-10 connected to: testnet-11": "Invalid network type - expected: testnet-10 connected to: testnet-11", + "Invalid fee amount:": "Invalid fee amount:", "Invalid wRPC URL": "Invalid wRPC URL", - "It is recommended that you add a priority fee of at least": "It is recommended that you add a priority fee of at least", "Json Active Connections": "Json Active Connections", "Json Connection Attempts": "Json Connection Attempts", "Json Handshake Failures": "Json Handshake Failures", "Kaspa Discord": "Kaspa Discord", "Kaspa Integration Guide": "Kaspa Integration Guide", "Kaspa NG": "Kaspa NG", - "Kaspa NG Online": "Kaspa NG Online", - "Kaspa NG Web App": "Kaspa NG Web App", "Kaspa NG on GitHub": "Kaspa NG on GitHub", "Kaspa NG online": "Kaspa NG online", "Kaspa Network": "Kaspa Network", @@ -1014,22 +1808,30 @@ "Kaspa p2p Node": "Kaspa p2p Node", "Kaspa p2p Node & Connection": "Kaspa p2p Node & Connection", "Key Perf.": "Key Perf.", + "LAST": "LAST", "Language:": "Language:", "Large (1 BPS)": "Large (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", "Levels": "Levels", "License Information": "License Information", "Local": "Local", "Local p2p Node Configuration": "Local p2p Node Configuration", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", "Logs": "Logs", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", "MT": "MT", "Main Kaspa network": "Main Kaspa network", "Mainnet": "Mainnet", - "Mainnet (Main Kaspa network)": "Mainnet (Main Kaspa network)", "Managed by the Rusty Kaspa daemon": "Managed by the Rusty Kaspa daemon", "Market": "Market", "Market Cap": "Market Cap", "Market Monitor": "Market Monitor", "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", "Medium Narrow": "Medium Narrow", "Medium Wide": "Medium Wide", "Memory": "Memory", @@ -1037,13 +1839,20 @@ "Mempool Size": "Mempool Size", "Metrics": "Metrics", "Metrics are not currently available": "Metrics are not currently available", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", "NPM Modules for NodeJS": "NPM Modules for NodeJS", "Network": "Network", "Network Difficulty": "Network Difficulty", - "Network Fees:": "Network Fees:", + "Network Fee Estimator": "Network Fee Estimator", "Network Interface": "Network Interface", "Network Peers": "Network Peers", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", "No peers": "No peers", "No public node selected - please select a public node": "No public node selected - please select a public node", "No transactions": "No transactions", @@ -1052,21 +1861,29 @@ "Node Status": "Node Status", "Noise": "Noise", "None": "None", + "Normal": "Normal", "Not Connected": "Not Connected", "Not connected": "Not connected", "Notifications": "Notifications", "Open Data Folder": "Open Data Folder", "Opening wallet:": "Opening wallet:", "Optional": "Optional", + "Options": "Options", "Other operations": "Other operations", "Outbound": "Outbound", "Overview": "Overview", + "PREV": "PREV", "Parents": "Parents", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", "Passwords do not match": "Passwords do not match", "Past Median Time": "Past Median Time", "Payment & Recovery Password": "Payment & Recovery Password", "Payment Request": "Payment Request", + "Payment request to account: {account}": "Payment request to account: {account}", "Peers": "Peers", + "Pending: {amount}": "Pending: {amount}", "Performance": "Performance", "Phishing Hint": "Phishing Hint", "Ping:": "Ping:", @@ -1074,38 +1891,45 @@ "Please configure your Kaspa NG settings": "Please configure your Kaspa NG settings", "Please connect to Kaspa p2p node": "Please connect to Kaspa p2p node", "Please create a stronger password": "Please create a stronger password", - "Please enter": "Please enter", - "Please enter KAS amount to send": "Please enter KAS amount to send", - "Please enter additional": "Please enter additional", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", "Please enter an amount": "Please enter an amount", - "Please enter mnemonic comprised of 24 words": "Please enter mnemonic comprised of 24 words", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", "Please enter the account name": "Please enter the account name", "Please enter the wallet secret": "Please enter the wallet secret", - "Please note that this is a beta release. Until this message is removed, please avoid using the wallet with mainnet funds.": "Please note that this is a beta release. Until this message is removed, please avoid using the wallet with mainnet funds.", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", "Please select an account type": "Please select an account type", + "Please select export type": "Please select export type", "Please select the private key to export": "Please select the private key to export", "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", "Please set node to 'Disabled' to delete the data folder": "Please set node to 'Disabled' to delete the data folder", "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.", "Please specify the name of the new wallet": "Please specify the name of the new wallet", "Please specify the private key type for the new wallet": "Please specify the private key type for the new wallet", + "Please support Kaspa NG development": "Please support Kaspa NG development", "Please wait for the node to sync or connect to a remote node.": "Please wait for the node to sync or connect to a remote node.", "Please wait for the node to sync...": "Please wait for the node to sync...", "Please wait...": "Please wait...", "Presets": "Presets", "Price": "Price", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", "Processed Bodies": "Processed Bodies", "Processed Dependencies": "Processed Dependencies", "Processed Headers": "Processed Headers", "Processed Mass Counts": "Processed Mass Counts", "Processed Transactions": "Processed Transactions", + "Processing...": "Processing...", "Protocol:": "Protocol:", "Public Node": "Public Node", - "Public Nodes": "Public Nodes", - "Public Server": "Public Server", - "Public p2p Nodes for": "Public p2p Nodes for", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", "Quit": "Quit", "Random Public Node": "Random Public Node", "Range:": "Range:", @@ -1120,25 +1944,34 @@ "Reset VSPC": "Reset VSPC", "Resident Memory": "Resident Memory", "Resources": "Resources", + "Restart": "Restart", + "Restore window": "Restore window", "Resulting daemon arguments:": "Resulting daemon arguments:", "Rust Wallet SDK": "Rust Wallet SDK", "Rusty Kaspa on GitHub": "Rusty Kaspa on GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", "Secret is too weak": "Secret is too weak", "Secret score:": "Secret score:", "Select Account": "Select Account", - "Select Available Server": "Select Available Server", "Select Private Key Type": "Select Private Key Type", "Select Public Node": "Select Public Node", "Select Wallet": "Select Wallet", "Select a wallet to unlock": "Select a wallet to unlock", + "Select file...": "Select file...", "Select this option if your wallet was created": "Select this option if your wallet was created", "Send": "Send", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", "Services": "Services", "Settings": "Settings", "Show DAA": "Show DAA", "Show Grid": "Show Grid", "Show VSPC": "Show VSPC", "Show balances in alternate currencies for testnet coins": "Show balances in alternate currencies for testnet coins", + "Show passphrase": "Show passphrase", "Show password": "Show password", "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet", "Skip": "Skip", @@ -1147,15 +1980,17 @@ "Stage": "Stage", "Starting...": "Starting...", "Statistics": "Statistics", + "Stop": "Stop", "Stor Read": "Stor Read", "Stor Write": "Stor Write", "Storage": "Storage", "Storage Read": "Storage Read", "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", "Storage Write": "Storage Write", "Storage Write/s": "Storage Write/s", + "Strong": "Strong", "Submitted Blocks": "Submitted Blocks", - "Supporting Kaspa NG development": "Supporting Kaspa NG development", "Syncing Cryptographic Proof...": "Syncing Cryptographic Proof...", "Syncing DAG Blocks...": "Syncing DAG Blocks...", "Syncing Headers...": "Syncing Headers...", @@ -1164,40 +1999,49 @@ "System": "System", "TPS": "TPS", "Testnet 10": "Testnet 10", - "Testnet 10 (1 BPS)": "Testnet 10 (1 BPS)", "Testnet 11": "Testnet 11", - "Testnet 11 (10 BPS)": "Testnet 11 (10 BPS)", - "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.": "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.", "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.", "The balance may be out of date during node sync": "The balance may be out of date during node sync", "The following will guide you through the process of creating or importing a wallet.": "The following will guide you through the process of creating or importing a wallet.", - "The network is currently experiencing high load": "The network is currently experiencing high load", + "The network is currently congested.": "The network is currently congested.", "The node is currently syncing with the Kaspa p2p network.": "The node is currently syncing with the Kaspa p2p network.", "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).", - "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you lose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you lose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", "Theme Color": "Theme Color", "Theme Color:": "Theme Color:", "Theme Style": "Theme Style", "Theme Style:": "Theme Style:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", "Threshold": "Threshold", "Time Offset:": "Time Offset:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", "Tip Hashes": "Tip Hashes", - "Tools ⏷": "Tools ⏷", + "Too many words in the": "Too many words in the", + "Tools": "Tools", "Total Rx": "Total Rx", "Total Rx/s": "Total Rx/s", "Total Tx": "Total Tx", "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", "Track in the background": "Track in the background", "Transactions": "Transactions", "Transactions:": "Transactions:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", "Type": "Type", + "URI copied to clipboard": "URI copied to clipboard", "UTXO Manager": "UTXO Manager", "UTXOs": "UTXOs", "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", "Unable to change node settings until the problem is resolved": "Unable to change node settings until the problem is resolved", + "Unable to store settings": "Unable to store settings", "Unlock": "Unlock", "Unlock Wallet": "Unlock Wallet", "Unlocking": "Unlocking", @@ -1209,6 +2053,7 @@ "User Agent": "User Agent", "User Interface": "User Interface", "Very dangerous (may be cracked within few seconds)": "Very dangerous (may be cracked within few seconds)", + "Very strong": "Very strong", "Very weak": "Very weak", "Virt Parents": "Virt Parents", "Virtual DAA Score": "Virtual DAA Score", @@ -1219,9 +2064,13 @@ "Wallet": "Wallet", "Wallet Created": "Wallet Created", "Wallet Encryption Password": "Wallet Encryption Password", + "Wallet File Secret": "Wallet File Secret", "Wallet Name": "Wallet Name", "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", "Wallet password is used to encrypt your wallet data.": "Wallet password is used to encrypt your wallet data.", + "Wallet with this name already exists": "Wallet with this name already exists", "Wallet:": "Wallet:", "We greatly appreciate your help in backing our efforts.": "We greatly appreciate your help in backing our efforts.", "Weak": "Weak", @@ -1234,10 +2083,10 @@ "Your default wallet private key mnemonic is:": "Your default wallet private key mnemonic is:", "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", "Your private key mnemonic is:": "Your private key mnemonic is:", "Your wallet has been created and is ready to use.": "Your wallet has been created and is ready to use.", "Zoom": "Zoom", - "amount to send": "amount to send", "bye!": "bye!", "gRPC Network Interface & Port": "gRPC Network Interface & Port", "gRPC Rx": "gRPC Rx", @@ -1245,7 +2094,6 @@ "gRPC Tx": "gRPC Tx", "gRPC Tx/s": "gRPC Tx/s", "of": "of", - "of its capacity.": "of its capacity.", "p2p RPC": "p2p RPC", "p2p Rx": "p2p Rx", "p2p Rx/s": "p2p Rx/s", @@ -1253,7 +2101,6 @@ "p2p Tx/s": "p2p Tx/s", "peer": "peer", "peers": "peers", - "to ensure faster transaction acceptance.": "to ensure faster transaction acceptance.", "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", "wRPC Borsh Rx": "wRPC Borsh Rx", "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", @@ -1266,3068 +2113,13107 @@ "wRPC JSON Tx": "wRPC JSON Tx", "wRPC JSON Tx/s": "wRPC JSON Tx/s", "wRPC URL:": "wRPC URL:", - "words": "words" + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" }, - "es": { - "1 BPS test network": "Red de pruebas 1 BPS", - "10 BPS test network": "Red de pruebas 10 BPS", - "12 word mnemonic": "Mnemotécnica de 12 palabras", - "24 word mnemonic": "Mnemotécnica de 24 palabras", - "24h Change": "Cambio en 24h", - "A binary at another location is spawned a child process (experimental, for development purposes only).": "Un binario en otra ubicación a creado un proceso dependiente (experimental, únicamente para desarrollo)", - "A random node will be selected on startup": "Se seleccionará un nodo aleatoriamente al inicio", - "A wallet is stored in a file on your computer.": "Hay una billetera en un archivo de su ordenador", - "Account Index": "Índice de la cuenta", - "Account Name": "Nombre de la cuenta", - "Account:": "Cuenta:", - "Activate custom daemon arguments": "Activar argumentos del daemon personalizado ", - "Active p2p Peers": "Usuarios p2p activos", - "Address derivation scan": "Escaneo de derivación de dirección", - "Address:": "Dirección:", - "Advanced": "Avanzado", - "All": "Todo", - "Allow custom arguments for the Rusty Kaspa daemon": "Permitir argumentos personalizados para el daemon de Rusty Kaspa", - "Allows you to take screenshots from within the application": "Permite tomar capturas de pantalla desde dentro de la aplicación", - "Apply": "Aplicar", - "Balance: N/A": "Saldo: N/A", - "Bandwidth": "Ancho de banda", - "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Como está centrado en la seguridad y el rendimiento, este software se ha desarrollado por completo en Rust, lo que ha requerido significativamente más tiempo y esfuerzo que otros softwares tradicionalmente desarrollados para web.", - "Bezier Curves": "Curvas Bezier", + "da": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS test network", + "10 BPS test network": "10 BPS test network", + "12 word mnemonic": "12 word mnemonic", + "24 word mnemonic": "24 word mnemonic", + "24h Change": "24h Change", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "A binary at another location is spawned a child process (experimental, for development purposes only).", + "A random node will be selected on startup": "A random node will be selected on startup", + "A wallet is stored in a file on your computer.": "A wallet is stored in a file on your computer.", + "Account Index": "Account Index", + "Account Name": "Account Name", + "Account not found": "Account not found", + "Account:": "Account:", + "Activate custom daemon arguments": "Activate custom daemon arguments", + "Active p2p Peers": "Active p2p Peers", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Address derivation scan", + "Address:": "Address:", + "Advanced": "Advanced", + "All": "All", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Allow custom arguments for the Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Allows you to take screenshots from within the application", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Apply", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Balance: N/A", + "Bandwidth": "Bandwidth", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.", + "Bezier Curves": "Bezier Curves", "Block DAG": "Block DAG", - "Block Scale": "Escala de bloques", - "Blocks": "Bloques", - "Bodies": "Cuerpos", - "Borsh Active Connections": "Conexiones Activas Borsh", - "Borsh Connection Attempts": "Intentos de Conexión Borsh", - "Borsh Handshake Failures": "Fallos Handshake Borsh", - "Build": "Versión", - "CONNECTED": "CONECTADO", - "CPU": "CPU", - "Cache Memory Size": "Tamaño memoria caché", - "Cache Memory Size:": "Tamaño memoria caché:", - "Cancel": "Cancelar", - "Cannot delete data folder while the node is running": "No se puede eliminar la carpeta de datos mientras el nodo está activo", - "Capture a screenshot": "Tomar captura de pantalla", - "Center VSPC": "Centrar VSPC", - "Chain Blocks": "Bloques de la Cadena", - "Change Address": "Cambiar dirección", - "Check for Software Updates on GitHub": "Compruebe si hay actualizaciones de software en Github", - "Check for Updates": "Comprobar actualizaciones", - "Clear": "Borrar", - "Click to try another server...": "Haz clic para probar otro servidor", - "Client RPC": "RPC cliente", - "Close": "Cerrar", - "Confirm wallet password": "Confirme contraseña de la billetera", - "Connect to a local node (localhost)": "Conectar a nodo local (localhost)", - "Connecting to": "Conectar a", - "Connection": "Conexión", - "Connections": "Conexiones", - "Connects to a Remote Rusty Kaspa Node via wRPC.": "Conecta a un Nodo Rusty Kaspa Remoto por wRPC", - "Conservative": "Conservador", - "Continue": "Continuar", - "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.": "Las contribuciones a este proyecto apoyan directamente al software Kaspa NG y su ecosistema", - "Copied to clipboard": "Copiado al portapapeles", - "Copy": "Copiar", - "Copy logs to clipboard": "Copia los registros al portapapeles", - "Create New Account": "Crear cuenta nueva", - "Create New Wallet": "Crear billetera nueva", - "Create new wallet": "Crear billetera nueva", - "Creating Account": "Creando cuenta", - "Creating Wallet": "Creando billetera", - "Custom": "Personalizado", - "Custom Public Node": "Nodo Público Personalizado", - "Custom arguments:": "Argumentos personalizados:", + "Block Scale": "Block Scale", + "Blocks": "Blocks", + "Bodies": "Bodies", + "Borsh Active Connections": "Borsh Active Connections", + "Borsh Connection Attempts": "Borsh Connection Attempts", + "Borsh Handshake Failures": "Borsh Handshake Failures", + "Build": "Build", + "CONNECTED": "CONNECTED", + "CPU": "CPU", + "Cache Memory Size": "Cache Memory Size", + "Cancel": "Cancel", + "Cannot delete data folder while the node is running": "Cannot delete data folder while the node is running", + "Capture a screenshot": "Capture a screenshot", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Center VSPC", + "Chain Blocks": "Chain Blocks", + "Change Address": "Change Address", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Check for Software Updates on GitHub", + "Check for Updates": "Check for Updates", + "Clear": "Clear", + "Click to try another server...": "Click to try another server...", + "Client RPC": "Client RPC", + "Close": "Close", + "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Confirm wallet password", + "Connecting to": "Connecting to", + "Connection": "Connection", + "Connections": "Connections", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connects to a Remote Rusty Kaspa Node via wRPC.", + "Conservative": "Conservative", + "Continue": "Continue", + "Copied to clipboard": "Copied to clipboard", + "Copy": "Copy", + "Copy logs to clipboard": "Copy logs to clipboard", + "Create New Wallet": "Create New Wallet", + "Create Wallet": "Create Wallet", + "Create new wallet": "Create new wallet", + "Creating Account": "Creating Account", + "Creating Wallet": "Creating Wallet", + "Custom": "Custom", + "Custom Public Node": "Custom Public Node", + "Custom arguments:": "Custom arguments:", + "Custom data storage folder": "Custom data storage folder", "DAA": "DAA", - "DAA Offset": "Desviación DAA", - "DAA Range": "Rango DAA", - "DB Blocks": "Bloques DB", - "DB Headers": "Encabezamientos DB", - "Database Blocks": "Bloques en Base de Datos", - "Database Headers": "Encabezamientos Base de Datos", - "Decrypting wallet, please wait...": "Desencriptando billetera, por favor espere...", - "Default": "Por defecto", - "Default Account Name": "Nombre por defecto de la cuenta", - "Delete Data Folder": "Eliminar carpeta de datos", - "Dependencies": "Dependencias", - "Derivation Indexes": "Índices de derivación", - "Details": "Detalles", - "Developer Mode": "Modo desarrollador", - "Developer Resources": "Recursos para desarrolladores", - "Developer mode enables advanced and experimental features": "El modo Desarrollador activa funciones avanzadas y experimentales", - "Difficulty": "Dificultad", - "Dimensions": "Dimensiones", - "Disable password score restrictions": "Desactivar las restricciones de calidad de contraseña", - "Disabled": "Desactivado", - "Disables node connectivity (Offline Mode).": "Desactiva la conectividad del nodo (modo fuera de linea)", + "DAA Offset": "DAA Offset", + "DAA Range": "DAA Range", + "DB Blocks": "DB Blocks", + "DB Headers": "DB Headers", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", + "Database Blocks": "Database Blocks", + "Database Headers": "Database Headers", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Decrypting wallet, please wait...", + "Default": "Default", + "Default Account Name": "Default Account Name", + "Delete Data Folder": "Delete Data Folder", + "Dependencies": "Dependencies", + "Derivation Indexes": "Derivation Indexes", + "Details": "Details", + "Developer Mode": "Developer Mode", + "Developer Resources": "Developer Resources", + "Developer mode enables advanced and experimental features": "Developer mode enables advanced and experimental features", + "Difficulty": "Difficulty", + "Dimensions": "Dimensions", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Disabled", + "Disables node connectivity (Offline Mode).": "Disables node connectivity (Offline Mode).", "Discord": "Discord", - "Donations": "Donaciones", - "Double click on the graph to re-center...": "Haz doble clic en el gráfico para volver a centrar", + "Donations": "Donations", + "Double click on the graph to re-center...": "Double click on the graph to re-center...", "ECDSA": "ECDSA", - "Enable Market Monitor": "Activar Monitor del Mercado", - "Enable UPnP": "Activar UPnP", - "Enable custom daemon arguments": "Activar argumentos del daemon personalizado", - "Enable experimental features": "Activar funciones experimentales", - "Enable gRPC": "Activar gRPC", - "Enable optional BIP39 passphrase": "Habilitar frase de contraseña opcional BIP39", - "Enable screen capture": "Habilitar captura de pantalla", - "Enables features currently in development": "Habilita funciones actualmente en desarrollo", - "Enter": "Intro", - "Enter account name (optional)": "Introduce un nombre de cuenta (opcional)", - "Enter first account name": "Introduce el primer nombre de cuenta", - "Enter phishing hint": "Introduce una pregunta de seguridad", - "Enter the amount": "Introduce la cantidad", - "Enter the password for your wallet": "Introduce la contraseña para tu billetera", - "Enter the password to unlock your wallet": "Introduce la contraseña para desbloquear tu billetera", - "Enter wallet name": "Introduce el nombre de la billetera", - "Enter wallet password": "Introduce la contraseña de la billetera", - "Enter your wallet secret": "Introduce la clave secreta de tu billetera", - "Explorer": "Explorador", - "Export Wallet Data": "Exportar Datos de la Billetera", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Enable Market Monitor", + "Enable UPnP": "Enable UPnP", + "Enable custom daemon arguments": "Enable custom daemon arguments", + "Enable experimental features": "Enable experimental features", + "Enable gRPC": "Enable gRPC", + "Enable optional BIP39 passphrase": "Enable optional BIP39 passphrase", + "Enable screen capture": "Enable screen capture", + "Enables features currently in development": "Enables features currently in development", + "Enter": "Enter", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Enter account name (optional)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Enter first account name", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Enter phishing hint", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Enter the amount", + "Enter the password for your wallet": "Enter the password for your wallet", + "Enter the password to unlock your wallet": "Enter the password to unlock your wallet", + "Enter wallet name": "Enter wallet name", + "Enter wallet password": "Enter wallet password", + "Enter your wallet secret": "Enter your wallet secret", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Explorer", + "Export Wallet Data": "Export Wallet Data", + "FIRST": "FIRST", "Faucet": "Faucet", - "File Handles": "Manejadores de Ficheros", - "Filename:": "Nombre del Fichero:", - "Final Amount:": "Cantidad Final:", - "GitHub Release": "Versión de GitHub", - "Go to Settings": "Ir a Configuración", - "Handles": "Manejadores", - "Headers": "Cabeceras", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "File Handles", + "File contents": "File contents", + "Filename:": "Filename:", + "Final Amount:": "Final Amount:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub Release", + "Go to Settings": "Go to Settings", + "Good": "Good", + "Handles": "Handles", + "Headers": "Headers", + "High": "High", "IBD:": "IBD:", - "If not specified, the account will be represented by the numeric id.": "Si no se especifica, la cuenta se representará por su id numérico", - "If you are running locally, use: ": "Si está ejecutando localmente, usar:", - "Import existing": "Importar existente", - "Inbound": "Entrante", - "Include QoS Priority Fees": "Incluir Comisiones por Prioridad QoS", - "Integrated Daemon": "Daemon integrado", - "Invalid daemon arguments": "Argumentos del daemon no válidos", - "Invalid network type - expected: testnet-10 connected to: testnet-11": "Tipo de red inválido - se esperaba: testnet-10 conectado a: testnet-11", - "Invalid wRPC URL": "URL wRPC inválida", - "Json Active Connections": "Conexiones Json Activas", - "Json Connection Attempts": "Intentos de Conexión Json", - "Json Handshake Failures": "Fallos de Handshake Json", - "Kaspa Discord": "Discord de Kaspa", - "Kaspa Integration Guide": "Guía de Integración Kaspa", + "If not specified, the account will be represented by the numeric id.": "If not specified, the account will be represented by the numeric id.", + "If you are running locally, use: ": "If you are running locally, use: ", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Import existing", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Inbound", + "Integrated Daemon": "Integrated Daemon", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Invalid daemon arguments", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Invalid wRPC URL", + "Json Active Connections": "Json Active Connections", + "Json Connection Attempts": "Json Connection Attempts", + "Json Handshake Failures": "Json Handshake Failures", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Kaspa Integration Guide", "Kaspa NG": "Kaspa NG", - "Kaspa NG Online": "Kaspa NG Online", - "Kaspa NG Web App": "Kaspa NG Web App", - "Kaspa NG on GitHub": "Kaspa NG en GitHub", + "Kaspa NG on GitHub": "Kaspa NG on GitHub", "Kaspa NG online": "Kaspa NG online", - "Kaspa Network": "Red Kaspa", - "Kaspa Node": "Nodo Kaspa", - "Kaspa p2p Network & Node Connection": "Red p2p de Kaspa & Nodo de Conexión", - "Kaspa p2p Node": "Nodo p2p de Kaspa", - "Kaspa p2p Node & Connection": "Nodo & conexión p2p de Kaspa", - "Key Perf.": "Indicadores Clave", - "Language:": "Idioma:", - "Large (1 BPS)": "Grande (1 BPS)", - "Levels": "Niveles", - "License Information": "Información de Licencia", + "Kaspa Network": "Kaspa Network", + "Kaspa Node": "Kaspa Node", + "Kaspa p2p Network & Node Connection": "Kaspa p2p Network & Node Connection", + "Kaspa p2p Node": "Kaspa p2p Node", + "Kaspa p2p Node & Connection": "Kaspa p2p Node & Connection", + "Key Perf.": "Key Perf.", + "LAST": "LAST", + "Language:": "Language:", + "Large (1 BPS)": "Large (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Levels", + "License Information": "License Information", "Local": "Local", - "Local p2p Node Configuration": "Configuración Local Nodo p2p", + "Local p2p Node Configuration": "Local p2p Node Configuration", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", "Logs": "Logs", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", "MT": "MT", - "Main Kaspa network": "Red Principal de Kaspa", + "Main Kaspa network": "Main Kaspa network", "Mainnet": "Mainnet", - "Mainnet (Main Kaspa network)": "Mainnet (Red Principal de Kaspa)", - "Managed by the Rusty Kaspa daemon": "Gestionado por el daemon de Rusty Kaspa", - "Market": "Mercado", - "Market Cap": "Cap. de Mercado", - "Market Monitor": "Monitor de Mercado", - "Mass Processed": "Procesado Masivo", - "Medium Narrow": "Medio Estrecho", - "Medium Wide": "Medio Ancho", - "Memory": "Memoria", - "Mempool": "Pool de memoria", - "Mempool Size": "Tamaño Pool Memoria", - "Metrics": "Métricas", - "Metrics are not currently available": "Las métricas no están disponibles actualmente", - "NPM Modules for NodeJS": "Módulos NPM para NodeJS", - "Network": "Red", - "Network Difficulty": "Complejidad de Red", - "Network Fees:": "Comisiones de Red:", - "Network Interface": "Interfaz de Red", - "Network Peers": "Usuarios de Red", - "No peers": "Sin usuarios", - "No public node selected - please select a public node": "Ningún nodo público seleccionado - por favor seleccione un nodo público", - "No transactions": "Sin transacciones", - "No wallets found, please create a new wallet": "No se encontraron billeteras, por favor cree una nueva", - "Node": "Nodo", - "Node Status": "Status del Nodo:", - "Noise": "Ruido", - "None": "Ninguno", - "Not Connected": "No Conectado", - "Not connected": "No conectado", - "Notifications": "Notificaciones", - "Open Data Folder": "Abrir Carpeta de Datos", - "Opening wallet:": "Abriendo billetera:", - "Optional": "Opcional", - "Other operations": "Otras operaciones", - "Outbound": "Saliente", - "Overview": "Visión General", - "Parents": "Padres", - "Past Median Time": "Mediana de Tiempo", - "Payment & Recovery Password": "Contraseña de Pagos y Recuperación", - "Payment Request": "Solicitud de Pago", - "Peers": "Usuarios", - "Performance": "Rendimiento", - "Phishing Hint": "Pregunta de Seguridad", + "Managed by the Rusty Kaspa daemon": "Managed by the Rusty Kaspa daemon", + "Market": "Market", + "Market Cap": "Market Cap", + "Market Monitor": "Market Monitor", + "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Medium Narrow", + "Medium Wide": "Medium Wide", + "Memory": "Memory", + "Mempool": "Mempool", + "Mempool Size": "Mempool Size", + "Metrics": "Metrics", + "Metrics are not currently available": "Metrics are not currently available", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM Modules for NodeJS", + "Network": "Network", + "Network Difficulty": "Network Difficulty", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Network Interface", + "Network Peers": "Network Peers", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "No peers", + "No public node selected - please select a public node": "No public node selected - please select a public node", + "No transactions": "No transactions", + "No wallets found, please create a new wallet": "No wallets found, please create a new wallet", + "Node": "Node", + "Node Status": "Node Status", + "Noise": "Noise", + "None": "None", + "Normal": "Normal", + "Not Connected": "Not Connected", + "Not connected": "Not connected", + "Notifications": "Notifications", + "Open Data Folder": "Open Data Folder", + "Opening wallet:": "Opening wallet:", + "Optional": "Optional", + "Options": "Options", + "Other operations": "Other operations", + "Outbound": "Outbound", + "Overview": "Overview", + "PREV": "PREV", + "Parents": "Parents", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Past Median Time", + "Payment & Recovery Password": "Payment & Recovery Password", + "Payment Request": "Payment Request", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Peers", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performance", + "Phishing Hint": "Phishing Hint", "Ping:": "Ping:", - "Please Confirm Deletion": "Por favor Confirme la Eliminación", - "Please configure your Kaspa NG settings": "Por favor configure sus parámetros de Kaspa NG", - "Please connect to Kaspa p2p node": "Por favor conéctese a un nodo p2p de Kaspa", - "Please create a stronger password": "Por favor cree una contraseña más segura", - "Please enter": "Por favor introduzca", - "Please enter KAS amount to send": "Por favor introduzca la cantidad de KAS que desea enviar", - "Please enter an amount": "Por favor introduzca una cantidad ", - "Please enter the account name": "Por favor introduzca el nombre de la cuenta", - "Please enter the wallet secret": "Por favor introduzca la clave secreta de la billetera", - "Please note that this is a beta release. Until this message is removed, please avoid using the wallet with mainnet funds.": "Por favor, considere que esto es una versión beta. Hasta que se elimine este mensaje, por favor evite usar la billetera con fondos de mainnet.", - "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Por favor, considere que copiar al portapapeles conlleva un riesgo de exponer su mnemotécnica a malware.", - "Please select an account type": "Por favor seleccione un tipo de cuenta", - "Please select the private key to export": "Por favor, seleccione la clave privada a exportar", - "Please set node to 'Disabled' to delete the data folder": "Por favor configure el nodo como 'Deshabilitado' para borrar la carpeta de datos", - "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Por favor, especifique el nombre de la cuenta por defecto. La billetera se creará con una cuenta por defecto. Una vez creada, podrá crear tantas cuentas adicionales como necesite.", - "Please specify the name of the new wallet": "Por favor, especifique el nombre de la nueva billetera.", - "Please specify the private key type for the new wallet": "Por favor, especifique el tipo de clave privada para la nueva billetera", - "Please wait for the node to sync or connect to a remote node.": "Por favor, espere a que el nodo se sincronice o conecte con un nodo remoto.", - "Please wait for the node to sync...": "Por favor espere a que el nodo se sincronice...", - "Please wait...": "Por favor espere...", - "Presets": "Config.", - "Price": "Precio", - "Private Key Mnemonic": "Clave privada Mnemotécnica", - "Processed Bodies": "Cuerpos Procesados", - "Processed Dependencies": "Dependencias Procesadas", - "Processed Headers": "Cabeceras Procesadas", - "Processed Mass Counts": "Cuentas de Procesados Masivos", - "Processed Transactions": "Transacciones Procesadas", - "Protocol:": "Protocolo:", - "Public Node": "Nodo Público:", - "Public Nodes": "Nodos Públicos", - "Public Server": "Servidor Público", - "Public p2p Nodes for": "Nodos públicos p2p para", - "Random Public Node": "Nodo Público Aleatorio", - "Range:": "Rango:", - "Receive Address": "Dirección de Recepción:", - "Recommended arguments for the remote node: ": "Parámetros recomendados para el nodo remoto:", - "Remote": "Remoto", - "Remote Connection:": "Conexión Remota:", - "Remote p2p Node Configuration": "Configuración del Nodo p2p Remoto", - "Removes security restrictions, allows for single-letter passwords": "Elimina restricciones de seguridad, permite contraseñas sencillas, sólo letras", - "Reset Settings": "Reiniciar Ajustes", - "Reset VSPC": "Reiniciar VSPC", - "Resident Memory": "Memoria Residente", - "Resources": "Recursos", - "Resulting daemon arguments:": "Argumentos del daemon arrojados:", - "Rust Wallet SDK": "SDK Billetera Rust", - "Rusty Kaspa on GitHub": "Rusty Kaspa en GitHub", - "Secret is too weak": "La clave secreta es demasiado débil", - "Secret score:": "Puntuación de la clave secreta:", - "Select Account": "Selecciona Cantidad", - "Select Available Server": "Seleccione Servidor Disponible", - "Select Private Key Type": "Seleccione Tipo de Clave Privada", - "Select Public Node": "Seleccione Nodo Público ", - "Select Wallet": "Seleccione Billetera", - "Select a wallet to unlock": "Seleccione una billetera para desbloquear", - "Send": "Enviar", - "Services": "Servicios", - "Settings": "Configuración", - "Show DAA": "Mostrar DAA", - "Show Grid": "Mostrar Rejilla", - "Show VSPC": "Mostrar VSPC", - "Show balances in alternate currencies for testnet coins": "Mostrar saldos en divisas alternativas para las monedas en testnet", - "Show password": "Mostrar contraseña", - "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Mostrar saldos en divisas alternativas (BTC, USD) cuando se usen monedas en testnet como si estuviera en mainnet", - "Skip": "Omitir", - "Small (10 BPS)": "Pequeño (10 BPS)", - "Spread": "Propagación", - "Stage": "Fase", - "Starting...": "Iniciando...", - "Statistics": "Estadísticas", - "Stor Read": "Lectura Alm.", - "Stor Write": "Escritura Alm.", - "Storage": "Almacenamiento", - "Storage Read": "Lectura Almacenamiento", - "Storage Read/s": "Lectura/s Almacenamiento", - "Storage Write": "Escritura Almacenamiento", - "Storage Write/s": "Escritura/s Almacenamiento", - "Submitted Blocks": "Bloques Enviados", - "Supporting Kaspa NG development": "Apoyar el desarrollo de Kaspa NG", - "Syncing Cryptographic Proof...": "Sincronizando Prueba Criptográfica...", - "Syncing DAG Blocks...": "Sincronizando Bloques DAG...", - "Syncing Headers...": "Sincronizando Cabeceras...", - "Syncing UTXO entries...": "Sincronizando entradas UTXO...", - "Syncing...": "Sincronizando...", - "System": "Sistema", + "Please Confirm Deletion": "Please Confirm Deletion", + "Please configure your Kaspa NG settings": "Please configure your Kaspa NG settings", + "Please connect to Kaspa p2p node": "Please connect to Kaspa p2p node", + "Please create a stronger password": "Please create a stronger password", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Please enter an amount", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Please enter the account name", + "Please enter the wallet secret": "Please enter the wallet secret", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Please select an account type", + "Please select export type": "Please select export type", + "Please select the private key to export": "Please select the private key to export", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Please set node to 'Disabled' to delete the data folder", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.", + "Please specify the name of the new wallet": "Please specify the name of the new wallet", + "Please specify the private key type for the new wallet": "Please specify the private key type for the new wallet", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Please wait for the node to sync or connect to a remote node.", + "Please wait for the node to sync...": "Please wait for the node to sync...", + "Please wait...": "Please wait...", + "Presets": "Presets", + "Price": "Price", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Processed Bodies", + "Processed Dependencies": "Processed Dependencies", + "Processed Headers": "Processed Headers", + "Processed Mass Counts": "Processed Mass Counts", + "Processed Transactions": "Processed Transactions", + "Processing...": "Processing...", + "Protocol:": "Protocol:", + "Public Node": "Public Node", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Random Public Node", + "Range:": "Range:", + "Receive Address": "Receive Address", + "Recommended arguments for the remote node: ": "Recommended arguments for the remote node: ", + "Redistributables": "Redistributables", + "Remote": "Remote", + "Remote Connection:": "Remote Connection:", + "Remote p2p Node Configuration": "Remote p2p Node Configuration", + "Removes security restrictions, allows for single-letter passwords": "Removes security restrictions, allows for single-letter passwords", + "Reset Settings": "Reset Settings", + "Reset VSPC": "Reset VSPC", + "Resident Memory": "Resident Memory", + "Resources": "Resources", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Resulting daemon arguments:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa on GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Secret is too weak", + "Secret score:": "Secret score:", + "Select Account": "Select Account", + "Select Private Key Type": "Select Private Key Type", + "Select Public Node": "Select Public Node", + "Select Wallet": "Select Wallet", + "Select a wallet to unlock": "Select a wallet to unlock", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Send", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Services", + "Settings": "Settings", + "Show DAA": "Show DAA", + "Show Grid": "Show Grid", + "Show VSPC": "Show VSPC", + "Show balances in alternate currencies for testnet coins": "Show balances in alternate currencies for testnet coins", + "Show passphrase": "Show passphrase", + "Show password": "Show password", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet", + "Skip": "Skip", + "Small (10 BPS)": "Small (10 BPS)", + "Spread": "Spread", + "Stage": "Stage", + "Starting...": "Starting...", + "Statistics": "Statistics", + "Stop": "Stop", + "Stor Read": "Stor Read", + "Stor Write": "Stor Write", + "Storage": "Storage", + "Storage Read": "Storage Read", + "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", + "Storage Write": "Storage Write", + "Storage Write/s": "Storage Write/s", + "Strong": "Strong", + "Submitted Blocks": "Submitted Blocks", + "Syncing Cryptographic Proof...": "Syncing Cryptographic Proof...", + "Syncing DAG Blocks...": "Syncing DAG Blocks...", + "Syncing Headers...": "Syncing Headers...", + "Syncing UTXO entries...": "Syncing UTXO entries...", + "Syncing...": "Syncing...", + "System": "System", "TPS": "TPS", "Testnet 10": "Testnet 10", - "Testnet 10 (1 BPS)": "Testnet 10 (1 BPS)", "Testnet 11": "Testnet 11", - "Testnet 11 (10 BPS)": "Testnet 11 (10 BPS)", - "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.": "Testnet 11 no está aún habilitada para pruebas públicas. Puede, no obstante, configurar el nodo para conectarse a la testnet privada de desarrollo en el panel de Configuración.", - "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "KASPA NG representa el esfuerzo por construir una plataforma software de última generación dedicada a la red BlockDAG de Kaspa. Tal como su proyecto matriz, este software prioriza la seguridad, privacidad, rendimiento y descentralización.", - "The balance may be out of date during node sync": "El saldo puede estar desactualizado durante la sincronización del nodo", - "The following will guide you through the process of creating or importing a wallet.": "Le guiaremos en el proceso de creación o importación de una billetera.", - "The node is currently syncing with the Kaspa p2p network.": "El nodo está actualmente sincronizándose con la red p2p de Kaspa.", - "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "El nodo está actualmente sincronizándose con la red p2p de Kaspa. Los saldos de la cuenta pueden estar desactualizados.", - "The node is spawned as a child daemon process (recommended).": "El nodo se ha creado como un proceso daemon dependiente (recomendado).", - "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "El nodo se ejecuta como parte del proceso de la aplicación Kaspa-NG. Esto reduce un gasto excesivo en comunicación (experimental).", - "Theme Color": "Color del Tema", - "Theme Color:": "Color del Tema:", - "Theme Style": "Estilo del Tema", - "Theme Style:": "Estilo del Tema:", - "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Esta billetera nunca te solicitará esta frase mnemotécnica a menos que inicie manualmente una recuperación de la clave privada.", - "Threshold": "Umbral", - "Time Offset:": "Desplazamiento de Tiempo:", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.", + "The balance may be out of date during node sync": "The balance may be out of date during node sync", + "The following will guide you through the process of creating or importing a wallet.": "The following will guide you through the process of creating or importing a wallet.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "The node is currently syncing with the Kaspa p2p network.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Theme Color", + "Theme Color:": "Theme Color:", + "Theme Style": "Theme Style", + "Theme Style:": "Theme Style:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Threshold": "Threshold", + "Time Offset:": "Time Offset:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", "Tip Hashes": "Tip Hashes", - "Tools ⏷": "Herramientas ⏷", - "Total Rx": "Rx Total", - "Total Rx/s": "Rx/s Total", - "Total Tx": "Tx Total", - "Total Tx/s": "Tx/s Total", - "Track in the background": "Rastrear en segundo plano", - "Transactions": "Transacciones", - "Transactions:": "Transacciones:", - "Type": "Tipo", - "UTXO Manager": "Manager UTXO", - "UTXOs": "UTXOs", - "UTXOs:": "UTXOs:", - "Unable to change node settings until the problem is resolved": "No se puede cambiar la configuración del nodo hasta que se resuelva el problema", - "Unlock": "Desbloquear", - "Unlock Wallet": "Desbloquear Billetera", - "Unlocking": "Desbloqueando", - "Update Available to version": "Actualizar Disponible a versión", - "Updating...": "Actualizando...", - "Uptime:": "Tiempo activo:", - "Use 50%-75% of available system memory": "Usar 50 %-75% de la memoria del sistema disponible", - "Use all available system memory": "Usar toda la memoria del sistema disponible", - "User Agent": "Agente de Usuario", - "User Interface": "Interfaz de Usuario", - "Very dangerous (may be cracked within few seconds)": "Muy peligroso (puede ser crackeado en unos pocos segundos)", - "Virt Parents": "Padres Virt", - "Virtual DAA Score": "Puntuación DAA Virtual", - "Virtual Memory": "Memoria Virtual", - "Virtual Parent Hashes": "Hashes Padres Virtuales", - "Volume": "Volumen", - "WASM SDK for JavaScript and TypeScript": "SDK WASM para JavaScript y TypeScript", - "Wallet": "Billetera", - "Wallet Created": "Billetera Creada", - "Wallet Encryption Password": "Contraseña de Encriptación de la Billetera", - "Wallet Name": "Nombre de la Billetera", - "Wallet Secret": "Clave Secreta de la Billetera", - "Wallet password is used to encrypt your wallet data.": "La contraseña de la billetera se usa para encriptar los datos de la billetera.", - "Wallet:": "Billetera:", - "We greatly appreciate your help in backing our efforts.": "Agradecemos enormemente tu ayuda para recompensar nuestros esfuerzos.", - "Welcome to Kaspa NG": "Bienvenidos a Kaspa NG", - "Xpub Keys": "Claves Xpub", - "You are currently not connected to the Kaspa node.": "No está conectado actualmente al nodo Kaspa.", - "You can configure remote connection in Settings": "Puede configurar la conexión remota en Configuración", - "You can create multiple wallets, but only one wallet can be open at a time.": "Puede crear múltiples billeteras, pero sólo una puede estar abierta a la vez", - "You must be connected to a node...": "Debe estar conectado a un nodo...", - "Your default wallet private key mnemonic is:": "Tu clave privada mnemotécnica por defecto es:", - "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Su frase mnemotécnica permite recrear su clave privada. Cualquier persona que tenga acceso a esta frase mnemotécnica, tendrá control total sobre el Kaspa almacenada en ella. Mantenga su frase mnemotécnica a salvo. Escríbala y guárdela en un lugar seguro, preferiblemente en un lugar ignífugo. No guarde su frase mnemotécnica en un ordenador o dipositivo móvil. Esta billetera nunca le pedirá esta frase mnemotécnica a menos que inicie manualmente una recuperación de la clave privada.", - "Your private key mnemonic is:": "Su frase privada mnemotécnica es:", - "Your wallet has been created and is ready to use.": "Su billetera ha sido creada y está lista para su uso", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Track in the background", + "Transactions": "Transactions", + "Transactions:": "Transactions:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Type", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO Manager", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Unable to change node settings until the problem is resolved", + "Unable to store settings": "Unable to store settings", + "Unlock": "Unlock", + "Unlock Wallet": "Unlock Wallet", + "Unlocking": "Unlocking", + "Update Available to version": "Update Available to version", + "Updating...": "Updating...", + "Uptime:": "Uptime:", + "Use 50%-75% of available system memory": "Use 50%-75% of available system memory", + "Use all available system memory": "Use all available system memory", + "User Agent": "User Agent", + "User Interface": "User Interface", + "Very dangerous (may be cracked within few seconds)": "Very dangerous (may be cracked within few seconds)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Virt Parents", + "Virtual DAA Score": "Virtual DAA Score", + "Virtual Memory": "Virtual Memory", + "Virtual Parent Hashes": "Virtual Parent Hashes", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", + "Wallet": "Wallet", + "Wallet Created": "Wallet Created", + "Wallet Encryption Password": "Wallet Encryption Password", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Wallet Name", + "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Wallet password is used to encrypt your wallet data.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Wallet:", + "We greatly appreciate your help in backing our efforts.": "We greatly appreciate your help in backing our efforts.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Welcome to Kaspa NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "You are currently not connected to the Kaspa node.", + "You can configure remote connection in Settings": "You can configure remote connection in Settings", + "You can create multiple wallets, but only one wallet can be open at a time.": "You can create multiple wallets, but only one wallet can be open at a time.", + "You must be connected to a node...": "You must be connected to a node...", + "Your default wallet private key mnemonic is:": "Your default wallet private key mnemonic is:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Your private key mnemonic is:", + "Your wallet has been created and is ready to use.": "Your wallet has been created and is ready to use.", "Zoom": "Zoom", - "amount to send": "cantidad para enviar", - "bye!": "¡Adiós!", - "gRPC Network Interface & Port": "Interfaz de Red y Puerto gRPC", - "gRPC Rx": "Rx gRPC", - "gRPC Rx/s": "Rx/s gRPC", - "gRPC Tx": "Tx gRPC", - "gRPC Tx/s": "Tx/s gRPC", - "of": "de", - "p2p RPC": "RPC p2p", - "p2p Rx": "Rx p2p", - "p2p Rx/s": "Rx/s p2p", - "p2p Tx": "Tx p2p", - "p2p Tx/s": "Tx/s p2p", - "peer": "usuario", - "peers": "usuarios", - "wRPC Borsh Rx": "Rx Borsh wRPC", - "wRPC Borsh Rx/s": "Rx/s Borsh wRPC", - "wRPC Borsh Tx": "Tx Borsh wRPC", - "wRPC Borsh Tx/s": "Tx/s Borsh wRPC", - "wRPC Connection Settings": "Configuración Conexión wRPC", - "wRPC Encoding:": "Codificación wRPC:", - "wRPC JSON Rx": "Rx JSON wRPC", - "wRPC JSON Rx/s": "Rx/s JSON wRPC", - "wRPC JSON Tx": "Tx JSON wRPC", - "wRPC JSON Tx/s": "Tx/s JSON wRPC", - "wRPC URL:": "URL wRPC:" + "bye!": "bye!", + "gRPC Network Interface & Port": "gRPC Network Interface & Port", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "of", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "peer", + "peers": "peers", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "wRPC Connection Settings", + "wRPC Encoding:": "wRPC Encoding:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" }, - "et": {}, - "fa": { - "1 BPS test network": "شبکه تست 1 بلاک در ثانیه", - "10 BPS test network": "شبکه تست 10 بلاک در ثانیه", - "12 word mnemonic": "عبارت یادآور 12 کلمه ای", - "24 word mnemonic": "عبارت یادآور 24 کلمه ای", - "24h Change": "تغییر 24 ساعته", - "A binary at another location is spawned a child process (experimental, for development purposes only).": "یک باینری در مکان دیگری یک پردازش فرزند ایجاد می شود (تجربی، فقط برای اهداف توسعه دهندگی).", - "A random node will be selected on startup": "یک نود تصادفی در راه اندازی انتخاب خواهد شد", - "A wallet is stored in a file on your computer.": "یک کیف پول در فایلی در رایانه شما ذخیره می شود.", - "Account Index": "فهرست راهنمای حساب", - "Account Name": "نام حساب", - "Account:": "حساب:", - "Activate custom daemon arguments": "فعال کردن آرگومان های سرویس سفارشی ", - "Active p2p Peers": "فعال سازی همتایان p2p", - "Address derivation scan": "اسکن مشتق آدرس", - "Address:": "آدرس:", - "Advanced": "پیشرفته", - "All": "همه", - "Allow custom arguments for the Rusty Kaspa daemon": "اجازه دادن آرگومان های سفارشی برای سرویس Rusty Kaspa ", - "Allows you to take screenshots from within the application": "به شما امکان می دهد از داخل برنامه اسکرین شات بگیرید", - "Apply": "اعمال کردن", - "Balance: N/A": "موجودی: در دسترس نیست", - "Bandwidth": "پهنای باند", - "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "به دلیل تمرکز بر امنیت و عملکرد، این نرم افزار به طور کامل در Rust توسعه یافته است و در مقایسه با سایر نرم افزارهای سنتی مدرن مبتنی بر وب، زمان و تلاش بیشتری را می طلبد.", - "Bezier Curves": "منحنی های Bezier", + "de": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "Der 'Phishing-Hinweis' ist ein geheimes Wort oder Redewendung, welche beim Öffnen des Wallets angezeigt wird. Wenn dieser Hinweis nicht angezeigt wird, öffnen Sie mglw. ein Fake-Wallet, welches erzeugt wurde, um Ihr Guthaben zu stehlen. Sollte das passieren, stoppen Sie die Verwendung dieses Wallets sofort, prüfen Sie die Browser-URL und fragen Sie in den sozialen Netzwerken nach (Kaspa Discord und Telegram).", + "1 BPS test network": "1 BPS Testnetz", + "10 BPS test network": "10 BPS test network", + "12 word mnemonic": "12-Wort Merktext", + "24 word mnemonic": "24-Wort Merktext", + "24h Change": "24h Marktpreisänderung", + "3 hours or more": "drei oder mehr Stunden", + "< {minutes} minute": "< {minutes} Minute", + "< {minutes} minutes": "< {minutes} Minuten", + "< {seconds} second": "< {seconds} Sekunde", + "< {seconds} seconds": "< {seconds} Sekunden", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "Ein Programm an einer anderen Lokation hat einen Kind-Prozess gestartet (experimentell, nur für Entwickler).", + "A random node will be selected on startup": "Beim Start wird ein zufälliger Knoten ausgewählt", + "A wallet is stored in a file on your computer.": "Das Wallet wird in einer Datei auf Ihrem Computer abgespeichert.", + "Account Index": "Konto Nummer", + "Account Name": "Kontoname", + "Account not found": "Konto nicht gefunden", + "Account:": "Konto:", + "Activate custom daemon arguments": "Erweiterte Dienst-Argumente aktivieren", + "Active p2p Peers": "Aktive p2p-Verbindungen", + "Add Account": "Konto hinzufügen", + "Address copied to clipboard": "Addresse in die Zwischenablage kopiert", + "Address derivation scan": "Abgeleitete Adressen suchen", + "Address:": "Adresse:", + "Advanced": "Erweitert", + "All": "Alle", + "Allow clipboard copy": "Kopieren in die Zwischenablage erlauben", + "Allow custom arguments for the Rusty Kaspa daemon": "Erlaube zusätzliche Argumente für den Rusty Kaspa Dienst", + "Allows you to take screenshots from within the application": "Ermöglicht es, innerhalb der Applikation Bildschirmfotos anzufertigen", + "An error has occurred while submitting transaction:": "Während der Übertragung der Transaktion ist ein Fehler aufgetreten:", + "Application must be restarted for this setting to take effect.": "Die Applikation muss neu gestartet werden, um diese Einstellung wirksam werden zu lassen", + "Apply": "Anwenden", + "Architecture {arch}": "Architektur {arch}", + "Are you sure you want to reset all settings?": "Sind Sie sicher, alle Einstellungen zurückzusetzen?", + "BALANCE": "SALDO", + "Balance: N/A": "Kontostand: N/A", + "Bandwidth": "Bandbreite", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Durch den Fokus auf Sicherheit und Leistung, wurde diese Software vollständig in Rust entwickelt, was einen signifikant höheren Einsatz und Zeitaufwand gegenüber herkömmlicher, Web-basierter Software bedeutet.", + "Bezier Curves": "Bezier-Kurven", "Block DAG": "Block DAG", - "Block Scale": "مقیاس بلاک", - "Blocks": "بلاک ها", - "Bodies": "اجسام", - "Borsh Active Connections": "اتصالات فعال Borsh", - "Borsh Connection Attempts": "تلاش ها برای اتصال Borsh", - "Borsh Handshake Failures": "عدم موفقیت در تبادل اطلاعات با Borsh", - "Build": "ساختن", - "CONNECTED": "وصل شد", + "Block Scale": "Block Skalierung", + "Blocks": "Blöcke", + "Bodies": "Inhalt", + "Borsh Active Connections": "Aktive Borsh Verbindungen", + "Borsh Connection Attempts": "Borsh Verbindungsversuche", + "Borsh Handshake Failures": "Borsh Handshake-Fehler", + "Build": "Applikationsdetails", + "CONNECTED": "VERBUNDEN", "CPU": "CPU", - "Cache Memory Size": "اندازه حافظه کش", - "Cache Memory Size:": "اندازه حافظه کش:", - "Cancel": "لغو", - "Cannot delete data folder while the node is running": "در حالی که نود در حال اجرا است، نمی توان پوشه داده ها را حذف کرد", - "Capture a screenshot": "اسکرین شات بگیرید", - "Center VSPC": "مرکز VSPC", - "Chain Blocks": "بلوک های زنجیره ای", - "Change Address": "تغییر آدرس", - "Check for Software Updates on GitHub": "بررسی بروز رسانی های نرم افزار در GitHub ", - "Check for Updates": "بررسی بروز رسانی ها", - "Clear": "پاک کردن", - "Click to try another server...": "روی سرور دیگری کلیک کنید...", - "Client RPC": "کلاینت RPC", - "Close": "بستن", - "Confirm wallet password": "تایید کلمه عبور کیف پول", - "Connect to a local node (localhost)": "اتصال به یک نود محلی (میزبان محلی)", - "Connecting to": "ارتباط با", - "Connection": "اتصال", - "Connections": "اتصال ها", - "Connects to a Remote Rusty Kaspa Node via wRPC.": "از طریق wRPC به یک Remote Rusty Kaspa Node متصل می شود.", - "Conservative": "با دوام", - "Continue": "ادامه", - "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.": "مشارکت های انجام شده در این پروژه به طور مستقیم به نرم افزار Kaspa NG و اکوسیستم آن کمک می کند.", - "Copied to clipboard": "در کلیپ بورد کپی شد", - "Copy": "کپی", - "Copy logs to clipboard": "کپی گزارش‌ها را در کلیپ بورد ", - "Create New Account": "ایجاد حساب کاربری جدید", - "Create New Wallet": "ایجاد کردن کیف پول جدید", - "Create new wallet": "ساختن کیف پول جدید", - "Creating Account": "ایجاد حساب کاربری", - "Creating Wallet": "ساختن کیف پول", - "Custom": "سفارشی", - "Custom Public Node": "نود عمومی سفارشی", - "Custom arguments:": "آرگومان های سفارشی:", + "Cache Memory Size": "Grösse Zwischenspeicher", + "Cancel": "Abbrechen", + "Cannot delete data folder while the node is running": "Datenverzeichnis kann nicht gelöscht werden, solange der Knoten läuft", + "Capture a screenshot": "Bildschirmfoto anlegen", + "Capture saved to {path}": "Schnappschuss in Pfad {path} gesichert", + "Center VSPC": "Zentriere VSPC", + "Chain Blocks": "Blockkette", + "Change Address": "Adresse wechseln", + "Change Wallet Secret": "Wallet-Passwort ändern", + "Check for Software Updates on GitHub": "GitHub auf Updates überprüfen", + "Check for Updates": "Auf Aktualisierungen prüfen", + "Clear": "Löschen", + "Click to try another server...": "Versuche anderen Server...", + "Client RPC": "Client RPC", + "Close": "Schliessen", + "Close the window": "Schliesse das Fenster", + "Confirm BIP39 passphrase": "BIP39 Passphrase bestätigen", + "Confirm wallet password": "Wallet-Passwort bestätigen", + "Connecting to": "Verbinde zu", + "Connection": "Verbindung", + "Connections": "Verbindungen", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Verbindet zu einem entfernten Rusty Kaspa Knoten via wRPC.", + "Conservative": "Zurückhaltend", + "Continue": "Weiter", + "Copied to clipboard": "In die Zwischenablage kopiert", + "Copy": "Kopieren", + "Copy logs to clipboard": "Logs in die Zwischenablage kopieren", + "Create New Wallet": "Neues Wallet anlegen", + "Create Wallet": "Wallet anlegen", + "Create new wallet": "Neues Wallet anlegen", + "Creating Account": "Lege Konto an", + "Creating Wallet": "Lege Wallet an", + "Custom": "Individuell", + "Custom Public Node": "Individueller öffentlicher Knoten", + "Custom arguments:": "Zusätzliche Argumente:", + "Custom data storage folder": "Anderer Datenordner", "DAA": "DAA", - "DAA Offset": " نقطه آغازین ترتیب دستیابى داده ها DAA", - "DAA Range": "محدوده ترتیب دستیابى داده ها DAA", - "DB Blocks": "بلاک های پایگاه داده", - "DB Headers": "سربرگ های DB", - "Database Blocks": "بلاک های پایگاه داده ها", - "Database Headers": "سربرگ های پایگاه داده ها", - "Decrypting wallet, please wait...": "در حال رمزگشایی کیف پول، لطفا صبر کنید...", - "Default": "پیش فرض", - "Default Account Name": "نام حساب پیش فرض", - "Delete Data Folder": "پوشه داده ها را حذف کنید", - "Dependencies": "وابستگی ها", - "Derivation Indexes": "شاخص های مشتق", - "Details": "جزییات", - "Developer Mode": "تنظیمات برنامه نویسی", - "Developer Resources": "منابع برنامه نویسی", - "Developer mode enables advanced and experimental features": "حالت برنامه نویسی ویژگی های پیشرفته و آزمایشی را فعال می کند", - "Difficulty": "سختی", - "Dimensions": "ابعاد", - "Disable password score restrictions": "غیرفعال کردن محدودیت امتیاز کلمه عبور", - "Disabled": "غیرفعال ", - "Disables node connectivity (Offline Mode).": "اتصال نود را غیرفعال می کند (حالت آفلاین).", - "Discord": "دیسکورد", - "Donations": "کمک های مالی", - "Double click on the graph to re-center...": "روی نمودار دوبار کلیک کنید تا دوباره در وسط قرار دهید...", + "DAA Offset": "DAA Offset", + "DAA Range": "DAA-Bereich", + "DB Blocks": "DB-Blöcke", + "DB Headers": "DB Kopfzeilen", + "Dangerous": "Gefährlich", + "Data Storage": "Datenspeicher (HDD)", + "Database Blocks": "DB Blöcke", + "Database Headers": "DB Kopfzeilen", + "Decrypt": "Entschlüsseln", + "Decrypting Wallet File": "Wallet-Datei entschlüsseln", + "Decrypting wallet, please wait...": "Entschlüssele Wallet, bitte warten...", + "Default": "Standard", + "Default Account Name": "Name Standardkonto", + "Delete Data Folder": "Datenordner löschen", + "Dependencies": "Abhängigkeiten", + "Derivation Indexes": "Abstammungsindizes", + "Details": "Details", + "Developer Mode": "Entwicklermodus", + "Developer Resources": "Entwickler-Resourcen", + "Developer mode enables advanced and experimental features": "Entwicklermodus aktiviert erweiterte und experimentelle Funktionen", + "Difficulty": "Schwierigkeit", + "Dimensions": "Abmessungen", + "Disable Window Frame": "Fensterrahmen ausblenden", + "Disable password safety rules": "Passwortrichtlinien deaktivieren", + "Disabled": "Deaktiviert", + "Disables node connectivity (Offline Mode).": "Schaltet die Verbindung des Knotens ab (Offline-Modus).", + "Discord": "Discord", + "Donations": "Spenden", + "Double click on the graph to re-center...": "Im Graph doppelklicken, um zu zentrieren...", "ECDSA": "ECDSA", - "Enable Market Monitor": "فعال سازی مشاهده بازار", - "Enable UPnP": "فعال سازی UPnP", - "Enable custom daemon arguments": "آرگومان های سرویس سفارشی را فعال کنید", - "Enable experimental features": "فعال سازی ویژگی های آزمایشی", - "Enable gRPC": "فعال سازی gRPC", - "Enable optional BIP39 passphrase": "فعال کردن عبارت عبور اختیاری BIP39 ", - "Enable screen capture": "فعال کردن ضبط صفحه", - "Enables features currently in development": "فعال سازی ویژگی‌هایی که در حال توسعه هستند", - "Enter": "ورود", - "Enter account name (optional)": "نام حساب را وارد کنید (اختیاری)", - "Enter first account name": "نام اولین حساب کاربری را وارد کنید", - "Enter phishing hint": "وارد کردن راهنمایی فیشینگ", - "Enter the amount": "مقدار را وارد کنید", - "Enter the password for your wallet": "رمز عبور کیف پول خود را وارد کنید", - "Enter the password to unlock your wallet": "کلمه عبور را برای باز کردن کیف پول خود وارد کنید", - "Enter wallet name": "وارد کردن نام کیف پول", - "Enter wallet password": "وارد کردن کلمه عبور کیف پول", - "Enter your wallet secret": "رمز کیف پول خود را وارد کنید", - "Explorer": "کاوشگر", - "Export Wallet Data": "صدور داده های کیف پول", - "Faucet": "فاست", - "File Handles": "دسته های فایل", - "Filename:": "نام فایل:", - "Final Amount:": "مبلغ نهایی:", - "GitHub Release": "انتشار GitHub", - "Go to Settings": "برو به تنظیمات", - "Handles": "دستگیره ها", - "Headers": "سربرگ ها", + "Economic": "Rationell", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Rationell: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Markt-Monitor einschalten", + "Enable UPnP": "UPnP aktivieren", + "Enable custom daemon arguments": "Individuelle Argumente des Dienstes aktivieren", + "Enable experimental features": "Experimentelle Funktionen aktivieren", + "Enable gRPC": "gRPC aktivieren", + "Enable optional BIP39 passphrase": "Optionales BIP39-Passwort aktivieren", + "Enable screen capture": "Bildschirmfotos ermöglichen", + "Enables features currently in development": "Schaltet Funktionen frei, welche sich noch in Entwicklung befinden", + "Enter": "Bestätige", + "Enter BIP39 passphrase": "BIP39 Passphrase eingeben", + "Enter account name (optional)": "Bitte Kontoname eingeben (optional)", + "Enter destination address": "Zieladresse eingeben", + "Enter first account name": "Name des ersten Kontos eingeben", + "Enter mnemonic": "Merktext eingeben", + "Enter password to decrypt this wallet file": "Passwort zur Wallet-Entschlüsselung eingeben", + "Enter phishing hint": "Bitte Phishing-Hinweis eingeben", + "Enter priority fees": "Prioritätsgebühren eingeben", + "Enter the amount": "Bitte Betrag eingeben", + "Enter the password for your wallet": "Bitte Wallet-Passwort eingeben", + "Enter the password to unlock your wallet": "Bitte Passwort zum Entsperren des Wallet eingeben", + "Enter wallet name": "Wallet-Name eingeben", + "Enter wallet password": "Wallet-Passwort eingeben", + "Enter your wallet secret": "Bitte Wallet-Geheimtext eingeben", + "Enter {suffix} amount to send": "Bitte zu sendenden {suffix} Betrag eingeben", + "Error": "Fehler", + "Error importing a wallet": "Fehler beim Import des Wallet", + "Error processing mnemonic: {err}": "Fehler beim Verarbeiten des Merktextes: {err}", + "Exit Full Screen": "Vollbilddarstellung beenden", + "Explorer": "Explorer", + "Export Wallet Data": "Walletdaten exportieren", + "FIRST": "ERSTE", + "Faucet": "Fontäne", + "Fee Market": "Gebührenmarkt", + "Fee Market & Network Pressure": "Gebührenmarkt und Netzwerklast", + "Fee Market Only": "nur Gebührenmarkt", + "File Handles": "Dateihandles", + "File contents": "Dateiinhalt", + "Filename:": "Dateiname:", + "Final Amount:": "Gesamtbetrag:", + "Final Amount: {amount}": "Finaler Betrag: {amount}", + "For decrypting uploaded file please enter wallet secret.": "Um die hochgeladene Datei zu entschlüsseln, bitte das Wallet-Passwort eingeben.", + "Full Screen": "Vollbilddarstellung", + "Generate New Change Address": "Generiere neue Wechselgeldadresse", + "Generate New Receive Address": "Generiere neue Empfangsadresse", + "GitHub Release": "GitHub Release", + "Go to Settings": "Einstellungen öffnen", + "Good": "Gut", + "Handles": "Handles", + "Headers": "Kopfzeilen", + "High": "Hoch", "IBD:": "IBD:", - "If not specified, the account will be represented by the numeric id.": "اگر مشخص نشده باشد، حساب با شناسه عددی نشان داده می شود.", - "If you are running locally, use: ": "اگر بصورت محلی اجرا می کنید،استفاده کنید از:", - "Import existing": "وارد کردن موجود", - "Inbound": "ورودی", - "Include QoS Priority Fees": "شامل هزینه های اولویت QoS", - "Integrated Daemon": "سرویس یکپارچه", - "Invalid daemon arguments": "نامعتبر بودن آرگومان های سرویس نامعتبر", - "Invalid network type - expected: testnet-10 connected to: testnet-11": "نوع شبکه مورد نظر نامعتبر است: شبکه تست-10 متصل به: شبکه تست-11 ", - "Invalid wRPC URL": "آدرس wPRC نامعتبر", - "Json Active Connections": "اتصالات فعال Json", - "Json Connection Attempts": "تلاش های اتصال Json", - "Json Handshake Failures": "عدم موفقیت در تبادل اطلاعات با Json", - "Kaspa Discord": "دیسکورد Kaspa", - "Kaspa Integration Guide": "راهنمای ادغام Kaspa", + "If not specified, the account will be represented by the numeric id.": "Wenn nicht angegeben, wird das Konto durch einen numerischen Identifikator repräsentiert.", + "If you are running locally, use: ": "Bei lokalem Betrieb, bitte folgendes verwenden:", + "Import Existing Private Key": "Existierenden privaten Schlüssel importieren", + "Import existing": "Existierendes Wallet importieren", + "Import existing file": "Existierende Datei importieren", + "Importing Legacy Wallet": "Legacy-Wallet importieren", + "Importing Wallet": "Importiere Wallet", + "Importing Wallet File": "Importiere Wallet-Datei", + "Inbound": "Eingehend", + "Integrated Daemon": "Integrierter Dienst", + "Invalid amount:": "Ungültiger Betrag:", + "Invalid daemon arguments": "Ungültige Service-Argumente", + "Invalid fee amount:": "Ungültiger Gebührenbetrag:", + "Invalid wRPC URL": "Ungültige wRPC URL", + "Json Active Connections": "Aktive JSON-Verbindungen", + "Json Connection Attempts": "JSON Verbindungsversuche", + "Json Handshake Failures": "Json Handshake Fehler", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Kaspa Integrationsleitfaden", "Kaspa NG": "Kaspa NG", - "Kaspa NG Online": "Kaspa NG آنلاین", - "Kaspa NG Web App": "اپلیکشین تحت وب Kaspa NG", - "Kaspa NG on GitHub": "Kaspa NG در GitHub", - "Kaspa NG online": "Kaspa NG آنلاین", - "Kaspa Network": "شبکه Kaspa", - "Kaspa Node": "نود Kaspa", - "Kaspa p2p Network & Node Connection": "شبکه Kaspa p2p و اتصال نود", - "Kaspa p2p Node": "نود Kaspa p2p", - "Kaspa p2p Node & Connection": "اتصال و نود Kaspa p2p", - "Key Perf.": "عملکرد کلیدی", - "Language:": "زبان:", - "Large (1 BPS)": "بزرگ (1 BPS)", - "Levels": "سطوح", - "License Information": "اطلاعات مجوز", - "Local": "محلی", - "Local p2p Node Configuration": "پیکربندی نود p2p محلی", - "Logs": "گزارشات", + "Kaspa NG on GitHub": "Kaspa NG auf GitHub", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Kaspa Netzwerk", + "Kaspa Node": "Kaspa Knoten", + "Kaspa p2p Network & Node Connection": "Kaspa p2p Netzwerk & Knotenverbindungen", + "Kaspa p2p Node": "Kaspa p2p Knoten", + "Kaspa p2p Node & Connection": "Kaspa p2p Knoten und Verbindung", + "Key Perf.": "Leistung", + "LAST": "LETZTE", + "Language:": "Sprache:", + "Large (1 BPS)": "Gross (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12-Wort Merktext", + "Levels": "Ebenen", + "License Information": "Lizenzinformationen", + "Local": "Lokal", + "Local p2p Node Configuration": "Konfiguration des lokalen p2p Knotens", + "Located {utxo_count} UTXOs": "{utxo_count} UTXOs gefunden", + "Logs": "Logs", + "Low": "Niedrig", + "Low-priority": "Niedrigpriorisiert", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Niedrig: {low} SOMPI/g; ~{low_kas}/tx", "MT": "MT", - "Main Kaspa network": "شبکه اصلی Kaspa", - "Mainnet": "شبکه اصلی", - "Mainnet (Main Kaspa network)": "شبکه اصلی (شبکه اصلی Kaspa)", - "Managed by the Rusty Kaspa daemon": "مدیریت توسط سرویس Rusty Kaspa ", - "Market": "بازار", - "Market Cap": "ارزش بازاری", - "Market Monitor": "مشاهده بازار", - "Mass Processed": "پردازش انبوه", - "Medium Narrow": "ابزار باریک کردن", - "Medium Wide": "ابزار گسترده کردن", - "Memory": "حافظه", - "Mempool": "استخر حافظه", - "Mempool Size": "سایز استخر حافظه", - "Metrics": "معیارها", - "Metrics are not currently available": "معیارها در حال حاضر در دسترس نیستند", - "NPM Modules for NodeJS": "ماژول های NPM برای NodeJS", - "Network": "شبکه", - "Network Difficulty": "سختی شبکه", - "Network Fees:": "هزینه شبکه:", - "Network Interface": "رابط شبکه", - "Network Peers": "همتایان شبکه", - "No peers": "بدون همتایان", - "No public node selected - please select a public node": "هیچ نود عمومی انتخاب نشده است - لطفاً یک نود عمومی انتخاب کنید", - "No transactions": "بدون تراکنش", - "No wallets found, please create a new wallet": "کیف پولی یافت نشد، لطفا یک کیف پول جدید ایجاد کنید", - "Node": "نود", - "Node Status": "وضعیت نود", - "Noise": "سر و صدا", - "None": "هیچ کدام", - "Not Connected": "متصل نیست", - "Not connected": "متصل نیست", - "Notifications": "اعلان ها", - "Open Data Folder": "پوشه داده را باز کنید", - "Opening wallet:": "بازکردن کیف پول:", - "Optional": "اختیاری", - "Other operations": "سایر عملیات", - "Outbound": "خروجی", - "Overview": "بررسی ", - "Parents": "سرمنشا ها", - "Past Median Time": "زمان میانه گذشته", - "Payment & Recovery Password": "رمز پرداخت و بازیابی", - "Payment Request": "درخواست پرداخت", - "Peers": "همتایان", - "Performance": "کارایی", - "Phishing Hint": "راهنمایی فیشینگ", - "Ping:": "پینگ:", - "Please Confirm Deletion": "لطفا حذف را تایید کنید", - "Please configure your Kaspa NG settings": "لطفا تنظیمات Kaspa NG خود را پیکربندی کنید", - "Please connect to Kaspa p2p node": "لطفا به نود Kaspa p2p متصل شوید", - "Please create a stronger password": "لطفا یک رمز عبور سخت تری ایجاد کنید", - "Please enter": "لطفا وارد کنید", - "Please enter KAS amount to send": "لطفا مبلغ KAS را برای ارسال وارد کنید", - "Please enter an amount": "لطفا یک مقدار وارد کنید", - "Please enter the account name": "لطفا نام حساب را وارد کنید", - "Please enter the wallet secret": "لطفا رمز کیف پول را وارد کنید", - "Please note that this is a beta release. Until this message is removed, please avoid using the wallet with mainnet funds.": "لطفا توجه داشته باشید که این نسخه آلفا است. تا زمانی که این پیام حذف نشود، لطفا از استفاده از کیف پول با سرمایه اصلی خودداری کنید.", - "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "لطفاً توجه داشته باشید، کپی کردن در کلیپ بورد خطر قرار دادن عبارت یادآور شما را در معرض بدافزار قرار می دهد.", - "Please select an account type": "لطفا یک نوع حساب را انتخاب کنید", - "Please select the private key to export": "لطفا کلید خصوصی را برای صدور انتخاب کنید", - "Please set node to 'Disabled' to delete the data folder": "لطفاً نود را روی 'غیرفعال' تنظیم کنید تا پوشه داده ها حذف شود", - "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "لطفا نام حساب پیش فرض را مشخص کنید. کیف پول با یک حساب پیش فرض ایجاد می شود. پس از ایجاد، می توانید حساب های اضافی را در صورت نیاز ایجاد کنید.", - "Please specify the name of the new wallet": "لطفاً نام کیف پول جدید را مشخص کنید", - "Please specify the private key type for the new wallet": "لطفا نوع کلید خصوصی را برای کیف پول جدید مشخص کنید", - "Please wait for the node to sync or connect to a remote node.": "لطفا منتظر بمانید تا نود همگام شود یا به یک نود راه دور متصل شود.", - "Please wait for the node to sync...": "لطفا صبر کنید تا نود همگام شود...", - "Please wait...": "لطفا صبر کنید...", - "Presets": "تنظیمات از پیش تعیین شده", - "Price": "قیمت", - "Private Key Mnemonic": "کلید خصوصی عبارت یادآور", - "Processed Bodies": "اجسام فرآوری شده", - "Processed Dependencies": "وابستگی های پردازش شده", - "Processed Headers": "هدرهای پردازش شده", - "Processed Mass Counts": "شمارش انبوه پردازش شده", - "Processed Transactions": "تراکنش های پردازش شده", - "Protocol:": "پروتکل:", - "Public Node": "نود عمومی", - "Public Nodes": "نودهای عمومی", - "Public Server": "سرور عمومی", - "Public p2p Nodes for": "نودهای عمومی p2p برای", - "Random Public Node": "نود عمومی تصادفی", - "Range:": "دامنه:", - "Receive Address": "آدرس دریافتی", - "Recommended arguments for the remote node: ": "آرگومان های توصیه شده برای نود راه دور:", - "Remote": "از راه دور", - "Remote Connection:": "اتصال از راه دور:", - "Remote p2p Node Configuration": "پیکربندی از راه دور نود p2p", - "Removes security restrictions, allows for single-letter passwords": "محدودیت‌های امنیتی را حذف می‌کند، اجازه می‌دهد کلمه های عبور تک حرفی را انتخاب کنید", - "Reset Settings": "بازنشانی تنظیمات", - "Reset VSPC": "VSPC را بازنشانی کنید", - "Resident Memory": "حافظه مقیم", - "Resources": "منابع", - "Resulting daemon arguments:": "آرگومان های سرویس حاصل:", - "Rust Wallet SDK": "بسته توسعه نرم افزار کیف پول Rust ", - "Rusty Kaspa on GitHub": "Rusty Kaspa در GitHub", - "Secret is too weak": "رمز خیلی ضعیف است", - "Secret score:": "امتیاز رمز:", - "Select Account": "انتخاب حساب", - "Select Available Server": "انتخاب سرور در دسترس", - "Select Private Key Type": "نوع کلید خصوصی را انتخاب کنید", - "Select Public Node": "انتخاب نود عمومی", - "Select Wallet": "انتخاب کیف پول", - "Select a wallet to unlock": "یک کیف پول را برای باز کردن انتخاب کنید", - "Send": "ارسال", - "Services": "سرویس ها", - "Settings": "تنظیمات", - "Show DAA": "نمایش ترتیب دستیابى داده ها DAA", - "Show Grid": "نمایش جدول", - "Show VSPC": "نمایش VSPC", - "Show balances in alternate currencies for testnet coins": "نمایش موجودی در ارزهای جایگزین برای کوین های شبکه تست", - "Show password": "نشان دادن کلمه عبور", - "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "موجودی ارزهای جایگزین (BTC، USD) را در هنگام استفاده از کوین های شبکه آزمایشی به گونه ای نشان می دهد که گویی در شبکه اصلی هستید", - "Skip": "صرف نظر", - "Small (10 BPS)": "کوچک (10 BPS)", - "Spread": "گسترش", - "Stage": "مرحله", - "Starting...": "شروع...", - "Statistics": "آمار", - "Stor Read": "خواندن ذخیره غیرمتمرکز", - "Stor Write": " نگارش ذخیره غیرمتمرکز", - "Storage": "ذخیره غیرمتمرکز", - "Storage Read": "خواندن ذخیره غیرمتمرکز", - "Storage Read/s": "خواندن ذخیره غیرمتمرکز", - "Storage Write": " نگارش ذخیره غیرمتمرکز", - "Storage Write/s": " نگارش ذخیره غیرمتمرکز", - "Submitted Blocks": "بلاک های ارسال شده", - "Supporting Kaspa NG development": "حمایت از توسعه Kaspa NG", - "Syncing Cryptographic Proof...": "همگام سازی عیار رمزنگاری...", - "Syncing DAG Blocks...": "در حال همگام سازی بلاک های DAG...", - "Syncing Headers...": "در حال همگام سازی سربرگ ها...", - "Syncing UTXO entries...": "در حال همگام سازی ورودی های UTXO...", - "Syncing...": "همگام سازی...", - "System": "سیستم", - "TPS": "تراکنش در ثانیه", - "Testnet 10": "شبکه تست 10", - "Testnet 10 (1 BPS)": "شبکه تست 10 (1 BPS)", - "Testnet 11": "شبکه تست 11", - "Testnet 11 (10 BPS)": "شبکه تست 11 (10 BPS)", - "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.": "شبکه تست 11 هنوز برای آزمایش عمومی فعال نشده است. با این حال، می‌توانید نود را برای اتصال به شبکه آزمایشی برنامه نویسی خصوصی در پانل تنظیمات پیکربندی کنید.", - "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "نرم‌افزار Kaspa NG بیانگر تلاشی مداوم است که بر ساختن یک پلت‌فرم نرم‌افزاری پیشرفته حول شبکه ارز دیجیتال Kaspa BlockDAG متمرکز شده است. این نرم افزار ذاتا امنیت، حریم خصوصی، عملکرد و تمرکززدایی را در اولویت قرار می دهد.", - "The balance may be out of date during node sync": "موجودی ممکن است در طول همگام سازی نود منسوخ باشد", - "The following will guide you through the process of creating or importing a wallet.": "موارد زیر شما را در فرآیند ایجاد یا وارد کردن کیف پول راهنمایی می کند.", - "The node is currently syncing with the Kaspa p2p network.": "نود در حال حاضر با شبکه p2p Kaspa همگام سازی می شود.", - "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "در حال حاضر نود با شبکه p2p Kaspa همگام سازی می شود. موجودی حساب ممکن است منسوخ باشد.", - "The node is spawned as a child daemon process (recommended).": "نود بعنوان یک فرآیند فرزند ایجاد می شود (توصیه می شود).", - "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "نود به عنوان بخشی از فرآیند برنامه Kaspa-NG اجرا می شود. این باعث کاهش هزینه های ارتباطی می شود (آزمایشی).", - "Theme Color": "رنگ زمینه", - "Theme Color:": "رنگ زمینه:", - "Theme Style": "سبک زمینه", - "Theme Style:": "سبک زمینه:", - "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "این کیف پول هرگز از شما این عبارت یادآور را نمی خواهد مگر اینکه به صورت دستی بازیابی کلید خصوصی را شروع کنید.", - "Threshold": "آستانه", - "Time Offset:": "زمان آغازین", - "Tip Hashes": "Tip Hashes", - "Tools ⏷": "ابزار ⏷", - "Total Rx": "مجموع Rx", - "Total Rx/s": "مجموع Rx/s", - "Total Tx": "مجموع تراکنش", - "Total Tx/s": "مجموع تراکنش ها در ثانیه", - "Track in the background": "پیگیری در پس زمینه", - "Transactions": "تراکنش ها", - "Transactions:": "تراکنش ها:", - "Type": "نوع", - "UTXO Manager": "مدیر UTXO", + "Main Kaspa network": "Kaspa Hauptnetz", + "Mainnet": "Hauptnetz", + "Managed by the Rusty Kaspa daemon": "Verwaltet vom Rusty Kaspa Dienst", + "Market": "Markt", + "Market Cap": "Marktkapitalisierung", + "Market Monitor": "Marktmonitor", + "Mass Processed": "Bearbeitete Menge", + "Mass:": "Masse:", + "Mass: {number}g": "Masse: {number}g", + "Maximize window": "Fenstergrösse maximieren", + "Medium Narrow": "Mittelbreit", + "Medium Wide": "Mittlere Breite", + "Memory": "RAM", + "Mempool": "RAM-Bereich", + "Mempool Size": "Grösse RAM-Bereich", + "Metrics": "Metriken", + "Metrics are not currently available": "Metriken momentan nicht verfügbar", + "Miner Fee": "Minergebühr", + "Minimize the window": "Fenstergrösse minimieren", + "Missing wallet descriptor": "Kontenbeschreibung fehlt", + "Mnemonic Import": "Importiere Merktext", + "NEXT": "NÄCHSTE", + "NO NAME": "KEIN NAME", + "NPM Modules for NodeJS": "NPM Module für NodeJS", + "Network": "Netzwerk", + "Network Difficulty": "Netzwerk-Schwierigkeit", + "Network Fee Estimator": "Geschätzte Netzwerkgebühr", + "Network Interface": "Netzwerkschnittstelle", + "Network Peers": "Netzwerkverbindungen", + "Network Pressure: ~{number}%": "Netzwerklast: ~{number}%", + "Never share your mnemonic with anyone!": "Teilen Sie Ihren Merktext niemals mit anderen!", + "No peers": "Keine Verbindungen", + "No public node selected - please select a public node": "Kein öffentlicher Knoten ausgewählt - bitte öffentlichen Knoten auswählen", + "No transactions": "Keine Transaktionen", + "No wallets found, please create a new wallet": "Keine Wallets gefunden, bitte neues Wallet anlegen", + "Node": "Knoten", + "Node Status": "Status des Knotens", + "Noise": "Rauschen", + "None": "Keine", + "Normal": "Normal", + "Not Connected": "Nicht verbunden", + "Not connected": "Nicht verbunden", + "Notifications": "Benachrichtigungen", + "Open Data Folder": "Datenverzeichnis öffnen", + "Opening wallet:": "Öffne Wallet:", + "Optional": "Optional", + "Options": "Einstellungen", + "Other operations": "Andere Möglichkeiten", + "Outbound": "Ausgehend", + "Overview": "Übersicht", + "PREV": "VORHERIGE", + "Parents": "Eltern", + "Passive Sync": "Passiv Sync", + "Passphrase is too weak": "Passphrase ist zu schwach", + "Passphrases do not match": "Passphrases stimmen nicht überein", + "Passwords do not match": "Passwörter stimmen nicht überein", + "Past Median Time": "Durchschnitt letzter Blockzeiten", + "Payment & Recovery Password": "Zahlungs- und Wiederherstellungspasswort", + "Payment Request": "Zahlungsanforderung", + "Payment request to account: {account}": "Zahlungsanforderung an Konto: {account}", + "Peers": "Verbindungen", + "Pending: {amount}": "Ausstehend: {amount}", + "Performance": "Leistung", + "Phishing Hint": "Phishing-Hinweis", + "Ping:": "Ping:", + "Please Confirm Deletion": "Löschen bitte bestätigen", + "Please configure your Kaspa NG settings": "Bitte Kaspa NG einrichten", + "Please connect to Kaspa p2p node": "Bitte zu einem Kaspa p2p-Knoten verbinden", + "Please create a stronger password": "Bitte ein stärkeres Passwort verwenden", + "Please enter a valid address: {err}": "Bitte eine gültige Adresse eingeben: {err}", + "Please enter a valid amount of KAS": "Bitte einen gültigen KAS Betrag eingeben", + "Please enter additional {amount} words": "Bitte weitere {amount} Wörter eingeben", + "Please enter an amount": "Bitte Betrag eingeben", + "Please enter mnemonic comprised of {number} words": "Bitte Merktext bestehend aus {number} Wörtern eingeben", + "Please enter the account name": "Bitte den Kontoname eingeben", + "Please enter the wallet secret": "Bitte Wallet-Merktext eingeben", + "Please enter {suffix} amount to send": "Bitte {suffix} Betrag zu senden eingeben", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Bitte beachten: Das Kopieren in die Zwischenablage birgt das Risiko, dass ihr Merktext von einer Malware ausgelesen werden kann.", + "Please select 'Apply' and restart the application.": "Bitte wählen Sie 'Anwenden' und starten Sie die Applikation neu.", + "Please select account to scan": "Bitte zu scannendes Konto auswählen", + "Please select an account type": "Bitte Kontotyp auswählen", + "Please select export type": "Bitte Export-Typ auswählen", + "Please select the private key to export": "Bitte zu exportierenden privaten Schlüssel auswählen", + "Please select the private key type you would like to import in the new wallet": "Bitte wählen Sie, welchen Typ von privatem Schlüssel Sie für das neue Wallet importieren möchten", + "Please set node to 'Disabled' to delete the data folder": "Um den Datenordner zu löschen, bitte den Knoten auf 'Deaktiviert' stellen", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Bitte geben Sie den Name des Standardkontos an. Das Wallet wird mit einem Standardkonto angelegt. Einmal erzeugt, können nach Bedarf weitere Konten angelegt werden.", + "Please specify the name of the new wallet": "Bitte Name des neuen Wallet eingeben", + "Please specify the private key type for the new wallet": "Bitte Typ des privaten Schlüssels für das neue Wallet angeben", + "Please support Kaspa NG development": "Bitte unterstützen Sie die Weiterentwicklung von Kaspa NG", + "Please wait for the node to sync or connect to a remote node.": "Bitte warten, bis der Knoten synchronisiert bzw. zu einem entfernten Knoten verbunden ist.", + "Please wait for the node to sync...": "Bitte warten bis Knoten synchronisiert ist...", + "Please wait...": "Bitte warten...", + "Presets": "Standardeinstellungen", + "Price": "Preis", + "Priority": "Priorität", + "Priority Fee Estimator": "Geschätzte Prioritätsgebühr", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Prioritär: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Merktext zum privaten Schlüssel", + "Private key mnemonic stored in this wallet": "Der in diesem Wallet zum privaten Schlüssel gespeicherte Merktext", + "Processed Bodies": "Bearbeiteter Inhalt", + "Processed Dependencies": "Bearbeitete Abhängigkeiten", + "Processed Headers": "Abgearbeitete Kopfzeilen", + "Processed Mass Counts": "Verarbeitete Menge", + "Processed Transactions": "Abgearbeitete Transaktionen", + "Processing...": "Bearbeite...", + "Protocol:": "Protokoll:", + "Public Node": "Öffentlicher Knoten", + "Public wRPC (Borsh)": "Öffentlicher wRPC (Borsh)", + "Quit": "Beenden", + "Random Public Node": "Zufälliger öffentlicher Knoten", + "Range:": "Bereich:", + "Receive Address": "Empfangsadresse", + "Recommended arguments for the remote node: ": "Empfohlene Argumente für den entfernten Knoten:", + "Redistributables": "Release-Download", + "Remote": "Entfernt", + "Remote Connection:": "Verbindungen nach aussen:", + "Remote p2p Node Configuration": "Konfiguration des entfernten p2p-Knotens", + "Removes security restrictions, allows for single-letter passwords": "Entfernt Sicherheitsbeschränkungen, erlaubt Passwörter mit nur einem Zeichen", + "Reset Settings": "Einstellungen zurücksetzen", + "Reset VSPC": "VSPC zurücksetzen", + "Resident Memory": "Physischer RAM", + "Resources": "Resourcen", + "Restart": "Neustart", + "Restore window": "Fenster wiederherstellen", + "Resulting daemon arguments:": "Resultierende Dienst-Argumente:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa auf GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Untersuche Adressabstammung {index}...", + "Scanning complete...": "Scannen abgeschlossen...", + "Secret is too weak": "Geheimschlüssel zu schwach", + "Secret score:": "Passwortstärke", + "Select Account": "Konto auswählen", + "Select Private Key Type": "Typ des privaten Schlüssels auswählen", + "Select Public Node": "Öffentlichen Knoten auswählen", + "Select Wallet": "Wallet auswählen", + "Select a wallet to unlock": "Zum Entsperren bitte Wallet auswählen", + "Select file...": "Datei auswählen...", + "Select this option if your wallet was created": "Diese Option wählen, wenn Ihr Wallet durch KDX", + "Send": "Senden", + "Sending funds": "Sende Guthaben", + "Sending funds without priority fees will result in long transaction wait times.": "Das Senden von Finanzmitteln ohne Prioritätsgebühr wird zu langen Transaktionswartezeiten führen.", + "Sending: {amount}": "Sende: {amount}", + "Services": "Dienste", + "Settings": "Einstellungen", + "Show DAA": "DAA anzeigen", + "Show Grid": "Netz anzeigen", + "Show VSPC": "VSPC anzeigen", + "Show balances in alternate currencies for testnet coins": "Kontostand für Testnet-Coins in alternativer Währung anzeigen", + "Show passphrase": "Passphrase anzeigen", + "Show password": "Passwort zeigen", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Zeigt den Kontostand in einer alternativen Währung (BTC, USD) im Testnetz, so als wären Sie im Hauptnetz.", + "Skip": "Überspringen", + "Small (10 BPS)": "Klein (10BPS)", + "Spread": "Spreizung", + "Stage": "Stufe", + "Starting...": "Starte...", + "Statistics": "Statistiken", + "Stop": "Stop", + "Stor Read": "HDD lesen", + "Stor Write": "HDD schreiben", + "Storage": "HDD", + "Storage Read": "Lesezugriff", + "Storage Read/s": "HDD lesen/s", + "Storage Size": "Speichergrösse", + "Storage Write": "Schreibzugriff", + "Storage Write/s": "HDD schreiben/s", + "Strong": "Stark", + "Submitted Blocks": "Übermittelte Blöcke", + "Syncing Cryptographic Proof...": "Synchronisiere kryptografischen Nachweiss...", + "Syncing DAG Blocks...": "DAG-Blöcke werden synchronisiert...", + "Syncing Headers...": "Synchronisiere Kopfzeilen...", + "Syncing UTXO entries...": "UTXO-Einträge werden synchronisiert...", + "Syncing...": "Synchronisiere...", + "System": "System", + "TPS": "TPS", + "Testnet 10": "Testnetz 10", + "Testnet 11": "Testnetz 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Kaspa NG repräsentiert einen fortwährenden Einsatz, für das Kaspa BlockDAG Kryptowährung eine Software-Platform basierend auf aktuellem Stand der Technik zu entwickeln. Der ideologische Focus priorisiert dabei Sicherheit, Privatsphäre, Leistung und Dezentralisierung.", + "The balance may be out of date during node sync": "Der Kontostand ist während der Synchronisation des Knotens mglw. nicht aktuell", + "The following will guide you through the process of creating or importing a wallet.": "Im folgenden werden Sie durch den Prozess von Wallet-Erzeugung und -Import geführt", + "The network is currently congested.": "Das Netzwerk ist momentan überlastet.", + "The node is currently syncing with the Kaspa p2p network.": "Der Knoten synchronisiert sich mit dem Kaspa p2p-Netzwerk.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "Der Knoten synchronisiert sich momentan mit dem Kaspa p2p Netzwerk. Die Kontostände können daher nicht aktuell sein.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "Der Knoten synchronisiert sich im Moment mit dem Kaspa p2p Netzwerk. Bitte warten Sie, bis der Knoten synchronisiert ist.", + "The node is spawned as a child daemon process (recommended).": "Der Knoten wurde als Kind-Prozess gestartet (empfohlen).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "Der Knoten läuft als Teil des Kaspa NG Applikationsprozesses. Das reduziert den Kommunikationsaufwand (experimentell).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "Der Knoten synchronisiert im Hintergrund während Kaspa NG zu einem öffentlichen Knoten verbunden ist.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "Der Knoten synchronisiert sich im Hintergrund, während Kaspa-NG mit einem öffentlichen Knoten verbunden ist. Sobald der Knoten synchronisiert ist, können Sie zum 'Integrierten Dienst' Modus wechseln.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "Das optionale Zahlungs- und Wiederherstellungs-Merktext-Passwort, bekannt als BIP39-Passphrase, wird wenn angegeben verwendet, um Zahlungen auszulösen. Diese Passphrase wird ausserdem bei der Wallet-Wiederherstellung zusätzlich zum Merktext benötigt. Wenn Sie diese Passphrase vergessen, werden Sie den Merktext zur Wiederherstellung des Wallets nicht benutzen können!", + "Theme Color": "Farbschema", + "Theme Color:": "Farbschema:", + "Theme Style": "Thema", + "Theme Style:": "Thema:", + "This option will transfer any discovered funds to the first change address of this account.": "Diese Option wird jeden gefundenen Betrag zur ersten Wechselgeldadresse dieses Kontos übertragen.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Das Wallet wird niemals nach Ihrem Merktext fragen, solange Sie nicht die Wiederherstellung des privaten Schlüssels starten.", + "Threshold": "Schwellwert", + "Time Offset:": "Zeitversatz:", + "Timestamp: {timestamp}": "Zeitstempel: {timestamp}", + "Tip Hashes": "BlockDAG-Spitzen", + "Too many words in the": "Zu viele Wörter in der", + "Tools": "Werkzeuge", + "Total Rx": "Summe Rx", + "Total Rx/s": "Summe Rx/s", + "Total Tx": "Summe Tx", + "Total Tx/s": "Summe Tx/s", + "Total addresses scanned: {index}": "Insgesamt untersuchte Adressen: {index}", + "Track in the background": "Im Hintergrund verfolgen", + "Transactions": "Transaktionen", + "Transactions:": "Transaktionen:", + "Transactions: {number}": "Transaktionen: {number}", + "Transfer funds during scan": "Übertrage Geldmittel während dem Scan", + "Type": "Typ", + "URI copied to clipboard": "URI in die Zwischenablage kopiert", + "UTXO Manager": "UTXO-Manager", "UTXOs": "UTXOs", "UTXOs:": "UTXOs:", - "Unable to change node settings until the problem is resolved": "تا زمانی که مشکل حل نشود، امکان تغییر تنظیمات نود وجود ندارد", - "Unlock": "باز کردن", - "Unlock Wallet": "بازکردن کیف پول", - "Unlocking": "بازکردن", - "Update Available to version": "به‌روزرسانی در نسخه کنونی", - "Updating...": "در حال بروز رسانی...", - "Uptime:": "آپتایم:", - "Use 50%-75% of available system memory": "از 50 حافظه موجود سیستم %-75% استفاده کنید", - "Use all available system memory": "استفاده از تمام حافظه های موجود سیستم ", - "User Agent": "عامل کاربر", - "User Interface": "رابط کاربری", - "Very dangerous (may be cracked within few seconds)": "بسیار خطرناک (ممکن است در عرض چند ثانیه کرک شود)", - "Virt Parents": "سرمنشا مجازی", - "Virtual DAA Score": "امتیاز ترتیب دستیابى داده ها DAA مجازی", - "Virtual Memory": "حافظه مجازی", - "Virtual Parent Hashes": "هش های سرمنشا مجازی", - "Volume": "حجم معاملات", - "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", - "Wallet": "کیف پول", - "Wallet Created": "کیف پول ایجاد شد", - "Wallet Encryption Password": "کلمه عبور رمزگذاری کیف پول", - "Wallet Name": "نام کیف پول", - "Wallet Secret": "رمز کیف پول", - "Wallet password is used to encrypt your wallet data.": "کلمه عبور کیف پول، برای رمزگذاری داده های کیف پول شما استفاده می شود.", - "Wallet:": "کیف پول:", - "We greatly appreciate your help in backing our efforts.": "از کمک شما در حمایت از تلاش هایمان قدردانی می کنیم.", - "Welcome to Kaspa NG": "به Kaspa NG خوش آمدید", - "Xpub Keys": "کلیدهای Xpub", - "You are currently not connected to the Kaspa node.": "شما در حال حاضر به نود Kaspa متصل نیستید.", - "You can configure remote connection in Settings": "می توانید اتصال از راه دور را در تنظیمات پیکربندی کنید", - "You can create multiple wallets, but only one wallet can be open at a time.": "شما می توانید چندین کیف پول ایجاد کنید، اما تنها یک کیف پول می تواند در یک زمان باز باشد.", - "You must be connected to a node...": "شما باید به یک نود متصل باشید...", - "Your default wallet private key mnemonic is:": "کلید خصوصی عبارت یادآور کیف پول شما این هست:", - "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "عبارت یادآور شما به شما امکان می دهد کلید خصوصی خود را دوباره ایجاد کنید. شخصی که به این عبارت یادآور دسترسی داشته باشد، کنترل کامل Kaspa ذخیره شده در آن را خواهد داشت. عبارت یادآور خود را ایمن نگه دارید. آن را یادداشت کنید و در یک گاوصندوق، ترجیحا در مکانی مقاوم در برابر آتش نگهداری کنید. عبارت یادآور خود را در این رایانه یا دستگاه تلفن همراه ذخیره نکنید. این کیف پول هرگز از شما این عبارت یاآور را نمی خواهد مگر اینکه به صورت دستی بازیابی کلید خصوصی را شروع کنید.", - "Your private key mnemonic is:": "کلید خصوصی عبارت یادآور شما این هست:", - "Your wallet has been created and is ready to use.": "کیف پول شما ساخته شده و آماده استفاده است.", - "Zoom": "بزرگنمایی", - "amount to send": "مبلغ برای ارسال", - "bye!": "خداحافظ!", - "gRPC Network Interface & Port": "رابط و پورت شبکه gRPC", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Bis das Problem gelöst ist, können die Einstellungen des Knotens nicht angepasst werden", + "Unable to store settings": "Einstellungen können nicht gespeichert werden", + "Unlock": "Entsperren", + "Unlock Wallet": "Wallet entsperren", + "Unlocking": "Entsperren", + "Update Available to version": "Aktualisierung verfügbar auf Version", + "Updating...": "Aktualisiere...", + "Uptime:": "Laufzeit:", + "Use 50%-75% of available system memory": "Benutze 50 %-75%des verfügbaren Systemspeichers", + "Use all available system memory": "Gesamten verfügbaren Systemspeicher verwenden", + "User Agent": "Programm", + "User Interface": "Benutzeroberfläche", + "Very dangerous (may be cracked within few seconds)": "Sehr gefährlich (mglw. innerhalb von Sekunden gebrochen)", + "Very strong": "Sehr stark", + "Very weak": "Sehr schwach", + "Virt Parents": "Virt Eltern", + "Virtual DAA Score": "Virtueller DAA-Stand", + "Virtual Memory": "Virtueller RAM", + "Virtual Parent Hashes": "Checksummen der virtuellen Eltern", + "Volume": "Menge", + "WASM SDK for JavaScript and TypeScript": "WASM SDK für JavaScript und TypeScript", + "Wallet": "Wallet", + "Wallet Created": "Wallet angelegt", + "Wallet Encryption Password": "Wallet Verschlüsselungspasswort", + "Wallet File Secret": "Wallet Datei Passwort", + "Wallet Name": "Wallet-Name", + "Wallet Secret": "Wallet-Passwort", + "Wallet creation error:": "Fehler beim Anlegen des Wallet:", + "Wallet decrypting error:": "Fehler beim Entschlüsseln des Wallet:", + "Wallet password is used to encrypt your wallet data.": "Das Wallet-Passwort wird verwendet, um die Daten im Wallet zu verschlüsseln.", + "Wallet with this name already exists": "Ein Wallet mit diesem Name existiert bereits", + "Wallet:": "Wallet:", + "We greatly appreciate your help in backing our efforts.": "Jedwede Unterstützung unserer Anstrengungen wird geschätzt.", + "Weak": "Schwach", + "Welcome to Kaspa NG": "Herzlich willkommen bei Kaspa NG", + "Xpub Keys": "Xpub Schlüssel", + "You are currently not connected to the Kaspa node.": "Sie sind momentan nicht mit einem Kaspa-Knoten verbunden.", + "You can configure remote connection in Settings": "Verbindungen können in den Einstellungen konfiguriert werden", + "You can create multiple wallets, but only one wallet can be open at a time.": "Sie können mehrere Wallets anlegen aber nur ein Wallet kann jeweils geöffnet sein.", + "You must be connected to a node...": "Sie müssen zu einem Knoten verbunden sein", + "Your default wallet private key mnemonic is:": "Ihr Merktext zum privaten Schlüssel des Standard-Wallet ist:", + "Your mnemonic is protected with a bip39 passphrase": "Ihr Merktext wird von einer BIP39-Passphrase geschützt", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Ihr Merktext erlaubt es, Ihren privaten Schlüssel wiederherzustellen. Jeder mit Zugriff auf diesen Merktext hat die volle Kontrolle über die darin enthaltenen Kaspa. Bitte verwahren Sie den Merktext sicher. Schreiben Sie ihn auf und verwahren Sie ihn an einem sicheren, idealerweise brandgeschütztem Ort. Speichern Sie den Merktext keinesfalls auf einem Computer oder einem Mobiltelefon! Das Wallet wird niemals nach dem Merktext fragen, solange Sie nicht die Wiederherstellung des privaten Schlüssels starten.", + "Your mnemonic phrase is invalid": "Ihr Merktext ist ungültig", + "Your private key mnemonic is:": "Der Merktext zu Ihrem privaten Schlüssel ist: ", + "Your wallet has been created and is ready to use.": "Ihr Wallet wurde angelegt und ist bereit zur Verwendung.", + "Zoom": "Vergrösserung", + "bye!": "Auf Wiedersehen!", + "gRPC Network Interface & Port": "gRPC Netzwerkschnittstelle und Port", "gRPC Rx": "gRPC Rx", "gRPC Rx/s": "gRPC Rx/s", - "gRPC Tx": "تراکنش gRPC", - "gRPC Tx/s": "تراکنش در ثانیه gRPC", - "of": "از", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "von", "p2p RPC": "p2p RPC", "p2p Rx": "p2p Rx", "p2p Rx/s": "p2p Rx/s", - "p2p Tx": "تراکنش های p2p", - "p2p Tx/s": "تراکنش در ثانیه p2p", - "peer": "همتا", - "peers": "همتایان", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "Verbindung", + "peers": "Peers", + "using KDX or kaspanet.io web wallet": "oder das kaspanet.io Web-Wallet erzeugt wurde.", "wRPC Borsh Rx": "wRPC Borsh Rx", "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", - "wRPC Borsh Tx": "تراکنش wRPC Borsh", - "wRPC Borsh Tx/s": "تراکنش در ثانیه wRPC Borsh", - "wRPC Connection Settings": "تنظیمات اتصال wRPC", - "wRPC Encoding:": "رمزگذاری wRPC:", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "wRPC Verbindungseinstellungen", + "wRPC Encoding:": "wRPC Kodierung:", "wRPC JSON Rx": "wRPC JSON Rx", "wRPC JSON Rx/s": "wRPC JSON Rx/s", - "wRPC JSON Tx": "تراکنش wRPC JSON", - "wRPC JSON Tx/s": "تراکنش در ثانیه wRPC JSON", - "wRPC URL:": "آدرس wRPC:" - }, - "fi": {}, - "fil": {}, - "fr": {}, - "he": { - "1 BPS test network": "רשת בדיקת 1 BPS", - "10 BPS test network": "רשת בדיקת 10 BPS", - "12 word mnemonic": "מנומוניק 12 מילים", - "24 word mnemonic": "מנומוניק 24 מילים", - "24h Change": "שינוי ב-24 שעות", - "A binary at another location is spawned a child process (experimental, for development purposes only).": "בינארי במיקום אחר משפיע על תהליך ילד (ניסיוני, למטרות פיתוח בלבד).", - "A random node will be selected on startup": "צומת אקראית תבחר בהפעלה", - "A wallet is stored in a file on your computer.": "ארנק מאוחסן בקובץ במחשב שלך.", - "Account Index": "מספר חשבון", - "Account Name": "שם החשבון", - "Account:": "חשבון:", - "Activate custom daemon arguments": "הפעל ארגומנטים מותאמים אישית לדימון Rusty Kaspa", - "Active p2p Peers": "עמיתים p2p פעילים", - "Address derivation scan": "סריקת נגזרת כתובת", - "Address:": "כתובת:", - "Advanced": "מתקדם", - "All": "הכל", - "Allow custom arguments for the Rusty Kaspa daemon": "אפשר ארגומנטים מותאמים אישית עבור הדימון Rusty Kaspa", - "Allows you to take screenshots from within the application": "מאפשר לך לצלם מסך מתוך היישום", - "Apply": "החל", - "Balance: N/A": "יתרה: N/A", - "Bandwidth": "רוחב פס", - "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "כתוצאה מהדגש שלה על אבטחה וביצועים, תוכנה זו נכתבה כולה ב־Rust, דורשת יותר זמן ומאמץ משמעותית בהשוואה לתוכנות דרייבניות ווב מודרניות טרדיציונליות אחרות.", - "Bezier Curves": "קווים בזייה", - "Block DAG": "DAG בלוק", - "Block Scale": "קנה מידה של בלוק", - "Blocks": "בלוקים", - "Bodies": "גופים", - "Borsh Active Connections": "חיבורים פעילים של Borsh", - "Borsh Connection Attempts": "נסיונות חיבור של Borsh", - "Borsh Handshake Failures": "כשלונות ידידותיות של Borsh", - "Build": "בנייה", - "CONNECTED": "מחובר", - "CPU": "מעבד", - "Cache Memory Size": "גודל זיכרון מטמון", - "Cache Memory Size:": "גודל זיכרון מטמון:", - "Cancel": "ביטול", - "Cannot delete data folder while the node is running": "לא ניתן למחוק את תיקיית הנתונים בזמן ריצת הצומת", - "Capture a screenshot": "לתפוס צילום מסך", - "Center VSPC": "מרכז את VSPC", - "Chain Blocks": "בלוקי שרשרת", - "Change Address": "שינוי כתובת", - "Check for Software Updates on GitHub": "בדיקת עדכוני תוכנה ב-GitHub", - "Check for Updates": "בדיקת עדכונים", - "Clear": "ניקוי", - "Click to try another server...": "לחץ כדי לנסות שרת אחר...", - "Client RPC": "RPC של לקוח", - "Close": "סגירה", - "Close the window": "סגירת החלון", - "Confirm wallet password": "אימות סיסמת ארנק", - "Connect to a local node (localhost)": "התחברות לצומת מקומי (localhost)", - "Connecting to": "מתחבר אל", - "Connection": "חיבור", - "Connections": "חיבורים", - "Connects to a Remote Rusty Kaspa Node via wRPC.": "מתחבר לצומת Rusty Kaspa רחוק באמצעות wRPC.", - "Conservative": "שומר", - "Continue": "המשך", - "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.": "תרומות שמיועדות לפרויקט זה מזינות ישירות את תוכנת Kaspa NG ואת האקוסיסטמה שלה.", - "Copied to clipboard": "הועתק ללוח", - "Copy": "העתק", - "Copy logs to clipboard": "העתק לוגים ללוח", - "Create New Account": "צור חשבון חדש", - "Create New Wallet": "צור ארנק חדש", - "Create new wallet": "צור ארנק חדש", - "Creating Account": "יוצר חשבון", - "Creating Wallet": "יוצר ארנק", - "Custom": "מותאם אישית", - "Custom Public Node": "צומת ציבורית מותאמת אישית", - "Custom arguments:": "ארגומנטים מותאמים אישית:", - "Custom data storage folder": "תיקיית אחסון נתונים מותאמת אישית", - "DAA": "DAA", - "DAA Offset": "היסט די.איי.איי", - "DAA Range": "טווח די.איי.איי", - "DB Blocks": "בלוקים ב-DB", - "DB Headers": "כותרות ב-DB", - "Data Storage": "אחסון נתונים", - "Database Blocks": "בלוקי מסד נתונים", - "Database Headers": "כותרות מסד נתונים", - "Decrypting wallet, please wait...": "מפענח ארנק, אנא המתן...", - "Default": "ברירת מחדל", - "Default Account Name": "שם חשבון ברירת מחדל", - "Delete Data Folder": "מחק תיקיית נתונים", - "Dependencies": "תלותים", - "Derivation Indexes": "אינדקסי הפקת", - "Details": "פרטים", - "Developer Mode": "מצב מפתח", - "Developer Resources": "משאבים למפתחים", - "Developer mode enables advanced and experimental features": "מצב המפתח מאפשר תכונות מתקדמות וניסיוניות", - "Difficulty": "רמת קושי", - "Dimensions": "ממדים", - "Disable password score restrictions": "השבת הגבלות ציון סיסמה", - "Disabled": "מנוטרל", - "Disables node connectivity (Offline Mode).": "מבטל חיבור הצומת (מצב לא מקוון).", - "Discord": "דיסקורד", - "Donations": "תרומות", - "Double click on the graph to re-center...": "לחיצה כפולה על הגרף כדי למרכז שוב...", - "ECDSA": "ECDSA", - "Enable Market Monitor": "הפעלת מוניטור שוק", - "Enable UPnP": "הפעלת UPnP", - "Enable custom daemon arguments": "הפעלת ארגומנטים מותאמים אישית לדימון", - "Enable experimental features": "הפעלת תכונות ניסיוניות", - "Enable gRPC": "הפעלת gRPC", - "Enable optional BIP39 passphrase": "הפעלת ססמת BIP39 אופציונלית", - "Enable screen capture": "הפעלת תפיסת מסך", - "Enables features currently in development": "מאפשר תכונות שנמצאות כרגע בפיתוח", - "Enter": "הזן", - "Enter account name (optional)": "הזן שם חשבון (אופציונלי)", - "Enter first account name": "הזן שם חשבון ראשון", - "Enter phishing hint": "הזן רמז להפניית פישינג", - "Enter the amount": "הזן את הסכום", - "Enter the password for your wallet": "הזן את הסיסמה של הארנק שלך", - "Enter the password to unlock your wallet": "הזן את הסיסמה כדי לפתוח את הארנק שלך", - "Enter wallet name": "הזן שם ארנק", - "Enter wallet password": "הזן סיסמת ארנק", - "Enter your wallet secret": "הזן את סוד הארנק שלך", - "Explorer": "דפדפן", - "Export Wallet Data": "ייצא נתוני ארנק", - "Faucet": "מתקן", - "File Handles": "ידיות קובץ", - "Filename:": "שם קובץ:", - "Final Amount:": "סכום סופי:", - "GitHub Release": "גרסת GitHub", - "Go to Settings": "עבור אל הגדרות", - "Handles": "ידיות", - "Headers": "כותרות", - "IBD:": "IBD:", - "If not specified, the account will be represented by the numeric id.": "אם לא צוין, החשבון ייווצג על ידי המזהה המספרי.", - "If you are running locally, use: ": "אם אתה מריץ מקומית, השתמש: ", - "Import existing": "יבוא קיים", - "Inbound": "נכנס", - "Include QoS Priority Fees": "כלול דמי עדיפות QoS", - "Integrated Daemon": "דימון משולב", - "Invalid daemon arguments": "ארגומנטים לדימון שגויים", - "Invalid network type - expected: testnet-10 connected to: testnet-11": "סוג רשת לא תקין - ציפיתי: testnet-10 מחובר ל: testnet-11", - "Invalid wRPC URL": "כתובת URL של wRPC לא תקינה", - "Json Active Connections": "חיבורים פעילים של JSON", - "Json Connection Attempts": "ניסיונות חיבור של JSON", - "Json Handshake Failures": "כשלים ביד של JSON", - "Kaspa Discord": "קספה Discord", - "Kaspa Integration Guide": "מדריך אינטגרציה של קספה", - "Kaspa NG": "קספה NG", - "Kaspa NG Online": "קספה NG באינטרנט", - "Kaspa NG Web App": "אפליקציית רשת Kaspa NG", - "Kaspa NG on GitHub": "קספה NG ב-GitHub", - "Kaspa NG online": "קספה NG באינטרנט", - "Kaspa Network": "רשת קספה", - "Kaspa Node": "צומת קספה", - "Kaspa p2p Network & Node Connection": "רשת פיר-פיר וחיבור צומת קספה", - "Kaspa p2p Node": "צומת פיר-פיר קספה", - "Kaspa p2p Node & Connection": "צומת פיר-פיר קספה וחיבור", - "Key Perf.": "ביצועים מרכזיים", - "Language:": "שפה:", - "Large (1 BPS)": "גדול (1 BPS)", - "Levels": "רמות", - "License Information": "מידע רישיון", - "Local": "מקומי", - "Local p2p Node Configuration": "תצורת צומת p2p מקומית", - "Logs": "לוגים", - "MT": "MT", - "Main Kaspa network": "רשת קספה הראשית", - "Mainnet": "רשת ראשית", - "Mainnet (Main Kaspa network)": "רשת ראשית (רשת קספה הראשית)", - "Managed by the Rusty Kaspa daemon": "ניהול על ידי דימון קספה החורש", - "Market": "שוק", - "Market Cap": "שווי שוק", - "Market Monitor": "ניטור שוק", - "Mass Processed": "תהליך המוני", - "Medium Narrow": "בינוני צר", - "Medium Wide": "בינוני רחב", - "Memory": "זיכרון", - "Mempool": "בריכת עסקאות לזמן קצר", - "Mempool Size": "גודל בריכת העסקאות", - "Metrics": "מדדים", - "Metrics are not currently available": "מדדים כרגע לא זמינים", - "NPM Modules for NodeJS": "מודולי NPM עבור NodeJS", - "Network": "רשת", - "Network Difficulty": "רמת קושי של הרשת", - "Network Fees:": "דמי רשת:", - "Network Interface": "ממשק רשת", - "Network Peers": "עמיתי רשת", - "No peers": "אין עמיתים", - "No public node selected - please select a public node": "לא נבחר צומת ציבורי - בבקשה בחר צומת ציבורי", - "No transactions": "אין עסקאות", - "No wallets found, please create a new wallet": "לא נמצאו ארנקים, בבקשה צור ארנק חדש", - "Node": "צומת", - "Node Status": "מצב הצומת", - "Noise": "רעש", - "None": "אין", - "Not Connected": "לא מחובר", - "Not connected": "לא מחובר", - "Notifications": "התראות", - "Open Data Folder": "פתח תיקיית נתונים", - "Opening wallet:": "פותח ארנק:", - "Optional": "אופציונלי", - "Other operations": "פעולות נוספות", - "Outbound": "יוצא", - "Overview": "סקירה כללית", - "Parents": "הורים", - "Past Median Time": "זמן ממוצע קודם", - "Payment & Recovery Password": "סיסמת תשלום ושחזור", - "Payment Request": "בקשת תשלום", - "Peers": "עמיתים", - "Performance": "ביצועים", - "Phishing Hint": "רמז פישינג", - "Ping:": "פינג:", - "Please Confirm Deletion": "אנא אשר מחיקה", - "Please configure your Kaspa NG settings": "אנא הגדר את הגדרות ה-Kaspa NG שלך", - "Please connect to Kaspa p2p node": "אנא התחבר לצומת p2p של Kaspa", - "Please create a stronger password": "אנא צור סיסמה חזקה יותר", - "Please enter": "אנא הזן", - "Please enter KAS amount to send": "אנא הזן כמות של KAS לשליחה", - "Please enter an amount": "אנא הזן סכום", - "Please enter the account name": "אנא הזן את שם החשבון", - "Please enter the wallet secret": "אנא הזן את הסוד של הארנק", - "Please note that this is a beta release. Until this message is removed, please avoid using the wallet with mainnet funds.": "שים לב שזו גרסת אלפא. עד שהודעה זו תוסר, אנא הימנע משימוש בארנק עם כספים מרכזיים.", - "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "שים לב, העתקה ללוח גורמת לסיכון של חשיפת המנומוניק שלך לתוכנות זדוניות.", - "Please select an account type": "אנא בחר סוג חשבון", - "Please select the private key to export": "אנא בחר את המפתח הפרטי לייצוא", - "Please set node to 'Disabled' to delete the data folder": "אנא הגדר את הצומת ל-'מנוטרל' כדי למחוק את תיקיית הנתונים", - "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "אנא ציין את שם החשבון המוגדר כברירת מחדל. הארנק ייווצר עם חשבון ברירת המחדל. לאחר היצירה, תוכל ליצור חשבונות נוספים לפי הצורך.", - "Please specify the name of the new wallet": "אנא ציין את שם הארנק החדש", - "Please specify the private key type for the new wallet": "אנא ציין את סוג מפתח הפרטי עבור הארנק החדש", - "Please wait for the node to sync or connect to a remote node.": "אנא המתן עד שהצומת יסנכרן או תתחבר לצומת מרוחקה.", - "Please wait for the node to sync...": "אנא המתן עד שהצומת תסנכרן...", - "Please wait...": "אנא המתן...", - "Presets": "הגדרות מוגדרות מראש", - "Price": "מחיר", - "Private Key Mnemonic": "מנומוניק של מפתח פרטי", - "Processed Bodies": "גופים שעובדו", - "Processed Dependencies": "תלות שעובדה", - "Processed Headers": "כותרות שעובדו", - "Processed Mass Counts": "סופרי המסה שעובדו", - "Processed Transactions": "עסקאות שעובדו", - "Protocol:": "פרוטוקול:", - "Public Node": "צומת ציבורית", - "Public Nodes": "צמתים ציבוריים", - "Public Server": "שרת ציבורי", - "Public p2p Nodes for": "צמתי p2p ציבוריים עבור", - "Random Public Node": "צומת ציבורי אקראי", - "Range:": "טווח:", - "Receive Address": "כתובת קבלה", - "Recommended arguments for the remote node: ": "ארגומנטים מומלצים עבור הצומת המרוחקה:", - "Redistributables": "קבצים שניתן להפיצם מחדש", - "Remote": "מרוחק", - "Remote Connection:": "חיבור מרוחק:", - "Remote p2p Node Configuration": "הגדרת צומת p2p מרוחקת", - "Removes security restrictions, allows for single-letter passwords": "מסיר את ההגבלות האבטחה, מאפשר סיסמאות בודדות באות אחת", - "Reset Settings": "איפוס הגדרות", - "Reset VSPC": "איפוס VSPC", - "Resident Memory": "זיכרון פושב", - "Resources": "משאבים", - "Resulting daemon arguments:": "ארגומנטים של הדימון התוצאה:", - "Rust Wallet SDK": "Rust Wallet SDK", - "Rusty Kaspa on GitHub": "Rusty Kaspa ב־GitHub", - "Secret is too weak": "הסוד חלש מדי", - "Secret score:": "ניקוד הסוד:", - "Select Account": "בחר חשבון", - "Select Available Server": "בחר שרת זמין", - "Select Private Key Type": "בחר סוג מפתח פרטי", - "Select Public Node": "בחר צומת ציבורית", - "Select Wallet": "בחר ארנק", - "Select a wallet to unlock": "בחר ארנק לשחרור", - "Send": "שלח", - "Services": "שירותים", - "Settings": "הגדרות", - "Show DAA": "הצג DAA", - "Show Grid": "הצג רשת", - "Show VSPC": "הצג VSPC", - "Show balances in alternate currencies for testnet coins": "הצג יתרות במטבעות חלופיים עבור מטבעות ניסוי", - "Show password": "הצג סיסמה", - "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "מציג יתרות במטבעות חלופיים (BTC, USD) כאשר משתמשים במטבעות ניסוי כאילו אתה ב־mainnet", - "Skip": "דלג", - "Small (10 BPS)": "קטן (10 BPS)", - "Spread": "פיזור", - "Stage": "שלב", - "Starting...": "מתחיל...", - "Statistics": "סטטיסטיקות", - "Stor Read": "קריאת זיכרון", - "Stor Write": "כתיבת זיכרון", - "Storage": "אחסון", - "Storage Read": "קריאת אחסון", - "Storage Read/s": "קריאת אחסון לשנייה", - "Storage Write": "כתיבת אחסון", - "Storage Write/s": "כתיבת אחסון לשנייה", - "Submitted Blocks": "בלוקים שהוגשו", - "Supporting Kaspa NG development": "תמיכה בפיתוח של Kaspa NG", - "Syncing Cryptographic Proof...": "סנכרון ראיות קריפטוגרפיות...", - "Syncing DAG Blocks...": "סנכרון בלוקי DAG...", - "Syncing Headers...": "סנכרון כותרות...", - "Syncing UTXO entries...": "סנכרון רשומות UTXO...", - "Syncing...": "סנכרון...", - "System": "מערכת", - "TPS": "קצב העברת העסקאות לשנייה", - "Testnet 10": "Testnet 10", - "Testnet 10 (1 BPS)": "Testnet 10 (1 BPS)", - "Testnet 11": "Testnet 11", - "Testnet 11 (10 BPS)": "Testnet 11 (10 BPS)", - "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.": "Testnet 11 עדיין לא מאופשר לבדיקה ציבורית. בכל זאת, ניתן להגדיר את הצומת להתחבר לטסטנט הפרטי של מפתחים בלוח ההגדרות.", - "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "תוכנת Kaspa NG מייצגת מאמץ מתמיד הממוקד על בניית פלטפורמת תוכנה מתקדמת מסודרת לרשת הקריפטו Kaspa BlockDAG. כתוכנה אידיאולוגית בליבה, עדיף אבטחה, פרטיות, ביצועים ודיסטריבוציה.", - "The balance may be out of date during node sync": "היתכן כי היתר יהיה לא מעודכן במהלך סנכרון הצומת", - "The following will guide you through the process of creating or importing a wallet.": "הבא ידריך אותך דרך התהליך ליצירה או ייבוא של ארנק.", - "The node is currently syncing with the Kaspa p2p network.": "הצומת כרגע מסנכרן עם רשת ה-p2p של Kaspa.", - "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "הצומת כרגע מסנכרן עם רשת ה-p2p של Kaspa. יתכן כי היתר בחשבון יהיה לא מעודכן.", - "The node is spawned as a child daemon process (recommended).": "הצומת מופעל כתהליך תת-דמון (מומלץ).", - "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "הצומת רץ כחלק מתהליך היישום של Kaspa-NG. זה יכול להוריד את עומס התקשורת (ניסיוני).", - "Theme Color": "צבע ערכת נושא", - "Theme Color:": "צבע ערכת נושא:", - "Theme Style": "סגנון ערכת נושא", - "Theme Style:": "סגנון ערכת נושא:", - "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "ארנק זה לעולם לא יבקש ממך את הביטוי המנמוני הזה אלא אם תתחיל באופן ידני את שחזור מפתח פרטי.", - "Threshold": "סף", - "Time Offset:": "היסט הזמן:", - "Tip Hashes": "טיפ גידול", - "Tools ⏷": "כלים ⏷", - "Total Rx": "סך קבלת נתונים", - "Total Rx/s": "סך קבלת נתונים לשנייה", - "Total Tx": "סך שליחת נתונים", - "Total Tx/s": "סך שליחת נתונים לשנייה", - "Track in the background": "מעקב ברקע", - "Transactions": "עסקאות", - "Transactions:": "עסקאות:", - "Type": "סוג", - "UTXO Manager": "מנהל UTXO", - "UTXOs": "UTXOs", - "UTXOs:": "UTXOs:", - "Unable to change node settings until the problem is resolved": "לא ניתן לשנות את הגדרות הצומת עד שהבעיה תיפתר", - "Unlock": "פתח", - "Unlock Wallet": "פתח ארנק", - "Unlocking": "פתיחה", - "Update Available to version": "עדכון זמין לגרסה", - "Updating...": "מעדכן...", - "Uptime:": "זמן פעילות:", - "Use 50%-75% of available system memory": "השתמש ב- 50%-75% מזיכרון המערכת הזמין", - "Use all available system memory": "השתמש בכל זיכרון המערכת הזמין", - "User Agent": "סוכן משתמש", - "User Interface": "ממשק משתמש", - "Very dangerous (may be cracked within few seconds)": "סכנה גבוהה מאוד (ייתכן שינתקלו בו במשך מספר שניות)", - "Virt Parents": "הורים וירטואליים", - "Virtual DAA Score": "ניקוד DAA וירטואלי", - "Virtual Memory": "זיכרון וירטואלי", - "Virtual Parent Hashes": "גיבורי הורים וירטואליים", - "Volume": "נפח", - "WASM SDK for JavaScript and TypeScript": "WASM SDK עבור JavaScript ו- TypeScript", - "Wallet": "ארנק", - "Wallet Created": "ארנק נוצר", - "Wallet Encryption Password": "סיסמת הצפנה לארנק", - "Wallet Name": "שם הארנק", - "Wallet Secret": "סוד הארנק", - "Wallet password is used to encrypt your wallet data.": "סיסמת הארנק משמשת להצפנת נתוני הארנק שלך.", - "Wallet:": "ארנק:", - "We greatly appreciate your help in backing our efforts.": "אנו מעריכים מאוד את עזרתך בתמיכה במאמצים שלנו.", - "Welcome to Kaspa NG": "ברוך הבא ל- Kaspa NG", - "Xpub Keys": "מפתחות Xpub", - "You are currently not connected to the Kaspa node.": "כרגע אינך מחובר לצומת Kaspa.", - "You can configure remote connection in Settings": "תוכל להגדיר חיבור מרחוק בהגדרות", - "You can create multiple wallets, but only one wallet can be open at a time.": "תוכל ליצור מספר ארנקים, אך רק ארנק אחד יכול להיות פתוח בכל פעם.", - "You must be connected to a node...": "עליך להתחבר לצומת...", - "Your default wallet private key mnemonic is:": "המנמוני הפרטי של הארנק המוגדר כברירת מחדל שלך הוא:", - "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "הביטוי המנמוני שלך מאפשר לך ליצור מחדש את המפתח הפרטי שלך. האדם שיש לו גישה למנמוני זה יהיה בעל שליטה מלאה ב-Kaspa השמור עליו. שמור על המנמוני שלך. רשום אותו ואחסון אותו במקום בטוח, למיטב יכולתך במקום העמיד לאש. אל תאחסן את המנמוני שלך במחשב זה או במכשיר נייד. ארנק זה לעולם לא יבקש ממך את הביטוי המנמוני הזה אלא אם תתחיל באופן ידני את שחזור המפתח הפרטי.", - "Your private key mnemonic is:": "המנמוני הפרטי שלך הוא:", - "Your wallet has been created and is ready to use.": "הארנק שלך נוצר ומוכן לשימוש.", - "Zoom": "התקרבות", - "amount to send": "סכום לשליחה", - "bye!": "ביי!", - "gRPC Network Interface & Port": "ממשק רשת ופורט gRPC", - "gRPC Rx": "קליטת gRPC", - "gRPC Rx/s": "קליטת gRPC לשנייה", - "gRPC Tx": "שידור gRPC", - "gRPC Tx/s": "שידור gRPC לשנייה", - "of": "מתוך", - "p2p RPC": "RPC ב-p2p", - "p2p Rx": "קליטת p2p", - "p2p Rx/s": "קליטת p2p לשנייה", - "p2p Tx": "שידור p2p", - "p2p Tx/s": "שידור p2p לשנייה", - "peer": "עמית", - "peers": "עמיתים", - "wRPC Borsh Rx": "קליטת wRPC Borsh", - "wRPC Borsh Rx/s": "קליטת wRPC Borsh לשנייה", - "wRPC Borsh Tx": "שידור wRPC Borsh", - "wRPC Borsh Tx/s": "שידור wRPC Borsh לשנייה", - "wRPC Connection Settings": "הגדרות חיבור wRPC", - "wRPC Encoding:": "קידוד wRPC:", - "wRPC JSON Rx": "קליטת wRPC JSON", - "wRPC JSON Rx/s": "קליטת wRPC JSON לשנייה", - "wRPC JSON Tx": "שידור wRPC JSON", - "wRPC JSON Tx/s": "שידור wRPC JSON לשנייה", - "wRPC URL:": "כתובת URL של wRPC:" + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Senden", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Übertragen", + "{qrCodeIcon} Request": "{qrCodeIcon} Anfordern", + "~2 hours": "~2 Stunden", + "~30 minutes": "~30 Minuten" }, - "hi": { - "1 BPS test network": "1 बीपीएस परीक्षण नेटवर्क", - "10 BPS test network": "10 बीपीएस परीक्षण नेटवर्क", - "12 word mnemonic": "12 शब्दों का स्मृतिचिह्न", - "24 word mnemonic": "24 शब्दों का स्मृतिचिह्न", - "24h Change": "24 घंटे का परिवर्तन", - "A binary at another location is spawned a child process (experimental, for development purposes only).": "एक अन्य स्थान पर एक बाइनरी एक बच्चा प्रक्रिया उत्पन्न करता है (प्रयोगशाला, विकास के उद्देश्यों के लिए केवल)।", - "A random node will be selected on startup": "प्रारंभ में एक यादृच्छिक नोड चयनित किया जाएगा", - "A wallet is stored in a file on your computer.": "एक वॉलेट आपके कंप्यूटर पर एक फ़ाइल में संग्रहीत होता है।", - "Account Index": "खाता सूची", - "Account Name": "खाता नाम", - "Account:": "खाता:", - "Activate custom daemon arguments": "कस्टम डेमन तर्कों को सक्रिय करें", - "Active p2p Peers": "सक्रिय p2p पीयर्स", - "Address derivation scan": "पता निर्माण स्कैन", - "Address:": "पता:", - "Advanced": "उन्नत", - "All": "सभी", - "Allow custom arguments for the Rusty Kaspa daemon": "रस्टी कास्पा डेमन के लिए कस्टम तर्कों की अनुमति दें", - "Allows you to take screenshots from within the application": "आवेदन के भीतर स्क्रीनशॉट लेने की अनुमति देता है", - "Apply": "लागू करें", - "Balance: N/A": "शेष: एन / ए", - "Bandwidth": "बैंडविड्थ", - "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "सुरक्षा और प्रदर्शन पर ध्यान केंद्रित करने के कारण, यह सॉफ़्टवेयर पूरी तरह से रस्ट में विकसित किया गया है, इसमें अन्य पारंपरिक आधुनिक वेब निर्देशित सॉफ़्टवेयर की तुलना में काफी अधिक समय और प्रयास की आवश्यकता होती है।", - "Bezier Curves": "बेज़ियर कर्वेज़", - "Block DAG": "ब्लॉक DAG", - "Block Scale": "ब्लॉक स्केल", - "Blocks": "ब्लॉक", - "Bodies": "बॉडी", - "Borsh Active Connections": "बोर्श सक्रिय कनेक्शन", - "Borsh Connection Attempts": "बोर्श कनेक्शन प्रयास", - "Borsh Handshake Failures": "बोर्श हैंडशेक विफलताएँ", - "Build": "निर्माण", - "CONNECTED": "कनेक्टेड", - "CPU": "सीपीयू", - "Cache Memory Size": "कैश मेमोरी का आकार", - "Cache Memory Size:": "कैश मेमोरी का आकार:", - "Cancel": "रद्द करें", - "Cannot delete data folder while the node is running": "नोड चल रहे हैं तब डेटा फ़ोल्डर को हटाया नहीं जा सकता", - "Capture a screenshot": "एक स्क्रीनशॉट कैप्चर करें", - "Center VSPC": "केंद्र VSPC", - "Chain Blocks": "श्रृंखला ब्लॉक", - "Change Address": "पता बदलें", - "Check for Software Updates on GitHub": "GitHub पर सॉफ़्टवेयर अपडेट के लिए जाँच करें", - "Check for Updates": "अपडेट के लिए जाँच करें", - "Clear": "साफ़ करें", - "Click to try another server...": "दूसरे सर्वर की कोशिश करने के लिए क्लिक करें...", - "Client RPC": "क्लाइंट आरपीसी", - "Close": "बंद करें", - "Close the window": "खिड़की को बंद करें", - "Confirm wallet password": "वॉलेट पासवर्ड की पुष्टि करें", - "Connect to a local node (localhost)": "स्थानीय नोड (localhost) से कनेक्ट करें", - "Connecting to": "कनेक्ट कर रहा है", - "Connection": "कनेक्शन", - "Connections": "कनेक्शन", - "Connects to a Remote Rusty Kaspa Node via wRPC.": "wRPC के माध्यम से दूरस्थ रस्टी कस्पा नोड से कनेक्ट करता है।", - "Conservative": "रूढ़िवादी", - "Continue": "जारी रखें", - "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.": "इस परियोजना के प्रति दिशित योगदान सीधे कस्पा एनजी सॉफ़्टवेयर और इसके पारिस्थितिकी को शक्ति प्रदान करते हैं।", - "Copied to clipboard": "क्लिपबोर्ड पर कॉपी किया गया", - "Copy": "कॉपी", - "Copy logs to clipboard": "लॉग्स को क्लिपबोर्ड पर कॉपी करें", - "Create New Account": "नया खाता बनाएं", - "Create New Wallet": "नया वॉलेट बनाएं", - "Create new wallet": "नया वॉलेट बनाएं", - "Creating Account": "खाता बनाना", - "Creating Wallet": "वॉलेट बनाना", - "Custom": "कस्टम", - "Custom Public Node": "कस्टम सार्वजनिक नोड", - "Custom arguments:": "कस्टम तर्क:", - "Custom data storage folder": "कस्टम डेटा संग्रहण फ़ोल्डर", - "DAA": "डीएए", - "DAA Offset": "डीएए ऑफसेट", - "DAA Range": "डीएए रेंज", - "DB Blocks": "डीबी ब्लॉक्स", - "DB Headers": "डीबी हेडर्स", - "Data Storage": "डेटा स्टोरेज", - "Database Blocks": "डेटाबेस ब्लॉक्स", - "Database Headers": "डेटाबेस हेडर्स", - "Decrypting wallet, please wait...": "वॉलेट को डिक्रिप्ट किया जा रहा है, कृपया प्रतीक्षा करें...", - "Default": "डिफ़ॉल्ट", - "Default Account Name": "डिफ़ॉल्ट खाता नाम", - "Delete Data Folder": "डेटा फ़ोल्डर को हटाएं", - "Dependencies": "आवश्यकताएँ", - "Derivation Indexes": "निर्धारण सूचकांक", - "Details": "विवरण", - "Developer Mode": "डेवलपर मोड", - "Developer Resources": "डेवलपर संसाधन", - "Developer mode enables advanced and experimental features": "डेवलपर मोड उन्नत और प्रयोगात्मक सुविधाओं को सक्षम करता है", - "Difficulty": "कठिनाई", - "Dimensions": "आयाम", - "Disable password score restrictions": "पासवर्ड स्कोर प्रतिबंधों को अक्षम करें", - "Disabled": "अक्षम", - "Disables node connectivity (Offline Mode).": "नोड कनेक्टिविटी को अक्षम करता है (ऑफ़लाइन मोड)।", - "Discord": "डिस्कॉर्ड", - "Donations": "दान", - "Double click on the graph to re-center...": "ग्राफ पर डबल क्लिक करें और पुनः केंद्रित करें...", + "el": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "Δίκτυο δοκιμών 1 BPS", + "10 BPS test network": "Δίκτυο δοκιμών 10 BPS", + "12 word mnemonic": "Μνημονικό 12 λέξεων", + "24 word mnemonic": "Μνημονικό 24 λέξεων", + "24h Change": "24ωρη Αλλαγή", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "Ένα δυαδικό αρχείο σε άλλη τοποθεσία δημιούργησε μια θυγατρική διαδικασία (πειραματική, μόνο για αναπτυξιακούς σκοπούς).", + "A random node will be selected on startup": "Ένας τυχαίος κόμβος θα επιλεγεί κατά την εκκίνηση", + "A wallet is stored in a file on your computer.": "Ένα πορτοφόλι αποθηκεύεται σε ένα αρχείο στον υπολογιστή σας.", + "Account Index": "Account Index", + "Account Name": "Όνομα Λογαριασμού", + "Account not found": "Account not found", + "Account:": "Λογαριασμός:", + "Activate custom daemon arguments": "Ενεργοποιήστε προσαρμοσμένα ορίσματα της διαδικασίας αναμονής εκτέλεσης", + "Active p2p Peers": "Ενεργοποίηση ομότιμων χρηστών του δικτύου p2p", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Σάρωση παραγωγής διεύθυνσης", + "Address:": "Διεύθυνση:", + "Advanced": "Προχωρημένες", + "All": "'Ολα", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Να επιτρέπονται προσαρμοσμένα ορίσματα της διαδικασίας αναμονής εκτέλεσης Rusty Kaspa", + "Allows you to take screenshots from within the application": "Σας επιτρέπει να τραβάτε στιγμιότυπα οθόνης μέσα από την εφαρμογή", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Εφαρμογή", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Υπόλοιπο: Μ/Δ", + "Bandwidth": "Εύρος Ζώνης", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Λόγω της εστίασής του στην ασφάλεια και την απόδοση, αυτό το λογισμικό έχει αναπτυχθεί εξ ολοκλήρου σε Rust, απαιτώντας πολύ περισσότερο χρόνο και προσπάθεια σε σύγκριση με άλλα παραδοσιακά σύγχρονα λογισμικά που βασίζονται στον ιστό.", + "Bezier Curves": "Καμπύλες Bezier", + "Block DAG": "Μπλοκ DAG", + "Block Scale": "Κλίμακα Μπλοκ", + "Blocks": "Μπλοκς", + "Bodies": "Φορείς", + "Borsh Active Connections": "Ενεργές Συνδέσεις Borsh", + "Borsh Connection Attempts": "Προσπάθειες Σύνδεσης Borsh", + "Borsh Handshake Failures": "Αποτυχίες Χειραψίας Borsh", + "Build": "Δομή", + "CONNECTED": "ΣΥΝΔΕΔΕΜΕΝΟΣ", + "CPU": "ΕΠΕΞΕΡΓΑΣΤΗΣ", + "Cache Memory Size": "Μέγεθος Κρυφής Μνήμης", + "Cancel": "Ακύρωση", + "Cannot delete data folder while the node is running": "Δεν είναι δυνατή η διαγραφή του φακέλου δεδομένων ενώ εκτελείται ο κόμβος", + "Capture a screenshot": "Λήψη στιγμιότυπου οθόνης", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Κεντρικό VSPC", + "Chain Blocks": "Μπλοκς Αλυσίδας", + "Change Address": "Αλλαγή Διεύθυνσης", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "'Ελεγχος για Ενημερώσεις Λογισμικού στο GitHub", + "Check for Updates": "Έλεγχος για Ενημερώσεις", + "Clear": "Καθαρισμός", + "Click to try another server...": "Πατήστε για να δοκιμάσετε κάποιον άλλο διακομιστή", + "Client RPC": "RPC Πελάτη", + "Close": "Κλείσιμο", + "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Επιβεβαίωση κωδικού πρόσβασης πορτοφολιού", + "Connecting to": "Γίνεται σύνδεση σε", + "Connection": "Σύνδεση", + "Connections": "Συνδέσεις", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Συνδέεται σε έναν απομακρυσμένο κόμβο Rusty Kaspa μέσω wRPC.", + "Conservative": "Συντηρητικά", + "Continue": "Συνέχεια", + "Copied to clipboard": "Αντιγράφηκε στο πρόχειρο", + "Copy": "Αντιγραφή", + "Copy logs to clipboard": "Αντιγραφή αρχείων καταγραφής στο πρόχειρο", + "Create New Wallet": "Δημιουργία Νέου Πορτοφολιού", + "Create Wallet": "Create Wallet", + "Create new wallet": "Δημιουργία νέου πορτοφολιού", + "Creating Account": "Ο Λογαριασμός Δημιουργείται", + "Creating Wallet": "Το Πορτοφόλι Δημιουργείται", + "Custom": "Προσαρμοσμένο", + "Custom Public Node": "Προσαρμοσμένος Δημόσιος Κόμβος", + "Custom arguments:": "Προσαρμοσμένα ορίσματα:", + "Custom data storage folder": "Custom data storage folder", + "DAA": "Άμεση Ανώνυμη Πιστοποίηση - DAA", + "DAA Offset": "Αντιστάθμιση DAA", + "DAA Range": "Εύρος DAA", + "DB Blocks": "Μπλοκς ΒΔ", + "DB Headers": "Κεφαλίδες ΒΔ", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", + "Database Blocks": "Μπλοκς Βάσης Δεδομένων", + "Database Headers": "Κεφαλίδες Βάσης Δεδομένων", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Αποκρυπτογράφηση πορτοφολιού, παρακαλούμε περιμένετε...", + "Default": "Προκαθορισμένο", + "Default Account Name": "Προεπιλεγμένο Όνομα Λογαριασμού", + "Delete Data Folder": "Διαγραφή Φακέλου Δεδομένων", + "Dependencies": "Εξαρτήσεις", + "Derivation Indexes": "Derivation Indexes", + "Details": "Λεπτομέριες", + "Developer Mode": "Λειτουργία για Προγραμματιστές", + "Developer Resources": "Πόροι Προγραμματιστών", + "Developer mode enables advanced and experimental features": "Η λειτουργία προγραμματιστή επιτρέπει προηγμένες και πειραματικές λειτουργίες", + "Difficulty": "Δυσκολία", + "Dimensions": "Διαστάσεις", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Απενεργοποίηση", + "Disables node connectivity (Offline Mode).": "Απενεργοποιεί τη συνδεσιμότητα κόμβου (Λειτουργία εκτός σύνδεσης).", + "Discord": "Πλατφόρμα Discord", + "Donations": "Δωρεές", + "Double click on the graph to re-center...": "Κάντε διπλό κλικ στο γράφημα για να κεντράρετε ξανά...", "ECDSA": "ECDSA", - "Enable Market Monitor": "मार्केट मॉनिटर सक्षम करें", - "Enable UPnP": "UPnP सक्षम करें", - "Enable custom daemon arguments": "कस्टम डेमन तर्क सक्षम करें", - "Enable experimental features": "प्रयोगात्मक सुविधाओं को सक्षम करें", - "Enable gRPC": "gRPC सक्षम करें", - "Enable optional BIP39 passphrase": "वैकल्पिक BIP39 पासवर्ड सक्षम करें", - "Enable screen capture": "स्क्रीन कैप्चर सक्षम करें", - "Enables features currently in development": "वर्तमान में विकास में उपलब्ध सुविधाओं को सक्षम करता है", - "Enter": "प्रवेश करें", - "Enter account name (optional)": "खाता नाम दर्ज करें (वैकल्पिक)", - "Enter first account name": "पहला खाता नाम दर्ज करें", - "Enter phishing hint": "फिशिंग हिंट दर्ज करें", - "Enter the amount": "राशि दर्ज करें", - "Enter the password for your wallet": "अपने वॉलेट के लिए पासवर्ड दर्ज करें", - "Enter the password to unlock your wallet": "अपने वॉलेट को खोलने के लिए पासवर्ड दर्ज करें", - "Enter wallet name": "वॉलेट का नाम दर्ज करें", - "Enter wallet password": "वॉलेट पासवर्ड दर्ज करें", - "Enter your wallet secret": "अपना वॉलेट रहस्य दर्ज करें", - "Explorer": "एक्सप्लोरर", - "Export Wallet Data": "वॉलेट डेटा निर्यात करें", - "Faucet": "फॉसेट", - "File Handles": "फ़ाइल हैंडल", - "Filename:": "फ़ाइल का नाम:", - "Final Amount:": "अंतिम राशि:", - "GitHub Release": "GitHub रिलीज़", - "Go to Settings": "सेटिंग्स पर जाएं", - "Handles": "हैंडल्स", - "Headers": "हेडर्स", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Ενεργοποίηση του Market Monitor", + "Enable UPnP": "Ενεργοποίηση του UPnP", + "Enable custom daemon arguments": "Ενεργοποίηση προσαρμοσμένων ορισμάτων διαδικασίας αναμονής εκτέλεσης", + "Enable experimental features": "Ενεργοποίηση πειραματικών λειτουργιών", + "Enable gRPC": "Ενεργοποίηση gRPC", + "Enable optional BIP39 passphrase": "Ενεργοποίηση της προαιρετικής φράσης πρόσβασης BIP39", + "Enable screen capture": "Ενεργοποίηση λήψης οθόνης", + "Enables features currently in development": "Ενεργοποιεί λειτουργίες που βρίσκονται σε εξέλιξη", + "Enter": "Εισάγετε", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Εισαγάγετε όνομα λογαριασμού (προαιρετικό)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Εισαγάγετε το όνομα πρώτου λογαριασμού", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Εισαγάγετε την υπόδειξη phishing", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Εισαγάγετε το ποσό", + "Enter the password for your wallet": "Εισαγάγετε τον κωδικό πρόσβασης για το πορτοφόλι σας", + "Enter the password to unlock your wallet": "Εισαγάγετε τον κωδικό πρόσβασης για να ξεκλειδώσετε το πορτοφόλι σας", + "Enter wallet name": "Εισαγάγετε το όνομα του πορτοφολιού", + "Enter wallet password": "Εισαγάγετε τον κωδικό πρόσβασης πορτοφολιού", + "Enter your wallet secret": "Εισαγάγετε το μυστικό του πορτοφολιού σας", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Εξερευνητής", + "Export Wallet Data": "Εξαγωγή Δεδομένων Πορτοφολιού", + "FIRST": "FIRST", + "Faucet": "Πόροι κεφαλαίου", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "Λαβές Αρχείων", + "File contents": "File contents", + "Filename:": "Ονομα Αρχείου:", + "Final Amount:": "Τελικό Ποσό:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "Έκδοση GitHub", + "Go to Settings": "Μεταβείτε στις Ρυθμίσεις", + "Good": "Good", + "Handles": "Λαβές", + "Headers": "Κεφαλίδες", + "High": "High", "IBD:": "IBD:", - "If not specified, the account will be represented by the numeric id.": "यदि निर्दिष्ट नहीं किया गया है, तो खाता संख्यात्मक आईडी द्वारा प्रतिनिधित किया जाएगा।", - "If you are running locally, use: ": "यदि आप स्थानीय रूप से चला रहे हैं, तो उपयोग करें: ", - "Import existing": "मौजूदा आयात करें", - "Inbound": "इनबाउंड", - "Include QoS Priority Fees": "क्यूओएस प्राथमिकता शुल्क शामिल करें", - "Integrated Daemon": "एकीकृत डेमन", - "Invalid daemon arguments": "अमान्य डेमन तर्क", - "Invalid network type - expected: testnet-10 connected to: testnet-11": "अमान्य नेटवर्क प्रकार - अपेक्षित: टेस्टनेट-10 कनेक्टेड टू: टेस्टनेट-11", - "Invalid wRPC URL": "अमान्य wRPC URL", - "Json Active Connections": "Json सक्रिय कनेक्शन", - "Json Connection Attempts": "Json कनेक्शन प्रयास", - "Json Handshake Failures": "Json हैंडशेक विफलताएं", - "Kaspa Discord": "Kaspa Discord", - "Kaspa Integration Guide": "Kaspa एकीकरण गाइड", - "Kaspa NG": "Kaspa NG", - "Kaspa NG Online": "Kaspa NG ऑनलाइन", - "Kaspa NG Web App": "Kaspa NG वेब ऐप", - "Kaspa NG on GitHub": "Kaspa NG GitHub पर", - "Kaspa NG online": "Kaspa NG ऑनलाइन", - "Kaspa Network": "Kaspa नेटवर्क", - "Kaspa Node": "Kaspa नोड", - "Kaspa p2p Network & Node Connection": "Kaspa p2p नेटवर्क और नोड कनेक्शन", - "Kaspa p2p Node": "Kaspa p2p नोड", - "Kaspa p2p Node & Connection": "Kaspa p2p नोड और कनेक्शन", - "Key Perf.": "मुख्य अद्यतन:", - "Language:": "भाषा:", - "Large (1 BPS)": "बड़ा (1 BPS)", - "Levels": "स्तर", - "License Information": "लाइसेंस जानकारी", - "Local": "स्थानीय", - "Local p2p Node Configuration": "स्थानीय p2p नोड कॉन्फ़िगरेशन", - "Logs": "लॉग्स", - "MT": "एमटी", - "Main Kaspa network": "मुख्य कस्पा नेटवर्क", - "Mainnet": "मुख्य नेटवर्क", - "Mainnet (Main Kaspa network)": "मुख्य नेटवर्क (मुख्य कस्पा नेटवर्क)", - "Managed by the Rusty Kaspa daemon": "रस्टी कस्पा डेमन द्वारा प्रबंधित", - "Market": "बाजार", - "Market Cap": "बाजार कैप", - "Market Monitor": "बाजार मॉनिटर", - "Mass Processed": "बड़े पैमाने पर प्रसंस्कृत", - "Medium Narrow": "मध्यम संकीर्ण", - "Medium Wide": "मध्यम चौड़ा", - "Memory": "मेमोरी", - "Mempool": "मेमपूल", - "Mempool Size": "मेमपूल का आकार", - "Metrics": "मैट्रिक्स", - "Metrics are not currently available": "मैट्रिक्स वर्तमान में उपलब्ध नहीं हैं", - "NPM Modules for NodeJS": "NodeJS के लिए एनपीएम मॉड्यूल", - "Network": "नेटवर्क", - "Network Difficulty": "नेटवर्क कठिनाई", - "Network Fees:": "नेटवर्क शुल्क:", - "Network Interface": "नेटवर्क इंटरफेस", - "Network Peers": "नेटवर्क पीयर्स", - "No peers": "कोई पीयर्स नहीं", - "No public node selected - please select a public node": "कोई सार्वजनिक नोड चयनित नहीं - कृपया एक सार्वजनिक नोड का चयन करें", - "No transactions": "कोई लेन-देन नहीं", - "No wallets found, please create a new wallet": "कोई वॉलेट नहीं मिली, कृपया एक नया वॉलेट बनाएं", - "Node": "नोड", - "Node Status": "नोड स्थिति", - "Noise": "शोर", - "None": "कोई नहीं", - "Not Connected": "कनेक्ट नहीं है", - "Not connected": "कनेक्ट नहीं है", - "Notifications": "सूचनाएँ", - "Open Data Folder": "डेटा फ़ोल्डर खोलें", - "Opening wallet:": "वॉलेट खोला जा रहा है:", - "Optional": "ऐच्छिक", - "Other operations": "अन्य कार्य", - "Outbound": "आउटबाउंड", - "Overview": "अवलोकन", - "Parents": "माता-पिता", - "Past Median Time": "गत माध्यम समय", - "Payment & Recovery Password": "भुगतान और पुनर्प्राप्ति पासवर्ड", - "Payment Request": "भुगतान अनुरोध", - "Peers": "पीयर्स", - "Performance": "प्रदर्शन", - "Phishing Hint": "फिशिंग हिंट", - "Ping:": "पिंग:", - "Please Confirm Deletion": "कृपया मिटाने की पुष्टि करें", - "Please configure your Kaspa NG settings": "कृपया अपनी कस्पा एनजी सेटिंग कॉन्फ़िगर करें", - "Please connect to Kaspa p2p node": "कृपया कस्पा p2p नोड से कनेक्ट करें", - "Please create a stronger password": "कृपया एक और मजबूत पासवर्ड बनाएं", - "Please enter": "कृपया दर्ज करें", - "Please enter KAS amount to send": "कृपया भेजने के लिए KAS राशि दर्ज करें", - "Please enter an amount": "कृपया एक राशि दर्ज करें", - "Please enter the account name": "कृपया खाता नाम दर्ज करें", - "Please enter the wallet secret": "कृपया वॉलेट सीक्रेट दर्ज करें", - "Please note that this is a beta release. Until this message is removed, please avoid using the wallet with mainnet funds.": "कृपया ध्यान दें कि यह एक अल्फा रिलीज़ है। जब तक यह संदेश हटाया नहीं जाता है, कृपया मुख्य नेटवर्क फंड के साथ वॉलेट का उपयोग न करें।", - "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "कृपया ध्यान दें, क्लिपबोर्ड पर कॉपी करने से आपकी म्नैमोनिक को मैलवेयर को उजागर करने का खतरा होता है।", - "Please select an account type": "कृपया खाता प्रकार का चयन करें", - "Please select the private key to export": "निर्यात करने के लिए कृपया निजी कुंजी का चयन करें", - "Please set node to 'Disabled' to delete the data folder": "डेटा फ़ोल्डर को हटाने के लिए कृपया नोड को 'अक्षम' पर सेट करें", - "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "कृपया डिफ़ॉल्ट खाते का नाम निर्दिष्ट करें। वॉलेट एक डिफ़ॉल्ट खाते के साथ बनाया जाएगा। एक बार बनाया गया, आप जितने आवश्यक होते हैं, उतने अतिरिक्त खाते बना सकते हैं।", - "Please specify the name of the new wallet": "कृपया नए वॉलेट का नाम निर्दिष्ट करें", - "Please specify the private key type for the new wallet": "कृपया नए वॉलेट के लिए निजी कुंजी का प्रकार निर्दिष्ट करें", - "Please wait for the node to sync or connect to a remote node.": "कृपया नोड को सिंक करने के लिए या रिमोट नोड से कनेक्ट करने के लिए प्रतीक्षा करें।", - "Please wait for the node to sync...": "कृपया नोड को सिंक करने के लिए प्रतीक्षा करें...।", - "Please wait...": "कृपया प्रतीक्षा करें...", - "Presets": "पूर्वनिर्धारित", - "Price": "मूल्य", - "Private Key Mnemonic": "निजी कुंजी स्मृतिचिह्न", - "Processed Bodies": "प्रसंस्कृत शरीर", - "Processed Dependencies": "प्रसंस्कृत आवश्यकताएँ", - "Processed Headers": "प्रसंस्कृत हैडर्स", - "Processed Mass Counts": "प्रसंस्कृत भार गणना", - "Processed Transactions": "प्रसंस्कृत लेन-देन", - "Protocol:": "प्रोटोकॉल:", - "Public Node": "सार्वजनिक नोड", - "Public Nodes": "सार्वजनिक नोड्स", - "Public Server": "सार्वजनिक सर्वर", - "Public p2p Nodes for": "के लिए सार्वजनिक पी 2 पी नोड्स", - "Random Public Node": "यादृच्छिक सार्वजनिक नोड", - "Range:": "सीमा:", - "Receive Address": "प्राप्त पता", - "Recommended arguments for the remote node: ": "दूरस्थ नोड के लिए अनुशंसित तर्क:", - "Redistributables": "पुनःवितरित करने योग्य", - "Remote": "दूरस्थ", - "Remote Connection:": "दूरस्थ कनेक्शन:", - "Remote p2p Node Configuration": "दूरस्थ पी 2 पी नोड कॉन्फ़िगरेशन", - "Removes security restrictions, allows for single-letter passwords": "सुरक्षा प्रतिबंधों को हटाता है, एकल अक्षर के पासवर्ड की अनुमति देता है", - "Reset Settings": "सेटिंग्स रीसेट करें", - "Reset VSPC": "VSPC रीसेट करें", - "Resident Memory": "निवासी स्मृति", - "Resources": "संसाधन", - "Resulting daemon arguments:": "परिणामी डेमोन तर्क:", - "Rust Wallet SDK": "रस्ट वॉलेट एसडीके", - "Rusty Kaspa on GitHub": "गिटहब पर रस्टी कास्पा", - "Secret is too weak": "रहस्य बहुत कमजोर है", - "Secret score:": "रहस्य स्कोर:", - "Select Account": "खाता चुनें", - "Select Available Server": "उपलब्ध सर्वर चुनें", - "Select Private Key Type": "निजी कुंजी प्रकार चुनें", - "Select Public Node": "सार्वजनिक नोड चुनें", - "Select Wallet": "वॉलेट चुनें", - "Select a wallet to unlock": "अनलॉक करने के लिए वॉलेट चुनें", - "Send": "भेजें", - "Services": "सेवाएँ", - "Settings": "सेटिंग्स", - "Show DAA": "डीएए दिखाएं", - "Show Grid": "ग्रिड दिखाएं", - "Show VSPC": "वीएसपीसी दिखाएं", - "Show balances in alternate currencies for testnet coins": "टेस्टनेट सिक्कों के लिए वैकल्पिक मुद्राओं में शेष राशियाँ दिखाएं", - "Show password": "पासवर्ड दिखाएं", - "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "मुख्य नेट पर होने की तरह टेस्टनेट सिक्कों का उपयोग करते समय वैकल्पिक मुद्राओं (बीटीसी, यूएसडी) में शेष राशियाँ दिखाता है", - "Skip": "छोड़ें", - "Small (10 BPS)": "छोटा (10 बीपीएस)", - "Spread": "फैलाव", - "Stage": "मंच", - "Starting...": "प्रारंभ...", - "Statistics": "आंकड़े", - "Stor Read": "स्टोर पढ़ें", - "Stor Write": "स्टोर लिखें", - "Storage": "संग्रहण", - "Storage Read": "संग्रहण पढ़ें", - "Storage Read/s": "संग्रहण पढ़ें/सेकंड", - "Storage Write": "संग्रहण लिखें", - "Storage Write/s": "संग्रहण लिखें/सेकंड", - "Submitted Blocks": "प्रस्तुत ब्लॉक", - "Supporting Kaspa NG development": "कास्पा एनजी विकास का समर्थन करना", - "Syncing Cryptographic Proof...": "क्रिप्टोग्राफिक प्रमाण सिंक किया जा रहा है...", - "Syncing DAG Blocks...": "डैग ब्लॉक सिंक किया जा रहा है...", - "Syncing Headers...": "हेडर सिंक किया जा रहा है...", - "Syncing UTXO entries...": "UTXO एंट्रीज़ सिंक किया जा रहा है...", - "Syncing...": "सिंक हो रहा है...", - "System": "सिस्टम", + "If not specified, the account will be represented by the numeric id.": "Εάν δεν προσδιοριστεί, ο λογαριασμός θα αντιπροσωπεύεται από το αριθμητικό αναγνωριστικό.", + "If you are running locally, use: ": "Εάν τρέχετε τοπικά, χρησιμοποιήστε:", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Εισαγωγή υπάρχουσας", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Εισερχόμενος", + "Integrated Daemon": "Ολοκληρωμένη Διαδικασία Αναμονής Εκτέλεσης", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Μη έγκυρα ορίσματα διαδικασίας αναμονής εκτέλεσης", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Μη έγκυρη διεύθυνση URL wRPC", + "Json Active Connections": "Ενεργές συνδέσεις Json", + "Json Connection Attempts": "Προσπάθειες σύνδεσης Json", + "Json Handshake Failures": "Αποτυχίες χειραψίας Json", + "Kaspa Discord": "Discord του Κάσπα", + "Kaspa Integration Guide": "Οδηγός Ένταξης Κάσπα", + "Kaspa NG": "Κάσπα NG", + "Kaspa NG on GitHub": "Το Κάσπα NG στο GitHub", + "Kaspa NG online": "Κάσπα NG σε σύνδεση", + "Kaspa Network": "Δίκτυο Κάσπα", + "Kaspa Node": "Κόμβος Κάσπα", + "Kaspa p2p Network & Node Connection": "Ομότιμη - p2p Σύνδεση Δικτύου και Κόμβων Kάσπα", + "Kaspa p2p Node": "Ομότιμος p2p Κόμβος Κάσπα", + "Kaspa p2p Node & Connection": "Ομότιμος - p2p Κόμβος και Σύνδεση Kάσπα", + "Key Perf.": "Βασική Απόδοση", + "LAST": "LAST", + "Language:": "Γλώσσα:", + "Large (1 BPS)": "Μεγάλο (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Επίπεδα", + "License Information": "Πληροφορίες άδειας χρήσης", + "Local": "Τοπικό", + "Local p2p Node Configuration": "Τοπική Διαμόρφωση Κόμβου p2p", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Aρχεία Kαταγραφής", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "ΜΤ", + "Main Kaspa network": "Κύριο Δίκτυο Κάσπα", + "Mainnet": "Κύριο Δίκτυο", + "Managed by the Rusty Kaspa daemon": "Διαχείριση από τη διαδικασία αναμονής εκτέλεσης της Rusty Κάσπα", + "Market": "Αγορά", + "Market Cap": "Κεφαλαιοποίηση", + "Market Monitor": "Παρακολούθηση Αγοράς", + "Mass Processed": "Μαζική Επεξεργασία", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Μεσαίο Στενό", + "Medium Wide": "Μεσαίο Πλατύ", + "Memory": "Μνήμη", + "Mempool": "Εκχώρηση Μνήμης", + "Mempool Size": "Μέγεθος Εκχώρηση Μνήμης", + "Metrics": "Μετρήσεις", + "Metrics are not currently available": "Οι μετρήσεις δεν είναι διαθέσιμες αυτήν τη στιγμή", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "Ενότητες NPM για NodeJS", + "Network": "Δίκτυο", + "Network Difficulty": "Δυσκολία Δικτύου", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Διεπαφή Δικτύου", + "Network Peers": "Ομότιμα Δίκτυα", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "Δεν υπάρχουν ομότιμα δίκτυα", + "No public node selected - please select a public node": "Δεν έχει επιλεγεί δημόσιος κόμβος - επιλέξτε έναν δημόσιο κόμβο", + "No transactions": "Δεν υπάρχουν συναλλαγές", + "No wallets found, please create a new wallet": "Δεν βρέθηκαν πορτοφόλια, δημιουργήστε ένα νέο πορτοφόλι", + "Node": "Κόμβος", + "Node Status": "Κατάσταση Κόμβου", + "Noise": "Θόρυβος", + "None": "Κανένα", + "Normal": "Normal", + "Not Connected": "Μη Συνδεδεμένο", + "Not connected": "Μη Συνδεδεμένο", + "Notifications": "Ειδοποιήσεις", + "Open Data Folder": "Άνοιγμα Φακέλου Δεδομένων", + "Opening wallet:": "Γίνεται άνοιγμα πορτοφολιού:", + "Optional": "Προαιρετικό", + "Options": "Options", + "Other operations": "Άλλες λειτουργίες", + "Outbound": "Εξερχόμενα", + "Overview": "Γενική Εικόνα", + "PREV": "PREV", + "Parents": "Γονικοί", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Προηγούμενος Διάμεσος Χρόνος", + "Payment & Recovery Password": "Κωδικός Πρόσβασης Πληρωμής και Ανάκτησης", + "Payment Request": "Αίτημα Πληρωμής", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Ομότιμοι", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Αποδοτικότητα", + "Phishing Hint": "Υπόδειξη Phishing", + "Ping:": "Ψηλαφήτης:", + "Please Confirm Deletion": "Παρακαλούμε Επιβεβαιώστε τη Διαγραφή", + "Please configure your Kaspa NG settings": "Παρακαλούμε Διαμορφώστε τις ρυθμίσεις σας Κάσπα NG", + "Please connect to Kaspa p2p node": "Παρακαλούμε συνδεθείτε στον κόμβο Κάσπα p2p", + "Please create a stronger password": "Παρακαλούμε Δημιουργήστε έναν ισχυρότερο κωδικό πρόσβασης", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Παρακαλούμε εισαγάγετε ένα ποσό", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Παρακαλούμε εισαγάγετε το όνομα του λογαριασμού", + "Please enter the wallet secret": "Παρακαλούμε εισαγάγετε το μυστικό του πορτοφολιού", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Παρακαλούμε λάβετε υπόψη ότι η αντιγραφή στο πρόχειρο ενέχει τον κίνδυνο να εκτεθεί το μνημονικό σας σε κακόβουλο λογισμικό.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Παρακαλούμε επιλέξτε έναν τύπο λογαριασμού", + "Please select export type": "Please select export type", + "Please select the private key to export": "Παρακαλούμε επιλέξτε το ιδιωτικό κλειδί για εξαγωγή", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Παρακαλούμε ορίστε τον κόμβο σε 'Απενεργοποιημένο' για να διαγράψετε τον φάκελο δεδομένων", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Παρακαλούμε καθορίστε το όνομα του προεπιλεγμένου λογαριασμού. Το πορτοφόλι θα δημιουργηθεί με προεπιλεγμένο λογαριασμό. Μόλις δημιουργηθεί, θα μπορείτε να δημιουργήσετε επιπλέον λογαριασμούς όπως χρειάζεστε.", + "Please specify the name of the new wallet": "Παρακαλούμε προσδιορίστε το όνομα του νέου πορτοφολιού", + "Please specify the private key type for the new wallet": "Παρακαλούμεκαθορίστε τον τύπο του ιδιωτικού κλειδιού για το νέο πορτοφόλι", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Παρακαλούμε περιμένετε να συγχρονιστεί ο κόμβος ή να συνδεθεί σε έναν απομακρυσμένο κόμβο.", + "Please wait for the node to sync...": "Παρακαλούμε περιμένετε να συγχρονιστεί ο κόμβος...", + "Please wait...": "Παρακαλούμε περιμένετε...", + "Presets": "Προεπιλογές", + "Price": "Τιμή", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Μνημονικό Ιδιωτικό Κλειδί", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Επεξεργασμένοι Φορείς", + "Processed Dependencies": "Επεξεργασμένες Eξαρτήσεις", + "Processed Headers": "Επεξεργασμένες Κεφαλίδες", + "Processed Mass Counts": "Επεξεργασμένες Μαζικές Μετρήσεις", + "Processed Transactions": "Επεξεργασμένες Συναλλαγές", + "Processing...": "Processing...", + "Protocol:": "Πρωτόκολλο:", + "Public Node": "Δημόσιος Κόμβος", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Τυχαίος Δημόσιος Κόμβος", + "Range:": "Εύρος:", + "Receive Address": "Λήψη Διεύθυνσης", + "Recommended arguments for the remote node: ": "Προτεινόμενα ορίσματα για τον απομακρυσμένο κόμβο:", + "Redistributables": "Redistributables", + "Remote": "Απομακρυσμένος", + "Remote Connection:": "Απομακρυσμένη Σύνδεση:", + "Remote p2p Node Configuration": "Απομακρυσμένη Διαμόρφωση Κόμβου p2p", + "Removes security restrictions, allows for single-letter passwords": "Καταργεί τους περιορισμούς ασφαλείας, επιτρέπει κωδικούς πρόσβασης με ένα γράμμα", + "Reset Settings": "Μηδενισμός Ρυθμίσεων", + "Reset VSPC": "Μηδενισμός VSPC", + "Resident Memory": "Μόνιμη Mνήμη", + "Resources": "Πόροι", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Προκύπτοντα ορίσματα διαδικασίας αναμονής εκτέλεσης", + "Rust Wallet SDK": "Πορτοφόλι Rust SDK", + "Rusty Kaspa on GitHub": "Η Rusty Κάσπα στο GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Το Μυστικό είναι πολύ αδύναμο", + "Secret score:": "Βαθμολόγηση Μυστικού:", + "Select Account": "Επιλέξτε Λογαριασμό", + "Select Private Key Type": "Επιλέξτε Τύπο Ιδιωτικού Κλειδιού", + "Select Public Node": "Επιλέξτε Δημόσιο Κόμβο", + "Select Wallet": "Επιλέξτε Πορτοφόλι", + "Select a wallet to unlock": "Επιλέξτε ένα πορτοφόλι για ξεκλείδωμα", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Αποστολή", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Υπηρεσίες", + "Settings": "Ρυθμίσεις", + "Show DAA": "Εμφάνιση DAA", + "Show Grid": "Εμφάνιση Πλέγματος", + "Show VSPC": "Εμφάνιση VSPC", + "Show balances in alternate currencies for testnet coins": "Εμφάνιση υπολοίπων σε εναλλακτικά νομίσματα για νομίσματα δοκιμαστικού δικτύου", + "Show passphrase": "Show passphrase", + "Show password": "Εμφάνιση κωδικού πρόσβασης", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Εμφανίζει τα υπόλοιπα σε εναλλακτικά νομίσματα (BTC, USD) όταν χρησιμοποιούνται νομίσματα δοκιμαστικού δικτύου σαν να βρίσκεστε στο κεντρικό δίκτυο", + "Skip": "Παράληψη", + "Small (10 BPS)": "Μικρό (10 BPS)", + "Spread": "Εξάπλωση", + "Stage": "Στάδιο", + "Starting...": "Εκκίνηση...", + "Statistics": "Στατιστικά", + "Stop": "Stop", + "Stor Read": "Ανάγνωση Αποθ", + "Stor Write": "Εγγραφή Αποθ", + "Storage": "Αποθήκευση", + "Storage Read": "Ανάγνωση Αποθήκευσης", + "Storage Read/s": "Ανάγνωση Αποθήκευσης/δ", + "Storage Size": "Storage Size", + "Storage Write": "Εγγραφή Αποθήκευσης", + "Storage Write/s": "Εγγραφή Αποθήκευσης/δ", + "Strong": "Strong", + "Submitted Blocks": "Υποβληθέντα Μπλοκ", + "Syncing Cryptographic Proof...": "Συγχρονισμός Κρυπτογραφικής Απόδειξης...", + "Syncing DAG Blocks...": "Συγχρονισμός DAG Μπλοκ...", + "Syncing Headers...": "Συγχρονισμός Κεφαλίδων...", + "Syncing UTXO entries...": "Συγχρονισμός καταχωρήσεων UTXO...", + "Syncing...": "Συγχρονισμός...", + "System": "Σύστημα", "TPS": "TPS", - "Testnet 10": "टेस्टनेट 10", - "Testnet 10 (1 BPS)": "टेस्टनेट 10 (1 BPS)", - "Testnet 11": "टेस्टनेट 11", - "Testnet 11 (10 BPS)": "टेस्टनेट 11 (10 BPS)", - "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.": "टेस्टनेट 11 अभी तक सार्वजनिक परीक्षण के लिए सक्षम नहीं है। हालांकि, आप नोड को सेटिंग्स पैनल में निजी डेवलपर टेस्टनेट से कनेक्ट करने के लिए कॉन्फ़िगर कर सकते हैं।", - "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "कास्पा एनजी सॉफ़्टवेयर केस्पा ब्लॉकडैग क्रिप्टोकरेंसी नेटवर्क के लिए एक उत्कृष्ट सॉफ़्टवेयर प्लेटफ़ॉर्म बनाने पर ध्यान केंद्रित किए गए एक लगातार प्रयास को प्रतिनिधित करता है। इसके मूल में आदर्शवादी, यह सॉफ़्टवेयर सुरक्षा, गोपनीयता, प्रदर्शन, और डीसेंट्रलाइज़ेशन पर प्राथमिकता देता है।", - "The balance may be out of date during node sync": "नोड सिंक के दौरान शेष अपडेट हो सकता है", - "The following will guide you through the process of creating or importing a wallet.": "निम्नलिखित आपको एक वॉलेट बनाने या आयात करने की प्रक्रिया के माध्यम से गाइड करेगा।", - "The node is currently syncing with the Kaspa p2p network.": "नोड वर्तमान में कास्पा पी 2 पी नेटवर्क के साथ सिंक हो रहा है।", - "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "नोड वर्तमान में कास्पा पी 2 पी नेटवर्क के साथ सिंक हो रहा है। खाता शेष हो सकता है।", - "The node is spawned as a child daemon process (recommended).": "नोड एक बच्चा डेमन प्रक्रिया के रूप में उत्पन्न किया जाता है (सिफ़ारिश किया गया है)।", - "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "नोड कास्पा-एनजी एप्लिकेशन प्रक्रिया का हिस्सा के रूप में चलता है। यह संचार ओवरहेड को कम करता है (प्रायोगिक)।", - "Theme Color": "थीम रंग", - "Theme Color:": "थीम रंग:", - "Theme Style": "थीम शैली", - "Theme Style:": "थीम शैली:", - "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "यह वॉलेट आपसे इस म्नेमोनिक वाक्यिका के लिए कभी पूछने के लिए नहीं होगा जब तक आप स्वयं निजी कुंजी विलोपन आरंभ नहीं करते।", - "Threshold": "सीमा", - "Time Offset:": "समय ऑफ़सेट:", - "Tip Hashes": "टिप हैशेस", - "Tools ⏷": "उपकरण ⏷", - "Total Rx": "कुल Rx", - "Total Rx/s": "कुल Rx/s", - "Total Tx": "कुल Tx", - "Total Tx/s": "कुल Tx/s", - "Track in the background": "पृष्ठभूमि में ट्रैक करें", - "Transactions": "लेन-देन", - "Transactions:": "लेन-देन:", - "Type": "प्रकार", - "UTXO Manager": "UTXO प्रबंधक", + "Testnet 10": "Δίκτυο Δοκιμών 10", + "Testnet 11": "Δίκτυο Δοκιμών 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Το λογισμικό Κάσπα NG αντιπροσωπεύει μια συνεχή προσπάθεια που επικεντρώνεται στην κατασκευή μιας πλατφόρμας λογισμικού αιχμής αφιερωμένης στο δίκτυο κρυπτονομισμάτων Κάσπα BlockDAG. Ιδεολογικά στον πυρήνα του, αυτό το λογισμικό δίνει προτεραιότητα στην ασφάλεια, το απόρρητο, την απόδοση και την αποκέντρωση.", + "The balance may be out of date during node sync": "Το υπόλοιπο ενδέχεται να μην είναι ενημερωμένο κατά τον συγχρονισμό κόμβου", + "The following will guide you through the process of creating or importing a wallet.": "Τα παρακάτω θα σας καθοδηγήσουν στη διαδικασία δημιουργίας ή εισαγωγής ενός πορτοφολιού.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "Ο κόμβος συγχρονίζεται αυτήν τη στιγμή με το δίκτυο Κάσπα p2p.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "Ο κόμβος συγχρονίζεται αυτήν τη στιγμή με το δίκτυο Κάσπα p2p. Τα υπόλοιπα των λογαριασμών ενδέχεται να μην είναι ενημερωμένα.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "Ο κόμβος δημιουργείται ως θυγατρική διαδικασία αναμονής εκτέλεσης (συνιστάται).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "Ο κόμβος εκτελείται ως μέρος της διαδικασίας εφαρμογής Kaspa-NG. Αυτό μειώνει τα έξοδα επικοινωνίας (πειραματικά).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Χρώμα Θέματος", + "Theme Color:": "Χρώμα Θέματος:", + "Theme Style": "Στυλ Θέματος", + "Theme Style:": "Στυλ Θέματος:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Αυτό το πορτοφόλι δεν θα σας ζητήσει ποτέ αυτή τη μνημονική φράση, εκτός εάν ξεκινήσετε με μη αυτόματο τρόπο μια ανάκτηση ιδιωτικού κλειδιού.", + "Threshold": "Οριακές Τιμές", + "Time Offset:": "Χρονική Μετατόπιση:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Υπόδειξη Κατακερματισμού", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Σύνολο Rx", + "Total Rx/s": "Total Rx/δ", + "Total Tx": "Σύνολο Tx", + "Total Tx/s": "Σύνολο Tx/δ", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Παρακολούθηση στο παρασκήνιο", + "Transactions": "Συναλλαγές", + "Transactions:": "Συναλλαγές:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Τύπος", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "Διαχειριστής UTXO", "UTXOs": "UTXOs", "UTXOs:": "UTXOs:", - "Unable to change node settings until the problem is resolved": "समस्या हल न होने तक नोड सेटिंग्स बदलने में असमर्थ", - "Unlock": "अनलॉक", - "Unlock Wallet": "वॉलेट अनलॉक करें", - "Unlocking": "अनलॉक की जा रही है", - "Update Available to version": "संस्करण के लिए अपडेट उपलब्ध है", - "Updating...": "अपडेट हो रहा है...", - "Uptime:": "अपटाइम:", - "Use 50%-75% of available system memory": "उपलब्ध सिस्टम मेमोरी का 50%-75% उपयोग करें", - "Use all available system memory": "उपलब्ध सिस्टम मेमोरी का पूरा उपयोग करें", - "User Agent": "उपयोगकर्ता एजेंट", - "User Interface": "उपयोगकर्ता इंटरफ़ेस", - "Very dangerous (may be cracked within few seconds)": "बहुत खतरनाक (कुछ ही सेकंड में क्रैक हो सकता है)", - "Virt Parents": "वर्चुअल माता-पिता", - "Virtual DAA Score": "वर्चुअल DAA स्कोर", - "Virtual Memory": "वर्चुअल मेमोरी", - "Virtual Parent Hashes": "वर्चुअल माता-पिता हैश", - "Volume": "आवाज़", - "WASM SDK for JavaScript and TypeScript": "जावास्क्रिप्ट और टाइपस्क्रिप्ट के लिए WASM SDK", - "Wallet": "वॉलेट", - "Wallet Created": "वॉलेट बनाई गई", - "Wallet Encryption Password": "वॉलेट एन्क्रिप्शन पासवर्ड", - "Wallet Name": "वॉलेट का नाम", - "Wallet Secret": "वॉलेट का रहस्य", - "Wallet password is used to encrypt your wallet data.": "वॉलेट पासवर्ड का उपयोग आपकी वॉलेट डेटा को एन्क्रिप्ट करने के लिए किया जाता है।", - "Wallet:": "वॉलेट:", - "We greatly appreciate your help in backing our efforts.": "हम आपके प्रयासों का समर्थन करने के लिए आपकी मदद की बहुत प्रासंगिक है।", - "Welcome to Kaspa NG": "कैस्पा एनजी में आपका स्वागत है", - "Xpub Keys": "Xpub कुंजियाँ", - "You are currently not connected to the Kaspa node.": "वर्तमान में आप कैस्पा नोड से कनेक्ट नहीं हैं।", - "You can configure remote connection in Settings": "आप सेटिंग्स में रिमोट कनेक्शन कॉन्फ़िगर कर सकते हैं", - "You can create multiple wallets, but only one wallet can be open at a time.": "आप कई वॉलेट बना सकते हैं, लेकिन एक समय में केवल एक वॉलेट खुली हो सकती है।", - "You must be connected to a node...": "आपको नोड से कनेक्ट किया जाना चाहिए...", - "Your default wallet private key mnemonic is:": "आपकी डिफ़ॉल्ट वॉलेट प्राइवेट की म्नेमोनिक कुंजी है:", - "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "आपका म्नेमोनिक वाक्य आपको अपनी निजी कुंजी को पुनः बनाने की अनुमति देता है। जिस व्यक्ति के पास इस म्नेमोनिक की पहुंच होगी, उसके पास में रखी कैस्पा का पूरा नियंत्रण होगा। अपने म्नेमोनिक को सुरक्षित रखें। इसे लिख लें और एक सुरक्षित स्थान पर संग्रहित करें, बेहतर हो तो एक आग प्रतिरोधी स्थान में। अपना म्नेमोनिक इस कंप्यूटर या मोबाइल डिवाइस पर संग्रहित न करें। यह वॉलेट कभी भी आपसे इस म्नेमोनिक वाक्य के लिए पूछेगा नहीं जब तक आप स्वयं निजी कुंजी की पुनर्प्राप्ति का प्रारंभ नहीं करते हैं।", - "Your private key mnemonic is:": "आपकी निजी कुंजी म्नेमोनिक है:", - "Your wallet has been created and is ready to use.": "आपकी वॉलेट बना दी गई है और उपयोग के लिए तैयार है।", - "Zoom": "ज़ूम", - "amount to send": "भेजने की राशि", - "bye!": "अलविदा!", - "gRPC Network Interface & Port": "gRPC नेटवर्क इंटरफेस और पोर्ट", - "gRPC Rx": "gRPC आरएक्स", - "gRPC Rx/s": "gRPC आरएक्स/सेकंड", - "gRPC Tx": "gRPC टीएक्स", - "gRPC Tx/s": "gRPC टीएक्स/सेकंड", - "of": "का", - "p2p RPC": "पी 2 पी आरपीसी", - "p2p Rx": "पी 2 पी आरएक्स", - "p2p Rx/s": "पी 2 पी आरएक्स/सेकंड", - "p2p Tx": "पी 2 पी टीएक्स", - "p2p Tx/s": "पी 2 पी टीएक्स/सेकंड", - "peer": "सहकर्मी", - "peers": "सहकर्मी", - "wRPC Borsh Rx": "wRPC बोर्श आरएक्स", - "wRPC Borsh Rx/s": "wRPC बोर्श आरएक्स/सेकंड", - "wRPC Borsh Tx": "wRPC बोर्श टीएक्स", - "wRPC Borsh Tx/s": "wRPC बोर्श टीएक्स/सेकंड", - "wRPC Connection Settings": "wRPC कनेक्शन सेटिंग्स", - "wRPC Encoding:": "wRPC इंकोडिंग:", - "wRPC JSON Rx": "wRPC जेसन आरएक्स", - "wRPC JSON Rx/s": "wRPC जेसन आरएक्स/सेकंड", - "wRPC JSON Tx": "wRPC जेसन टीएक्स", - "wRPC JSON Tx/s": "wRPC जेसन टीएक्स/सेकंड", - "wRPC URL:": "wRPC यूआरएल:" + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Δεν είναι δυνατή η αλλαγή των ρυθμίσεων κόμβου μέχρι να επιλυθεί το πρόβλημα", + "Unable to store settings": "Unable to store settings", + "Unlock": "Ξεκλείδωμα", + "Unlock Wallet": "Ξεκλείδωμα Πορτοφολιού", + "Unlocking": "Γίνεται Ξεκλείδωμα", + "Update Available to version": "Διαθέσιμη Ενημέρωση στην έκδοση", + "Updating...": "Γίνεται Ενημέρωση...", + "Uptime:": "Χρόνος Λειτουργίας:", + "Use 50%-75% of available system memory": "Χρησιμοποιήστε 50%-75% από τη διαθέσιμη μνήμη συστήματος", + "Use all available system memory": "Χρησιμοποιήστε όλη τη διαθέσιμη μνήμη συστήματος", + "User Agent": "Πρόγραμμα Πελάτη", + "User Interface": "Διεπαφή Χρήστη", + "Very dangerous (may be cracked within few seconds)": "Πολύ επικίνδυνο (μπορεί να σπάσει μέσα σε λίγα δευτερόλεπτα)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Εικονικοί Γονείς", + "Virtual DAA Score": "Εικονική Βαθμολογία DAA", + "Virtual Memory": "Εικονική Μνήμη", + "Virtual Parent Hashes": "Εικονικοί Μητρικοί Κατακερματισμοί", + "Volume": "Ένταση", + "WASM SDK for JavaScript and TypeScript": "WASM SDK για γλώσσες JavaScript και TypeScript", + "Wallet": "Πορτοφόλι", + "Wallet Created": "Το Πορτοφόλι Δημιουργήθηκε", + "Wallet Encryption Password": "Κωδικός Κρυπτογράφησης Πορτοφολιού", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Όνομα Πορτοφολιού", + "Wallet Secret": "Μυστικό Πορτοφολιού", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Ο κωδικός πρόσβασης του πορτοφολιού χρησιμοποιείται για την κρυπτογράφηση των δεδομένων του πορτοφολιού σας.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Πορτοφόλι:", + "We greatly appreciate your help in backing our efforts.": "Εκτιμούμε πολύ τη βοήθειά σας στην υποστήριξη των προσπαθειών μας.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Καλώς ήρθατε στο Κάσπα NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "Αυτήν τη στιγμή δεν είστε συνδεδεμένοι στον κόμβο Κάσπα.", + "You can configure remote connection in Settings": "Μπορείτε να διαμορφώσετε την απομακρυσμένη σύνδεση στις Ρυθμίσεις", + "You can create multiple wallets, but only one wallet can be open at a time.": "Μπορείτε να δημιουργήσετε πολλά πορτοφόλια, αλλά μόνο ένα πορτοφόλι μπορεί να είναι ανοιχτό κάθε φορά.", + "You must be connected to a node...": "Πρέπει να είστε συνδεδεμένοι σε έναν κόμβο...", + "Your default wallet private key mnemonic is:": "Το προεπιλεγμένο μνημονικό του ιδιωτικού κλειδιού πορτοφολιού είναι:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Η μνημονική φράση σας επιτρέπει να δημιουργήσετε ξανά το ιδιωτικό σας κλειδί. Το άτομο που έχει πρόσβαση σε αυτό το μνημονικό θα έχει τον πλήρη έλεγχο των Κάσπα που είναι αποθηκευμένα σε αυτό. Διατηρήστε το μνημονικό σας ασφαλές. Σημειώστε το και αποθηκεύστε το σε ένα χρηματοκιβώτιο, κατά προτίμηση σε ένα πυρίμαχο μέρος. Μην αποθηκεύετε το μνημονικό σας σε αυτόν τον υπολογιστή ή σε κινητή συσκευή. Αυτό το πορτοφόλι δεν θα σας ζητήσει ποτέ αυτή τη μνημονική φράση, εκτός εάν ξεκινήσετε με μη αυτόματο τρόπο μια ανάκτηση ιδιωτικού κλειδιού.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Το μνημονικό του ιδιωτικού κλειδιού σας είναι:", + "Your wallet has been created and is ready to use.": "Το πορτοφόλι σας έχει δημιουργηθεί και είναι έτοιμο για χρήση.", + "Zoom": "Μεγέθυνση", + "bye!": "γεια!", + "gRPC Network Interface & Port": "Διεπαφή και Θύρα Δικτύου gRPC", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/δ", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/δ", + "of": "από", + "p2p RPC": "ομότιμα - p2p RPC", + "p2p Rx": "ομότιμα - p2p Rx", + "p2p Rx/s": "ομότιμα - p2p Rx/δ", + "p2p Tx": "ομότιμα - p2p Tx", + "p2p Tx/s": "ομότιμα - p2p Tx/δ", + "peer": "ομότιμο", + "peers": "ομότιμα", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/δ", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/δ", + "wRPC Connection Settings": "Ρυθμίσεις Σύνδεσης wRPC", + "wRPC Encoding:": "Κωδικοποίηση wRPC:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/δ", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/δ", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" }, - "hr": {}, - "hu": {}, - "id": { - "1 BPS test network": "1 jaringan uji BPS", - "10 BPS test network": "10 jaringan uji BPS", - "12 word mnemonic": "mnemonik 12 kata", - "24 word mnemonic": "mnemonik 24 kata", - "24h Change": "Perubahan 24 jam", - "A binary at another location is spawned a child process (experimental, for development purposes only).": "Biner di lokasi lain menghasilkan proses anak (eksperimental, untuk tujuan pengembangan saja).", - "A random node will be selected on startup": "Node acak akan dipilih saat startup", - "A wallet is stored in a file on your computer.": "Dompet disimpan dalam file di komputer Anda.", - "Account Index": "Indeks Akun", - "Account Name": "Nama akun", - "Account:": "Akun:", - "Activate custom daemon arguments": "Aktifkan argumen daemon khusus", - "Active p2p Peers": "Rekan p2p aktif", - "Address derivation scan": "Pemindaian derivasi alamat", - "Address:": "Alamat:", - "Advanced": "Lanjutan", - "All": "Semua", - "Allow custom arguments for the Rusty Kaspa daemon": "Izinkan argumen khusus untuk daemon Rusty Kaspa", - "Allows you to take screenshots from within the application": "Memungkinkan Anda mengambil tangkapan layar dari dalam aplikasi", - "Apply": "Menerapkan", - "Balance: N/A": "Saldo: N/A", + "en": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS test network", + "10 BPS test network": "10 BPS test network", + "12 word mnemonic": "12 word mnemonic", + "24 word mnemonic": "24 word mnemonic", + "24h Change": "24h Change", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "A binary at another location is spawned a child process (experimental, for development purposes only).", + "A random node will be selected on startup": "A random node will be selected on startup", + "A wallet is stored in a file on your computer.": "A wallet is stored in a file on your computer.", + "Account Index": "Account Index", + "Account Name": "Account Name", + "Account not found": "Account not found", + "Account:": "Account:", + "Activate custom daemon arguments": "Activate custom daemon arguments", + "Active p2p Peers": "Active p2p Peers", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Address derivation scan", + "Address:": "Address:", + "Advanced": "Advanced", + "All": "All", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Allow custom arguments for the Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Allows you to take screenshots from within the application", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Apply", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Balance: N/A", "Bandwidth": "Bandwidth", - "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Karena fokusnya pada keamanan dan kinerja, perangkat lunak ini sepenuhnya dikembangkan di Rust, sehingga memerlukan lebih banyak waktu dan tenaga dibandingkan dengan perangkat lunak tradisional berbasis web modern lainnya.", - "Bezier Curves": "Kurva Bezier", - "Block DAG": "Blok DAG", - "Block Scale": "Skala Blok", - "Blocks": "Blok", - "Bodies": "Badan", - "Borsh Active Connections": "Koneksi Aktif Borsh", - "Borsh Connection Attempts": "Upaya Koneksi Borsh", - "Borsh Handshake Failures": "Kegagalan Borsh Handshake", - "Build": "Bangun", - "CONNECTED": "TERHUBUNG", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.", + "Bezier Curves": "Bezier Curves", + "Block DAG": "Block DAG", + "Block Scale": "Block Scale", + "Blocks": "Blocks", + "Bodies": "Bodies", + "Borsh Active Connections": "Borsh Active Connections", + "Borsh Connection Attempts": "Borsh Connection Attempts", + "Borsh Handshake Failures": "Borsh Handshake Failures", + "Build": "Build", + "CONNECTED": "CONNECTED", "CPU": "CPU", - "Cache Memory Size": "Ukuran Memori Cache", - "Cache Memory Size:": "Ukuran Memori Cache:", - "Cancel": "Batal", - "Cannot delete data folder while the node is running": "Tidak dapat menghapus folder data saat node sedang berjalan", - "Capture a screenshot": "Ambil tangkapan layar", - "Center VSPC": "Pusat VSPC", - "Chain Blocks": "Blok Rantai", - "Change Address": "Ubah Alamat", - "Check for Software Updates on GitHub": "Periksa Pembaruan Perangkat Lunak di GitHub", - "Check for Updates": "Periksa Pembaruan", - "Clear": "Kosongkan", - "Click to try another server...": "Klik untuk mencoba server lain...", - "Client RPC": " Klien RPC", - "Close": "Tutup", - "Confirm wallet password": "Konfirmasikan kata sandi dompet", - "Connect to a local node (localhost)": "Hubungkan ke node lokal (localhost)", - "Connecting to": "Hubungkan ke", - "Connection": "Koneksi", - "Connections": "Koneksi", - "Connects to a Remote Rusty Kaspa Node via wRPC.": "Terhubung ke Node Kaspa Rusty Jarak Jauh melalui wRPC.", - "Conservative": "Konservatif", - "Continue": "Lanjutkan", - "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.": "Kontribusi yang diarahkan pada proyek ini secara langsung mendorong perangkat lunak Kaspa NG dan ekosistemnya.", - "Copied to clipboard": "Disalin ke papan klip", - "Copy": "Salin", - "Copy logs to clipboard": "Salin log ke papan klip", - "Create New Account": "Buat akun baru", - "Create New Wallet": "Buat Dompet Baru", - "Create new wallet": "Buat dompet baru", - "Creating Account": "Membuat akun", - "Creating Wallet": "Membuat Dompet", - "Custom": "Kustom", - "Custom Public Node": "Node Publik Khusus", - "Custom arguments:": "Argumen khusus:", + "Cache Memory Size": "Cache Memory Size", + "Cancel": "Cancel", + "Cannot delete data folder while the node is running": "Cannot delete data folder while the node is running", + "Capture a screenshot": "Capture a screenshot", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Center VSPC", + "Chain Blocks": "Chain Blocks", + "Change Address": "Change Address", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Check for Software Updates on GitHub", + "Check for Updates": "Check for Updates", + "Clear": "Clear", + "Click to try another server...": "Click to try another server...", + "Client RPC": "Client RPC", + "Close": "Close", + "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Confirm wallet password", + "Connecting to": "Connecting to", + "Connection": "Connection", + "Connections": "Connections", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connects to a Remote Rusty Kaspa Node via wRPC.", + "Conservative": "Conservative", + "Continue": "Continue", + "Copied to clipboard": "Copied to clipboard", + "Copy": "Copy", + "Copy logs to clipboard": "Copy logs to clipboard", + "Create New Wallet": "Create New Wallet", + "Create Wallet": "Create Wallet", + "Create new wallet": "Create new wallet", + "Creating Account": "Creating Account", + "Creating Wallet": "Creating Wallet", + "Custom": "Custom", + "Custom Public Node": "Custom Public Node", + "Custom arguments:": "Custom arguments:", + "Custom data storage folder": "Custom data storage folder", "DAA": "DAA", - "DAA Offset": "Pengimbangan DAA", - "DAA Range": "Rentang DAA", - "DB Blocks": "Blok DB", - "DB Headers": "Header DB", - "Database Blocks": "Blok Basis Data", - "Database Headers": "Header Basis Data", - "Decrypting wallet, please wait...": "Mendekripsi dompet, harap tunggu...", - "Default": "Bawaan", - "Default Account Name": "Nama Akun Bawaan", - "Delete Data Folder": "Hapus Folder Data", - "Dependencies": "Ketergantungan", - "Derivation Indexes": "Indeks Derivasi", - "Details": "Detail", - "Developer Mode": "Mode pengembang", - "Developer Resources": "Sumber Daya Pengembang", - "Developer mode enables advanced and experimental features": "Mode pengembang mengaktifkan fitur lanjutan dan eksperimental", - "Difficulty": "Kesulitan", - "Dimensions": "Ukuran", - "Disable password score restrictions": "Nonaktifkan pembatasan skor kata sandi", - "Disabled": "Dengan disabilitas", - "Disables node connectivity (Offline Mode).": "Menonaktifkan konektivitas node (Mode Offline).", + "DAA Offset": "DAA Offset", + "DAA Range": "DAA Range", + "DB Blocks": "DB Blocks", + "DB Headers": "DB Headers", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", + "Database Blocks": "Database Blocks", + "Database Headers": "Database Headers", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Decrypting wallet, please wait...", + "Default": "Default", + "Default Account Name": "Default Account Name", + "Delete Data Folder": "Delete Data Folder", + "Dependencies": "Dependencies", + "Derivation Indexes": "Derivation Indexes", + "Details": "Details", + "Developer Mode": "Developer Mode", + "Developer Resources": "Developer Resources", + "Developer mode enables advanced and experimental features": "Developer mode enables advanced and experimental features", + "Difficulty": "Difficulty", + "Dimensions": "Dimensions", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Disabled", + "Disables node connectivity (Offline Mode).": "Disables node connectivity (Offline Mode).", "Discord": "Discord", - "Donations": "Sumbangan", - "Double click on the graph to re-center...": "Klik dua kali pada grafik untuk memusatkan kembali...", + "Donations": "Donations", + "Double click on the graph to re-center...": "Double click on the graph to re-center...", "ECDSA": "ECDSA", - "Enable Market Monitor": "Aktifkan Monitor Pasar", - "Enable UPnP": "Aktifkan UPnP", - "Enable custom daemon arguments": "Aktifkan argumen daemon khusus", - "Enable experimental features": "Aktifkan fitur eksperimental", - "Enable gRPC": "Aktifkan gRPC", - "Enable optional BIP39 passphrase": "Aktifkan frasa sandi BIP39 opsional", - "Enable screen capture": "Aktifkan tangkapan layar", - "Enables features currently in development": "Mengaktifkan fitur yang sedang dalam pengembangan", - "Enter": "Memasuki", - "Enter account name (optional)": "Masukkan nama akun (opsional)", - "Enter first account name": "Masukkan nama akun pertama", - "Enter phishing hint": "Masukkan petunjuk phishing", - "Enter the amount": "Masukkan jumlahnya", - "Enter the password for your wallet": "Masukkan kata sandi untuk dompet Anda", - "Enter the password to unlock your wallet": "Masukkan kata sandi untuk membuka kunci dompet Anda", - "Enter wallet name": "Masukkan nama dompet", - "Enter wallet password": "Masukkan kata sandi dompet", - "Enter your wallet secret": "Masukkan kata rahasia dompet Anda", - "Explorer": "Penjelajah", - "Export Wallet Data": "Ekspor Data Dompet", - "Faucet": "Keran", - "File Handles": "Tangani File", - "Filename:": "Nama file:", - "Final Amount:": "Jumlah akhir:", - "GitHub Release": "Rilis GitHub", - "Go to Settings": "Pergi ke pengaturan", - "Handles": "Menangani", - "Headers": "Header", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Enable Market Monitor", + "Enable UPnP": "Enable UPnP", + "Enable custom daemon arguments": "Enable custom daemon arguments", + "Enable experimental features": "Enable experimental features", + "Enable gRPC": "Enable gRPC", + "Enable optional BIP39 passphrase": "Enable optional BIP39 passphrase", + "Enable screen capture": "Enable screen capture", + "Enables features currently in development": "Enables features currently in development", + "Enter": "Enter", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Enter account name (optional)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Enter first account name", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Enter phishing hint", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Enter the amount", + "Enter the password for your wallet": "Enter the password for your wallet", + "Enter the password to unlock your wallet": "Enter the password to unlock your wallet", + "Enter wallet name": "Enter wallet name", + "Enter wallet password": "Enter wallet password", + "Enter your wallet secret": "Enter your wallet secret", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Explorer", + "Export Wallet Data": "Export Wallet Data", + "FIRST": "FIRST", + "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "File Handles", + "File contents": "File contents", + "Filename:": "Filename:", + "Final Amount:": "Final Amount:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub Release", + "Go to Settings": "Go to Settings", + "Good": "Good", + "Handles": "Handles", + "Headers": "Headers", + "High": "High", "IBD:": "IBD:", - "If not specified, the account will be represented by the numeric id.": "Jika tidak ditentukan, akun akan diwakili oleh id numerik.", - "If you are running locally, use: ": "Jika Anda menjalankan secara lokal, gunakan: ", - "Import existing": "Impor yang sudah ada", - "Inbound": "Masuk", - "Include QoS Priority Fees": "Sertakan Biaya Prioritas QoS", - "Integrated Daemon": "Daemon Terintegrasi", - "Invalid daemon arguments": "Argumen daemon tidak valid", - "Invalid network type - expected: testnet-10 connected to: testnet-11": "Jenis jaringan tidak valid - diharapkan: testnet-10 terhubung ke: testnet-11", - "Invalid wRPC URL": "URL wRPC tidak valid", - "Json Active Connections": "Koneksi Aktif Json", - "Json Connection Attempts": "Upaya Koneksi Json", - "Json Handshake Failures": "Kegagalan Jabat Tangan Json", - "Kaspa Discord": "Discord Kaspa", - "Kaspa Integration Guide": "Panduan Integrasi Kaspa", + "If not specified, the account will be represented by the numeric id.": "If not specified, the account will be represented by the numeric id.", + "If you are running locally, use: ": "If you are running locally, use: ", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Import existing", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Inbound", + "Integrated Daemon": "Integrated Daemon", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Invalid daemon arguments", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Invalid wRPC URL", + "Json Active Connections": "Json Active Connections", + "Json Connection Attempts": "Json Connection Attempts", + "Json Handshake Failures": "Json Handshake Failures", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Kaspa Integration Guide", "Kaspa NG": "Kaspa NG", - "Kaspa NG Online": "Kaspa NG Online", - "Kaspa NG Web App": "Aplikasi Web Kaspa NG", - "Kaspa NG on GitHub": "Kaspa NG di GitHub", + "Kaspa NG on GitHub": "Kaspa NG on GitHub", "Kaspa NG online": "Kaspa NG online", - "Kaspa Network": "Jaringan Kaspa", - "Kaspa Node": "Node Kaspa", - "Kaspa p2p Network & Node Connection": "Jaringan Kaspa p2p", + "Kaspa Network": "Kaspa Network", + "Kaspa Node": "Kaspa Node", + "Kaspa p2p Network & Node Connection": "Kaspa p2p Network & Node Connection", "Kaspa p2p Node": "Kaspa p2p Node", - "Kaspa p2p Node & Connection": "Kaspa p2p Node", - "Key Perf.": "Kunci Perf.", - "Language:": "Bahasa:", - "Large (1 BPS)": "Besar (1 BPS)", - "Levels": "Tingkat", - "License Information": "Informasi Lisensi", - "Local": "Lokal", - "Local p2p Node Configuration": "Konfigurasi Node p2p lokal", - "Logs": "Log", + "Kaspa p2p Node & Connection": "Kaspa p2p Node & Connection", + "Key Perf.": "Key Perf.", + "LAST": "LAST", + "Language:": "Language:", + "Large (1 BPS)": "Large (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Levels", + "License Information": "License Information", + "Local": "Local", + "Local p2p Node Configuration": "Local p2p Node Configuration", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Logs", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", "MT": "MT", - "Main Kaspa network": "Jaringan utama Kaspa", + "Main Kaspa network": "Main Kaspa network", "Mainnet": "Mainnet", - "Mainnet (Main Kaspa network)": "Mainnet (jaringan Kaspa Utama)", - "Managed by the Rusty Kaspa daemon": "Dikelola oleh daemon Rusty Kaspa", - "Market": "Pasar", - "Market Cap": "Kapitalisasi Pasar", - "Market Monitor": "Pemantau Pasar", - "Mass Processed": "Diproses Massal", - "Medium Narrow": "Sedang Sempit", - "Medium Wide": "Lebar Sedang", - "Memory": "Penyimpanan", + "Managed by the Rusty Kaspa daemon": "Managed by the Rusty Kaspa daemon", + "Market": "Market", + "Market Cap": "Market Cap", + "Market Monitor": "Market Monitor", + "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Medium Narrow", + "Medium Wide": "Medium Wide", + "Memory": "Memory", "Mempool": "Mempool", - "Mempool Size": "Ukuran Mempool", - "Metrics": "Metrik", - "Metrics are not currently available": "Metrik saat ini tidak tersedia", - "NPM Modules for NodeJS": "Modul NPM untuk NodeJS", - "Network": "Jaringan", - "Network Difficulty": "Kesulitan Jaringan", - "Network Fees:": "Biaya Jaringan:", - "Network Interface": "Antarmuka Jaringan", - "Network Peers": "Jaringan Peers", - "No peers": "Tidak ada peers", - "No public node selected - please select a public node": "Tidak ada node publik yang dipilih - silakan pilih node publik", - "No transactions": "Tidak ada transaksi", - "No wallets found, please create a new wallet": "Tidak ada dompet yang ditemukan, silakan buat dompet baru", - "Node": "node", - "Node Status": "Status Node", - "Noise": "Kebisingan", - "None": "Tidak ada", - "Not Connected": "Tidak terhubung", - "Not connected": "Tidak terhubung", - "Notifications": "Pemberitahuan", - "Open Data Folder": "Buka Folder Data", - "Opening wallet:": "Membuka dompet:", - "Optional": "Opsional", - "Other operations": "Operasi lainnya", - "Outbound": "Keluar", - "Overview": "Ringkasan", - "Parents": "Induk", - "Past Median Time": "Waktu Median yang Lalu", - "Payment & Recovery Password": "Pembayaran", - "Payment Request": "Permintaan pembayaran", + "Mempool Size": "Mempool Size", + "Metrics": "Metrics", + "Metrics are not currently available": "Metrics are not currently available", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM Modules for NodeJS", + "Network": "Network", + "Network Difficulty": "Network Difficulty", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Network Interface", + "Network Peers": "Network Peers", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "No peers", + "No public node selected - please select a public node": "No public node selected - please select a public node", + "No transactions": "No transactions", + "No wallets found, please create a new wallet": "No wallets found, please create a new wallet", + "Node": "Node", + "Node Status": "Node Status", + "Noise": "Noise", + "None": "None", + "Normal": "Normal", + "Not Connected": "Not Connected", + "Not connected": "Not connected", + "Notifications": "Notifications", + "Open Data Folder": "Open Data Folder", + "Opening wallet:": "Opening wallet:", + "Optional": "Optional", + "Options": "Options", + "Other operations": "Other operations", + "Outbound": "Outbound", + "Overview": "Overview", + "PREV": "PREV", + "Parents": "Parents", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Past Median Time", + "Payment & Recovery Password": "Payment & Recovery Password", + "Payment Request": "Payment Request", + "Payment request to account: {account}": "Payment request to account: {account}", "Peers": "Peers", - "Performance": "Performa", - "Phishing Hint": "Petunjuk Phishing", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performance", + "Phishing Hint": "Phishing Hint", "Ping:": "Ping:", - "Please Confirm Deletion": "Harap Konfirmasi Penghapusan", - "Please configure your Kaspa NG settings": "Silakan konfigurasikan pengaturan Kaspa NG Anda", - "Please connect to Kaspa p2p node": "Silakan sambungkan ke node p2p Kaspa", - "Please create a stronger password": "Harap buat kata sandi yang lebih kuat", - "Please enter": "Silakan masuk", - "Please enter KAS amount to send": "Silakan masukkan jumlah KAS yang akan dikirim", - "Please enter an amount": "Silakan masukkan jumlah", - "Please enter the account name": "Silakan masukkan nama akun", - "Please enter the wallet secret": "Silakan masukkan kata rahasia dompet", - "Please note that this is a beta release. Until this message is removed, please avoid using the wallet with mainnet funds.": "Harap dicatat bahwa ini adalah rilis alfa. Sampai pesan ini dihapus, harap hindari penggunaan dompet dengan dana mainnet.", - "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Harap diperhatikan, menyalin ke papan klip berisiko membuat mnemonik Anda terkena malware.", - "Please select an account type": "Silakan pilih jenis akun", - "Please select the private key to export": "Silakan pilih kunci pribadi yang akan diekspor", - "Please set node to 'Disabled' to delete the data folder": "Silakan atur node ke 'Disabled' untuk menghapus folder data", - "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Silakan tentukan nama akun bawaan. Dompet akan dibuat dengan akun Bawaan. Setelah dibuat, Anda akan dapat membuat akun tambahan sesuai kebutuhan. ", - "Please specify the name of the new wallet": "Silakan tentukan nama dompet baru", - "Please specify the private key type for the new wallet": "Silakan tentukan jenis kunci pribadi untuk dompet baru", - "Please wait for the node to sync or connect to a remote node.": "Harap tunggu hingga node disinkronkan atau terhubung ke node jarak jauh.", - "Please wait for the node to sync...": "Harap tunggu hingga node disinkronkan...", - "Please wait...": "Harap tunggu...", - "Presets": "Preset", - "Price": "Harga", - "Private Key Mnemonic": "Mnemonik Kunci Pribadi", - "Processed Bodies": "Badan yang Diproses", - "Processed Dependencies": "Ketergantungan yang Diproses", - "Processed Headers": "Header yang Diproses", - "Processed Mass Counts": "Penghitungan Massa yang Diproses", - "Processed Transactions": "Transaksi yang Diproses", - "Protocol:": "Protokol:", - "Public Node": "Node Publik", - "Public Nodes": "Node Publik", - "Public Server": "Server Publik", - "Public p2p Nodes for": "Node p2p publik untuk", - "Random Public Node": "Node Publik Acak", - "Range:": "Jangkauan:", - "Receive Address": "Alamat Penerimaan", - "Recommended arguments for the remote node: ": "Argumen yang disarankan untuk node jarak jauh: ", - "Remote": "Remot", - "Remote Connection:": "Koneksi Jarak Jauh:", - "Remote p2p Node Configuration": "Konfigurasi Node p2p jarak jauh", - "Removes security restrictions, allows for single-letter passwords": "Menghapus batasan keamanan, memungkinkan kata sandi satu huruf", - "Reset Settings": "Atur Ulang Pengaturan", - "Reset VSPC": "Setel ulang VSPC", - "Resident Memory": "Memori Residen", - "Resources": "Sumber daya", - "Resulting daemon arguments:": "Argumen daemon yang dihasilkan:", - "Rust Wallet SDK": "SDK Dompet Karat", - "Rusty Kaspa on GitHub": "Rusty Kaspa di GitHub", - "Secret is too weak": "Rahasia terlalu lemah", - "Secret score:": "Skor rahasia:", - "Select Account": "Pilih Akun", - "Select Available Server": "Pilih Server yang Tersedia", - "Select Private Key Type": "Pilih Jenis Kunci Pribadi", - "Select Public Node": "Pilih Node Publik", - "Select Wallet": "Pilih Dompet", - "Select a wallet to unlock": "Pilih dompet untuk dibuka kuncinya", - "Send": "Kirim", - "Services": "Layanan", - "Settings": "Pengaturan", - "Show DAA": "Tampilkan DAA", - "Show Grid": "Tampilkan Kotak", - "Show VSPC": "Tampilkan VSPC", - "Show balances in alternate currencies for testnet coins": "Tampilkan saldo dalam mata uang alternatif untuk koin testnet", - "Show password": "Tampilkan kata sandi", - "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Menampilkan saldo dalam mata uang alternatif (BTC, USD) saat menggunakan koin testnet seolah-olah Anda berada di mainnet", - "Skip": "Lewati", - "Small (10 BPS)": "Kecil (10 BPS)", - "Spread": "Sebarkan", - "Stage": "Panggung", - "Starting...": "Memulai...", - "Statistics": "Statistik", - "Stor Read": "Penyimpanan Baca", - "Stor Write": "Penyimpanan Tulis", - "Storage": "Penyimpanan", - "Storage Read": "Penyimpanan Baca", - "Storage Read/s": "Penyimpanan Baca/dtk", - "Storage Write": "Penyimpanan Tulis", - "Storage Write/s": "Penyimpanan Tulis/dtk", - "Submitted Blocks": "Blok yang Dikirim", - "Supporting Kaspa NG development": "Dukung pengembangan Kaspa NG", - "Syncing Cryptographic Proof...": "Menyinkronkan Bukti Kriptografi...", - "Syncing DAG Blocks...": "Menyinkronkan Blok DAG...", - "Syncing Headers...": "Menyinkronkan Header...", - "Syncing UTXO entries...": "Menyinkronkan entri UTXO...", - "Syncing...": "Menyinkronkan...", - "System": "Sistem", + "Please Confirm Deletion": "Please Confirm Deletion", + "Please configure your Kaspa NG settings": "Please configure your Kaspa NG settings", + "Please connect to Kaspa p2p node": "Please connect to Kaspa p2p node", + "Please create a stronger password": "Please create a stronger password", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Please enter an amount", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Please enter the account name", + "Please enter the wallet secret": "Please enter the wallet secret", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Please select an account type", + "Please select export type": "Please select export type", + "Please select the private key to export": "Please select the private key to export", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Please set node to 'Disabled' to delete the data folder", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.", + "Please specify the name of the new wallet": "Please specify the name of the new wallet", + "Please specify the private key type for the new wallet": "Please specify the private key type for the new wallet", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Please wait for the node to sync or connect to a remote node.", + "Please wait for the node to sync...": "Please wait for the node to sync...", + "Please wait...": "Please wait...", + "Presets": "Presets", + "Price": "Price", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Processed Bodies", + "Processed Dependencies": "Processed Dependencies", + "Processed Headers": "Processed Headers", + "Processed Mass Counts": "Processed Mass Counts", + "Processed Transactions": "Processed Transactions", + "Processing...": "Processing...", + "Protocol:": "Protocol:", + "Public Node": "Public Node", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Random Public Node", + "Range:": "Range:", + "Receive Address": "Receive Address", + "Recommended arguments for the remote node: ": "Recommended arguments for the remote node: ", + "Redistributables": "Redistributables", + "Remote": "Remote", + "Remote Connection:": "Remote Connection:", + "Remote p2p Node Configuration": "Remote p2p Node Configuration", + "Removes security restrictions, allows for single-letter passwords": "Removes security restrictions, allows for single-letter passwords", + "Reset Settings": "Reset Settings", + "Reset VSPC": "Reset VSPC", + "Resident Memory": "Resident Memory", + "Resources": "Resources", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Resulting daemon arguments:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa on GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Secret is too weak", + "Secret score:": "Secret score:", + "Select Account": "Select Account", + "Select Private Key Type": "Select Private Key Type", + "Select Public Node": "Select Public Node", + "Select Wallet": "Select Wallet", + "Select a wallet to unlock": "Select a wallet to unlock", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Send", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Services", + "Settings": "Settings", + "Show DAA": "Show DAA", + "Show Grid": "Show Grid", + "Show VSPC": "Show VSPC", + "Show balances in alternate currencies for testnet coins": "Show balances in alternate currencies for testnet coins", + "Show passphrase": "Show passphrase", + "Show password": "Show password", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet", + "Skip": "Skip", + "Small (10 BPS)": "Small (10 BPS)", + "Spread": "Spread", + "Stage": "Stage", + "Starting...": "Starting...", + "Statistics": "Statistics", + "Stop": "Stop", + "Stor Read": "Stor Read", + "Stor Write": "Stor Write", + "Storage": "Storage", + "Storage Read": "Storage Read", + "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", + "Storage Write": "Storage Write", + "Storage Write/s": "Storage Write/s", + "Strong": "Strong", + "Submitted Blocks": "Submitted Blocks", + "Syncing Cryptographic Proof...": "Syncing Cryptographic Proof...", + "Syncing DAG Blocks...": "Syncing DAG Blocks...", + "Syncing Headers...": "Syncing Headers...", + "Syncing UTXO entries...": "Syncing UTXO entries...", + "Syncing...": "Syncing...", + "System": "System", "TPS": "TPS", "Testnet 10": "Testnet 10", - "Testnet 10 (1 BPS)": "Testnet 10 (1 BPS)", "Testnet 11": "Testnet 11", - "Testnet 11 (10 BPS)": "Tesnet 11 (10 BPS)", - "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.": "Testnet 11 belum diaktifkan untuk pengujian publik. ", - "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Perangkat lunak Kaspa NG mewakili upaya berkelanjutan yang berfokus pada pembangunan platform perangkat lunak canggih yang didedikasikan untuk jaringan mata uang kripto Kaspa BlockDAG. ", - "The balance may be out of date during node sync": "Saldo mungkin kedaluwarsa selama sinkronisasi node", - "The following will guide you through the process of creating or importing a wallet.": "Berikut ini akan memandu Anda melalui proses pembuatan atau impor dompet.", - "The node is currently syncing with the Kaspa p2p network.": "Node saat ini sedang melakukan sinkronisasi dengan jaringan Kaspa p2p.", - "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "Node saat ini sedang melakukan sinkronisasi dengan jaringan Kaspa p2p. ", - "The node is spawned as a child daemon process (recommended).": "Node ini dihasilkan sebagai proses daemon anak (disarankan).", - "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "Node berjalan sebagai bagian dari proses aplikasi Kaspa-NG. Hal ini mengurangi overhead komunikasi (eksperimental).", - "Theme Color": "Warna Tema", - "Theme Color:": "Warna Tema:", - "Theme Style": "Gaya Tema", - "Theme Style:": "Gaya Tema:", - "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Dompet ini tidak akan pernah menanyakan frasa mnemonik ini kecuali Anda memulai pemulihan kunci pribadi secara manual.", - "Threshold": "Ambang Batas", - "Time Offset:": "Waktu Offset:", - "Tip Hashes": "Tip Hash", - "Tools ⏷": "Alat ⏷", - "Total Rx": "Jumlah Rx", - "Total Rx/s": "Total Rx/dtk", - "Total Tx": "Jumlah Tx", - "Total Tx/s": "Jumlah Tx/dtk", - "Track in the background": "Lacak di latar belakang", - "Transactions": "Transaksi", - "Transactions:": "Transaksi:", - "Type": "Jenis", - "UTXO Manager": "Manajer UTXO", - "UTXOs": "UTXO", - "UTXOs:": "UTXO:", - "Unable to change node settings until the problem is resolved": "Tidak dapat mengubah pengaturan node hingga masalah teratasi", - "Unlock": "Buka kunci", - "Unlock Wallet": "Buka Dompet", - "Unlocking": "Membuka kunci", - "Update Available to version": "Pembaruan Tersedia untuk versi", - "Updating...": "Memperbarui...", - "Uptime:": "Waktu Aktif:", - "Use 50%-75% of available system memory": "Gunakan 50%-75% dari memori sistem yang tersedia", - "Use all available system memory": "Gunakan semua memori sistem yang tersedia", - "User Agent": "Agen pengguna", - "User Interface": "Antarmuka pengguna", - "Very dangerous (may be cracked within few seconds)": "Sangat berbahaya (mungkin retak dalam beberapa detik)", - "Virt Parents": "Orang Tua yang Berbudi Luhur", - "Virtual DAA Score": "Skor DAA Virtual", - "Virtual Memory": "Memori Virtual", - "Virtual Parent Hashes": "Hash Induk Virtual", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.", + "The balance may be out of date during node sync": "The balance may be out of date during node sync", + "The following will guide you through the process of creating or importing a wallet.": "The following will guide you through the process of creating or importing a wallet.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "The node is currently syncing with the Kaspa p2p network.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Theme Color", + "Theme Color:": "Theme Color:", + "Theme Style": "Theme Style", + "Theme Style:": "Theme Style:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Threshold": "Threshold", + "Time Offset:": "Time Offset:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Track in the background", + "Transactions": "Transactions", + "Transactions:": "Transactions:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Type", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO Manager", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Unable to change node settings until the problem is resolved", + "Unable to store settings": "Unable to store settings", + "Unlock": "Unlock", + "Unlock Wallet": "Unlock Wallet", + "Unlocking": "Unlocking", + "Update Available to version": "Update Available to version", + "Updating...": "Updating...", + "Uptime:": "Uptime:", + "Use 50%-75% of available system memory": "Use 50%-75% of available system memory", + "Use all available system memory": "Use all available system memory", + "User Agent": "User Agent", + "User Interface": "User Interface", + "Very dangerous (may be cracked within few seconds)": "Very dangerous (may be cracked within few seconds)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Virt Parents", + "Virtual DAA Score": "Virtual DAA Score", + "Virtual Memory": "Virtual Memory", + "Virtual Parent Hashes": "Virtual Parent Hashes", "Volume": "Volume", - "WASM SDK for JavaScript and TypeScript": "WASM SDK untuk JavaScript dan TypeScript", - "Wallet": "Dompet", - "Wallet Created": "Dompet Dibuat", - "Wallet Encryption Password": "Kata Sandi Enkripsi Dompet", - "Wallet Name": "Nama Dompet", - "Wallet Secret": "Dompet Rahasia", - "Wallet password is used to encrypt your wallet data.": "Kata sandi dompet digunakan untuk mengenkripsi data dompet Anda.", - "Wallet:": "Dompet:", - "We greatly appreciate your help in backing our efforts.": "Kami sangat menghargai bantuan Anda dalam mendukung upaya kami.", - "Welcome to Kaspa NG": "Selamat datang di Kaspa NG", - "Xpub Keys": "Kunci Xpub", - "You are currently not connected to the Kaspa node.": "Anda saat ini tidak terhubung ke node Kaspa.", - "You can configure remote connection in Settings": "Anda dapat mengonfigurasi koneksi jarak jauh di Pengaturan", - "You can create multiple wallets, but only one wallet can be open at a time.": "Anda dapat membuat beberapa dompet, namun hanya satu dompet yang dapat dibuka dalam satu waktu.", - "You must be connected to a node...": "Anda harus terhubung ke sebuah node...", - "Your default wallet private key mnemonic is:": "Mnemonik kunci pribadi dompet default Anda adalah:", - "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Frasa mnemonik Anda memungkinkan Anda untuk membuat ulang kunci pribadi Anda. Orang yang memiliki akses ke mnemonik ini akan memiliki kontrol penuh atas Kaspa yang tersimpan di dalamnya. Simpanlah mnemonik Anda dengan aman. Tuliskan dan simpan di tempat yang aman, sebaiknya di tempat yang tahan api. Jangan simpan mnemonik Anda di komputer atau perangkat seluler. Dompet ini tidak akan pernah meminta frasa mnemonik ini kecuali jika anda melakukan pemulihan kunci pribadi secara manual.", - "Your private key mnemonic is:": "Mnemonik kunci pribadi Anda adalah:", - "Your wallet has been created and is ready to use.": "Dompet Anda telah dibuat dan siap digunakan.", - "Zoom": "Perbesar", - "amount to send": "jumlah yang akan dikirim", - "bye!": "selamat tinggal!", - "gRPC Network Interface & Port": "Antarmuka Jaringan gRPC", + "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", + "Wallet": "Wallet", + "Wallet Created": "Wallet Created", + "Wallet Encryption Password": "Wallet Encryption Password", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Wallet Name", + "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Wallet password is used to encrypt your wallet data.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Wallet:", + "We greatly appreciate your help in backing our efforts.": "We greatly appreciate your help in backing our efforts.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Welcome to Kaspa NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "You are currently not connected to the Kaspa node.", + "You can configure remote connection in Settings": "You can configure remote connection in Settings", + "You can create multiple wallets, but only one wallet can be open at a time.": "You can create multiple wallets, but only one wallet can be open at a time.", + "You must be connected to a node...": "You must be connected to a node...", + "Your default wallet private key mnemonic is:": "Your default wallet private key mnemonic is:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Your private key mnemonic is:", + "Your wallet has been created and is ready to use.": "Your wallet has been created and is ready to use.", + "Zoom": "Zoom", + "bye!": "bye!", + "gRPC Network Interface & Port": "gRPC Network Interface & Port", "gRPC Rx": "gRPC Rx", - "gRPC Rx/s": "gRPC Rx/dtk", + "gRPC Rx/s": "gRPC Rx/s", "gRPC Tx": "gRPC Tx", - "gRPC Tx/s": "gRPC Tx/dtk", - "of": "dari", + "gRPC Tx/s": "gRPC Tx/s", + "of": "of", "p2p RPC": "p2p RPC", "p2p Rx": "p2p Rx", - "p2p Rx/s": "p2p Rx/dtk", + "p2p Rx/s": "p2p Rx/s", "p2p Tx": "p2p Tx", - "p2p Tx/s": "p2p Tx/dtk", + "p2p Tx/s": "p2p Tx/s", "peer": "peer", "peers": "peers", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", "wRPC Borsh Rx": "wRPC Borsh Rx", "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", "wRPC Borsh Tx": "wRPC Borsh Tx", - "wRPC Borsh Tx/s": "wRPC Borsh Tx/dtk", - "wRPC Connection Settings": "Pengaturan Koneksi wRPC", - "wRPC Encoding:": "Pengkodean wRPC:", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "wRPC Connection Settings", + "wRPC Encoding:": "wRPC Encoding:", "wRPC JSON Rx": "wRPC JSON Rx", - "wRPC JSON Rx/s": "wRPC JSON Rx/dtk", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", "wRPC JSON Tx": "wRPC JSON Tx", - "wRPC JSON Tx/s": "wRPC JSON Tx/dtk", - "wRPC URL:": "URL wRPC:" + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" }, - "is": {}, - "it": {}, - "ja": { - "1 BPS test network": "1 BPS テストネットワーク", - "10 BPS test network": "10 BPS テストネットワーク", - "12 word mnemonic": "12 単語ニーモニック", - "24 word mnemonic": "24 単語ニーモニック", - "24h Change": "24時間の変化", - "A binary at another location is spawned a child process (experimental, for development purposes only).": "別の場所のバイナリが子プロセスとして生成されます(実験的、開発目的のみ)。", - "A random node will be selected on startup": "起動時にランダムなノードが選択されます", - "A wallet is stored in a file on your computer.": "ウォレットはコンピューターのファイルに保存されます。", - "Account Index": "アカウントインデックス", - "Account Name": "アカウント名", - "Account:": "アカウント:", - "Activate custom daemon arguments": "カスタムデーモン引数を有効にする", - "Active p2p Peers": "アクティブなP2Pピア", - "Address derivation scan": "アドレス派生スキャン", - "Address:": "アドレス:", - "Advanced": "高度な", - "All": "すべて", - "Allow custom arguments for the Rusty Kaspa daemon": "Rusty Kaspaデーモンのカスタム引数を許可する", - "Allows you to take screenshots from within the application": "アプリ内からスクリーンショットを撮ることができます", - "Apply": "適用", - "Balance: N/A": "残高:N/A", - "Bandwidth": "帯域幅", - "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "セキュリティとパフォーマンスに焦点を当てたため、このソフトウェアは他の従来のモダンなWeb駆動型ソフトウェアと比較して、はるかに多くの時間と労力を要するRustで完全に開発されています。", - "Bezier Curves": "ベジェ曲線", - "Block DAG": "ブロックDAG", - "Block Scale": "ブロックスケール", - "Blocks": "ブロック", - "Bodies": "ボディ", - "Borsh Active Connections": "Borshアクティブ接続", - "Borsh Connection Attempts": "Borsh接続試行", - "Borsh Handshake Failures": "Borshハンドシェイクの失敗", - "Build": "ビルド", - "CONNECTED": "接続済み", - "CPU": "CPU", - "Cache Memory Size": "キャッシュメモリサイズ", - "Cache Memory Size:": "キャッシュメモリサイズ:", - "Cancel": "キャンセル", - "Cannot delete data folder while the node is running": "ノードが実行中の間はデータフォルダを削除できません", - "Capture a screenshot": "スクリーンショットをキャプチャ", - "Center VSPC": "中央VSPC", - "Chain Blocks": "チェーンブロック", - "Change Address": "アドレスを変更", - "Check for Software Updates on GitHub": "GitHubでソフトウェアの更新を確認", - "Check for Updates": "更新を確認", - "Clear": "クリア", - "Click to try another server...": "別のサーバーを試すにはクリック...", - "Client RPC": "クライアントRPC", - "Close": "閉じる", - "Close the window": "ウィンドウを閉じる", - "Confirm wallet password": "ウォレットのパスワードを確認", - "Connect to a local node (localhost)": "ローカルノードに接続(localhost)", - "Connecting to": "接続中", - "Connection": "接続", - "Connections": "接続数", - "Connects to a Remote Rusty Kaspa Node via wRPC.": "wRPCを介してリモートのRusty Kaspaノードに接続します。", - "Conservative": "保守的", - "Continue": "続行する", - "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.": "このプロジェクトへの寄付は、直接Kaspa NGソフトウェアとそのエコシステムを支えます。", - "Copied to clipboard": "クリップボードにコピーしました", - "Copy": "コピー", - "Copy logs to clipboard": "ログをクリップボードにコピー", - "Create New Account": "新しいアカウントを作成", - "Create New Wallet": "新しいウォレットを作成", - "Create new wallet": "新しいウォレットを作成", - "Creating Account": "アカウントを作成中", - "Creating Wallet": "ウォレットを作成中", - "Custom": "カスタム", - "Custom Public Node": "カスタムパブリックノード", - "Custom arguments:": "カスタム引数:", - "Custom data storage folder": "カスタムデータストレージフォルダ", - "DAA": "DAA", - "DAA Offset": "DAAオフセット", - "DAA Range": "DAA範囲", - "DB Blocks": "DBブロック", - "DB Headers": "DBヘッダー", - "Data Storage": "データストレージ", - "Database Blocks": "データベースブロック", - "Database Headers": "データベースヘッダー", - "Decrypting wallet, please wait...": "ウォレットを復号化しています。お待ちください...", - "Default": "デフォルト", - "Default Account Name": "デフォルトのアカウント名", - "Delete Data Folder": "データフォルダーを削除", - "Dependencies": "依存関係", - "Derivation Indexes": "導出インデックス", - "Details": "詳細", - "Developer Mode": "開発者モード", - "Developer Resources": "開発者リソース", - "Developer mode enables advanced and experimental features": "開発者モードは高度な実験的な機能を有効にします", - "Difficulty": "難易度", - "Dimensions": "寸法", - "Disable password score restrictions": "パスワードスコアの制限を無効にする", - "Disabled": "無効", - "Disables node connectivity (Offline Mode).": "ノードの接続を無効にします(オフラインモード)。", - "Discord": "Discord", - "Donations": "寄付", - "Double click on the graph to re-center...": "グラフを再中心にするにはダブルクリックしてください...", - "ECDSA": "ECDSA", - "Enable Market Monitor": "マーケットモニターを有効にする", - "Enable UPnP": "UPnPを有効にする", - "Enable custom daemon arguments": "カスタムデーモン引数を有効にする", - "Enable experimental features": "実験的な機能を有効にする", - "Enable gRPC": "gRPCを有効にする", - "Enable optional BIP39 passphrase": "オプションのBIP39パスフレーズを有効にする", - "Enable screen capture": "スクリーンキャプチャを有効にする", - "Enables features currently in development": "現在開発中の機能を有効にします", - "Enter": "入力", - "Enter account name (optional)": "アカウント名を入力してください(オプション)", - "Enter first account name": "最初のアカウント名を入力してください", - "Enter phishing hint": "フィッシングのヒントを入力してください", - "Enter the amount": "金額を入力してください", - "Enter the password for your wallet": "ウォレットのパスワードを入力してください", - "Enter the password to unlock your wallet": "ウォレットをアンロックするためのパスワードを入力してください", - "Enter wallet name": "ウォレット名を入力してください", - "Enter wallet password": "ウォレットのパスワードを入力してください", - "Enter your wallet secret": "ウォレットの秘密鍵を入力してください", - "Explorer": "エクスプローラー", - "Export Wallet Data": "ウォレットデータのエクスポート", - "Faucet": "Faucet", - "File Handles": "ファイルハンドル", - "Filename:": "ファイル名:", - "Final Amount:": "最終金額:", - "GitHub Release": "GitHub リリース", - "Go to Settings": "設定に移動", - "Handles": "ハンドル", - "Headers": "ヘッダー", - "IBD:": "IBD:", - "If not specified, the account will be represented by the numeric id.": "指定されていない場合、アカウントは数値IDで表されます。", - "If you are running locally, use: ": "ローカルで実行している場合は、次を使用してください:", - "Import existing": "既存のインポート", - "Inbound": "インバウンド", - "Include QoS Priority Fees": "QoS 優先料金を含める", - "Integrated Daemon": "統合デーモン", - "Invalid daemon arguments": "無効なデーモン引数", - "Invalid network type - expected: testnet-10 connected to: testnet-11": "無効なネットワークタイプ - 期待されるもの:testnet-10 接続先:testnet-11", - "Invalid wRPC URL": "無効なwRPC URL", - "Json Active Connections": "Json アクティブ接続", - "Json Connection Attempts": "Json 接続試行", - "Json Handshake Failures": "Json ハンドシェイク失敗", - "Kaspa Discord": "Kaspa Discord", - "Kaspa Integration Guide": "Kaspa 統合ガイド", - "Kaspa NG": "Kaspa NG", - "Kaspa NG Online": "Kaspa NG オンライン", - "Kaspa NG Web App": "Kaspa NG Web アプリ", - "Kaspa NG on GitHub": "GitHub 上の Kaspa NG", - "Kaspa NG online": "Kaspa NG オンライン", - "Kaspa Network": "Kaspa ネットワーク", - "Kaspa Node": "Kaspa ノード", - "Kaspa p2p Network & Node Connection": "Kaspa p2p ネットワーク&ノード接続", - "Kaspa p2p Node": "Kaspa p2p ノード", - "Kaspa p2p Node & Connection": "Kaspa p2p ノード&接続", - "Key Perf.": "キー パフォーマンス", - "Language:": "言語:", - "Large (1 BPS)": "大規模 (1 BPS)", - "Levels": "レベル", - "License Information": "ライセンス情報", - "Local": "ローカル", - "Local p2p Node Configuration": "ローカル p2p ノードの構成", - "Logs": "ログ", - "MT": "MT", - "Main Kaspa network": "メイン Kaspa ネットワーク", - "Mainnet": "メインネット", - "Mainnet (Main Kaspa network)": "メインネット (メイン Kaspa ネットワーク)", - "Managed by the Rusty Kaspa daemon": "Rusty Kaspa デーモンによって管理されています", - "Market": "マーケット", - "Market Cap": "時価総額", - "Market Monitor": "マーケットモニター", - "Mass Processed": "一括処理", - "Medium Narrow": "中くらいの狭い", - "Medium Wide": "中くらいの広い", - "Memory": "メモリ", - "Mempool": "メモリプール", - "Mempool Size": "メモリプールサイズ", - "Metrics": "メトリクス", - "Metrics are not currently available": "現在メトリクスは利用できません", - "NPM Modules for NodeJS": "NodeJS の NPM モジュール", - "Network": "ネットワーク", - "Network Difficulty": "ネットワークの難易度", - "Network Fees:": "ネットワーク料金:", - "Network Interface": "ネットワークインターフェース", - "Network Peers": "ネットワークピア", - "No peers": "ピアがありません", - "No public node selected - please select a public node": "パブリックノードが選択されていません - パブリックノードを選択してください", - "No transactions": "取引がありません", - "No wallets found, please create a new wallet": "ウォレットが見つかりませんでした。新しいウォレットを作成してください", - "Node": "ノード", - "Node Status": "ノードの状態", - "Noise": "ノイズ", - "None": "なし", - "Not Connected": "接続されていません", - "Not connected": "接続されていません", - "Notifications": "通知", - "Open Data Folder": "データフォルダーを開く", - "Opening wallet:": "ウォレットを開いています:", - "Optional": "オプション", - "Other operations": "その他の操作", - "Outbound": "アウトバウンド", - "Overview": "概要", - "Parents": "親", - "Past Median Time": "過去の中央時間", - "Payment & Recovery Password": "支払いおよび復旧パスワード", - "Payment Request": "支払いリクエスト", - "Peers": "ピア", - "Performance": "パフォーマンス", - "Phishing Hint": "フィッシングのヒント", - "Ping:": "ピンク:", - "Please Confirm Deletion": "削除を確認してください", - "Please configure your Kaspa NG settings": "Kaspa NGの設定を構成してください", - "Please connect to Kaspa p2p node": "Kaspa p2pノードに接続してください", - "Please create a stronger password": "より強力なパスワードを作成してください", - "Please enter": "入力してください", - "Please enter KAS amount to send": "送信するKASの金額を入力してください", - "Please enter an amount": "金額を入力してください", - "Please enter the account name": "アカウント名を入力してください", - "Please enter the wallet secret": "ウォレットの秘密鍵を入力してください", - "Please note that this is a beta release. Until this message is removed, please avoid using the wallet with mainnet funds.": "これはアルファリリースです。このメッセージが削除されるまで、メインネットの資金を使用しないでください。", - "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "クリップボードにコピーすると、マルウェアにニーモニックがさらされるリスクがありますのでご注意ください。", - "Please select an account type": "アカウントタイプを選択してください", - "Please select the private key to export": "エクスポートするプライベートキーを選択してください", - "Please set node to 'Disabled' to delete the data folder": "データフォルダを削除するには、ノードを「無効」に設定してください", - "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "デフォルトのアカウント名を指定してください。ウォレットはデフォルトのアカウントで作成されます。作成後、必要に応じて追加のアカウントを作成できます。", - "Please specify the name of the new wallet": "新しいウォレットの名前を指定してください", - "Please specify the private key type for the new wallet": "新しいウォレットのプライベートキーのタイプを指定してください", - "Please wait for the node to sync or connect to a remote node.": "ノードが同期するかリモートノードに接続するのを待ってください。", - "Please wait for the node to sync...": "ノードの同期をお待ちください...", - "Please wait...": "お待ちください...", - "Presets": "プリセット", - "Price": "価格", - "Private Key Mnemonic": "秘密鍵ニーモニック", - "Processed Bodies": "処理されたボディ", - "Processed Dependencies": "処理された依存関係", - "Processed Headers": "処理されたヘッダー", - "Processed Mass Counts": "処理されたマスカウント", - "Processed Transactions": "処理されたトランザクション", - "Protocol:": "プロトコル:", - "Public Node": "パブリックノード", - "Public Nodes": "パブリックノード", - "Public Server": "パブリックサーバー", - "Public p2p Nodes for": "パブリックp2pノード", - "Random Public Node": "ランダムなパブリックノード", - "Range:": "範囲:", - "Receive Address": "受信アドレス", - "Recommended arguments for the remote node: ": "リモートノードの推奨引数:", - "Redistributables": "再配布可能な項目", - "Remote": "リモート", - "Remote Connection:": "リモート接続:", - "Remote p2p Node Configuration": "リモートp2pノードの設定", - "Removes security restrictions, allows for single-letter passwords": "セキュリティ制限を解除し、1文字のパスワードを許可します", - "Reset Settings": "設定をリセット", - "Reset VSPC": "VSPCをリセット", - "Resident Memory": "常駐メモリ", - "Resources": "リソース", - "Resulting daemon arguments:": "生成されるデーモンの引数:", - "Rust Wallet SDK": "RustウォレットSDK", - "Rusty Kaspa on GitHub": "GitHubのRusty Kaspa", - "Secret is too weak": "シークレットが弱すぎます", - "Secret score:": "シークレットスコア:", - "Select Account": "アカウントを選択", - "Select Available Server": "利用可能なサーバーを選択", - "Select Private Key Type": "プライベートキータイプを選択", - "Select Public Node": "パブリックノードを選択", - "Select Wallet": "ウォレットを選択", - "Select a wallet to unlock": "ロック解除するウォレットを選択", - "Send": "送信", - "Services": "サービス", - "Settings": "設定", - "Show DAA": "DAAを表示", - "Show Grid": "グリッドを表示", - "Show VSPC": "VSPCを表示", - "Show balances in alternate currencies for testnet coins": "テストネットコインの代替通貨残高を表示", - "Show password": "パスワードを表示", - "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "メインネット上にいるかのように、テストネットコインを使用するときに代替通貨(BTC、USD)の残高を表示します", - "Skip": "スキップ", - "Small (10 BPS)": "小さめ(10 BPS)", - "Spread": "スプレッド", - "Stage": "ステージ", - "Starting...": "開始中...", - "Statistics": "統計", - "Stor Read": "ストレージ読み取り", - "Stor Write": "ストレージ書き込み", - "Storage": "ストレージ", - "Storage Read": "ストレージ読み込み", - "Storage Read/s": "ストレージ読み込み/s", - "Storage Write": "ストレージ書き込み", - "Storage Write/s": "ストレージ書き込み/s", - "Submitted Blocks": "提出されたブロック", - "Supporting Kaspa NG development": "Kaspa NGの開発を支援", - "Syncing Cryptographic Proof...": "暗号化証明の同期中...", - "Syncing DAG Blocks...": "DAGブロックの同期中...", - "Syncing Headers...": "ヘッダーの同期中...", - "Syncing UTXO entries...": "UTXOエントリの同期中...", - "Syncing...": "同期中...", - "System": "システム", - "TPS": "TPS", - "Testnet 10": "テストネット 10", - "Testnet 10 (1 BPS)": "テストネット 10 (1 BPS)", - "Testnet 11": "テストネット 11", - "Testnet 11 (10 BPS)": "テストネット 11 (10 BPS)", - "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.": "テストネット 11 はまだ公開テストには有効になっていません。ただし、設定パネルでノードをプライベート開発者テストネットに接続することができます。", - "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Kaspa NGソフトウェアは、Kaspa BlockDAG暗号通貨ネットワークに特化した最先端のソフトウェアプラットフォームを構築するための継続的な取り組みを表しています。このソフトウェアは、その核となる思想に基づいて、セキュリティ、プライバシー、パフォーマンス、分散化を優先します。", - "The balance may be out of date during node sync": "ノードの同期中に残高が更新されていない可能性があります", - "The following will guide you through the process of creating or importing a wallet.": "以下では、ウォレットの作成またはインポートのプロセスを案内します。", - "The node is currently syncing with the Kaspa p2p network.": "ノードは現在、Kaspa p2pネットワークと同期しています。", - "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "ノードは現在、Kaspa p2pネットワークと同期しています。アカウントの残高は古くなっている可能性があります。", - "The node is spawned as a child daemon process (recommended).": "ノードは子デーモンプロセスとして生成されます(推奨)。", - "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "ノードはKaspa-NGアプリケーションプロセスの一部として実行されます。これにより、通信オーバーヘッドが削減されます(実験的)。", - "Theme Color": "テーマの色", - "Theme Color:": "テーマの色:", - "Theme Style": "テーマのスタイル", - "Theme Style:": "テーマのスタイル:", - "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "このウォレットは、手動で秘密鍵の復旧を開始しない限り、このニーモニックフレーズを要求しません。", - "Threshold": "しきい値", - "Time Offset:": "時刻オフセット:", - "Tip Hashes": "Tip ハッシュ", - "Tools ⏷": "ツール ⏷", - "Total Rx": "合計 Rx", - "Total Rx/s": "合計 Rx/s", - "Total Tx": "合計 Tx", - "Total Tx/s": "合計 Tx/s", - "Track in the background": "バックグラウンドで追跡", - "Transactions": "取引", - "Transactions:": "取引:", - "Type": "タイプ", - "UTXO Manager": "UTXO マネージャー", - "UTXOs": "UTXOs", - "UTXOs:": "UTXOs:", - "Unable to change node settings until the problem is resolved": "問題が解決するまで、ノードの設定を変更できません", - "Unlock": "アンロック", - "Unlock Wallet": "ウォレットのロックを解除", - "Unlocking": "アンロック中", - "Update Available to version": "更新可能なバージョンへの更新", - "Updating...": "更新中...", - "Uptime:": "稼働時間:", - "Use 50%-75% of available system memory": "利用可能なシステムメモリの50%〜75%を使用する", - "Use all available system memory": "利用可能なシステムメモリをすべて使用する", - "User Agent": "ユーザーエージェント", - "User Interface": "ユーザーインターフェース", - "Very dangerous (may be cracked within few seconds)": "非常に危険 (数秒でクラックされる可能性があります)", - "Virt Parents": "Virt Parents", - "Virtual DAA Score": "仮想 DAA スコア", - "Virtual Memory": "仮想メモリ", - "Virtual Parent Hashes": "仮想親ハッシュ", - "Volume": "ボリューム", - "WASM SDK for JavaScript and TypeScript": "JavaScriptおよびTypeScript用のWASM SDK", - "Wallet": "ウォレット", - "Wallet Created": "ウォレットが作成されました", - "Wallet Encryption Password": "ウォレットの暗号化パスワード", - "Wallet Name": "ウォレット名", - "Wallet Secret": "ウォレットの秘密情報", - "Wallet password is used to encrypt your wallet data.": "ウォレットパスワードは、ウォレットデータを暗号化するために使用されます。", - "Wallet:": "ウォレット:", - "We greatly appreciate your help in backing our efforts.": "私たちの取り組みを支援してくれて、本当にありがとうございます。", - "Welcome to Kaspa NG": "Kaspa NGへようこそ", - "Xpub Keys": "Xpubキー", - "You are currently not connected to the Kaspa node.": "現在、Kaspaノードに接続していません。", - "You can configure remote connection in Settings": "設定でリモート接続を構成できます", - "You can create multiple wallets, but only one wallet can be open at a time.": "複数のウォレットを作成できますが、同時に開くことができるのは1つのウォレットのみです。", - "You must be connected to a node...": "ノードに接続している必要があります...", - "Your default wallet private key mnemonic is:": "デフォルトのウォレットの秘密鍵ニーモニックは次のとおりです:", - "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "ニーモニックフレーズを使用すると、秘密鍵を再作成できます。このニーモニックにアクセスできる人物は、それに格納されているKaspaの完全な制御権を持ちます。ニーモニックを安全な場所に保管してください。書き留め、できれば耐火性のある場所に保管してください。このコンピュータやモバイルデバイスにニーモニックを保存しないでください。このウォレットは、手動で秘密鍵の回復を開始しない限り、このニーモニックフレーズを要求しません。", - "Your private key mnemonic is:": "秘密鍵ニーモニックは次のとおりです:", - "Your wallet has been created and is ready to use.": "ウォレットが作成され、使用準備ができています。", - "Zoom": "ズーム", - "amount to send": "送信する金額", - "bye!": "さようなら!", - "gRPC Network Interface & Port": "gRPCネットワークインターフェース&ポート", - "gRPC Rx": "gRPC受信", - "gRPC Rx/s": "gRPC受信/s", - "gRPC Tx": "gRPC送信", - "gRPC Tx/s": "gRPC送信/s", - "of": "の", - "p2p RPC": "p2p RPC", - "p2p Rx": "p2p受信", - "p2p Rx/s": "p2p受信/s", - "p2p Tx": "p2p送信", - "p2p Tx/s": "p2p送信/s", - "peer": "ピア", - "peers": "ピア", - "wRPC Borsh Rx": "wRPC Borsh受信", - "wRPC Borsh Rx/s": "wRPC Borsh受信/s", - "wRPC Borsh Tx": "wRPC Borsh送信", - "wRPC Borsh Tx/s": "wRPC Borsh送信/s", - "wRPC Connection Settings": "wRPC接続設定", - "wRPC Encoding:": "wRPCエンコーディング:", - "wRPC JSON Rx": "wRPC JSON受信", - "wRPC JSON Rx/s": "wRPC JSON受信/s", - "wRPC JSON Tx": "wRPC JSON送信", - "wRPC JSON Tx/s": "wRPC JSON送信/s", - "wRPC URL:": "wRPC URL:" - }, - "ko": { - "1 BPS test network": "1 BPS 테스트 네트워크", - "10 BPS test network": "10 BPS 테스트 네트워크", - "12 word mnemonic": "12 단어 니모닉", - "24 word mnemonic": "24 단어 니모닉", - "24h Change": "24시간 변동", - "A binary at another location is spawned a child process (experimental, for development purposes only).": "다른 위치의 이진 파일이 자식 프로세스를 생성합니다 (실험적으로, 개발 목적으로만 사용).", - "A random node will be selected on startup": "시작 시 임의의 노드가 선택됩니다", - "A wallet is stored in a file on your computer.": "지갑은 컴퓨터의 파일에 저장됩니다.", - "Account Index": "계정 인덱스", - "Account Name": "계정 이름", - "Account:": "계정:", - "Activate custom daemon arguments": "사용자 정의 데몬 인수 활성화", - "Active p2p Peers": "활성 P2P 피어", - "Address derivation scan": "주소 파생 스캔", - "Address:": "주소:", - "Advanced": "고급", - "All": "모두", - "Allow custom arguments for the Rusty Kaspa daemon": "Rusty Kaspa 데몬에 대한 사용자 정의 인수 허용", - "Allows you to take screenshots from within the application": "애플리케이션 내에서 스크린샷을 촬영할 수 있습니다", - "Apply": "적용", - "Balance: N/A": "잔액: N/A", - "Bandwidth": "대역폭", - "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "보안과 성능에 중점을 둔 이 소프트웨어는 기타 전통적인 현대 웹 기반 소프트웨어와 비교하여 상당히 더 많은 시간과 노력이 필요한 Rust로 완전히 개발되었습니다.", - "Bezier Curves": "베지어 곡선", - "Block DAG": "블록 DAG", - "Block Scale": "블록 스케일", - "Blocks": "블록", - "Bodies": "본문", - "Borsh Active Connections": "Borsh 활성 연결", - "Borsh Connection Attempts": "Borsh 연결 시도", - "Borsh Handshake Failures": "Borsh 핸드셰이크 실패", - "Build": "빌드", - "CONNECTED": "연결됨", + "es": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Pista de phishing' es una palabra o frase secretas que se muestran cuando abres tu billetera. Si no ves esta pista cuando abras tu billetera, puedes estar accediendo a una billetera falsa destinada a robarte los fondos. Si te pasa esto, no utilices la billetera, revisa la URL en el navegador y busca ayuda en las redes sociales (Discord o Telegram oficiales de Kaspa).", + "1 BPS test network": "Red de pruebas 1 BPS", + "10 BPS test network": "Red de pruebas 10 BPS", + "12 word mnemonic": "Mnemotécnica de 12 palabras", + "24 word mnemonic": "Mnemotécnica de 24 palabras", + "24h Change": "Cambio en 24h", + "3 hours or more": "3 horas o más", + "< {minutes} minute": "< {minutes} minuto", + "< {minutes} minutes": "< {minutes} minutos", + "< {seconds} second": "< {seconds} segundo", + "< {seconds} seconds": "< {seconds} segundos", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "Un binario en otra ubicación a creado un proceso dependiente (experimental, únicamente para desarrollo)", + "A random node will be selected on startup": "Se seleccionará un nodo aleatoriamente al inicio", + "A wallet is stored in a file on your computer.": "Hay una billetera en un archivo de su ordenador", + "Account Index": "Índice de la cuenta", + "Account Name": "Nombre de la cuenta", + "Account not found": "Account not found", + "Account:": "Cuenta:", + "Activate custom daemon arguments": "Activar argumentos del daemon personalizado ", + "Active p2p Peers": "Usuarios p2p activos", + "Add Account": "Añadir Cuenta", + "Address copied to clipboard": "Dirección copiada al portapapeles", + "Address derivation scan": "Escaneo de derivación de dirección", + "Address:": "Dirección:", + "Advanced": "Avanzado", + "All": "Todo", + "Allow clipboard copy": "Permitir copia al portapapeles", + "Allow custom arguments for the Rusty Kaspa daemon": "Permitir argumentos personalizados para el daemon de Rusty Kaspa", + "Allows you to take screenshots from within the application": "Permite tomar capturas de pantalla desde dentro de la aplicación", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "La aplicación debe reiniciarse para que este ajuste sea tenido en cuenta.", + "Apply": "Aplicar", + "Architecture {arch}": "Arquitectura {arch}", + "Are you sure you want to reset all settings?": "¿Estás seguro que quieres resetear toda la configuración?", + "BALANCE": "BALANCE", + "Balance: N/A": "Saldo: N/A", + "Bandwidth": "Ancho de banda", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Como está centrado en la seguridad y el rendimiento, este software se ha desarrollado por completo en Rust, lo que ha requerido significativamente más tiempo y esfuerzo que otros softwares tradicionalmente desarrollados para web.", + "Bezier Curves": "Curvas Bezier", + "Block DAG": "Block DAG", + "Block Scale": "Escala de bloques", + "Blocks": "Bloques", + "Bodies": "Cuerpos", + "Borsh Active Connections": "Conexiones Activas Borsh", + "Borsh Connection Attempts": "Intentos de Conexión Borsh", + "Borsh Handshake Failures": "Fallos Handshake Borsh", + "Build": "Versión", + "CONNECTED": "CONECTADO", "CPU": "CPU", - "Cache Memory Size": "캐시 메모리 크기", - "Cache Memory Size:": "캐시 메모리 크기:", - "Cancel": "취소", - "Cannot delete data folder while the node is running": "노드가 실행 중인 동안 데이터 폴더를 삭제할 수 없습니다", - "Capture a screenshot": "스크린샷 캡처", - "Center VSPC": "중앙 VSPC", - "Chain Blocks": "체인 블록", - "Change Address": "주소 변경", - "Check for Software Updates on GitHub": "GitHub에서 소프트웨어 업데이트 확인", - "Check for Updates": "업데이트 확인", - "Clear": "지우기", - "Click to try another server...": "다른 서버를 시도하려면 클릭...", - "Client RPC": "클라이언트 RPC", - "Close": "닫기", - "Close the window": "창 닫기", - "Confirm wallet password": "지갑 비밀번호 확인", - "Connect to a local node (localhost)": "로컬 노드에 연결 (localhost)", - "Connecting to": "연결 중", - "Connection": "연결", - "Connections": "연결", - "Connects to a Remote Rusty Kaspa Node via wRPC.": "wRPC를 통해 원격 Rusty Kaspa 노드에 연결합니다.", - "Conservative": "보수적인", - "Continue": "계속", - "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.": "이 프로젝트로 직접 향하는 기여는 Kaspa NG 소프트웨어 및 생태계를 직접 지원합니다.", - "Copied to clipboard": "클립보드에 복사됨", - "Copy": "복사", - "Copy logs to clipboard": "로그를 클립보드로 복사", - "Create New Account": "새 계정 만들기", - "Create New Wallet": "새 지갑 만들기", - "Create new wallet": "새 지갑 만들기", - "Creating Account": "계정 생성 중", - "Creating Wallet": "지갑 생성 중", - "Custom": "사용자 지정", - "Custom Public Node": "사용자 정의 공개 노드", - "Custom arguments:": "사용자 정의 인수:", - "Custom data storage folder": "사용자 정의 데이터 저장 폴더", + "Cache Memory Size": "Tamaño memoria caché", + "Cancel": "Cancelar", + "Cannot delete data folder while the node is running": "No se puede eliminar la carpeta de datos mientras el nodo está activo", + "Capture a screenshot": "Tomar captura de pantalla", + "Capture saved to {path}": "Captura guardada en {path}", + "Center VSPC": "Centrar VSPC", + "Chain Blocks": "Bloques de la Cadena", + "Change Address": "Cambiar dirección", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Compruebe si hay actualizaciones de software en Github", + "Check for Updates": "Comprobar actualizaciones", + "Clear": "Borrar", + "Click to try another server...": "Haz clic para probar otro servidor", + "Client RPC": "RPC cliente", + "Close": "Cerrar", + "Close the window": "Cerrar la ventana ", + "Confirm BIP39 passphrase": "Confirme la frase de paso BIP39", + "Confirm wallet password": "Confirme contraseña de la billetera", + "Connecting to": "Conectar a", + "Connection": "Conexión", + "Connections": "Conexiones", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Conecta a un Nodo Rusty Kaspa Remoto por wRPC", + "Conservative": "Conservador", + "Continue": "Continuar", + "Copied to clipboard": "Copiado al portapapeles", + "Copy": "Copiar", + "Copy logs to clipboard": "Copia los registros al portapapeles", + "Create New Wallet": "Crear billetera nueva", + "Create Wallet": "Crear billetera", + "Create new wallet": "Crear billetera nueva", + "Creating Account": "Creando cuenta", + "Creating Wallet": "Creando billetera", + "Custom": "Personalizado", + "Custom Public Node": "Nodo Público Personalizado", + "Custom arguments:": "Argumentos personalizados:", + "Custom data storage folder": "Carpeta almacenamiento datos personalizada", "DAA": "DAA", - "DAA Offset": "DAA 오프셋", - "DAA Range": "DAA 범위", - "DB Blocks": "DB 블록", - "DB Headers": "DB 헤더", - "Data Storage": "데이터 저장", - "Database Blocks": "데이터베이스 블록", - "Database Headers": "데이터베이스 헤더", - "Decrypting wallet, please wait...": "지갑 복호화 중, 잠시 기다려주세요...", - "Default": "기본값", - "Default Account Name": "기본 계정 이름", - "Delete Data Folder": "데이터 폴더 삭제", - "Dependencies": "의존성", - "Derivation Indexes": "파생 인덱스", - "Details": "세부 정보", - "Developer Mode": "개발자 모드", - "Developer Resources": "개발자 자료", - "Developer mode enables advanced and experimental features": "개발자 모드는 고급 및 실험적인 기능을 활성화합니다", - "Difficulty": "난이도", - "Dimensions": "차원", - "Disable password score restrictions": "비밀번호 점수 제한 비활성화", - "Disabled": "비활성화됨", - "Disables node connectivity (Offline Mode).": "노드 연결을 비활성화합니다 (오프라인 모드).", + "DAA Offset": "Desviación DAA", + "DAA Range": "Rango DAA", + "DB Blocks": "Bloques DB", + "DB Headers": "Encabezamientos DB", + "Dangerous": "Peligroso", + "Data Storage": "Almacenamiento datos", + "Database Blocks": "Bloques en Base de Datos", + "Database Headers": "Encabezamientos Base de Datos", + "Decrypt": "Desencriptar", + "Decrypting Wallet File": "Desencriptando Fichero de Billetera", + "Decrypting wallet, please wait...": "Desencriptando billetera, por favor espere...", + "Default": "Por defecto", + "Default Account Name": "Nombre por defecto de la cuenta", + "Delete Data Folder": "Eliminar carpeta de datos", + "Dependencies": "Dependencias", + "Derivation Indexes": "Índices de derivación", + "Details": "Detalles", + "Developer Mode": "Modo desarrollador", + "Developer Resources": "Recursos para desarrolladores", + "Developer mode enables advanced and experimental features": "El modo Desarrollador activa funciones avanzadas y experimentales", + "Difficulty": "Dificultad", + "Dimensions": "Dimensiones", + "Disable Window Frame": "Deshabilitar marco de ventana", + "Disable password safety rules": "Deshabilitar reglas de seguridad de contraseñas", + "Disabled": "Desactivado", + "Disables node connectivity (Offline Mode).": "Desactiva la conectividad del nodo (modo fuera de linea)", "Discord": "Discord", - "Donations": "기부", - "Double click on the graph to re-center...": "그래프를 다시 중앙에 배치하려면 두 번 클릭하십시오...", + "Donations": "Donaciones", + "Double click on the graph to re-center...": "Haz doble clic en el gráfico para volver a centrar", "ECDSA": "ECDSA", - "Enable Market Monitor": "시장 모니터 활성화", - "Enable UPnP": "UPnP 활성화", - "Enable custom daemon arguments": "사용자 정의 데몬 인수 활성화", - "Enable experimental features": "실험적 기능 활성화", - "Enable gRPC": "gRPC 활성화", - "Enable optional BIP39 passphrase": "선택적 BIP39 패스프레이즈 활성화", - "Enable screen capture": "스크린 캡처 활성화", - "Enables features currently in development": "현재 개발 중인 기능을 활성화합니다", - "Enter": "입력", - "Enter account name (optional)": "계정 이름 입력 (선택 사항)", - "Enter first account name": "첫 번째 계정 이름 입력", - "Enter phishing hint": "사기 힌트 입력", - "Enter the amount": "금액 입력", - "Enter the password for your wallet": "지갑 비밀번호 입력", - "Enter the password to unlock your wallet": "지갑 잠금 해제 비밀번호 입력", - "Enter wallet name": "지갑 이름 입력", - "Enter wallet password": "지갑 비밀번호 입력", - "Enter your wallet secret": "지갑 비밀번호 입력", - "Explorer": "탐색기", - "Export Wallet Data": "지갑 데이터 내보내기", - "Faucet": "수도꼭지", - "File Handles": "파일 핸들", - "Filename:": "파일 이름:", - "Final Amount:": "최종 금액:", - "GitHub Release": "GitHub 릴리스", - "Go to Settings": "설정으로 이동", - "Handles": "핸들", - "Headers": "헤더", + "Economic": "Económico", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Económico: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Activar Monitor del Mercado", + "Enable UPnP": "Activar UPnP", + "Enable custom daemon arguments": "Activar argumentos del daemon personalizado", + "Enable experimental features": "Activar funciones experimentales", + "Enable gRPC": "Activar gRPC", + "Enable optional BIP39 passphrase": "Habilitar clave de seguridad opcional BIP39", + "Enable screen capture": "Habilitar captura de pantalla", + "Enables features currently in development": "Habilita funciones actualmente en desarrollo", + "Enter": "Intro", + "Enter BIP39 passphrase": "Introducir frase de paso BIP39", + "Enter account name (optional)": "Introduce un nombre de cuenta (opcional)", + "Enter destination address": "Introduzca dirección destino", + "Enter first account name": "Introduce el primer nombre de cuenta", + "Enter mnemonic": "Introduce el mnemónico", + "Enter password to decrypt this wallet file": "Introduzca contraseña para desencriptar fichero de billetera", + "Enter phishing hint": "Introduce una pregunta de seguridad", + "Enter priority fees": "Introduzca prioridad de comisiones", + "Enter the amount": "Introduce la cantidad", + "Enter the password for your wallet": "Introduce la contraseña para tu billetera", + "Enter the password to unlock your wallet": "Introduce la contraseña para desbloquear tu billetera", + "Enter wallet name": "Introduce el nombre de la billetera", + "Enter wallet password": "Introduce la contraseña de la billetera", + "Enter your wallet secret": "Introduce la clave secreta de tu billetera", + "Enter {suffix} amount to send": "Introduzca {suffix} cantidad para enviar", + "Error": "Error", + "Error importing a wallet": "Error importando billetera", + "Error processing mnemonic: {err}": "Error procesando mnemónico: {err}", + "Exit Full Screen": "Salir de pantalla completa", + "Explorer": "Explorador", + "Export Wallet Data": "Exportar Datos de la Billetera", + "FIRST": "PRIMERO", + "Faucet": "Faucet", + "Fee Market": "Tarifa de Mercado", + "Fee Market & Network Pressure": "Tarifa de Mercado & Presión de Red", + "Fee Market Only": "Tarifa de Mercado Solo", + "File Handles": "Manejadores de Ficheros", + "File contents": "Contenidos del fichero", + "Filename:": "Nombre del Fichero:", + "Final Amount:": "Cantidad Final:", + "Final Amount: {amount}": "Cantidad Final: {amount}", + "For decrypting uploaded file please enter wallet secret.": "Para desencriptar el fichero subido por favor introduzca la clave secreta", + "Full Screen": "Pantalla completa", + "Generate New Change Address": "Generar Nueva Dirección de Cambio", + "Generate New Receive Address": "Generar Nueva Dirección de Recepeción", + "GitHub Release": "Versión de GitHub", + "Go to Settings": "Ir a Configuración", + "Good": "Correcto", + "Handles": "Manejadores", + "Headers": "Cabeceras", + "High": "Alto", "IBD:": "IBD:", - "If not specified, the account will be represented by the numeric id.": "지정되지 않은 경우, 계정은 숫자 ID로 표시됩니다.", - "If you are running locally, use: ": "로컬에서 실행 중이라면 다음을 사용하십시오: ", - "Import existing": "기존 것 가져오기", - "Inbound": "수신", - "Include QoS Priority Fees": "QoS 우선 순위 수수료 포함", - "Integrated Daemon": "통합된 데몬", - "Invalid daemon arguments": "유효하지 않은 데몬 인수", - "Invalid network type - expected: testnet-10 connected to: testnet-11": "잘못된 네트워크 유형 - 예상: testnet-10이 연결된 것: testnet-11", - "Invalid wRPC URL": "잘못된 wRPC URL", - "Json Active Connections": "Json 활성 연결", - "Json Connection Attempts": "Json 연결 시도", - "Json Handshake Failures": "Json 핸드셰이크 실패", - "Kaspa Discord": "Kaspa Discord", - "Kaspa Integration Guide": "Kaspa 통합 가이드", + "If not specified, the account will be represented by the numeric id.": "Si no se especifica, la cuenta se representará por su id numérico", + "If you are running locally, use: ": "Si está ejecutando localmente, usar:", + "Import Existing Private Key": "Importar Clave Privada Existente", + "Import existing": "Importar existente", + "Import existing file": "Importar fichero existente", + "Importing Legacy Wallet": "Importando Billetera Antigua", + "Importing Wallet": "Importando Billetera", + "Importing Wallet File": "Importando Fichero de Billetera", + "Inbound": "Entrante", + "Integrated Daemon": "Daemon integrado", + "Invalid amount:": "Cantidad inválida:", + "Invalid daemon arguments": "Argumentos del daemon no válidos", + "Invalid fee amount:": "Cantidad de tarifa inválida:", + "Invalid wRPC URL": "URL wRPC inválida", + "Json Active Connections": "Conexiones Json Activas", + "Json Connection Attempts": "Intentos de Conexión Json", + "Json Handshake Failures": "Fallos de Handshake Json", + "Kaspa Discord": "Discord de Kaspa", + "Kaspa Integration Guide": "Guía de Integración Kaspa", "Kaspa NG": "Kaspa NG", - "Kaspa NG Online": "Kaspa NG 온라인", - "Kaspa NG Web App": "Kaspa NG 웹 앱", - "Kaspa NG on GitHub": "GitHub의 Kaspa NG", - "Kaspa NG online": "Kaspa NG 온라인", - "Kaspa Network": "Kaspa 네트워크", - "Kaspa Node": "Kaspa 노드", - "Kaspa p2p Network & Node Connection": "Kaspa p2p 네트워크 및 노드 연결", - "Kaspa p2p Node": "Kaspa p2p 노드", - "Kaspa p2p Node & Connection": "Kaspa p2p 노드 및 연결", - "Key Perf.": "주요 성능", - "Language:": "언어:", - "Large (1 BPS)": "큰 (1 BPS)", - "Levels": "레벨", - "License Information": "라이선스 정보", - "Local": "로컬", - "Local p2p Node Configuration": "로컬 p2p 노드 구성", - "Logs": "로그", + "Kaspa NG on GitHub": "Kaspa NG en GitHub", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Red Kaspa", + "Kaspa Node": "Nodo Kaspa", + "Kaspa p2p Network & Node Connection": "Red p2p de Kaspa & Nodo de Conexión", + "Kaspa p2p Node": "Nodo p2p de Kaspa", + "Kaspa p2p Node & Connection": "Nodo & conexión p2p de Kaspa", + "Key Perf.": "Indicadores Clave", + "LAST": "ÚLTIMO", + "Language:": "Idioma:", + "Large (1 BPS)": "Grande (1 BPS)", + "Legacy 12 word mnemonic": "Mnemotécnica de 12 palabras antigua", + "Levels": "Niveles", + "License Information": "Información de Licencia", + "Local": "Local", + "Local p2p Node Configuration": "Configuración Local Nodo p2p", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Logs", + "Low": "Baja", + "Low-priority": "Baja-prioridad", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Baja: {low} SOMPI/g; ~{low_kas}/tx", "MT": "MT", - "Main Kaspa network": "Main Kaspa 네트워크", + "Main Kaspa network": "Red Principal de Kaspa", "Mainnet": "Mainnet", - "Mainnet (Main Kaspa network)": "Mainnet (Main Kaspa 네트워크)", - "Managed by the Rusty Kaspa daemon": "Rusty Kaspa 데몬에 의해 관리됨", - "Market": "시장", - "Market Cap": "시가 총액", - "Market Monitor": "시장 모니터", - "Mass Processed": "대량 처리됨", - "Medium Narrow": "중간 좁음", - "Medium Wide": "중간 넓음", - "Memory": "메모리", - "Mempool": "메모리 풀", - "Mempool Size": "메모리 풀 크기", - "Metrics": "메트릭스", - "Metrics are not currently available": "메트릭스를 현재 사용할 수 없습니다", - "NPM Modules for NodeJS": "NodeJS용 NPM 모듈", - "Network": "네트워크", - "Network Difficulty": "네트워크 난이도", - "Network Fees:": "네트워크 수수료:", - "Network Interface": "네트워크 인터페이스", - "Network Peers": "네트워크 피어", - "No peers": "피어 없음", - "No public node selected - please select a public node": "공개 노드가 선택되지 않았습니다 - 공개 노드를 선택하세요", - "No transactions": "거래 없음", - "No wallets found, please create a new wallet": "지갑을 찾을 수 없습니다, 새 지갑을 만드세요", - "Node": "노드", - "Node Status": "노드 상태", - "Noise": "노이즈", - "None": "없음", - "Not Connected": "연결되지 않음", - "Not connected": "연결되지 않음", - "Notifications": "알림", - "Open Data Folder": "데이터 폴더 열기", - "Opening wallet:": "지갑 열기 중:", - "Optional": "선택 사항", - "Other operations": "기타 작업", - "Outbound": "아웃바운드", - "Overview": "개요", - "Parents": "부모", - "Past Median Time": "과거 중앙 시간", - "Payment & Recovery Password": "결제 및 복구 비밀번호", - "Payment Request": "결제 요청", - "Peers": "피어", - "Performance": "성능", - "Phishing Hint": "사기 힌트", - "Ping:": "핑:", - "Please Confirm Deletion": "삭제를 확인하세요", - "Please configure your Kaspa NG settings": "Kaspa NG 설정을 구성하세요", - "Please connect to Kaspa p2p node": "Kaspa p2p 노드에 연결하세요", - "Please create a stronger password": "더 강력한 비밀번호를 만드세요", - "Please enter": "입력하세요", - "Please enter KAS amount to send": "전송할 KAS 금액을 입력하세요", - "Please enter an amount": "금액을 입력하세요", - "Please enter the account name": "계정 이름을 입력하세요", - "Please enter the wallet secret": "지갑 비밀번호를 입력하세요", - "Please note that this is a beta release. Until this message is removed, please avoid using the wallet with mainnet funds.": "이것은 알파 릴리스임을 참고하세요. 이 메시지가 제거될 때까지 메인넷 자금을 사용하지 않도록 주의하세요.", - "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "주의: 클립보드로 복사하는 것은 악성 코드에게 당신의 니모닉을 노출시킬 위험을 가지고 있습니다.", - "Please select an account type": "계정 유형을 선택하세요", - "Please select the private key to export": "내보낼 개인 키를 선택하세요", - "Please set node to 'Disabled' to delete the data folder": "데이터 폴더를 삭제하려면 노드를 '비활성'으로 설정하세요", - "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "기본 계정의 이름을 지정하세요. 지갑은 기본 계정으로 생성됩니다. 생성된 후 필요한 만큼 추가 계정을 만들 수 있습니다.", - "Please specify the name of the new wallet": "새 지갑의 이름을 지정하세요", - "Please specify the private key type for the new wallet": "새 지갑의 개인 키 유형을 지정하세요", - "Please wait for the node to sync or connect to a remote node.": "노드가 동기화되거나 원격 노드에 연결될 때까지 기다리세요.", - "Please wait for the node to sync...": "노드가 동기화될 때까지 기다리세요...", - "Please wait...": "잠시 기다려주세요...", - "Presets": "프리셋", - "Price": "가격", - "Private Key Mnemonic": "개인 키 니모닉", - "Processed Bodies": "처리된 본문", - "Processed Dependencies": "처리된 종속성", - "Processed Headers": "처리된 헤더", - "Processed Mass Counts": "처리된 대량 카운트", - "Processed Transactions": "처리된 거래", - "Protocol:": "프로토콜:", - "Public Node": "공개 노드", - "Public Nodes": "공개 노드", - "Public Server": "공개 서버", - "Public p2p Nodes for": "공개 p2p 노드:", - "Random Public Node": "랜덤 공개 노드", - "Range:": "범위:", - "Receive Address": "수신 주소", - "Recommended arguments for the remote node: ": "원격 노드에 대한 권장 인수: ", - "Redistributables": "재배포 가능", - "Remote": "원격", - "Remote Connection:": "원격 연결:", - "Remote p2p Node Configuration": "원격 p2p 노드 구성", - "Removes security restrictions, allows for single-letter passwords": "보안 제한 사항을 제거하고 한 글자 비밀번호를 허용합니다", - "Reset Settings": "설정 초기화", - "Reset VSPC": "VSPC 재설정", - "Resident Memory": "상주 메모리", - "Resources": "리소스", - "Resulting daemon arguments:": "결과 데몬 인수:", - "Rust Wallet SDK": "Rust Wallet SDK", - "Rusty Kaspa on GitHub": "GitHub의 Rusty Kaspa", - "Secret is too weak": "비밀이 너무 약합니다", - "Secret score:": "비밀 점수:", - "Select Account": "계정 선택", - "Select Available Server": "사용 가능한 서버 선택", - "Select Private Key Type": "개인 키 유형 선택", - "Select Public Node": "공개 노드 선택", - "Select Wallet": "지갑 선택", - "Select a wallet to unlock": "잠금 해제할 지갑 선택", - "Send": "전송", - "Services": "서비스", - "Settings": "설정", - "Show DAA": "DAA 보기", - "Show Grid": "그리드 보기", - "Show VSPC": "VSPC 보기", - "Show balances in alternate currencies for testnet coins": "테스트넷 코인에 대한 대체 통화 잔액 표시", - "Show password": "비밀번호 보기", - "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "메인넷과 같은 것처럼 테스트넷 코인을 사용할 때 대체 통화(BTC, USD)의 잔액 표시", - "Skip": "건너뛰기", - "Small (10 BPS)": "작게 (10 BPS)", - "Spread": "스프레드", - "Stage": "단계", - "Starting...": "시작 중...", - "Statistics": "통계", - "Stor Read": "Stor 읽기", - "Stor Write": "Stor 쓰기", - "Storage": "저장소", - "Storage Read": "저장소 읽기", - "Storage Read/s": "초당 저장소 읽기", - "Storage Write": "저장소 쓰기", - "Storage Write/s": "초당 저장소 쓰기", - "Submitted Blocks": "제출된 블록", - "Supporting Kaspa NG development": "Kaspa NG 개발 지원", - "Syncing Cryptographic Proof...": "암호화 증명 동기화 중...", - "Syncing DAG Blocks...": "DAG 블록 동기화 중...", - "Syncing Headers...": "헤더 동기화 중...", - "Syncing UTXO entries...": "UTXO 항목 동기화 중...", - "Syncing...": "동기화 중...", - "System": "시스템", - "TPS": "TPS", - "Testnet 10": "테스트넷 10", - "Testnet 10 (1 BPS)": "테스트넷 10 (1 BPS)", - "Testnet 11": "테스트넷 11", - "Testnet 11 (10 BPS)": "테스트넷 11 (10 BPS)", - "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.": "테스트넷 11은 아직 공개 테스트로 활성화되지 않았습니다. 그러나 설정 패널에서 노드를 개인 개발자 테스트넷에 연결할 수 있습니다.", - "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Kaspa NG 소프트웨어는 Kaspa BlockDAG 암호화폐 네트워크에 헌신된 최첨단 소프트웨어 플랫폼을 구축하기 위한 지속적인 노력을 대표합니다. 핵심적으로 이 소프트웨어는 보안, 개인 정보 보호, 성능 및 분산화를 우선시합니다.", - "The balance may be out of date during node sync": "노드 동기화 중에는 잔액이 오래되었을 수 있습니다.", - "The following will guide you through the process of creating or importing a wallet.": "다음은 지갑을 생성하거나 가져오는 과정을 안내합니다.", - "The node is currently syncing with the Kaspa p2p network.": "노드는 현재 Kaspa p2p 네트워크와 동기화 중입니다.", - "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "노드는 현재 Kaspa p2p 네트워크와 동기화 중입니다. 계정 잔액이 오래되었을 수 있습니다.", - "The node is spawned as a child daemon process (recommended).": "노드는 자식 데몬 프로세스로 생성됩니다 (권장됨).", - "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "노드는 Kaspa-NG 애플리케이션 프로세스의 일부로 실행됩니다. 이는 통신 오버헤드를 줄입니다 (실험적).", - "Theme Color": "테마 색상", - "Theme Color:": "테마 색상:", - "Theme Style": "테마 스타일", - "Theme Style:": "테마 스타일:", - "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "이 지갑은 수동으로 개인 키 복구를 시작하지 않는 한 이 니모닉 구절을 요청하지 않습니다.", - "Threshold": "임계 값", - "Time Offset:": "시간 오프셋:", - "Tip Hashes": "팁 해시", - "Tools ⏷": "도구 ⏷", - "Total Rx": "총 Rx", - "Total Rx/s": "총 Rx/s", - "Total Tx": "총 Tx", - "Total Tx/s": "총 Tx/s", - "Track in the background": "백그라운드에서 추적", - "Transactions": "거래", - "Transactions:": "거래:", - "Type": "유형", - "UTXO Manager": "UTXO 관리자", - "UTXOs": "UTXOs", - "UTXOs:": "UTXOs:", - "Unable to change node settings until the problem is resolved": "문제가 해결될 때까지 노드 설정을 변경할 수 없습니다", - "Unlock": "잠금 해제", - "Unlock Wallet": "지갑 잠금 해제", - "Unlocking": "잠금 해제 중", - "Update Available to version": "버전으로 업데이트 가능", - "Updating...": "업데이트 중...", - "Uptime:": "가동 시간:", - "Use 50%-75% of available system memory": "사용 가능한 시스템 메모리의 50%-75% 사용", - "Use all available system memory": "모든 사용 가능한 시스템 메모리 사용", - "User Agent": "사용자 에이전트", - "User Interface": "사용자 인터페이스", - "Very dangerous (may be cracked within few seconds)": "매우 위험함 (몇 초 내에 크랙될 수 있음)", - "Virt Parents": "가상 부모", - "Virtual DAA Score": "가상 DAA 점수", - "Virtual Memory": "가상 메모리", - "Virtual Parent Hashes": "가상 부모 해시", - "Volume": "볼륨", - "WASM SDK for JavaScript and TypeScript": "JavaScript 및 TypeScript용 WASM SDK", - "Wallet": "지갑", - "Wallet Created": "지갑이 생성되었습니다", - "Wallet Encryption Password": "지갑 암호화 비밀번호", - "Wallet Name": "지갑 이름", - "Wallet Secret": "지갑 비밀", - "Wallet password is used to encrypt your wallet data.": "지갑 비밀번호는 지갑 데이터를 암호화하는 데 사용됩니다.", - "Wallet:": "지갑:", - "We greatly appreciate your help in backing our efforts.": "저희의 노력을 지원해 주셔서 감사합니다.", - "Welcome to Kaspa NG": "Kaspa NG에 오신 것을 환영합니다", - "Xpub Keys": "Xpub 키", - "You are currently not connected to the Kaspa node.": "현재 Kaspa 노드에 연결되어 있지 않습니다.", - "You can configure remote connection in Settings": "설정에서 원격 연결을 구성할 수 있습니다", - "You can create multiple wallets, but only one wallet can be open at a time.": "여러 지갑을 만들 수 있지만 한 번에 하나의 지갑만 열 수 있습니다.", - "You must be connected to a node...": "노드에 연결되어 있어야 합니다...", - "Your default wallet private key mnemonic is:": "기본 지갑의 개인 키 니모닉은 다음과 같습니다:", - "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "니모닉 구절을 사용하면 개인 키를 다시 만들 수 있습니다. 이 니모닉에 액세스 권한이 있는 사람은 해당 내에 저장된 Kaspa를 완전히 제어할 수 있습니다. 니모닉을 안전하게 보관하세요. 적어두고 안전한 곳에 보관하십시오. 가능한 경우 화재로부터 안전한 위치에 보관하십시오. 니모닉을 이 컴퓨터나 모바일 기기에 저장하지 마십시오. 이 지갑은 수동으로 개인 키 복구를 시작하지 않는 한 이 니모닉 구절을 요청하지 않습니다.", - "Your private key mnemonic is:": "개인 키 니모닉은 다음과 같습니다:", - "Your wallet has been created and is ready to use.": "지갑이 생성되었으며 사용할 준비가 되었습니다.", - "Zoom": "확대", - "amount to send": "보낼 금액", - "bye!": "안녕!", - "gRPC Network Interface & Port": "gRPC 네트워크 인터페이스 및 포트", - "gRPC Rx": "gRPC 수신", - "gRPC Rx/s": "gRPC 수신/s", - "gRPC Tx": "gRPC 전송", - "gRPC Tx/s": "gRPC 전송/s", - "of": "의", - "p2p RPC": "p2p RPC", - "p2p Rx": "p2p 수신", - "p2p Rx/s": "p2p 수신/s", - "p2p Tx": "p2p 전송", - "p2p Tx/s": "p2p 전송/s", - "peer": "피어", - "peers": "피어들", - "wRPC Borsh Rx": "wRPC Borsh 수신", - "wRPC Borsh Rx/s": "wRPC Borsh 수신/s", - "wRPC Borsh Tx": "wRPC Borsh 전송", - "wRPC Borsh Tx/s": "wRPC Borsh 전송/s", - "wRPC Connection Settings": "wRPC 연결 설정", - "wRPC Encoding:": "wRPC 인코딩:", - "wRPC JSON Rx": "wRPC JSON 수신", - "wRPC JSON Rx/s": "wRPC JSON 수신/s", - "wRPC JSON Tx": "wRPC JSON 전송", - "wRPC JSON Tx/s": "wRPC JSON 전송/s", - "wRPC URL:": "wRPC URL:" - }, - "lt": {}, - "mn": {}, - "nb": {}, - "nl": { - "1 BPS test network": "1 BPS testnetwerk", - "10 BPS test network": "10 BPS testnetwerk", - "12 word mnemonic": "12 word mnemonic", - "24 word mnemonic": "24-woordige mnemonische code of zin", - "24h Change": "24h Change", - "A binary at another location is spawned a child process (experimental, for development purposes only).": "Een binair bestand op een andere locatie genereert een 'childprocess' (experimenteel, alleen voor ontwikkelingsdoeleinden).", - "A random node will be selected on startup": "A random node will be selected on startup", - "A wallet is stored in a file on your computer.": "A wallet is stored in a file on your computer.", - "Account Index": "Account Index", - "Account Name": "Account Name", - "Account:": "Account:", - "Activate custom daemon arguments": "Activeer custom daemon arguments", - "Active p2p Peers": "Actieve p2p Peers", - "Address derivation scan": "Address derivation scan", - "Address:": "Address:", - "Advanced": "Geavanceerd", - "All": "Alle", - "Allow custom arguments for the Rusty Kaspa daemon": "Allow custom arguments for the Rusty Kaspa daemon", - "Allows you to take screenshots from within the application": "Hiermee kun je schermafbeeldingen maken vanuit de applicatie.", - "Apply": "Toepassen", - "Balance: N/A": "Balance: N/A", - "Bandwidth": "Bandwidth", - "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Vanwege de focus op beveiliging en prestaties is deze software volledig ontwikkeld in Rust, wat aanzienlijk meer tijd en moeite vergt in vergelijking met andere traditionele moderne webgestuurde software.", - "Bezier Curves": "Bezier Curves", - "Block DAG": "Block DAG", - "Block Scale": "Block Scale", - "Blocks": "Blocks", - "Bodies": "Bodies", - "Borsh Active Connections": "Borsh Active Connections", - "Borsh Connection Attempts": "Borsh Verbindingspogingen", - "Borsh Handshake Failures": "Borsh Handshake Failures", - "Build": "Build", - "CONNECTED": "CONNECTED", - "CPU": "CPU", - "Cache Memory Size:": "Cachegeheugen grootte:", - "Cancel": "Cancel", - "Cannot delete data folder while the node is running": "Kan de gegevensmap niet verwijderen terwijl de node aan het draaien is.", - "Capture a screenshot": "Een schermafbeelding maken", - "Center VSPC": "Center VSPC", - "Chain Blocks": "Chain Blocks", - "Change Address": "Wisseladres", - "Check for Software Updates on GitHub": "Check for Software Updates on GitHub", - "Check for Updates": "Controleren op updates", - "Clear": "Leegmaken", - "Click to try another server...": "Click to try another server...", - "Client RPC": "Client RPC", - "Close": "Close", - "Confirm wallet password": "Confirm wallet password", - "Connect to a local node (localhost)": "Verbind met een lokale node (localhost)", - "Connecting to": "Connecting to", - "Connection": "Connection", - "Connections": "Verbindingen", - "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connects to a Remote Rusty Kaspa Node via wRPC.", - "Conservative": "Conservative", - "Continue": "Continue", - "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.": "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.", - "Copied to clipboard": "Copied to clipboard", - "Copy": "Copy", - "Copy logs to clipboard": "Copy logs to clipboard", - "Create New Account": "Create New Account", - "Create New Wallet": "Create New Wallet", - "Create new wallet": "Create new wallet", - "Creating Account": "Account aanmaken", - "Creating Wallet": "Wallet aanmaken", - "Custom": "Custom", - "Custom Public Node": "Custom Public Node", - "Custom arguments:": "Custom arguments:", - "DAA": "DAA", - "DAA Offset": "DAA Offset", - "DAA Range": "DAA Range", - "DB Blocks": "DB Blocks", - "DB Headers": "DB Headers", - "Database Blocks": "Database Blocks", - "Database Headers": "Database Headers", - "Decrypting wallet, please wait...": "Wallet aan het ontsleutelen, even geduld ...", - "Default": "Standaard", - "Default Account Name": "Default Account Name", - "Delete Data Folder": "Delete Data Folder", - "Dependencies": "Dependencies", - "Derivation Indexes": "Derivation Indexes", - "Details": "Details", - "Developer Mode": "Developer Mode", - "Developer Resources": "Developer Resources", - "Developer mode enables advanced and experimental features": "Developer mode enables advanced and experimental features", - "Difficulty": "Moeilijkheid", - "Dimensions": "Dimensions", - "Disable password score restrictions": "Disable password score restrictions", - "Disabled": "Uitgeschakeld", - "Disables node connectivity (Offline Mode).": "Disables node connectivity (Offline Mode).", - "Discord": "Discord", - "Donations": "Donations", - "Double click on the graph to re-center...": "Double click on the graph to re-center...", - "ECDSA": "ECDSA", - "Enable Market Monitor": "Enable Market Monitor", - "Enable UPnP": "Enable UPnP", + "Managed by the Rusty Kaspa daemon": "Gestionado por el daemon de Rusty Kaspa", + "Market": "Mercado", + "Market Cap": "Cap. de Mercado", + "Market Monitor": "Monitor de Mercado", + "Mass Processed": "Procesado Masivo", + "Mass:": "Peso:", + "Mass: {number}g": "Peso: {number}g", + "Maximize window": "Maximizar ventana", + "Medium Narrow": "Medio Estrecho", + "Medium Wide": "Medio Ancho", + "Memory": "Memoria", + "Mempool": "Pool de memoria", + "Mempool Size": "Tamaño Pool Memoria", + "Metrics": "Métricas", + "Metrics are not currently available": "Las métricas no están disponibles actualmente", + "Miner Fee": "Tarifa del Minero", + "Minimize the window": "Minimizar ventana", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Importar Mnemónico", + "NEXT": "SIGUIENTE", + "NO NAME": "SIN NOMBRE", + "NPM Modules for NodeJS": "Módulos NPM para NodeJS", + "Network": "Red", + "Network Difficulty": "Complejidad de Red", + "Network Fee Estimator": "Simulador de Tarifa de Red", + "Network Interface": "Interfaz de Red", + "Network Peers": "Usuarios de Red", + "Network Pressure: ~{number}%": "Presión de Red: ~{number}%", + "Never share your mnemonic with anyone!": "¡Nunca reveles tu mnemónico a nadie!", + "No peers": "Sin usuarios", + "No public node selected - please select a public node": "Ningún nodo público seleccionado - por favor seleccione un nodo público", + "No transactions": "Sin transacciones", + "No wallets found, please create a new wallet": "No se encontraron billeteras, por favor cree una nueva", + "Node": "Nodo", + "Node Status": "Status del Nodo:", + "Noise": "Ruido", + "None": "Ninguno", + "Normal": "Normal", + "Not Connected": "No Conectado", + "Not connected": "No conectado", + "Notifications": "Notificaciones", + "Open Data Folder": "Abrir Carpeta de Datos", + "Opening wallet:": "Abriendo billetera:", + "Optional": "Opcional", + "Options": "Opciones", + "Other operations": "Otras operaciones", + "Outbound": "Saliente", + "Overview": "Visión General", + "PREV": "ANTERIOR", + "Parents": "Padres", + "Passive Sync": "Sincroniz. Pasiva", + "Passphrase is too weak": "Clave de seguridad demasiado débil", + "Passphrases do not match": "Las claves de seguridad no coinciden", + "Passwords do not match": "Las contraseñas no coinciden", + "Past Median Time": "Mediana de Tiempo", + "Payment & Recovery Password": "Contraseña de Pagos y Recuperación", + "Payment Request": "Solicitud de Pago", + "Payment request to account: {account}": "Pago requerido a la cuenta: {account}", + "Peers": "Usuarios", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Rendimiento", + "Phishing Hint": "Pregunta de Seguridad", + "Ping:": "Ping:", + "Please Confirm Deletion": "Por favor Confirme la Eliminación", + "Please configure your Kaspa NG settings": "Por favor configure sus parámetros de Kaspa NG", + "Please connect to Kaspa p2p node": "Por favor conéctese a un nodo p2p de Kaspa", + "Please create a stronger password": "Por favor cree una contraseña más segura", + "Please enter a valid address: {err}": "Por favor introduzca una dirección válida: {err}", + "Please enter a valid amount of KAS": "Por facor introduzca una cantidad válida de KAS", + "Please enter additional {amount} words": "Por favor introduzca {amount} palabras adicionales", + "Please enter an amount": "Por favor introduzca una cantidad ", + "Please enter mnemonic comprised of {number} words": "Por favor introduzca un mnemónico compuesto de {number} palabras", + "Please enter the account name": "Por favor introduzca el nombre de la cuenta", + "Please enter the wallet secret": "Por favor introduzca la clave secreta de la billetera", + "Please enter {suffix} amount to send": "Por favor introduzca {suffix} cantidad para enviar", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Por favor, considere que copiar al portapapeles conlleva un riesgo de exponer su mnemotécnica a malware.", + "Please select 'Apply' and restart the application.": "Por favor seleccione 'Aplicar' y reinicie la aplicación.", + "Please select account to scan": "Por favor seleccione una cuenta para escanear", + "Please select an account type": "Por favor seleccione un tipo de cuenta", + "Please select export type": "Por favor selección el tipo de exportación", + "Please select the private key to export": "Por favor, seleccione la clave privada a exportar", + "Please select the private key type you would like to import in the new wallet": "Por favor seleccione el tipo de clave privada que le gustaría importar a una billetera nueva", + "Please set node to 'Disabled' to delete the data folder": "Por favor configure el nodo como 'Deshabilitado' para borrar la carpeta de datos", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Por favor, especifique el nombre de la cuenta por defecto. La billetera se creará con una cuenta por defecto. Una vez creada, podrá crear tantas cuentas adicionales como necesite.", + "Please specify the name of the new wallet": "Por favor, especifique el nombre de la nueva billetera.", + "Please specify the private key type for the new wallet": "Por favor, especifique el tipo de clave privada para la nueva billetera", + "Please support Kaspa NG development": "Por favor apoye al desarrollo de Kaspa NG", + "Please wait for the node to sync or connect to a remote node.": "Por favor, espere a que el nodo se sincronice o conecte con un nodo remoto.", + "Please wait for the node to sync...": "Por favor espere a que el nodo se sincronice...", + "Please wait...": "Por favor espere...", + "Presets": "Config.", + "Price": "Precio", + "Priority": "Prioridad", + "Priority Fee Estimator": "Estimador Tarifa de Prioridad", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Prioridad: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Clave privada Mnemotécnica", + "Private key mnemonic stored in this wallet": "Clave privada mnemónica almacenada en esta billetera", + "Processed Bodies": "Cuerpos Procesados", + "Processed Dependencies": "Dependencias Procesadas", + "Processed Headers": "Cabeceras Procesadas", + "Processed Mass Counts": "Cuentas de Procesados Masivos", + "Processed Transactions": "Transacciones Procesadas", + "Processing...": "Procesando...", + "Protocol:": "Protocolo:", + "Public Node": "Nodo Público:", + "Public wRPC (Borsh)": "wRPC Público (Borsh)", + "Quit": "Salir", + "Random Public Node": "Nodo Público Aleatorio", + "Range:": "Rango:", + "Receive Address": "Dirección de Recepción:", + "Recommended arguments for the remote node: ": "Parámetros recomendados para el nodo remoto:", + "Redistributables": "Redistribuibles ", + "Remote": "Remoto", + "Remote Connection:": "Conexión Remota:", + "Remote p2p Node Configuration": "Configuración del Nodo p2p Remoto", + "Removes security restrictions, allows for single-letter passwords": "Elimina restricciones de seguridad, permite contraseñas sencillas, sólo letras", + "Reset Settings": "Reiniciar Ajustes", + "Reset VSPC": "Reiniciar VSPC", + "Resident Memory": "Memoria Residente", + "Resources": "Recursos", + "Restart": "Reiniciar", + "Restore window": "Restaurar ventana", + "Resulting daemon arguments:": "Argumentos del daemon arrojados:", + "Rust Wallet SDK": "SDK Billetera Rust", + "Rusty Kaspa on GitHub": "Rusty Kaspa en GitHub", + "Scanner": "Escaner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Escaneado completo...", + "Secret is too weak": "La clave secreta es demasiado débil", + "Secret score:": "Puntuación de la clave secreta:", + "Select Account": "Selecciona Cantidad", + "Select Private Key Type": "Seleccione Tipo de Clave Privada", + "Select Public Node": "Seleccione Nodo Público ", + "Select Wallet": "Seleccione Billetera", + "Select a wallet to unlock": "Seleccione una billetera para desbloquear", + "Select file...": "Seleccionar fichero...", + "Select this option if your wallet was created": "Seleccione esta opción si tu billetera fue creada", + "Send": "Enviar", + "Sending funds": "Enviando fondos", + "Sending funds without priority fees will result in long transaction wait times.": "El envío de fondos sin tarifas de prioridad resultará en mayores tiempos de espera.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Servicios", + "Settings": "Configuración", + "Show DAA": "Mostrar DAA", + "Show Grid": "Mostrar Rejilla", + "Show VSPC": "Mostrar VSPC", + "Show balances in alternate currencies for testnet coins": "Mostrar saldos en divisas alternativas para las monedas en testnet", + "Show passphrase": "Mostrar clave de seguridad", + "Show password": "Mostrar contraseña", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Mostrar saldos en divisas alternativas (BTC, USD) cuando se usen monedas en testnet como si estuviera en mainnet", + "Skip": "Omitir", + "Small (10 BPS)": "Pequeño (10 BPS)", + "Spread": "Propagación", + "Stage": "Fase", + "Starting...": "Iniciando...", + "Statistics": "Estadísticas", + "Stop": "Parar", + "Stor Read": "Lectura Alm.", + "Stor Write": "Escritura Alm.", + "Storage": "Almacenamiento", + "Storage Read": "Lectura Almacenamiento", + "Storage Read/s": "Lectura/s Almacenamiento", + "Storage Size": "Tamaño de Almacenamiento", + "Storage Write": "Escritura Almacenamiento", + "Storage Write/s": "Escritura/s Almacenamiento", + "Strong": "Fuerte", + "Submitted Blocks": "Bloques Enviados", + "Syncing Cryptographic Proof...": "Sincronizando Prueba Criptográfica...", + "Syncing DAG Blocks...": "Sincronizando Bloques DAG...", + "Syncing Headers...": "Sincronizando Cabeceras...", + "Syncing UTXO entries...": "Sincronizando entradas UTXO...", + "Syncing...": "Sincronizando...", + "System": "Sistema", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "KASPA NG representa el esfuerzo por construir una plataforma software de última generación dedicada a la red BlockDAG de Kaspa. Tal como su proyecto matriz, este software prioriza la seguridad, privacidad, rendimiento y descentralización.", + "The balance may be out of date during node sync": "El saldo puede estar desactualizado durante la sincronización del nodo", + "The following will guide you through the process of creating or importing a wallet.": "Le guiaremos en el proceso de creación o importación de una billetera.", + "The network is currently congested.": "La red está congestionada actualmente.", + "The node is currently syncing with the Kaspa p2p network.": "El nodo está actualmente sincronizándose con la red p2p de Kaspa.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "El nodo está actualmente sincronizándose con la red p2p de Kaspa. Los saldos de la cuenta pueden estar desactualizados.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "El nodo está actualmente sincronizando con la red p2p de Kaspa. Por favor espere mientrasel nodo se sincroniza", + "The node is spawned as a child daemon process (recommended).": "El nodo se ha creado como un proceso daemon dependiente (recomendado).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "El nodo se ejecuta como parte del proceso de la aplicación Kaspa-NG. Esto reduce un gasto excesivo en comunicación (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "El nodo se sincroniza en segundo plano mientras Kaspa-NG está conectado a un nodo público", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "El nodo se sincroniza en segundo plano mientras Kaspa-NG está conectado a un nodo público. Una vez el nodo quede sincronizado, puedes cambiar al modo 'Daemon integrado'", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "La clave de seguridad de recuperación opcional para pagos y mnemónico, conocido como clave de seguridad BIP39, si se configura, será utilizada para enviar pagos. Esta clave de seguridad será también necesaria de forma adicional a tu código mnemónico. Si pierdes u olvidas esta clave de seguridad, ¡no podrás usar el código mnemónico para recuperar tu billetera!", + "Theme Color": "Color del Tema", + "Theme Color:": "Color del Tema:", + "Theme Style": "Estilo del Tema", + "Theme Style:": "Estilo del Tema:", + "This option will transfer any discovered funds to the first change address of this account.": "Esta opción transferirá cualquiera de los fondos descubiertos a la primera dirección de cambio de esta cuenta.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Esta billetera nunca te solicitará esta frase mnemotécnica a menos que inicie manualmente una recuperación de la clave privada.", + "Threshold": "Umbral", + "Time Offset:": "Desplazamiento de Tiempo:", + "Timestamp: {timestamp}": "Marca de tiempo: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Muchas palabras en la", + "Tools": "Tools", + "Total Rx": "Rx Total", + "Total Rx/s": "Rx/s Total", + "Total Tx": "Tx Total", + "Total Tx/s": "Tx/s Total", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Rastrear en segundo plano", + "Transactions": "Transacciones", + "Transactions:": "Transacciones:", + "Transactions: {number}": "Transacciones: {number}", + "Transfer funds during scan": "Transferir fondos durante el escaneo", + "Type": "Tipo", + "URI copied to clipboard": "URI copiada al portapapeles", + "UTXO Manager": "Manager UTXO", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "No se puede cambiar la configuración del nodo hasta que se resuelva el problema", + "Unable to store settings": "Unable to store settings", + "Unlock": "Desbloquear", + "Unlock Wallet": "Desbloquear Billetera", + "Unlocking": "Desbloqueando", + "Update Available to version": "Actualizar Disponible a versión", + "Updating...": "Actualizando...", + "Uptime:": "Tiempo activo:", + "Use 50%-75% of available system memory": "Usar 50 %-75% de la memoria del sistema disponible", + "Use all available system memory": "Usar toda la memoria del sistema disponible", + "User Agent": "Agente de Usuario", + "User Interface": "Interfaz de Usuario", + "Very dangerous (may be cracked within few seconds)": "Muy peligroso (puede ser crackeado en unos pocos segundos)", + "Very strong": "Muy fuerte", + "Very weak": "Muy débil", + "Virt Parents": "Padres Virt", + "Virtual DAA Score": "Puntuación DAA Virtual", + "Virtual Memory": "Memoria Virtual", + "Virtual Parent Hashes": "Hashes Padres Virtuales", + "Volume": "Volumen", + "WASM SDK for JavaScript and TypeScript": "SDK WASM para JavaScript y TypeScript", + "Wallet": "Billetera", + "Wallet Created": "Billetera Creada", + "Wallet Encryption Password": "Contraseña de Encriptación de la Billetera", + "Wallet File Secret": "Clave Secreta del Fichero de Wallet", + "Wallet Name": "Nombre de la Billetera", + "Wallet Secret": "Clave Secreta de la Billetera", + "Wallet creation error:": "Error en la creación de la billetera:", + "Wallet decrypting error:": "Error desencriptando la billetera:", + "Wallet password is used to encrypt your wallet data.": "La contraseña de la billetera se usa para encriptar los datos de la billetera.", + "Wallet with this name already exists": "Ya existe una billetera con este nombre", + "Wallet:": "Billetera:", + "We greatly appreciate your help in backing our efforts.": "Agradecemos enormemente tu ayuda para recompensar nuestros esfuerzos.", + "Weak": "Débil", + "Welcome to Kaspa NG": "Bienvenidos a Kaspa NG", + "Xpub Keys": "Llaves Xpub", + "You are currently not connected to the Kaspa node.": "No está conectado actualmente al nodo Kaspa.", + "You can configure remote connection in Settings": "Puede configurar la conexión remota en Configuración", + "You can create multiple wallets, but only one wallet can be open at a time.": "Puede crear múltiples billeteras, pero sólo una puede estar abierta a la vez", + "You must be connected to a node...": "Debe estar conectado a un nodo...", + "Your default wallet private key mnemonic is:": "Tu clave privada mnemotécnica por defecto es:", + "Your mnemonic is protected with a bip39 passphrase": "Tu código mnemónico está protegido con una clave de seguridad BIP39", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Su frase mnemotécnica permite recrear su clave privada. Cualquier persona que tenga acceso a esta frase mnemotécnica, tendrá control total sobre el Kaspa almacenada en ella. Mantenga su frase mnemotécnica a salvo. Escríbala y guárdela en un lugar seguro, preferiblemente en un lugar ignífugo. No guarde su frase mnemotécnica en un ordenador o dipositivo móvil. Esta billetera nunca le pedirá esta frase mnemotécnica a menos que inicie manualmente una recuperación de la clave privada.", + "Your mnemonic phrase is invalid": "Tu frase mnemónica es inválida", + "Your private key mnemonic is:": "Su frase privada mnemotécnica es:", + "Your wallet has been created and is ready to use.": "Su billetera ha sido creada y está lista para su uso", + "Zoom": "Zoom", + "bye!": "¡Adiós!", + "gRPC Network Interface & Port": "Interfaz de Red y Puerto gRPC", + "gRPC Rx": "Rx gRPC", + "gRPC Rx/s": "Rx/s gRPC", + "gRPC Tx": "Tx gRPC", + "gRPC Tx/s": "Tx/s gRPC", + "of": "de", + "p2p RPC": "RPC p2p", + "p2p Rx": "Rx p2p", + "p2p Rx/s": "Rx/s p2p", + "p2p Tx": "Tx p2p", + "p2p Tx/s": "Tx/s p2p", + "peer": "usuario", + "peers": "usuarios", + "using KDX or kaspanet.io web wallet": "usando KDX o billetera web kaspanet.io", + "wRPC Borsh Rx": "Rx Borsh wRPC", + "wRPC Borsh Rx/s": "Rx/s Borsh wRPC", + "wRPC Borsh Tx": "Tx Borsh wRPC", + "wRPC Borsh Tx/s": "Tx/s Borsh wRPC", + "wRPC Connection Settings": "Configuración Conexión wRPC", + "wRPC Encoding:": "Codificación wRPC:", + "wRPC JSON Rx": "Rx JSON wRPC", + "wRPC JSON Rx/s": "Rx/s JSON wRPC", + "wRPC JSON Tx": "Tx JSON wRPC", + "wRPC JSON Tx/s": "Tx/s JSON wRPC", + "wRPC URL:": "URL wRPC:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Enviar", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transferir", + "{qrCodeIcon} Request": "{qrCodeIcon} Solicitud", + "~2 hours": "~2 horas", + "~30 minutes": "~30 minutos" + }, + "et": {}, + "fa": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'نشانه فیشینگ' کلمه یا عبارتی مخفی است که وقتی کیف پول خود را باز می کنید نمایش داده می شود. اگر هنگام باز کردن کیف پول خود این نشانه را مشاهده نکردید، ممکن است به کیف پول جعلی دسترسی داشته باشید که برای سرقت وجوه شما طراحی شده است. اگر این اتفاق افتاد، فورا استفاده از کیف پول را متوقف کنید، نام دامنه URL مرورگر را بررسی کنید و از شبکه های اجتماعی (تلگرام یا دیسکورد Kaspa) کمک بگیرید.", + "1 BPS test network": "شبکه تست 1 بلاک در ثانیه", + "10 BPS test network": "شبکه تست 10 بلاک در ثانیه", + "12 word mnemonic": "عبارت یادآور 12 کلمه ای", + "24 word mnemonic": "عبارت یادآور 24 کلمه ای", + "24h Change": "تغییر 24 ساعته", + "3 hours or more": "3 ساعت یا بیشتر", + "< {minutes} minute": "< {minutes} دقیقه", + "< {minutes} minutes": "< {minutes} دقیقه", + "< {seconds} second": "< {seconds} ثانیه", + "< {seconds} seconds": "< {seconds} ثانیه", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "یک باینری در مکان دیگری یک پردازش فرزند ایجاد می شود (تجربی، فقط برای اهداف توسعه دهندگی).", + "A random node will be selected on startup": "یک نود تصادفی در راه اندازی انتخاب خواهد شد", + "A wallet is stored in a file on your computer.": "یک کیف پول در فایلی در رایانه شما ذخیره می شود.", + "Account Index": "نمایه حساب", + "Account Name": "نام حساب", + "Account not found": "Account not found", + "Account:": "حساب:", + "Activate custom daemon arguments": "فعال کردن آرگومان های سرویس سفارشی ", + "Active p2p Peers": "فعال سازی همتایان p2p", + "Add Account": "افزودن حساب", + "Address copied to clipboard": "آدرس در کلیپ بورد کپی شد", + "Address derivation scan": "اسکن مشتق آدرس", + "Address:": "آدرس:", + "Advanced": "پیشرفته", + "All": "همه", + "Allow clipboard copy": "اجازه کپی کردن کلیپ بورد", + "Allow custom arguments for the Rusty Kaspa daemon": "اجازه دادن آرگومان های سفارشی برای سرویس Rusty Kaspa ", + "Allows you to take screenshots from within the application": "به شما امکان می دهد از داخل برنامه اسکرین شات بگیرید", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "برای اعمال این تنظیم، برنامه باید دوباره راه اندازی شود.", + "Apply": "اپلای", + "Architecture {arch}": "ساختار {arch}", + "Are you sure you want to reset all settings?": "آیا مطمئن هستید که می خواهید همه تنظیمات را ریست کنید؟", + "BALANCE": "BALANCE", + "Balance: N/A": "موجودی: در دسترس نیست", + "Bandwidth": "پهنای باند", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "به دلیل تمرکز بر امنیت و عملکرد، این نرم افزار به طور کامل در Rust توسعه یافته است و در مقایسه با سایر نرم افزارهای سنتی مدرن مبتنی بر وب، زمان و تلاش بیشتری را می طلبد.", + "Bezier Curves": "منحنی های Bezier", + "Block DAG": "Block DAG", + "Block Scale": "مقیاس بلاک", + "Blocks": "بلاک ها", + "Bodies": "اجسام", + "Borsh Active Connections": "اتصالات فعال Borsh", + "Borsh Connection Attempts": "تلاش ها برای اتصال Borsh", + "Borsh Handshake Failures": "عدم موفقیت در تبادل اطلاعات با Borsh", + "Build": "ساختن", + "CONNECTED": "وصل شد", + "CPU": "CPU", + "Cache Memory Size": "اندازه حافظه کش", + "Cancel": "لغو", + "Cannot delete data folder while the node is running": "در حالی که نود در حال اجرا است، نمی توان پوشه داده ها را حذف کرد", + "Capture a screenshot": "اسکرین شات بگیرید", + "Capture saved to {path}": "ذخیره سازی در {path} انجام شد", + "Center VSPC": "مرکز VSPC", + "Chain Blocks": "بلوک های زنجیره ای", + "Change Address": "تغییر آدرس", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "بررسی بروز رسانی های نرم افزار در GitHub ", + "Check for Updates": "بررسی بروز رسانی ها", + "Clear": "پاک کردن", + "Click to try another server...": "روی سرور دیگری کلیک کنید...", + "Client RPC": "کلاینت RPC", + "Close": "بستن", + "Close the window": "بستن پنجره", + "Confirm BIP39 passphrase": "رمز عبور BIP39 را تایید کنید", + "Confirm wallet password": "تایید کلمه عبور کیف پول", + "Connecting to": "ارتباط با", + "Connection": "اتصال", + "Connections": "اتصال ها", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "از طریق wRPC به یک Remote Rusty Kaspa Node متصل می شود.", + "Conservative": "با دوام", + "Continue": "ادامه", + "Copied to clipboard": "در کلیپ بورد کپی شد", + "Copy": "کپی", + "Copy logs to clipboard": "کپی گزارش‌ها را در کلیپ بورد ", + "Create New Wallet": "ایجاد کردن کیف پول جدید", + "Create Wallet": "کیف پول ایجاد کنید", + "Create new wallet": "ساختن کیف پول جدید", + "Creating Account": "ایجاد حساب کاربری", + "Creating Wallet": "ساختن کیف پول", + "Custom": "سفارشی", + "Custom Public Node": "نود عمومی سفارشی", + "Custom arguments:": "آرگومان های سفارشی:", + "Custom data storage folder": "پوشه ذخیره سازی داده های سفارشی", + "DAA": "ترتیب دستیابى داده ها DAA", + "DAA Offset": " نقطه آغازین ترتیب دستیابى داده ها DAA", + "DAA Range": "محدوده ترتیب دستیابى داده ها DAA", + "DB Blocks": "بلاک های پایگاه داده", + "DB Headers": "سربرگ های DB", + "Dangerous": "خطرناک", + "Data Storage": "مخزن داده ها", + "Database Blocks": "بلاک های پایگاه داده ها", + "Database Headers": "سربرگ های پایگاه داده ها", + "Decrypt": "رمزگشایی", + "Decrypting Wallet File": "رمزگشایی فایل کیف پول", + "Decrypting wallet, please wait...": "در حال رمزگشایی کیف پول، لطفا صبر کنید...", + "Default": "پیش فرض", + "Default Account Name": "نام حساب پیش فرض", + "Delete Data Folder": "پوشه داده ها را حذف کنید", + "Dependencies": "وابستگی ها", + "Derivation Indexes": "شاخص های استخراج شده", + "Details": "جزییات", + "Developer Mode": "تنظیمات برنامه نویسی", + "Developer Resources": "منابع برنامه نویسی", + "Developer mode enables advanced and experimental features": "حالت برنامه نویسی ویژگی های پیشرفته و آزمایشی را فعال می کند", + "Difficulty": "سختی", + "Dimensions": "ابعاد", + "Disable Window Frame": "قاب پنجره را غیرفعال کنید", + "Disable password safety rules": "قوانین ایمنی رمز عبور را غیرفعال کنید", + "Disabled": "غیرفعال ", + "Disables node connectivity (Offline Mode).": "اتصال نود را غیرفعال می کند (حالت آفلاین).", + "Discord": "دیسکورد", + "Donations": "کمک های مالی", + "Double click on the graph to re-center...": "روی نمودار دوبار کلیک کنید تا دوباره در وسط قرار دهید...", + "ECDSA": "ECDSA", + "Economic": "اقتصادی", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "اقتصادی: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "فعال سازی مشاهده بازار", + "Enable UPnP": "فعال سازی UPnP", + "Enable custom daemon arguments": "آرگومان های سرویس سفارشی را فعال کنید", + "Enable experimental features": "فعال سازی ویژگی های آزمایشی", + "Enable gRPC": "فعال سازی gRPC", + "Enable optional BIP39 passphrase": "فعال کردن عبارت عبور اختیاری BIP39 ", + "Enable screen capture": "فعال کردن ضبط صفحه", + "Enables features currently in development": "فعال سازی ویژگی‌هایی که در حال توسعه هستند", + "Enter": "ورود", + "Enter BIP39 passphrase": "رمز عبور BIP39 را وارد کنید", + "Enter account name (optional)": "نام حساب را وارد کنید (اختیاری)", + "Enter destination address": "آدرس مقصد را وارد کنید", + "Enter first account name": "نام اولین حساب کاربری را وارد کنید", + "Enter mnemonic": "عبارت یادآور را وارد کنید", + "Enter password to decrypt this wallet file": "رمز عبور را برای رمزگشایی این فایل کیف پول وارد کنید", + "Enter phishing hint": "وارد کردن نشانه فیشینگ", + "Enter priority fees": "هزینه های اولویت را وارد کنید", + "Enter the amount": "مقدار را وارد کنید", + "Enter the password for your wallet": "رمز عبور کیف پول خود را وارد کنید", + "Enter the password to unlock your wallet": "کلمه عبور را برای باز کردن کیف پول خود وارد کنید", + "Enter wallet name": "وارد کردن نام کیف پول", + "Enter wallet password": "وارد کردن کلمه عبور کیف پول", + "Enter your wallet secret": "رمز کیف پول خود را وارد کنید", + "Enter {suffix} amount to send": "مقدار {پسوند} را برای ارسال وارد کنید", + "Error": "خطا", + "Error importing a wallet": "خطا در وارد کردن کیف پول", + "Error processing mnemonic: {err}": "خطا در پردازش عبارت یادآور: {err}", + "Exit Full Screen": "خروج از تمام صفحه", + "Explorer": "کاوشگر", + "Export Wallet Data": "صدور داده های کیف پول", + "FIRST": "اولین", + "Faucet": "فاست", + "Fee Market": "بازار کارمزد", + "Fee Market & Network Pressure": "بازار کارمزد و فشار شبکه", + "Fee Market Only": "فقط بازار کارمزد", + "File Handles": "دسته های فایل", + "File contents": "محتویات فایل", + "Filename:": "نام فایل:", + "Final Amount:": "مبلغ نهایی:", + "Final Amount: {amount}": "مبلغ نهایی: {amount}", + "For decrypting uploaded file please enter wallet secret.": "برای رمزگشایی فایل آپلود شده لطفا رمز کیف پول را وارد کنید.", + "Full Screen": "تمام صفحه", + "Generate New Change Address": "ایجاد آدرس متغیر جدید", + "Generate New Receive Address": "ایجاد آدرس دریافت جدید", + "GitHub Release": "انتشار GitHub", + "Go to Settings": "برو به تنظیمات", + "Good": "خوبه", + "Handles": "دستگیره ها", + "Headers": "سربرگ ها", + "High": "زیاد", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "اگر مشخص نشده باشد، حساب با شناسه عددی نشان داده می شود.", + "If you are running locally, use: ": "اگر بصورت محلی اجرا می کنید،استفاده کنید از:", + "Import Existing Private Key": "کلید خصوصی موجود را وارد کنید", + "Import existing": "وارد کردن موجود", + "Import existing file": "فایل موجود را وارد کنید", + "Importing Legacy Wallet": "وارد کردن کیف پول اصلی", + "Importing Wallet": "وارد کردن کیف پول", + "Importing Wallet File": "وارد کردن فایل کیف پول", + "Inbound": "ورودی", + "Integrated Daemon": "سرویس یکپارچه", + "Invalid amount:": "مقدار نامعتبر:", + "Invalid daemon arguments": "نامعتبر بودن آرگومان های سرویس نامعتبر", + "Invalid fee amount:": "مبلغ کارمزد نامعتبر:", + "Invalid wRPC URL": "آدرس wPRC نامعتبر", + "Json Active Connections": "اتصالات فعال Json", + "Json Connection Attempts": "تلاش های اتصال Json", + "Json Handshake Failures": "عدم موفقیت در تبادل اطلاعات با Json", + "Kaspa Discord": "دیسکورد Kaspa", + "Kaspa Integration Guide": "راهنمای ادغام Kaspa", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG در GitHub", + "Kaspa NG online": "Kaspa NG آنلاین", + "Kaspa Network": "شبکه Kaspa", + "Kaspa Node": "نود Kaspa", + "Kaspa p2p Network & Node Connection": "شبکه Kaspa p2p و اتصال نود", + "Kaspa p2p Node": "نود Kaspa p2p", + "Kaspa p2p Node & Connection": "اتصال و نود Kaspa p2p", + "Key Perf.": "عملکرد کلیدی", + "LAST": "آخرین", + "Language:": "زبان:", + "Large (1 BPS)": "بزرگ (1 BPS)", + "Legacy 12 word mnemonic": "عبارت یادآور 12 کلمه ای اصلی", + "Levels": "سطوح", + "License Information": "اطلاعات مجوز", + "Local": "محلی", + "Local p2p Node Configuration": "پیکربندی نود p2p محلی", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "گزارشات", + "Low": "کم", + "Low-priority": "با اولویت کم", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "کم: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "شبکه اصلی Kaspa", + "Mainnet": "شبکه اصلی", + "Managed by the Rusty Kaspa daemon": "مدیریت توسط سرویس Rusty Kaspa ", + "Market": "بازار", + "Market Cap": "ارزش بازاری", + "Market Monitor": "مشاهده بازار", + "Mass Processed": "پردازش انبوه", + "Mass:": "حجم:", + "Mass: {number}g": "حجم: {number}g", + "Maximize window": "بزرگنمایی پنجره", + "Medium Narrow": "ابزار باریک کردن", + "Medium Wide": "ابزار گسترده کردن", + "Memory": "حافظه", + "Mempool": "استخر حافظه", + "Mempool Size": "سایز استخر حافظه", + "Metrics": "معیارها", + "Metrics are not currently available": "معیارها در حال حاضر در دسترس نیستند", + "Miner Fee": "کارمزد ماینر", + "Minimize the window": "کوچک کردن پنجره", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "وارد کردن عبارت یادآور", + "NEXT": "بعدی", + "NO NAME": "بدون نام", + "NPM Modules for NodeJS": "ماژول های NPM برای NodeJS", + "Network": "شبکه", + "Network Difficulty": "سختی شبکه", + "Network Fee Estimator": "تخمین زننده هزینه شبکه", + "Network Interface": "رابط شبکه", + "Network Peers": "همتایان شبکه", + "Network Pressure: ~{number}%": "فشار شبکه: ~{number}%", + "Never share your mnemonic with anyone!": "هرگز عبارت یادآور خود را با کسی به اشتراک نگذارید!", + "No peers": "بدون همتایان", + "No public node selected - please select a public node": "هیچ نود عمومی انتخاب نشده است - لطفاً یک نود عمومی انتخاب کنید", + "No transactions": "بدون تراکنش", + "No wallets found, please create a new wallet": "کیف پولی یافت نشد، لطفا یک کیف پول جدید ایجاد کنید", + "Node": "نود", + "Node Status": "وضعیت نود", + "Noise": "سر و صدا", + "None": "هیچ کدام", + "Normal": "عادی", + "Not Connected": "متصل نیست", + "Not connected": "متصل نیست", + "Notifications": "اعلان ها", + "Open Data Folder": "پوشه داده را باز کنید", + "Opening wallet:": "بازکردن کیف پول:", + "Optional": "اختیاری", + "Options": "گزینه ها", + "Other operations": "سایر عملیات", + "Outbound": "خروجی", + "Overview": "بررسی ", + "PREV": "قبلی", + "Parents": "سرمنشا ها", + "Passive Sync": "همگام سازی غیرفعال", + "Passphrase is too weak": "رمز عبور خیلی ضعیف است", + "Passphrases do not match": "رمزهای عبور مطابقت ندارند", + "Passwords do not match": "رمزهای ورود مطابقت ندارند", + "Past Median Time": "زمان میانه گذشته", + "Payment & Recovery Password": "رمز پرداخت و بازیابی", + "Payment Request": "درخواست پرداخت", + "Payment request to account: {account}": "درخواست پرداخت به حساب: {account}", + "Peers": "همتایان", + "Pending: {amount}": "Pending: {amount}", + "Performance": "کارایی", + "Phishing Hint": "نشانه فیشینگ", + "Ping:": "پینگ:", + "Please Confirm Deletion": "لطفا حذف را تایید کنید", + "Please configure your Kaspa NG settings": "لطفا تنظیمات Kaspa NG خود را پیکربندی کنید", + "Please connect to Kaspa p2p node": "لطفا به نود Kaspa p2p متصل شوید", + "Please create a stronger password": "لطفا یک رمز عبور سخت تری ایجاد کنید", + "Please enter a valid address: {err}": "لطفا یک آدرس معتبر وارد کنید: {err}", + "Please enter a valid amount of KAS": "لطفا یک مقدار معتبر KAS وارد کنید", + "Please enter additional {amount} words": "لطفا کلمه {amount} اضافی وارد کنید", + "Please enter an amount": "لطفا یک مقدار وارد کنید", + "Please enter mnemonic comprised of {number} words": "لطفا عبارت یادآور متشکل از {number} کلمه را وارد کنید", + "Please enter the account name": "لطفا نام حساب را وارد کنید", + "Please enter the wallet secret": "لطفا رمز کیف پول را وارد کنید", + "Please enter {suffix} amount to send": "لطفا مبلغ {suffix} را برای ارسال وارد کنید", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "لطفاً توجه داشته باشید، کپی کردن در کلیپ بورد خطر قرار دادن عبارت یادآور شما را در معرض بدافزار قرار می دهد.", + "Please select 'Apply' and restart the application.": "لطفا 'اپلای' را انتخاب کنید و برنامه را مجددا راه اندازی کنید.", + "Please select account to scan": "لطفا حساب را برای اسکن انتخاب کنید", + "Please select an account type": "لطفا یک نوع حساب را انتخاب کنید", + "Please select export type": "لطفا نوع صدور را انتخاب کنید", + "Please select the private key to export": "لطفا کلید خصوصی را برای صدور انتخاب کنید", + "Please select the private key type you would like to import in the new wallet": "لطفا نوع کلید خصوصی را که می‌خواهید در کیف پول جدید وارد کنید، انتخاب کنید", + "Please set node to 'Disabled' to delete the data folder": "لطفا نود را روی 'غیرفعال' تنظیم کنید تا پوشه داده ها حذف شود", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "لطفا نام حساب پیش فرض را مشخص کنید. کیف پول با یک حساب پیش فرض ایجاد می شود. پس از ایجاد، می توانید حساب های اضافی را در صورت نیاز ایجاد کنید.", + "Please specify the name of the new wallet": "لطفاً نام کیف پول جدید را مشخص کنید", + "Please specify the private key type for the new wallet": "لطفا نوع کلید خصوصی را برای کیف پول جدید مشخص کنید", + "Please support Kaspa NG development": "لطفا از توسعه Kaspa NG حمایت کنید", + "Please wait for the node to sync or connect to a remote node.": "لطفا منتظر بمانید تا نود همگام شود یا به یک نود راه دور متصل شود.", + "Please wait for the node to sync...": "لطفا صبر کنید تا نود همگام شود...", + "Please wait...": "لطفا صبر کنید...", + "Presets": "تنظیمات از پیش تعیین شده", + "Price": "قیمت", + "Priority": "اولویت", + "Priority Fee Estimator": "برآورد هزینه اولویت", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "اولویت: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "کلید خصوصی عبارت یادآور", + "Private key mnemonic stored in this wallet": "عبارت یادآور کلید خصوصی در این کیف پول ذخیره می شود", + "Processed Bodies": "اجسام فرآوری شده", + "Processed Dependencies": "وابستگی های پردازش شده", + "Processed Headers": "هدرهای پردازش شده", + "Processed Mass Counts": "شمارش انبوه پردازش شده", + "Processed Transactions": "تراکنش های پردازش شده", + "Processing...": "در حال پردازش...", + "Protocol:": "پروتکل:", + "Public Node": "نود عمومی", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "خروج", + "Random Public Node": "نود عمومی تصادفی", + "Range:": "دامنه:", + "Receive Address": "آدرس دریافتی", + "Recommended arguments for the remote node: ": "آرگومان های توصیه شده برای نود راه دور:", + "Redistributables": "توزیع مجدد توسط شخص ثالث به عنوان بخشی از نرم افزار خودش", + "Remote": "از راه دور", + "Remote Connection:": "اتصال از راه دور:", + "Remote p2p Node Configuration": "پیکربندی از راه دور نود p2p", + "Removes security restrictions, allows for single-letter passwords": "محدودیت‌های امنیتی را حذف می‌کند، اجازه می‌دهد کلمه های عبور تک حرفی را انتخاب کنید", + "Reset Settings": "بازنشانی تنظیمات", + "Reset VSPC": "VSPC را بازنشانی کنید", + "Resident Memory": "حافظه مقیم", + "Resources": "منابع", + "Restart": "راه اندازی مجدد", + "Restore window": "بازیابی پنجره", + "Resulting daemon arguments:": "آرگومان های سرویس حاصل:", + "Rust Wallet SDK": "بسته توسعه نرم افزار کیف پول Rust ", + "Rusty Kaspa on GitHub": "Rusty Kaspa در GitHub", + "Scanner": "اسکنر", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "اسکن کامل شد...", + "Secret is too weak": "رمز خیلی ضعیف است", + "Secret score:": "امتیاز رمز:", + "Select Account": "انتخاب حساب", + "Select Private Key Type": "نوع کلید خصوصی را انتخاب کنید", + "Select Public Node": "انتخاب نود عمومی", + "Select Wallet": "انتخاب کیف پول", + "Select a wallet to unlock": "یک کیف پول را برای باز کردن انتخاب کنید", + "Select file...": "انتخاب فایل...", + "Select this option if your wallet was created": "اگر کیف پول شما ساخته شده است، این گزینه را انتخاب کنید", + "Send": "ارسال", + "Sending funds": "ارسال وجوه", + "Sending funds without priority fees will result in long transaction wait times.": "ارسال وجوه بدون اولویت کارمزد منجر به زمان انتظار طولانی تراکنش می شود.", + "Sending: {amount}": "Sending: {amount}", + "Services": "سرویس ها", + "Settings": "تنظیمات", + "Show DAA": "نمایش ترتیب دستیابى داده ها DAA", + "Show Grid": "نمایش جدول", + "Show VSPC": "نمایش VSPC", + "Show balances in alternate currencies for testnet coins": "نمایش موجودی در ارزهای جایگزین برای کوین های شبکه تست", + "Show passphrase": "نمایش رمز عبور", + "Show password": "نشان دادن کلمه عبور", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "موجودی ارزهای جایگزین (BTC، USD) را در هنگام استفاده از کوین های شبکه آزمایشی به گونه ای نشان می دهد که گویی در شبکه اصلی هستید", + "Skip": "صرف نظر", + "Small (10 BPS)": "کوچک (10 BPS)", + "Spread": "گسترش", + "Stage": "مرحله", + "Starting...": "شروع...", + "Statistics": "آمار", + "Stop": "توقف", + "Stor Read": "خواندن ذخیره غیرمتمرکز", + "Stor Write": " نگارش ذخیره غیرمتمرکز", + "Storage": "ذخیره غیرمتمرکز", + "Storage Read": "خواندن ذخیره غیرمتمرکز", + "Storage Read/s": "خواندن ذخیره غیرمتمرکز", + "Storage Size": "اندازه ذخیره سازی", + "Storage Write": " نگارش ذخیره غیرمتمرکز", + "Storage Write/s": " نگارش ذخیره غیرمتمرکز", + "Strong": "قوی", + "Submitted Blocks": "بلاک های ارسال شده", + "Syncing Cryptographic Proof...": "همگام سازی عیار رمزنگاری...", + "Syncing DAG Blocks...": "در حال همگام سازی بلاک های DAG...", + "Syncing Headers...": "در حال همگام سازی سربرگ ها...", + "Syncing UTXO entries...": "در حال همگام سازی ورودی های UTXO...", + "Syncing...": "همگام سازی...", + "System": "سیستم", + "TPS": "تراکنش در ثانیه", + "Testnet 10": "شبکه تست 10", + "Testnet 11": "شبکه تست 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "نرم‌افزار Kaspa NG بیانگر تلاشی مداوم است که بر ساختن یک پلت‌فرم نرم‌افزاری پیشرفته حول شبکه ارز دیجیتال Kaspa BlockDAG متمرکز شده است. این نرم افزار ذاتا امنیت، حریم خصوصی، عملکرد و تمرکززدایی را در اولویت قرار می دهد.", + "The balance may be out of date during node sync": "موجودی ممکن است در طول همگام سازی نود منسوخ باشد", + "The following will guide you through the process of creating or importing a wallet.": "موارد زیر شما را در فرآیند ایجاد یا وارد کردن کیف پول راهنمایی می کند.", + "The network is currently congested.": "شبکه در حال حاضر شلوغ است.", + "The node is currently syncing with the Kaspa p2p network.": "نود در حال حاضر با شبکه p2p Kaspa همگام سازی می شود.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "در حال حاضر نود با شبکه p2p Kaspa همگام سازی می شود. موجودی حساب ممکن است منسوخ باشد.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "نود در حال حاضر با شبکه p2p Kaspa همگام سازی می شود. لطفا منتظر بمانید تا نود همگام شود.", + "The node is spawned as a child daemon process (recommended).": "نود بعنوان یک فرآیند فرزند ایجاد می شود (توصیه می شود).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "نود به عنوان بخشی از فرآیند برنامه Kaspa-NG اجرا می شود. این باعث کاهش هزینه های ارتباطی می شود (آزمایشی).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "نود در پس زمینه همزمان می شود در حالی که Kaspa-NG به یک نود عمومی متصل است.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "نود در پس زمینه همزمان می شود در حالی که Kaspa-NG به یک نود عمومی متصل است. پس از همگام سازی نود، می توانید به حالت 'Integrated Daemon' بروید.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "عبارت عبور اختیاری پرداخت و بازیابی عبارت یادآور، که به عنوان رمز عبور BIP39 شناخته می شود، در صورت نیاز، برای ارسال پرداخت ها مورد نیاز خواهد بود. این عبارت عبور همچنین هنگام بازیابی کیف پول شما علاوه بر عبارت یادآور شما مورد نیاز است. اگر این رمز عبور را گم کنید یا فراموش کنید، نمی توانید از عبارت یادآور برای بازیابی کیف پول خود استفاده کنید!", + "Theme Color": "رنگ زمینه", + "Theme Color:": "رنگ زمینه:", + "Theme Style": "سبک زمینه", + "Theme Style:": "سبک زمینه:", + "This option will transfer any discovered funds to the first change address of this account.": "این گزینه هرگونه وجوه پیدا شده را به اولین آدرس تغییر این حساب منتقل می کند.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "این کیف پول هرگز از شما این عبارت یادآور را نمی خواهد مگر اینکه به صورت دستی بازیابی کلید خصوصی را شروع کنید.", + "Threshold": "آستانه", + "Time Offset:": "زمان آغازین", + "Timestamp: {timestamp}": "برچسب زمانی: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "کلمات زیادی در", + "Tools": "Tools", + "Total Rx": "مجموع Rx", + "Total Rx/s": "مجموع Rx/s", + "Total Tx": "مجموع تراکنش", + "Total Tx/s": "مجموع تراکنش ها در ثانیه", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "پیگیری در پس زمینه", + "Transactions": "تراکنش ها", + "Transactions:": "تراکنش ها:", + "Transactions: {number}": "تراکنش ها: {number}", + "Transfer funds during scan": "انتقال وجه در حین اسکن", + "Type": "نوع", + "URI copied to clipboard": "URI در کلیپ بورد کپی شد", + "UTXO Manager": "مدیر UTXO", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "تا زمانی که مشکل حل نشود، امکان تغییر تنظیمات نود وجود ندارد", + "Unable to store settings": "Unable to store settings", + "Unlock": "باز کردن", + "Unlock Wallet": "بازکردن کیف پول", + "Unlocking": "بازکردن", + "Update Available to version": "به‌روزرسانی در نسخه کنونی", + "Updating...": "در حال بروز رسانی...", + "Uptime:": "آپتایم:", + "Use 50%-75% of available system memory": "از 50 حافظه موجود سیستم %-75% استفاده کنید", + "Use all available system memory": "استفاده از تمام حافظه های موجود سیستم ", + "User Agent": "عامل کاربر", + "User Interface": "رابط کاربری", + "Very dangerous (may be cracked within few seconds)": "بسیار خطرناک (ممکن است در عرض چند ثانیه کرک شود)", + "Very strong": "بسیار قوی", + "Very weak": "خیلی ضعیف", + "Virt Parents": "سرمنشا مجازی", + "Virtual DAA Score": "امتیاز ترتیب دستیابى داده ها DAA مجازی", + "Virtual Memory": "حافظه مجازی", + "Virtual Parent Hashes": "هش های سرمنشا مجازی", + "Volume": "حجم معاملات", + "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", + "Wallet": "کیف پول", + "Wallet Created": "کیف پول ایجاد شد", + "Wallet Encryption Password": "کلمه عبور رمزگذاری کیف پول", + "Wallet File Secret": "رمز فایل کیف پول", + "Wallet Name": "نام کیف پول", + "Wallet Secret": "رمز کیف پول", + "Wallet creation error:": "خطای ایجاد کیف پول:", + "Wallet decrypting error:": "خطای رمزگشایی کیف پول:", + "Wallet password is used to encrypt your wallet data.": "کلمه عبور کیف پول، برای رمزگذاری داده های کیف پول شما استفاده می شود.", + "Wallet with this name already exists": "کیف پولی با این نام از قبل وجود دارد", + "Wallet:": "کیف پول:", + "We greatly appreciate your help in backing our efforts.": "از کمک شما در حمایت از تلاش هایمان قدردانی می کنیم.", + "Weak": "ضعیف", + "Welcome to Kaspa NG": "به Kaspa NG خوش آمدید", + "Xpub Keys": "کلیدهای Xpub ", + "You are currently not connected to the Kaspa node.": "شما در حال حاضر به نود Kaspa متصل نیستید.", + "You can configure remote connection in Settings": "می توانید اتصال از راه دور را در تنظیمات پیکربندی کنید", + "You can create multiple wallets, but only one wallet can be open at a time.": "شما می توانید چندین کیف پول ایجاد کنید، اما تنها یک کیف پول می تواند در یک زمان باز باشد.", + "You must be connected to a node...": "شما باید به یک نود متصل باشید...", + "Your default wallet private key mnemonic is:": "کلید خصوصی عبارت یادآور کیف پول شما این هست:", + "Your mnemonic is protected with a bip39 passphrase": "عبارت یادآور شما با یک عبارت عبور bip39 محافظت می شود", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "عبارت یادآور شما به شما امکان می دهد کلید خصوصی خود را دوباره ایجاد کنید. شخصی که به این عبارت یادآور دسترسی داشته باشد، کنترل کامل Kaspa ذخیره شده در آن را خواهد داشت. عبارت یادآور خود را ایمن نگه دارید. آن را یادداشت کنید و در یک گاوصندوق، ترجیحا در مکانی مقاوم در برابر آتش نگهداری کنید. عبارت یادآور خود را در این رایانه یا دستگاه تلفن همراه ذخیره نکنید. این کیف پول هرگز از شما این عبارت یاآور را نمی خواهد مگر اینکه به صورت دستی بازیابی کلید خصوصی را شروع کنید.", + "Your mnemonic phrase is invalid": "عبارت یادآور شما نامعتبر است", + "Your private key mnemonic is:": "کلید خصوصی عبارت یادآور شما این هست:", + "Your wallet has been created and is ready to use.": "کیف پول شما ساخته شده و آماده استفاده است.", + "Zoom": "بزرگنمایی", + "bye!": "خداحافظ!", + "gRPC Network Interface & Port": "رابط و پورت شبکه gRPC", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "تراکنش gRPC", + "gRPC Tx/s": "تراکنش در ثانیه gRPC", + "of": "از", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "تراکنش های p2p", + "p2p Tx/s": "تراکنش در ثانیه p2p", + "peer": "همتا", + "peers": "همتایان", + "using KDX or kaspanet.io web wallet": "با استفاده از KDX یا کیف پول وب kaspanet.io", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "تراکنش wRPC Borsh", + "wRPC Borsh Tx/s": "تراکنش در ثانیه wRPC Borsh", + "wRPC Connection Settings": "تنظیمات اتصال wRPC", + "wRPC Encoding:": "رمزگذاری wRPC:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "تراکنش wRPC JSON", + "wRPC JSON Tx/s": "تراکنش در ثانیه wRPC JSON", + "wRPC URL:": "آدرس wRPC:", + "{arrowCircleUpIcon} Send": "ارسال {arrowCircleUpIcon} ", + "{arrowsDownUpIcon} Transfer": "انتقال {arrowsDownUpIcon}", + "{qrCodeIcon} Request": "درخواست {qrCodeIcon}", + "~2 hours": "~2 ساعت", + "~30 minutes": "~30 دقیقه" + }, + "fi": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS -testiverkko", + "10 BPS test network": "10 BPS -testiverkko", + "12 word mnemonic": "12 turvasanaa", + "24 word mnemonic": "24 turvasanaa", + "24h Change": "24 tunnin muutos", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "Binääri toisessa sijainnissa käynnistetään lapsiprosessina (kokeellinen, vain kehitystarkoituksiin).", + "A random node will be selected on startup": "Satunnainen solmu valitaan käynnistyksen yhteydessä", + "A wallet is stored in a file on your computer.": "Lompakko säilytetään tiedostona tietokoneellasi.", + "Account Index": "Account Index", + "Account Name": "Tilin nimi", + "Account not found": "Account not found", + "Account:": "Tili:", + "Activate custom daemon arguments": "Ota mukautetut daemoni-argumentit käyttöön", + "Active p2p Peers": "Aktiiviset p2p-vertaissolmut", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Hae johdettuja osoitteita", + "Address:": "Osoite:", + "Advanced": "Lisäasetukset", + "All": "Kaikki", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Salli mukautetut Rusty Kaspa daemoni -argumentit ", + "Allows you to take screenshots from within the application": "Mahdollistaa näyttökuvien ottamisen sovelluksen sisältä", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Aseta", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Saldo: ei saatavilla", + "Bandwidth": "Kaistanleveys", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Päähuomion ollessa tietoturvallisuudessa ja suorituskyvyssä, ohjelmisto on kehitetty täysin Rustilla, mikä kasvattaa huomattavasti työn vaativuutta tyypillisiin, moderneihin verkko-ohjelmistoihin verrattuna.", + "Bezier Curves": "Bézier-käyrät", + "Block DAG": "Lohko-DAG", + "Block Scale": "Lohkokoko", + "Blocks": "Lohkot", + "Bodies": "Runkoja", + "Borsh Active Connections": "Aktiivisia Borsh-yhteyksiä", + "Borsh Connection Attempts": "Borsh-yhteysyrityksiä", + "Borsh Handshake Failures": "Epäonnistuneita Borsh-yhteyksiä", + "Build": "Koontiversio", + "CONNECTED": "YHDISTETTY", + "CPU": "Suoritin", + "Cache Memory Size": "Välimuisti", + "Cancel": "Peruuta", + "Cannot delete data folder while the node is running": "Datahakemistoa ei voida poistaa solmun ollessa käynnissä", + "Capture a screenshot": "Ota näyttökuva", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Keskitä VSPC", + "Chain Blocks": "Ketjutetut lohkot", + "Change Address": "Vaihtorahaosoite", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Tarkista ohjelmistopäivitysten saatavuus GitHubista", + "Check for Updates": "Tarkista päivitykset", + "Clear": "Tyhjennä", + "Click to try another server...": "Yritä toista palvelinta napsauttamalla...", + "Client RPC": "Client RPC", + "Close": "Sulje", + "Close the window": "Sulje ikkuna", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Vahvista lompakon salasana", + "Connecting to": "Yhdistetään", + "Connection": "Yhteys", + "Connections": "Yhteydet", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Yhdistää Rusty Kaspa etäsolmuun wRPC:n avulla.", + "Conservative": "Varovainen", + "Continue": "Jatka", + "Copied to clipboard": "Kopioitu leikepöydälle", + "Copy": "Kopioi", + "Copy logs to clipboard": "Kopioi loki leikepöydälle", + "Create New Wallet": "Luo uusi lompakko", + "Create Wallet": "Create Wallet", + "Create new wallet": "Luo uusi lompakko", + "Creating Account": "Luodaan osoitetta", + "Creating Wallet": "Luodaan lompakkoa", + "Custom": "Mukautettu", + "Custom Public Node": "Mukautettu julkinen solmu", + "Custom arguments:": "Mukautetut argumentit:", + "Custom data storage folder": "Mukautettu datahakemisto", + "DAA": "DAA", + "DAA Offset": "DAA-siirtymä", + "DAA Range": "DAA-alue", + "DB Blocks": "Tietokantalohkot", + "DB Headers": "Tietokantaotsikot", + "Dangerous": "Dangerous", + "Data Storage": "Datan tallennus", + "Database Blocks": "Tietokantalohkot", + "Database Headers": "Tietokantaotsikot", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Puretaan lompakon salausta, odota...", + "Default": "Oletus", + "Default Account Name": "Oletustilin nimi", + "Delete Data Folder": "Poista datahakemisto", + "Dependencies": "Riippuvuudet", + "Derivation Indexes": "Derivation Indexes", + "Details": "Tiedot", + "Developer Mode": "Kehittäjätila", + "Developer Resources": "Resursseja kehittäjille", + "Developer mode enables advanced and experimental features": "Kehittäjätila mahdollistaa kehittyneet ja kokeelliset toiminnot", + "Difficulty": "Vaikeustaso", + "Dimensions": "Dimensiot", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Poistettu käytöstä", + "Disables node connectivity (Offline Mode).": "Poistaa solmun yhteydet (offline-tila).", + "Discord": "Discord", + "Donations": "Lahjoitukset", + "Double click on the graph to re-center...": "Keskitä graafi tuplanapsautuksella...", + "ECDSA": "ECDSA", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Ota markkinaseuranta käyttöön", + "Enable UPnP": "Ota UPnP käyttöön", + "Enable custom daemon arguments": "Ota mukautetut daemoni-argumentit käyttöön", + "Enable experimental features": "Ota kokeelliset toiminnot käyttöön", + "Enable gRPC": "Ota gRPC käyttöön", + "Enable optional BIP39 passphrase": "Ota valinnainen BIP39-salasana käyttöön", + "Enable screen capture": "Ota näyttökuvat käyttöön", + "Enables features currently in development": "Ottaa kehityksen alla olevat toiminnot käyttöön", + "Enter": "Syötä", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Syötä tilin nimi (valinnainen)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Syötä ensimmäisen tilin nimi", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Syötä tietojenkalasteluvihje", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Syötä määrä", + "Enter the password for your wallet": "Syötä lompakon salasana", + "Enter the password to unlock your wallet": "Avaa lompakon lukitus syöttämällä salasana", + "Enter wallet name": "Syötä lompakon nimi", + "Enter wallet password": "Syötä lompakon salasana", + "Enter your wallet secret": "Syötä lompakon salasana", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Lohkoselain", + "Export Wallet Data": "Vie lompakko", + "FIRST": "FIRST", + "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "Tiedostokahvat", + "File contents": "File contents", + "Filename:": "Tiedostonimi:", + "Final Amount:": "Lopullinen määrä:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub-julkaisuversio", + "Go to Settings": "Asetuksiin", + "Good": "Good", + "Handles": "Kahvat", + "Headers": "Otsikoita", + "High": "High", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "Tyhjäksi jätettynä tiliin viitataan numerojärjestyksellä.", + "If you are running locally, use: ": "Mikäli suoritat paikallisesti, käytä:", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Tuo olemassaoleva", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Saapuva", + "Integrated Daemon": "Sisäänrakennettu daemoni", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Virheelliset daemoni-argumentit", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Virheellinen wRPC URL", + "Json Active Connections": "Aktiiviset Json-yhteydet", + "Json Connection Attempts": "Json-yhteysyritykset", + "Json Handshake Failures": "Epäonnistuneita Json-yhteyksiä", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Kaspa-integrointiohje", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG GitHubissa", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Kaspa-verkko", + "Kaspa Node": "Kaspa-solmu", + "Kaspa p2p Network & Node Connection": "Kaspa p2p-verkko ja solmuyhteys", + "Kaspa p2p Node": "Kaspa p2p-solmu", + "Kaspa p2p Node & Connection": "Kaspa p2p-solmu ja yhteys", + "Key Perf.": "Keskeisimmät", + "LAST": "LAST", + "Language:": "Kieli:", + "Large (1 BPS)": "Suuri (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Tasot", + "License Information": "Lisenssitiedot", + "Local": "Paikallinen", + "Local p2p Node Configuration": "Paikallisen p2p-solmun konfiguraatio", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Lokit", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Kaspan pääverkko", + "Mainnet": "Mainnet", + "Managed by the Rusty Kaspa daemon": "Rusty Kaspa daemoni hallinnoi", + "Market": "Markkinat", + "Market Cap": "Markkina-arvo", + "Market Monitor": "Markkinaseuranta", + "Mass Processed": "Massa käsitelty", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Keskisuuri kapea", + "Medium Wide": "Keskisuuri leveä", + "Memory": "Muisti", + "Mempool": "Mempool", + "Mempool Size": "Mempoolin koko", + "Metrics": "Metriikat", + "Metrics are not currently available": "Metriikat eivät ole tällä hetkellä saatavilla", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM-moduulit NodeJS:lle", + "Network": "Verkko", + "Network Difficulty": "Verkon vaikeustaso", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Verkkorajapinta", + "Network Peers": "Verkon vertaissolmut", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "Ei vertaissolmuja", + "No public node selected - please select a public node": "Julkista solmua ei valittu - ole hyvä ja valitse julkinen solmu", + "No transactions": "Ei tapahtumia", + "No wallets found, please create a new wallet": "Lompakoita ei löytynyt, luo uusi lompakko", + "Node": "Solmu", + "Node Status": "Solmun tila", + "Noise": "Harotus", + "None": "Ei mitään", + "Normal": "Normal", + "Not Connected": "Ei yhdistetty", + "Not connected": "Ei yhdistetty", + "Notifications": "Ilmoitukset", + "Open Data Folder": "Avaa datahakemisto", + "Opening wallet:": "Avataan lompakkoa:", + "Optional": "Valinnainen", + "Options": "Options", + "Other operations": "Muut toiminnot", + "Outbound": "Lähtevä", + "Overview": "Yleiskatsaus", + "PREV": "PREV", + "Parents": "Vanhemmat", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Aiempi keskilohkoaika", + "Payment & Recovery Password": "Maksamisen ja palautuksen salasana", + "Payment Request": "Maksupyyntö", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Vertaissolmut", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Suorituskyky", + "Phishing Hint": "Tietojenkalasteluvihje", + "Ping:": "Ping:", + "Please Confirm Deletion": "Vahvista poistaminen", + "Please configure your Kaspa NG settings": "Konfiguroi Kaspa NG -asetuksesi", + "Please connect to Kaspa p2p node": "Yhdistä Kaspa p2p-solmuun", + "Please create a stronger password": "Syötä vahvempi salasana", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Syötä lähetettävä määrä", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Syötä tilin nimi", + "Please enter the wallet secret": "Syötä lompakon salasana", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Huomioithan, että vaarannat turvasanojen vuotamisen haittaohjelmille jos kopioit ne leikepöydälle.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Valitse tilin tyyppi", + "Please select export type": "Please select export type", + "Please select the private key to export": "Valitse vietävä yksityinen avain", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Aseta solmu tilaan 'Poistettu käytöstä' poistaaksesi datahakemiston", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Syötä oletustilin nimi. Tämä oletustili luodaan lompakon ohessa, minkä jälkeen voit luoda lisää tilejä tarpeesi mukaan.", + "Please specify the name of the new wallet": "Syötä nimi uudelle lompakollesi", + "Please specify the private key type for the new wallet": "Valitse uuden lompakon yksityisen avaimen tyyppi", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Voit odottaa solmun synkronoitumista tai yhdistää etäsolmuun.", + "Please wait for the node to sync...": "Odota, solmu synkronoituu...", + "Please wait...": "Odota...", + "Presets": "Esiasetukset", + "Price": "Hinta", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Yksityisen avaimen turvasanat", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Runkoja käsitelty", + "Processed Dependencies": "Riippuvuuksia käsitelty", + "Processed Headers": "Otsikoita käsitelty", + "Processed Mass Counts": "Massalukumäärä käsitelty", + "Processed Transactions": "Tapahtumia käsitelty", + "Processing...": "Processing...", + "Protocol:": "Protokolla:", + "Public Node": "Julkinen solmu", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Satunnainen julkinen solmu", + "Range:": "Alue:", + "Receive Address": "Vastaaottajan osoite", + "Recommended arguments for the remote node: ": "Suositellut argumentit etäsolmulle:", + "Redistributables": "Uudelleenjaettavaksi", + "Remote": "Etä", + "Remote Connection:": "Etäyhteys:", + "Remote p2p Node Configuration": "Etä p2p-solmun konfiguraatio", + "Removes security restrictions, allows for single-letter passwords": "Poistaa tietoturvarajoitukset, sallii yhden kirjaimen salasanat", + "Reset Settings": "Palauta oletusasetukset", + "Reset VSPC": "Palauta VSPC", + "Resident Memory": "Fyysinen muisti", + "Resources": "Resurssit", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Saadut daemoni-argumentit:", + "Rust Wallet SDK": "Rust-lompakko SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa GitHubissa", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Salasana on liian heikko", + "Secret score:": "Salasanan arviointi:", + "Select Account": "Valitse tili", + "Select Private Key Type": "Valitse yksityisen avaimen tyyppi", + "Select Public Node": "Valitse julkinen solmu", + "Select Wallet": "Valitse lompakko", + "Select a wallet to unlock": "Valitse avattava lompakko", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Lähetä", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Palvelut", + "Settings": "Asetukset", + "Show DAA": "Näytä DAA", + "Show Grid": "Näytä ruudukko", + "Show VSPC": "Näytä VSPC", + "Show balances in alternate currencies for testnet coins": "Näytä saldot vaihtoehtoisissa valuutoissa testnet-kolikoille", + "Show passphrase": "Show passphrase", + "Show password": "Näytä salasana", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Näyttää testnet-kolikoiden saldot vaihtoehtoisissa valuutoissa (BTC, USD) kuin käyttäisit mainnet-verkkoa", + "Skip": "Ohita", + "Small (10 BPS)": "Pieni (10 BPS)", + "Spread": "Hajonta", + "Stage": "Vaihe", + "Starting...": "Aloitetaan...", + "Statistics": "Tilastot", + "Stop": "Stop", + "Stor Read": "Mass. luku", + "Stor Write": "Mass. kirj.", + "Storage": "Massamuisti", + "Storage Read": "Massamuisti luku", + "Storage Read/s": "Massamuisti luku/s", + "Storage Size": "Storage Size", + "Storage Write": "Massamuisti kirjoitus", + "Storage Write/s": "Massamuisti kirjoitus/s", + "Strong": "Strong", + "Submitted Blocks": "Lähetetyt lohkot", + "Syncing Cryptographic Proof...": "Synkronoidaan kryptografista todistusta...", + "Syncing DAG Blocks...": "Synkronoidaan DAG-lohkoja...", + "Syncing Headers...": "Synkronoidaan otsikoita...", + "Syncing UTXO entries...": "Synkronoidaan UTXO-merkintöjä...", + "Syncing...": "Synkronoidaan...", + "System": "Järjestelmä", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Kaspa NG -ohjelmisto edustaa jatkuvaa panosta, jonka pääpaino on rakentaa johtava ohjelmistoalusta Kaspa BlockDAG -kryptovaluutan verkolle. Tämä ohjelmisto priorisoi tietoturvaa, yksityisyyttä, suorituskykyä sekä hajauttamista ja se onkin ideologinen luonteeltaan.", + "The balance may be out of date during node sync": "Saldo voi olla vanhentunut solmun synkronoinnin aikana", + "The following will guide you through the process of creating or importing a wallet.": "Seuraavaksi sinut ohjataan tekemään lompakon tuonti tai luominen.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "Solmu synkroinoituu Kaspa p2p-verkon kanssa parhaillaan.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "Solmu synkroinoituu Kaspa p2p-verkon kanssa parhaillaan. Tilin saldot voivat olla vanhentuneita.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "Solmu-daemoni käynnistetään lapsiprosessina (suositeltu).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "Solmu suoritetaan osana Kaspa NG -sovelluksen prosessia. Tämä vähentää tiedonsiirtokuormitusta (kokeellinen).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Teeman väri", + "Theme Color:": "Teeman väri:", + "Theme Style": "Teeman tyyli", + "Theme Style:": "Teeman tyyli:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Tämä lompakko ei koskaan kysy näitä turvasanoja ellet itse tietoisesti käynnistä yksityisen avaimen palausta.", + "Threshold": "Raja-arvo", + "Time Offset:": "Aikasiirtymä:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Kärkitiivisteitä", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Rx yht.", + "Total Rx/s": "Rx/s yht.", + "Total Tx": "Tx yht.", + "Total Tx/s": "Tx/s yht.", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Seuraa taustalla", + "Transactions": "Tapahtumat", + "Transactions:": "Tapahtumat:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Tyyppi", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UXTO-hallinta", + "UTXOs": "UTXO:t", + "UTXOs:": "UTXO:t:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Solmun asetuksia ei voida muuttaa kunnes ongelma on ratkaistu", + "Unable to store settings": "Unable to store settings", + "Unlock": "Avaa lukitus", + "Unlock Wallet": "Avaa lompakon lukitus", + "Unlocking": "Avataan lukitusta", + "Update Available to version": "Päivitys saatavilla versioon", + "Updating...": "Päivitetään...", + "Uptime:": "Käynnissäoloaika:", + "Use 50%-75% of available system memory": "Käytä 50–75 % käytettävissä olevasta keskusmuistista", + "Use all available system memory": "Käytä kaikki käytettävissä oleva keskusmuisti", + "User Agent": "Käyttäjäagentti", + "User Interface": "Käyttöliittymä", + "Very dangerous (may be cracked within few seconds)": "Hyvin vaarallinen (voidaan murtaa muutamassa sekunnissa)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Virt. vanhemmat", + "Virtual DAA Score": "Virtuaalinen DAA-pisteytys", + "Virtual Memory": "Virtuaalimuisti", + "Virtual Parent Hashes": "Virtuaaliset tiivistevanhemmat", + "Volume": "Volyymi", + "WASM SDK for JavaScript and TypeScript": "WASM SDK JavaScriptille ja TypeScriptille", + "Wallet": "Lompakko", + "Wallet Created": "Lompakko luotu", + "Wallet Encryption Password": "Lompakon salaamisen salasana", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Lompakon nimi", + "Wallet Secret": "Lompakon salasana", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Lompakon salasanaa käytetään salaamaan lompakon data.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Lompakko:", + "We greatly appreciate your help in backing our efforts.": "Arvostamme suuresti, että tuet pyrkimyksiämme.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Tervetuloa Kaspa NG:hen", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "Et ole tällä hetkellä yhteydessä Kaspa-solmuun.", + "You can configure remote connection in Settings": "Voit konfiguroida etäyhteyden Asetuksissa", + "You can create multiple wallets, but only one wallet can be open at a time.": "Voit luoda useamman kuin yhden lompakon, mutta vain yksi voi olla auki kerrallaan.", + "You must be connected to a node...": "Yhteys solmuun tarvitaan...", + "Your default wallet private key mnemonic is:": "Oletuslompakkosi yksityisen avaimen turvasanat ovat:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Turvasanasi mahdollistavat yksityisen avaimesi palauttamisen. Kuka tahansa, jolla on nämä turvasanat saa täyden pääsyn sinne säilytettävään Kaspaan. Pidä sanat turvassa. Kirjoita ne paperille ja säilytä ne turvallisessa paikassa, mielellään paloturvallisessa sellaisessa. Älä tallenna turvasanojasi tälle tietokoneelle tai mobiililaitteelle. Tämä lompakko ei koskaan kysy sinua syöttämään turvasanoja ellet itse tietoisesti käynnistä yksityisen avaimen palautusta.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Yksityisen avaimesi turvasanat ovat:", + "Your wallet has been created and is ready to use.": "Lompakkosi on luotu ja valmis käyttöön.", + "Zoom": "Zoom", + "bye!": "hei hei!", + "gRPC Network Interface & Port": "gPRC-verkkorajapinta ja portti", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "of", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "vertaissolmu", + "peers": "vertaissolmua", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "wRPC-yhteysasetukset", + "wRPC Encoding:": "wRPC-enkoodaus:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "RPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" + }, + "fil": {}, + "fr": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'L'indice de phishing' est un mot secret ou une phrase qui s'affiche lorsque vous ouvrez votre portefeuille. Si vous ne voyez pas l'indice lorsque vous ouvrez votre portefeuille, vous accédez peut-être à un faux portefeuille conçu pour voler vos fonds. Si cela se produit, arrêtez immédiatement d'utiliser le portefeuille, vérifiez le nom de domaine dans l'URL du navigateur et demandez de l'aide sur les réseaux sociaux (Discord ou Telegram de Kaspa).", + "1 BPS test network": "Réseau expérimental 1 BPS", + "10 BPS test network": "Réseau expérimental 10 BPS", + "12 word mnemonic": "Mnémonique de 12 mots", + "24 word mnemonic": "Mnémonique de 24 mots", + "24h Change": "Changement sur 24h", + "3 hours or more": "3 heures ou plus", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} seconde", + "< {seconds} seconds": "< {seconds} secondes", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "Un binaire situé à un autre emplacement est créé par un processus enfant (expérimental, à des fins de développement uniquement).", + "A random node will be selected on startup": "Un nœud aléatoire sera sélectionné au démarrage", + "A wallet is stored in a file on your computer.": "Un portefeuille est stocké dans un fichier sur votre ordinateur.", + "Account Index": "Index du compte", + "Account Name": "Nom du compte", + "Account not found": "Account not found", + "Account:": "Compte :", + "Activate custom daemon arguments": "Activer les arguments du daemon personnalisés", + "Active p2p Peers": "Pairs P2P actifs", + "Add Account": "Ajouter un compte", + "Address copied to clipboard": "Adresse copiée dans le presse-papier", + "Address derivation scan": "Analyse des adresses de dérivation", + "Address:": "Adresse :", + "Advanced": "Avancé", + "All": "Tous", + "Allow clipboard copy": "Autoriser la copie du presse-papiers", + "Allow custom arguments for the Rusty Kaspa daemon": "Autoriser les arguments personnalisés pour le daemon Rusty Kaspa", + "Allows you to take screenshots from within the application": "Vous permet de prendre des captures d'écran depuis l'application", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "L'application doit être redémarrée pour que ce paramètre soit pris en compte.", + "Apply": "Appliquer", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Êtes-vous sûr de vouloir réinitialiser les paramètres ?", + "BALANCE": "BALANCE", + "Balance: N/A": "Balance : N/A", + "Bandwidth": "Bande passante", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "En raison de l'accent mis sur la sécurité et les performances, ce logiciel est entièrement développé en Rust, ce qui nécessite beaucoup plus de temps et d'efforts que d'autres logiciels traditionnels.", + "Bezier Curves": "Courbes de Bézier", + "Block DAG": "Bloc DAG", + "Block Scale": "Échelle du bloc", + "Blocks": "Blocs", + "Bodies": "Corps", + "Borsh Active Connections": "Connections actives Borsh", + "Borsh Connection Attempts": "Tentatives de connexion Borsh", + "Borsh Handshake Failures": "Échecs d'établissement de liaison Borsh", + "Build": "Build", + "CONNECTED": "CONNECTÉ", + "CPU": "CPU", + "Cache Memory Size": "Taille de la mémoire cache", + "Cancel": "Annuler", + "Cannot delete data folder while the node is running": "Impossible de supprimer le dossier de données pendant que le nœud est en cours d'exécution", + "Capture a screenshot": "Faire une capture d'écran", + "Capture saved to {path}": "Capture enregistrée dans {path}", + "Center VSPC": "Centrer VSPC", + "Chain Blocks": "Blocs de la chaine", + "Change Address": "Changer l'adresse", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Vérifier les mises à jour sur Github", + "Check for Updates": "Vérifier les mises à jour", + "Clear": "Effacer", + "Click to try another server...": "Cliquez pour essayer un nouveau serveur...", + "Client RPC": "Client RPC", + "Close": "Fermer", + "Close the window": "Fermer la fenêtre", + "Confirm BIP39 passphrase": "Confirmez la phrase secrète BIP39", + "Confirm wallet password": "Confirmer le mot de passe du portefeuille", + "Connecting to": "Connexion à ", + "Connection": "Connexion", + "Connections": "Connexions", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Se connecte à un nœud Rusty Kaspa distant via wRPC.", + "Conservative": "Conservateur", + "Continue": "Continuer", + "Copied to clipboard": "Copié dans le presse-papier", + "Copy": "Copier", + "Copy logs to clipboard": "Copier les journaux dans le presse-papier", + "Create New Wallet": "Créer un nouveau portefeuille", + "Create Wallet": "Créer un portefeuille", + "Create new wallet": "Créer un nouveau portefeuille", + "Creating Account": "Compte en cours de création", + "Creating Wallet": "Portefeuille en cours de création", + "Custom": "Personnalisé", + "Custom Public Node": "Nœud public personnalisé", + "Custom arguments:": "Arguments personnalisés :", + "Custom data storage folder": "Dossier de stockage des données personnalisées", + "DAA": "DAA", + "DAA Offset": "DAA Offset", + "DAA Range": "DAA Range", + "DB Blocks": "Blocs de la DB", + "DB Headers": "En-tête DB", + "Dangerous": "Dangereux", + "Data Storage": "Stockage de données", + "Database Blocks": "Blocs de la base de données", + "Database Headers": "En-têtes de la base de données", + "Decrypt": "Déchiffrer", + "Decrypting Wallet File": "Déchiffrement du portefeuille en cours", + "Decrypting wallet, please wait...": "Portefeuille en cours de déchiffrement, merci de patienter...", + "Default": "Par défaut", + "Default Account Name": "Nom de compte par défaut", + "Delete Data Folder": "Supprimer le dossier de données", + "Dependencies": "Dépendances", + "Derivation Indexes": "Index de dérivation", + "Details": "Détails", + "Developer Mode": "Mode développeur", + "Developer Resources": "Ressources pour les développeurs", + "Developer mode enables advanced and experimental features": "Le mode développeur permet d'activer des fonctionnalités avancées et expérimentales", + "Difficulty": "Difficulté", + "Dimensions": "Dimensions", + "Disable Window Frame": "Désactiver le cadre de la fenêtre", + "Disable password safety rules": "Désactiver les règles de sécurité du mot de passe", + "Disabled": "Désactivé", + "Disables node connectivity (Offline Mode).": "Désactive la connectivité au nœud (mode hors ligne)", + "Discord": "Discord", + "Donations": "Dons", + "Double click on the graph to re-center...": "Double-cliquer sur le graphique pour recentrer...", + "ECDSA": "ECDSA", + "Economic": "Economique", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economique: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Activer le moniteur de marché", + "Enable UPnP": "Activer UPnP", + "Enable custom daemon arguments": "Activer les arguments personnalisés pour le daemon", + "Enable experimental features": "Activer les fonctionnalités expérimentales", + "Enable gRPC": "Activer gRPC", + "Enable optional BIP39 passphrase": "Activer la phrase secrète BIP39 optionnelle", + "Enable screen capture": "Activer la capture d'écran", + "Enables features currently in development": "Active les fonctionnalités en cours de développement", + "Enter": "Entrer", + "Enter BIP39 passphrase": "Entrez la phrase secrète BIP39", + "Enter account name (optional)": "Entrez un nom de compte (optionnel)", + "Enter destination address": "Entrer l'adresse de destination", + "Enter first account name": "Entrez le premier nom de compte", + "Enter mnemonic": "Entrez le mnémonique", + "Enter password to decrypt this wallet file": "Entrer le mot de passe pour déchiffrer ce portefeuille", + "Enter phishing hint": "Entrez un indice de phishing", + "Enter priority fees": "Entrer les frais de priorité", + "Enter the amount": "Entrez le montant", + "Enter the password for your wallet": "Entrez le mot de passe de votre portefeuille", + "Enter the password to unlock your wallet": "Entrez le mot de passe pour déverrouiller votre portefeuille", + "Enter wallet name": "Entrez le nom du portefeuille", + "Enter wallet password": "Entrez le mot de passe du portefeuille", + "Enter your wallet secret": "Entrez le secret de votre portefeuille", + "Enter {suffix} amount to send": "Entrer le montant {suffix} à envoyer", + "Error": "Erreur", + "Error importing a wallet": "Erreur lors de l'import du portefeuille", + "Error processing mnemonic: {err}": "Erreur pour traiter le mnémonique: {err}", + "Exit Full Screen": "Quitter le mode plein écran", + "Explorer": "Explorateur", + "Export Wallet Data": "Exporter les données du portefeuille", + "FIRST": "PREMIER", + "Faucet": "Faucet", + "Fee Market": "Frais de marché", + "Fee Market & Network Pressure": "Frais de marché et pression du réseau", + "Fee Market Only": "Frais de marché uniquement", + "File Handles": "Descripteurs de fichiers", + "File contents": "Contenu du fichier", + "Filename:": "Nom de fichier :", + "Final Amount:": "Montant final :", + "Final Amount: {amount}": "Montant final: {amount}", + "For decrypting uploaded file please enter wallet secret.": "Merci d'entrer le secret du portefeuille pour déchiffrer le fichier envoyé", + "Full Screen": "Plein écran", + "Generate New Change Address": "Générer une nouvelle adresse de transfert", + "Generate New Receive Address": "Générer une nouvelle adresse de réception", + "GitHub Release": "Version Github", + "Go to Settings": "Paramètres", + "Good": "Bien", + "Handles": "Descripteurs", + "Headers": "En-têtes", + "High": "Elevé", + "IBD:": "IBD :", + "If not specified, the account will be represented by the numeric id.": "S’il n’est pas spécifié, le compte sera représenté par l’identifiant numérique.", + "If you are running locally, use: ": "Si vous exécutez localement, utilisez :", + "Import Existing Private Key": "Importer une clé privé existante", + "Import existing": "Importer l'existant", + "Import existing file": "Importer un fichier existant", + "Importing Legacy Wallet": "Importer un fichier legacy", + "Importing Wallet": "Importation du portefeuille", + "Importing Wallet File": "Importer un portefeuille", + "Inbound": "Entrant", + "Integrated Daemon": "Daemon intégré", + "Invalid amount:": "Montant non valide:", + "Invalid daemon arguments": "Arguments du daemon invalides", + "Invalid fee amount:": "Montant de frais non valide:", + "Invalid wRPC URL": "URL wRPC invalide", + "Json Active Connections": "Connexions JSON actives", + "Json Connection Attempts": "Tentatives de connexion JSON", + "Json Handshake Failures": "Échecs d'établissement de liaison JSON", + "Kaspa Discord": "Discord Kaspa", + "Kaspa Integration Guide": "Guide d'intégration Kaspa", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG sur Github", + "Kaspa NG online": "Kaspa NG en ligne", + "Kaspa Network": "Réseau Kaspa", + "Kaspa Node": "Nœud Kaspa", + "Kaspa p2p Network & Node Connection": "Réseau p2p Kaspa et connexion du nœud", + "Kaspa p2p Node": "Nœud p2p Kaspa", + "Kaspa p2p Node & Connection": "Nœud p2p Kaspa et connexions", + "Key Perf.": "Perf. clé", + "LAST": "DERNIER", + "Language:": "Langue :", + "Large (1 BPS)": "Grand (1 BPS)", + "Legacy 12 word mnemonic": "Mnémonique de 12 mots legacy", + "Levels": "Niveaux", + "License Information": "Informations de licence", + "Local": "Local", + "Local p2p Node Configuration": "Configuration du nœud p2p local", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Journaux", + "Low": "Faible", + "Low-priority": "Faible priorité", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Faible: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Réseau Kaspa principal", + "Mainnet": "Mainnet", + "Managed by the Rusty Kaspa daemon": "Géré par le daemon Rusty Kaspa", + "Market": "Marché", + "Market Cap": "Capitalisation boursière", + "Market Monitor": "Moniteur du marché", + "Mass Processed": "Traité en masse", + "Mass:": "Masse:", + "Mass: {number}g": "Masse: {number}g", + "Maximize window": "Agrandir la fenêtre", + "Medium Narrow": "Moyen étroit", + "Medium Wide": "Moyen large", + "Memory": "Mémoire", + "Mempool": "Mempool", + "Mempool Size": "Taille du mempool", + "Metrics": "Métriques", + "Metrics are not currently available": "Les métriques sont actuellement indisponibles", + "Miner Fee": "Frais du mineur:", + "Minimize the window": "Minimiser la fenêtre", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Importer un mnémonique", + "NEXT": "SUIVANT", + "NO NAME": "SANS NOM", + "NPM Modules for NodeJS": "Module NPM pour NodeJS", + "Network": "Réseau", + "Network Difficulty": "Difficulté du réseau", + "Network Fee Estimator": "Estimer les frais du réseau", + "Network Interface": "Interface réseau", + "Network Peers": "Pairs dans le réseau", + "Network Pressure: ~{number}%": "Pression du réseau: ~{number}%", + "Never share your mnemonic with anyone!": "Ne partagez jamais votre mnémonique avec qui que ce soit !", + "No peers": "Pas de pairs", + "No public node selected - please select a public node": "Aucun nœud public sélectionné - veuillez sélectionner un nœud public", + "No transactions": "Aucune transaction", + "No wallets found, please create a new wallet": "Aucun portefeuille n'a été trouvé, veuillez créer un nouveau portefeuille", + "Node": "Nœud", + "Node Status": "Status du nœud", + "Noise": "Bruit", + "None": "Aucun", + "Normal": "Normal", + "Not Connected": "Non connecté", + "Not connected": "Pas connecté", + "Notifications": "Notifications", + "Open Data Folder": "Ouvrir le dossier de données", + "Opening wallet:": "Ouverture du portefeuille :", + "Optional": "Optionnel", + "Options": "Options", + "Other operations": "Autre opérations", + "Outbound": "Sortant", + "Overview": "Aperçu", + "PREV": "PREC", + "Parents": "Parents", + "Passive Sync": "Synchronisation passive", + "Passphrase is too weak": "La phrase secrète BIP39 est trop faible", + "Passphrases do not match": "Les phrases secrètes sont différentes", + "Passwords do not match": "Les mots de passe sont différents", + "Past Median Time": "Temps médian passé", + "Payment & Recovery Password": "Mot de passe de paiement et de récupération", + "Payment Request": "Demande de paiement", + "Payment request to account: {account}": "Demande de paiement sur le compte: {account}", + "Peers": "Pairs", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performance", + "Phishing Hint": "Indice de phishing", + "Ping:": "Ping :", + "Please Confirm Deletion": "Veuillez confirmer la suppression", + "Please configure your Kaspa NG settings": "Veuillez configurer vos paramètres de Kaspa NG", + "Please connect to Kaspa p2p node": "Veuillez vous connecter à un nœud p2p Kaspa", + "Please create a stronger password": "Veuillez créer un mot de passe plus fort", + "Please enter a valid address: {err}": "Veuillez entrer une adresse valide: {err}", + "Please enter a valid amount of KAS": "Veuillez entrer un montant de KAS valide", + "Please enter additional {amount} words": "Veuillez entrer {amount} mots additionnels", + "Please enter an amount": "Veuillez entrer un montant", + "Please enter mnemonic comprised of {number} words": "Veuillez entrer un mnémonique composé de {number} mots", + "Please enter the account name": "Veuillez entrer le nom du compte", + "Please enter the wallet secret": "Veuillez entrer le secret du portefeuille", + "Please enter {suffix} amount to send": "Veuillez entrer un montant {suffix} à envoyer", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Veuillez noter que la copie dans le presse-papiers comporte un risque d'exposition de votre phrase mnémonique à des logiciels malveillants.", + "Please select 'Apply' and restart the application.": "Veuillez sélectionner 'Appliquer' et redémarrez l'application.", + "Please select account to scan": "Veuillez sélectionner le compte à scanner", + "Please select an account type": "Veuillez sélectionner un type de compte", + "Please select export type": "Veuillez sélectionner un type d'export", + "Please select the private key to export": "Veuillez sélectionner la clé privée à exporter", + "Please select the private key type you would like to import in the new wallet": "Veuillez sélectionner le type de clé privée que vous souhaitez importer dans le nouveau portefeuille", + "Please set node to 'Disabled' to delete the data folder": "Veuillez définir le nœud sur 'Désactivé' pour supprimer le dossier de données", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Veuillez préciser le nom du compte par défaut. Le portefeuille sera créé avec un compte par défaut. Une fois créé, vous pourrez créer des comptes supplémentaires selon vos besoins.", + "Please specify the name of the new wallet": "Veuillez spécifier le nom du nouveau portefeuille", + "Please specify the private key type for the new wallet": "Veuillez spécifier le type de clé privée pour le nouveau portefeuille", + "Please support Kaspa NG development": "Soutenir le développement de Kaspa NG", + "Please wait for the node to sync or connect to a remote node.": "Veuillez attendre que le nœud se synchronise ou se connecte à un nœud distant.", + "Please wait for the node to sync...": "Veuillez attendre que le nœud se synchronise...", + "Please wait...": "Veuillez patienter...", + "Presets": "Paramètres prédéfinis", + "Price": "Prix", + "Priority": "Priorité", + "Priority Fee Estimator": "Estimer les frais de priorité", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priorité: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Mnémonique de clé privée", + "Private key mnemonic stored in this wallet": "Clé mnémonique privée enregistrée dans ce portefeuille", + "Processed Bodies": "Corps traités", + "Processed Dependencies": "Dépendances traitées", + "Processed Headers": "En-têtes traitées", + "Processed Mass Counts": "Compteurs en masse traités", + "Processed Transactions": "Transactions traitées", + "Processing...": "Traitement en cours...", + "Protocol:": "Protocole :", + "Public Node": "Nœud public", + "Public wRPC (Borsh)": "wRPC Public (Borsh)", + "Quit": "Quitter", + "Random Public Node": "Nœud public aléatoire", + "Range:": "Échelle :", + "Receive Address": "Adresse de réception", + "Recommended arguments for the remote node: ": "Arguments recommandés pour le nœud distant :", + "Redistributables": "Redistribuables", + "Remote": "Distant", + "Remote Connection:": "Connexion distante :", + "Remote p2p Node Configuration": "Configuration du nœud p2p distant", + "Removes security restrictions, allows for single-letter passwords": "Supprime les restrictions de sécurité, autorise les mots de passe à une seule lettre", + "Reset Settings": "Réinitialiser les paramètres", + "Reset VSPC": "Réinitialiser VSPC", + "Resident Memory": "Mémoire résidente", + "Resources": "Ressources", + "Restart": "Redémarrer", + "Restore window": "Restaurer la fenêtre", + "Resulting daemon arguments:": "Arguments du daemon résultant :", + "Rust Wallet SDK": "SDK du portefeuille Rust", + "Rusty Kaspa on GitHub": "Rusty Kaspa sur Github", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scan complet...", + "Secret is too weak": "Le secret est trop faible", + "Secret score:": "Score du secret :", + "Select Account": "Sélectionnez le compte", + "Select Private Key Type": "Sélectionnez le type de clé privée", + "Select Public Node": "Sélectionnez le nœud public", + "Select Wallet": "Sélectionnez le portefeuille", + "Select a wallet to unlock": "Sélectionnez un portefeuille à déverrouiller", + "Select file...": "Sélectionner un fichier", + "Select this option if your wallet was created": "Sélectionnez cette option si votre portefeuille était créé", + "Send": "Envoyer", + "Sending funds": "Envoi des fonds", + "Sending funds without priority fees will result in long transaction wait times.": "Envoyer des fonds sans frais de priorité entraînera de longs délais d'attente pour la transaction.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Services", + "Settings": "Paramètres", + "Show DAA": "Afficher DAA", + "Show Grid": "Afficher la grille", + "Show VSPC": "Afficher VSPC", + "Show balances in alternate currencies for testnet coins": "Afficher les soldes dans des devises alternatives pour les monnaies du réseau de test", + "Show passphrase": "Afficher la phrase secrète", + "Show password": "Afficher le mot de passe", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Affiche les soldes dans des devises alternatives (BTC, USD) lorsque vous utilisez les monnaies du réseau de test comme si vous étiez sur le réseau principal", + "Skip": "Passer", + "Small (10 BPS)": "Petit (10 BPS)", + "Spread": "Répartition", + "Stage": "Phase", + "Starting...": "Démarrage...", + "Statistics": "Statistiques", + "Stop": "Arrêter", + "Stor Read": "Lecture stockage", + "Stor Write": "Écriture stockage", + "Storage": "Stockage", + "Storage Read": "Lecture stockage", + "Storage Read/s": "Lecture stockage par secondes", + "Storage Size": "Taille du stockage", + "Storage Write": "Écriture stockage", + "Storage Write/s": "Écriture stockage par seconde", + "Strong": "Fort", + "Submitted Blocks": "Blocs soumis", + "Syncing Cryptographic Proof...": "Synchronisation de la preuve cryptographique...", + "Syncing DAG Blocks...": "Synchronisation des blocs du DAG...", + "Syncing Headers...": "Synchronisation des en-têtes...", + "Syncing UTXO entries...": "Synchronisation des entrées UTXO...", + "Syncing...": "Synchronisation...", + "System": "Système", + "TPS": "TPS", + "Testnet 10": "Réseau de test 10", + "Testnet 11": "Réseau de test 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Le logiciel Kaspa NG représente un effort continu axé sur la création d'une plate-forme logicielle de pointe dédiée au réseau de crypto-monnaie Kaspa BlockDAG. Idéologique à sa base, ce logiciel donne la priorité à la sécurité, à la confidentialité, aux performances et à la décentralisation.", + "The balance may be out of date during node sync": "Le solde peut ne pas être à jour durant la synchronisation du nœud", + "The following will guide you through the process of creating or importing a wallet.": "Nous vous guiderons tout au long du processus de création ou d’importation d’un portefeuille.", + "The network is currently congested.": "Le réseau est actuellement congestionné.", + "The node is currently syncing with the Kaspa p2p network.": "Le nœud est en cours de synchronisation avec le réseau p2p Kaspa.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "Le nœud est en cours de synchronisation avec le réseau p2p Kaspa. Le solde du compte n'est peut-être pas à jour.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "Le nœud est actuellement en cours de synchronisation avec le réseau p2p Kaspa. Veuillez patienter pendant la synchronisation du nœud.", + "The node is spawned as a child daemon process (recommended).": "Le nœud est généré en tant que processus deamon enfant (recommandé).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "Le nœud s'exécute dans le cadre du processus de l'application Kaspa-NG. Cela réduit la surcharge des communications (expérimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "Le nœud se synchronise en arrière-plan pendant que Kaspa-NG est connecté à un nœud public.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "Le nœud se synchronise en arrière-plan pendant que Kaspa-NG est connecté à un nœud public. Une fois le nœud synchronisé, vous pouvez passer en mode « integrated daemon ».", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "La phrase secrète optionnelle de paiement et le mnémonique de récupération, aussi appelée phrase secrète BIP39, si fournie, sera requise pour envoyer des paiements. Cette phrase secrète sera aussi requise lors de la récupération du portefeuille en plus de votre mnémonique. Si vous perdez ou oubliez votre phrase secrète, vous ne pourrez pas utiliser votre mnémonique pour récupérer votre porte feuille !", + "Theme Color": "Couleur du thème", + "Theme Color:": "Couleur du thème :", + "Theme Style": "Style du thème", + "Theme Style:": "Style du thème :", + "This option will transfer any discovered funds to the first change address of this account.": "Cette option transférera tous les fonds découverts à la première adresse de changement de ce compte.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Ce portefeuille ne vous demandera jamais cette phrase mnémonique, sauf si vous lancez manuellement une récupération de clé privée.", + "Threshold": "Seuil", + "Time Offset:": "Décalage de temps :", + "Timestamp: {timestamp}": "Horodatage: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Trop de mots dans la", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Traquer en arrière-plan", + "Transactions": "Transactions", + "Transactions:": "Transactions :", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transférer les fonds lors du scan", + "Type": "Type", + "URI copied to clipboard": "URI copié dans le presse-papier", + "UTXO Manager": "Gestionnaire d'UTXO", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs :", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Impossible de modifier les paramètres du nœud jusqu'à ce que le problème soit résolu", + "Unable to store settings": "Unable to store settings", + "Unlock": "Déverrouiller", + "Unlock Wallet": "Déverrouiller le portefeuille", + "Unlocking": "Déverrouillage", + "Update Available to version": "Mise à jour disponible vers la version", + "Updating...": "Mise à jour...", + "Uptime:": "Disponibilité :", + "Use 50%-75% of available system memory": "Utilise 50 %-75% de la mémoire système disponible", + "Use all available system memory": "Utilise toute la mémoire système disponible", + "User Agent": "User Agent", + "User Interface": "Interface utilisateur", + "Very dangerous (may be cracked within few seconds)": "Très dangereux (peut être cracké en quelques secondes)", + "Very strong": "Très robuste", + "Very weak": "Très faible", + "Virt Parents": "Parents virtuels", + "Virtual DAA Score": "Score DAA virtuel", + "Virtual Memory": "Mémoire virtuelle", + "Virtual Parent Hashes": "Hash des parents virtuels", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK pour JavaScript et TypeScript", + "Wallet": "Portefeuille", + "Wallet Created": "Portefeuille créé", + "Wallet Encryption Password": "Mot de passe de chiffrement du portefeuille", + "Wallet File Secret": "Secret du fichier du portefeuille", + "Wallet Name": "Nom du portefeuille", + "Wallet Secret": "Secret du portefeuille", + "Wallet creation error:": "Erreur lors de la création du portefeuille:", + "Wallet decrypting error:": "Erreur lors du déchiffrement du portefeuille:", + "Wallet password is used to encrypt your wallet data.": "Le mot de passe du portefeuille est utilisé pour chiffrer les données de votre portefeuille.", + "Wallet with this name already exists": "Un portefeuille avec ce nom existe déjà", + "Wallet:": "Portefeuille :", + "We greatly appreciate your help in backing our efforts.": "Nous apprécions grandement votre aide pour soutenir nos efforts.", + "Weak": "Faible", + "Welcome to Kaspa NG": "Bienvenu sur Kaspa NG", + "Xpub Keys": "Clés Xpub", + "You are currently not connected to the Kaspa node.": "Vous n'êtes actuellement pas connecté au nœud Kaspa.", + "You can configure remote connection in Settings": "Vous pouvez configurer la connexion à distance dans Paramètres", + "You can create multiple wallets, but only one wallet can be open at a time.": "Vous pouvez créer plusieurs portefeuilles, mais un seul portefeuille peut être ouvert à la fois.", + "You must be connected to a node...": "Vous devez être connecté à un nœud...", + "Your default wallet private key mnemonic is:": "Le mnémonique de votre clé privée de portefeuille par défaut est :", + "Your mnemonic is protected with a bip39 passphrase": "Votre mnemonic est protégé par une phrase secrète BIP39", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Votre phrase mnémonique vous permet de recréer votre clé privée. La personne qui a accès à ce mnémonique aura le contrôle total du Kaspa qui y est stocké. Gardez votre mnémonique en sécurité. Notez-le et conservez-le dans un coffre-fort, de préférence dans un endroit résistant au feu. Ne stockez pas votre mnémonique sur cet ordinateur ou un appareil mobile. Ce portefeuille ne vous demandera jamais cette phrase mnémonique, sauf si vous lancez manuellement une récupération de clé privée.", + "Your mnemonic phrase is invalid": "Votre phrase mnémonique n'est pas valide", + "Your private key mnemonic is:": "La mnémonique de votre clé privée est :", + "Your wallet has been created and is ready to use.": "Votre portefeuille a été créé et est prêt à être utilisé.", + "Zoom": "Zoom", + "bye!": "au revoir!", + "gRPC Network Interface & Port": "Interface réseau et port gRPC", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "sur", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "pair", + "peers": "pairs", + "using KDX or kaspanet.io web wallet": "En utilisant KDX ou le portefeuille web kaspanet.io", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "Paramètres de connexion wRPC", + "wRPC Encoding:": "Encodage xRPC :", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": " URL wRPC :", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Envoyer", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transférer", + "{qrCodeIcon} Request": "{qrCodeIcon} Demander", + "~2 hours": "~2 heures", + "~30 minutes": "~30 minutes" + }, + "he": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS test network", + "10 BPS test network": "10 BPS test network", + "12 word mnemonic": "12 word mnemonic", + "24 word mnemonic": "24 word mnemonic", + "24h Change": "24h Change", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "A binary at another location is spawned a child process (experimental, for development purposes only).", + "A random node will be selected on startup": "A random node will be selected on startup", + "A wallet is stored in a file on your computer.": "A wallet is stored in a file on your computer.", + "Account Index": "Account Index", + "Account Name": "Account Name", + "Account not found": "Account not found", + "Account:": "Account:", + "Activate custom daemon arguments": "Activate custom daemon arguments", + "Active p2p Peers": "Active p2p Peers", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Address derivation scan", + "Address:": "Address:", + "Advanced": "Advanced", + "All": "All", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Allow custom arguments for the Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Allows you to take screenshots from within the application", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Apply", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Balance: N/A", + "Bandwidth": "Bandwidth", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.", + "Bezier Curves": "Bezier Curves", + "Block DAG": "Block DAG", + "Block Scale": "Block Scale", + "Blocks": "Blocks", + "Bodies": "Bodies", + "Borsh Active Connections": "Borsh Active Connections", + "Borsh Connection Attempts": "Borsh Connection Attempts", + "Borsh Handshake Failures": "Borsh Handshake Failures", + "Build": "Build", + "CONNECTED": "CONNECTED", + "CPU": "CPU", + "Cache Memory Size": "Cache Memory Size", + "Cancel": "Cancel", + "Cannot delete data folder while the node is running": "Cannot delete data folder while the node is running", + "Capture a screenshot": "Capture a screenshot", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Center VSPC", + "Chain Blocks": "Chain Blocks", + "Change Address": "Change Address", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Check for Software Updates on GitHub", + "Check for Updates": "Check for Updates", + "Clear": "Clear", + "Click to try another server...": "Click to try another server...", + "Client RPC": "Client RPC", + "Close": "Close", + "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Confirm wallet password", + "Connecting to": "Connecting to", + "Connection": "Connection", + "Connections": "Connections", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connects to a Remote Rusty Kaspa Node via wRPC.", + "Conservative": "Conservative", + "Continue": "Continue", + "Copied to clipboard": "Copied to clipboard", + "Copy": "Copy", + "Copy logs to clipboard": "Copy logs to clipboard", + "Create New Wallet": "Create New Wallet", + "Create Wallet": "Create Wallet", + "Create new wallet": "Create new wallet", + "Creating Account": "Creating Account", + "Creating Wallet": "Creating Wallet", + "Custom": "Custom", + "Custom Public Node": "Custom Public Node", + "Custom arguments:": "Custom arguments:", + "Custom data storage folder": "Custom data storage folder", + "DAA": "DAA", + "DAA Offset": "DAA Offset", + "DAA Range": "DAA Range", + "DB Blocks": "DB Blocks", + "DB Headers": "DB Headers", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", + "Database Blocks": "Database Blocks", + "Database Headers": "Database Headers", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Decrypting wallet, please wait...", + "Default": "Default", + "Default Account Name": "Default Account Name", + "Delete Data Folder": "Delete Data Folder", + "Dependencies": "Dependencies", + "Derivation Indexes": "Derivation Indexes", + "Details": "Details", + "Developer Mode": "Developer Mode", + "Developer Resources": "Developer Resources", + "Developer mode enables advanced and experimental features": "Developer mode enables advanced and experimental features", + "Difficulty": "Difficulty", + "Dimensions": "Dimensions", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Disabled", + "Disables node connectivity (Offline Mode).": "Disables node connectivity (Offline Mode).", + "Discord": "Discord", + "Donations": "Donations", + "Double click on the graph to re-center...": "Double click on the graph to re-center...", + "ECDSA": "ECDSA", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Enable Market Monitor", + "Enable UPnP": "Enable UPnP", + "Enable custom daemon arguments": "Enable custom daemon arguments", + "Enable experimental features": "Enable experimental features", + "Enable gRPC": "Enable gRPC", + "Enable optional BIP39 passphrase": "Enable optional BIP39 passphrase", + "Enable screen capture": "Enable screen capture", + "Enables features currently in development": "Enables features currently in development", + "Enter": "Enter", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Enter account name (optional)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Enter first account name", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Enter phishing hint", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Enter the amount", + "Enter the password for your wallet": "Enter the password for your wallet", + "Enter the password to unlock your wallet": "Enter the password to unlock your wallet", + "Enter wallet name": "Enter wallet name", + "Enter wallet password": "Enter wallet password", + "Enter your wallet secret": "Enter your wallet secret", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Explorer", + "Export Wallet Data": "Export Wallet Data", + "FIRST": "FIRST", + "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "File Handles", + "File contents": "File contents", + "Filename:": "Filename:", + "Final Amount:": "Final Amount:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub Release", + "Go to Settings": "Go to Settings", + "Good": "Good", + "Handles": "Handles", + "Headers": "Headers", + "High": "High", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "If not specified, the account will be represented by the numeric id.", + "If you are running locally, use: ": "If you are running locally, use: ", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Import existing", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Inbound", + "Integrated Daemon": "Integrated Daemon", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Invalid daemon arguments", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Invalid wRPC URL", + "Json Active Connections": "Json Active Connections", + "Json Connection Attempts": "Json Connection Attempts", + "Json Handshake Failures": "Json Handshake Failures", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Kaspa Integration Guide", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG on GitHub", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Kaspa Network", + "Kaspa Node": "Kaspa Node", + "Kaspa p2p Network & Node Connection": "Kaspa p2p Network & Node Connection", + "Kaspa p2p Node": "Kaspa p2p Node", + "Kaspa p2p Node & Connection": "Kaspa p2p Node & Connection", + "Key Perf.": "Key Perf.", + "LAST": "LAST", + "Language:": "Language:", + "Large (1 BPS)": "Large (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Levels", + "License Information": "License Information", + "Local": "Local", + "Local p2p Node Configuration": "Local p2p Node Configuration", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Logs", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Main Kaspa network", + "Mainnet": "Mainnet", + "Managed by the Rusty Kaspa daemon": "Managed by the Rusty Kaspa daemon", + "Market": "Market", + "Market Cap": "Market Cap", + "Market Monitor": "Market Monitor", + "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Medium Narrow", + "Medium Wide": "Medium Wide", + "Memory": "Memory", + "Mempool": "Mempool", + "Mempool Size": "Mempool Size", + "Metrics": "Metrics", + "Metrics are not currently available": "Metrics are not currently available", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM Modules for NodeJS", + "Network": "Network", + "Network Difficulty": "Network Difficulty", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Network Interface", + "Network Peers": "Network Peers", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "No peers", + "No public node selected - please select a public node": "No public node selected - please select a public node", + "No transactions": "No transactions", + "No wallets found, please create a new wallet": "No wallets found, please create a new wallet", + "Node": "Node", + "Node Status": "Node Status", + "Noise": "Noise", + "None": "None", + "Normal": "Normal", + "Not Connected": "Not Connected", + "Not connected": "Not connected", + "Notifications": "Notifications", + "Open Data Folder": "Open Data Folder", + "Opening wallet:": "Opening wallet:", + "Optional": "Optional", + "Options": "Options", + "Other operations": "Other operations", + "Outbound": "Outbound", + "Overview": "Overview", + "PREV": "PREV", + "Parents": "Parents", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Past Median Time", + "Payment & Recovery Password": "Payment & Recovery Password", + "Payment Request": "Payment Request", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Peers", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performance", + "Phishing Hint": "Phishing Hint", + "Ping:": "Ping:", + "Please Confirm Deletion": "Please Confirm Deletion", + "Please configure your Kaspa NG settings": "Please configure your Kaspa NG settings", + "Please connect to Kaspa p2p node": "Please connect to Kaspa p2p node", + "Please create a stronger password": "Please create a stronger password", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Please enter an amount", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Please enter the account name", + "Please enter the wallet secret": "Please enter the wallet secret", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Please select an account type", + "Please select export type": "Please select export type", + "Please select the private key to export": "Please select the private key to export", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Please set node to 'Disabled' to delete the data folder", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.", + "Please specify the name of the new wallet": "Please specify the name of the new wallet", + "Please specify the private key type for the new wallet": "Please specify the private key type for the new wallet", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Please wait for the node to sync or connect to a remote node.", + "Please wait for the node to sync...": "Please wait for the node to sync...", + "Please wait...": "Please wait...", + "Presets": "Presets", + "Price": "Price", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Processed Bodies", + "Processed Dependencies": "Processed Dependencies", + "Processed Headers": "Processed Headers", + "Processed Mass Counts": "Processed Mass Counts", + "Processed Transactions": "Processed Transactions", + "Processing...": "Processing...", + "Protocol:": "Protocol:", + "Public Node": "Public Node", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Random Public Node", + "Range:": "Range:", + "Receive Address": "Receive Address", + "Recommended arguments for the remote node: ": "Recommended arguments for the remote node: ", + "Redistributables": "Redistributables", + "Remote": "Remote", + "Remote Connection:": "Remote Connection:", + "Remote p2p Node Configuration": "Remote p2p Node Configuration", + "Removes security restrictions, allows for single-letter passwords": "Removes security restrictions, allows for single-letter passwords", + "Reset Settings": "Reset Settings", + "Reset VSPC": "Reset VSPC", + "Resident Memory": "Resident Memory", + "Resources": "Resources", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Resulting daemon arguments:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa on GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Secret is too weak", + "Secret score:": "Secret score:", + "Select Account": "Select Account", + "Select Private Key Type": "Select Private Key Type", + "Select Public Node": "Select Public Node", + "Select Wallet": "Select Wallet", + "Select a wallet to unlock": "Select a wallet to unlock", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Send", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Services", + "Settings": "Settings", + "Show DAA": "Show DAA", + "Show Grid": "Show Grid", + "Show VSPC": "Show VSPC", + "Show balances in alternate currencies for testnet coins": "Show balances in alternate currencies for testnet coins", + "Show passphrase": "Show passphrase", + "Show password": "Show password", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet", + "Skip": "Skip", + "Small (10 BPS)": "Small (10 BPS)", + "Spread": "Spread", + "Stage": "Stage", + "Starting...": "Starting...", + "Statistics": "Statistics", + "Stop": "Stop", + "Stor Read": "Stor Read", + "Stor Write": "Stor Write", + "Storage": "Storage", + "Storage Read": "Storage Read", + "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", + "Storage Write": "Storage Write", + "Storage Write/s": "Storage Write/s", + "Strong": "Strong", + "Submitted Blocks": "Submitted Blocks", + "Syncing Cryptographic Proof...": "Syncing Cryptographic Proof...", + "Syncing DAG Blocks...": "Syncing DAG Blocks...", + "Syncing Headers...": "Syncing Headers...", + "Syncing UTXO entries...": "Syncing UTXO entries...", + "Syncing...": "Syncing...", + "System": "System", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.", + "The balance may be out of date during node sync": "The balance may be out of date during node sync", + "The following will guide you through the process of creating or importing a wallet.": "The following will guide you through the process of creating or importing a wallet.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "The node is currently syncing with the Kaspa p2p network.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Theme Color", + "Theme Color:": "Theme Color:", + "Theme Style": "Theme Style", + "Theme Style:": "Theme Style:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Threshold": "Threshold", + "Time Offset:": "Time Offset:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Track in the background", + "Transactions": "Transactions", + "Transactions:": "Transactions:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Type", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO Manager", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Unable to change node settings until the problem is resolved", + "Unable to store settings": "Unable to store settings", + "Unlock": "Unlock", + "Unlock Wallet": "Unlock Wallet", + "Unlocking": "Unlocking", + "Update Available to version": "Update Available to version", + "Updating...": "Updating...", + "Uptime:": "Uptime:", + "Use 50%-75% of available system memory": "Use 50%-75% of available system memory", + "Use all available system memory": "Use all available system memory", + "User Agent": "User Agent", + "User Interface": "User Interface", + "Very dangerous (may be cracked within few seconds)": "Very dangerous (may be cracked within few seconds)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Virt Parents", + "Virtual DAA Score": "Virtual DAA Score", + "Virtual Memory": "Virtual Memory", + "Virtual Parent Hashes": "Virtual Parent Hashes", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", + "Wallet": "Wallet", + "Wallet Created": "Wallet Created", + "Wallet Encryption Password": "Wallet Encryption Password", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Wallet Name", + "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Wallet password is used to encrypt your wallet data.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Wallet:", + "We greatly appreciate your help in backing our efforts.": "We greatly appreciate your help in backing our efforts.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Welcome to Kaspa NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "You are currently not connected to the Kaspa node.", + "You can configure remote connection in Settings": "You can configure remote connection in Settings", + "You can create multiple wallets, but only one wallet can be open at a time.": "You can create multiple wallets, but only one wallet can be open at a time.", + "You must be connected to a node...": "You must be connected to a node...", + "Your default wallet private key mnemonic is:": "Your default wallet private key mnemonic is:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Your private key mnemonic is:", + "Your wallet has been created and is ready to use.": "Your wallet has been created and is ready to use.", + "Zoom": "Zoom", + "bye!": "bye!", + "gRPC Network Interface & Port": "gRPC Network Interface & Port", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "of", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "peer", + "peers": "peers", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "wRPC Connection Settings", + "wRPC Encoding:": "wRPC Encoding:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" + }, + "hi": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS test network", + "10 BPS test network": "10 BPS test network", + "12 word mnemonic": "12 word mnemonic", + "24 word mnemonic": "24 word mnemonic", + "24h Change": "24h Change", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "A binary at another location is spawned a child process (experimental, for development purposes only).", + "A random node will be selected on startup": "A random node will be selected on startup", + "A wallet is stored in a file on your computer.": "A wallet is stored in a file on your computer.", + "Account Index": "Account Index", + "Account Name": "खाता नाम", + "Account not found": "Account not found", + "Account:": "खाता:", + "Activate custom daemon arguments": "Activate custom daemon arguments", + "Active p2p Peers": "Active p2p Peers", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Address derivation scan", + "Address:": "एड्रेस:", + "Advanced": "विकसित", + "All": "सभी", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Allow custom arguments for the Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Allows you to take screenshots from within the application", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "आवेदन करें", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Balance: N/A", + "Bandwidth": "Bandwidth", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.", + "Bezier Curves": "Bezier Curves", + "Block DAG": "Block DAG", + "Block Scale": "ब्लॉक स्केल", + "Blocks": "ब्लॉक", + "Bodies": "Bodies", + "Borsh Active Connections": "Borsh Active Connections", + "Borsh Connection Attempts": "Borsh Connection Attempts", + "Borsh Handshake Failures": "Borsh Handshake Failures", + "Build": "Build", + "CONNECTED": "जुड़ा हुआ", + "CPU": "सीपीयू", + "Cache Memory Size": "Cache Memory Size", + "Cancel": "रद्द करें", + "Cannot delete data folder while the node is running": "Cannot delete data folder while the node is running", + "Capture a screenshot": "एक स्क्रीनशॉट कैप्चर करें", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Center VSPC", + "Chain Blocks": "Chain Blocks", + "Change Address": "एड्रेस बदलाव करें", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Check for Software Updates on GitHub", + "Check for Updates": "अपडेट जांचें", + "Clear": "स्पष्ट", + "Click to try another server...": "Click to try another server...", + "Client RPC": "Client RPC", + "Close": "बंद करें", + "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "पुष्टि करें वॉलेट पासवर्ड", + "Connecting to": "Connecting to", + "Connection": "कनेक्शन", + "Connections": "कनेक्शन", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connects to a Remote Rusty Kaspa Node via wRPC.", + "Conservative": "संवर्धनशील", + "Continue": "जारी रखना", + "Copied to clipboard": "क्लिपबोर्ड पर कॉपी किया गया", + "Copy": "कॉपी", + "Copy logs to clipboard": "क्लिपबोर्ड पर लॉग कॉपी करें", + "Create New Wallet": "नया वॉलेट बनाएं", + "Create Wallet": "Create Wallet", + "Create new wallet": "नया वॉलेट बनाएं", + "Creating Account": "खाता बनाना", + "Creating Wallet": "वॉलेट बनाना", + "Custom": "Custom", + "Custom Public Node": "Custom Public Node", + "Custom arguments:": "Custom arguments:", + "Custom data storage folder": "Custom data storage folder", + "DAA": "DAA", + "DAA Offset": "DAA ऑफसेट", + "DAA Range": "DAA रेंज", + "DB Blocks": "DB Blocks", + "DB Headers": "DB Headers", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", + "Database Blocks": "Database Blocks", + "Database Headers": "Database Headers", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Decrypting wallet, please wait...", + "Default": "डिफ़ॉल्ट", + "Default Account Name": "डिफ़ॉल्ट खाता नाम", + "Delete Data Folder": "Delete Data Folder", + "Dependencies": "Dependencies", + "Derivation Indexes": "Derivation Indexes", + "Details": "विवरण", + "Developer Mode": "डेवलपर मोड", + "Developer Resources": "डेवलपर संसाधन", + "Developer mode enables advanced and experimental features": "Developer mode enables advanced and experimental features", + "Difficulty": "Difficulty", + "Dimensions": "Dimensions", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Disabled", + "Disables node connectivity (Offline Mode).": "Disables node connectivity (Offline Mode).", + "Discord": "डिस्कॉर्ड", + "Donations": "दान", + "Double click on the graph to re-center...": "Double click on the graph to re-center...", + "ECDSA": "ECDSA", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Enable Market Monitor", + "Enable UPnP": "Enable UPnP", + "Enable custom daemon arguments": "Enable custom daemon arguments", + "Enable experimental features": "Enable experimental features", + "Enable gRPC": "Enable gRPC", + "Enable optional BIP39 passphrase": "Enable optional BIP39 passphrase", + "Enable screen capture": "Enable screen capture", + "Enables features currently in development": "Enables features currently in development", + "Enter": "दर्ज करें", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "खाता नाम दर्ज करें (वैकल्पिक)", + "Enter destination address": "Enter destination address", + "Enter first account name": "पहले खाता नाम दर्ज करें", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Enter phishing hint", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "दर्ज करें राशि", + "Enter the password for your wallet": "Enter the password for your wallet", + "Enter the password to unlock your wallet": "Enter the password to unlock your wallet", + "Enter wallet name": "वॉलेट का नाम दर्ज करें", + "Enter wallet password": "वॉलेट पासवर्ड दर्ज करें", + "Enter your wallet secret": "अपना वॉलेट सीक्रेट दर्ज करें", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Explorer", + "Export Wallet Data": "Export Wallet Data", + "FIRST": "FIRST", + "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "File Handles", + "File contents": "File contents", + "Filename:": "Filename:", + "Final Amount:": "अंतिम राशि:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub Release", + "Go to Settings": "Go to Settings", + "Good": "Good", + "Handles": "Handles", + "Headers": "Headers", + "High": "High", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "If not specified, the account will be represented by the numeric id.", + "If you are running locally, use: ": "If you are running locally, use: ", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Import existing", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Inbound", + "Integrated Daemon": "Integrated Daemon", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Invalid daemon arguments", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Invalid wRPC URL", + "Json Active Connections": "Json Active Connections", + "Json Connection Attempts": "Json Connection Attempts", + "Json Handshake Failures": "Json Handshake Failures", + "Kaspa Discord": "कास्पा डिस्कॉर्ड", + "Kaspa Integration Guide": "Kaspa Integration Guide", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG on GitHub", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Kaspa Network", + "Kaspa Node": "कास्पा नोड", + "Kaspa p2p Network & Node Connection": "Kaspa p2p Network & Node Connection", + "Kaspa p2p Node": "कास्पा p2p नोड", + "Kaspa p2p Node & Connection": "Kaspa p2p Node & Connection", + "Key Perf.": "Key Perf.", + "LAST": "LAST", + "Language:": "भाषा:", + "Large (1 BPS)": "Large (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Levels", + "License Information": "License Information", + "Local": "Local", + "Local p2p Node Configuration": "Local p2p Node Configuration", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Logs", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Main Kaspa network", + "Mainnet": "Mainnet", + "Managed by the Rusty Kaspa daemon": "Managed by the Rusty Kaspa daemon", + "Market": "मार्केट", + "Market Cap": "मार्केट कैप", + "Market Monitor": "Market Monitor", + "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Medium Narrow", + "Medium Wide": "Medium Wide", + "Memory": "मेमोरी", + "Mempool": "Mempool", + "Mempool Size": "Mempool Size", + "Metrics": "Metrics", + "Metrics are not currently available": "Metrics are not currently available", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM Modules for NodeJS", + "Network": "Network", + "Network Difficulty": "Network Difficulty", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Network Interface", + "Network Peers": "Network Peers", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "No peers", + "No public node selected - please select a public node": "No public node selected - please select a public node", + "No transactions": "No transactions", + "No wallets found, please create a new wallet": "No wallets found, please create a new wallet", + "Node": "नोड", + "Node Status": "Node Status", + "Noise": "Noise", + "None": "None", + "Normal": "Normal", + "Not Connected": "Not Connected", + "Not connected": "Not connected", + "Notifications": "Notifications", + "Open Data Folder": "Open Data Folder", + "Opening wallet:": "Opening wallet:", + "Optional": "Optional", + "Options": "Options", + "Other operations": "Other operations", + "Outbound": "Outbound", + "Overview": "Overview", + "PREV": "PREV", + "Parents": "Parents", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Past Median Time", + "Payment & Recovery Password": "Payment & Recovery Password", + "Payment Request": "Payment Request", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Peers", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performance", + "Phishing Hint": "Phishing Hint", + "Ping:": "Ping:", + "Please Confirm Deletion": "Please Confirm Deletion", + "Please configure your Kaspa NG settings": "Please configure your Kaspa NG settings", + "Please connect to Kaspa p2p node": "Please connect to Kaspa p2p node", + "Please create a stronger password": "Please create a stronger password", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Please enter an amount", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Please enter the account name", + "Please enter the wallet secret": "Please enter the wallet secret", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Please select an account type", + "Please select export type": "Please select export type", + "Please select the private key to export": "Please select the private key to export", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Please set node to 'Disabled' to delete the data folder", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.", + "Please specify the name of the new wallet": "Please specify the name of the new wallet", + "Please specify the private key type for the new wallet": "Please specify the private key type for the new wallet", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Please wait for the node to sync or connect to a remote node.", + "Please wait for the node to sync...": "Please wait for the node to sync...", + "Please wait...": "Please wait...", + "Presets": "Presets", + "Price": "मूल्य", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Processed Bodies", + "Processed Dependencies": "Processed Dependencies", + "Processed Headers": "Processed Headers", + "Processed Mass Counts": "Processed Mass Counts", + "Processed Transactions": "Processed Transactions", + "Processing...": "Processing...", + "Protocol:": "Protocol:", + "Public Node": "Public Node", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Random Public Node", + "Range:": "Range:", + "Receive Address": "एड्रेस प्राप्त करें", + "Recommended arguments for the remote node: ": "Recommended arguments for the remote node: ", + "Redistributables": "Redistributables", + "Remote": "Remote", + "Remote Connection:": "Remote Connection:", + "Remote p2p Node Configuration": "Remote p2p Node Configuration", + "Removes security restrictions, allows for single-letter passwords": "Removes security restrictions, allows for single-letter passwords", + "Reset Settings": "Reset Settings", + "Reset VSPC": "Reset VSPC", + "Resident Memory": "Resident Memory", + "Resources": "Resources", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Resulting daemon arguments:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa on GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Secret is too weak", + "Secret score:": "Secret score:", + "Select Account": "Select Account", + "Select Private Key Type": "Select Private Key Type", + "Select Public Node": "Select Public Node", + "Select Wallet": "Select Wallet", + "Select a wallet to unlock": "Select a wallet to unlock", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "भेजें", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Services", + "Settings": "Settings", + "Show DAA": "Show DAA", + "Show Grid": "Show Grid", + "Show VSPC": "Show VSPC", + "Show balances in alternate currencies for testnet coins": "Show balances in alternate currencies for testnet coins", + "Show passphrase": "Show passphrase", + "Show password": "Show password", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet", + "Skip": "Skip", + "Small (10 BPS)": "Small (10 BPS)", + "Spread": "Spread", + "Stage": "Stage", + "Starting...": "Starting...", + "Statistics": "Statistics", + "Stop": "Stop", + "Stor Read": "Stor Read", + "Stor Write": "Stor Write", + "Storage": "Storage", + "Storage Read": "Storage Read", + "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", + "Storage Write": "Storage Write", + "Storage Write/s": "Storage Write/s", + "Strong": "Strong", + "Submitted Blocks": "Submitted Blocks", + "Syncing Cryptographic Proof...": "Syncing Cryptographic Proof...", + "Syncing DAG Blocks...": "Syncing DAG Blocks...", + "Syncing Headers...": "Syncing Headers...", + "Syncing UTXO entries...": "Syncing UTXO entries...", + "Syncing...": "Syncing...", + "System": "System", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.", + "The balance may be out of date during node sync": "The balance may be out of date during node sync", + "The following will guide you through the process of creating or importing a wallet.": "The following will guide you through the process of creating or importing a wallet.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "The node is currently syncing with the Kaspa p2p network.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Theme Color", + "Theme Color:": "Theme Color:", + "Theme Style": "Theme Style", + "Theme Style:": "Theme Style:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Threshold": "Threshold", + "Time Offset:": "Time Offset:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Track in the background", + "Transactions": "लेनदेन", + "Transactions:": "लेनदेन:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Type", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO Manager", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Unable to change node settings until the problem is resolved", + "Unable to store settings": "Unable to store settings", + "Unlock": "Unlock", + "Unlock Wallet": "Unlock Wallet", + "Unlocking": "Unlocking", + "Update Available to version": "Update Available to version", + "Updating...": "Updating...", + "Uptime:": "Uptime:", + "Use 50%-75% of available system memory": "Use 50%-75% of available system memory", + "Use all available system memory": "Use all available system memory", + "User Agent": "User Agent", + "User Interface": "User Interface", + "Very dangerous (may be cracked within few seconds)": "Very dangerous (may be cracked within few seconds)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Virt Parents", + "Virtual DAA Score": "Virtual DAA Score", + "Virtual Memory": "Virtual Memory", + "Virtual Parent Hashes": "Virtual Parent Hashes", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", + "Wallet": "Wallet", + "Wallet Created": "Wallet Created", + "Wallet Encryption Password": "Wallet Encryption Password", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Wallet Name", + "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Wallet password is used to encrypt your wallet data.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Wallet:", + "We greatly appreciate your help in backing our efforts.": "We greatly appreciate your help in backing our efforts.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Welcome to Kaspa NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "You are currently not connected to the Kaspa node.", + "You can configure remote connection in Settings": "You can configure remote connection in Settings", + "You can create multiple wallets, but only one wallet can be open at a time.": "You can create multiple wallets, but only one wallet can be open at a time.", + "You must be connected to a node...": "You must be connected to a node...", + "Your default wallet private key mnemonic is:": "Your default wallet private key mnemonic is:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Your private key mnemonic is:", + "Your wallet has been created and is ready to use.": "Your wallet has been created and is ready to use.", + "Zoom": "Zoom", + "bye!": "bye!", + "gRPC Network Interface & Port": "gRPC Network Interface & Port", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "of", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "peer", + "peers": "peers", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "wRPC Connection Settings", + "wRPC Encoding:": "wRPC Encoding:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" + }, + "hr": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS test network", + "10 BPS test network": "10 BPS test network", + "12 word mnemonic": "12 word mnemonic", + "24 word mnemonic": "24 word mnemonic", + "24h Change": "24h Change", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "A binary at another location is spawned a child process (experimental, for development purposes only).", + "A random node will be selected on startup": "A random node will be selected on startup", + "A wallet is stored in a file on your computer.": "A wallet is stored in a file on your computer.", + "Account Index": "Account Index", + "Account Name": "Account Name", + "Account not found": "Account not found", + "Account:": "Account:", + "Activate custom daemon arguments": "Activate custom daemon arguments", + "Active p2p Peers": "Active p2p Peers", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Address derivation scan", + "Address:": "Address:", + "Advanced": "Advanced", + "All": "All", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Allow custom arguments for the Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Allows you to take screenshots from within the application", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Apply", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Balance: N/A", + "Bandwidth": "Bandwidth", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.", + "Bezier Curves": "Bezier Curves", + "Block DAG": "Block DAG", + "Block Scale": "Block Scale", + "Blocks": "Blocks", + "Bodies": "Bodies", + "Borsh Active Connections": "Borsh Active Connections", + "Borsh Connection Attempts": "Borsh Connection Attempts", + "Borsh Handshake Failures": "Borsh Handshake Failures", + "Build": "Build", + "CONNECTED": "CONNECTED", + "CPU": "CPU", + "Cache Memory Size": "Cache Memory Size", + "Cancel": "Cancel", + "Cannot delete data folder while the node is running": "Cannot delete data folder while the node is running", + "Capture a screenshot": "Capture a screenshot", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Center VSPC", + "Chain Blocks": "Chain Blocks", + "Change Address": "Change Address", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Check for Software Updates on GitHub", + "Check for Updates": "Check for Updates", + "Clear": "Clear", + "Click to try another server...": "Click to try another server...", + "Client RPC": "Client RPC", + "Close": "Close", + "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Confirm wallet password", + "Connecting to": "Connecting to", + "Connection": "Connection", + "Connections": "Connections", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connects to a Remote Rusty Kaspa Node via wRPC.", + "Conservative": "Conservative", + "Continue": "Continue", + "Copied to clipboard": "Copied to clipboard", + "Copy": "Copy", + "Copy logs to clipboard": "Copy logs to clipboard", + "Create New Wallet": "Create New Wallet", + "Create Wallet": "Create Wallet", + "Create new wallet": "Create new wallet", + "Creating Account": "Creating Account", + "Creating Wallet": "Creating Wallet", + "Custom": "Custom", + "Custom Public Node": "Custom Public Node", + "Custom arguments:": "Custom arguments:", + "Custom data storage folder": "Custom data storage folder", + "DAA": "DAA", + "DAA Offset": "DAA Offset", + "DAA Range": "DAA Range", + "DB Blocks": "DB Blocks", + "DB Headers": "DB Headers", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", + "Database Blocks": "Database Blocks", + "Database Headers": "Database Headers", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Decrypting wallet, please wait...", + "Default": "Default", + "Default Account Name": "Default Account Name", + "Delete Data Folder": "Delete Data Folder", + "Dependencies": "Dependencies", + "Derivation Indexes": "Derivation Indexes", + "Details": "Details", + "Developer Mode": "Developer Mode", + "Developer Resources": "Developer Resources", + "Developer mode enables advanced and experimental features": "Developer mode enables advanced and experimental features", + "Difficulty": "Difficulty", + "Dimensions": "Dimensions", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Disabled", + "Disables node connectivity (Offline Mode).": "Disables node connectivity (Offline Mode).", + "Discord": "Discord", + "Donations": "Donations", + "Double click on the graph to re-center...": "Double click on the graph to re-center...", + "ECDSA": "ECDSA", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Enable Market Monitor", + "Enable UPnP": "Enable UPnP", + "Enable custom daemon arguments": "Enable custom daemon arguments", + "Enable experimental features": "Enable experimental features", + "Enable gRPC": "Enable gRPC", + "Enable optional BIP39 passphrase": "Enable optional BIP39 passphrase", + "Enable screen capture": "Enable screen capture", + "Enables features currently in development": "Enables features currently in development", + "Enter": "Enter", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Enter account name (optional)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Enter first account name", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Enter phishing hint", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Enter the amount", + "Enter the password for your wallet": "Enter the password for your wallet", + "Enter the password to unlock your wallet": "Enter the password to unlock your wallet", + "Enter wallet name": "Enter wallet name", + "Enter wallet password": "Enter wallet password", + "Enter your wallet secret": "Enter your wallet secret", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Explorer", + "Export Wallet Data": "Export Wallet Data", + "FIRST": "FIRST", + "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "File Handles", + "File contents": "File contents", + "Filename:": "Filename:", + "Final Amount:": "Final Amount:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub Release", + "Go to Settings": "Go to Settings", + "Good": "Good", + "Handles": "Handles", + "Headers": "Headers", + "High": "High", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "If not specified, the account will be represented by the numeric id.", + "If you are running locally, use: ": "If you are running locally, use: ", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Import existing", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Inbound", + "Integrated Daemon": "Integrated Daemon", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Invalid daemon arguments", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Invalid wRPC URL", + "Json Active Connections": "Json Active Connections", + "Json Connection Attempts": "Json Connection Attempts", + "Json Handshake Failures": "Json Handshake Failures", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Kaspa Integration Guide", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG on GitHub", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Kaspa Network", + "Kaspa Node": "Kaspa Node", + "Kaspa p2p Network & Node Connection": "Kaspa p2p Network & Node Connection", + "Kaspa p2p Node": "Kaspa p2p Node", + "Kaspa p2p Node & Connection": "Kaspa p2p Node & Connection", + "Key Perf.": "Key Perf.", + "LAST": "LAST", + "Language:": "Language:", + "Large (1 BPS)": "Large (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Levels", + "License Information": "License Information", + "Local": "Local", + "Local p2p Node Configuration": "Local p2p Node Configuration", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Logs", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Main Kaspa network", + "Mainnet": "Mainnet", + "Managed by the Rusty Kaspa daemon": "Managed by the Rusty Kaspa daemon", + "Market": "Market", + "Market Cap": "Market Cap", + "Market Monitor": "Market Monitor", + "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Medium Narrow", + "Medium Wide": "Medium Wide", + "Memory": "Memory", + "Mempool": "Mempool", + "Mempool Size": "Mempool Size", + "Metrics": "Metrics", + "Metrics are not currently available": "Metrics are not currently available", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM Modules for NodeJS", + "Network": "Network", + "Network Difficulty": "Network Difficulty", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Network Interface", + "Network Peers": "Network Peers", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "No peers", + "No public node selected - please select a public node": "No public node selected - please select a public node", + "No transactions": "No transactions", + "No wallets found, please create a new wallet": "No wallets found, please create a new wallet", + "Node": "Node", + "Node Status": "Node Status", + "Noise": "Noise", + "None": "None", + "Normal": "Normal", + "Not Connected": "Not Connected", + "Not connected": "Not connected", + "Notifications": "Notifications", + "Open Data Folder": "Open Data Folder", + "Opening wallet:": "Opening wallet:", + "Optional": "Optional", + "Options": "Options", + "Other operations": "Other operations", + "Outbound": "Outbound", + "Overview": "Overview", + "PREV": "PREV", + "Parents": "Parents", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Past Median Time", + "Payment & Recovery Password": "Payment & Recovery Password", + "Payment Request": "Payment Request", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Peers", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performance", + "Phishing Hint": "Phishing Hint", + "Ping:": "Ping:", + "Please Confirm Deletion": "Please Confirm Deletion", + "Please configure your Kaspa NG settings": "Please configure your Kaspa NG settings", + "Please connect to Kaspa p2p node": "Please connect to Kaspa p2p node", + "Please create a stronger password": "Please create a stronger password", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Please enter an amount", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Please enter the account name", + "Please enter the wallet secret": "Please enter the wallet secret", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Please select an account type", + "Please select export type": "Please select export type", + "Please select the private key to export": "Please select the private key to export", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Please set node to 'Disabled' to delete the data folder", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.", + "Please specify the name of the new wallet": "Please specify the name of the new wallet", + "Please specify the private key type for the new wallet": "Please specify the private key type for the new wallet", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Please wait for the node to sync or connect to a remote node.", + "Please wait for the node to sync...": "Please wait for the node to sync...", + "Please wait...": "Please wait...", + "Presets": "Presets", + "Price": "Price", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Processed Bodies", + "Processed Dependencies": "Processed Dependencies", + "Processed Headers": "Processed Headers", + "Processed Mass Counts": "Processed Mass Counts", + "Processed Transactions": "Processed Transactions", + "Processing...": "Processing...", + "Protocol:": "Protocol:", + "Public Node": "Public Node", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Random Public Node", + "Range:": "Range:", + "Receive Address": "Receive Address", + "Recommended arguments for the remote node: ": "Recommended arguments for the remote node: ", + "Redistributables": "Redistributables", + "Remote": "Remote", + "Remote Connection:": "Remote Connection:", + "Remote p2p Node Configuration": "Remote p2p Node Configuration", + "Removes security restrictions, allows for single-letter passwords": "Removes security restrictions, allows for single-letter passwords", + "Reset Settings": "Reset Settings", + "Reset VSPC": "Reset VSPC", + "Resident Memory": "Resident Memory", + "Resources": "Resources", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Resulting daemon arguments:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa on GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Secret is too weak", + "Secret score:": "Secret score:", + "Select Account": "Select Account", + "Select Private Key Type": "Select Private Key Type", + "Select Public Node": "Select Public Node", + "Select Wallet": "Select Wallet", + "Select a wallet to unlock": "Select a wallet to unlock", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Send", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Services", + "Settings": "Settings", + "Show DAA": "Show DAA", + "Show Grid": "Show Grid", + "Show VSPC": "Show VSPC", + "Show balances in alternate currencies for testnet coins": "Show balances in alternate currencies for testnet coins", + "Show passphrase": "Show passphrase", + "Show password": "Show password", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet", + "Skip": "Skip", + "Small (10 BPS)": "Small (10 BPS)", + "Spread": "Spread", + "Stage": "Stage", + "Starting...": "Starting...", + "Statistics": "Statistics", + "Stop": "Stop", + "Stor Read": "Stor Read", + "Stor Write": "Stor Write", + "Storage": "Storage", + "Storage Read": "Storage Read", + "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", + "Storage Write": "Storage Write", + "Storage Write/s": "Storage Write/s", + "Strong": "Strong", + "Submitted Blocks": "Submitted Blocks", + "Syncing Cryptographic Proof...": "Syncing Cryptographic Proof...", + "Syncing DAG Blocks...": "Syncing DAG Blocks...", + "Syncing Headers...": "Syncing Headers...", + "Syncing UTXO entries...": "Syncing UTXO entries...", + "Syncing...": "Syncing...", + "System": "System", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.", + "The balance may be out of date during node sync": "The balance may be out of date during node sync", + "The following will guide you through the process of creating or importing a wallet.": "The following will guide you through the process of creating or importing a wallet.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "The node is currently syncing with the Kaspa p2p network.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Theme Color", + "Theme Color:": "Theme Color:", + "Theme Style": "Theme Style", + "Theme Style:": "Theme Style:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Threshold": "Threshold", + "Time Offset:": "Time Offset:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Track in the background", + "Transactions": "Transactions", + "Transactions:": "Transactions:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Type", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO Manager", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Unable to change node settings until the problem is resolved", + "Unable to store settings": "Unable to store settings", + "Unlock": "Unlock", + "Unlock Wallet": "Unlock Wallet", + "Unlocking": "Unlocking", + "Update Available to version": "Update Available to version", + "Updating...": "Updating...", + "Uptime:": "Uptime:", + "Use 50%-75% of available system memory": "Use 50%-75% of available system memory", + "Use all available system memory": "Use all available system memory", + "User Agent": "User Agent", + "User Interface": "User Interface", + "Very dangerous (may be cracked within few seconds)": "Very dangerous (may be cracked within few seconds)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Virt Parents", + "Virtual DAA Score": "Virtual DAA Score", + "Virtual Memory": "Virtual Memory", + "Virtual Parent Hashes": "Virtual Parent Hashes", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", + "Wallet": "Wallet", + "Wallet Created": "Wallet Created", + "Wallet Encryption Password": "Wallet Encryption Password", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Wallet Name", + "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Wallet password is used to encrypt your wallet data.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Wallet:", + "We greatly appreciate your help in backing our efforts.": "We greatly appreciate your help in backing our efforts.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Welcome to Kaspa NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "You are currently not connected to the Kaspa node.", + "You can configure remote connection in Settings": "You can configure remote connection in Settings", + "You can create multiple wallets, but only one wallet can be open at a time.": "You can create multiple wallets, but only one wallet can be open at a time.", + "You must be connected to a node...": "You must be connected to a node...", + "Your default wallet private key mnemonic is:": "Your default wallet private key mnemonic is:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Your private key mnemonic is:", + "Your wallet has been created and is ready to use.": "Your wallet has been created and is ready to use.", + "Zoom": "Zoom", + "bye!": "bye!", + "gRPC Network Interface & Port": "gRPC Network Interface & Port", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "of", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "peer", + "peers": "peers", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "wRPC Connection Settings", + "wRPC Encoding:": "wRPC Encoding:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" + }, + "hu": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS teszt hálózat", + "10 BPS test network": "10 BPS teszt hálózat", + "12 word mnemonic": "12 word mnemonic", + "24 word mnemonic": "24 word mnemonic", + "24h Change": "24h Change", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "A binary at another location is spawned a child process (experimental, for development purposes only).", + "A random node will be selected on startup": "A random node will be selected on startup", + "A wallet is stored in a file on your computer.": "A tárca egy fájlban van tárolva a számítógépeden.", + "Account Index": "Account Index", + "Account Name": "Fiók neve", + "Account not found": "Account not found", + "Account:": "Fiók:", + "Activate custom daemon arguments": "Activate custom daemon arguments", + "Active p2p Peers": "Aktív p2p partnerek", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Address derivation scan", + "Address:": "Cím:", + "Advanced": "Advanced", + "All": "Mind", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Allow custom arguments for the Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Allows you to take screenshots from within the application", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Apply", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Balance: N/A", + "Bandwidth": "Sávszélesség", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.", + "Bezier Curves": "Bezier Curves", + "Block DAG": "Block DAG", + "Block Scale": "Block Scale", + "Blocks": "Blocks", + "Bodies": "Bodies", + "Borsh Active Connections": "Borsh Active Connections", + "Borsh Connection Attempts": "Borsh Connection Attempts", + "Borsh Handshake Failures": "Borsh Handshake Failures", + "Build": "Build", + "CONNECTED": "CONNECTED", + "CPU": "CPU", + "Cache Memory Size": "Cache Memory Size", + "Cancel": "Cancel", + "Cannot delete data folder while the node is running": "Cannot delete data folder while the node is running", + "Capture a screenshot": "Capture a screenshot", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Center VSPC", + "Chain Blocks": "Chain Blocks", + "Change Address": "Change Address", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Check for Software Updates on GitHub", + "Check for Updates": "Check for Updates", + "Clear": "Clear", + "Click to try another server...": "Click to try another server...", + "Client RPC": "Client RPC", + "Close": "Close", + "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Tárca jelszó megerősítése", + "Connecting to": "Connecting to", + "Connection": "Connection", + "Connections": "Connections", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connects to a Remote Rusty Kaspa Node via wRPC.", + "Conservative": "Conservative", + "Continue": "Continue", + "Copied to clipboard": "Copied to clipboard", + "Copy": "Copy", + "Copy logs to clipboard": "Copy logs to clipboard", + "Create New Wallet": "Új tárca létrehozása", + "Create Wallet": "Create Wallet", + "Create new wallet": "Új tárca létrehozása", + "Creating Account": "Creating Account", + "Creating Wallet": "Tárca létrehozása", + "Custom": "Custom", + "Custom Public Node": "Custom Public Node", + "Custom arguments:": "Custom arguments:", + "Custom data storage folder": "Custom data storage folder", + "DAA": "DAA", + "DAA Offset": "DAA Offset", + "DAA Range": "DAA Range", + "DB Blocks": "DB Blocks", + "DB Headers": "DB Headers", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", + "Database Blocks": "Database Blocks", + "Database Headers": "Database Headers", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Tárca dekódolása, kérlek várj...", + "Default": "Alapértelmezett", + "Default Account Name": "Default Account Name", + "Delete Data Folder": "Delete Data Folder", + "Dependencies": "Dependencies", + "Derivation Indexes": "Derivation Indexes", + "Details": "Details", + "Developer Mode": "Developer Mode", + "Developer Resources": "Developer Resources", + "Developer mode enables advanced and experimental features": "Developer mode enables advanced and experimental features", + "Difficulty": "Difficulty", + "Dimensions": "Dimensions", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Disabled", + "Disables node connectivity (Offline Mode).": "Disables node connectivity (Offline Mode).", + "Discord": "Discord", + "Donations": "Donations", + "Double click on the graph to re-center...": "Double click on the graph to re-center...", + "ECDSA": "ECDSA", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Enable Market Monitor", + "Enable UPnP": "Enable UPnP", + "Enable custom daemon arguments": "Enable custom daemon arguments", + "Enable experimental features": "Enable experimental features", + "Enable gRPC": "Enable gRPC", + "Enable optional BIP39 passphrase": "Enable optional BIP39 passphrase", + "Enable screen capture": "Enable screen capture", + "Enables features currently in development": "Enables features currently in development", + "Enter": "Enter", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Enter account name (optional)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Enter first account name", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Enter phishing hint", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Enter the amount", + "Enter the password for your wallet": "Add meg a tárca jelszavát", + "Enter the password to unlock your wallet": "Add meg a jelszót a tárca feloldásához", + "Enter wallet name": "Add meg a tárca nevét", + "Enter wallet password": "Tárca jelszavának megadása", + "Enter your wallet secret": "Enter your wallet secret", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Explorer", + "Export Wallet Data": "Tárca adatok exportálása", + "FIRST": "FIRST", + "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "File Handles", + "File contents": "File contents", + "Filename:": "Filename:", + "Final Amount:": "Final Amount:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub Release", + "Go to Settings": "Ugrás a Beállítások panelre", + "Good": "Good", + "Handles": "Handles", + "Headers": "Headers", + "High": "High", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "If not specified, the account will be represented by the numeric id.", + "If you are running locally, use: ": "If you are running locally, use: ", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Import existing", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Inbound", + "Integrated Daemon": "Integrated Daemon", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Invalid daemon arguments", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Invalid wRPC URL", + "Json Active Connections": "Json Active Connections", + "Json Connection Attempts": "Json Connection Attempts", + "Json Handshake Failures": "Json Handshake Failures", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Kaspa Integration Guide", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG on GitHub", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Kaspa hálózat", + "Kaspa Node": "Kaspa csomópont", + "Kaspa p2p Network & Node Connection": "Kaspa p2p hálózat és csomópont kapcsolat", + "Kaspa p2p Node": "Kaspa p2p Node", + "Kaspa p2p Node & Connection": "Kaspa p2p Node & Connection", + "Key Perf.": "Key Perf.", + "LAST": "LAST", + "Language:": "Nyelv:", + "Large (1 BPS)": "Large (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Levels", + "License Information": "License Information", + "Local": "Local", + "Local p2p Node Configuration": "Local p2p Node Configuration", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Logs", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Kaspa főhálózat", + "Mainnet": "Főhálózat", + "Managed by the Rusty Kaspa daemon": "Managed by the Rusty Kaspa daemon", + "Market": "Market", + "Market Cap": "Market Cap", + "Market Monitor": "Market Monitor", + "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Medium Narrow", + "Medium Wide": "Medium Wide", + "Memory": "Memory", + "Mempool": "Mempool", + "Mempool Size": "Mempool Size", + "Metrics": "Mérőszámok", + "Metrics are not currently available": "Jelenleg nem állnak rendelkezésre mérőszámok", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM Modules for NodeJS", + "Network": "Hálózat", + "Network Difficulty": "Hálózati nehézség", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Hálózati interfész", + "Network Peers": "Hálózati kapcsolatok", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "No peers", + "No public node selected - please select a public node": "No public node selected - please select a public node", + "No transactions": "No transactions", + "No wallets found, please create a new wallet": "No wallets found, please create a new wallet", + "Node": "Csomópont", + "Node Status": "Csomópont állapota", + "Noise": "Noise", + "None": "None", + "Normal": "Normal", + "Not Connected": "Not Connected", + "Not connected": "Not connected", + "Notifications": "Notifications", + "Open Data Folder": "Open Data Folder", + "Opening wallet:": "Tárca megnyitása:", + "Optional": "Optional", + "Options": "Options", + "Other operations": "Other operations", + "Outbound": "Outbound", + "Overview": "Áttekintés", + "PREV": "PREV", + "Parents": "Parents", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Past Median Time", + "Payment & Recovery Password": "Payment & Recovery Password", + "Payment Request": "Payment Request", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Peers", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performance", + "Phishing Hint": "Phishing Hint", + "Ping:": "Ping:", + "Please Confirm Deletion": "Please Confirm Deletion", + "Please configure your Kaspa NG settings": "Kérjük, konfiguráld a Kaspa NG beállításait", + "Please connect to Kaspa p2p node": "Please connect to Kaspa p2p node", + "Please create a stronger password": "Please create a stronger password", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Please enter an amount", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Please enter the account name", + "Please enter the wallet secret": "Please enter the wallet secret", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Please select an account type", + "Please select export type": "Please select export type", + "Please select the private key to export": "Please select the private key to export", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Please set node to 'Disabled' to delete the data folder", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.", + "Please specify the name of the new wallet": "Kérjük, add meg az új tárca nevét", + "Please specify the private key type for the new wallet": "Please specify the private key type for the new wallet", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Please wait for the node to sync or connect to a remote node.", + "Please wait for the node to sync...": "Please wait for the node to sync...", + "Please wait...": "Kérlek várj...", + "Presets": "Presets", + "Price": "Price", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Processed Bodies", + "Processed Dependencies": "Processed Dependencies", + "Processed Headers": "Processed Headers", + "Processed Mass Counts": "Processed Mass Counts", + "Processed Transactions": "Processed Transactions", + "Processing...": "Processing...", + "Protocol:": "Protocol:", + "Public Node": "Public Node", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Random Public Node", + "Range:": "Range:", + "Receive Address": "Receive Address", + "Recommended arguments for the remote node: ": "Recommended arguments for the remote node: ", + "Redistributables": "Redistributables", + "Remote": "Remote", + "Remote Connection:": "Remote Connection:", + "Remote p2p Node Configuration": "Remote p2p Node Configuration", + "Removes security restrictions, allows for single-letter passwords": "Removes security restrictions, allows for single-letter passwords", + "Reset Settings": "Beállítások alaphelyzetbe állítása", + "Reset VSPC": "Reset VSPC", + "Resident Memory": "Resident Memory", + "Resources": "Források", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Resulting daemon arguments:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa a GitHubon", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Secret is too weak", + "Secret score:": "Secret score:", + "Select Account": "Select Account", + "Select Private Key Type": "Select Private Key Type", + "Select Public Node": "Select Public Node", + "Select Wallet": "Válassz tárcát", + "Select a wallet to unlock": "Válassz egy tárcát a feloldáshoz", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Send", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Services", + "Settings": "Beállítások", + "Show DAA": "Show DAA", + "Show Grid": "Show Grid", + "Show VSPC": "Show VSPC", + "Show balances in alternate currencies for testnet coins": "Show balances in alternate currencies for testnet coins", + "Show passphrase": "Show passphrase", + "Show password": "Show password", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet", + "Skip": "Skip", + "Small (10 BPS)": "Small (10 BPS)", + "Spread": "Spread", + "Stage": "Stage", + "Starting...": "Starting...", + "Statistics": "Statistics", + "Stop": "Stop", + "Stor Read": "Stor Read", + "Stor Write": "Stor Write", + "Storage": "Storage", + "Storage Read": "Storage Read", + "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", + "Storage Write": "Storage Write", + "Storage Write/s": "Storage Write/s", + "Strong": "Strong", + "Submitted Blocks": "Submitted Blocks", + "Syncing Cryptographic Proof...": "Syncing Cryptographic Proof...", + "Syncing DAG Blocks...": "Syncing DAG Blocks...", + "Syncing Headers...": "Syncing Headers...", + "Syncing UTXO entries...": "Syncing UTXO entries...", + "Syncing...": "Szinkronizálás...", + "System": "Rendszer", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "A Kaspa NG szoftver a Kaspa BlockDAG kriptovaluta-hálózatnak szánt, korszerű szoftverplatform létrehozására irányuló folyamatos erőfeszítést képviseli. Az ideológiai alapokon nyugvó szoftver a biztonságot, a magánélet védelmét, a teljesítményt és a decentralizációt helyezi előtérbe.", + "The balance may be out of date during node sync": "A csomópont-szinkronizálása során előfordulhat, hogy az egyenleg nem pontos ", + "The following will guide you through the process of creating or importing a wallet.": "A következőkben végigvezetünk a tárca létrehozásának, vagy importálásának folyamatán.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "A csomópont jelenleg a Kaspa p2p hálózattal szinkronizál.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "A csomópont jelenleg a Kaspa p2p hálózattal szinkronizál. Az egyenlegek elavultak lehetnek.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Téma színe", + "Theme Color:": "Téma színe:", + "Theme Style": "Téma stílusa", + "Theme Style:": "Téma stílusa:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Ez a tárca soha nem fogja kérni ezt a mnemonikus kifejezést, kivéve ha manuálisan kezdeményezed a privát kulcs helyreállítását.", + "Threshold": "Threshold", + "Time Offset:": "Időeltolás:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Track in the background", + "Transactions": "Tranzakciók", + "Transactions:": "Tranzakciók:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Type", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO Manager", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Nem lehet módosítani a csomópont beállításait, amíg a probléma helyreállításáig", + "Unable to store settings": "Unable to store settings", + "Unlock": "Unlock", + "Unlock Wallet": "Tárca feloldása", + "Unlocking": "Unlocking", + "Update Available to version": "Update Available to version", + "Updating...": "Frissítés...", + "Uptime:": "Üzemidő:", + "Use 50%-75% of available system memory": "Use 50%-75% of available system memory", + "Use all available system memory": "Use all available system memory", + "User Agent": "User Agent", + "User Interface": "User Interface", + "Very dangerous (may be cracked within few seconds)": "Very dangerous (may be cracked within few seconds)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Virt Parents", + "Virtual DAA Score": "Virtual DAA Score", + "Virtual Memory": "Virtual Memory", + "Virtual Parent Hashes": "Virtual Parent Hashes", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", + "Wallet": "Tárca", + "Wallet Created": "Tárca létrehozása", + "Wallet Encryption Password": "Wallet Encryption Password", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Tárca neve", + "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "A tárca jelszava a tárca adatainak titkosítására szolgál.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Tárca:", + "We greatly appreciate your help in backing our efforts.": "We greatly appreciate your help in backing our efforts.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Welcome to Kaspa NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "You are currently not connected to the Kaspa node.", + "You can configure remote connection in Settings": "A távoli kapcsolatot a Beállítások panelen konfigurálhatod", + "You can create multiple wallets, but only one wallet can be open at a time.": "Több tárcát is létrehozhatsz, de egyszerre csak egy tárca lehet megnyitva.", + "You must be connected to a node...": "You must be connected to a node...", + "Your default wallet private key mnemonic is:": "Az alapértelmezett tárca privát kulcsának mnemonikája a következő:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "A mnemonikus kifejezés lehetővé teszi a privát kulcs újbóli létrehozását. Az a személy, aki hozzáféréssel rendelkezik ehhez a mnemonikus kifejezéshez, teljes mértékben rendelkezik a benne tárolt Kaspa felett. Tartsa biztonságban a mnemonikus kulcsszót. Írd le, és tárold egy széfben, lehetőleg tűzálló helyen. Ne tárold a mnemonikát ezen a számítógépen, vagy mobileszközön. Ez a tárca soha nem fogja kérni ezt a mnemonikus kifejezést, kivéve ha manuálisan kezdeményezi a privát kulcs helyreállítását.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Your private key mnemonic is:", + "Your wallet has been created and is ready to use.": "Your wallet has been created and is ready to use.", + "Zoom": "Zoom", + "bye!": "bye!", + "gRPC Network Interface & Port": "gRPC hálózat interfész & port", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "of", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "peer", + "peers": "peers", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "wRPC kapcsolat beállítás", + "wRPC Encoding:": "wRPC Encoding:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" + }, + "id": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Petunjuk phishing' adalah sebuah kata atau frasa rahasia yang ditampilkan ketika Anda membuka dompet. Jika Anda tidak melihat petunjuk tersebut ketika membuka dompet Anda, Anda mungkin mengakses dompet palsu yang dirancang untuk mencuri dana Anda. Jika hal ini terjadi, segera hentikan penggunaan dompet, periksa nama domain URL browser dan cari bantuan di jejaring sosial (Kaspa Discord atau Telegram).", + "1 BPS test network": "1 jaringan uji BPS", + "10 BPS test network": "10 jaringan uji BPS", + "12 word mnemonic": "mnemonik 12 kata", + "24 word mnemonic": "mnemonik 24 kata", + "24h Change": "Perubahan 24 jam", + "3 hours or more": "3 jam atau lebih", + "< {minutes} minute": "< {minutes} menit", + "< {minutes} minutes": "< {minutes} menit", + "< {seconds} second": "< {seconds} detik", + "< {seconds} seconds": "< {seconds} detik", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "Biner di lokasi lain menghasilkan proses anak (eksperimental, untuk tujuan pengembangan saja).", + "A random node will be selected on startup": "Node acak akan dipilih saat startup", + "A wallet is stored in a file on your computer.": "Dompet disimpan dalam file di komputer Anda.", + "Account Index": "Indeks Akun", + "Account Name": "Nama akun", + "Account not found": "Account not found", + "Account:": "Akun:", + "Activate custom daemon arguments": "Aktifkan argumen daemon khusus", + "Active p2p Peers": "Rekan p2p aktif", + "Add Account": "Tambah Akun", + "Address copied to clipboard": "Alamat telah disalin ke papan klip", + "Address derivation scan": "Pemindaian derivasi alamat", + "Address:": "Alamat:", + "Advanced": "Lanjutan", + "All": "Semua", + "Allow clipboard copy": "Izinkan menyalin papan klip", + "Allow custom arguments for the Rusty Kaspa daemon": "Izinkan argumen khusus untuk daemon Rusty Kaspa", + "Allows you to take screenshots from within the application": "Memungkinkan Anda mengambil tangkapan layar dari dalam aplikasi", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Aplikasi harus dimulai ulang agar pengaturan ini dapat diterapkan.", + "Apply": "Menerapkan", + "Architecture {arch}": "Arsitektur {arch}", + "Are you sure you want to reset all settings?": "Apakah Anda yakin ingin mengatur ulang semua pengaturan?", + "BALANCE": "BALANCE", + "Balance: N/A": "Saldo: N/A", + "Bandwidth": "Bandwidth", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Karena fokusnya pada keamanan dan kinerja, perangkat lunak ini sepenuhnya dikembangkan di Rust, sehingga memerlukan lebih banyak waktu dan tenaga dibandingkan dengan perangkat lunak tradisional berbasis web modern lainnya.", + "Bezier Curves": "Kurva Bezier", + "Block DAG": "Blok DAG", + "Block Scale": "Skala Blok", + "Blocks": "Blok", + "Bodies": "Badan", + "Borsh Active Connections": "Koneksi Aktif Borsh", + "Borsh Connection Attempts": "Upaya Koneksi Borsh", + "Borsh Handshake Failures": "Kegagalan Borsh Handshake", + "Build": "Bangun", + "CONNECTED": "TERHUBUNG", + "CPU": "CPU", + "Cache Memory Size": "Ukuran Memori Cache", + "Cancel": "Batal", + "Cannot delete data folder while the node is running": "Tidak dapat menghapus folder data saat node sedang berjalan", + "Capture a screenshot": "Ambil tangkapan layar", + "Capture saved to {path}": "Tangkapan telah disimpan ke {path}", + "Center VSPC": "Pusat VSPC", + "Chain Blocks": "Blok Rantai", + "Change Address": "Ubah Alamat", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Periksa Pembaruan Perangkat Lunak di GitHub", + "Check for Updates": "Periksa Pembaruan", + "Clear": "Kosongkan", + "Click to try another server...": "Klik untuk mencoba server lain...", + "Client RPC": " Klien RPC", + "Close": "Tutup", + "Close the window": "Tutup jendela", + "Confirm BIP39 passphrase": "Konfirmasikan frasa sandi BIP39", + "Confirm wallet password": "Konfirmasikan kata sandi dompet", + "Connecting to": "Hubungkan ke", + "Connection": "Koneksi", + "Connections": "Koneksi", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Terhubung ke Node Kaspa Rusty Jarak Jauh melalui wRPC.", + "Conservative": "Konservatif", + "Continue": "Lanjutkan", + "Copied to clipboard": "Disalin ke papan klip", + "Copy": "Salin", + "Copy logs to clipboard": "Salin log ke papan klip", + "Create New Wallet": "Buat Dompet Baru", + "Create Wallet": "Buat Dompet", + "Create new wallet": "Buat dompet baru", + "Creating Account": "Membuat akun", + "Creating Wallet": "Membuat Dompet", + "Custom": "Kustom", + "Custom Public Node": "Node Publik Khusus", + "Custom arguments:": "Argumen khusus:", + "Custom data storage folder": "Folder penyimpanan data khusus", + "DAA": "DAA", + "DAA Offset": "Pengimbangan DAA", + "DAA Range": "Rentang DAA", + "DB Blocks": "Blok DB", + "DB Headers": "Header DB", + "Dangerous": "Berbahaya", + "Data Storage": "Penyimpanan Data", + "Database Blocks": "Blok Basis Data", + "Database Headers": "Header Basis Data", + "Decrypt": "Dekrip", + "Decrypting Wallet File": "Dekrip File Dompet", + "Decrypting wallet, please wait...": "Mendekripsi dompet, harap tunggu...", + "Default": "Bawaan", + "Default Account Name": "Nama Akun Bawaan", + "Delete Data Folder": "Hapus Folder Data", + "Dependencies": "Ketergantungan", + "Derivation Indexes": "Indeks Derivasi", + "Details": "Detail", + "Developer Mode": "Mode pengembang", + "Developer Resources": "Sumber Daya Pengembang", + "Developer mode enables advanced and experimental features": "Mode pengembang mengaktifkan fitur lanjutan dan eksperimental", + "Difficulty": "Kesulitan", + "Dimensions": "Ukuran", + "Disable Window Frame": "Nonaktifkan Bingkai Jendela", + "Disable password safety rules": "Menonaktifkan aturan keamanan kata sandi", + "Disabled": "Dengan disabilitas", + "Disables node connectivity (Offline Mode).": "Menonaktifkan konektivitas node (Mode Offline).", + "Discord": "Discord", + "Donations": "Sumbangan", + "Double click on the graph to re-center...": "Klik dua kali pada grafik untuk memusatkan kembali...", + "ECDSA": "ECDSA", + "Economic": "Ekonomis", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Ekonomis: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Aktifkan Monitor Pasar", + "Enable UPnP": "Aktifkan UPnP", + "Enable custom daemon arguments": "Aktifkan argumen daemon khusus", + "Enable experimental features": "Aktifkan fitur eksperimental", + "Enable gRPC": "Aktifkan gRPC", + "Enable optional BIP39 passphrase": "Aktifkan frasa sandi BIP39 opsional", + "Enable screen capture": "Aktifkan tangkapan layar", + "Enables features currently in development": "Mengaktifkan fitur yang sedang dalam pengembangan", + "Enter": "Memasuki", + "Enter BIP39 passphrase": "Masukan frasa sandi BIP39", + "Enter account name (optional)": "Masukkan nama akun (opsional)", + "Enter destination address": "Masukkan alamat tujuan", + "Enter first account name": "Masukkan nama akun pertama", + "Enter mnemonic": "Masukan mnemonic", + "Enter password to decrypt this wallet file": "Masukkan kata sandi untuk mendekripsi file dompet ini", + "Enter phishing hint": "Masukkan petunjuk phishing", + "Enter priority fees": "Masukkan biaya prioritas", + "Enter the amount": "Masukkan jumlahnya", + "Enter the password for your wallet": "Masukkan kata sandi untuk dompet Anda", + "Enter the password to unlock your wallet": "Masukkan kata sandi untuk membuka kunci dompet Anda", + "Enter wallet name": "Masukkan nama dompet", + "Enter wallet password": "Masukkan kata sandi dompet", + "Enter your wallet secret": "Masukkan kata rahasia dompet Anda", + "Enter {suffix} amount to send": "Masukkan jumlah {suffix} yang akan dikirim", + "Error": "Kesalahan", + "Error importing a wallet": "Terjadi kesalahan saat mengimpor dompet", + "Error processing mnemonic: {err}": "Kesalahan saat memproses mnemonik: {err}", + "Exit Full Screen": "Keluar dari Layar Penuh", + "Explorer": "Penjelajah", + "Export Wallet Data": "Ekspor Data Dompet", + "FIRST": "PERTAMA", + "Faucet": "Keran", + "Fee Market": "Biaya Pasar", + "Fee Market & Network Pressure": "Biaya Pasar & Tekanan Jaringan", + "Fee Market Only": "Hanya Pasar Berbiaya", + "File Handles": "Tangani File", + "File contents": "Isi berkas", + "Filename:": "Nama file:", + "Final Amount:": "Jumlah akhir:", + "Final Amount: {amount}": "Jumlah Akhir: {amount}", + "For decrypting uploaded file please enter wallet secret.": "Untuk mendekripsi file yang diunggah, silakan masukkan rahasia dompet.", + "Full Screen": "Layar Penuh", + "Generate New Change Address": "Hasilkan Alamat Perubahan Baru", + "Generate New Receive Address": "Hasilkan Alamat Penerimaan Baru", + "GitHub Release": "Rilis GitHub", + "Go to Settings": "Pergi ke pengaturan", + "Good": "Bagus", + "Handles": "Menangani", + "Headers": "Header", + "High": "Tinggi", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "Jika tidak ditentukan, akun akan diwakili oleh id numerik.", + "If you are running locally, use: ": "Jika Anda menjalankan secara lokal, gunakan: ", + "Import Existing Private Key": "Impor Kunci Pribadi yang Sudah Ada", + "Import existing": "Impor yang sudah ada", + "Import existing file": "Impor file yang ada", + "Importing Legacy Wallet": "Mengimpor Dompet Lama", + "Importing Wallet": "Mengimpor Dompet", + "Importing Wallet File": "Mengimpor File Dompet", + "Inbound": "Masuk", + "Integrated Daemon": "Daemon Terintegrasi", + "Invalid amount:": "Jumlah tidak valid:", + "Invalid daemon arguments": "Argumen daemon tidak valid", + "Invalid fee amount:": "Jumlah biaya tidak valid:", + "Invalid wRPC URL": "URL wRPC tidak valid", + "Json Active Connections": "Koneksi Aktif Json", + "Json Connection Attempts": "Upaya Koneksi Json", + "Json Handshake Failures": "Kegagalan Jabat Tangan Json", + "Kaspa Discord": "Discord Kaspa", + "Kaspa Integration Guide": "Panduan Integrasi Kaspa", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG di GitHub", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Jaringan Kaspa", + "Kaspa Node": "Node Kaspa", + "Kaspa p2p Network & Node Connection": "Jaringan Kaspa p2p", + "Kaspa p2p Node": "Kaspa p2p Node", + "Kaspa p2p Node & Connection": "Kaspa p2p Node", + "Key Perf.": "Kunci Perf.", + "LAST": "TERAKHIR", + "Language:": "Bahasa:", + "Large (1 BPS)": "Besar (1 BPS)", + "Legacy 12 word mnemonic": "12 kata mnemonic lama", + "Levels": "Tingkat", + "License Information": "Informasi Lisensi", + "Local": "Lokal", + "Local p2p Node Configuration": "Konfigurasi Node p2p lokal", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Log", + "Low": "Rendah", + "Low-priority": "Prioritas-rendah", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Rendah: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Jaringan utama Kaspa", + "Mainnet": "Mainnet", + "Managed by the Rusty Kaspa daemon": "Dikelola oleh daemon Rusty Kaspa", + "Market": "Pasar", + "Market Cap": "Kapitalisasi Pasar", + "Market Monitor": "Pemantau Pasar", + "Mass Processed": "Diproses Massal", + "Mass:": "Massa:", + "Mass: {number}g": "Massa: {number}g", + "Maximize window": "Maksimalkan jendela", + "Medium Narrow": "Sedang Sempit", + "Medium Wide": "Lebar Sedang", + "Memory": "Penyimpanan", + "Mempool": "Mempool", + "Mempool Size": "Ukuran Mempool", + "Metrics": "Metrik", + "Metrics are not currently available": "Metrik saat ini tidak tersedia", + "Miner Fee": "Biaya Penambang", + "Minimize the window": "Minimalkan jendela", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Impor Mnemonic", + "NEXT": "SELANJUTNYA", + "NO NAME": "TIDAK ADA NAMA", + "NPM Modules for NodeJS": "Modul NPM untuk NodeJS", + "Network": "Jaringan", + "Network Difficulty": "Kesulitan Jaringan", + "Network Fee Estimator": "Penaksir Biaya Jaringan", + "Network Interface": "Antarmuka Jaringan", + "Network Peers": "Jaringan Peers", + "Network Pressure: ~{number}%": "Tekanan Jaringan: ~{number}%", + "Never share your mnemonic with anyone!": "Jangan pernah membagikan mnemonik Anda dengan siapa pun!", + "No peers": "Tidak ada peers", + "No public node selected - please select a public node": "Tidak ada node publik yang dipilih - silakan pilih node publik", + "No transactions": "Tidak ada transaksi", + "No wallets found, please create a new wallet": "Tidak ada dompet yang ditemukan, silakan buat dompet baru", + "Node": "node", + "Node Status": "Status Node", + "Noise": "Kebisingan", + "None": "Tidak ada", + "Normal": "Normal", + "Not Connected": "Tidak terhubung", + "Not connected": "Tidak terhubung", + "Notifications": "Pemberitahuan", + "Open Data Folder": "Buka Folder Data", + "Opening wallet:": "Membuka dompet:", + "Optional": "Opsional", + "Options": "Opsi", + "Other operations": "Operasi lainnya", + "Outbound": "Keluar", + "Overview": "Ringkasan", + "PREV": "SEBELUMNYA", + "Parents": "Induk", + "Passive Sync": "Sinkronisasi Pasif", + "Passphrase is too weak": "Frasa sandi terlalu lemah", + "Passphrases do not match": "Frasa sandi tidak cocok", + "Passwords do not match": "Kata sandi tidak cocok", + "Past Median Time": "Waktu Median yang Lalu", + "Payment & Recovery Password": "Pembayaran", + "Payment Request": "Permintaan pembayaran", + "Payment request to account: {account}": "Permintaan pembayaran ke rekening: {account}", + "Peers": "Peers", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performa", + "Phishing Hint": "Petunjuk Phishing", + "Ping:": "Ping:", + "Please Confirm Deletion": "Harap Konfirmasi Penghapusan", + "Please configure your Kaspa NG settings": "Silakan konfigurasikan pengaturan Kaspa NG Anda", + "Please connect to Kaspa p2p node": "Silakan sambungkan ke node p2p Kaspa", + "Please create a stronger password": "Harap buat kata sandi yang lebih kuat", + "Please enter a valid address: {err}": "Silakan masukkan alamat yang valid: {err}", + "Please enter a valid amount of KAS": "Silakan masukkan jumlah KAS yang valid", + "Please enter additional {amount} words": "Silakan masukkan {amount} kata tambahan", + "Please enter an amount": "Silakan masukkan jumlah", + "Please enter mnemonic comprised of {number} words": "Silakan masukkan mnemonik yang terdiri dari {number} kata", + "Please enter the account name": "Silakan masukkan nama akun", + "Please enter the wallet secret": "Silakan masukkan kata rahasia dompet", + "Please enter {suffix} amount to send": "Silakan masukkan jumlah {suffix} yang akan dikirim", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Harap diperhatikan, menyalin ke papan klip berisiko membuat mnemonik Anda terkena malware.", + "Please select 'Apply' and restart the application.": "Pilih 'Terapkan' dan mulai ulang aplikasi.", + "Please select account to scan": "Silakan pilih akun yang akan dipindai", + "Please select an account type": "Silakan pilih jenis akun", + "Please select export type": "Silakan pilih jenis ekspor", + "Please select the private key to export": "Silakan pilih kunci pribadi yang akan diekspor", + "Please select the private key type you would like to import in the new wallet": "Pilih jenis kunci pribadi yang ingin Anda impor ke dalam dompet baru", + "Please set node to 'Disabled' to delete the data folder": "Silakan atur node ke 'Disabled' untuk menghapus folder data", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Silakan tentukan nama akun bawaan. Dompet akan dibuat dengan akun Bawaan. Setelah dibuat, Anda akan dapat membuat akun tambahan sesuai kebutuhan. ", + "Please specify the name of the new wallet": "Silakan tentukan nama dompet baru", + "Please specify the private key type for the new wallet": "Silakan tentukan jenis kunci pribadi untuk dompet baru", + "Please support Kaspa NG development": "Tolong dukung pengembangan Kaspa NG", + "Please wait for the node to sync or connect to a remote node.": "Harap tunggu hingga node disinkronkan atau terhubung ke node jarak jauh.", + "Please wait for the node to sync...": "Harap tunggu hingga node disinkronkan...", + "Please wait...": "Harap tunggu...", + "Presets": "Preset", + "Price": "Harga", + "Priority": "Prioritas", + "Priority Fee Estimator": "Penaksir Biaya Prioritas", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Prioritas: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Mnemonik Kunci Pribadi", + "Private key mnemonic stored in this wallet": "Mnemonik kunci pribadi disimpan di dompet ini", + "Processed Bodies": "Badan yang Diproses", + "Processed Dependencies": "Ketergantungan yang Diproses", + "Processed Headers": "Header yang Diproses", + "Processed Mass Counts": "Penghitungan Massa yang Diproses", + "Processed Transactions": "Transaksi yang Diproses", + "Processing...": "Memproses...", + "Protocol:": "Protokol:", + "Public Node": "Node Publik", + "Public wRPC (Borsh)": "wRPC publik (Borsh)", + "Quit": "Keluar", + "Random Public Node": "Node Publik Acak", + "Range:": "Jangkauan:", + "Receive Address": "Alamat Penerimaan", + "Recommended arguments for the remote node: ": "Argumen yang disarankan untuk node jarak jauh: ", + "Redistributables": "Redistributables", + "Remote": "Remot", + "Remote Connection:": "Koneksi Jarak Jauh:", + "Remote p2p Node Configuration": "Konfigurasi Node p2p jarak jauh", + "Removes security restrictions, allows for single-letter passwords": "Menghapus batasan keamanan, memungkinkan kata sandi satu huruf", + "Reset Settings": "Atur Ulang Pengaturan", + "Reset VSPC": "Setel ulang VSPC", + "Resident Memory": "Memori Residen", + "Resources": "Sumber daya", + "Restart": "Mulai Ulang", + "Restore window": "Pulihkan jendela", + "Resulting daemon arguments:": "Argumen daemon yang dihasilkan:", + "Rust Wallet SDK": "SDK Dompet Karat", + "Rusty Kaspa on GitHub": "Rusty Kaspa di GitHub", + "Scanner": "Pemindai", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Pemindaian selesai...", + "Secret is too weak": "Rahasia terlalu lemah", + "Secret score:": "Skor rahasia:", + "Select Account": "Pilih Akun", + "Select Private Key Type": "Pilih Jenis Kunci Pribadi", + "Select Public Node": "Pilih Node Publik", + "Select Wallet": "Pilih Dompet", + "Select a wallet to unlock": "Pilih dompet untuk dibuka kuncinya", + "Select file...": "Pilih berkas...", + "Select this option if your wallet was created": "Pilih opsi ini jika dompet Anda dibuat", + "Send": "Kirim", + "Sending funds": "Mengirim dana", + "Sending funds without priority fees will result in long transaction wait times.": "Pengiriman dana tanpa biaya prioritas akan mengakibatkan waktu tunggu transaksi yang lama.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Layanan", + "Settings": "Pengaturan", + "Show DAA": "Tampilkan DAA", + "Show Grid": "Tampilkan Kotak", + "Show VSPC": "Tampilkan VSPC", + "Show balances in alternate currencies for testnet coins": "Tampilkan saldo dalam mata uang alternatif untuk koin testnet", + "Show passphrase": "Tampilkan frasa sandi", + "Show password": "Tampilkan kata sandi", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Menampilkan saldo dalam mata uang alternatif (BTC, USD) saat menggunakan koin testnet seolah-olah Anda berada di mainnet", + "Skip": "Lewati", + "Small (10 BPS)": "Kecil (10 BPS)", + "Spread": "Sebarkan", + "Stage": "Panggung", + "Starting...": "Memulai...", + "Statistics": "Statistik", + "Stop": "Berhenti", + "Stor Read": "Penyimpanan Baca", + "Stor Write": "Penyimpanan Tulis", + "Storage": "Penyimpanan", + "Storage Read": "Penyimpanan Baca", + "Storage Read/s": "Penyimpanan Baca/dtk", + "Storage Size": "Ukuran Penyimpanan", + "Storage Write": "Penyimpanan Tulis", + "Storage Write/s": "Penyimpanan Tulis/dtk", + "Strong": "Kuat", + "Submitted Blocks": "Blok yang Dikirim", + "Syncing Cryptographic Proof...": "Menyinkronkan Bukti Kriptografi...", + "Syncing DAG Blocks...": "Menyinkronkan Blok DAG...", + "Syncing Headers...": "Menyinkronkan Header...", + "Syncing UTXO entries...": "Menyinkronkan entri UTXO...", + "Syncing...": "Menyinkronkan...", + "System": "Sistem", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Perangkat lunak Kaspa NG mewakili upaya berkelanjutan yang berfokus pada pembangunan platform perangkat lunak canggih yang didedikasikan untuk jaringan mata uang kripto Kaspa BlockDAG. ", + "The balance may be out of date during node sync": "Saldo mungkin kedaluwarsa selama sinkronisasi node", + "The following will guide you through the process of creating or importing a wallet.": "Berikut ini akan memandu Anda melalui proses pembuatan atau impor dompet.", + "The network is currently congested.": "Jaringan saat ini sedang padat.", + "The node is currently syncing with the Kaspa p2p network.": "Node saat ini sedang melakukan sinkronisasi dengan jaringan Kaspa p2p.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "Node saat ini sedang melakukan sinkronisasi dengan jaringan Kaspa p2p. ", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "Node saat ini sedang melakukan sinkronisasi dengan jaringan Kaspa p2p. Harap tunggu hingga node disinkronkan.", + "The node is spawned as a child daemon process (recommended).": "Node ini dihasilkan sebagai proses daemon anak (disarankan).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "Node berjalan sebagai bagian dari proses aplikasi Kaspa-NG. Hal ini mengurangi overhead komunikasi (eksperimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "Node disinkronkan di latar belakang saat Kaspa-NG terhubung ke node publik.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "Node disinkronkan di latar belakang saat Kaspa-NG terhubung ke node publik. Setelah node disinkronkan, Anda dapat beralih ke mode 'Daemon Terintegrasi'.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "Kata sandi pemulihan pembayaran & mnemonik opsional, yang dikenal sebagai kata sandi BIP39, jika diberikan, akan diperlukan untuk mengirim pembayaran. Kata sandi ini juga akan diperlukan saat memulihkan dompet Anda selain mnemonic Anda, jika Anda kehilangan atau lupa kata sandi ini, Anda tidak akan dapat menggunakan mnemonic untuk memulihkan dompet Anda!", + "Theme Color": "Warna Tema", + "Theme Color:": "Warna Tema:", + "Theme Style": "Gaya Tema", + "Theme Style:": "Gaya Tema:", + "This option will transfer any discovered funds to the first change address of this account.": "Opsi ini akan mentransfer dana yang ditemukan ke alamat perubahan pertama akun ini.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Dompet ini tidak akan pernah menanyakan frasa mnemonik ini kecuali Anda memulai pemulihan kunci pribadi secara manual.", + "Threshold": "Ambang Batas", + "Time Offset:": "Waktu Offset:", + "Timestamp: {timestamp}": "Linimasa: {timestamp}", + "Tip Hashes": "Tip Hash", + "Too many words in the": "Terlalu banyak kata di dalamnya", + "Tools": "Tools", + "Total Rx": "Jumlah Rx", + "Total Rx/s": "Total Rx/dtk", + "Total Tx": "Jumlah Tx", + "Total Tx/s": "Jumlah Tx/dtk", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Lacak di latar belakang", + "Transactions": "Transaksi", + "Transactions:": "Transaksi:", + "Transactions: {number}": "Transaksi: {number}", + "Transfer funds during scan": "Transfer dana selama pemindaian", + "Type": "Jenis", + "URI copied to clipboard": "URI disalin ke papan klip", + "UTXO Manager": "Manajer UTXO", + "UTXOs": "UTXO", + "UTXOs:": "UTXO:", + "UTXOs: {number}": "UTXO: {number}", + "Unable to change node settings until the problem is resolved": "Tidak dapat mengubah pengaturan node hingga masalah teratasi", + "Unable to store settings": "Unable to store settings", + "Unlock": "Buka kunci", + "Unlock Wallet": "Buka Dompet", + "Unlocking": "Membuka kunci", + "Update Available to version": "Pembaruan Tersedia untuk versi", + "Updating...": "Memperbarui...", + "Uptime:": "Waktu Aktif:", + "Use 50%-75% of available system memory": "Gunakan 50%-75% dari memori sistem yang tersedia", + "Use all available system memory": "Gunakan semua memori sistem yang tersedia", + "User Agent": "Agen pengguna", + "User Interface": "Antarmuka pengguna", + "Very dangerous (may be cracked within few seconds)": "Sangat berbahaya (mungkin retak dalam beberapa detik)", + "Very strong": "Sangat kuat", + "Very weak": "Sangat lemah", + "Virt Parents": "Orang Tua yang Berbudi Luhur", + "Virtual DAA Score": "Skor DAA Virtual", + "Virtual Memory": "Memori Virtual", + "Virtual Parent Hashes": "Hash Induk Virtual", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK untuk JavaScript dan TypeScript", + "Wallet": "Dompet", + "Wallet Created": "Dompet Dibuat", + "Wallet Encryption Password": "Kata Sandi Enkripsi Dompet", + "Wallet File Secret": "Rahasia File Dompet", + "Wallet Name": "Nama Dompet", + "Wallet Secret": "Dompet Rahasia", + "Wallet creation error:": "Kesalahan pembuatan dompet:", + "Wallet decrypting error:": "Kesalahan mendekripsi dompet:", + "Wallet password is used to encrypt your wallet data.": "Kata sandi dompet digunakan untuk mengenkripsi data dompet Anda.", + "Wallet with this name already exists": "Dompet dengan nama ini sudah ada", + "Wallet:": "Dompet:", + "We greatly appreciate your help in backing our efforts.": "Kami sangat menghargai bantuan Anda dalam mendukung upaya kami.", + "Weak": "Lemah", + "Welcome to Kaspa NG": "Selamat datang di Kaspa NG", + "Xpub Keys": "Kunci Xpub", + "You are currently not connected to the Kaspa node.": "Anda saat ini tidak terhubung ke node Kaspa.", + "You can configure remote connection in Settings": "Anda dapat mengonfigurasi koneksi jarak jauh di Pengaturan", + "You can create multiple wallets, but only one wallet can be open at a time.": "Anda dapat membuat beberapa dompet, namun hanya satu dompet yang dapat dibuka dalam satu waktu.", + "You must be connected to a node...": "Anda harus terhubung ke sebuah node...", + "Your default wallet private key mnemonic is:": "Mnemonik kunci pribadi dompet default Anda adalah:", + "Your mnemonic is protected with a bip39 passphrase": "Mnemonik Anda dilindungi dengan frasa sandi bip39", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Frasa mnemonik Anda memungkinkan Anda untuk membuat ulang kunci pribadi Anda. Orang yang memiliki akses ke mnemonik ini akan memiliki kontrol penuh atas Kaspa yang tersimpan di dalamnya. Simpanlah mnemonik Anda dengan aman. Tuliskan dan simpan di tempat yang aman, sebaiknya di tempat yang tahan api. Jangan simpan mnemonik Anda di komputer atau perangkat seluler. Dompet ini tidak akan pernah meminta frasa mnemonik ini kecuali jika anda melakukan pemulihan kunci pribadi secara manual.", + "Your mnemonic phrase is invalid": "Frasa mnemonik Anda tidak valid", + "Your private key mnemonic is:": "Mnemonik kunci pribadi Anda adalah:", + "Your wallet has been created and is ready to use.": "Dompet Anda telah dibuat dan siap digunakan.", + "Zoom": "Perbesar", + "bye!": "selamat tinggal!", + "gRPC Network Interface & Port": "Antarmuka Jaringan gRPC", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/dtk", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/dtk", + "of": "dari", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/dtk", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/dtk", + "peer": "peer", + "peers": "peers", + "using KDX or kaspanet.io web wallet": "menggunakan dompet KDX atau web kaspanet.io", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/dtk", + "wRPC Connection Settings": "Pengaturan Koneksi wRPC", + "wRPC Encoding:": "Pengkodean wRPC:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/dtk", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/dtk", + "wRPC URL:": "URL wRPC:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Kirim", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Permintaan", + "~2 hours": "~2 jam", + "~30 minutes": "~30 menit" + }, + "is": {}, + "it": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS test network", + "10 BPS test network": "10 BPS test network", + "12 word mnemonic": "12 word mnemonic", + "24 word mnemonic": "24 word mnemonic", + "24h Change": "24h Change", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "A binary at another location is spawned a child process (experimental, for development purposes only).", + "A random node will be selected on startup": "A random node will be selected on startup", + "A wallet is stored in a file on your computer.": "A wallet is stored in a file on your computer.", + "Account Index": "Account Index", + "Account Name": "Account Name", + "Account not found": "Account not found", + "Account:": "Account:", + "Activate custom daemon arguments": "Activate custom daemon arguments", + "Active p2p Peers": "Active p2p Peers", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Address derivation scan", + "Address:": "Address:", + "Advanced": "Advanced", + "All": "All", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Allow custom arguments for the Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Allows you to take screenshots from within the application", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Apply", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Balance: N/A", + "Bandwidth": "Bandwidth", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.", + "Bezier Curves": "Bezier Curves", + "Block DAG": "Block DAG", + "Block Scale": "Block Scale", + "Blocks": "Blocks", + "Bodies": "Bodies", + "Borsh Active Connections": "Borsh Active Connections", + "Borsh Connection Attempts": "Borsh Connection Attempts", + "Borsh Handshake Failures": "Borsh Handshake Failures", + "Build": "Build", + "CONNECTED": "CONNECTED", + "CPU": "CPU", + "Cache Memory Size": "Cache Memory Size", + "Cancel": "Cancel", + "Cannot delete data folder while the node is running": "Cannot delete data folder while the node is running", + "Capture a screenshot": "Capture a screenshot", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Center VSPC", + "Chain Blocks": "Chain Blocks", + "Change Address": "Change Address", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Check for Software Updates on GitHub", + "Check for Updates": "Check for Updates", + "Clear": "Clear", + "Click to try another server...": "Click to try another server...", + "Client RPC": "Client RPC", + "Close": "Close", + "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Confirm wallet password", + "Connecting to": "Connecting to", + "Connection": "Connection", + "Connections": "Connections", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connects to a Remote Rusty Kaspa Node via wRPC.", + "Conservative": "Conservative", + "Continue": "Continue", + "Copied to clipboard": "Copied to clipboard", + "Copy": "Copy", + "Copy logs to clipboard": "Copy logs to clipboard", + "Create New Wallet": "Create New Wallet", + "Create Wallet": "Create Wallet", + "Create new wallet": "Create new wallet", + "Creating Account": "Creating Account", + "Creating Wallet": "Creating Wallet", + "Custom": "Custom", + "Custom Public Node": "Custom Public Node", + "Custom arguments:": "Custom arguments:", + "Custom data storage folder": "Custom data storage folder", + "DAA": "DAA", + "DAA Offset": "DAA Offset", + "DAA Range": "DAA Range", + "DB Blocks": "DB Blocks", + "DB Headers": "DB Headers", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", + "Database Blocks": "Database Blocks", + "Database Headers": "Database Headers", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Decrypting wallet, please wait...", + "Default": "Default", + "Default Account Name": "Default Account Name", + "Delete Data Folder": "Delete Data Folder", + "Dependencies": "Dependencies", + "Derivation Indexes": "Derivation Indexes", + "Details": "Details", + "Developer Mode": "Developer Mode", + "Developer Resources": "Developer Resources", + "Developer mode enables advanced and experimental features": "Developer mode enables advanced and experimental features", + "Difficulty": "Difficulty", + "Dimensions": "Dimensions", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Disabled", + "Disables node connectivity (Offline Mode).": "Disables node connectivity (Offline Mode).", + "Discord": "Discord", + "Donations": "Donations", + "Double click on the graph to re-center...": "Double click on the graph to re-center...", + "ECDSA": "ECDSA", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Enable Market Monitor", + "Enable UPnP": "Enable UPnP", + "Enable custom daemon arguments": "Enable custom daemon arguments", + "Enable experimental features": "Enable experimental features", + "Enable gRPC": "Enable gRPC", + "Enable optional BIP39 passphrase": "Enable optional BIP39 passphrase", + "Enable screen capture": "Enable screen capture", + "Enables features currently in development": "Enables features currently in development", + "Enter": "Enter", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Enter account name (optional)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Enter first account name", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Enter phishing hint", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Enter the amount", + "Enter the password for your wallet": "Enter the password for your wallet", + "Enter the password to unlock your wallet": "Enter the password to unlock your wallet", + "Enter wallet name": "Enter wallet name", + "Enter wallet password": "Enter wallet password", + "Enter your wallet secret": "Enter your wallet secret", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Explorer", + "Export Wallet Data": "Export Wallet Data", + "FIRST": "FIRST", + "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "File Handles", + "File contents": "File contents", + "Filename:": "Filename:", + "Final Amount:": "Final Amount:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub Release", + "Go to Settings": "Go to Settings", + "Good": "Good", + "Handles": "Handles", + "Headers": "Headers", + "High": "High", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "If not specified, the account will be represented by the numeric id.", + "If you are running locally, use: ": "If you are running locally, use: ", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Import existing", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Inbound", + "Integrated Daemon": "Integrated Daemon", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Invalid daemon arguments", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Invalid wRPC URL", + "Json Active Connections": "Json Active Connections", + "Json Connection Attempts": "Json Connection Attempts", + "Json Handshake Failures": "Json Handshake Failures", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Kaspa Integration Guide", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG on GitHub", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Kaspa Network", + "Kaspa Node": "Kaspa Node", + "Kaspa p2p Network & Node Connection": "Kaspa p2p Network & Node Connection", + "Kaspa p2p Node": "Kaspa p2p Node", + "Kaspa p2p Node & Connection": "Kaspa p2p Node & Connection", + "Key Perf.": "Key Perf.", + "LAST": "LAST", + "Language:": "Language:", + "Large (1 BPS)": "Large (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Levels", + "License Information": "License Information", + "Local": "Local", + "Local p2p Node Configuration": "Local p2p Node Configuration", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Logs", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Main Kaspa network", + "Mainnet": "Mainnet", + "Managed by the Rusty Kaspa daemon": "Managed by the Rusty Kaspa daemon", + "Market": "Market", + "Market Cap": "Market Cap", + "Market Monitor": "Market Monitor", + "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Medium Narrow", + "Medium Wide": "Medium Wide", + "Memory": "Memory", + "Mempool": "Mempool", + "Mempool Size": "Mempool Size", + "Metrics": "Metrics", + "Metrics are not currently available": "Metrics are not currently available", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM Modules for NodeJS", + "Network": "Network", + "Network Difficulty": "Network Difficulty", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Network Interface", + "Network Peers": "Network Peers", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "No peers", + "No public node selected - please select a public node": "No public node selected - please select a public node", + "No transactions": "No transactions", + "No wallets found, please create a new wallet": "No wallets found, please create a new wallet", + "Node": "Node", + "Node Status": "Node Status", + "Noise": "Noise", + "None": "None", + "Normal": "Normal", + "Not Connected": "Not Connected", + "Not connected": "Not connected", + "Notifications": "Notifications", + "Open Data Folder": "Open Data Folder", + "Opening wallet:": "Opening wallet:", + "Optional": "Optional", + "Options": "Options", + "Other operations": "Other operations", + "Outbound": "Outbound", + "Overview": "Overview", + "PREV": "PREV", + "Parents": "Parents", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Past Median Time", + "Payment & Recovery Password": "Payment & Recovery Password", + "Payment Request": "Payment Request", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Peers", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performance", + "Phishing Hint": "Phishing Hint", + "Ping:": "Ping:", + "Please Confirm Deletion": "Please Confirm Deletion", + "Please configure your Kaspa NG settings": "Please configure your Kaspa NG settings", + "Please connect to Kaspa p2p node": "Please connect to Kaspa p2p node", + "Please create a stronger password": "Please create a stronger password", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Please enter an amount", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Please enter the account name", + "Please enter the wallet secret": "Please enter the wallet secret", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Please select an account type", + "Please select export type": "Please select export type", + "Please select the private key to export": "Please select the private key to export", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Please set node to 'Disabled' to delete the data folder", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.", + "Please specify the name of the new wallet": "Please specify the name of the new wallet", + "Please specify the private key type for the new wallet": "Please specify the private key type for the new wallet", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Please wait for the node to sync or connect to a remote node.", + "Please wait for the node to sync...": "Please wait for the node to sync...", + "Please wait...": "Please wait...", + "Presets": "Presets", + "Price": "Price", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Processed Bodies", + "Processed Dependencies": "Processed Dependencies", + "Processed Headers": "Processed Headers", + "Processed Mass Counts": "Processed Mass Counts", + "Processed Transactions": "Processed Transactions", + "Processing...": "Processing...", + "Protocol:": "Protocol:", + "Public Node": "Public Node", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Random Public Node", + "Range:": "Range:", + "Receive Address": "Receive Address", + "Recommended arguments for the remote node: ": "Recommended arguments for the remote node: ", + "Redistributables": "Redistributables", + "Remote": "Remote", + "Remote Connection:": "Remote Connection:", + "Remote p2p Node Configuration": "Remote p2p Node Configuration", + "Removes security restrictions, allows for single-letter passwords": "Removes security restrictions, allows for single-letter passwords", + "Reset Settings": "Reset Settings", + "Reset VSPC": "Reset VSPC", + "Resident Memory": "Resident Memory", + "Resources": "Resources", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Resulting daemon arguments:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa on GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Secret is too weak", + "Secret score:": "Secret score:", + "Select Account": "Select Account", + "Select Private Key Type": "Select Private Key Type", + "Select Public Node": "Select Public Node", + "Select Wallet": "Select Wallet", + "Select a wallet to unlock": "Select a wallet to unlock", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Send", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Services", + "Settings": "Settings", + "Show DAA": "Show DAA", + "Show Grid": "Show Grid", + "Show VSPC": "Show VSPC", + "Show balances in alternate currencies for testnet coins": "Show balances in alternate currencies for testnet coins", + "Show passphrase": "Show passphrase", + "Show password": "Show password", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet", + "Skip": "Skip", + "Small (10 BPS)": "Small (10 BPS)", + "Spread": "Spread", + "Stage": "Stage", + "Starting...": "Starting...", + "Statistics": "Statistics", + "Stop": "Stop", + "Stor Read": "Stor Read", + "Stor Write": "Stor Write", + "Storage": "Storage", + "Storage Read": "Storage Read", + "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", + "Storage Write": "Storage Write", + "Storage Write/s": "Storage Write/s", + "Strong": "Strong", + "Submitted Blocks": "Submitted Blocks", + "Syncing Cryptographic Proof...": "Syncing Cryptographic Proof...", + "Syncing DAG Blocks...": "Syncing DAG Blocks...", + "Syncing Headers...": "Syncing Headers...", + "Syncing UTXO entries...": "Syncing UTXO entries...", + "Syncing...": "Syncing...", + "System": "System", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.", + "The balance may be out of date during node sync": "The balance may be out of date during node sync", + "The following will guide you through the process of creating or importing a wallet.": "The following will guide you through the process of creating or importing a wallet.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "The node is currently syncing with the Kaspa p2p network.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Theme Color", + "Theme Color:": "Theme Color:", + "Theme Style": "Theme Style", + "Theme Style:": "Theme Style:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Threshold": "Threshold", + "Time Offset:": "Time Offset:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Track in the background", + "Transactions": "Transactions", + "Transactions:": "Transactions:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Type", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO Manager", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Unable to change node settings until the problem is resolved", + "Unable to store settings": "Unable to store settings", + "Unlock": "Unlock", + "Unlock Wallet": "Unlock Wallet", + "Unlocking": "Unlocking", + "Update Available to version": "Update Available to version", + "Updating...": "Updating...", + "Uptime:": "Uptime:", + "Use 50%-75% of available system memory": "Use 50%-75% of available system memory", + "Use all available system memory": "Use all available system memory", + "User Agent": "User Agent", + "User Interface": "User Interface", + "Very dangerous (may be cracked within few seconds)": "Very dangerous (may be cracked within few seconds)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Virt Parents", + "Virtual DAA Score": "Virtual DAA Score", + "Virtual Memory": "Virtual Memory", + "Virtual Parent Hashes": "Virtual Parent Hashes", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", + "Wallet": "Wallet", + "Wallet Created": "Wallet Created", + "Wallet Encryption Password": "Wallet Encryption Password", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Wallet Name", + "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Wallet password is used to encrypt your wallet data.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Wallet:", + "We greatly appreciate your help in backing our efforts.": "We greatly appreciate your help in backing our efforts.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Welcome to Kaspa NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "You are currently not connected to the Kaspa node.", + "You can configure remote connection in Settings": "You can configure remote connection in Settings", + "You can create multiple wallets, but only one wallet can be open at a time.": "You can create multiple wallets, but only one wallet can be open at a time.", + "You must be connected to a node...": "You must be connected to a node...", + "Your default wallet private key mnemonic is:": "Your default wallet private key mnemonic is:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Your private key mnemonic is:", + "Your wallet has been created and is ready to use.": "Your wallet has been created and is ready to use.", + "Zoom": "Zoom", + "bye!": "bye!", + "gRPC Network Interface & Port": "gRPC Network Interface & Port", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "of", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "peer", + "peers": "peers", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "wRPC Connection Settings", + "wRPC Encoding:": "wRPC Encoding:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" + }, + "ja": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "Testnet ad 1 BPS", + "10 BPS test network": "Testnet a 10 BPS", + "12 word mnemonic": "12 parole di ripristino", + "24 word mnemonic": "24 parole di ripristino", + "24h Change": "Cambiamenti 24h", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "Un compilato in un'altro percorcorso è stato creato come processo figlio (sperimentale, solo per sviluppatori)", + "A random node will be selected on startup": "All'avvio sarà selezionato un nodo random", + "A wallet is stored in a file on your computer.": "Un wallet è conservato in un file sul tuo pc", + "Account Index": "Account Index", + "Account Name": "Nome Account", + "Account not found": "Account not found", + "Account:": "Account:", + "Activate custom daemon arguments": "Attivazioni di parametri personalizzani nel daemon", + "Active p2p Peers": "Peers p2p attivi", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Scannerizzazione degli indirizzi", + "Address:": "Indirizzo:", + "Advanced": "Avanzate", + "All": "Tutto", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Permetti parametri personalizzati per il daemon di Rust di Kaspa", + "Allows you to take screenshots from within the application": "Ti permette di effettuare screenshot all'interno dell'applicazione", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Applica", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Patrimonio: N/A", + "Bandwidth": "Larghezza di banda", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Per via della sua sicurezza e delle sue performance, questo software è totalmente sviluppato in Rust, ciò richiede molto più tempo ed energie rispetto a tradizionali e moderni software", + "Bezier Curves": "Curva di Bezier", + "Block DAG": "Block DAG", + "Block Scale": "Scala del Blocco", + "Blocks": "Blocchi", + "Bodies": "Corpi", + "Borsh Active Connections": "Connessioni tramite Borsh Attive", + "Borsh Connection Attempts": "Tentativi di Connessione tramite Borsh", + "Borsh Handshake Failures": "Handshake tramite Borsh Falliti", + "Build": "Compila", + "CONNECTED": "CONNESSO", + "CPU": "CPU", + "Cache Memory Size": "Dimensione Chache", + "Cancel": "Annulla", + "Cannot delete data folder while the node is running": "Non puoi eliminare la cartella dei dati mentre il nodo è attivo", + "Capture a screenshot": "Fai uno screenshot", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Centra VSPC", + "Chain Blocks": "Chain Blocks", + "Change Address": "Cambia indirizzo", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Controlla su GitHub se sono presenti degli aggiornamenti", + "Check for Updates": "Controlla Aggiornamenti", + "Clear": "Pulisci", + "Click to try another server...": "Clicca per provare un altro server...", + "Client RPC": "Client RCP", + "Close": "Chiudi", + "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Corferma la password del Wallet", + "Connecting to": "Connessione a", + "Connection": "Connessione", + "Connections": "Connessioni", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connette ad un Nodo Rust Remoto tramite wRPC", + "Conservative": "Conservativo", + "Continue": "Continua", + "Copied to clipboard": "Copiato negli appunti", + "Copy": "Copia", + "Copy logs to clipboard": "Copia i log negli appunti", + "Create New Wallet": "Crea Nuovo Wallet", + "Create Wallet": "Create Wallet", + "Create new wallet": "Crea Nuovo Wallet", + "Creating Account": "Creazione Account in corso", + "Creating Wallet": "Creazione Wallet in corso", + "Custom": "Personalizza", + "Custom Public Node": "Nodo Pubblico Personalizzato", + "Custom arguments:": "Parametri Personalizzati:", + "Custom data storage folder": "Custom data storage folder", + "DAA": "DAA", + "DAA Offset": "differenza DAA", + "DAA Range": "Intervallo DAA", + "DB Blocks": "Blocchi DB", + "DB Headers": "Header DB", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", + "Database Blocks": "Bocchi nel Database", + "Database Headers": "Header nel Database", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Decrittazione Wallet, attendi prego...", + "Default": "Default", + "Default Account Name": "Account name di Default", + "Delete Data Folder": "Elimina la Cartella Dati", + "Dependencies": "Dipendenze", + "Derivation Indexes": "Derivation Indexes", + "Details": "Dettagli", + "Developer Mode": "Modalità sviluppatore", + "Developer Resources": "Risorse per Sviluppatori", + "Developer mode enables advanced and experimental features": "La modalità Svuluppatore permette di avere accesso a modalità avanzate e sperimentali", + "Difficulty": "Difficoltà", + "Dimensions": "Dimensioni", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Disattivato", + "Disables node connectivity (Offline Mode).": "Disattiva la connessione ai nodi (Modalità Offline)", + "Discord": "Discord", + "Donations": "Donazioni", + "Double click on the graph to re-center...": "Doppio click sul grafico per centrare...", + "ECDSA": "ECDSA", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Abilità il Monitoraggio del Prezzo", + "Enable UPnP": "Abilita UPnP", + "Enable custom daemon arguments": "Abilita parametri del daemon personalizzati", + "Enable experimental features": "Abilita la modalità sperimentale", + "Enable gRPC": "Abilita gRPC", + "Enable optional BIP39 passphrase": "Abilita la password opzionale BIP39", + "Enable screen capture": "Abilita screenshot", + "Enables features currently in development": "Abilita modalità ancora in sviluppo", + "Enter": "Inserisci", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Inserisci nome account(opzionale)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Inserisci nome del primo account", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Inserisci suggerimento phishing", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Inserisci quantità", + "Enter the password for your wallet": "Inserisci la password del tuo wallet", + "Enter the password to unlock your wallet": "Inserisci la passoword per sbloccare il tuo wallet", + "Enter wallet name": "Inserisci il nome del wallet", + "Enter wallet password": "Inserisci la password del wallet", + "Enter your wallet secret": "Inserisci le parole segrete del tuo wallet", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Explorer", + "Export Wallet Data": "Esporta i Dati del Wallet", + "FIRST": "FIRST", + "Faucet": "Rubinetto", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "File Handles", + "File contents": "File contents", + "Filename:": "Nome File", + "Final Amount:": "Quantità Totale", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "Rilascio GitHub", + "Go to Settings": "Vai nelle Impostazioni", + "Good": "Good", + "Handles": "Handles", + "Headers": "Header", + "High": "High", + "IBD:": "IBD", + "If not specified, the account will be represented by the numeric id.": "l'account' se non specificato altrimenti, sarà rappresentato dall'id numerico", + "If you are running locally, use: ": "se stai eseguendo da locale, usa:", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Importa esistenti", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "In Entrata", + "Integrated Daemon": "Daemon Integrato", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Parametri del daemon non validi", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "URL wRPC non valido", + "Json Active Connections": "Connessioni Json attive", + "Json Connection Attempts": "Tentativi di connessione Json", + "Json Handshake Failures": "Handshake Json falliti", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Guida Implementativa di Kaspa", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG su GitHub", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Kaspa Network", + "Kaspa Node": "Nodo Kaspa", + "Kaspa p2p Network & Node Connection": "Network p2p di Kaspa & Connessioni del nodo", + "Kaspa p2p Node": "Nodo p2p Kaspa", + "Kaspa p2p Node & Connection": "Network p2p di Kaspa & Connessione", + "Key Perf.": "Key Perf.", + "LAST": "LAST", + "Language:": "Lingua:", + "Large (1 BPS)": "Grande (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Livelli", + "License Information": "Informazioni sulla licenza", + "Local": "Locale", + "Local p2p Node Configuration": "Configurazione del nodo p2p locale", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Log", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Network Kaspa principale", + "Mainnet": "Mainnet", + "Managed by the Rusty Kaspa daemon": "Controllato dal daemon Rusty Kaspa", + "Market": "Market", + "Market Cap": "Market Cap", + "Market Monitor": "Market Monitor", + "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Medium Narrow", + "Medium Wide": "Medium Wide", + "Memory": "Memory", + "Mempool": "Mempool", + "Mempool Size": "Mempool Size", + "Metrics": "Metrics", + "Metrics are not currently available": "Metrics are not currently available", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM Modules for NodeJS", + "Network": "Network", + "Network Difficulty": "Network Difficulty", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Network Interface", + "Network Peers": "Network Peers", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "No peers", + "No public node selected - please select a public node": "No public node selected - please select a public node", + "No transactions": "No transactions", + "No wallets found, please create a new wallet": "No wallets found, please create a new wallet", + "Node": "Node", + "Node Status": "Node Status", + "Noise": "Noise", + "None": "None", + "Normal": "Normal", + "Not Connected": "Not Connected", + "Not connected": "Not connected", + "Notifications": "Notifications", + "Open Data Folder": "Open Data Folder", + "Opening wallet:": "Opening wallet:", + "Optional": "Optional", + "Options": "Options", + "Other operations": "Other operations", + "Outbound": "Outbound", + "Overview": "Overview", + "PREV": "PREV", + "Parents": "Parents", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Past Median Time", + "Payment & Recovery Password": "Payment & Recovery Password", + "Payment Request": "Payment Request", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Peers", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performance", + "Phishing Hint": "Phishing Hint", + "Ping:": "Ping:", + "Please Confirm Deletion": "Please Confirm Deletion", + "Please configure your Kaspa NG settings": "Please configure your Kaspa NG settings", + "Please connect to Kaspa p2p node": "Please connect to Kaspa p2p node", + "Please create a stronger password": "Please create a stronger password", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Please enter an amount", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Please enter the account name", + "Please enter the wallet secret": "Please enter the wallet secret", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Please select an account type", + "Please select export type": "Please select export type", + "Please select the private key to export": "Please select the private key to export", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Please set node to 'Disabled' to delete the data folder", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.", + "Please specify the name of the new wallet": "Please specify the name of the new wallet", + "Please specify the private key type for the new wallet": "Please specify the private key type for the new wallet", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Please wait for the node to sync or connect to a remote node.", + "Please wait for the node to sync...": "Please wait for the node to sync...", + "Please wait...": "Please wait...", + "Presets": "Presets", + "Price": "Price", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Processed Bodies", + "Processed Dependencies": "Processed Dependencies", + "Processed Headers": "Processed Headers", + "Processed Mass Counts": "Processed Mass Counts", + "Processed Transactions": "Processed Transactions", + "Processing...": "Processing...", + "Protocol:": "Protocol:", + "Public Node": "Public Node", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Random Public Node", + "Range:": "Range:", + "Receive Address": "Receive Address", + "Recommended arguments for the remote node: ": "Recommended arguments for the remote node: ", + "Redistributables": "Redistributables", + "Remote": "Remote", + "Remote Connection:": "Remote Connection:", + "Remote p2p Node Configuration": "Remote p2p Node Configuration", + "Removes security restrictions, allows for single-letter passwords": "Removes security restrictions, allows for single-letter passwords", + "Reset Settings": "Reset Settings", + "Reset VSPC": "Reset VSPC", + "Resident Memory": "Resident Memory", + "Resources": "Resources", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Resulting daemon arguments:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa on GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Secret is too weak", + "Secret score:": "Secret score:", + "Select Account": "Select Account", + "Select Private Key Type": "Select Private Key Type", + "Select Public Node": "Select Public Node", + "Select Wallet": "Select Wallet", + "Select a wallet to unlock": "Select a wallet to unlock", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Send", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Services", + "Settings": "Settings", + "Show DAA": "Show DAA", + "Show Grid": "Show Grid", + "Show VSPC": "Show VSPC", + "Show balances in alternate currencies for testnet coins": "Show balances in alternate currencies for testnet coins", + "Show passphrase": "Show passphrase", + "Show password": "Show password", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet", + "Skip": "Skip", + "Small (10 BPS)": "Small (10 BPS)", + "Spread": "Spread", + "Stage": "Stage", + "Starting...": "Starting...", + "Statistics": "Statistics", + "Stop": "Stop", + "Stor Read": "Stor Read", + "Stor Write": "Stor Write", + "Storage": "Storage", + "Storage Read": "Storage Read", + "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", + "Storage Write": "Storage Write", + "Storage Write/s": "Storage Write/s", + "Strong": "Strong", + "Submitted Blocks": "Submitted Blocks", + "Syncing Cryptographic Proof...": "Syncing Cryptographic Proof...", + "Syncing DAG Blocks...": "Syncing DAG Blocks...", + "Syncing Headers...": "Syncing Headers...", + "Syncing UTXO entries...": "Syncing UTXO entries...", + "Syncing...": "Syncing...", + "System": "System", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.", + "The balance may be out of date during node sync": "The balance may be out of date during node sync", + "The following will guide you through the process of creating or importing a wallet.": "The following will guide you through the process of creating or importing a wallet.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "The node is currently syncing with the Kaspa p2p network.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Theme Color", + "Theme Color:": "Theme Color:", + "Theme Style": "Theme Style", + "Theme Style:": "Theme Style:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Threshold": "Threshold", + "Time Offset:": "Time Offset:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Track in the background", + "Transactions": "Transactions", + "Transactions:": "Transactions:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Type", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO Manager", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Unable to change node settings until the problem is resolved", + "Unable to store settings": "Unable to store settings", + "Unlock": "Unlock", + "Unlock Wallet": "Unlock Wallet", + "Unlocking": "Unlocking", + "Update Available to version": "Update Available to version", + "Updating...": "Updating...", + "Uptime:": "Uptime:", + "Use 50%-75% of available system memory": "Use 50%-75% of available system memory", + "Use all available system memory": "Use all available system memory", + "User Agent": "User Agent", + "User Interface": "User Interface", + "Very dangerous (may be cracked within few seconds)": "Very dangerous (may be cracked within few seconds)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Virt Parents", + "Virtual DAA Score": "Virtual DAA Score", + "Virtual Memory": "Virtual Memory", + "Virtual Parent Hashes": "Virtual Parent Hashes", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", + "Wallet": "Wallet", + "Wallet Created": "Wallet Created", + "Wallet Encryption Password": "Wallet Encryption Password", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Wallet Name", + "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Wallet password is used to encrypt your wallet data.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Wallet:", + "We greatly appreciate your help in backing our efforts.": "We greatly appreciate your help in backing our efforts.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Welcome to Kaspa NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "You are currently not connected to the Kaspa node.", + "You can configure remote connection in Settings": "You can configure remote connection in Settings", + "You can create multiple wallets, but only one wallet can be open at a time.": "You can create multiple wallets, but only one wallet can be open at a time.", + "You must be connected to a node...": "You must be connected to a node...", + "Your default wallet private key mnemonic is:": "Your default wallet private key mnemonic is:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Your private key mnemonic is:", + "Your wallet has been created and is ready to use.": "Your wallet has been created and is ready to use.", + "Zoom": "Zoom", + "bye!": "bye!", + "gRPC Network Interface & Port": "gRPC Network Interface & Port", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "of", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "peer", + "peers": "peers", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "wRPC Connection Settings", + "wRPC Encoding:": "wRPC Encoding:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" + }, + "ka": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS სატესტო ქსელი", + "10 BPS test network": "10 BPS საცდელი ქსელი", + "12 word mnemonic": "12 სიტყვიანი მნემონური ფრაზა", + "24 word mnemonic": "24 სიტყვიანი მნემონური ფრაზა", + "24h Change": "24სთ ცვლილება", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "A binary at another location is spawned a child process (experimental, for development purposes only).", + "A random node will be selected on startup": "A random node will be selected on startup", + "A wallet is stored in a file on your computer.": "A wallet is stored in a file on your computer.", + "Account Index": "Account Index", + "Account Name": "აქაუნთის სახელი", + "Account not found": "Account not found", + "Account:": "აქაუნთი:", + "Activate custom daemon arguments": "Activate custom daemon arguments", + "Active p2p Peers": "აქტიური p2p პირები", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Address derivation scan", + "Address:": "მისამართი:", + "Advanced": "გაფართოებული", + "All": "ყველა", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Allow custom arguments for the Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Allows you to take screenshots from within the application", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "მიმართვა", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "ბალანსი: არ ისახება", + "Bandwidth": "დიაპაზონი", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.", + "Bezier Curves": "Bezier Curves", + "Block DAG": "Block DAG", + "Block Scale": "ბლოკის ზომა", + "Blocks": "ბლოკები", + "Bodies": "Bodies", + "Borsh Active Connections": "Borsh Active Connections", + "Borsh Connection Attempts": "Borsh Connection Attempts", + "Borsh Handshake Failures": "Borsh Handshake Failures", + "Build": "შენება", + "CONNECTED": "დაკავშირებულია", + "CPU": "CPU", + "Cache Memory Size": "ქეშირებული მახსოვრობის ზომა", + "Cancel": "გაუქმება", + "Cannot delete data folder while the node is running": "მონაცემთა საქაღალდის წაშლა შეუძლებელია ნოუდის მუშაობისას", + "Capture a screenshot": "სქრინშოთის გადაღება", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Center VSPC", + "Chain Blocks": "ჩეინის ბლოკები", + "Change Address": "მისამართის შეცვლა", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Check for Software Updates on GitHub", + "Check for Updates": "Შეამოწმოთ განახლებები", + "Clear": "გაწმენდა", + "Click to try another server...": "დააკლიკეთ სხვა სერვერზე საცდელად...", + "Client RPC": "კლიენტის RPC", + "Close": "დახურვა", + "Close the window": "ფანჯრის დახურვა", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "საფულის პაროლის დადასტურება", + "Connecting to": "დაკავშირება", + "Connection": "კავშირი", + "Connections": "კავშირები", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connects to a Remote Rusty Kaspa Node via wRPC.", + "Conservative": "კონსერვატიული", + "Continue": "გაგრძელება", + "Copied to clipboard": "კოპირებულია ბუფერში", + "Copy": "კოპირება", + "Copy logs to clipboard": "ლოგების კოპირება ბუფერში", + "Create New Wallet": "ახალი საფულის შექმნა", + "Create Wallet": "Create Wallet", + "Create new wallet": "ახალი საფულის შექამნა", + "Creating Account": "აქაუნთის შექმნა", + "Creating Wallet": "საფულის შექმნა", + "Custom": "Custom", + "Custom Public Node": "მორგებული საჯარო ნოუდი", + "Custom arguments:": "Custom arguments:", + "Custom data storage folder": "Custom data storage folder", + "DAA": "DAA", + "DAA Offset": "DAA Offset", + "DAA Range": "DAA Range", + "DB Blocks": "DB ბლოკები", + "DB Headers": "DB სათაურები", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", + "Database Blocks": "Database Blocks", + "Database Headers": "Database Headers", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "საფულის განკრიპტვა, გთხოვთ მოიცადოთ...", + "Default": "ნაგულისხმები ", + "Default Account Name": "Default Account Name", + "Delete Data Folder": "მონაცემთა ფოლდერის წაშლა", + "Dependencies": "დამოკიდებულებები", + "Derivation Indexes": "Derivation Indexes", + "Details": "დეტალები", + "Developer Mode": "დეველოპერის რეჟიმი", + "Developer Resources": "Developer Resources", + "Developer mode enables advanced and experimental features": "Developer mode enables advanced and experimental features", + "Difficulty": "სირთულე", + "Dimensions": "განზომილებები", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "გამორთულია", + "Disables node connectivity (Offline Mode).": "Disables node connectivity (Offline Mode).", + "Discord": "Discord", + "Donations": "დონაციები", + "Double click on the graph to re-center...": "Double click on the graph to re-center...", + "ECDSA": "ECDSA", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Enable Market Monitor", + "Enable UPnP": "Enable UPnP", + "Enable custom daemon arguments": "დაემონის არგუმენტების ჩართვა", + "Enable experimental features": "ექსპერიმენტული ფუნქციების გააქტიურება", + "Enable gRPC": "Enable gRPC", + "Enable optional BIP39 passphrase": "Enable optional BIP39 passphrase", + "Enable screen capture": "მონიტორის ჩაწერის უფლება", + "Enables features currently in development": "Enables features currently in development", + "Enter": "შეყვანა", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "შეიყვანეთ აქაუნთის სახელი (არააუცილებელი)", + "Enter destination address": "Enter destination address", + "Enter first account name": "შეიყვანეთ პირველი აქაუნთის სახელი", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "შეიყვანეთ ფიშინგის მახსენებელი", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "შეიყვანეთ ოდენობა", + "Enter the password for your wallet": "შეიყვანეთ თქვენი საფულის პაროლი", + "Enter the password to unlock your wallet": "შეიყვანეთ პაროლი თქვენი საფულის განბლოკვისთვის", + "Enter wallet name": "შეიყვანეთ საფულის სახელი", + "Enter wallet password": "შეიყვანეთ საფულის პაროლი", + "Enter your wallet secret": "შეიყვანეთ თქვენი საფულის საიდუმლო ფრაზა", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "მკვლევარი", + "Export Wallet Data": "Export Wallet Data", + "FIRST": "FIRST", + "Faucet": "ძაბრი", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "File Handles", + "File contents": "File contents", + "Filename:": "ფაილის სახელი:", + "Final Amount:": "საბოლოო ოდენობა:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub რელიზი", + "Go to Settings": "პარამეტრებში შესვლა", + "Good": "Good", + "Handles": "Handles", + "Headers": "სათაურები", + "High": "High", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "If not specified, the account will be represented by the numeric id.", + "If you are running locally, use: ": "თუ ადგილობრივად მუშაობთ, გამოიყენეთ:", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "არსებულის იმპორტი", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "შემომავალი", + "Integrated Daemon": "ინტეგრირებული დაემონი", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "არასწორი დაემონის არგუმენტები", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "არასწორი wRPC URL", + "Json Active Connections": "Json Active Connections", + "Json Connection Attempts": "Json Connection Attempts", + "Json Handshake Failures": "Json Handshake-ის შეცდომა", + "Kaspa Discord": "Kaspa Discord-ი", + "Kaspa Integration Guide": "Kaspa-ს ინტეგრაციის სახელმძღვანელო", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG GitHub-ზე", + "Kaspa NG online": "Kaspa NG ონლაინ", + "Kaspa Network": "Kaspa ქსელი", + "Kaspa Node": "Kaspa ნოუდი", + "Kaspa p2p Network & Node Connection": "Kaspa p2p Network & Node Connection", + "Kaspa p2p Node": "Kaspa p2p ნოუდი", + "Kaspa p2p Node & Connection": "Kaspa p2p ნოუდი და კავშირი", + "Key Perf.": "Key Perf.", + "LAST": "LAST", + "Language:": "ენა:", + "Large (1 BPS)": "დიდი (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "დონეები", + "License Information": "ლიცენზიის ინფორმაცია", + "Local": "ლოკალური", + "Local p2p Node Configuration": "ადგილობრივი p2p ნოუდის კონფიგურაცია", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "ლოგები", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "მთავარი Kaspa-ს ქსელი", + "Mainnet": "მეინნეტი", + "Managed by the Rusty Kaspa daemon": "Managed by the Rusty Kaspa daemon", + "Market": "მარკეტი", + "Market Cap": "საბაზრო კაპიტალი", + "Market Monitor": "საბაზრო მონიტორინგი", + "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Medium Narrow", + "Medium Wide": "საშუალოდ ფართო", + "Memory": "მეხსიერება", + "Mempool": "მემპული", + "Mempool Size": "მემპულის ზომა", + "Metrics": "მეტრიკები", + "Metrics are not currently available": "მეტრიკა ამჟამად მიუწვდომელია", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM Modules for NodeJS", + "Network": "ქსელი", + "Network Difficulty": "ქსელის სირთულე", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "ქსელის ინტერფეისი", + "Network Peers": "ქსელის პირები", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "პირები არ არის", + "No public node selected - please select a public node": "არ არის არჩეული საჯარო ნოუდი - გთხოვთ, აირჩიოთ საჯარო ნოუდი", + "No transactions": "არანაირი ტრანზაქცია", + "No wallets found, please create a new wallet": "No wallets found, please create a new wallet", + "Node": "ნოუდი", + "Node Status": "ნოუდის სტატუსი", + "Noise": "ხმაური", + "None": "არანაირი", + "Normal": "Normal", + "Not Connected": "არ არის დაკავშირებული", + "Not connected": "Არ არის დაკავშირებული", + "Notifications": "შეტყობინებები", + "Open Data Folder": "გახსნილი მონაცემთა ფოლდერი", + "Opening wallet:": "Opening wallet:", + "Optional": "სურვილისამებრ", + "Options": "Options", + "Other operations": "სხვა ოპერაციები", + "Outbound": "გამავალი", + "Overview": "მიმოხილვა", + "PREV": "PREV", + "Parents": "მშობელი", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "გასული მედიანური დრო", + "Payment & Recovery Password": "გადახდის და აღდგენის პაროლი", + "Payment Request": "გადახდის მოთხოვნა", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "პირები", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performance", + "Phishing Hint": "ფიშინგის მახსენებელი", + "Ping:": "პინგი:", + "Please Confirm Deletion": "გთხოვთ დაადასტუროთ წაშლა", + "Please configure your Kaspa NG settings": "გთხოვთ დააკონფიგუროთ Kaspa NG-ს პარამეტრები", + "Please connect to Kaspa p2p node": "გთხოვთ დაუკავშირდეთ Kaspa p2p ნოუდს", + "Please create a stronger password": "გთხოვთ, შექმენით უფრო ძლიერი პაროლი", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "გთხოვთ, შეიყვანოთ თანხა", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "გთხოვთ შეიყვანეთ აქაუნთის სახელი", + "Please enter the wallet secret": "შეიყვანეთ თქვენი საფულის საიდუმლო ფრაზა", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "გთხოვთ, გაითვალისწინოთ, ბუფერში კოპირება შეიცავს თქვენი მნემონიკის მელევერისთის გახსნას.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "გთხოვთ აირჩოთ აქაუნთის ტიპი", + "Please select export type": "Please select export type", + "Please select the private key to export": "Please select the private key to export", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Please set node to 'Disabled' to delete the data folder", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.", + "Please specify the name of the new wallet": "გთხოვთ დააზუსტოთ საფულის დასახელება", + "Please specify the private key type for the new wallet": "Please specify the private key type for the new wallet", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Please wait for the node to sync or connect to a remote node.", + "Please wait for the node to sync...": "Please wait for the node to sync...", + "Please wait...": "გთხოვთ მოიცადოთ...", + "Presets": "პრესეტები", + "Price": "ფასი", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "დამუშავებული ბოდიები", + "Processed Dependencies": "Processed Dependencies", + "Processed Headers": "დამუშავებული სათაურები", + "Processed Mass Counts": "Processed Mass Counts", + "Processed Transactions": "დამუშავებული ტრანზაქციები", + "Processing...": "Processing...", + "Protocol:": "პროტოკოლი:", + "Public Node": "საჯარო ნოუდი", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "შემთხვევითი საჯარო ნოუდი", + "Range:": "დიაპაზონი:", + "Receive Address": "მიმღები ანგარიში", + "Recommended arguments for the remote node: ": "Recommended arguments for the remote node: ", + "Redistributables": "Redistributables", + "Remote": "დუსტაბცუყრუ", + "Remote Connection:": "დისტანციური კავშირი:", + "Remote p2p Node Configuration": "Remote p2p Node Configuration", + "Removes security restrictions, allows for single-letter passwords": "Removes security restrictions, allows for single-letter passwords", + "Reset Settings": "საწყის პარამეტრებზე დაყენება", + "Reset VSPC": "VSPC-ის გადატვირთვა", + "Resident Memory": "რეზიდენტ მეხსიერება", + "Resources": "რესურსები", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "დაემონური არგუმენტების შედეგი:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa on GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "საიდუმლო ფრაზა ძალიან სუსტია", + "Secret score:": "Secret score:", + "Select Account": "მომხმარებლის არჩევა", + "Select Private Key Type": "აირჩიეთ პირადი გასაღების ტიპი", + "Select Public Node": "Select Public Node", + "Select Wallet": "საფულის არჩევა", + "Select a wallet to unlock": "აირჩიეთ საფულე განბლოკვისთვის", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "გაგზავნა", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "სერვისები", + "Settings": "პარამეტრები", + "Show DAA": "DAA-ს ჩვენება", + "Show Grid": "ბადის ჩვენება", + "Show VSPC": "Show VSPC", + "Show balances in alternate currencies for testnet coins": "Show balances in alternate currencies for testnet coins", + "Show passphrase": "Show passphrase", + "Show password": "პაროლის ჩვენება", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet", + "Skip": "გამოტოვება", + "Small (10 BPS)": "მცირე (10 BPS)", + "Spread": "გავრცელება", + "Stage": "საფეხური", + "Starting...": "დაწყება...", + "Statistics": "სტატისტიკები", + "Stop": "Stop", + "Stor Read": "Stor Read", + "Stor Write": "Stor Write", + "Storage": "მეხსიერება", + "Storage Read": "Storage Read", + "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", + "Storage Write": "Storage Write", + "Storage Write/s": "Storage Write/s", + "Strong": "Strong", + "Submitted Blocks": "Submitted Blocks", + "Syncing Cryptographic Proof...": "Syncing Cryptographic Proof...", + "Syncing DAG Blocks...": "Syncing DAG Blocks...", + "Syncing Headers...": "Syncing Headers...", + "Syncing UTXO entries...": "Syncing UTXO entries...", + "Syncing...": "Syncing...", + "System": "სისტემა", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "ტესტნეტ 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.", + "The balance may be out of date during node sync": "ბალანსი შესაძლოა მოძველებული იყოს კვანძის სინქრონიზაციის დროს", + "The following will guide you through the process of creating or importing a wallet.": "The following will guide you through the process of creating or importing a wallet.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "The node is currently syncing with the Kaspa p2p network.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "კვანძი ამჟამად სინქრონიზებულია Kaspa p2p ქსელთან. ანგარიშის ნაშთები შეიძლება მოძველებული იყოს.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "თემის ფერი", + "Theme Color:": "თემის ფერი:", + "Theme Style": "თემის სტილი", + "Theme Style:": "თემის სტილი:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Threshold": "ზღვარი", + "Time Offset:": "დროის ოფსეტი:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "სრული Rx", + "Total Rx/s": "სრული Rx/s", + "Total Tx": "სტული Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "თრექინგი ფონურად", + "Transactions": "გადარიცხვები", + "Transactions:": "გადარიცხვები:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "ტიპი", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO მენეჯერი", + "UTXOs": "UTXO-ები", + "UTXOs:": "UTXO-ები:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Unable to change node settings until the problem is resolved", + "Unable to store settings": "Unable to store settings", + "Unlock": "განბლოკვა", + "Unlock Wallet": "საფულის განბლოკვა", + "Unlocking": "განბლოკვა", + "Update Available to version": "Update Available to version", + "Updating...": "განახლება...", + "Uptime:": "მუშაობის დრო:", + "Use 50%-75% of available system memory": "გამოიყენეთ 50%-75%ხელმისაწვდომი ოპერატიული მეხსიერებიდან", + "Use all available system memory": "Use all available system memory", + "User Agent": "მომხმარებლის აგენტი", + "User Interface": "სამომხმარებლო ინტერფეისი", + "Very dangerous (may be cracked within few seconds)": "ძალიან სახიფათო (შეიძლება გატეხილი იყოს რამდენიმე წამში)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Virt Parents", + "Virtual DAA Score": "Virtual DAA Score", + "Virtual Memory": "ვირტუალური მეხსიერება", + "Virtual Parent Hashes": "ვირტუალური ფერენთ ჰაშები", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", + "Wallet": "საფულე", + "Wallet Created": "საფულე შეიქმნა", + "Wallet Encryption Password": "საფულის დაშიფვრის პაროლი", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "საფულის დასახელება", + "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Wallet password is used to encrypt your wallet data.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "საფულე:", + "We greatly appreciate your help in backing our efforts.": "We greatly appreciate your help in backing our efforts.", + "Weak": "Weak", + "Welcome to Kaspa NG": "მოგესალმებით Kaspa NG-ში", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "თქვენ ამჟამად არ ხართ დაკავშირებული Kaspa ნოუდთან.", + "You can configure remote connection in Settings": "შეგიძლიათ დააკონფიგუროთ დისტანციური დაკავშირება პარამეტრებში", + "You can create multiple wallets, but only one wallet can be open at a time.": "You can create multiple wallets, but only one wallet can be open at a time.", + "You must be connected to a node...": "თქვენ უნდა იყოთ დაკავშირებული ნოუდთან...", + "Your default wallet private key mnemonic is:": "Your default wallet private key mnemonic is:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "თქვენი პირადი გასაღების მნემოური ფრაზა არის:", + "Your wallet has been created and is ready to use.": "თქვენი საფულე შეიქმნა და მზად არის გამოსაყენებლად.", + "Zoom": "მიახლოება", + "bye!": "ნახვამდის!", + "gRPC Network Interface & Port": "gRPC ქსელის ინტერფეისი და პორტი", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "-ის", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "პირი", + "peers": "პირები", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "wRPC კავშირის პარამეტრები", + "wRPC Encoding:": "wRPC Encoding:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" + }, + "ko": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS test network", + "10 BPS test network": "10 BPS test network", + "12 word mnemonic": "12 word mnemonic", + "24 word mnemonic": "24 word mnemonic", + "24h Change": "24h Change", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "A binary at another location is spawned a child process (experimental, for development purposes only).", + "A random node will be selected on startup": "A random node will be selected on startup", + "A wallet is stored in a file on your computer.": "A wallet is stored in a file on your computer.", + "Account Index": "Account Index", + "Account Name": "Account Name", + "Account not found": "Account not found", + "Account:": "Account:", + "Activate custom daemon arguments": "Activate custom daemon arguments", + "Active p2p Peers": "Active p2p Peers", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Address derivation scan", + "Address:": "Address:", + "Advanced": "Advanced", + "All": "All", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Allow custom arguments for the Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Allows you to take screenshots from within the application", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Apply", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Balance: N/A", + "Bandwidth": "Bandwidth", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.", + "Bezier Curves": "Bezier Curves", + "Block DAG": "Block DAG", + "Block Scale": "Block Scale", + "Blocks": "Blocks", + "Bodies": "Bodies", + "Borsh Active Connections": "Borsh Active Connections", + "Borsh Connection Attempts": "Borsh Connection Attempts", + "Borsh Handshake Failures": "Borsh Handshake Failures", + "Build": "Build", + "CONNECTED": "CONNECTED", + "CPU": "CPU", + "Cache Memory Size": "Cache Memory Size", + "Cancel": "Cancel", + "Cannot delete data folder while the node is running": "Cannot delete data folder while the node is running", + "Capture a screenshot": "Capture a screenshot", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Center VSPC", + "Chain Blocks": "Chain Blocks", + "Change Address": "Change Address", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Check for Software Updates on GitHub", + "Check for Updates": "Check for Updates", + "Clear": "Clear", + "Click to try another server...": "Click to try another server...", + "Client RPC": "Client RPC", + "Close": "Close", + "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Confirm wallet password", + "Connecting to": "Connecting to", + "Connection": "Connection", + "Connections": "Connections", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connects to a Remote Rusty Kaspa Node via wRPC.", + "Conservative": "Conservative", + "Continue": "Continue", + "Copied to clipboard": "Copied to clipboard", + "Copy": "Copy", + "Copy logs to clipboard": "Copy logs to clipboard", + "Create New Wallet": "Create New Wallet", + "Create Wallet": "Create Wallet", + "Create new wallet": "Create new wallet", + "Creating Account": "Creating Account", + "Creating Wallet": "Creating Wallet", + "Custom": "Custom", + "Custom Public Node": "Custom Public Node", + "Custom arguments:": "Custom arguments:", + "Custom data storage folder": "Custom data storage folder", + "DAA": "DAA", + "DAA Offset": "DAA Offset", + "DAA Range": "DAA Range", + "DB Blocks": "DB Blocks", + "DB Headers": "DB Headers", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", + "Database Blocks": "Database Blocks", + "Database Headers": "Database Headers", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Decrypting wallet, please wait...", + "Default": "Default", + "Default Account Name": "Default Account Name", + "Delete Data Folder": "Delete Data Folder", + "Dependencies": "Dependencies", + "Derivation Indexes": "Derivation Indexes", + "Details": "Details", + "Developer Mode": "Developer Mode", + "Developer Resources": "Developer Resources", + "Developer mode enables advanced and experimental features": "Developer mode enables advanced and experimental features", + "Difficulty": "Difficulty", + "Dimensions": "Dimensions", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Disabled", + "Disables node connectivity (Offline Mode).": "Disables node connectivity (Offline Mode).", + "Discord": "Discord", + "Donations": "Donations", + "Double click on the graph to re-center...": "Double click on the graph to re-center...", + "ECDSA": "ECDSA", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Enable Market Monitor", + "Enable UPnP": "Enable UPnP", + "Enable custom daemon arguments": "Enable custom daemon arguments", + "Enable experimental features": "Enable experimental features", + "Enable gRPC": "Enable gRPC", + "Enable optional BIP39 passphrase": "Enable optional BIP39 passphrase", + "Enable screen capture": "Enable screen capture", + "Enables features currently in development": "Enables features currently in development", + "Enter": "Enter", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Enter account name (optional)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Enter first account name", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Enter phishing hint", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Enter the amount", + "Enter the password for your wallet": "Enter the password for your wallet", + "Enter the password to unlock your wallet": "Enter the password to unlock your wallet", + "Enter wallet name": "Enter wallet name", + "Enter wallet password": "Enter wallet password", + "Enter your wallet secret": "Enter your wallet secret", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Explorer", + "Export Wallet Data": "Export Wallet Data", + "FIRST": "FIRST", + "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "File Handles", + "File contents": "File contents", + "Filename:": "Filename:", + "Final Amount:": "Final Amount:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub Release", + "Go to Settings": "Go to Settings", + "Good": "Good", + "Handles": "Handles", + "Headers": "Headers", + "High": "High", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "If not specified, the account will be represented by the numeric id.", + "If you are running locally, use: ": "If you are running locally, use: ", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Import existing", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Inbound", + "Integrated Daemon": "Integrated Daemon", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Invalid daemon arguments", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Invalid wRPC URL", + "Json Active Connections": "Json Active Connections", + "Json Connection Attempts": "Json Connection Attempts", + "Json Handshake Failures": "Json Handshake Failures", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Kaspa Integration Guide", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG on GitHub", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Kaspa Network", + "Kaspa Node": "Kaspa Node", + "Kaspa p2p Network & Node Connection": "Kaspa p2p Network & Node Connection", + "Kaspa p2p Node": "Kaspa p2p Node", + "Kaspa p2p Node & Connection": "Kaspa p2p Node & Connection", + "Key Perf.": "Key Perf.", + "LAST": "LAST", + "Language:": "Language:", + "Large (1 BPS)": "Large (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Levels", + "License Information": "License Information", + "Local": "Local", + "Local p2p Node Configuration": "Local p2p Node Configuration", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Logs", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Main Kaspa network", + "Mainnet": "Mainnet", + "Managed by the Rusty Kaspa daemon": "Managed by the Rusty Kaspa daemon", + "Market": "Market", + "Market Cap": "Market Cap", + "Market Monitor": "Market Monitor", + "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Medium Narrow", + "Medium Wide": "Medium Wide", + "Memory": "Memory", + "Mempool": "Mempool", + "Mempool Size": "Mempool Size", + "Metrics": "Metrics", + "Metrics are not currently available": "Metrics are not currently available", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM Modules for NodeJS", + "Network": "Network", + "Network Difficulty": "Network Difficulty", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Network Interface", + "Network Peers": "Network Peers", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "No peers", + "No public node selected - please select a public node": "No public node selected - please select a public node", + "No transactions": "No transactions", + "No wallets found, please create a new wallet": "No wallets found, please create a new wallet", + "Node": "Node", + "Node Status": "Node Status", + "Noise": "Noise", + "None": "None", + "Normal": "Normal", + "Not Connected": "Not Connected", + "Not connected": "Not connected", + "Notifications": "Notifications", + "Open Data Folder": "Open Data Folder", + "Opening wallet:": "Opening wallet:", + "Optional": "Optional", + "Options": "Options", + "Other operations": "Other operations", + "Outbound": "Outbound", + "Overview": "Overview", + "PREV": "PREV", + "Parents": "Parents", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Past Median Time", + "Payment & Recovery Password": "Payment & Recovery Password", + "Payment Request": "Payment Request", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Peers", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performance", + "Phishing Hint": "Phishing Hint", + "Ping:": "Ping:", + "Please Confirm Deletion": "Please Confirm Deletion", + "Please configure your Kaspa NG settings": "Please configure your Kaspa NG settings", + "Please connect to Kaspa p2p node": "Please connect to Kaspa p2p node", + "Please create a stronger password": "Please create a stronger password", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Please enter an amount", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Please enter the account name", + "Please enter the wallet secret": "Please enter the wallet secret", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Please select an account type", + "Please select export type": "Please select export type", + "Please select the private key to export": "Please select the private key to export", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Please set node to 'Disabled' to delete the data folder", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.", + "Please specify the name of the new wallet": "Please specify the name of the new wallet", + "Please specify the private key type for the new wallet": "Please specify the private key type for the new wallet", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Please wait for the node to sync or connect to a remote node.", + "Please wait for the node to sync...": "Please wait for the node to sync...", + "Please wait...": "Please wait...", + "Presets": "Presets", + "Price": "Price", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Processed Bodies", + "Processed Dependencies": "Processed Dependencies", + "Processed Headers": "Processed Headers", + "Processed Mass Counts": "Processed Mass Counts", + "Processed Transactions": "Processed Transactions", + "Processing...": "Processing...", + "Protocol:": "Protocol:", + "Public Node": "Public Node", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Random Public Node", + "Range:": "Range:", + "Receive Address": "Receive Address", + "Recommended arguments for the remote node: ": "Recommended arguments for the remote node: ", + "Redistributables": "Redistributables", + "Remote": "Remote", + "Remote Connection:": "Remote Connection:", + "Remote p2p Node Configuration": "Remote p2p Node Configuration", + "Removes security restrictions, allows for single-letter passwords": "Removes security restrictions, allows for single-letter passwords", + "Reset Settings": "Reset Settings", + "Reset VSPC": "Reset VSPC", + "Resident Memory": "Resident Memory", + "Resources": "Resources", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Resulting daemon arguments:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa on GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Secret is too weak", + "Secret score:": "Secret score:", + "Select Account": "Select Account", + "Select Private Key Type": "Select Private Key Type", + "Select Public Node": "Select Public Node", + "Select Wallet": "Select Wallet", + "Select a wallet to unlock": "Select a wallet to unlock", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Send", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Services", + "Settings": "Settings", + "Show DAA": "Show DAA", + "Show Grid": "Show Grid", + "Show VSPC": "Show VSPC", + "Show balances in alternate currencies for testnet coins": "Show balances in alternate currencies for testnet coins", + "Show passphrase": "Show passphrase", + "Show password": "Show password", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet", + "Skip": "Skip", + "Small (10 BPS)": "Small (10 BPS)", + "Spread": "Spread", + "Stage": "Stage", + "Starting...": "Starting...", + "Statistics": "Statistics", + "Stop": "Stop", + "Stor Read": "Stor Read", + "Stor Write": "Stor Write", + "Storage": "Storage", + "Storage Read": "Storage Read", + "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", + "Storage Write": "Storage Write", + "Storage Write/s": "Storage Write/s", + "Strong": "Strong", + "Submitted Blocks": "Submitted Blocks", + "Syncing Cryptographic Proof...": "Syncing Cryptographic Proof...", + "Syncing DAG Blocks...": "Syncing DAG Blocks...", + "Syncing Headers...": "Syncing Headers...", + "Syncing UTXO entries...": "Syncing UTXO entries...", + "Syncing...": "Syncing...", + "System": "System", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.", + "The balance may be out of date during node sync": "The balance may be out of date during node sync", + "The following will guide you through the process of creating or importing a wallet.": "The following will guide you through the process of creating or importing a wallet.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "The node is currently syncing with the Kaspa p2p network.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Theme Color", + "Theme Color:": "Theme Color:", + "Theme Style": "Theme Style", + "Theme Style:": "Theme Style:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Threshold": "Threshold", + "Time Offset:": "Time Offset:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Track in the background", + "Transactions": "Transactions", + "Transactions:": "Transactions:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Type", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO Manager", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Unable to change node settings until the problem is resolved", + "Unable to store settings": "Unable to store settings", + "Unlock": "Unlock", + "Unlock Wallet": "Unlock Wallet", + "Unlocking": "Unlocking", + "Update Available to version": "Update Available to version", + "Updating...": "Updating...", + "Uptime:": "Uptime:", + "Use 50%-75% of available system memory": "Use 50%-75% of available system memory", + "Use all available system memory": "Use all available system memory", + "User Agent": "User Agent", + "User Interface": "User Interface", + "Very dangerous (may be cracked within few seconds)": "Very dangerous (may be cracked within few seconds)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Virt Parents", + "Virtual DAA Score": "Virtual DAA Score", + "Virtual Memory": "Virtual Memory", + "Virtual Parent Hashes": "Virtual Parent Hashes", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", + "Wallet": "Wallet", + "Wallet Created": "Wallet Created", + "Wallet Encryption Password": "Wallet Encryption Password", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Wallet Name", + "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Wallet password is used to encrypt your wallet data.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Wallet:", + "We greatly appreciate your help in backing our efforts.": "We greatly appreciate your help in backing our efforts.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Welcome to Kaspa NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "You are currently not connected to the Kaspa node.", + "You can configure remote connection in Settings": "You can configure remote connection in Settings", + "You can create multiple wallets, but only one wallet can be open at a time.": "You can create multiple wallets, but only one wallet can be open at a time.", + "You must be connected to a node...": "You must be connected to a node...", + "Your default wallet private key mnemonic is:": "Your default wallet private key mnemonic is:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Your private key mnemonic is:", + "Your wallet has been created and is ready to use.": "Your wallet has been created and is ready to use.", + "Zoom": "Zoom", + "bye!": "bye!", + "gRPC Network Interface & Port": "gRPC Network Interface & Port", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "of", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "peer", + "peers": "peers", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "wRPC Connection Settings", + "wRPC Encoding:": "wRPC Encoding:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" + }, + "lt": {}, + "mn": {}, + "nb": {}, + "nl": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS testnetwerk", + "10 BPS test network": "10 BPS testnetwerk", + "12 word mnemonic": "12-woordige mnemonische code of zin", + "24 word mnemonic": "24-woordige mnemonische code of zin", + "24h Change": "Veranderingen in de afgelopen 24 uur", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "Een binair bestand op een andere locatie genereert een 'childprocess' (experimenteel, alleen voor ontwikkelingsdoeleinden).", + "A random node will be selected on startup": "Bij het opstarten wordt er een willekeurige node gecreëerd.", + "A wallet is stored in a file on your computer.": "Op je computer wordt er een wallet als bestand opgeslagen.", + "Account Index": "Account Index", + "Account Name": "Accountnaam", + "Account not found": "Account not found", + "Account:": "Account:", + "Activate custom daemon arguments": "Activeer custom daemon arguments", + "Active p2p Peers": "Actieve p2p Peers", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Adres afwijking scan", + "Address:": "Adres:", + "Advanced": "Geavanceerd", + "All": "Alle", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Toestaan van custom arguments voor de Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Hiermee kun je schermafbeeldingen maken vanuit de applicatie.", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Toepassen", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Balans: N/A", + "Bandwidth": "Bandbreedte", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Vanwege de focus op beveiliging en prestaties is deze software volledig ontwikkeld in Rust, wat aanzienlijk meer tijd en moeite vergt in vergelijking met andere traditionele moderne webgestuurde software.", + "Bezier Curves": "Bezier Curves", + "Block DAG": "Block DAG", + "Block Scale": "Block Scale", + "Blocks": "Blocks", + "Bodies": "Bodies", + "Borsh Active Connections": "Borsh Actieve Verbindingen", + "Borsh Connection Attempts": "Borsh Verbindingspogingen", + "Borsh Handshake Failures": "Borsh Handshake Failures", + "Build": "Build", + "CONNECTED": "VERBONDEN", + "CPU": "CPU", + "Cache Memory Size": "Cachegeheugen grootte", + "Cancel": "Annuleren", + "Cannot delete data folder while the node is running": "Kan de gegevensmap niet verwijderen terwijl de node aan het draaien is.", + "Capture a screenshot": "Een schermafbeelding maken", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Center VSPC", + "Chain Blocks": "Chain Blocks", + "Change Address": "Wisseladres", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Controleer op software-updates op GitHub", + "Check for Updates": "Controleren op updates", + "Clear": "Leegmaken", + "Click to try another server...": "Klik om een andere server te proberen...", + "Client RPC": "Client RPC", + "Close": "Sluiten", + "Close the window": "Sluit het venster", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Bevestig wachtwoord wallet ", + "Connecting to": "Verbinden met", + "Connection": "Verbinding", + "Connections": "Verbindingen", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Verbindt met een Remote Rusty Kaspa Node via wRPC.", + "Conservative": "Conservative", + "Continue": "Doorgaan", + "Copied to clipboard": "Gekopieerd naar klembord", + "Copy": "Kopiëren", + "Copy logs to clipboard": "Kopieer logboeken naar klembord", + "Create New Wallet": "Nieuwe wallet aanmaken", + "Create Wallet": "Create Wallet", + "Create new wallet": "Nieuwe wallet aanmaken", + "Creating Account": "Account aanmaken", + "Creating Wallet": "Wallet aanmaken", + "Custom": "Custom", + "Custom Public Node": "Custom Public Node", + "Custom arguments:": "Custom arguments:", + "Custom data storage folder": "Aangepaste gegevens opslagmap", + "DAA": "DAA", + "DAA Offset": "DAA Offset", + "DAA Range": "DAA Range", + "DB Blocks": "DB Blocks", + "DB Headers": "DB Headers", + "Dangerous": "Dangerous", + "Data Storage": "Gegevensopslag", + "Database Blocks": "Database Blocks", + "Database Headers": "Database Headers", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Wallet aan het ontsleutelen, even geduld ...", + "Default": "Standaard", + "Default Account Name": "Standaard Accountnaam", + "Delete Data Folder": "Verwijder gegevensmap", + "Dependencies": "Dependencies", + "Derivation Indexes": "Derivation Indexes", + "Details": "Details", + "Developer Mode": "Developer Mode", + "Developer Resources": "Ontwikkelaarsbronnen", + "Developer mode enables advanced and experimental features": "Ontwikkelaarsmodus maakt geavanceerde en experimentele functies mogelijk.", + "Difficulty": "Moeilijkheid", + "Dimensions": "Dimensies", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Uitgeschakeld", + "Disables node connectivity (Offline Mode).": "Schakelt de connectiviteit van de node uit (Offline modus).", + "Discord": "Discord", + "Donations": "Donaties", + "Double click on the graph to re-center...": "Dubbelklik op de grafiek om opnieuw te centreren...", + "ECDSA": "ECDSA", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Schakel market monitor in", + "Enable UPnP": "Schakel UPnP in", "Enable custom daemon arguments": "Schakel custom daemon-arguments in", + "Enable experimental features": "Schakel experimentele functies in", + "Enable gRPC": "Schakel gRPC in", + "Enable optional BIP39 passphrase": "Schakel optionele BIP39 wachtwoordzin in", + "Enable screen capture": "Schakel schermopname in", + "Enables features currently in development": "Schakel de momenteel in ontwikkeling zijnde functies in", + "Enter": "Enter", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Voer accountnaam in (optioneel)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Voer de naam van het eerste account in", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Voer phishing hint in", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Vul een hoeveelheid in", + "Enter the password for your wallet": "Voer het wachtwoord van je wallet in", + "Enter the password to unlock your wallet": "Voer het wachtwoord in om je wallet te ontgrendelen.", + "Enter wallet name": "Voer de naam van je wallet in", + "Enter wallet password": "Voer het wachtwoord van de wallet in.", + "Enter your wallet secret": "Voer je secret van je wallet in", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Verkenner", + "Export Wallet Data": "Exporteer Wallet Data", + "FIRST": "FIRST", + "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "File Handles", + "File contents": "File contents", + "Filename:": "Bestandsnaam:", + "Final Amount:": "Definitieve hoeveelheid:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub Release", + "Go to Settings": "Ga naar instellingen", + "Good": "Good", + "Handles": "Handles", + "Headers": "Headers", + "High": "High", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "Als het niet gespecificeerd is, zal het account worden vertegenwoordigd door het numerieke id.", + "If you are running locally, use: ": "Wanneer je 'lokaal runt', gebruik dan:", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Importeer het bestaande", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Inkomend", + "Integrated Daemon": "Geïntegreerde Daemon", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Ongeldige daemon arguments", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Ongeldige wRPC URL", + "Json Active Connections": "Json actieve verbindingen", + "Json Connection Attempts": "Json verbindingspogingen", + "Json Handshake Failures": "Json Handshake Failures", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Kaspa Integratiehandleiding", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG op GitHub", + "Kaspa NG online": "Kaspa NG Online", + "Kaspa Network": "Kaspa Netwerk", + "Kaspa Node": "Kaspa Node", + "Kaspa p2p Network & Node Connection": "Kaspa p2p Netwerk & Node Verbinding", + "Kaspa p2p Node": "Kaspa p2p Node", + "Kaspa p2p Node & Connection": "Kaspa p2p Node & Connection", + "Key Perf.": "Key Perf.", + "LAST": "LAST", + "Language:": "Taal:", + "Large (1 BPS)": "Groot (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Levels", + "License Information": "Licentie informatie", + "Local": "Local", + "Local p2p Node Configuration": "Local p2p Node Configuratie", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Logboeken", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Main Kaspa-netwerk", + "Mainnet": "Mainnet", + "Managed by the Rusty Kaspa daemon": "Beheerd door de Rusty Kaspa daemon", + "Market": "Market", + "Market Cap": "Marktkapitalisatie", + "Market Monitor": "Market Monitor", + "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Medium Narrow", + "Medium Wide": "Medium Wide", + "Memory": "Geheugen", + "Mempool": "Mempool", + "Mempool Size": "Mempool Grootte", + "Metrics": "Statistieken", + "Metrics are not currently available": "Statistieken zijn momenteel niet beschikbaar", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM-modules voor NodeJS", + "Network": "Netwerk", + "Network Difficulty": "Netwerk Moeilijkheidsgraad", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Netwerkinterface", + "Network Peers": "Netwerk Peers", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "Geen peers", + "No public node selected - please select a public node": "Geen public node geselecteerd - selecteer alsjeblieft een public node", + "No transactions": "Geen transacties", + "No wallets found, please create a new wallet": "Geen wallets gevonden, maak alsjeblieft een nieuwe wallet aan.", + "Node": "Node", + "Node Status": "Node Status", + "Noise": "Noise", + "None": "Geen", + "Normal": "Normal", + "Not Connected": "Niet verbonden", + "Not connected": "Niet verbonden", + "Notifications": "Meldingen", + "Open Data Folder": "Open Gegevensmap", + "Opening wallet:": "Wallet openen.", + "Optional": "Optioneel", + "Options": "Options", + "Other operations": "Andere activiteiten", + "Outbound": "Uitgaand", + "Overview": "Overzicht", + "PREV": "PREV", + "Parents": "Parents", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Past Median Time", + "Payment & Recovery Password": "Betaling & Herstel Wachtwoord", + "Payment Request": "Betalingsverzoek", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "peers", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Prestatie", + "Phishing Hint": "Phishing Hint", + "Ping:": "Ping:", + "Please Confirm Deletion": "Gelieve verwijdering te bevestigen", + "Please configure your Kaspa NG settings": "Gelieve je Kaspa NG instellingen te configureren", + "Please connect to Kaspa p2p node": "Maak alsjeblieft verbinding met de Kaspa p2p-node.", + "Please create a stronger password": "Maak alsjeblieft een sterker wachtwoord", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Vul alsjeblieft een hoeveelheid in.", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Voer alsjeblieft de naam van het account in.", + "Please enter the wallet secret": "Voer alsjeblieft de secret van je wallet in.", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Let op, het kopiëren naar het klembord brengt het risico met zich mee dat uw mnemonische zin wordt blootgesteld aan malware.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Gelieve een accounttype te selecteren", + "Please select export type": "Please select export type", + "Please select the private key to export": "Selecteer alsjeblieft de private key om te exporteren.", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Gelieve de node in te stellen op 'Uitgeschakeld' om de gegevensmap te verwijderen.", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Gelieve de naam van het standaardaccount op te geven. De wallet wordt aangemaakt met een standaardaccount. Nadat deze is aangemaakt, kunt u indien nodig extra accounts aanmaken.", + "Please specify the name of the new wallet": "Gelieve de naam van de nieuwe wallet op te geven.", + "Please specify the private key type for the new wallet": "Gelieve de private key voor de nieuwe wallet op te geven.", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Wacht alsjeblieft tot de node is gesynchroniseerd of verbonden is met een externe node.", + "Please wait for the node to sync...": "Wacht alsjeblieft tot de node is gesynchroniseerd...", + "Please wait...": "Even geduld...", + "Presets": "Presets", + "Price": "Prijs", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Processed Bodies", + "Processed Dependencies": "Processed Dependencies", + "Processed Headers": "Processed Headers", + "Processed Mass Counts": "Verwerkte Mass Counts", + "Processed Transactions": "Verwerkte transacties", + "Processing...": "Processing...", + "Protocol:": "Protocol:", + "Public Node": "Public Node", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Willekeurige Public Node", + "Range:": "Bereik:", + "Receive Address": "Ontvangstadres", + "Recommended arguments for the remote node: ": "Aanbevolen arguments voor de externe node:", + "Redistributables": "Herdistribueerbaar", + "Remote": "Op afstand", + "Remote Connection:": "Verbinding op afstand:", + "Remote p2p Node Configuration": "Op afstand p2p node configuratie", + "Removes security restrictions, allows for single-letter passwords": "Verwijdert beveiligingsbeperkingen, staat enkelvoudige-letter wachtwoorden toe", + "Reset Settings": "Instellingen herstellen", + "Reset VSPC": "Reset VSPC", + "Resident Memory": "Resident Geheugen", + "Resources": "Bronnen", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Resulterende daemon arguments:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa op GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Secret is te zwak", + "Secret score:": "Secret score:", + "Select Account": "Selecteer account", + "Select Private Key Type": "Selecteer Private Key type", + "Select Public Node": "Selecteer Public Node", + "Select Wallet": "Selecteer wallet", + "Select a wallet to unlock": "Selecteer een wallet om te ontgrendelen", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Versturen", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Services", + "Settings": "Instellingen", + "Show DAA": "Toon DAA", + "Show Grid": "Toon Grid", + "Show VSPC": "Toon VSPC", + "Show balances in alternate currencies for testnet coins": "Vertoon saldo's in alternatieve currencies voor testnet tokens ", + "Show passphrase": "Show passphrase", + "Show password": "Toon paswoord", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Toont saldo's in alternatieve currencies (BTC, USD) bij gebruik van testnet tokens alsof u zich op het mainnet bevindt", + "Skip": "Overslaan", + "Small (10 BPS)": "Klein (10 BPS)", + "Spread": "Spreiding", + "Stage": "Fase", + "Starting...": "Aan het starten...", + "Statistics": "Statistieken", + "Stop": "Stop", + "Stor Read": "Stor Read", + "Stor Write": "Stor Write", + "Storage": "Storage", + "Storage Read": "Storage Read", + "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", + "Storage Write": "Storage Write", + "Storage Write/s": "Storage Write/s", + "Strong": "Strong", + "Submitted Blocks": "Submitted Blocks", + "Syncing Cryptographic Proof...": "Cryptografisch bewijs synchroniseren...", + "Syncing DAG Blocks...": "DAG Blocks synchroniseren...", + "Syncing Headers...": "Headers synchroniseren", + "Syncing UTXO entries...": "Synchroniseren van UTXO entries...", + "Syncing...": "Synchroniseren...", + "System": "Systeem", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "De Kaspa NG-software vertegenwoordigt een voortdurende inspanning gericht op het bouwen van een state-of-the-art softwareplatform speciaal voor het Kaspa BlockDAG cryptocurrency-netwerk. Deze software is in de kern ideologisch en geeft prioriteit aan beveiliging, privacy, prestaties en decentralisatie.", + "The balance may be out of date during node sync": "Het saldo kan verouderd zijn tijdens het synchroniseren van de node", + "The following will guide you through the process of creating or importing a wallet.": "Hierna wordt u door het proces van het maken of importeren van een wallet geleid.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "De node synchroniseert momenteel met het Kaspa p2p-netwerk.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "De node synchroniseert momenteel met het Kaspa p2p-netwerk. Accountbalansen kunnen verouderd zijn.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "De node is gespawned als een child daemon proces (aangeraden).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "De node wordt uitgevoerd als onderdeel van het Kaspa-NG-aanvraagproces. Dit vermindert de communicatieoverhead (experimenteel).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Thema kleur", + "Theme Color:": "Thema kleur:", + "Theme Style": "Thema stijl", + "Theme Style:": "Thema stijl:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Deze wallet zal u nooit om deze Mnemonic Phrase vragen, tenzij u handmatig een herstel van de Private Key start.", + "Threshold": "Threshold", + "Time Offset:": "Time Offset:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Totale Rx", + "Total Rx/s": "Totale Rx/s", + "Total Tx": "Totale Tx", + "Total Tx/s": "Totale Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Tracken op de achtergrond", + "Transactions": "Transacties", + "Transactions:": "Transacties:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Type", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO Manager", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Kan de node-instellingen niet wijzigen totdat het probleem is opgelost", + "Unable to store settings": "Unable to store settings", + "Unlock": "Ontgrendel", + "Unlock Wallet": "Wallet ontgrendelen", + "Unlocking": "Ontgrendelen", + "Update Available to version": "Update van deze versie beschikbaar", + "Updating...": "Bijwerken...", + "Uptime:": "Uptime:", + "Use 50%-75% of available system memory": "Gebruik 50%-75% van het beschikbare systeemgeheugen", + "Use all available system memory": "Gebruik al het beschikbare systeemgeheugen", + "User Agent": "User Agent", + "User Interface": "Gebruikersinterface", + "Very dangerous (may be cracked within few seconds)": "Zeer gevaarlijk (kan binnen enkele seconden worden gekraakt)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Virt Parents", + "Virtual DAA Score": "Virtual DAA Score", + "Virtual Memory": "Virtual Memory", + "Virtual Parent Hashes": "Virtual Parent Hashes", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK voor JavaScript en TypeScript", + "Wallet": "Wallet", + "Wallet Created": "Wallet aangemaakt", + "Wallet Encryption Password": "Wallet Versleutelingswachtwoord ", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Wallet naam", + "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Walletpaswoord is gebruikt om je walletdata te versleutelen", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Wallet:", + "We greatly appreciate your help in backing our efforts.": "Wij stellen je hulp bij het ondersteunen van onze inspanningen zeer op prijs.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Welkom bij Kaspa NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "Je bent momenteel niet verbonden met de Kaspa-node.", + "You can configure remote connection in Settings": "Je kunt de externe verbinding configureren in Instellingen", + "You can create multiple wallets, but only one wallet can be open at a time.": "Je kan meerdere wallets creëren, maar er kan er maar één tegelijk geopend zijn.", + "You must be connected to a node...": "Je moet verbonden zijn met een node...", + "Your default wallet private key mnemonic is:": "Je standaard Private Key Mnemonic voor je wallet is:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Met je Mnemonic Phrase kun je je Private Key opnieuw maken. De persoon die toegang heeft tot deze Mnemonic heeft volledige controle over de Kaspa die erin is opgeslagen. Bewaar je Mnemonic veilig. Schrijf het op en bewaar het in een kluis, bij voorkeur op een brandwerende plaats. Bewaar je Mnemonic niet op deze computer of een mobiel apparaat. Deze wallet zal je nooit om deze Mnemonic vragen, tenzij je handmatig een herstel van de Private Key start.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Je Private Key Mnemonic is:", + "Your wallet has been created and is ready to use.": "Je wallet is aangemaakt en klaar voor gebruik.", + "Zoom": "Zoom", + "bye!": "tot ziens!", + "gRPC Network Interface & Port": "gRPC Netwerkinterface & Poort", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "van", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "peer", + "peers": "peers", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx/s", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Rx/s", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "wRPC Verbindingsinstellingen", + "wRPC Encoding:": "wRPC-codering", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" + }, + "no": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS test network", + "10 BPS test network": "10 BPS test network", + "12 word mnemonic": "12 word mnemonic", + "24 word mnemonic": "24 word mnemonic", + "24h Change": "24h Change", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "A binary at another location is spawned a child process (experimental, for development purposes only).", + "A random node will be selected on startup": "A random node will be selected on startup", + "A wallet is stored in a file on your computer.": "A wallet is stored in a file on your computer.", + "Account Index": "Account Index", + "Account Name": "Account Name", + "Account not found": "Account not found", + "Account:": "Account:", + "Activate custom daemon arguments": "Activate custom daemon arguments", + "Active p2p Peers": "Active p2p Peers", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Address derivation scan", + "Address:": "Address:", + "Advanced": "Advanced", + "All": "All", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Allow custom arguments for the Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Allows you to take screenshots from within the application", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Apply", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Balance: N/A", + "Bandwidth": "Bandwidth", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.", + "Bezier Curves": "Bezier Curves", + "Block DAG": "Block DAG", + "Block Scale": "Block Scale", + "Blocks": "Blocks", + "Bodies": "Bodies", + "Borsh Active Connections": "Borsh Active Connections", + "Borsh Connection Attempts": "Borsh Connection Attempts", + "Borsh Handshake Failures": "Borsh Handshake Failures", + "Build": "Build", + "CONNECTED": "CONNECTED", + "CPU": "CPU", + "Cache Memory Size": "Cache Memory Size", + "Cancel": "Cancel", + "Cannot delete data folder while the node is running": "Cannot delete data folder while the node is running", + "Capture a screenshot": "Capture a screenshot", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Center VSPC", + "Chain Blocks": "Chain Blocks", + "Change Address": "Change Address", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Check for Software Updates on GitHub", + "Check for Updates": "Check for Updates", + "Clear": "Clear", + "Click to try another server...": "Click to try another server...", + "Client RPC": "Client RPC", + "Close": "Close", + "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Confirm wallet password", + "Connecting to": "Connecting to", + "Connection": "Connection", + "Connections": "Connections", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connects to a Remote Rusty Kaspa Node via wRPC.", + "Conservative": "Conservative", + "Continue": "Continue", + "Copied to clipboard": "Copied to clipboard", + "Copy": "Copy", + "Copy logs to clipboard": "Copy logs to clipboard", + "Create New Wallet": "Create New Wallet", + "Create Wallet": "Create Wallet", + "Create new wallet": "Create new wallet", + "Creating Account": "Creating Account", + "Creating Wallet": "Creating Wallet", + "Custom": "Custom", + "Custom Public Node": "Custom Public Node", + "Custom arguments:": "Custom arguments:", + "Custom data storage folder": "Custom data storage folder", + "DAA": "DAA", + "DAA Offset": "DAA Offset", + "DAA Range": "DAA Range", + "DB Blocks": "DB Blocks", + "DB Headers": "DB Headers", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", + "Database Blocks": "Database Blocks", + "Database Headers": "Database Headers", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Decrypting wallet, please wait...", + "Default": "Default", + "Default Account Name": "Default Account Name", + "Delete Data Folder": "Delete Data Folder", + "Dependencies": "Dependencies", + "Derivation Indexes": "Derivation Indexes", + "Details": "Details", + "Developer Mode": "Developer Mode", + "Developer Resources": "Developer Resources", + "Developer mode enables advanced and experimental features": "Developer mode enables advanced and experimental features", + "Difficulty": "Difficulty", + "Dimensions": "Dimensions", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Disabled", + "Disables node connectivity (Offline Mode).": "Disables node connectivity (Offline Mode).", + "Discord": "Discord", + "Donations": "Donations", + "Double click on the graph to re-center...": "Double click on the graph to re-center...", + "ECDSA": "ECDSA", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Enable Market Monitor", + "Enable UPnP": "Enable UPnP", + "Enable custom daemon arguments": "Enable custom daemon arguments", + "Enable experimental features": "Enable experimental features", + "Enable gRPC": "Enable gRPC", + "Enable optional BIP39 passphrase": "Enable optional BIP39 passphrase", + "Enable screen capture": "Enable screen capture", + "Enables features currently in development": "Enables features currently in development", + "Enter": "Enter", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Enter account name (optional)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Enter first account name", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Enter phishing hint", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Enter the amount", + "Enter the password for your wallet": "Enter the password for your wallet", + "Enter the password to unlock your wallet": "Enter the password to unlock your wallet", + "Enter wallet name": "Enter wallet name", + "Enter wallet password": "Enter wallet password", + "Enter your wallet secret": "Enter your wallet secret", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Explorer", + "Export Wallet Data": "Export Wallet Data", + "FIRST": "FIRST", + "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "File Handles", + "File contents": "File contents", + "Filename:": "Filename:", + "Final Amount:": "Final Amount:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub Release", + "Go to Settings": "Go to Settings", + "Good": "Good", + "Handles": "Handles", + "Headers": "Headers", + "High": "High", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "If not specified, the account will be represented by the numeric id.", + "If you are running locally, use: ": "If you are running locally, use: ", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Import existing", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Inbound", + "Integrated Daemon": "Integrated Daemon", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Invalid daemon arguments", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Invalid wRPC URL", + "Json Active Connections": "Json Active Connections", + "Json Connection Attempts": "Json Connection Attempts", + "Json Handshake Failures": "Json Handshake Failures", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Kaspa Integration Guide", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG on GitHub", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Kaspa Network", + "Kaspa Node": "Kaspa Node", + "Kaspa p2p Network & Node Connection": "Kaspa p2p Network & Node Connection", + "Kaspa p2p Node": "Kaspa p2p Node", + "Kaspa p2p Node & Connection": "Kaspa p2p Node & Connection", + "Key Perf.": "Key Perf.", + "LAST": "LAST", + "Language:": "Language:", + "Large (1 BPS)": "Large (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Levels", + "License Information": "License Information", + "Local": "Local", + "Local p2p Node Configuration": "Local p2p Node Configuration", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Logs", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Main Kaspa network", + "Mainnet": "Mainnet", + "Managed by the Rusty Kaspa daemon": "Managed by the Rusty Kaspa daemon", + "Market": "Market", + "Market Cap": "Market Cap", + "Market Monitor": "Market Monitor", + "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Medium Narrow", + "Medium Wide": "Medium Wide", + "Memory": "Memory", + "Mempool": "Mempool", + "Mempool Size": "Mempool Size", + "Metrics": "Metrics", + "Metrics are not currently available": "Metrics are not currently available", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM Modules for NodeJS", + "Network": "Network", + "Network Difficulty": "Network Difficulty", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Network Interface", + "Network Peers": "Network Peers", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "No peers", + "No public node selected - please select a public node": "No public node selected - please select a public node", + "No transactions": "No transactions", + "No wallets found, please create a new wallet": "No wallets found, please create a new wallet", + "Node": "Node", + "Node Status": "Node Status", + "Noise": "Noise", + "None": "None", + "Normal": "Normal", + "Not Connected": "Not Connected", + "Not connected": "Not connected", + "Notifications": "Notifications", + "Open Data Folder": "Open Data Folder", + "Opening wallet:": "Opening wallet:", + "Optional": "Optional", + "Options": "Options", + "Other operations": "Other operations", + "Outbound": "Outbound", + "Overview": "Overview", + "PREV": "PREV", + "Parents": "Parents", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Past Median Time", + "Payment & Recovery Password": "Payment & Recovery Password", + "Payment Request": "Payment Request", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Peers", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performance", + "Phishing Hint": "Phishing Hint", + "Ping:": "Ping:", + "Please Confirm Deletion": "Please Confirm Deletion", + "Please configure your Kaspa NG settings": "Please configure your Kaspa NG settings", + "Please connect to Kaspa p2p node": "Please connect to Kaspa p2p node", + "Please create a stronger password": "Please create a stronger password", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Please enter an amount", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Please enter the account name", + "Please enter the wallet secret": "Please enter the wallet secret", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Please select an account type", + "Please select export type": "Please select export type", + "Please select the private key to export": "Please select the private key to export", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Please set node to 'Disabled' to delete the data folder", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.", + "Please specify the name of the new wallet": "Please specify the name of the new wallet", + "Please specify the private key type for the new wallet": "Please specify the private key type for the new wallet", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Please wait for the node to sync or connect to a remote node.", + "Please wait for the node to sync...": "Please wait for the node to sync...", + "Please wait...": "Please wait...", + "Presets": "Presets", + "Price": "Price", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Processed Bodies", + "Processed Dependencies": "Processed Dependencies", + "Processed Headers": "Processed Headers", + "Processed Mass Counts": "Processed Mass Counts", + "Processed Transactions": "Processed Transactions", + "Processing...": "Processing...", + "Protocol:": "Protocol:", + "Public Node": "Public Node", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Random Public Node", + "Range:": "Range:", + "Receive Address": "Receive Address", + "Recommended arguments for the remote node: ": "Recommended arguments for the remote node: ", + "Redistributables": "Redistributables", + "Remote": "Remote", + "Remote Connection:": "Remote Connection:", + "Remote p2p Node Configuration": "Remote p2p Node Configuration", + "Removes security restrictions, allows for single-letter passwords": "Removes security restrictions, allows for single-letter passwords", + "Reset Settings": "Reset Settings", + "Reset VSPC": "Reset VSPC", + "Resident Memory": "Resident Memory", + "Resources": "Resources", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Resulting daemon arguments:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa on GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Secret is too weak", + "Secret score:": "Secret score:", + "Select Account": "Select Account", + "Select Private Key Type": "Select Private Key Type", + "Select Public Node": "Select Public Node", + "Select Wallet": "Select Wallet", + "Select a wallet to unlock": "Select a wallet to unlock", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Send", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Services", + "Settings": "Settings", + "Show DAA": "Show DAA", + "Show Grid": "Show Grid", + "Show VSPC": "Show VSPC", + "Show balances in alternate currencies for testnet coins": "Show balances in alternate currencies for testnet coins", + "Show passphrase": "Show passphrase", + "Show password": "Show password", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet", + "Skip": "Skip", + "Small (10 BPS)": "Small (10 BPS)", + "Spread": "Spread", + "Stage": "Stage", + "Starting...": "Starting...", + "Statistics": "Statistics", + "Stop": "Stop", + "Stor Read": "Stor Read", + "Stor Write": "Stor Write", + "Storage": "Storage", + "Storage Read": "Storage Read", + "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", + "Storage Write": "Storage Write", + "Storage Write/s": "Storage Write/s", + "Strong": "Strong", + "Submitted Blocks": "Submitted Blocks", + "Syncing Cryptographic Proof...": "Syncing Cryptographic Proof...", + "Syncing DAG Blocks...": "Syncing DAG Blocks...", + "Syncing Headers...": "Syncing Headers...", + "Syncing UTXO entries...": "Syncing UTXO entries...", + "Syncing...": "Syncing...", + "System": "System", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.", + "The balance may be out of date during node sync": "The balance may be out of date during node sync", + "The following will guide you through the process of creating or importing a wallet.": "The following will guide you through the process of creating or importing a wallet.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "The node is currently syncing with the Kaspa p2p network.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Theme Color", + "Theme Color:": "Theme Color:", + "Theme Style": "Theme Style", + "Theme Style:": "Theme Style:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Threshold": "Threshold", + "Time Offset:": "Time Offset:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Track in the background", + "Transactions": "Transactions", + "Transactions:": "Transactions:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Type", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO Manager", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Unable to change node settings until the problem is resolved", + "Unable to store settings": "Unable to store settings", + "Unlock": "Unlock", + "Unlock Wallet": "Unlock Wallet", + "Unlocking": "Unlocking", + "Update Available to version": "Update Available to version", + "Updating...": "Updating...", + "Uptime:": "Uptime:", + "Use 50%-75% of available system memory": "Use 50%-75% of available system memory", + "Use all available system memory": "Use all available system memory", + "User Agent": "User Agent", + "User Interface": "User Interface", + "Very dangerous (may be cracked within few seconds)": "Very dangerous (may be cracked within few seconds)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Virt Parents", + "Virtual DAA Score": "Virtual DAA Score", + "Virtual Memory": "Virtual Memory", + "Virtual Parent Hashes": "Virtual Parent Hashes", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", + "Wallet": "Wallet", + "Wallet Created": "Wallet Created", + "Wallet Encryption Password": "Wallet Encryption Password", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Wallet Name", + "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Wallet password is used to encrypt your wallet data.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Wallet:", + "We greatly appreciate your help in backing our efforts.": "We greatly appreciate your help in backing our efforts.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Welcome to Kaspa NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "You are currently not connected to the Kaspa node.", + "You can configure remote connection in Settings": "You can configure remote connection in Settings", + "You can create multiple wallets, but only one wallet can be open at a time.": "You can create multiple wallets, but only one wallet can be open at a time.", + "You must be connected to a node...": "You must be connected to a node...", + "Your default wallet private key mnemonic is:": "Your default wallet private key mnemonic is:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Your private key mnemonic is:", + "Your wallet has been created and is ready to use.": "Your wallet has been created and is ready to use.", + "Zoom": "Zoom", + "bye!": "bye!", + "gRPC Network Interface & Port": "gRPC Network Interface & Port", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "of", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "peer", + "peers": "peers", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "wRPC Connection Settings", + "wRPC Encoding:": "wRPC Encoding:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" + }, + "pa": {}, + "pl": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Podpowiedź phishingowa' to tajne słowo lub fraza wyświetlana podczas otwierania portfela. Jeśli nie widzisz podpowiedzi podczas otwierania portfela, być może uzyskujesz dostęp do fałszywego portfela zaprojektowanego w celu kradzieży środków. W takim przypadku należy natychmiast przestać korzystać z portfela, sprawdzić nazwę domeny adresu URL przeglądarki i szukać pomocy w sieciach społecznościowych (Kaspa Discord lub Telegram).", + "1 BPS test network": "sieć testowa 1 BPS", + "10 BPS test network": "sieć testowa 10 BPS", + "12 word mnemonic": "Mnemonik składający się z 12 słów", + "24 word mnemonic": "Mnemonik składający się z 24 słów", + "24h Change": "Zmiana 24h", + "3 hours or more": "3 godziny lub więcej", + "< {minutes} minute": "< {minutes} minuta", + "< {minutes} minutes": "< {minutes} minuty", + "< {seconds} second": "< {seconds} sekunda", + "< {seconds} seconds": "< {seconds} sekundy", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "Plik binarny w innej lokalizacji jest tworzony jako proces potomny (eksperymentalny, wyłącznie do celów programistycznych).", + "A random node will be selected on startup": "Podczas uruchamiania zostanie wybrany losowy węzeł", + "A wallet is stored in a file on your computer.": "Portfel przechowywany w pliku na Twoim komputerze.", + "Account Index": "Indeks Konta", + "Account Name": "Nazwa konta", + "Account not found": "Account not found", + "Account:": "Konto:", + "Activate custom daemon arguments": "Aktywuj niestandardowe argumenty demona", + "Active p2p Peers": "Aktywni partnerzy p2p", + "Add Account": "Dodaj Konto", + "Address copied to clipboard": "Adres skopiowany do schowka", + "Address derivation scan": "Skanowanie wyprowadzania adresu", + "Address:": "Adres:", + "Advanced": "Zaawansowane", + "All": "Wszystko", + "Allow clipboard copy": "Zezwalaj na kopiowanie do schowka", + "Allow custom arguments for the Rusty Kaspa daemon": "Zezwalaj na niestandardowe argumenty dla demona Rusty Kaspa", + "Allows you to take screenshots from within the application": "Umożliwia wykonywanie zrzutów ekranu z poziomu aplikacji", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Aby to ustawienie zaczęło obowiązywać, aplikacja musi zostać ponownie uruchomiona.", + "Apply": "Zastosuj", + "Architecture {arch}": "Architektura {arch}", + "Are you sure you want to reset all settings?": "Czy na pewno chcesz zresetować wszystkie ustawienia?", + "BALANCE": "BALANCE", + "Balance: N/A": "Saldo: niedostępne", + "Bandwidth": "Przepustowość łącza", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Ze względu na skupienie się na bezpieczeństwie i wydajności, oprogramowanie to zostało w całości opracowane w języku Rust, co wymaga znacznie więcej czasu i wysiłku w porównaniu do innych tradycyjnych, nowoczesnych programów internetowych.", + "Bezier Curves": "Krzywe Beziera", + "Block DAG": "Block DAG", + "Block Scale": "Skala blokowa", + "Blocks": "Bloki", + "Bodies": "Ciała", + "Borsh Active Connections": "Aktywne połączenia Borsh", + "Borsh Connection Attempts": "Próby połączenia Borsh", + "Borsh Handshake Failures": "Błędy Handshake Borsh", + "Build": "Wersja", + "CONNECTED": "POŁĄCZONY", + "CPU": "CPU", + "Cache Memory Size": "Rozmiar pamięci podręcznej", + "Cancel": "Anuluj", + "Cannot delete data folder while the node is running": "Nie można usunąć folderu danych, gdy węzeł jest uruchomiony", + "Capture a screenshot": "Zrób zrzut ekranu", + "Capture saved to {path}": "Przechwycenie zapisane w {path}", + "Center VSPC": "Centrum VSPC", + "Chain Blocks": "Bloki łańcucha", + "Change Address": "Zmiana adresu", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Sprawdź dostępność aktualizacji oprogramowania w GitHub", + "Check for Updates": "Sprawdź aktualizacje", + "Clear": "Wyczyść", + "Click to try another server...": "Kliknij by wybrać inny serwer...", + "Client RPC": "Klient RPC", + "Close": "Zamknij", + "Close the window": "Zamknij okno", + "Confirm BIP39 passphrase": "Potwierdź hasło BIP39", + "Confirm wallet password": "Potwierdź hasło do portfela", + "Connecting to": "Łączenie z", + "Connection": "Połączenie", + "Connections": "Połączenia", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Łączy się ze zdalnym węzłem Rusty Kaspa za pośrednictwem wRPC.", + "Conservative": "Konserwatywny", + "Continue": "Kontynuuj", + "Copied to clipboard": "Skopiowane do schowka", + "Copy": "Kopiuj", + "Copy logs to clipboard": "Skopiuj logi do schowka", + "Create New Wallet": "Utwórz nowy portfel", + "Create Wallet": "Stwórz portfel", + "Create new wallet": "Utwórz nowy portfel", + "Creating Account": "Tworzenie konta", + "Creating Wallet": "Tworzenie portfela", + "Custom": "Niestandardowe", + "Custom Public Node": "Niestandardowy węzeł publiczny", + "Custom arguments:": "Argumenty niestandardowe:", + "Custom data storage folder": "Niestandardowy folder przechowywania danych", + "DAA": "DAA", + "DAA Offset": "Przesunięcie DAA", + "DAA Range": "Zakres DAA", + "DB Blocks": "Bloki DB", + "DB Headers": "Nagłówki DB", + "Dangerous": "Niebezpieczne", + "Data Storage": "Magazyn danych", + "Database Blocks": "Bloki bazy danych", + "Database Headers": "Nagłówki bazy danych", + "Decrypt": "Odszyfruj", + "Decrypting Wallet File": "Odszyfrowywanie Pliku Portfela", + "Decrypting wallet, please wait...": "Odszyfrowywanie portfela, proszę czekać...", + "Default": "Domyślny", + "Default Account Name": "Domyślna nazwa konta", + "Delete Data Folder": "Usuń folder danych", + "Dependencies": "Zależności", + "Derivation Indexes": "Indeksy Pochodne", + "Details": "Szczegóły", + "Developer Mode": "Tryb dewelopera", + "Developer Resources": "Zasoby dla programistów", + "Developer mode enables advanced and experimental features": "Tryb programisty umożliwia korzystanie z zaawansowanych i eksperymentalnych funkcji", + "Difficulty": "Trudność", + "Dimensions": "Wymiary", + "Disable Window Frame": "Wyłącz ramkę okna", + "Disable password safety rules": "Wyłącz reguły bezpieczeństwa haseł", + "Disabled": "Wyłączony", + "Disables node connectivity (Offline Mode).": "Blokuje łączność węzła (tryb offline).", + "Discord": "Discord", + "Donations": "Darowizny", + "Double click on the graph to re-center...": "Kliknij dwukrotnie wykres, aby ponownie wyśrodkować...", + "ECDSA": "ECDSA", + "Economic": "Ekonomiczne", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Ekonomiczne: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Włącz Monitor rynku", + "Enable UPnP": "Włącz UPnP", + "Enable custom daemon arguments": "Włącz niestandardowe argumenty demona", + "Enable experimental features": "Włącz funkcje eksperymentalne", + "Enable gRPC": "Włącz gRPC", + "Enable optional BIP39 passphrase": "Włącz opcjonalne hasło BIP39", + "Enable screen capture": "Włącz przechwytywanie ekranu", + "Enables features currently in development": "Włącza funkcje testowe - aktualnie opracowywane", + "Enter": "Enter", + "Enter BIP39 passphrase": "Wprowadź hasło BIP39", + "Enter account name (optional)": "Wpisz nazwę konta (opcjonalnie)", + "Enter destination address": "Wprowadź adres docelowy", + "Enter first account name": "Wpisz pierwszą nazwę konta", + "Enter mnemonic": "Wprowadź mnemonik", + "Enter password to decrypt this wallet file": "Wprowadź hasło aby odszyfrować ten plik portfela", + "Enter phishing hint": "Wpisz wskazówkę dotyczącą phishingu", + "Enter priority fees": "Wprowadź opłaty za priorytet", + "Enter the amount": "Wprowadź kwotę", + "Enter the password for your wallet": "Wpisz hasło do swojego portfela", + "Enter the password to unlock your wallet": "Wprowadź hasło, aby odblokować swój portfel", + "Enter wallet name": "Wpisz nazwę portfela", + "Enter wallet password": "Wprowadź hasło do portfela", + "Enter your wallet secret": "Wprowadź sekret swojego portfela", + "Enter {suffix} amount to send": "Wprowadź ilość {suffix} do wysłania", + "Error": "Błąd", + "Error importing a wallet": "Błąd importu portfela", + "Error processing mnemonic: {err}": "Błąd przetwarzania mnemonika: {err}", + "Exit Full Screen": "Wyjdź z trybu pełnoekranowego", + "Explorer": "Eksplorator", + "Export Wallet Data": "Eksportuj dane portfela", + "FIRST": "PIERWSZY", + "Faucet": "Kran", + "Fee Market": "Rynek opłat", + "Fee Market & Network Pressure": "Rynek Opłat i Presja Sieci", + "Fee Market Only": "Tylko Rynek Opłat", + "File Handles": "Uchwyty plików", + "File contents": "Zawartość pliku", + "Filename:": "Nazwa pliku:", + "Final Amount:": "Końcowa kwota:", + "Final Amount: {amount}": "Ostateczna Kwota: {amount}", + "For decrypting uploaded file please enter wallet secret.": "Proszę wprowadzić sekret portfela aby odszyfrować przesłany plik.", + "Full Screen": "Pełnoekranowy", + "Generate New Change Address": "Generuj Nowy Adres Reszty", + "Generate New Receive Address": "Generuj Nowy Adres Odbiorczy", + "GitHub Release": "Wydanie GitHuba", + "Go to Settings": "Przejdź do ustawień", + "Good": "Dobry", + "Handles": "Uchwyty", + "Headers": "Nagłówki", + "High": "Wysoki", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "Jeśli nie zostanie określony, konto będzie reprezentowane przez identyfikator numeryczny.", + "If you are running locally, use: ": "Jeśli używasz lokalnie, użyj: ", + "Import Existing Private Key": "Import istniejącego klucza prywatnego", + "Import existing": "Importuj istniejące", + "Import existing file": "Import istniejącego pliku", + "Importing Legacy Wallet": "Importowanie Starego Portfela", + "Importing Wallet": "Importowanie portfela", + "Importing Wallet File": "Importowanie Pliku Portfela", + "Inbound": "Przychodzące", + "Integrated Daemon": "Zintegrowany demon", + "Invalid amount:": "Niewłaściwa kwota:", + "Invalid daemon arguments": "Nieprawidłowe argumenty demona", + "Invalid fee amount:": "Niewłaściwa kwota opłaty:", + "Invalid wRPC URL": "Nieprawidłowy adres URL wRPC", + "Json Active Connections": "Aktywne połączenia Json", + "Json Connection Attempts": "Próby połączenia Json", + "Json Handshake Failures": "Błędy Handshake Json", + "Kaspa Discord": "Discord Kaspy", + "Kaspa Integration Guide": "Przewodnik integracji Kaspy", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG na GitHubie", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Sieć Kaspa", + "Kaspa Node": "Węzeł Kaspa", + "Kaspa p2p Network & Node Connection": "Sieć p2p Kaspa oraz połączenie z węzłem", + "Kaspa p2p Node": "Węzeł Kaspa p2p", + "Kaspa p2p Node & Connection": "Węzeł Kaspa p2p", + "Key Perf.": "Kluczowa wydajność", + "LAST": "OSTATNI", + "Language:": "Język:", + "Large (1 BPS)": "Duży (1 BPS)", + "Legacy 12 word mnemonic": "Stary 12 wyrazowy mnemonik", + "Levels": "Poziomy", + "License Information": "Informacje o licencji", + "Local": "Lokalny", + "Local p2p Node Configuration": "Konfiguracja lokalnego węzła p2p", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Dzienniki", + "Low": "Niski", + "Low-priority": "NIski priorytet", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Niski: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Główna sieć Kaspa", + "Mainnet": "Sieć główna", + "Managed by the Rusty Kaspa daemon": "Zarządzany przez demona Rusty Kaspa", + "Market": "Rynek", + "Market Cap": "Kapitalizacja rynkowa", + "Market Monitor": "Monitor rynku", + "Mass Processed": "Przetworzone masowo", + "Mass:": "Masa:", + "Mass: {number}g": "Masa: {number}g", + "Maximize window": "Maksymalizuj okno", + "Medium Narrow": "Średnio wąski", + "Medium Wide": "Średnio szeroki", + "Memory": "Pamięć", + "Mempool": "Pamięć", + "Mempool Size": "Rozmiar pamięci", + "Metrics": "Metryka", + "Metrics are not currently available": "Dane nie są obecnie dostępne", + "Miner Fee": "Opłata górnika", + "Minimize the window": "Minimalizuj okno", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Import mnemonika", + "NEXT": "NASTĘPNY", + "NO NAME": "BEZ NAZWY", + "NPM Modules for NodeJS": "Moduły NPM dla NodeJS", + "Network": "Sieć", + "Network Difficulty": "Trudność sieci", + "Network Fee Estimator": "Kalkulator Opłat Sieciowych", + "Network Interface": "Interfejs sieciowy", + "Network Peers": "Peers Sieci", + "Network Pressure: ~{number}%": "Presja Sieci: ~{number}%", + "Never share your mnemonic with anyone!": "Nigdy nie udostępniaj nikomu swojego mnemonika!", + "No peers": "Brak Peers", + "No public node selected - please select a public node": "Nie wybrano węzła publicznego — wybierz węzeł publiczny", + "No transactions": "Brak transakcji", + "No wallets found, please create a new wallet": "Nie znaleziono portfeli, proszę utworzyć nowy.", + "Node": "Węzeł", + "Node Status": "Stan węzła", + "Noise": "Hałas", + "None": "Brak", + "Normal": "Normalny", + "Not Connected": "Nie połączony", + "Not connected": "Nie połączony", + "Notifications": "Powiadomienia", + "Open Data Folder": "Otwórz folder danych", + "Opening wallet:": "Otwieranie portfela:", + "Optional": "Opcjonalny", + "Options": "Opcje", + "Other operations": "Inne operacje", + "Outbound": "Wychodzące", + "Overview": "Przegląd", + "PREV": "POPRZEDNI", + "Parents": "Rodzice", + "Passive Sync": "Pasywna Synchronizacja", + "Passphrase is too weak": "Haslo jest zbyt słabe", + "Passphrases do not match": "Frazy nie są zgodne", + "Passwords do not match": "Hasła nie są zgodne", + "Past Median Time": "Przeszły średni czas", + "Payment & Recovery Password": "Hasło zapłaty i odzyskiwania", + "Payment Request": "Żądanie zapłaty", + "Payment request to account: {account}": "Prośba o płatność na konto: {account}", + "Peers": "Peers", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Wydajność", + "Phishing Hint": "Wskazówka dotycząca phishingu", + "Ping:": "Ping:", + "Please Confirm Deletion": "Proszę potwierdzić usunięcie", + "Please configure your Kaspa NG settings": "Proszę skonfigurować ustawienia Kaspa NG", + "Please connect to Kaspa p2p node": "Proszę połączyć się z węzłem p2p Kaspa", + "Please create a stronger password": "Utwórz silniejsze hasło", + "Please enter a valid address: {err}": "Proszę wprowadzić prawidłowy adres: {err}", + "Please enter a valid amount of KAS": "Proszę wprowadzić prawidłową ilość KAS", + "Please enter additional {amount} words": "Proszę wprowadzić dodatkowe {amount} słów", + "Please enter an amount": "Proszę wpisać kwotę", + "Please enter mnemonic comprised of {number} words": "Proszę wprowadzić mnemonik składający się z {number} słów", + "Please enter the account name": "Proszę wpisać nazwę konta", + "Please enter the wallet secret": "Proszę podać sekret portfela", + "Please enter {suffix} amount to send": "Proszę wprowadzić ilość {suffix} do wysłania", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Pamiętaj, że kopiowanie do schowka niesie ze sobą ryzyko narażenia Twojego mnemonika na złośliwe oprogramowanie.", + "Please select 'Apply' and restart the application.": "Proszę wybrać 'Zastosuj' i ponownie uruchomić aplikację.", + "Please select account to scan": "Proszę wybrać konto do zeskanowania", + "Please select an account type": "Proszę wybrać typ konta", + "Please select export type": "Proszę wybrać typ eksportu", + "Please select the private key to export": "Wybierz klucz prywatny do wyeksportowania", + "Please select the private key type you would like to import in the new wallet": "Proszę wybrać rodzaj klucza prywatnego, który chcesz zaimportować do nowego portfela", + "Please set node to 'Disabled' to delete the data folder": "Aby usunąć folder danych, ustaw węzeł na 'Wyłączony'.", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Proszę podać nazwę konta domyślnego. ", + "Please specify the name of the new wallet": "Podaj nazwę nowego portfela", + "Please specify the private key type for the new wallet": "Proszę określić typ klucza prywatnego dla nowego portfela", + "Please support Kaspa NG development": "Proszę wesprzeć rozwój Kaspa NG", + "Please wait for the node to sync or connect to a remote node.": "Poczekaj, aż węzeł się zsynchronizuje lub połączy się z węzłem zdalnym.", + "Please wait for the node to sync...": "Poczekaj, aż węzeł się zsynchronizuje...", + "Please wait...": "Proszę czekać...", + "Presets": "Ustawienia wstępne", + "Price": "Cena", + "Priority": "Priorytet", + "Priority Fee Estimator": "Kalkulator Opłat Priorytetu", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priorytet: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Mnemonik klucza prywatnego", + "Private key mnemonic stored in this wallet": "Prywatny klucz mnemonika przechowywany w tym porfelu", + "Processed Bodies": "Przetworzone ciała", + "Processed Dependencies": "Przetworzone zależności", + "Processed Headers": "Przetworzone nagłówki", + "Processed Mass Counts": "Liczniki przetworzonej masy", + "Processed Transactions": "Przetworzone transakcje", + "Processing...": "Przetwarzanie...", + "Protocol:": "Protokół:", + "Public Node": "Węzeł publiczny", + "Public wRPC (Borsh)": "Publiczne wRPC (Borsh)", + "Quit": "Wyjdź", + "Random Public Node": "Losowy węzeł publiczny", + "Range:": "Zakres:", + "Receive Address": "Adres odbiorcy", + "Recommended arguments for the remote node: ": "Zalecane argumenty dla zdalnego węzła: ", + "Redistributables": "Redystrybucyjne", + "Remote": "Zdalny", + "Remote Connection:": "Zdalne połączenie:", + "Remote p2p Node Configuration": "Zdalna konfiguracja węzła p2p", + "Removes security restrictions, allows for single-letter passwords": "Usuwa ograniczenia bezpieczeństwa, umożliwia stosowanie haseł jednoliterowych", + "Reset Settings": "Resetowanie ustawień", + "Reset VSPC": "Zresetuj VSPC", + "Resident Memory": "Pamięć rezydenta", + "Resources": "Zasoby", + "Restart": "Uruchom ponownie", + "Restore window": "Przywróć okno", + "Resulting daemon arguments:": "Wynikowe argumenty demona:", + "Rust Wallet SDK": "Pakiet SDK portfela Rust", + "Rusty Kaspa on GitHub": "Rusty Kaspa na GitHubie", + "Scanner": "Skaner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Zakończenie skanowania...", + "Secret is too weak": "Sekret jest za słaby", + "Secret score:": "Sekretny wynik:", + "Select Account": "Wybierz Konto", + "Select Private Key Type": "Wybierz Typ klucza prywatnego", + "Select Public Node": "Wybierz węzeł publiczny", + "Select Wallet": "Wybierz Portfel", + "Select a wallet to unlock": "Wybierz portfel do odblokowania", + "Select file...": "Wybierz plik...", + "Select this option if your wallet was created": "Wybierz tę opcję, jeśli twój portfel został utworzony", + "Send": "Wyślij", + "Sending funds": "Wysyłanie środków", + "Sending funds without priority fees will result in long transaction wait times.": "Wysyłanie środków bez opłat priorytetowych będzie skutkowało długim czasem oczekiwania na transakcję.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Usługi", + "Settings": "Ustawienia", + "Show DAA": "Pokaż DAA", + "Show Grid": "Pokaż siatkę", + "Show VSPC": "Pokaż VSPC", + "Show balances in alternate currencies for testnet coins": "Pokaż salda w alternatywnych walutach dla monet testnetowych", + "Show passphrase": "Pokaż hasło", + "Show password": "Pokaż hasło", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Pokazuje salda w alternatywnych walutach (BTC, USD) podczas korzystania z monet testnetowych, tak jakbyś był w sieci głównej", + "Skip": "Pomiń", + "Small (10 BPS)": "Mały (10 BPS)", + "Spread": "Rozpowszechnienie", + "Stage": "Scena", + "Starting...": "Uruchamianie...", + "Statistics": "Statystyka", + "Stop": "Stop", + "Stor Read": "Odczyty dysku", + "Stor Write": "Zapisy dysku", + "Storage": "Dysk", + "Storage Read": "Odczyty pamięci", + "Storage Read/s": "Pamięć Odczyt/s", + "Storage Size": "Rozmiar przechowywania", + "Storage Write": "Zapis do pamięci", + "Storage Write/s": "Pamięć Zapis/s", + "Strong": "Silny", + "Submitted Blocks": "Przesłane bloki", + "Syncing Cryptographic Proof...": "Synchronizowanie dowodu kryptograficznego...", + "Syncing DAG Blocks...": "Synchronizowanie bloków DAG...", + "Syncing Headers...": "Synchronizowanie nagłówków...", + "Syncing UTXO entries...": "Synchronizowanie wpisów UTXO...", + "Syncing...": "Synchronizowanie...", + "System": "System", + "TPS": "TPS", + "Testnet 10": "Sieć testowa 10", + "Testnet 11": "Sieć testowa 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Oprogramowanie Kaspa NG reprezentuje ciągły wysiłek skupiony na budowaniu najnowocześniejszej platformy oprogramowania dedykowanej sieci kryptowalut Kaspa BlockDAG. Oprogramowanie to skupia się na bezpieczeństwie, prywatności, wydajności i decentralizacji.", + "The balance may be out of date during node sync": "Saldo może być nieaktualne podczas synchronizacji węzła", + "The following will guide you through the process of creating or importing a wallet.": "Ta instrukcja przeprowadzi Cię przez proces tworzenia lub importowania portfela.", + "The network is currently congested.": "Sieć jest obecnie przeciążona.", + "The node is currently syncing with the Kaspa p2p network.": "Węzeł aktualnie synchronizuje się z siecią p2p Kaspa.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "Węzeł aktualnie synchronizuje się z siecią p2p Kaspa. ", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "Węzeł aktualnie synchronizuje się z siecią Kaspa p2p. Proszę czekać za zsynchronizowanie węzła.", + "The node is spawned as a child daemon process (recommended).": "Węzeł jest uruchamiany jako proces demona podrzędnego (zalecane).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "Węzeł działa w ramach procesu aplikacyjnego Kaspa-NG. Zmniejsza to obciążenie komunikacyjne (eksperymentalne).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "Węzeł synchronizuje się w tle, gdy Kaspa-NG ma połączenie z węzłem publicznym.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "Węzeł synchronizuje się w tle, gdy Kaspa-NG ma połączenie z węzłem publicznym. Po zsynchronizowaniu węzła można przełączyć się na tryb „Demon Zintegrowany”.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "Opcjonalne hasło płatności i odzyskiwania mnemoników, znane jako hasło BIP39, jeśli zostanie podane, będzie wymagane do wysyłania płatności. To hasło będzie również potrzebne podczas odzyskiwania portfela, oprócz mnemonika. Jeśli zgubicie lub zapomnicie to hasło, nie będziecie mogli użyć mnemoników do odzyskania portfela!", + "Theme Color": "Kolor motywu", + "Theme Color:": "Kolor motywu:", + "Theme Style": "Styl motywu", + "Theme Style:": "Styl motywu:", + "This option will transfer any discovered funds to the first change address of this account.": "Ta opcja spowoduje transfer wszelkich odkrytych środków na pierwszy adres reszty tego konta.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Ten portfel nigdy nie poprosi Cię o podanie tego mnemonicznego wyrażenia, chyba że ręcznie zainicjujesz odzyskiwanie klucza prywatnego.", + "Threshold": "Próg", + "Time Offset:": "Przesunięcie czasu:", + "Timestamp: {timestamp}": "Sygnatura czasowa: {timestamp}", + "Tip Hashes": "Wskazówki Hashe", + "Too many words in the": "Zbyt wiele słów w", + "Tools": "Tools", + "Total Rx": "Całkowity odbiór", + "Total Rx/s": "Całkowity Rx/s", + "Total Tx": "Całkowity przesył", + "Total Tx/s": "Całkowity Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Śledź w tle", + "Transactions": "Transakcje", + "Transactions:": "Transakcje:", + "Transactions: {number}": "Transakcje: {number}", + "Transfer funds during scan": "Transfer środków podczas skanowania", + "Type": "Typ", + "URI copied to clipboard": "URI skopiowano do schowka", + "UTXO Manager": "Menedżer UTXO", + "UTXOs": "UTXO", + "UTXOs:": "UTXO:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Nie można zmienić ustawień węzła, dopóki problem nie zostanie rozwiązany", + "Unable to store settings": "Unable to store settings", + "Unlock": "Odblokuj", + "Unlock Wallet": "Odblokuj portfel", + "Unlocking": "Odblokowanie", + "Update Available to version": "Aktualizacja Dostępna dla wersji", + "Updating...": "Aktualizowanie...", + "Uptime:": "Czas pracy:", + "Use 50%-75% of available system memory": "Użyj 50%-75% dostępnej pamięci systemowej", + "Use all available system memory": "Wykorzystaj całą dostępną pamięć systemową", + "User Agent": "Agent użytkownika", + "User Interface": "Interfejs użytkownika", + "Very dangerous (may be cracked within few seconds)": "Bardzo niebezpieczne (może zostać złamane w ciągu kilku sekund)", + "Very strong": "Bardzo mocne", + "Very weak": "Bardzo słaby", + "Virt Parents": "Virt Rodzice", + "Virtual DAA Score": "Wirtualny wynik DAA", + "Virtual Memory": "Pamięć wirtualna", + "Virtual Parent Hashes": "Wirtualne skróty nadrzędne", + "Volume": "Tom", + "WASM SDK for JavaScript and TypeScript": "WASM SDK dla JavaScript i TypeScript", + "Wallet": "Portfel", + "Wallet Created": "Portfel utworzono", + "Wallet Encryption Password": "Hasło szyfrowania portfela", + "Wallet File Secret": "Sekret Pliku Portfela", + "Wallet Name": "Nazwa portfela", + "Wallet Secret": "Sekret portfela", + "Wallet creation error:": "Błąd tworzenia portfela:", + "Wallet decrypting error:": "Błąd deszyfrowania portfela:", + "Wallet password is used to encrypt your wallet data.": "Hasło do portfela służy do szyfrowania danych portfela.", + "Wallet with this name already exists": "Portfel o tej nazwie już istnieje", + "Wallet:": "Portfel:", + "We greatly appreciate your help in backing our efforts.": "Jesteśmy bardzo wdzięczni za pomoc we wsparciu naszych wysiłków.", + "Weak": "Słaby", + "Welcome to Kaspa NG": "Witamy w Kaspa NG", + "Xpub Keys": "Klucze Xpub", + "You are currently not connected to the Kaspa node.": "Obecnie nie masz połączenia z węzłem Kaspa.", + "You can configure remote connection in Settings": "Połączenie zdalne możesz skonfigurować w Ustawieniach", + "You can create multiple wallets, but only one wallet can be open at a time.": "Możesz utworzyć wiele portfeli, ale jednocześnie może być otwarty tylko jeden.", + "You must be connected to a node...": "Musisz być podłączony do węzła...", + "Your default wallet private key mnemonic is:": "Twój domyślny mnemonik klucza prywatnego portfela to:", + "Your mnemonic is protected with a bip39 passphrase": "Twój mnemonik jest chroniony hasłem bip39", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Twoja fraza mnemoniczna umożliwia odtworzenie klucza prywatnego. Osoba mająca dostęp do tego mnemonika będzie miała pełną kontrolę nad przechowywaną w nim Kaspą. Chroń swój mnemonik. Zapisz go i przechowuj w sejfie, najlepiej w miejscu ognioodpornym. Nie przechowuj swojego mnemonika na tym komputerze lub urządzeniu mobilnym. Ten portfel nigdy nie poprosi Cię o podanie tego mnemonicznego wyrażenia, chyba że ręcznie zainicjujesz odzyskiwanie klucza prywatnego.", + "Your mnemonic phrase is invalid": "Twoja fraza mnemoniczna jest nieprawidłowa", + "Your private key mnemonic is:": "Twój mnemonik klucza prywatnego to:", + "Your wallet has been created and is ready to use.": "Twój portfel został utworzony i jest gotowy do użycia.", + "Zoom": "Powiększenie", + "bye!": "do widzenia!", + "gRPC Network Interface & Port": "Interfejs sieciowy gRPC", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "z", + "p2p RPC": "p2pRPC", + "p2p Rx": "odbiór p2p", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Transmisja/s", + "peer": "peer", + "peers": "peers", + "using KDX or kaspanet.io web wallet": "przy użyciu portfela internetowego KDX lub kaspanet.io", + "wRPC Borsh Rx": "Odbiór wRPC Borsh", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "Wysyłka wRPC Borsh", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "Ustawienia połączenia wRPC", + "wRPC Encoding:": "Kodowanie wRPC:", + "wRPC JSON Rx": "Odbiór wRPC JSON", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "Wysyłka wRPC JSON", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "Adres URL wRPC:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Wyślij", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transferuj", + "{qrCodeIcon} Request": "{qrCodeIcon} Poproś", + "~2 hours": "~2 godziny", + "~30 minutes": "~30 minut" + }, + "pt": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "A 'dica de phishing' é uma palavra ou frase secreta que é exibida quando abre a sua carteira. Se não vir a dica ao abrir a sua carteira, poderá estar a aceder a uma carteira falsa criada para roubar os seus fundos. Se isto ocorrer, pare de utilizar a carteira imediatamente, verifique o nome de domínio da URL do navegador e procure ajuda nas redes sociais (Kaspa Discord ou Telegram).", + "1 BPS test network": "rede de teste 1 BPS", + "10 BPS test network": "rede de teste 10 BPS", + "12 word mnemonic": "12 palavras mnemônicas", + "24 word mnemonic": "24 palavras mnemônicas", + "24h Change": "Alteração 24h ", + "3 hours or more": "3 horas ou mais", + "< {minutes} minute": "< {minutes} minuto", + "< {minutes} minutes": "< {minutes} minutos", + "< {seconds} second": "< {seconds} segundo", + "< {seconds} seconds": "< {seconds} segundos", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "Um binário numa outra localização criou um sub-processo (experimental, apenas para desenvolvimento) ", + "A random node will be selected on startup": "Um nódulo aleatório será seleccionado ao iniciar ", + "A wallet is stored in a file on your computer.": "Uma carteira está guardada num ficheiro no seu computador ", + "Account Index": "Índice de conta", + "Account Name": "Nome da conta ", + "Account not found": "Account not found", + "Account:": "Conta:", + "Activate custom daemon arguments": "Habilitar argumentos do daemon personalizados", + "Active p2p Peers": "Activar pares p2p", + "Add Account": "Adicionar Conta", + "Address copied to clipboard": "Endereço copiado para a área de transferência", + "Address derivation scan": "Explorar derivação de moradas ", + "Address:": "Morada:", + "Advanced": "Avançado", + "All": "Todas", + "Allow clipboard copy": "Permitir cópia para a área de transferência", + "Allow custom arguments for the Rusty Kaspa daemon": "Permitir argumentos personalizados para o daemon Rusty Kaspa ", + "Allows you to take screenshots from within the application": "Permite que faça capturas de tela dentro da aplicação ", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "A aplicação precisa ser reiniciada para que essa configuração tenha efeito.", + "Apply": "Aplicar ", + "Architecture {arch}": "Arquitetura {arch}", + "Are you sure you want to reset all settings?": "Tem a certeza de que deseja redefinir todas as definições?", + "BALANCE": "BALANCE", + "Balance: N/A": "Saldo: N/A", + "Bandwidth": "Largura de banda", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Devido ao seu foco em segurança e desempenho, este software é inteiramente desenvolvido em Rust, e exige significativamente mais tempo e esforço em comparação a outros softwares modernos tradicionais baseados na web.", + "Bezier Curves": "Curva de Bézier", + "Block DAG": "Bloco DAG", + "Block Scale": "Escala do bloco", + "Blocks": "Blocos", + "Bodies": "Corpos", + "Borsh Active Connections": "Conexões Activas Borsh", + "Borsh Connection Attempts": "Tentativas de conexão Borsh", + "Borsh Handshake Failures": "Falhas no aperto de mão Borsh", + "Build": "Versão", + "CONNECTED": "CONECTADO ", + "CPU": "CPU", + "Cache Memory Size": "Tamanho de Memória Cache ", + "Cancel": "Cancelar", + "Cannot delete data folder while the node is running": "Impossível apagar o ficheiro enquanto o nódulo está a funcionar ", + "Capture a screenshot": "Fazer uma captura de tela", + "Capture saved to {path}": "Captura salva em {path}", + "Center VSPC": "Centrar VSPC", + "Chain Blocks": "Cadeia de Blocos", + "Change Address": "Morada de Troco ", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Verificar Actualizações de Software no Github", + "Check for Updates": "Verificar Actualizações", + "Clear": "Limpar", + "Click to try another server...": "Clicar para tentar noutro servidor ", + "Client RPC": "Cliente RPC", + "Close": "Fechar", + "Close the window": "Fechar a janela", + "Confirm BIP39 passphrase": "Confirmar frase secreta BIP39", + "Confirm wallet password": "Confirmar a password da carteira ", + "Connecting to": "A conectar a", + "Connection": "Conexão ", + "Connections": "Conexões", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Conecta a Nódulo Remoto Rusty Kaspa via wRPC", + "Conservative": "Conservador", + "Continue": "Continuar ", + "Copied to clipboard": "Copiado para a área de transferência", + "Copy": "Copiar ", + "Copy logs to clipboard": "Copiar registros para a área de transferência", + "Create New Wallet": "Criar Nova Carteira ", + "Create Wallet": "Criar Carteira", + "Create new wallet": "Criar nova carteira ", + "Creating Account": "A Criar Nova Conta ", + "Creating Wallet": "A Criar Nova Carteira", + "Custom": "Personalizar ", + "Custom Public Node": "Personalizar Nódulo Público ", + "Custom arguments:": "Argumentos personalizados ", + "Custom data storage folder": "Pasta de armazenamento de dados personalizada", + "DAA": "DAA", + "DAA Offset": "Desvio DAA", + "DAA Range": "Alcance DAA", + "DB Blocks": "DB Blocos", + "DB Headers": "Cabeçalhos Base Dados", + "Dangerous": "Perigoso", + "Data Storage": "Armazenamento de dados", + "Database Blocks": "Blocos da Base dados ", + "Database Headers": "Cabeçalhos da Base Dados ", + "Decrypt": "Desencriptar", + "Decrypting Wallet File": "A desencriptar ficheiro da carteira", + "Decrypting wallet, please wait...": "A descriptografar a carteira, aguarde...", + "Default": "Predefinido", + "Default Account Name": "Nome de Conta Predefinido ", + "Delete Data Folder": "Apagar ficheiro de dados", + "Dependencies": "Dependências ", + "Derivation Indexes": "Índices de Derivação", + "Details": "Detalhes", + "Developer Mode": "Modo de Desenvolvedor", + "Developer Resources": "Recursos para Desenvolvedores", + "Developer mode enables advanced and experimental features": "O modo de desenvolvedor permite recursos avançados e experimentais", + "Difficulty": "Dificuldade ", + "Dimensions": "Dimensões", + "Disable Window Frame": "Desativar moldura da janela", + "Disable password safety rules": "Desabilitar regras de segurança de senha", + "Disabled": "Desactivar ", + "Disables node connectivity (Offline Mode).": "Desactiva a conectividade do nódulo (modo offline).", + "Discord": "Discord", + "Donations": "Donativos", + "Double click on the graph to re-center...": "Clique duas vezes no gráfico para centralizá-lo novamente...", + "ECDSA": "ECDSA", + "Economic": "Econômico", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Econômico: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Habilitar Monitor de Mercado", + "Enable UPnP": "Habilitar UPnP", + "Enable custom daemon arguments": "Habilitar argumentos do daemon personalizados", + "Enable experimental features": "Habilitar recursos experimentais", + "Enable gRPC": "Habilitar gRPC", + "Enable optional BIP39 passphrase": "Habilitar senha BIP39 opcional", + "Enable screen capture": "Activar captura de tela", + "Enables features currently in development": "Activa recursos actualmente em desenvolvimento ", + "Enter": "Inserir ", + "Enter BIP39 passphrase": "Introduza a frase de segurança BIP39", + "Enter account name (optional)": "Inserir nome de conta (opcional) ", + "Enter destination address": "Introduza o endereço de destino", + "Enter first account name": "Insira o nome da primeira conta", + "Enter mnemonic": "Introduza o mnemônico", + "Enter password to decrypt this wallet file": "Introduza a palavra-passe para desencriptar este ficheiro da carteira", + "Enter phishing hint": "Insira a dica de phishing", + "Enter priority fees": "Introduza as taxas de prioridade", + "Enter the amount": "Introduzir a quantia ", + "Enter the password for your wallet": "Introduzir a password da sua carteira", + "Enter the password to unlock your wallet": "Digite a senha para desbloquear sua carteira ", + "Enter wallet name": "Digite o nome da carteira", + "Enter wallet password": "Digite a senha da carteira", + "Enter your wallet secret": "Digite o segredo da sua carteira", + "Enter {suffix} amount to send": "Introduza a quantia de {suffix} a enviar", + "Error": "Erro", + "Error importing a wallet": "Erro ao importar uma carteira", + "Error processing mnemonic: {err}": "Erro ao processar a mnemônica: {err}", + "Exit Full Screen": "Sair do Modo de Ecrã Inteiro", + "Explorer": "Explorador ", + "Export Wallet Data": "Exportar dados da carteira", + "FIRST": "PRIMEIRO", + "Faucet": "Faucet", + "Fee Market": "Taxas de mercado", + "Fee Market & Network Pressure": "Taxas de Mercado & Pressão da Rede", + "Fee Market Only": "Apenas Taxas de Mercado", + "File Handles": "Identificadores de arquivos", + "File contents": "Conteúdo do Ficheiro", + "Filename:": "Nome do arquivo:", + "Final Amount:": "Quantidade final:", + "Final Amount: {amount}": "Montante Final: {amount}", + "For decrypting uploaded file please enter wallet secret.": "Para desencriptar o ficheiro carregado, por favor introduza o segredo da carteira.", + "Full Screen": "Ecrã Inteiro", + "Generate New Change Address": "Gerar Novo Endereço de Troco", + "Generate New Receive Address": "Gerar Novo Endereço de Recebimento", + "GitHub Release": "Versão no GitHub", + "Go to Settings": "Ir para as configurações", + "Good": "Bom", + "Handles": "Identificadores ", + "Headers": "Cabeçalhos ", + "High": "Alto", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "Se não for especificado, a conta será representada pelo ID numérico.", + "If you are running locally, use: ": "Se está a executar localmente, use:", + "Import Existing Private Key": "Importar chave privada existente", + "Import existing": "Importar existente", + "Import existing file": "Importar ficheiro existente", + "Importing Legacy Wallet": "A importar Carteira Legada", + "Importing Wallet": "A Importar Carteira", + "Importing Wallet File": "A Importar Ficheiro da Carteira", + "Inbound": "Entrada", + "Integrated Daemon": "Daemon Integrado", + "Invalid amount:": "Quantidade inválida:", + "Invalid daemon arguments": "Argumentos do daemon inválidos", + "Invalid fee amount:": "Montante de taxa inválido:", + "Invalid wRPC URL": " URL wRPC Inválido", + "Json Active Connections": "Conexões activas JSON", + "Json Connection Attempts": "Tentativas de conexão JSON", + "Json Handshake Failures": "Falhas no aperto de mão JSON", + "Kaspa Discord": "Discord Kaspa", + "Kaspa Integration Guide": "Guia de integração Kaspa", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG no GitHub", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Rede Kaspa", + "Kaspa Node": "Nódulo Kaspa", + "Kaspa p2p Network & Node Connection": "Rede Kaspa p2p e conexão de nódulo", + "Kaspa p2p Node": "Nódulo p2p Kaspa ", + "Kaspa p2p Node & Connection": "Nódulo e conexão p2p Kaspa", + "Key Perf.": "Chave Perf.", + "LAST": "ÚLTIMO", + "Language:": "Linguagem:", + "Large (1 BPS)": "Grande (1BPS)", + "Legacy 12 word mnemonic": "Mnemônica legado de 12 palavras", + "Levels": "Níveis", + "License Information": "Informações sobre licença", + "Local": "Local", + "Local p2p Node Configuration": "Configuração de Nódulo p2p Local", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Histórico", + "Low": "Baixo", + "Low-priority": "Baixa prioridade", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Baixo: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Rede principal Kaspa", + "Mainnet": "Rede principal", + "Managed by the Rusty Kaspa daemon": "Gerido pelo daemon Rusty Kaspa", + "Market": "Mercado", + "Market Cap": "Valor de mercado", + "Market Monitor": "Monitor de Mercado", + "Mass Processed": "Processado em massa", + "Mass:": "Massa:", + "Mass: {number}g": "Massa: {number}g", + "Maximize window": "Maximizar ecrã", + "Medium Narrow": "Médio Estreito", + "Medium Wide": "Médio Largo", + "Memory": "Memória ", + "Mempool": "Mempool", + "Mempool Size": "Tamanho Mempool", + "Metrics": "Métricas", + "Metrics are not currently available": "As métricas não estão disponíveis no momento", + "Miner Fee": "Taxa de mineração", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Importação de mnemônico", + "NEXT": "PRÓXIMO", + "NO NAME": "SEM NOME", + "NPM Modules for NodeJS": "Módulos NPM para NodeJS", + "Network": "Rede", + "Network Difficulty": "Dificuldade de Rede", + "Network Fee Estimator": "Estimador de Taxas de Rede", + "Network Interface": "Interface de rede", + "Network Peers": "Pares de rede", + "Network Pressure: ~{number}%": "Pressão da Rede: ~{number}%", + "Never share your mnemonic with anyone!": "Nunca partilhe a sua mnemónica com ninguém!", + "No peers": "Sem pares", + "No public node selected - please select a public node": "Nenhum nódulo público seleccionado - seleccione um nódulo público", + "No transactions": "Nenhuma transacção", + "No wallets found, please create a new wallet": "Nenhuma carteira encontrada, crie uma nova carteira", + "Node": "Nódulo", + "Node Status": "Estado do Nódulo ", + "Noise": "Ruído ", + "None": "Nenhum", + "Normal": "Normal", + "Not Connected": "Não Conectado ", + "Not connected": "Não conectado ", + "Notifications": "Notificações ", + "Open Data Folder": "Abrir ficheiro de dados", + "Opening wallet:": "A abrir carteira", + "Optional": "Opcional ", + "Options": "Opções", + "Other operations": "Outras operações ", + "Outbound": "Saída ", + "Overview": "Visão geral", + "PREV": "ANTERIOR", + "Parents": "Parentes", + "Passive Sync": "Sincronização Passiva", + "Passphrase is too weak": "A frase secreta é muito fraca", + "Passphrases do not match": "As frases secretas não coincidem", + "Passwords do not match": "As senhas não coincidem", + "Past Median Time": "Tempo médio passado", + "Payment & Recovery Password": "Senha de pagamento e recuperação", + "Payment Request": "Pedido de Pagamento", + "Payment request to account: {account}": "Pedido de pagamento para a conta: {account}", + "Peers": "Pares", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Desempenho", + "Phishing Hint": "Dica de phishing", + "Ping:": "Ping:", + "Please Confirm Deletion": "Confirme a exclusão", + "Please configure your Kaspa NG settings": "Por favor, defina as configurações do Kaspa NG", + "Please connect to Kaspa p2p node": "Conecte-se ao nódulo p2p Kaspa", + "Please create a stronger password": "Por favor crie uma senha mais forte", + "Please enter a valid address: {err}": "Por favor, insira um endereço válido: {err}.", + "Please enter a valid amount of KAS": "Por favor, insira um montante válido de KAS.", + "Please enter additional {amount} words": "Por favor, insira mais {amount} palavras", + "Please enter an amount": "Insira um valor", + "Please enter mnemonic comprised of {number} words": "Por favor, insira uma mnemónica composta por {number} palavras", + "Please enter the account name": "Por favor insira o nome da conta", + "Please enter the wallet secret": "Por favor insira o segredo da carteira", + "Please enter {suffix} amount to send": "Por favor, insira a quantia de {suffix} a enviar", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Observe que copiar para a área de transferência apresenta o risco de expor a sua mnemónica a malware.", + "Please select 'Apply' and restart the application.": "Por favor, selecione 'Aplicar' e reinicie a aplicação.", + "Please select account to scan": "Por favor, seleccione a conta a ser verificada.", + "Please select an account type": "Seleccione um tipo de conta", + "Please select export type": "Por favor, seleccione o tipo de exportação", + "Please select the private key to export": "Seleccione a chave privada para exportar", + "Please select the private key type you would like to import in the new wallet": "Por favor, selecione o tipo de chave privada que gostaria de importar na nova carteira.", + "Please set node to 'Disabled' to delete the data folder": "Defina o nódulo como 'Desactivado' para excluir a pasta de dados", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Especifique o nome da conta padrão. A carteira será criada com uma conta padrão. Depois de criada, você poderá criar contas adicionais conforme necessário.", + "Please specify the name of the new wallet": "Por favor especifique o nome da nova carteira", + "Please specify the private key type for the new wallet": "Por favor, especifique o tipo de chave privada para a nova carteira", + "Please support Kaspa NG development": "Por favor, apoie o desenvolvimento do Kaspa NG.", + "Please wait for the node to sync or connect to a remote node.": "Por favor, aguarde que o nódulo se sincronize ou conecte-se a um nódulo remoto.", + "Please wait for the node to sync...": "Por favor, aguarde a sincronização do nódulo...", + "Please wait...": "Por favor, aguarde...", + "Presets": "Predefinições", + "Price": "Preço", + "Priority": "Prioridade", + "Priority Fee Estimator": "Estimador de Taxas de Prioridade", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Prioridade: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Frase Mnemónica da Chave Privada", + "Private key mnemonic stored in this wallet": "Mnemónica da chave privada armazenada nesta carteira", + "Processed Bodies": "Corpos Processados", + "Processed Dependencies": "Dependencias Processadas", + "Processed Headers": "Cabeçalhos Processados", + "Processed Mass Counts": "Contas Massivas Processadas", + "Processed Transactions": "Transacções Processadas", + "Processing...": "A processar...", + "Protocol:": "Protocolo:", + "Public Node": "Nódulo Público ", + "Public wRPC (Borsh)": "wRPC Público (Borsh)", + "Quit": "Sair", + "Random Public Node": "Nódulo Público Aleatório", + "Range:": "Intervalo:", + "Receive Address": "Endereço de Recebimento", + "Recommended arguments for the remote node: ": "Argumentos recomendados para o nódulos remoto:", + "Redistributables": "Redistribuíveis", + "Remote": "Remoto", + "Remote Connection:": "Conexão Remota:", + "Remote p2p Node Configuration": "Configuração Remota de Nódulo p2p", + "Removes security restrictions, allows for single-letter passwords": "Remove restrições de segurança, permite senhas de uma letra", + "Reset Settings": "Redefinir Configurações", + "Reset VSPC": "Redefinir VSPC", + "Resident Memory": "Memória Residente", + "Resources": "Recursos", + "Restart": "Reiniciar", + "Restore window": "Restaurar janela", + "Resulting daemon arguments:": "Argumentos resultantes do daemon:", + "Rust Wallet SDK": "SDK Carteira Rust", + "Rusty Kaspa on GitHub": "Rusty Kaspa no GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Escaneamento completo...", + "Secret is too weak": "O segredo é muito fraco", + "Secret score:": "Pontuação do Segredo:", + "Select Account": "Seleccione Conta ", + "Select Private Key Type": "Seleccione o Tipo de Chave Privada", + "Select Public Node": "Seleccione o Nódulo Público", + "Select Wallet": "Seleccione a Carteira", + "Select a wallet to unlock": "Seleccione uma carteira para desbloquear", + "Select file...": "Selecionar ficheiro...", + "Select this option if your wallet was created": "Selecione esta opção se a sua carteira foi criada", + "Send": "Enviar", + "Sending funds": "A enviar fundos", + "Sending funds without priority fees will result in long transaction wait times.": "Enviar fundos sem taxas de prioridade resultará em longos tempos de espera para a transação.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Serviços", + "Settings": "Configurações", + "Show DAA": "Exibir DDA", + "Show Grid": "Exibir Grade", + "Show VSPC": "Exibir VSPC", + "Show balances in alternate currencies for testnet coins": "Mostrar saldos em moedas alternativas para moedas na rede de testes", + "Show passphrase": "Mostrar frase secreta", + "Show password": "Mostrar senha", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Mostra saldos em moedas alternativas (BTC, USD) ao usar moedas de teste como se estivesse na mainnet", + "Skip": "Pular", + "Small (10 BPS)": "Pequeno (10BPS)", + "Spread": "Amplitude ", + "Stage": "Etapa", + "Starting...": "Iniciando...", + "Statistics": "Estatísticas", + "Stop": "Parar", + "Stor Read": "Armazenamento Leitura/s", + "Stor Write": "Armazenamento Escrita/s", + "Storage": "Armazenamento", + "Storage Read": "Leitura de armazenamento", + "Storage Read/s": "Armazenamento Leitura/s", + "Storage Size": "Tamanho do Armazenamento", + "Storage Write": "Escrita de armazenamento", + "Storage Write/s": "Armazenamento Escrita/s", + "Strong": "Forte", + "Submitted Blocks": "Blocos Submetidos", + "Syncing Cryptographic Proof...": "A sincronizar Prova Criptográfica...", + "Syncing DAG Blocks...": "A sincronizar Blocos DAG...", + "Syncing Headers...": "A sincronizar Cabeçalhos...", + "Syncing UTXO entries...": "A sincronizar entradas UTXO...", + "Syncing...": "Sincronizando...", + "System": "Sistema", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "O software Kaspa NG representa um esforço contínuo focado na construção de uma plataforma de software de última geração dedicada à rede de criptomoedas Kaspa BlockDAG. Ideológico em sua essência, este software prioriza segurança, privacidade, desempenho e descentralização.", + "The balance may be out of date during node sync": "O saldo pode estar desatualizado durante a sincronização do nódulo", + "The following will guide you through the process of creating or importing a wallet.": "O seguinte irá guiá-lo através do processo de criação ou importação de uma carteira.", + "The network is currently congested.": "A rede está atualmente congestionada.", + "The node is currently syncing with the Kaspa p2p network.": "O nó está atualmente sincronizando com a rede p2p da Kaspa.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "O nódulo está atualmente a sincronizar com a rede P2P da Kaspa. Os saldos das contas podem estar desatualizados.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "O nó está atualmente a sincronizar com a rede p2p do Kaspa. Por favor, aguarde enquanto o nó sincroniza.", + "The node is spawned as a child daemon process (recommended).": "O nódulo é iniciado como um processo daemon filho (recomendado).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "O nódulo é executado como parte do processo da aplicação Kaspa-NG. Isso reduz a sobrecarga de comunicação (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "O nó sincroniza em segundo plano enquanto o Kaspa-NG está conectado a um nó público.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "O nó sincroniza em segundo plano enquanto o Kaspa-NG está conectado a um nó público. Uma vez que o nó esteja sincronizado, poderá mudar para o modo 'Daemon Integrado'.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "A frase de recuperação de pagamento e mnemónica opcional, conhecida como frase de segurança BIP39, se fornecida, será necessária para enviar pagamentos. Esta frase também será necessária ao recuperar a sua carteira, além da sua mnemónica. Se perder ou esquecer esta frase, não poderá usar a mnemónica para recuperar a sua carteira!", + "Theme Color": "Cor do Tema", + "Theme Color:": "Cor do Tema:", + "Theme Style": "Estilo do Tema", + "Theme Style:": "Estilo do Tema:", + "This option will transfer any discovered funds to the first change address of this account.": "Esta opção irá transferir quaisquer fundos descobertos para o primeiro endereço de troco desta conta.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Esta carteira nunca lhe pedirá esta frase mnemónica a menos que inicie manualmente uma recuperação da chave privada.", + "Threshold": "Limite", + "Time Offset:": "Desvio de tempo:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Hashes do Tip", + "Too many words in the": "Palavras a mais no", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Acompanhe em segundo plano", + "Transactions": "Transacções", + "Transactions:": "Transacções:", + "Transactions: {number}": "Transações: {number}", + "Transfer funds during scan": "Transferir fundos durante a digitalização", + "Type": "Tipo", + "URI copied to clipboard": "URI copiado para a área de transferência", + "UTXO Manager": "Gestor de UTXO", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Não é possível alterar as configurações do nódulo até que o problema seja resolvido", + "Unable to store settings": "Unable to store settings", + "Unlock": "Desbloquear", + "Unlock Wallet": "Desbloquear Carteira", + "Unlocking": "A Desbloquear ", + "Update Available to version": "Atualização disponível para a versão", + "Updating...": "Atualizando", + "Uptime:": "Tempo de Atividade:", + "Use 50%-75% of available system memory": "Usar 50 %-75% da memória de sistema disponível.", + "Use all available system memory": "Usar toda a memória do sistema disponível", + "User Agent": "Agente do Utilizador", + "User Interface": "Interface do Usuário", + "Very dangerous (may be cracked within few seconds)": "Muito perigoso (pode ser quebrado em poucos segundos)", + "Very strong": "Muito forte", + "Very weak": "Muito fraca", + "Virt Parents": "Parentes Virt", + "Virtual DAA Score": "Pontuação Virtual DAA", + "Virtual Memory": "Memória Virtual", + "Virtual Parent Hashes": "Hashes de Parente Virtual", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK para JavaScript e TypeScript", + "Wallet": "Carteira", + "Wallet Created": "Carteira Criada", + "Wallet Encryption Password": "Senha de Criptografia da Carteira", + "Wallet File Secret": "Segredo do Ficheiro da Carteira", + "Wallet Name": "Nome da Carteira", + "Wallet Secret": "Segredo da Carteira", + "Wallet creation error:": "Erro ao criar a carteira:", + "Wallet decrypting error:": "Erro ao descriptografar a carteira:", + "Wallet password is used to encrypt your wallet data.": "A senha da carteira é usada para encriptar os dados da sua carteira.", + "Wallet with this name already exists": "Já existe uma carteira com este nome", + "Wallet:": "Carteira:", + "We greatly appreciate your help in backing our efforts.": "Agradecemos imensamente a sua ajuda em apoiar os nossos esforços.", + "Weak": "Fraca", + "Welcome to Kaspa NG": "Bem vindo a Kaspa NG", + "Xpub Keys": "Chaves Xpub", + "You are currently not connected to the Kaspa node.": "Você não está atualmente conectado ao nódulo Kaspa.", + "You can configure remote connection in Settings": "Pode configurar a conexão remota nas definições", + "You can create multiple wallets, but only one wallet can be open at a time.": "Você pode criar várias carteiras, mas apenas uma carteira pode ser aberta por vez.", + "You must be connected to a node...": "Você precisa estar conectado a um nódulo...", + "Your default wallet private key mnemonic is:": "Sua frase mnemônica da chave privada da carteira padrão é:", + "Your mnemonic is protected with a bip39 passphrase": "Seu mnemônico está protegido com uma frase secreta BIP39", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "A sua frase mnemónica permite-lhe recriar a sua chave privada. A pessoa que tem acesso a esta mnemónica terá controlo total sobre o Kaspa armazenado nela. Mantenha a sua mnemónica em segurança. Escreva-a e guarde-a num local seguro, de preferência num local resistente ao fogo. Não guarde a sua mnemónica neste computador ou num dispositivo móvel. Esta carteira nunca lhe pedirá esta frase mnemónica a menos que inicie manualmente uma recuperação da chave privada.", + "Your mnemonic phrase is invalid": "Sua frase mnemônica é inválida", + "Your private key mnemonic is:": "Sua frase mnemônica da chave privada é:", + "Your wallet has been created and is ready to use.": "Sua carteira foi criada e está pronta para uso.", + "Zoom": "Ampliar ", + "bye!": "tchau!", + "gRPC Network Interface & Port": "Interface & Porta de Rede gRPC", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "de", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "par", + "peers": "pares", + "using KDX or kaspanet.io web wallet": "usando a carteira web KDX ou kaspanet.io", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "Definições de Ligação wRPC", + "wRPC Encoding:": "Codificação wRPC:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": " URL wRPC:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Enviar", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transferir", + "{qrCodeIcon} Request": "{qrCodeIcon} Pedido", + "~2 hours": "~2 horas", + "~30 minutes": "~30 minutos" + }, + "pt_BR": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "rede de teste 1 BPS", + "10 BPS test network": "rede de teste 10 BPS", + "12 word mnemonic": "12 palavras mnemônicas", + "24 word mnemonic": "24 palavras mnemônicas", + "24h Change": "Alteração 24h ", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "Um binário em outro local gerou um processo filho (experimental, apenas para fins de desenvolvimento).", + "A random node will be selected on startup": "Um nó aleatório será selecionado na inicialização", + "A wallet is stored in a file on your computer.": "Uma carteira é armazenada em um arquivo em seu computador.", + "Account Index": "Índice da Conta", + "Account Name": "Nome da Conta", + "Account:": "Conta:", + "Activate custom daemon arguments": "Ativar argumentos personalizados do daemon", + "Active p2p Peers": "Ativar Pares p2p", + "Address derivation scan": "Varredura de derivação de endereço", + "Address:": "Endereço:", + "Advanced": "Avançado", + "Advanced Options": "Advanced Options", + "All": "Todos", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Habilitar argumentos customizados para Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Permite que faça capturas de tela dentro da aplicação", + "Apply": "Aplicar", + "Balance: N/A": "Saldo: N/A", + "Bandwidth": "Largura de Banda", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Devido ao seu foco em segurança e desempenho, este software é inteiramente desenvolvido em Rust, e exige significativamente mais tempo e esforço em comparação a outros softwares modernos tradicionais baseados na web.", + "Bezier Curves": "Curva de Bézier", + "Block DAG": "Bloco DAG", + "Block Scale": "Escala do Bloco", + "Blocks": "Blocos", + "Bodies": "Corpos", + "Borsh Active Connections": "Conexões Activas Borsh", + "Borsh Connection Attempts": "Tentativas de conexão Borsh", + "Borsh Handshake Failures": "Falhas no Handshake Borsh", + "Build": "Versão", + "CONNECTED": "CONECTADO", + "CPU": "CPU", + "Cache Memory Size": "Tamanho de Memória Cache", + "Cache Memory Size:": "Tamanho da Memória Cache:", + "Cancel": "Cancelar", + "Cannot delete data folder while the node is running": "Não é possível excluir a pasta de dados enquanto o nó está em execução", + "Capture a screenshot": "Capturar a tela", + "Center VSPC": "Centro VSPC", + "Chain Blocks": "Cadeia de Blocos", + "Change Address": "Alterar Endereço", + "Check for Software Updates on GitHub": "Verificar Atualizações de Software no GitHub", + "Check for Updates": "Verificar Atualizações", + "Clear": "Limpar", + "Click to try another server...": "Clique para tentar outro servidor...", + "Client RPC": "Cliente RPC", + "Close": "Fechar", + "Close the window": "Fechar a janela", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Confirmar senha da carteira", + "Connect to a local node (localhost)": "Conectar a um nó local (localhost)", + "Connecting to": "Conectando à", + "Connection": "Conexão", + "Connections": "Conexões", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Conecta a um nó remoto de Rusty Kaspa via wRPC", + "Conservative": "Conservador", + "Continue": "Continuar", + "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.": "As contribuições direcionadas a este projeto alimentam diretamente o software Kaspa NG e seu ecossistema.", + "Copied to clipboard": "Copiado para a área de transferência", + "Copy": "Copiar", + "Copy logs to clipboard": "Copiar registros de log para a área de transferência", + "Create New Account": "Criar Nova Conta", + "Create New Wallet": "Criar Nova Carteira", + "Create Wallet": "Create Wallet", + "Create new wallet": "Criar nova carteira", + "Creating Account": "Criando Conta", + "Creating Wallet": "Criando Carteira", + "Custom": "Personalizado", + "Custom Public Node": "Nó Público Personalizado", + "Custom arguments:": "Argumentos Personalizados", + "Custom data storage folder": "Pasta de armazenamento de dados personalizada", + "DAA": "DAA", + "DAA Offset": "Desvio de DAA", + "DAA Range": "Alcance DAA", + "DB Blocks": "DB Blocos", + "DB Headers": "DB Cabeçalhos", + "Dangerous": "Dangerous", + "Data Storage": "Armazenamento de Dados", + "Database Blocks": "Blocos do Banco de Dados", + "Database Headers": "Cabeçalhos do Banco de Dados", + "Decrypting wallet, please wait...": "Descriptografando carteira, por favor aguarde...", + "Default": "Padrão", + "Default Account Name": "Nome de Conta Padrão", + "Delete Data Folder": "Deletar Pasta de Dados", + "Dependencies": "Dependências", + "Derivation Indexes": "Índices de Derivação", + "Details": "Detalhes", + "Developer Mode": "Modo de Desenvolvedor", + "Developer Resources": "Recursos para Desenvolvedores", + "Developer mode enables advanced and experimental features": "O modo de desenvolvedor permite recursos avançados e experimentais", + "Difficulty": "Dificuldade ", + "Dimensions": "Dimensões", + "Disable password safety rules": "Desabilitar regras de segurança de senha", + "Disabled": "Desabilitado", + "Disables node connectivity (Offline Mode).": "Desativa a conectividade do nó (Modo Offline).", + "Discord": "Discord", + "Donations": "Doações", + "Double click on the graph to re-center...": "Clique duas vezes no gráfico para recentralizar...", + "ECDSA": "ECDSA", + "Enable Market Monitor": "Habilitar Monitor de Mercado", + "Enable UPnP": "Habilitar UPnP", + "Enable custom daemon arguments": "Habilitar argumentos do daemon personalizados", + "Enable experimental features": "Habilitar recursos experimentais", + "Enable gRPC": "Habilitar gRPC", + "Enable optional BIP39 passphrase": "Habilitar senha BIP39 opcional", + "Enable screen capture": "Habilitar captura de tela", + "Enables features currently in development": "Habilita recursos atualmente em desenvolvimento", + "Enter": "Inserir", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Inserir nome de conta (opcional)", + "Enter first account name": "Insira o nome da primeira conta", + "Enter mnemonic": "Enter mnemonic", + "Enter phishing hint": "Insira a dica de phishing", + "Enter the amount": "Insira a quantidade", + "Enter the password for your wallet": "Digite a senha para a sua carteira", + "Enter the password to unlock your wallet": "Digite a senha para desbloquear a sua carteira", + "Enter wallet name": "Digite o nome da carteira", + "Enter wallet password": "Digite a senha da carteira", + "Enter your wallet secret": "Digite o segredo da sua carteira", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Explorador", + "Export Wallet Data": "Exportar dados da carteira", + "Faucet": "Faucet", + "File Handles": "Manipuladores de Arquivo", + "Filename:": "Nome do arquivo:", + "Final Amount:": "Quantidade final:", + "Full Screen": "Tela cheia", + "GitHub Release": "Versão no GitHub", + "Go to Settings": "Ir para Configurações", + "Good": "Good", + "Handles": "Manipulador", + "Headers": "Cabeçalhos", + "I have a 12 word mnemonic legacy account": "I have a 12 word mnemonic legacy account", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "Se não especificado, a conta será representada pelo ID numérico.", + "If you are running locally, use: ": "Se está executando localmente, use:", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Importar existente", + "Importing Wallet": "Importing Wallet", + "Inbound": "Entrada", + "Include QoS Priority Fees": "Incluir taxas de prioridade de QoS", + "Integrated Daemon": "Daemon Integrado", + "Invalid daemon arguments": "Argumentos do daemon inválidos", + "Invalid network type - expected: testnet-10 connected to: testnet-11": "Tipo de rede inválido - esperado: testnet-10 conectado a: testnet-11", + "Invalid wRPC URL": "URL wRPC Inválida", + "Json Active Connections": "Conexões ativas JSON", + "Json Connection Attempts": "Tentativas de conexão JSON", + "Json Handshake Failures": "Falhas no Handshake JSON", + "Kaspa Discord": "Discord Kaspa", + "Kaspa Integration Guide": "Guia de integração Kaspa", + "Kaspa NG": "Kaspa NG", + "Kaspa NG Online": "Kaspa NG Online", + "Kaspa NG Web App": "Kaspa NG Web App", + "Kaspa NG on GitHub": "Kaspa NG no GitHub", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Rede Kaspa", + "Kaspa Node": "Nó Kaspa", + "Kaspa p2p Network & Node Connection": "Rede Kaspa p2p e conexão de nó", + "Kaspa p2p Node": "Nó Kaspa p2p", + "Kaspa p2p Node & Connection": "Nó p2p Kaspa e Conexão", + "Key Perf.": "Chave Perf.", + "Language:": "Idioma:", + "Large (1 BPS)": "Grande (1 BPS)", + "Levels": "Níveis", + "License Information": "Informações sobre licença", + "Local": "Local", + "Local p2p Node Configuration": "Configuração de Nó p2p Local", + "Logs": "Histórico", + "MT": "MT", + "Main Kaspa network": "Rede principal Kaspa", + "Mainnet": "Rede principal", + "Mainnet (Main Kaspa network)": "Mainnet (rede Kaspa principal)", + "Managed by the Rusty Kaspa daemon": "Gerenciado pelo daemon Rusty Kaspa", + "Market": "Mercado", + "Market Cap": "Valor de mercado", + "Market Monitor": "Monitor de Mercado", + "Mass Processed": "Processado em massa", + "Maximize window": "Maximizar a janela", + "Medium Narrow": "Médio Estreito", + "Medium Wide": "Médio Largo", + "Memory": "Memória ", + "Mempool": "Mempool", + "Mempool Size": "Tamanho Mempool", + "Metrics": "Métricas", + "Metrics are not currently available": "As métricas não estão disponíveis no momento", + "Minimize the window": "Minimizar a janela", + "Mnemonic Import": "Mnemonic Import", + "NPM Modules for NodeJS": "Módulos NPM para NodeJS", + "Network": "Rede", + "Network Difficulty": "Dificuldade da Rede", + "Network Fees:": "Taxas da rede:", + "Network Interface": "Interface de rede", + "Network Peers": "Pares da rede", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "Sem pares", + "No public node selected - please select a public node": "Nenhum nó público selecionado - por favor, selecione um nó público", + "No transactions": "Nenhuma transação", + "No wallets found, please create a new wallet": "Nenhuma carteira encontrada, crie uma nova carteira", + "Node": "Nó", + "Node Status": "Estado do Nó", + "Noise": "Ruído", + "None": "Nenhum", + "Not Connected": "Não Conectado ", + "Not connected": "Não conectado", + "Notifications": "Notificações ", + "Open Data Folder": "Abrir a pasta de dados", + "Opening wallet:": "Abrindo a carteira", + "Optional": "Opcional", + "Other operations": "Outras operações ", + "Outbound": "Saída", + "Overview": "Visão geral", + "Parents": "Pais", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Tempo Mediano Passado", + "Payment & Recovery Password": "Senha de pagamento e recuperação", + "Payment Request": "Pedido de Pagamento", + "Peers": "Pares", + "Performance": "Desempenho", + "Phishing Hint": "Dica de phishing", + "Ping:": "Ping:", + "Please Confirm Deletion": "Por Favor, Confirme a exclusão", + "Please configure your Kaspa NG settings": "Por favor, defina as configurações do Kaspa NG", + "Please connect to Kaspa p2p node": "Por favor, conecte-se ao nó p2p Kaspa", + "Please create a stronger password": "Por favor crie uma senha mais forte", + "Please enter": "Por favor, insira", + "Please enter KAS amount to send": "Por favor, insira a quantidade de KAS para enviar", + "Please enter additional": "Please enter additional", + "Please enter an amount": "Por favor insira um valor", + "Please enter mnemonic comprised of 12 words": "Please enter mnemonic comprised of 12 words", + "Please enter mnemonic comprised of 24 words": "Please enter mnemonic comprised of 24 words", + "Please enter the account name": "Por favor, insira o nome da conta", + "Please enter the wallet secret": "Por favor, insira o segredo da carteira", + "Please note that this is an alpha release. Until this message is removed, please avoid using the wallet with mainnet funds.": "Observe que esta é uma versão alfa. Até que esta mensagem seja removida, evite usar a carteira com fundos da rede principal.", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Observe que copiar para a área de transferência apresenta o risco de expor a sua mnemónica a malware.", + "Please select an account type": "Por favor, selecione o tipo da conta", + "Please select the private key to export": "Por favor, selecione a chave privada para exportar", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Defina o nó como 'Desativado' para excluir a pasta de dados", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Por favor, especifique o nome da conta padrão. A carteira será criada com uma conta padrão. Depois de criada, você poderá criar contas adicionais conforme necessário.", + "Please specify the name of the new wallet": "Por favor especifique o nome da nova carteira", + "Please specify the private key type for the new wallet": "Por favor, especifique o tipo de chave privada para a nova carteira", + "Please wait for the node to sync or connect to a remote node.": "Por favor, aguarde a sincronização do nó ou conecte-se a um nó remoto.", + "Please wait for the node to sync...": "Por favor, aguarde a sincronização do nó...", + "Please wait...": "Por favor, aguarde...", + "Presets": "Predefinições", + "Price": "Preço", + "Private Key Mnemonic": "Frase Mnemónica da Chave Privada", + "Processed Bodies": "Corpos Processados", + "Processed Dependencies": "Dependencias Processadas", + "Processed Headers": "Cabeçalhos Processados", + "Processed Mass Counts": "Contagem de Processamentos em Massa", + "Processed Transactions": "Transações Processadas", + "Protocol:": "Protocolo:", + "Public Node": "Nó Público", + "Public Nodes": "Nós Públicos", + "Public Server": "Servidor Público", + "Public p2p Nodes for": "Nós públicos p2p para", + "Random Public Node": "Nó Público Aleatório", + "Range:": "Intervalo:", + "Receive Address": "Endereço de Recebimento", + "Recommended arguments for the remote node: ": "Argumentos recomendados para o nó remoto:", + "Redistributables": "Redistribuíveis", + "Remote": "Remoto", + "Remote Connection:": "Conexão Remota:", + "Remote p2p Node Configuration": "Configuração Remota de Nó p2p", + "Removes security restrictions, allows for single-letter passwords": "Remove restrições de segurança, permite senhas de uma única letra", + "Reset Settings": "Redefinir Configurações", + "Reset VSPC": "Redefinir VSPC", + "Resident Memory": "Memória Residente", + "Resources": "Recursos", + "Resulting daemon arguments:": "Argumentos resultantes do daemon:", + "Rust Wallet SDK": "SDK Carteira Rust", + "Rusty Kaspa on GitHub": "Rusty Kaspa no GitHub", + "Secret is too weak": "O segredo é muito fraco", + "Secret score:": "Pontuação do Segredo:", + "Select Account": "Selecione a conta", + "Select Available Server": "Selecione um Servidor Disponível", + "Select Private Key Type": "Selecione o Tipo de Chave Privada", + "Select Public Node": "Selecione o Nó Público", + "Select Wallet": "Selecione a Carteira", + "Select a wallet to unlock": "Selecione uma carteira para desbloquear", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Enviar", + "Services": "Serviços", + "Settings": "Configurações", + "Show DAA": "Exibir DDA", + "Show Grid": "Exibir Grade", + "Show VSPC": "Exibir VSPC", + "Show balances in alternate currencies for testnet coins": "Mostrar saldos em moedas alternativas para moedas na rede de testes", + "Show passphrase": "Show passphrase", + "Show password": "Mostrar senha", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Exibe saldos em moedas alternativas (BTC, USD) ao usar moedas de teste como se estivesse na mainnet", + "Skip": "Pular", + "Small (10 BPS)": "Pequeno (10BPS)", + "Spread": "Spread", + "Stage": "Etapa", + "Starting...": "Iniciando...", + "Statistics": "Estatísticas", + "Stor Read": "Leitura de armazenamento", + "Stor Write": "Escrita de armazenamento", + "Storage": "Armazenamento", + "Storage Read": "Leitura de armazenamento", + "Storage Read/s": "Armazenamento Leitura/s", + "Storage Write": "Escrita de armazenamento", + "Storage Write/s": "Armazenamento Escrita/s", + "Strong": "Strong", + "Submitted Blocks": "Blocos Submetidos", + "Supporting Kaspa NG development": "Apoiando o desenvolvimento do Kaspa NG", + "Syncing Cryptographic Proof...": "Sincronizando Prova Criptográfica...", + "Syncing DAG Blocks...": "Sincronizando Blocos DAG...", + "Syncing Headers...": "Sincronizando Cabeçalhos...", + "Syncing UTXO entries...": "Sincronizando entradas UTXO...", + "Syncing...": "Sincronizando...", + "System": "Sistema", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 10 (1 BPS)": "Testnet 10 (1 BPS)", + "Testnet 11": "Testnet 11", + "Testnet 11 (10 BPS)": "Testnet 11 (10 BPS)", + "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.": "A Testnet 11 ainda não está ativada para testes públicos. No entanto, você pode configurar o nó para se conectar à testnet privada de desenvolvimento no painel de definições.", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "O software Kaspa NG representa um esforço contínuo focado na construção de uma plataforma de software de última geração dedicada à rede de criptomoedas Kaspa BlockDAG. Ideológico em sua essência, este software prioriza segurança, privacidade, desempenho e descentralização.", + "The balance may be out of date during node sync": "O saldo pode estar desatualizado durante a sincronização do nó", + "The following will guide you through the process of creating or importing a wallet.": "O seguinte irá guiá-lo através do processo de criação ou importação de uma carteira.", + "The node is currently syncing with the Kaspa p2p network.": "O nó está atualmente sincronizando com a rede p2p da Kaspa.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "O nó está atualmente sincronizando com a rede p2p da Kaspa. Os saldos das contas podem estar desatualizados.", + "The node is spawned as a child daemon process (recommended).": "O nó é iniciado como um processo daemon filho (recomendado).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "O nó é executado como parte do processo de aplicativo Kaspa-NG. Isso reduz a sobrecarga de comunicação (experimental).", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Cor do Tema", + "Theme Color:": "Cor do Tema:", + "Theme Style": "Estilo do Tema", + "Theme Style:": "Estilo do Tema:", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Esta carteira nunca solicitará essa frase mnemônica a menos que você inicie manualmente uma recuperação da chave privada.", + "Threshold": "Limite", + "Time Offset:": "Desvio de tempo:", + "Tip Hashes": "Tip Hashes", + "Tools ⏷": "Ferramentas ⏷", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Track in the background": "Acompanhe em segundo plano", + "Transactions": "Transações", + "Transactions:": "Transações:", + "Type": "Tipo", + "UTXO Manager": "Gerenciador de UTXO", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "Unable to change node settings until the problem is resolved": "Não foi possível alterar as configurações do nó até que o problema seja resolvido", + "Unlock": "Desbloquear", + "Unlock Wallet": "Desbloquear Carteira", + "Unlocking": "Desbloqueando", + "Update Available to version": "Atualização disponível para a versão", + "Updating...": "Atualizando...", + "Uptime:": "Tempo de Atividade:", + "Use 50%-75% of available system memory": "Usar 50 %-75% da memória de sistema disponível.", + "Use all available system memory": "Usar toda a memória do sistema disponível", + "User Agent": "Agente do Usuário", + "User Interface": "Interface do Usuário", + "Very dangerous (may be cracked within few seconds)": "Muito perigoso (pode ser quebrado em poucos segundos)", + "Very weak": "Very weak", + "Virt Parents": "Pais Virtuais", + "Virtual DAA Score": "Pontuação Virtual DAA", + "Virtual Memory": "Memória Virtual", + "Virtual Parent Hashes": "Hashes de Pais Virtuais", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK para JavaScript e TypeScript", + "Wallet": "Carteira", + "Wallet Created": "Carteira Criada", + "Wallet Encryption Password": "Senha de Criptografia da Carteira", + "Wallet Name": "Nome da Carteira", + "Wallet Secret": "Segredo da Carteira", + "Wallet password is used to encrypt your wallet data.": "A senha da carteira é usada para encriptar os dados da sua carteira.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Carteira:", + "We greatly appreciate your help in backing our efforts.": "Agradecemos imensamente a sua ajuda em apoiar os nossos esforços.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Bem vindo a Kaspa NG", + "Xpub Keys": "Chaves Xpub", + "You are currently not connected to the Kaspa node.": "Atualmente você não está conectado ao nó Kaspa.", + "You can configure remote connection in Settings": "Você pode configurar a conexão remota nas configurações", + "You can create multiple wallets, but only one wallet can be open at a time.": "Você pode criar várias carteiras, mas apenas uma carteira pode ser aberta por vez.", + "You must be connected to a node...": "Você precisa estar conectado a um nó...", + "Your default wallet private key mnemonic is:": "Sua frase mnemônica da chave privada da carteira padrão é:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Sua frase mnemônica permite que você recrie sua chave privada. A pessoa que tem acesso a essa mnemônica terá controle total do Kaspa armazenado nela. Mantenha sua mnemônica segura. Escreva-a e armazene-a em um local seguro, de preferência em um local resistente ao fogo. Não armazene sua mnemônica neste computador ou em um dispositivo móvel. Esta carteira nunca solicitará essa frase mnemônica a menos que você inicie manualmente uma recuperação da chave privada.", + "Your private key mnemonic is:": "Sua frase mnemônica da chave privada é:", + "Your wallet has been created and is ready to use.": "Sua carteira foi criada e está pronta para uso.", + "Zoom": "Ampliar ", + "amount to send": "quantidade para enviar", + "bye!": "tchau!", + "gRPC Network Interface & Port": "Interface & Porta de Rede gRPC", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "de", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "par", + "peers": "pares", + "secp256k1 keypair": "secp256k1 keypair", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "Configurações da conexão wRPC", + "wRPC Encoding:": "Codificação wRPC:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "words": "words" + }, + "ro": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' este un cuvânt secret sau o frază care este afișată atunci când deschizi portofelul tău. Dacă nu vezi hint-ul când îți deschizi portofelul, este posibil să accesezi un portofel fals creat pentru a-ți fura fondurile. Dacă se întâmplă acest lucru, încetează imediat să folosești portofelul, verifică numele domeniului URL din browser și caută ajutor pe rețelele sociale (Kaspa Discord sau Telegram).", + "1 BPS test network": "1 BPS rețea de test", + "10 BPS test network": "Rețea de testare 10 BPS", + "12 word mnemonic": "Mnemonic de 12 cuvinte", + "24 word mnemonic": "Mnemonic de 24 de cuvinte", + "24h Change": "Schimbare în ultimele 24 de ore", + "3 hours or more": "3 sau mai multe ore", + "< {minutes} minute": "< {minute} minute", + "< {minutes} minutes": "< {minute} minute", + "< {seconds} second": "< {secunde} secunde", + "< {seconds} seconds": "< {secunde} secunde", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "Un binar dintr-o altă locație este generat de un proces copil (experimental, numai în scopuri de dezvoltare).", + "A random node will be selected on startup": "La pornire, va fi selectat un nod aleatoriu", + "A wallet is stored in a file on your computer.": "Un portofel este stocat într-un fișier pe computerul tău.", + "Account Index": "Index Cont", + "Account Name": "Nume Cont", + "Account not found": "Account not found", + "Account:": "Cont:", + "Activate custom daemon arguments": "Activați argumentele personalizate ale daemonului", + "Active p2p Peers": "Perechi p2p active", + "Add Account": "Adauga Cont", + "Address copied to clipboard": "Adresa a fost copiată în clipboard", + "Address derivation scan": "Scanează derivarea adreselor", + "Address:": "Adresă:", + "Advanced": "Avansat", + "All": "Tot", + "Allow clipboard copy": "Permite copierea în clipboard", + "Allow custom arguments for the Rusty Kaspa daemon": "Permiteți argumente personalizate pentru daemonul Rusty Kaspa", + "Allows you to take screenshots from within the application": "Vă permite să realizați capturi de ecran din interiorul aplicației", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Aplicația trebuie repornită pentru ca această setare să intre în vigoare.", + "Apply": "Aplică", + "Architecture {arch}": "Arhitectură {arch}", + "Are you sure you want to reset all settings?": "Ești sigur ca vrei să resetezi toate setările?", + "BALANCE": "BALANCE", + "Balance: N/A": "Balanță: N/A", + "Bandwidth": "Lățime de bandă", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Datorită accentului său pe securitate și performanță, acest software este dezvoltat în întregime în Rust, cerând semnificativ mai mult timp și efort în comparație cu alte software-uri moderne tradiționale bazate pe aplicații web.", + "Bezier Curves": "Curbe Bézier", + "Block DAG": "Block DAG", + "Block Scale": "Scală de Blocuri", + "Blocks": "Blocks", + "Bodies": "Bodies", + "Borsh Active Connections": "Conexiuni Active Borsh", + "Borsh Connection Attempts": "Încercări de Conexiune Borsh", + "Borsh Handshake Failures": "Eșecuri de Protocol Borsh Handshake", + "Build": "Construiește", + "CONNECTED": "CONECTAT", + "CPU": "Procesor", + "Cache Memory Size": "Mărimea Memoriei Cache", + "Cancel": "Anulează", + "Cannot delete data folder while the node is running": "Folderul de date nu poate fi șters în timp ce node-ul este pornit", + "Capture a screenshot": "Capturați o captură de ecran", + "Capture saved to {path}": "Captura de ecran a fost salvată in {path}", + "Center VSPC": "Center VSPC", + "Chain Blocks": "Blocuri din lanț", + "Change Address": "Schimbă adresa", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Verificați actualizările de software pe GitHub", + "Check for Updates": "Verifică pentru actualizări", + "Clear": "Șterge", + "Click to try another server...": "Apasă pentru a încerca adăugarea unui alt server...", + "Client RPC": "Client RPC", + "Close": "Închide", + "Close the window": "Închide fereastra", + "Confirm BIP39 passphrase": "Confirmă fraza de acces BIP39", + "Confirm wallet password": "Confirmă parola portofelului", + "Connecting to": "Conectare la", + "Connection": "Conexiune", + "Connections": "Conexiuni", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Se conectează la un Nod Rusty Kaspa la Distanță prin wRPC.", + "Conservative": "Conservator", + "Continue": "Continuă", + "Copied to clipboard": "Copiat în clipboard", + "Copy": "Copiază", + "Copy logs to clipboard": "Copiați jurnalele în clipboard", + "Create New Wallet": "Creați un Portofel Nou", + "Create Wallet": "Creează Portofel", + "Create new wallet": "Creează un portofel nou", + "Creating Account": "Contul se creează", + "Creating Wallet": "Portofelul se creează", + "Custom": "Personalizat", + "Custom Public Node": "Node Public Personalizat", + "Custom arguments:": "Argumente personalizate:", + "Custom data storage folder": "Folder personalizat pentru stocarea datelor", + "DAA": "DAA", + "DAA Offset": "DAA offset", + "DAA Range": "Interval DAA", + "DB Blocks": "Blocuri DB", + "DB Headers": "Antete DB", + "Dangerous": "Periculos", + "Data Storage": "Folder stocare", + "Database Blocks": "Bolcuri Baza de Date", + "Database Headers": "Antete Baza de Date", + "Decrypt": "Decriptează", + "Decrypting Wallet File": "Fișierul Portofelului se decriptează", + "Decrypting wallet, please wait...": "Decriptarea portofelului, vă rugăm să așteptați...", + "Default": "Implicit", + "Default Account Name": "Numele Contului Implicit", + "Delete Data Folder": "Șterge Folderul de Date", + "Dependencies": "Dependențe", + "Derivation Indexes": "Indici de Derivare", + "Details": "Detalii", + "Developer Mode": "Mod Dezvoltare", + "Developer Resources": "Resurse pentru Dezvoltatori", + "Developer mode enables advanced and experimental features": "Modul dezvoltator activează funcționalități avansate și experimentale", + "Difficulty": "Dificultate", + "Dimensions": "Dimensiuni", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Dezactivează regulile de siguranță ale parolei", + "Disabled": "Dezactivat", + "Disables node connectivity (Offline Mode).": "Dezactivează conectivitatea cu nodurile (Mod Offline).", + "Discord": "Discord", + "Donations": "Donații", + "Double click on the graph to re-center...": "Dați dublu clic pe grafic pentru a re-centra...", + "ECDSA": "ECDSA", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Activați Monitorul de Piață", + "Enable UPnP": "Activează UPnP", + "Enable custom daemon arguments": "Activați argumentele demon personalizate", + "Enable experimental features": "Activare funcționalități experimentale", + "Enable gRPC": "Activează gRPC", + "Enable optional BIP39 passphrase": "Activare frază secretă BIP39 opțională", + "Enable screen capture": "Activați captura de ecran", + "Enables features currently in development": "Activează funcționalități aflate în dezvoltare în prezent", + "Enter": "Enter", + "Enter BIP39 passphrase": "Introdu fraza de acces BIP39", + "Enter account name (optional)": "Introdu numele contului (opțional)", + "Enter destination address": "Introduceți adresa de destinație", + "Enter first account name": "Introduceți primul nume de cont", + "Enter mnemonic": "Introdu mnemonicul", + "Enter password to decrypt this wallet file": "Introduceți parola pentru a decripta acest fișier de portofel", + "Enter phishing hint": "Introduceți indiciul pentru prevenirea phishing-ului", + "Enter priority fees": "Introduceți taxele prioritare", + "Enter the amount": "Intodu cantitatea", + "Enter the password for your wallet": "Introdu parola pentru portofelul tău", + "Enter the password to unlock your wallet": "Introduceți parola pentru a debloca portofelul", + "Enter wallet name": "Introdu numele portofelului", + "Enter wallet password": "Introduceți parola portofelului.", + "Enter your wallet secret": "Introduceți secretul portofelului dumneavoastră", + "Enter {suffix} amount to send": "Introduceți suma {suffix} de trimis", + "Error": "Eroare", + "Error importing a wallet": "Eroare la importarea unui portofel", + "Error processing mnemonic: {err}": "Eroare la procesarea mnemonicului: {err}", + "Exit Full Screen": "Ieși din ecran complet", + "Explorer": "Explorer", + "Export Wallet Data": "Exporă Date Portofel", + "FIRST": "PRIMUL", + "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Doar taxe rețea", + "File Handles": "File Handles", + "File contents": "Conținutul fișierului", + "Filename:": "Nume fișier:", + "Final Amount:": "Suma Finală:", + "Final Amount: {amount}": "Sumă finală: {amount}", + "For decrypting uploaded file please enter wallet secret.": "Pentru decriptarea fișierului încărcat, vă rugăm să introduceți secretul portofelului.", + "Full Screen": "Ecran complet", + "Generate New Change Address": "Generează o nouă adresă de schimb", + "Generate New Receive Address": "Generează o Noua Adresă de Recepție", + "GitHub Release": "GitHub Release", + "Go to Settings": "Mergi la Setări", + "Good": "Bun", + "Handles": "Handles", + "Headers": "Antete", + "High": "Ridicat", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "Dacă nu este specificat, contul va fi reprezentat prin ID-ul numeric.", + "If you are running locally, use: ": "Dacă rulați local, utilizați:", + "Import Existing Private Key": "Importă Cheia Privată Existenta", + "Import existing": "Importați existent", + "Import existing file": "Importă fișierul existent", + "Importing Legacy Wallet": "Se importă Portofelul Legacy", + "Importing Wallet": "Portofelul se importa", + "Importing Wallet File": "Se importă Fișierul Portofelului", + "Inbound": "Intrare", + "Integrated Daemon": "Daemon integrat", + "Invalid amount:": "Sumă invalidă", + "Invalid daemon arguments": "Argumente daemon invalide", + "Invalid fee amount:": "Suma taxei este invalidă:", + "Invalid wRPC URL": "URL wRPC invalid", + "Json Active Connections": "Conexiuni Json Active", + "Json Connection Attempts": "Încercări de Conexiune JSON", + "Json Handshake Failures": "Eșecuri de Protocol JSON Handshake", + "Kaspa Discord": "Discord Kaspa", + "Kaspa Integration Guide": "Ghid de integrare Kaspa", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG pe GitHub", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Rețea Kaspa", + "Kaspa Node": "Node Kaspa", + "Kaspa p2p Network & Node Connection": "Rețeaua p2p Kaspa & Conexiune Node", + "Kaspa p2p Node": "Nod Kaspa p2p", + "Kaspa p2p Node & Connection": "Nod și Conexiune Kaspa p2p", + "Key Perf.": "Key Perf.", + "LAST": "ULTIMUL", + "Language:": "Limba:", + "Large (1 BPS)": "Mare (1 BPS)", + "Legacy 12 word mnemonic": "Mnemonic-ul Legacy de 12 cuvinte", + "Levels": "Nivele", + "License Information": "Informații despre licență", + "Local": "Local", + "Local p2p Node Configuration": "Configurarea Nodului p2p Local", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Loguri", + "Low": "Scăzut", + "Low-priority": "Pioritate-scăzută", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Rețeaua Kaspa principală", + "Mainnet": "Mainnet", + "Managed by the Rusty Kaspa daemon": "Gestionat de daemonul Rusty Kaspa", + "Market": "Piață", + "Market Cap": "Capitalizare", + "Market Monitor": "Monitor de Piață", + "Mass Processed": "Procesat în Masă", + "Mass:": "Greutate:", + "Mass: {number}g": "Greutate: {number}g", + "Maximize window": "Maximizează fereastra", + "Medium Narrow": "Mediu Îngust", + "Medium Wide": "Mediu Larg", + "Memory": "Memorie", + "Mempool": "Mempool", + "Mempool Size": "Dimensiune Mempool", + "Metrics": "Metrice", + "Metrics are not currently available": "Metricele nu sunt disponibile în prezent", + "Miner Fee": "Taxe Miner", + "Minimize the window": "Minimizează fereastra", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "URMĂTORUL", + "NO NAME": "FĂRĂ NUME", + "NPM Modules for NodeJS": "Module NPM pentru NodeJS", + "Network": "Rețea", + "Network Difficulty": "Dificultate Rețea", + "Network Fee Estimator": "Estimarea taxelor de rețea", + "Network Interface": "Interfață Rețea", + "Network Peers": "Parteneri de Rețea", + "Network Pressure: ~{number}%": "Presiunea rețelei: ~{number}%", + "Never share your mnemonic with anyone!": "Import Mnemonic", + "No peers": "Fara parteneri", + "No public node selected - please select a public node": "Nu a fost selectat niciun nod public - vă rugăm să selectați un nod public", + "No transactions": "Nicio tranzacție", + "No wallets found, please create a new wallet": "Niciun portofel nu a fost gasit, te rog sa creezi un nou portofel", + "Node": "Node", + "Node Status": "Nod Status", + "Noise": "Gălăgie", + "None": "Nici unul", + "Normal": "Normal", + "Not Connected": "Neconectat", + "Not connected": "Neconectat", + "Notifications": "Notificări", + "Open Data Folder": "Deschideți Folderul de Date", + "Opening wallet:": "Deschidere portofel:", + "Optional": "Opțional", + "Options": "Opțiuni", + "Other operations": "Alte oprațiuni", + "Outbound": "Ieșire", + "Overview": "Privire de ansamblu", + "PREV": "ANTERIOR", + "Parents": "Parinți", + "Passive Sync": "Sync Pasiv", + "Passphrase is too weak": "Fraza de acces este prea slabă", + "Passphrases do not match": "Frazele de acces nu se potrivesc", + "Passwords do not match": "Parolele nu se potrivesc", + "Past Median Time": "Timpul Median Trecut", + "Payment & Recovery Password": "Plată și Parolă de Recuperare", + "Payment Request": "Cerere de Plată", + "Payment request to account: {account}": "Solicitare de plată către contul: {account}", + "Peers": "Parteneri", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performanță", + "Phishing Hint": "Hint de prevenire a phishing-ului", + "Ping:": "Ping:", + "Please Confirm Deletion": "Confirmă ștergerea", + "Please configure your Kaspa NG settings": "Te rugăm să configurați setările Kaspa NG", + "Please connect to Kaspa p2p node": "Vă rugăm să vă conectați la nodul Kaspa p2p", + "Please create a stronger password": "Vă rugăm să creați o parolă mai puternică", + "Please enter a valid address: {err}": "Te rog să introduci o adresă validă: {err}", + "Please enter a valid amount of KAS": "Te rog să introduci o sumă validă de KAS", + "Please enter additional {amount} words": "Te rog să introduci {amount} cuvinte suplimentare", + "Please enter an amount": "Vă rugăm să introduceți o sumă", + "Please enter mnemonic comprised of {number} words": "Te rog să introduci un mnemonic format din {number} cuvinte", + "Please enter the account name": "Vă rugăm să introduceți numele contului", + "Please enter the wallet secret": "Te rog să introduci secretul portofelului", + "Please enter {suffix} amount to send": "Te rog să introduci suma {suffix} de trimis", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Vă rugăm să rețineți că copierea în clipboard prezintă riscul expunerii mnemonicului dvs. către malware-uri.", + "Please select 'Apply' and restart the application.": "Te rog selectează 'Aplică' și repornește aplicația.", + "Please select account to scan": "Te rog să selectezi contul de scanat", + "Please select an account type": "Te rog sa alegi un tip de cont", + "Please select export type": "Te rog să selectezi tipul de export", + "Please select the private key to export": "Vă rugăm să selectați cheia privată pe care doriți să o exportați", + "Please select the private key type you would like to import in the new wallet": "Te rog selectează tipul de cheie privată pe care dorești să o importi în noul portofel.", + "Please set node to 'Disabled' to delete the data folder": "Setați nodul la „Dezactivat” pentru a șterge folderul de date", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Vă rugăm să specificați numele contului implicit. Portofelul va fi creat cu un cont implicit. După creare, veți putea să creați conturi suplimentare după nevoie.", + "Please specify the name of the new wallet": "Te rog specifică numele pentru noul portofel", + "Please specify the private key type for the new wallet": "Vă rugăm să specificați tipul de cheie privată pentru noul portofel", + "Please support Kaspa NG development": "Te rog să susții dezvoltarea Kaspa NG", + "Please wait for the node to sync or connect to a remote node.": "Vă rugăm să așteptați ca nodul să se sincronizeze sau să vă conectați la un nod la distanță.", + "Please wait for the node to sync...": "Vă rugăm să așteptați până când nodul se sincronizează...", + "Please wait...": "Te rog să aștepți...", + "Presets": "Preconfigurări", + "Price": "Preț", + "Priority": "Prioritate", + "Priority Fee Estimator": "Estimarea taxei de prioritate", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Prioritate: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Mnemonicul cheii private", + "Private key mnemonic stored in this wallet": "Mnemonic-ul cheii private stocat în acest portofel", + "Processed Bodies": "Date procesate", + "Processed Dependencies": "Dependențe procesate", + "Processed Headers": "Antete procesate", + "Processed Mass Counts": "Număr de mase procesate", + "Processed Transactions": "Tranzacții procesate", + "Processing...": "Se procesează...", + "Protocol:": "Protocol:", + "Public Node": "Nod Public", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Ieșire", + "Random Public Node": "Nod Public Aleator", + "Range:": "Interval:", + "Receive Address": "Adresa de primire", + "Recommended arguments for the remote node: ": "Argumente recomandate pentru nodul la distanță:", + "Redistributables": "Redistribuibile", + "Remote": "La Distanță", + "Remote Connection:": "Conexiune la distanță", + "Remote p2p Node Configuration": "Configurarea Nodului p2p la Distanță", + "Removes security restrictions, allows for single-letter passwords": "Elimină restricțiile de securitate, permite parole cu o singură literă", + "Reset Settings": "Resetează Setări", + "Reset VSPC": "Resetează VSPC", + "Resident Memory": "Memorie rezidentă", + "Resources": "Resurse", + "Restart": "Repornește", + "Restore window": "Restaurare fereastră", + "Resulting daemon arguments:": "Argumentele rezultate ale demonului (programului sau serviciului):", + "Rust Wallet SDK": "SDK Portofel Rust", + "Rusty Kaspa on GitHub": "Rusty Kaspa pe GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanare completă...", + "Secret is too weak": "Secretul este prea slab", + "Secret score:": "Scor secret:", + "Select Account": "Selectează Contul", + "Select Private Key Type": "Selectați Tipul de Cheie Privată", + "Select Public Node": "Alege un Node Public", + "Select Wallet": "Selectează Portofel", + "Select a wallet to unlock": "Selectați un portofel pentru deblocare", + "Select file...": "Selectează fișierul...", + "Select this option if your wallet was created": "Selectează această opțiune dacă portofelul tău a fost creat", + "Send": "Trimite", + "Sending funds": "Fondurile se trimit", + "Sending funds without priority fees will result in long transaction wait times.": "Trimiterea fondurilor fără taxe de prioritate va duce la timpi de așteptare lungi pentru tranzacții.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Servicii", + "Settings": "Setări", + "Show DAA": "Arată DAA", + "Show Grid": "Afișează Grilă", + "Show VSPC": "Arată VSPC", + "Show balances in alternate currencies for testnet coins": "Afișați balanțele în alte monede pentru monedele de testnet", + "Show passphrase": "Arată fraza de acces", + "Show password": "Arată parola", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Afișează balanțele în alte monede (BTC, USD) atunci când utilizați monede de testnet ca și cum ați fi pe rețeaua principală (mainnet)", + "Skip": "Sari peste", + "Small (10 BPS)": "Mic (10 BPS)", + "Spread": "Spread", + "Stage": "Etapă", + "Starting...": "Începere...", + "Statistics": "Statistici", + "Stop": "Oprire", + "Stor Read": "Citire din Stocare", + "Stor Write": "Scriere în Stocare", + "Storage": "Spațiu", + "Storage Read": "Citire disc", + "Storage Read/s": "Citire/i din Stocare", + "Storage Size": "Dimensiunea stocării", + "Storage Write": "Scriere în Stocare", + "Storage Write/s": "Scriere/i în Stocare", + "Strong": "Puternic", + "Submitted Blocks": "Blocuri Trimise", + "Syncing Cryptographic Proof...": "Sincronizare a Dovezii Criptografice...", + "Syncing DAG Blocks...": "Sincronizare Blocuri DAG...", + "Syncing Headers...": "Sincronizare Antete...", + "Syncing UTXO entries...": "Sincronizare înregistrări UTXO...", + "Syncing...": "Se sincronizează...", + "System": "Sistem", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Software-ul Kaspa NG reprezintă un efort continuu concentrat pe construirea unei platforme software de ultimă generație dedicată rețelei de criptomonede Kaspa BlockDAG. Cu o bază ideologică puternică, acest software acordă prioritate securității, confidențialității, performanței și descentralizării.", + "The balance may be out of date during node sync": "Soldul poate fi afișat eronat în timpul sincronizării nodului.", + "The following will guide you through the process of creating or importing a wallet.": "Următoarele instrucțiuni vă vor ghida prin procesul de creare sau importare a unui portofel.", + "The network is currently congested.": "Rețeaua este în prezent congestionată.", + "The node is currently syncing with the Kaspa p2p network.": "Nodul se sincronizează în prezent cu rețeaua Kaspa p2p", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "Nodul este în prezent în proces de sincronizare cu rețeaua Kaspa p2p. Balanțele contului pot fi afișate eronat în timpul acestui proces.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "Nodul se sincronizează în prezent cu rețeaua p2p Kaspa. Vă rugăm să așteptați ca nodul să se sincronizeze.", + "The node is spawned as a child daemon process (recommended).": "Nodul este lansat ca un proces demon copil (recomandat).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "Nodul rulează ca parte a procesului aplicației Kaspa-NG. Acest lucru reduce supraîncărcarea comunicării (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "Nodul se sincronizează în fundal în timp ce Kaspa-NG este conectat la un nod public.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "Nodul se sincronizează în fundal în timp ce Kaspa-NG este conectat la un nod public. Odată ce nodul este sincronizat, poți comuta în modul 'Daemon Integrat'.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "Fraza de acces opțională pentru plăți și recuperare mnemonică, cunoscută sub numele de fraza de acces BIP39, dacă este furnizată, va fi necesară pentru a trimite plăți. Această frază de acces va fi, de asemenea, necesară atunci când recuperezi portofelul tău, pe lângă mnemonic. Dacă pierzi sau uiți această frază de acces, nu vei putea folosi mnemonicul pentru a-ți recupera portofelul!", + "Theme Color": "Culoarea Temei", + "Theme Color:": "Culoarea Temei:", + "Theme Style": "Stil Temă", + "Theme Style:": "Stil Temă:", + "This option will transfer any discovered funds to the first change address of this account.": "Această opțiune va transfera orice fonduri descoperite către prima adresă de schimb a acestui cont.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Acest portofel nu vă va cere niciodată această frază mnemonică decât dacă inițiați manual o recuperare a cheii private.", + "Threshold": "Limită", + "Time Offset:": "Decalajul de timp:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Prea multe cuvinte în", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Urmărește în fundal", + "Transactions": "Tranzacții", + "Transactions:": "Tranzacții:", + "Transactions: {number}": "Tranzacții: {number}", + "Transfer funds during scan": "Transferă fonduri în timpul scanării", + "Type": "Tip", + "URI copied to clipboard": "URI copiat în clipboard", + "UTXO Manager": "Manager UTXO", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXO-uri: {number}", + "Unable to change node settings until the problem is resolved": "Nu puteți schimba setările nodului până când problema este rezolvată", + "Unable to store settings": "Unable to store settings", + "Unlock": "Deblocare", + "Unlock Wallet": "Deblochează portofel", + "Unlocking": "Deblocare", + "Update Available to version": "Actualizează Disponibil la versiune", + "Updating...": "Se actualizează...", + "Uptime:": "Perioadă de activitate:", + "Use 50%-75% of available system memory": "Folosește 50 %-75%din memoria disponibilă a sistemului", + "Use all available system memory": "Utilizați toată memoria sistemului disponibilă", + "User Agent": "Agent utilizator", + "User Interface": "Interfața utilizatorului", + "Very dangerous (may be cracked within few seconds)": "Foarte periculos (poate fi spart în câteva secunde)", + "Very strong": "Foarte puternic", + "Very weak": "Foarte slab", + "Virt Parents": "Virt Parents", + "Virtual DAA Score": "Scor Virtual DAA", + "Virtual Memory": "Memorie Virtuală", + "Virtual Parent Hashes": "Virtual Parent Hashes", + "Volume": "Volum", + "WASM SDK for JavaScript and TypeScript": "WASM SDK pentru JavaScript și TypeScript", + "Wallet": "Portofel", + "Wallet Created": "Portofel Creat", + "Wallet Encryption Password": "Parolă de Criptare a Portofelului", + "Wallet File Secret": "Secretul fișierului pentru portofel", + "Wallet Name": "Nume Portofel", + "Wallet Secret": "Secretul Portofelului", + "Wallet creation error:": "Eroare la crearea portofelului:", + "Wallet decrypting error:": "Eroare la decriptarea portofelului:", + "Wallet password is used to encrypt your wallet data.": "Parola portofelului este folosită pentru a cripta datele portofelului tău.", + "Wallet with this name already exists": "Există deja un portofel cu acest nume", + "Wallet:": "Portofel:", + "We greatly appreciate your help in backing our efforts.": "Apreciam foarte mult ajutorul acordat în susținerea eforturilor noastre.", + "Weak": "Slab", + "Welcome to Kaspa NG": "Bine ați venit în Kaspa NG", + "Xpub Keys": "Chei Xpub", + "You are currently not connected to the Kaspa node.": "În prezent, nu sunteți conectat la nodul Kaspa.", + "You can configure remote connection in Settings": "Poți configura conexiunea de la distanță din Setări", + "You can create multiple wallets, but only one wallet can be open at a time.": "Puteți crea mai multe portofele, dar în același timp poate fi deschis doar un singur portofel.", + "You must be connected to a node...": "Trebuie să fii conectat la un nod...", + "Your default wallet private key mnemonic is:": "Mnemonicul cheii private implicit a portofelului tău este:", + "Your mnemonic is protected with a bip39 passphrase": "Mnemonicul tău este protejat cu o frază de acces bip39", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Fraza dvs. mnemonică vă permite să recreați cheia privată. Persoana care are acces la această frază mnemonică va avea control deplin asupra Kaspa stocate în portofel. Păstrați-vă fraza mnemonică în siguranță. Scrieți-o și stocați-o într-un loc sigur, preferabil într-un loc rezistent la foc. Nu stocați fraza mnemonică pe acest calculator sau pe un dispozitiv mobil. Acest portofel nu vă va solicita niciodată această frază mnemonică decât dacă inițiați manual o recuperare a cheii private.", + "Your mnemonic phrase is invalid": "Frază mnemonică invalidă", + "Your private key mnemonic is:": "Mnemonicul cheii private este:", + "Your wallet has been created and is ready to use.": "Portofelul tău a fost creat și este gata de utilizare.", + "Zoom": "Mărire", + "bye!": "La revedere!", + "gRPC Network Interface & Port": "Rețea gRPC Port & Interfață", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "din", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "partner", + "peers": "peers", + "using KDX or kaspanet.io web wallet": "utilizând portofelul web KDX sau kaspanet.io", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "Setări de Conexiune wRPC", + "wRPC Encoding:": "Codificare wRPC:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL: ", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Trimite", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transferă", + "{qrCodeIcon} Request": "{qrCodeIcon} Solicită", + "~2 hours": "~2 ore", + "~30 minutes": "~30 minute" + }, + "ru": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS тестовая сеть", + "10 BPS test network": "10 BPS тестовая сеть", + "12 word mnemonic": "12 слов мнемонической фразы", + "24 word mnemonic": "24 слова мнемонической фразы", + "24h Change": "Изменение за 24 часа", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "Бинарный файл в другом месте порождает дочерний процесс (экспериментально, только для разработки).", + "A random node will be selected on startup": "При запуске будет выбрана случайная нода.", + "A wallet is stored in a file on your computer.": "Кошелёк хранится в файле на вашем компьютере.", + "Account Index": "Account Index", + "Account Name": "Имя аккаунта", + "Account not found": "Account not found", + "Account:": "Аккаунт:", + "Activate custom daemon arguments": "Активировать пользовательские аргументы службы", + "Active p2p Peers": "Активные p2p пиры", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Сканирование производных адреса", + "Address:": "Адрес:", + "Advanced": "Расширенные", + "All": "Все", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Разрешить настраиваемые аргументы для службы Rusty Kaspa.", + "Allows you to take screenshots from within the application": "Позволяет вам делать скриншоты прямо из приложения", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Применить", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Баланс: Недоступен", + "Bandwidth": "Пропускная способность", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Из-за своего акцента на безопасности и производительности, это программное обеспечение полностью разработано на Rust, что требует значительно больше времени и усилий по сравнению с другими традиционными современными веб-ориентированными программами.", + "Bezier Curves": "Кривые Безье", + "Block DAG": "Block DAG", + "Block Scale": "Размер блока", + "Blocks": "Блоки", + "Bodies": "Тела блоков", + "Borsh Active Connections": "Активные соединения Borsh", + "Borsh Connection Attempts": "Попытки Borsh-подключения", + "Borsh Handshake Failures": "Сбои при установлении связи Borsh", + "Build": "Сборка", + "CONNECTED": "ПОДКЛЮЧЕНО", + "CPU": "ЦПУ", + "Cache Memory Size": "Размер кэш-памяти", + "Cancel": "Отменить", + "Cannot delete data folder while the node is running": "Невозможно удалить папку с данными, пока нода работает.", + "Capture a screenshot": "Сделать снимок экрана", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Центр VSPC", + "Chain Blocks": "Цепочка блоков", + "Change Address": "Изменить адрес", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Проверьте наличие обновлений программного обеспечения на GitHub.", + "Check for Updates": "Проверить наличие обновлений", + "Clear": "Чисто", + "Click to try another server...": "Нажмите, чтобы попробовать другой сервер...", + "Client RPC": "Клиент RPC", + "Close": "Закрыть", + "Close the window": "Закрыть окно", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Подтвердите пароль кошелька", + "Connecting to": "Подключение к", + "Connection": "Соединение", + "Connections": "Соединения", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Подключается к удалённой ноде Rusty Kaspa через wRPC.", + "Conservative": "Консервативный", + "Continue": "Продолжить", + "Copied to clipboard": "Скопировано в буфер обмена", + "Copy": "Копировать", + "Copy logs to clipboard": "Копирование журналов в буфер обмена", + "Create New Wallet": "Создать новый кошелёк", + "Create Wallet": "Create Wallet", + "Create new wallet": "Создать новый кошелёк", + "Creating Account": "Создание аккаунта", + "Creating Wallet": "Создание кошелька", + "Custom": "Пользовательский", + "Custom Public Node": "Пользовательская общедоступная нода", + "Custom arguments:": "Пользовательские аргументы:", + "Custom data storage folder": "Пользовательская папка хранения данных", + "DAA": "DAA", + "DAA Offset": "DAA-смещение", + "DAA Range": "DAA-диапазон", + "DB Blocks": "DB Блоки", + "DB Headers": "DB Заголовки", + "Dangerous": "Dangerous", + "Data Storage": "Хранилище данных", + "Database Blocks": "Блоки базы данных", + "Database Headers": "Заголовки базы данных", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Расшифровка кошелька, пожалуйста, подождите...", + "Default": "По умолчанию", + "Default Account Name": "Имя аккаунта по умолчанию", + "Delete Data Folder": "Удалить папку с данными", + "Dependencies": "Зависимости", + "Derivation Indexes": "Derivation Indexes", + "Details": "Детали", + "Developer Mode": "Режим разработчика", + "Developer Resources": "Ресурсы разработчика", + "Developer mode enables advanced and experimental features": "Режим разработчика позволяет использовать расширенные и экспериментальные функции", + "Difficulty": "Сложность", + "Dimensions": "Размеры", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Отключено", + "Disables node connectivity (Offline Mode).": "Отключает соединение ноды (оффлайн режим).", + "Discord": "Discord", + "Donations": "Пожертвования", + "Double click on the graph to re-center...": "Дважды щёлкните по графику, чтобы центрировать его...", + "ECDSA": "ECDSA", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Включить мониторинг рынка", + "Enable UPnP": "Включить UPnP", + "Enable custom daemon arguments": "Включить пользовательские аргументы службы", + "Enable experimental features": "Включить экспериментальные функции", + "Enable gRPC": "Включить gRPC", + "Enable optional BIP39 passphrase": "Включить дополнительную фразу BIP39", + "Enable screen capture": "Включить захват экрана", + "Enables features currently in development": "Включает функции, находящиеся в разработке", + "Enter": "Ввод", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Введите имя аккаунта (необязательно)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Введите имя аккаунта", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Введите фишинговую подсказку", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Введите сумму", + "Enter the password for your wallet": "Введите пароль для вашего кошелька", + "Enter the password to unlock your wallet": "Введите пароль для разблокировки вашего кошелька", + "Enter wallet name": "Введите имя кошелька", + "Enter wallet password": "Введите пароль кошелька", + "Enter your wallet secret": "Введите секрет своего кошелька", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Обозреватель", + "Export Wallet Data": "Экспорт данных кошелька", + "FIRST": "FIRST", + "Faucet": "Криптокран", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "Файловые дескрипторы", + "File contents": "File contents", + "Filename:": "Имя файла:", + "Final Amount:": "Окончательная сумма:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub Релиз", + "Go to Settings": "Перейдите в Настройки", + "Good": "Good", + "Handles": "Дескрипторы", + "Headers": "Заголовки", + "High": "High", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "Если не указано, учётная запись будет представлена числовым идентификатором.", + "If you are running locally, use: ": "Если вы работаете локально, используйте:", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Импорт существующих", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Входящий", + "Integrated Daemon": "Интегрированная служба", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Неверные аргументы службы", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Неверный URL wRPC", + "Json Active Connections": "Активные Json-соединения", + "Json Connection Attempts": "Попытки подключения Json", + "Json Handshake Failures": "Сбои при Json-соединении", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Kaspa Руководство по интеграции", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG на GitHub", + "Kaspa NG online": "Kaspa NG онлайн", + "Kaspa Network": "Kaspa Сеть", + "Kaspa Node": "Kaspa Нода", + "Kaspa p2p Network & Node Connection": "Kaspa p2p-соединение с сетью и нодой", + "Kaspa p2p Node": "Kaspa p2p-нода", + "Kaspa p2p Node & Connection": "Kaspa p2p-нода и соединение", + "Key Perf.": "Ключевая производительность", + "LAST": "LAST", + "Language:": "Язык:", + "Large (1 BPS)": "Большой (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Уровни", + "License Information": "Информация о лицензии", + "Local": "Лосальный", + "Local p2p Node Configuration": "Локальная конфигурация p2p-ноды", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Журналы", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "Ср.время", + "Main Kaspa network": "Основная сеть Kaspa", + "Mainnet": "Основная сеть", + "Managed by the Rusty Kaspa daemon": "Управляется службой Rusty Kaspa", + "Market": "Рынок", + "Market Cap": "Рыночная капитализация", + "Market Monitor": "Мониторинг рынка", + "Mass Processed": "Массовая обработка", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Средний узкий", + "Medium Wide": "Средний широкий", + "Memory": "Память", + "Mempool": "Mempool", + "Mempool Size": "Размер Mempool", + "Metrics": "Метрики", + "Metrics are not currently available": "Метрики в настоящее время недоступны", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM модули для NodeJS", + "Network": "Сеть", + "Network Difficulty": "Сложность сети", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Сетевой интерфейс", + "Network Peers": "Сетевые пиры", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "Нет пиров", + "No public node selected - please select a public node": "Не выбрана общедоступная нода - пожалуйста, выберите общедоступную ноду", + "No transactions": "Нет транзакций", + "No wallets found, please create a new wallet": "Нет найденных кошельков, пожалуйста, создайте новый кошелёк", + "Node": "Нода", + "Node Status": "Статус ноды", + "Noise": "Шум", + "None": "Ни одного", + "Normal": "Normal", + "Not Connected": "Не подключено", + "Not connected": "Не подключено", + "Notifications": "Уведомления", + "Open Data Folder": "Открыть папку с данными", + "Opening wallet:": "Открытие кошелька:", + "Optional": "Дополнительно", + "Options": "Options", + "Other operations": "Другие операции", + "Outbound": "Исходящий", + "Overview": "Обзор", + "PREV": "PREV", + "Parents": "Родители", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Прошлое среднее время", + "Payment & Recovery Password": "Оплата и восстановление пароля", + "Payment Request": "Запрос на оплату", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Пиры", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Производительность", + "Phishing Hint": "Фишинговая подсказка", + "Ping:": "Пинг:", + "Please Confirm Deletion": "Пожалуйста, подтвердите удаление", + "Please configure your Kaspa NG settings": "Пожалуйста, настройте свои параметры Kaspa NG", + "Please connect to Kaspa p2p node": "Пожалуйста, подключитесь к p2p-ноде Kaspa", + "Please create a stronger password": "Пожалуйста, создайте более надёжный пароль", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Пожалуйста, введите сумму", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Пожалуйста, введите имя аккаунта", + "Please enter the wallet secret": "Пожалуйста, введите секрет кошелька", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Пожалуйста, обратите внимание, что копирование в буфер обмена несёт риск раскрытия вашей мнемоники вредоносным программам.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Пожалуйста, выберите тип аккаунта", + "Please select export type": "Please select export type", + "Please select the private key to export": "Пожалуйста, выберите приватный ключ для экспорта", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Пожалуйста, установите значение ноды 'Отключено', чтобы удалить папку с данными", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Пожалуйста, укажите имя аккаунта по умолчанию. Кошелёк будет создан с аккаунтом по умолчанию. После создания вы сможете создавать дополнительные аккаунты по мере необходимости.", + "Please specify the name of the new wallet": "Пожалуйста, укажите имя нового кошелька", + "Please specify the private key type for the new wallet": "Пожалуйста, укажите тип приватного ключа для нового кошелька", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Пожалуйста, подождите, пока нода синхронизируется или подключится к удалённой ноде.", + "Please wait for the node to sync...": "Пожалуйста, подождите, пока нода синхронизируется...", + "Please wait...": "Пожалуйста, подождите...", + "Presets": "Предустановки", + "Price": "Цена", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Приватный ключ мнемоники", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Обработанные тела блоков", + "Processed Dependencies": "Обработанные зависимости", + "Processed Headers": "Обработанные заголовки", + "Processed Mass Counts": "Обработанные счетчики массы", + "Processed Transactions": "Обработанные транзакции", + "Processing...": "Processing...", + "Protocol:": "Протокол:", + "Public Node": "Публичная нода", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Случайная публичная нода", + "Range:": "Диапазон:", + "Receive Address": "Адрес получения", + "Recommended arguments for the remote node: ": "Рекомендуемые аргументы для удалённой ноды:", + "Redistributables": "Распространяемые компоненты", + "Remote": "Удалённый", + "Remote Connection:": "Удалённое подключение:", + "Remote p2p Node Configuration": " Конфигурация удалённой p2p-ноды", + "Removes security restrictions, allows for single-letter passwords": "Удаляет ограничения безопасности, позволяет использовать однобуквенные пароли", + "Reset Settings": "Сбросить настройки", + "Reset VSPC": "Сбросить VSPC", + "Resident Memory": "Резидентная память", + "Resources": "Ресурсы", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Результирующие аргументы службы:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa на GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Секрет слишком слабый", + "Secret score:": "Оценка секрета:", + "Select Account": "Выберите аккаунт", + "Select Private Key Type": "Выберите тип приватного ключа", + "Select Public Node": "Выберите публичную ноду", + "Select Wallet": "Выберите кошелёк", + "Select a wallet to unlock": "Выберите кошелёк для разблокировки", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Отправить", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Сервисы", + "Settings": "Настройки", + "Show DAA": "Показать DAA", + "Show Grid": "Показать сетку", + "Show VSPC": "Показать VSPC", + "Show balances in alternate currencies for testnet coins": "Показывайте балансы в альтернативных валютах для тестовых монет", + "Show passphrase": "Show passphrase", + "Show password": "Показать пароль", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Показывает балансы в альтернативных валютах (BTC, USD), когда используются тестовые монеты, как будто вы находитесь на основной сети", + "Skip": "Пропустить", + "Small (10 BPS)": "Маленький (10 BPS)", + "Spread": "Разброс", + "Stage": "Этап", + "Starting...": "Начало...", + "Statistics": "Статистика", + "Stop": "Stop", + "Stor Read": "Чтение с диска", + "Stor Write": "Запись на диск", + "Storage": "Диск", + "Storage Read": "Чтение с диска", + "Storage Read/s": "Чтение с диска/сек.", + "Storage Size": "Storage Size", + "Storage Write": "Запись на диск", + "Storage Write/s": "Запись на диск/сек.", + "Strong": "Strong", + "Submitted Blocks": "Отправленные блоки", + "Syncing Cryptographic Proof...": "Синхронизация криптографического доказательства...", + "Syncing DAG Blocks...": "Синхронизация блоков DAG...", + "Syncing Headers...": "Синхронизация заголовков...", + "Syncing UTXO entries...": "Синхронизация UTXO-записей...", + "Syncing...": "Синхронизация...", + "System": "Система", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Программное обеспечение Kaspa NG представляет собой непрерывную работу, направленную на создание современной программной платформы, предназначенной для криптовалютной сети Kaspa BlockDAG. Идеологическое по своей сути, это программное обеспечение уделяет приоритетное внимание безопасности, конфиденциальности, производительности и децентрализации.", + "The balance may be out of date during node sync": "Баланс может быть устаревшим во время синхронизации ноды", + "The following will guide you through the process of creating or importing a wallet.": "Следующее руководство поможет вам пройти процесс создания или импорта кошелька.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "В настоящее время нода синхронизируется с p2p-сетью Kaspa.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "В настоящее время нода синхронизируется с p2p-сетью Kaspa.. Балансы счетов могут быть устаревшими.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "Нода создаётся в качестве дочерней службы/процесса (рекомендуется).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "Нода работает в рамках процесса приложения Kaspa-NG. Это снижает накладные расходы на связь (экспериментально).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Цвет темы", + "Theme Color:": "Цвет темы:", + "Theme Style": "Стиль темы", + "Theme Style:": "Стиль темы:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Этот кошелёк никогда не будет запрашивать у вас эту мнемоническую фразу, если вы не инициируете восстановление приватного ключа вручную.", + "Threshold": "Предел", + "Time Offset:": "Смещение времени:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Хэши советов", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Общий Rx", + "Total Rx/s": "Общий Rx/s", + "Total Tx": "Общий Tx", + "Total Tx/s": "Общий Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Отслеживание в фоновом режиме", + "Transactions": "Транзакции", + "Transactions:": "Транзакции:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Тип", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO Менеджер", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Невозможно изменить настройки ноды, пока проблема не будет решена.", + "Unable to store settings": "Unable to store settings", + "Unlock": "Разблокировать", + "Unlock Wallet": "Разблокировать кошелёк", + "Unlocking": "Разблокировка", + "Update Available to version": "Доступно обновление до версии", + "Updating...": "Обновление...", + "Uptime:": "Время работы:", + "Use 50%-75% of available system memory": "Используйте 50%-75% от доступной системной памяти", + "Use all available system memory": "Используйте всю доступную системную память", + "User Agent": "User Agent", + "User Interface": "Пользовательский интерфейс", + "Very dangerous (may be cracked within few seconds)": "Очень опасно (может быть взломано за несколько секунд)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Вирт. родители", + "Virtual DAA Score": "Виртуальный балл DAA", + "Virtual Memory": "Виртуальная память", + "Virtual Parent Hashes": "Хэши виртуальных родителей", + "Volume": "Объём", + "WASM SDK for JavaScript and TypeScript": "WASM SDK для JavaScript и TypeScript", + "Wallet": "Кошелёк", + "Wallet Created": "Кошелёк создан", + "Wallet Encryption Password": "Пароль шифрования кошелька", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Имя кошелька", + "Wallet Secret": "Секрет кошелька", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Пароль кошелька используется для шифрования данных вашего кошелька.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Кошелёк:", + "We greatly appreciate your help in backing our efforts.": "Мы очень ценим вашу помощь в поддержке наших усилий.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Добро пожаловать в Kaspa NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "Вы в настоящее время не подключены к ноде Kaspa.", + "You can configure remote connection in Settings": "Вы можете настроить удалённое подключение в настройках.", + "You can create multiple wallets, but only one wallet can be open at a time.": "Вы можете создать несколько кошельков, но только один кошелёк может быть открыт в данный момент.", + "You must be connected to a node...": "Вы должны быть подключены к ноде...", + "Your default wallet private key mnemonic is:": "Ваш мнемонический приватный ключ кошелька по умолчанию:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Ваша мнемоническая фраза позволяет вам воссоздать ваш приватный ключ. Человек, у которого есть доступ к этой мнемонике, будет иметь полный контроль над Kaspa, хранящимся в ней. Храните вашу мнемоническую фразу в безопасности. Запишите её и сохраните в надёжном месте, желательно в огнестойком месте. Не храните вашу мнемоническую фразу на этом компьютере или мобильном устройстве. Этот кошелёк никогда не будет запрашивать у вас эту мнемоническую фразу, если вы не инициируете восстановление приватного ключа вручную.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Ваш мнемонический приватный ключ:", + "Your wallet has been created and is ready to use.": "Ваш кошелёк был создан и готов к использованию.", + "Zoom": "Масштабирование", + "bye!": "пока!", + "gRPC Network Interface & Port": "gRPC Сетевой интерфейс и порт", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "из", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "пир", + "peers": "пиры", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "Настройки подключения wRPC", + "wRPC Encoding:": "Кодирование wRPC:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" + }, + "sk": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS test network", + "10 BPS test network": "10 BPS test network", + "12 word mnemonic": "12 word mnemonic", + "24 word mnemonic": "24 word mnemonic", + "24h Change": "24h Change", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "A binary at another location is spawned a child process (experimental, for development purposes only).", + "A random node will be selected on startup": "A random node will be selected on startup", + "A wallet is stored in a file on your computer.": "A wallet is stored in a file on your computer.", + "Account Index": "Account Index", + "Account Name": "Account Name", + "Account not found": "Account not found", + "Account:": "Account:", + "Activate custom daemon arguments": "Activate custom daemon arguments", + "Active p2p Peers": "Active p2p Peers", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Address derivation scan", + "Address:": "Address:", + "Advanced": "Advanced", + "All": "All", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Allow custom arguments for the Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Allows you to take screenshots from within the application", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Apply", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Balance: N/A", + "Bandwidth": "Bandwidth", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.", + "Bezier Curves": "Bezier Curves", + "Block DAG": "Block DAG", + "Block Scale": "Block Scale", + "Blocks": "Blocks", + "Bodies": "Bodies", + "Borsh Active Connections": "Borsh Active Connections", + "Borsh Connection Attempts": "Borsh Connection Attempts", + "Borsh Handshake Failures": "Borsh Handshake Failures", + "Build": "Build", + "CONNECTED": "CONNECTED", + "CPU": "CPU", + "Cache Memory Size": "Cache Memory Size", + "Cancel": "Cancel", + "Cannot delete data folder while the node is running": "Cannot delete data folder while the node is running", + "Capture a screenshot": "Capture a screenshot", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Center VSPC", + "Chain Blocks": "Chain Blocks", + "Change Address": "Change Address", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Check for Software Updates on GitHub", + "Check for Updates": "Check for Updates", + "Clear": "Clear", + "Click to try another server...": "Click to try another server...", + "Client RPC": "Client RPC", + "Close": "Close", + "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Confirm wallet password", + "Connecting to": "Connecting to", + "Connection": "Connection", + "Connections": "Connections", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connects to a Remote Rusty Kaspa Node via wRPC.", + "Conservative": "Conservative", + "Continue": "Continue", + "Copied to clipboard": "Copied to clipboard", + "Copy": "Copy", + "Copy logs to clipboard": "Copy logs to clipboard", + "Create New Wallet": "Create New Wallet", + "Create Wallet": "Create Wallet", + "Create new wallet": "Create new wallet", + "Creating Account": "Creating Account", + "Creating Wallet": "Creating Wallet", + "Custom": "Custom", + "Custom Public Node": "Custom Public Node", + "Custom arguments:": "Custom arguments:", + "Custom data storage folder": "Custom data storage folder", + "DAA": "DAA", + "DAA Offset": "DAA Offset", + "DAA Range": "DAA Range", + "DB Blocks": "DB Blocks", + "DB Headers": "DB Headers", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", + "Database Blocks": "Database Blocks", + "Database Headers": "Database Headers", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Decrypting wallet, please wait...", + "Default": "Default", + "Default Account Name": "Default Account Name", + "Delete Data Folder": "Delete Data Folder", + "Dependencies": "Dependencies", + "Derivation Indexes": "Derivation Indexes", + "Details": "Details", + "Developer Mode": "Developer Mode", + "Developer Resources": "Developer Resources", + "Developer mode enables advanced and experimental features": "Developer mode enables advanced and experimental features", + "Difficulty": "Difficulty", + "Dimensions": "Dimensions", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Disabled", + "Disables node connectivity (Offline Mode).": "Disables node connectivity (Offline Mode).", + "Discord": "Discord", + "Donations": "Donations", + "Double click on the graph to re-center...": "Double click on the graph to re-center...", + "ECDSA": "ECDSA", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Enable Market Monitor", + "Enable UPnP": "Enable UPnP", + "Enable custom daemon arguments": "Enable custom daemon arguments", + "Enable experimental features": "Enable experimental features", + "Enable gRPC": "Enable gRPC", + "Enable optional BIP39 passphrase": "Enable optional BIP39 passphrase", + "Enable screen capture": "Enable screen capture", + "Enables features currently in development": "Enables features currently in development", + "Enter": "Enter", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Enter account name (optional)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Enter first account name", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Enter phishing hint", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Enter the amount", + "Enter the password for your wallet": "Enter the password for your wallet", + "Enter the password to unlock your wallet": "Enter the password to unlock your wallet", + "Enter wallet name": "Enter wallet name", + "Enter wallet password": "Enter wallet password", + "Enter your wallet secret": "Enter your wallet secret", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Explorer", + "Export Wallet Data": "Export Wallet Data", + "FIRST": "FIRST", + "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "File Handles", + "File contents": "File contents", + "Filename:": "Filename:", + "Final Amount:": "Final Amount:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub Release", + "Go to Settings": "Go to Settings", + "Good": "Good", + "Handles": "Handles", + "Headers": "Headers", + "High": "High", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "If not specified, the account will be represented by the numeric id.", + "If you are running locally, use: ": "If you are running locally, use: ", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Import existing", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Inbound", + "Integrated Daemon": "Integrated Daemon", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Invalid daemon arguments", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Invalid wRPC URL", + "Json Active Connections": "Json Active Connections", + "Json Connection Attempts": "Json Connection Attempts", + "Json Handshake Failures": "Json Handshake Failures", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Kaspa Integration Guide", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG on GitHub", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Kaspa Network", + "Kaspa Node": "Kaspa Node", + "Kaspa p2p Network & Node Connection": "Kaspa p2p Network & Node Connection", + "Kaspa p2p Node": "Kaspa p2p Node", + "Kaspa p2p Node & Connection": "Kaspa p2p Node & Connection", + "Key Perf.": "Key Perf.", + "LAST": "LAST", + "Language:": "Language:", + "Large (1 BPS)": "Large (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Levels", + "License Information": "License Information", + "Local": "Local", + "Local p2p Node Configuration": "Local p2p Node Configuration", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Logs", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Main Kaspa network", + "Mainnet": "Mainnet", + "Managed by the Rusty Kaspa daemon": "Managed by the Rusty Kaspa daemon", + "Market": "Market", + "Market Cap": "Market Cap", + "Market Monitor": "Market Monitor", + "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Medium Narrow", + "Medium Wide": "Medium Wide", + "Memory": "Memory", + "Mempool": "Mempool", + "Mempool Size": "Mempool Size", + "Metrics": "Metrics", + "Metrics are not currently available": "Metrics are not currently available", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM Modules for NodeJS", + "Network": "Network", + "Network Difficulty": "Network Difficulty", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Network Interface", + "Network Peers": "Network Peers", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "No peers", + "No public node selected - please select a public node": "No public node selected - please select a public node", + "No transactions": "No transactions", + "No wallets found, please create a new wallet": "No wallets found, please create a new wallet", + "Node": "Node", + "Node Status": "Node Status", + "Noise": "Noise", + "None": "None", + "Normal": "Normal", + "Not Connected": "Not Connected", + "Not connected": "Not connected", + "Notifications": "Notifications", + "Open Data Folder": "Open Data Folder", + "Opening wallet:": "Opening wallet:", + "Optional": "Optional", + "Options": "Options", + "Other operations": "Other operations", + "Outbound": "Outbound", + "Overview": "Overview", + "PREV": "PREV", + "Parents": "Parents", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Past Median Time", + "Payment & Recovery Password": "Payment & Recovery Password", + "Payment Request": "Payment Request", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Peers", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performance", + "Phishing Hint": "Phishing Hint", + "Ping:": "Ping:", + "Please Confirm Deletion": "Please Confirm Deletion", + "Please configure your Kaspa NG settings": "Please configure your Kaspa NG settings", + "Please connect to Kaspa p2p node": "Please connect to Kaspa p2p node", + "Please create a stronger password": "Please create a stronger password", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Please enter an amount", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Please enter the account name", + "Please enter the wallet secret": "Please enter the wallet secret", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Please select an account type", + "Please select export type": "Please select export type", + "Please select the private key to export": "Please select the private key to export", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Please set node to 'Disabled' to delete the data folder", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.", + "Please specify the name of the new wallet": "Please specify the name of the new wallet", + "Please specify the private key type for the new wallet": "Please specify the private key type for the new wallet", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Please wait for the node to sync or connect to a remote node.", + "Please wait for the node to sync...": "Please wait for the node to sync...", + "Please wait...": "Please wait...", + "Presets": "Presets", + "Price": "Price", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Processed Bodies", + "Processed Dependencies": "Processed Dependencies", + "Processed Headers": "Processed Headers", + "Processed Mass Counts": "Processed Mass Counts", + "Processed Transactions": "Processed Transactions", + "Processing...": "Processing...", + "Protocol:": "Protocol:", + "Public Node": "Public Node", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Random Public Node", + "Range:": "Range:", + "Receive Address": "Receive Address", + "Recommended arguments for the remote node: ": "Recommended arguments for the remote node: ", + "Redistributables": "Redistributables", + "Remote": "Remote", + "Remote Connection:": "Remote Connection:", + "Remote p2p Node Configuration": "Remote p2p Node Configuration", + "Removes security restrictions, allows for single-letter passwords": "Removes security restrictions, allows for single-letter passwords", + "Reset Settings": "Reset Settings", + "Reset VSPC": "Reset VSPC", + "Resident Memory": "Resident Memory", + "Resources": "Resources", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Resulting daemon arguments:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa on GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Secret is too weak", + "Secret score:": "Secret score:", + "Select Account": "Select Account", + "Select Private Key Type": "Select Private Key Type", + "Select Public Node": "Select Public Node", + "Select Wallet": "Select Wallet", + "Select a wallet to unlock": "Select a wallet to unlock", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Send", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Services", + "Settings": "Settings", + "Show DAA": "Show DAA", + "Show Grid": "Show Grid", + "Show VSPC": "Show VSPC", + "Show balances in alternate currencies for testnet coins": "Show balances in alternate currencies for testnet coins", + "Show passphrase": "Show passphrase", + "Show password": "Show password", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet", + "Skip": "Skip", + "Small (10 BPS)": "Small (10 BPS)", + "Spread": "Spread", + "Stage": "Stage", + "Starting...": "Starting...", + "Statistics": "Statistics", + "Stop": "Stop", + "Stor Read": "Stor Read", + "Stor Write": "Stor Write", + "Storage": "Storage", + "Storage Read": "Storage Read", + "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", + "Storage Write": "Storage Write", + "Storage Write/s": "Storage Write/s", + "Strong": "Strong", + "Submitted Blocks": "Submitted Blocks", + "Syncing Cryptographic Proof...": "Syncing Cryptographic Proof...", + "Syncing DAG Blocks...": "Syncing DAG Blocks...", + "Syncing Headers...": "Syncing Headers...", + "Syncing UTXO entries...": "Syncing UTXO entries...", + "Syncing...": "Syncing...", + "System": "System", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.", + "The balance may be out of date during node sync": "The balance may be out of date during node sync", + "The following will guide you through the process of creating or importing a wallet.": "The following will guide you through the process of creating or importing a wallet.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "The node is currently syncing with the Kaspa p2p network.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Theme Color", + "Theme Color:": "Theme Color:", + "Theme Style": "Theme Style", + "Theme Style:": "Theme Style:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Threshold": "Threshold", + "Time Offset:": "Time Offset:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Track in the background", + "Transactions": "Transactions", + "Transactions:": "Transactions:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Type", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO Manager", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Unable to change node settings until the problem is resolved", + "Unable to store settings": "Unable to store settings", + "Unlock": "Unlock", + "Unlock Wallet": "Unlock Wallet", + "Unlocking": "Unlocking", + "Update Available to version": "Update Available to version", + "Updating...": "Updating...", + "Uptime:": "Uptime:", + "Use 50%-75% of available system memory": "Use 50%-75% of available system memory", + "Use all available system memory": "Use all available system memory", + "User Agent": "User Agent", + "User Interface": "User Interface", + "Very dangerous (may be cracked within few seconds)": "Very dangerous (may be cracked within few seconds)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Virt Parents", + "Virtual DAA Score": "Virtual DAA Score", + "Virtual Memory": "Virtual Memory", + "Virtual Parent Hashes": "Virtual Parent Hashes", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", + "Wallet": "Wallet", + "Wallet Created": "Wallet Created", + "Wallet Encryption Password": "Wallet Encryption Password", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Wallet Name", + "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Wallet password is used to encrypt your wallet data.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Wallet:", + "We greatly appreciate your help in backing our efforts.": "We greatly appreciate your help in backing our efforts.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Welcome to Kaspa NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "You are currently not connected to the Kaspa node.", + "You can configure remote connection in Settings": "You can configure remote connection in Settings", + "You can create multiple wallets, but only one wallet can be open at a time.": "You can create multiple wallets, but only one wallet can be open at a time.", + "You must be connected to a node...": "You must be connected to a node...", + "Your default wallet private key mnemonic is:": "Your default wallet private key mnemonic is:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Your private key mnemonic is:", + "Your wallet has been created and is ready to use.": "Your wallet has been created and is ready to use.", + "Zoom": "Zoom", + "bye!": "bye!", + "gRPC Network Interface & Port": "gRPC Network Interface & Port", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "of", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "peer", + "peers": "peers", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "wRPC Connection Settings", + "wRPC Encoding:": "wRPC Encoding:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" + }, + "sl": {}, + "sr": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS test network", + "10 BPS test network": "10 BPS test network", + "12 word mnemonic": "12 word mnemonic", + "24 word mnemonic": "24 word mnemonic", + "24h Change": "24h Change", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "A binary at another location is spawned a child process (experimental, for development purposes only).", + "A random node will be selected on startup": "A random node will be selected on startup", + "A wallet is stored in a file on your computer.": "A wallet is stored in a file on your computer.", + "Account Index": "Account Index", + "Account Name": "Account Name", + "Account not found": "Account not found", + "Account:": "Account:", + "Activate custom daemon arguments": "Activate custom daemon arguments", + "Active p2p Peers": "Active p2p Peers", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Address derivation scan", + "Address:": "Address:", + "Advanced": "Advanced", + "All": "All", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Allow custom arguments for the Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Allows you to take screenshots from within the application", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Apply", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Balance: N/A", + "Bandwidth": "Bandwidth", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.", + "Bezier Curves": "Bezier Curves", + "Block DAG": "Block DAG", + "Block Scale": "Block Scale", + "Blocks": "Blocks", + "Bodies": "Bodies", + "Borsh Active Connections": "Borsh Active Connections", + "Borsh Connection Attempts": "Borsh Connection Attempts", + "Borsh Handshake Failures": "Borsh Handshake Failures", + "Build": "Build", + "CONNECTED": "CONNECTED", + "CPU": "CPU", + "Cache Memory Size": "Cache Memory Size", + "Cancel": "Cancel", + "Cannot delete data folder while the node is running": "Cannot delete data folder while the node is running", + "Capture a screenshot": "Capture a screenshot", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Center VSPC", + "Chain Blocks": "Chain Blocks", + "Change Address": "Change Address", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Check for Software Updates on GitHub", + "Check for Updates": "Check for Updates", + "Clear": "Clear", + "Click to try another server...": "Click to try another server...", + "Client RPC": "Client RPC", + "Close": "Close", + "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Confirm wallet password", + "Connecting to": "Connecting to", + "Connection": "Connection", + "Connections": "Connections", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connects to a Remote Rusty Kaspa Node via wRPC.", + "Conservative": "Conservative", + "Continue": "Continue", + "Copied to clipboard": "Copied to clipboard", + "Copy": "Copy", + "Copy logs to clipboard": "Copy logs to clipboard", + "Create New Wallet": "Create New Wallet", + "Create Wallet": "Create Wallet", + "Create new wallet": "Create new wallet", + "Creating Account": "Creating Account", + "Creating Wallet": "Creating Wallet", + "Custom": "Custom", + "Custom Public Node": "Custom Public Node", + "Custom arguments:": "Custom arguments:", + "Custom data storage folder": "Custom data storage folder", + "DAA": "DAA", + "DAA Offset": "DAA Offset", + "DAA Range": "DAA Range", + "DB Blocks": "DB Blocks", + "DB Headers": "DB Headers", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", + "Database Blocks": "Database Blocks", + "Database Headers": "Database Headers", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Decrypting wallet, please wait...", + "Default": "Default", + "Default Account Name": "Default Account Name", + "Delete Data Folder": "Delete Data Folder", + "Dependencies": "Dependencies", + "Derivation Indexes": "Derivation Indexes", + "Details": "Details", + "Developer Mode": "Developer Mode", + "Developer Resources": "Developer Resources", + "Developer mode enables advanced and experimental features": "Developer mode enables advanced and experimental features", + "Difficulty": "Difficulty", + "Dimensions": "Dimensions", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Disabled", + "Disables node connectivity (Offline Mode).": "Disables node connectivity (Offline Mode).", + "Discord": "Discord", + "Donations": "Donations", + "Double click on the graph to re-center...": "Double click on the graph to re-center...", + "ECDSA": "ECDSA", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Enable Market Monitor", + "Enable UPnP": "Enable UPnP", + "Enable custom daemon arguments": "Enable custom daemon arguments", "Enable experimental features": "Enable experimental features", "Enable gRPC": "Enable gRPC", - "Enable optional BIP39 passphrase": "Schakel optionele BIP39 wachtwoordzin in", - "Enable screen capture": "Schakel schermopname in", + "Enable optional BIP39 passphrase": "Enable optional BIP39 passphrase", + "Enable screen capture": "Enable screen capture", "Enables features currently in development": "Enables features currently in development", "Enter": "Enter", - "Enter account name (optional)": "Voer accountnaam in (optioneel)", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Enter account name (optional)", + "Enter destination address": "Enter destination address", "Enter first account name": "Enter first account name", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", "Enter phishing hint": "Enter phishing hint", - "Enter the amount": "Vul een hoeveelheid in", - "Enter the password for your wallet": "Voer het wachtwoord van je wallet in", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Enter the amount", + "Enter the password for your wallet": "Enter the password for your wallet", "Enter the password to unlock your wallet": "Enter the password to unlock your wallet", "Enter wallet name": "Enter wallet name", "Enter wallet password": "Enter wallet password", "Enter your wallet secret": "Enter your wallet secret", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", "Explorer": "Explorer", "Export Wallet Data": "Export Wallet Data", + "FIRST": "FIRST", "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", "File Handles": "File Handles", + "File contents": "File contents", "Filename:": "Filename:", "Final Amount:": "Final Amount:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", "GitHub Release": "GitHub Release", "Go to Settings": "Go to Settings", + "Good": "Good", "Handles": "Handles", "Headers": "Headers", + "High": "High", "IBD:": "IBD:", "If not specified, the account will be represented by the numeric id.": "If not specified, the account will be represented by the numeric id.", - "If you are running locally, use: ": "Wanneer je 'lokaal runt', gebruik dan:", + "If you are running locally, use: ": "If you are running locally, use: ", + "Import Existing Private Key": "Import Existing Private Key", "Import existing": "Import existing", - "Inbound": "Inkomend", - "Include QoS Priority Fees": "Include QoS Priority Fees", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Inbound", "Integrated Daemon": "Integrated Daemon", - "Invalid daemon arguments": "Ongeldige daemon arguments", - "Invalid network type - expected: testnet-10 connected to: testnet-11": "Invalid network type - expected: testnet-10 connected to: testnet-11", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Invalid daemon arguments", + "Invalid fee amount:": "Invalid fee amount:", "Invalid wRPC URL": "Invalid wRPC URL", "Json Active Connections": "Json Active Connections", "Json Connection Attempts": "Json Connection Attempts", "Json Handshake Failures": "Json Handshake Failures", "Kaspa Discord": "Kaspa Discord", - "Kaspa Integration Guide": "Kaspa Integratiehandleiding", + "Kaspa Integration Guide": "Kaspa Integration Guide", "Kaspa NG": "Kaspa NG", - "Kaspa NG Online": "Kaspa NG Online", - "Kaspa NG Web App": "Kaspa NG Web App", - "Kaspa NG on GitHub": "Kaspa NG op GitHub", + "Kaspa NG on GitHub": "Kaspa NG on GitHub", "Kaspa NG online": "Kaspa NG online", "Kaspa Network": "Kaspa Network", + "Kaspa Node": "Kaspa Node", + "Kaspa p2p Network & Node Connection": "Kaspa p2p Network & Node Connection", "Kaspa p2p Node": "Kaspa p2p Node", "Kaspa p2p Node & Connection": "Kaspa p2p Node & Connection", "Key Perf.": "Key Perf.", + "LAST": "LAST", "Language:": "Language:", "Large (1 BPS)": "Large (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", "Levels": "Levels", - "License Information": "Licentie informatie", + "License Information": "License Information", "Local": "Local", - "Local p2p Node Configuration": "Local p2p Node Configuratie", + "Local p2p Node Configuration": "Local p2p Node Configuration", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", "Logs": "Logs", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", "MT": "MT", "Main Kaspa network": "Main Kaspa network", "Mainnet": "Mainnet", - "Mainnet (Main Kaspa network)": "Mainnet (Main Kaspa network)", "Managed by the Rusty Kaspa daemon": "Managed by the Rusty Kaspa daemon", "Market": "Market", "Market Cap": "Market Cap", "Market Monitor": "Market Monitor", "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", "Medium Narrow": "Medium Narrow", "Medium Wide": "Medium Wide", - "Memory": "Geheugen", + "Memory": "Memory", "Mempool": "Mempool", "Mempool Size": "Mempool Size", "Metrics": "Metrics", - "Metrics are not currently available": "Statistieken zijn momenteel niet beschikbaar", + "Metrics are not currently available": "Metrics are not currently available", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", "NPM Modules for NodeJS": "NPM Modules for NodeJS", - "Network": "Netwerk", + "Network": "Network", "Network Difficulty": "Network Difficulty", - "Network Fees:": "Network Fees:", + "Network Fee Estimator": "Network Fee Estimator", "Network Interface": "Network Interface", - "Network Peers": "Netwerk Peers", - "No peers": "Geen peers", - "No public node selected - please select a public node": "Geen public node geselecteerd - selecteer alsjeblieft een public node", + "Network Peers": "Network Peers", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "No peers", + "No public node selected - please select a public node": "No public node selected - please select a public node", "No transactions": "No transactions", "No wallets found, please create a new wallet": "No wallets found, please create a new wallet", "Node": "Node", "Node Status": "Node Status", "Noise": "Noise", "None": "None", + "Normal": "Normal", "Not Connected": "Not Connected", - "Not connected": "Niet verbonden", + "Not connected": "Not connected", "Notifications": "Notifications", - "Open Data Folder": "Open Gegevensmap", + "Open Data Folder": "Open Data Folder", "Opening wallet:": "Opening wallet:", - "Optional": "Optioneel", + "Optional": "Optional", + "Options": "Options", "Other operations": "Other operations", "Outbound": "Outbound", - "Overview": "Overzicht", + "Overview": "Overview", + "PREV": "PREV", "Parents": "Parents", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", "Past Median Time": "Past Median Time", - "Payment & Recovery Password": "Betaling & Herstel Wachtwoord", - "Payment Request": "Betalingsverzoek", - "Peers": "peers", + "Payment & Recovery Password": "Payment & Recovery Password", + "Payment Request": "Payment Request", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Peers", + "Pending: {amount}": "Pending: {amount}", "Performance": "Performance", "Phishing Hint": "Phishing Hint", "Ping:": "Ping:", "Please Confirm Deletion": "Please Confirm Deletion", - "Please configure your Kaspa NG settings": "Gelieve je Kaspa NG instellingen te configureren", - "Please connect to Kaspa p2p node": "Maak alsjeblieft verbinding met de Kaspa p2p-node.", - "Please create a stronger password": "Maak alsjeblieft een sterker wachtwoord", - "Please enter": "Please enter", - "Please enter KAS amount to send": "Voer alsjeblieft een hoeveelheid KAS in om te verzenden.", - "Please enter an amount": "Vul alsjeblieft een hoeveelheid in.", - "Please enter the account name": "Voer alsjeblieft de naam van het account in.", + "Please configure your Kaspa NG settings": "Please configure your Kaspa NG settings", + "Please connect to Kaspa p2p node": "Please connect to Kaspa p2p node", + "Please create a stronger password": "Please create a stronger password", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Please enter an amount", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Please enter the account name", "Please enter the wallet secret": "Please enter the wallet secret", - "Please note that this is a beta release. Until this message is removed, please avoid using the wallet with mainnet funds.": "Please note that this is a beta release. Until this message is removed, please avoid using the wallet with mainnet funds.", - "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Let op, het kopiëren naar het klembord brengt het risico met zich mee dat uw mnemonische zin wordt blootgesteld aan malware.", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", "Please select an account type": "Please select an account type", + "Please select export type": "Please select export type", "Please select the private key to export": "Please select the private key to export", - "Please set node to 'Disabled' to delete the data folder": "Gelieve de node in te stellen op 'Uitgeschakeld' om de gegevensmap te verwijderen.", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Please set node to 'Disabled' to delete the data folder", "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.", - "Please specify the name of the new wallet": "Gelieve de naam van de nieuwe wallet op te geven.", + "Please specify the name of the new wallet": "Please specify the name of the new wallet", "Please specify the private key type for the new wallet": "Please specify the private key type for the new wallet", + "Please support Kaspa NG development": "Please support Kaspa NG development", "Please wait for the node to sync or connect to a remote node.": "Please wait for the node to sync or connect to a remote node.", "Please wait for the node to sync...": "Please wait for the node to sync...", "Please wait...": "Please wait...", "Presets": "Presets", "Price": "Price", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", "Processed Bodies": "Processed Bodies", "Processed Dependencies": "Processed Dependencies", "Processed Headers": "Processed Headers", - "Processed Mass Counts": "Verwerkte Mass Counts", - "Processed Transactions": "Verwerkte transacties", + "Processed Mass Counts": "Processed Mass Counts", + "Processed Transactions": "Processed Transactions", + "Processing...": "Processing...", "Protocol:": "Protocol:", "Public Node": "Public Node", - "Public Nodes": "Public Nodes", - "Public Server": "Public Server", - "Public p2p Nodes for": "Public p2p Nodes for", - "Random Public Node": "Willekeurige Public Node", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Random Public Node", "Range:": "Range:", "Receive Address": "Receive Address", "Recommended arguments for the remote node: ": "Recommended arguments for the remote node: ", + "Redistributables": "Redistributables", "Remote": "Remote", - "Remote Connection:": "Externe verbinding:", + "Remote Connection:": "Remote Connection:", "Remote p2p Node Configuration": "Remote p2p Node Configuration", "Removes security restrictions, allows for single-letter passwords": "Removes security restrictions, allows for single-letter passwords", "Reset Settings": "Reset Settings", "Reset VSPC": "Reset VSPC", - "Resident Memory": "Resident Geheugen", + "Resident Memory": "Resident Memory", "Resources": "Resources", - "Resulting daemon arguments:": "Resulterende daemon arguments:", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Resulting daemon arguments:", "Rust Wallet SDK": "Rust Wallet SDK", "Rusty Kaspa on GitHub": "Rusty Kaspa on GitHub", - "Secret is too weak": "'Secret' is te zwak", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Secret is too weak", "Secret score:": "Secret score:", - "Select Account": "Selecteer Account", - "Select Available Server": "Select Available Server", - "Select Private Key Type": "Selecteer Private Key type", + "Select Account": "Select Account", + "Select Private Key Type": "Select Private Key Type", "Select Public Node": "Select Public Node", "Select Wallet": "Select Wallet", - "Select a wallet to unlock": "Selecteer een wallet om te ontgrendelen", + "Select a wallet to unlock": "Select a wallet to unlock", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", "Send": "Send", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", "Services": "Services", - "Settings": "Instellingen", + "Settings": "Settings", "Show DAA": "Show DAA", "Show Grid": "Show Grid", "Show VSPC": "Show VSPC", "Show balances in alternate currencies for testnet coins": "Show balances in alternate currencies for testnet coins", + "Show passphrase": "Show passphrase", "Show password": "Show password", "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet", - "Skip": "Overslaan", - "Small (10 BPS)": "Klein (10 BPS)", + "Skip": "Skip", + "Small (10 BPS)": "Small (10 BPS)", "Spread": "Spread", - "Stage": "Fase", + "Stage": "Stage", "Starting...": "Starting...", "Statistics": "Statistics", + "Stop": "Stop", "Stor Read": "Stor Read", "Stor Write": "Stor Write", "Storage": "Storage", "Storage Read": "Storage Read", "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", "Storage Write": "Storage Write", "Storage Write/s": "Storage Write/s", + "Strong": "Strong", "Submitted Blocks": "Submitted Blocks", - "Supporting Kaspa NG development": "Supporting Kaspa NG development", "Syncing Cryptographic Proof...": "Syncing Cryptographic Proof...", "Syncing DAG Blocks...": "Syncing DAG Blocks...", - "Syncing Headers...": "Headers syncen", - "Syncing UTXO entries...": "Syncen van UTXO entries...", + "Syncing Headers...": "Syncing Headers...", + "Syncing UTXO entries...": "Syncing UTXO entries...", "Syncing...": "Syncing...", - "System": "Systeem", + "System": "System", "TPS": "TPS", "Testnet 10": "Testnet 10", - "Testnet 10 (1 BPS)": "Testnet 10 (1 BPS)", "Testnet 11": "Testnet 11", - "Testnet 11 (10 BPS)": "Testnet 11 (10 BPS)", - "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.": "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.", "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.", - "The balance may be out of date during node sync": "Het saldo kan verouderd zijn tijdens het synchroniseren van de node", + "The balance may be out of date during node sync": "The balance may be out of date during node sync", "The following will guide you through the process of creating or importing a wallet.": "The following will guide you through the process of creating or importing a wallet.", + "The network is currently congested.": "The network is currently congested.", "The node is currently syncing with the Kaspa p2p network.": "The node is currently syncing with the Kaspa p2p network.", - "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "De node synchroniseert momenteel met het Kaspa p2p-netwerk. Accountbalansen kunnen verouderd zijn.", - "The node is spawned as a child daemon process (recommended).": "De node is gespawned als een child daemon proces (aangeraden).", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).", - "Theme Color": "Thema kleur", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Theme Color", "Theme Color:": "Theme Color:", "Theme Style": "Theme Style", "Theme Style:": "Theme Style:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", "Threshold": "Threshold", "Time Offset:": "Time Offset:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", "Tip Hashes": "Tip Hashes", - "Tools ⏷": "Tools ⏷", + "Too many words in the": "Too many words in the", + "Tools": "Tools", "Total Rx": "Total Rx", "Total Rx/s": "Total Rx/s", - "Total Tx": "Totale Tx", + "Total Tx": "Total Tx", "Total Tx/s": "Total Tx/s", - "Track in the background": "Tracken op de achtergrond", - "Transactions": "Transacties", - "Transactions:": "Transacties:", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Track in the background", + "Transactions": "Transactions", + "Transactions:": "Transactions:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", "Type": "Type", + "URI copied to clipboard": "URI copied to clipboard", "UTXO Manager": "UTXO Manager", "UTXOs": "UTXOs", "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", "Unable to change node settings until the problem is resolved": "Unable to change node settings until the problem is resolved", + "Unable to store settings": "Unable to store settings", "Unlock": "Unlock", - "Unlock Wallet": "Wallet ontgrendelen", - "Unlocking": "Unlocken", + "Unlock Wallet": "Unlock Wallet", + "Unlocking": "Unlocking", "Update Available to version": "Update Available to version", - "Updating...": "Bijwerken...", + "Updating...": "Updating...", "Uptime:": "Uptime:", - "Use 50%-75% of available system memory": "Gebruik 50%-75% van het beschikbare systeemgeheugen", + "Use 50%-75% of available system memory": "Use 50%-75% of available system memory", "Use all available system memory": "Use all available system memory", "User Agent": "User Agent", - "User Interface": "Gebruikersinterface", - "Very dangerous (may be cracked within few seconds)": "Zeer gevaarlijk (kan binnen enkele seconden worden gekraakt)", + "User Interface": "User Interface", + "Very dangerous (may be cracked within few seconds)": "Very dangerous (may be cracked within few seconds)", + "Very strong": "Very strong", + "Very weak": "Very weak", "Virt Parents": "Virt Parents", "Virtual DAA Score": "Virtual DAA Score", "Virtual Memory": "Virtual Memory", @@ -4336,26 +15222,32 @@ "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", "Wallet": "Wallet", "Wallet Created": "Wallet Created", - "Wallet Encryption Password": "Wallet Versleutelingswachtwoord ", + "Wallet Encryption Password": "Wallet Encryption Password", + "Wallet File Secret": "Wallet File Secret", "Wallet Name": "Wallet Name", "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", "Wallet password is used to encrypt your wallet data.": "Wallet password is used to encrypt your wallet data.", + "Wallet with this name already exists": "Wallet with this name already exists", "Wallet:": "Wallet:", "We greatly appreciate your help in backing our efforts.": "We greatly appreciate your help in backing our efforts.", - "Welcome to Kaspa NG": "Welkom bij Kaspa NG", + "Weak": "Weak", + "Welcome to Kaspa NG": "Welcome to Kaspa NG", "Xpub Keys": "Xpub Keys", - "You are currently not connected to the Kaspa node.": "Je bent momenteel niet verbonden met de Kaspa-node.", - "You can configure remote connection in Settings": "Je kunt de externe verbinding configureren in Instellingen", + "You are currently not connected to the Kaspa node.": "You are currently not connected to the Kaspa node.", + "You can configure remote connection in Settings": "You can configure remote connection in Settings", "You can create multiple wallets, but only one wallet can be open at a time.": "You can create multiple wallets, but only one wallet can be open at a time.", "You must be connected to a node...": "You must be connected to a node...", "Your default wallet private key mnemonic is:": "Your default wallet private key mnemonic is:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", "Your private key mnemonic is:": "Your private key mnemonic is:", - "Your wallet has been created and is ready to use.": "Je wallet is aangemaakt en klaar voor gebruik.", + "Your wallet has been created and is ready to use.": "Your wallet has been created and is ready to use.", "Zoom": "Zoom", - "amount to send": "amount to send", - "bye!": "tot ziens!", - "gRPC Network Interface & Port": "gRPC Netwerkinterface & Poort", + "bye!": "bye!", + "gRPC Network Interface & Port": "gRPC Network Interface & Port", "gRPC Rx": "gRPC Rx", "gRPC Rx/s": "gRPC Rx/s", "gRPC Tx": "gRPC Tx", @@ -4368,1597 +15260,3117 @@ "p2p Tx/s": "p2p Tx/s", "peer": "peer", "peers": "peers", - "wRPC Borsh Rx": "wRPC Borsh Rx/s", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", - "wRPC Borsh Tx": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", - "wRPC Connection Settings": "wRPC Verbindingsinstellingen", - "wRPC Encoding:": "wRPC-codering", + "wRPC Connection Settings": "wRPC Connection Settings", + "wRPC Encoding:": "wRPC Encoding:", "wRPC JSON Rx": "wRPC JSON Rx", "wRPC JSON Rx/s": "wRPC JSON Rx/s", "wRPC JSON Tx": "wRPC JSON Tx", "wRPC JSON Tx/s": "wRPC JSON Tx/s", - "wRPC URL:": "wRPC URL:" + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" }, - "no": {}, - "pa": {}, - "pl": { - "1 BPS test network": "sieć testowa 1 BPS", - "10 BPS test network": "sieć testowa 10 BPS", - "12 word mnemonic": "Mnemonik składający się z 12 słów", - "24 word mnemonic": "Mnemonik składający się z 24 słów", - "24h Change": "Zmiana 24h", - "A binary at another location is spawned a child process (experimental, for development purposes only).": "Plik binarny w innej lokalizacji jest generowany jako proces potomny (eksperymentalny, wyłącznie do celów programistycznych).", - "A random node will be selected on startup": "Podczas uruchamiania zostanie wybrany losowy węzeł", - "A wallet is stored in a file on your computer.": "Portfel przechowywany w pliku na Twoim komputerze.", - "Account Index": "Indeks konta", - "Account Name": "Nazwa konta", - "Account:": "Konto:", - "Activate custom daemon arguments": "Aktywuj niestandardowe argumenty demona", - "Active p2p Peers": "Aktywni partnerzy p2p", - "Address derivation scan": "Skanowanie wyprowadzania adresu", - "Address:": "Adres:", - "Advanced": "Zaawansowane", - "All": "Wszystko", - "Allow custom arguments for the Rusty Kaspa daemon": "Zezwalaj na niestandardowe argumenty dla demona Rusty Kaspa", - "Allows you to take screenshots from within the application": "Umożliwia wykonywanie zrzutów ekranu z poziomu aplikacji", - "Apply": "Zastosuj", - "Balance: N/A": "Saldo: nie dostępne", - "Bandwidth": "Przepustowość łącza", - "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Ze względu na skupienie się na bezpieczeństwie i wydajności, oprogramowanie to zostało w całości opracowane w języku Rust, co wymaga znacznie więcej czasu i wysiłku w porównaniu do innych tradycyjnych, nowoczesnych programów internetowych.", - "Bezier Curves": "Krzywe Beziera", - "Block DAG": "Zablokuj DAG", - "Block Scale": "Skala blokowa", - "Blocks": "Bloki", - "Bodies": "Ciała", - "Borsh Active Connections": "Aktywne połączenia Borsh", - "Borsh Connection Attempts": "Próby połączenia Borsha", - "Borsh Handshake Failures": "Błędy Handshake Borsha", - "Build": "Wersja", - "CONNECTED": "POŁĄCZONY", + "sv": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS test network", + "10 BPS test network": "10 BPS test network", + "12 word mnemonic": "12 word mnemonic", + "24 word mnemonic": "24 word mnemonic", + "24h Change": "24h Change", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "A binary at another location is spawned a child process (experimental, for development purposes only).", + "A random node will be selected on startup": "A random node will be selected on startup", + "A wallet is stored in a file on your computer.": "A wallet is stored in a file on your computer.", + "Account Index": "Account Index", + "Account Name": "Account Name", + "Account not found": "Account not found", + "Account:": "Account:", + "Activate custom daemon arguments": "Activate custom daemon arguments", + "Active p2p Peers": "Active p2p Peers", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Address derivation scan", + "Address:": "Address:", + "Advanced": "Advanced", + "All": "All", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Allow custom arguments for the Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Allows you to take screenshots from within the application", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Apply", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Balance: N/A", + "Bandwidth": "Bandwidth", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.", + "Bezier Curves": "Bezier Curves", + "Block DAG": "Block DAG", + "Block Scale": "Block Scale", + "Blocks": "Blocks", + "Bodies": "Bodies", + "Borsh Active Connections": "Borsh Active Connections", + "Borsh Connection Attempts": "Borsh Connection Attempts", + "Borsh Handshake Failures": "Borsh Handshake Failures", + "Build": "Build", + "CONNECTED": "CONNECTED", "CPU": "CPU", - "Cache Memory Size": "Rozmiar pamięci podręcznej", - "Cache Memory Size:": "Rozmiar pamięci podręcznej:", - "Cancel": "Anuluj", - "Cannot delete data folder while the node is running": "Nie można usunąć folderu danych, gdy węzeł jest uruchomiony", - "Capture a screenshot": "Zrób zrzut ekranu", - "Center VSPC": "Centrum VSPC", - "Chain Blocks": "Bloki łańcuchowe", - "Change Address": "Zmiana adresu", - "Check for Software Updates on GitHub": "Sprawdź dostępność aktualizacji oprogramowania w GitHub", - "Check for Updates": "Sprawdź aktualizacje", - "Clear": "Wyczyść", - "Click to try another server...": "Kliknij by wybrać inny serwer...", - "Client RPC": "Klient RPC", - "Close": "Zamknij", - "Confirm wallet password": "Potwierdź hasło do portfela", - "Connect to a local node (localhost)": "Połącz się z węzłem lokalnym (localhost)", - "Connecting to": "Łączenie z", - "Connection": "Połączono", - "Connections": "Połączenia", - "Connects to a Remote Rusty Kaspa Node via wRPC.": "Łączy się ze zdalnym węzłem Rusty Kaspa za pośrednictwem wRPC.", - "Conservative": "Konserwatywny", - "Continue": "Kontynuuj", - "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.": "Wkład w ten projekt bezpośrednio napędza oprogramowanie Kaspa NG i jego ekosystem.", - "Copied to clipboard": "Skopiowane do schowka", - "Copy": "Kopiuj", - "Copy logs to clipboard": "Skopiuj logi do schowka", - "Create New Account": "Stwórz nowe konto", - "Create New Wallet": "Utwórz nowy portfel", - "Create new wallet": "Utwórz nowy portfel", - "Creating Account": "Tworzenie konta", - "Creating Wallet": "Tworzenie portfela", - "Custom": "Niestandardowe", - "Custom Public Node": "Niestandardowy węzeł publiczny", - "Custom arguments:": "Argumenty niestandardowe:", + "Cache Memory Size": "Cache Memory Size", + "Cancel": "Cancel", + "Cannot delete data folder while the node is running": "Cannot delete data folder while the node is running", + "Capture a screenshot": "Capture a screenshot", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Center VSPC", + "Chain Blocks": "Chain Blocks", + "Change Address": "Change Address", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Check for Software Updates on GitHub", + "Check for Updates": "Check for Updates", + "Clear": "Clear", + "Click to try another server...": "Click to try another server...", + "Client RPC": "Client RPC", + "Close": "Close", + "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Confirm wallet password", + "Connecting to": "Connecting to", + "Connection": "Connection", + "Connections": "Connections", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connects to a Remote Rusty Kaspa Node via wRPC.", + "Conservative": "Conservative", + "Continue": "Continue", + "Copied to clipboard": "Copied to clipboard", + "Copy": "Copy", + "Copy logs to clipboard": "Copy logs to clipboard", + "Create New Wallet": "Create New Wallet", + "Create Wallet": "Create Wallet", + "Create new wallet": "Create new wallet", + "Creating Account": "Creating Account", + "Creating Wallet": "Creating Wallet", + "Custom": "Custom", + "Custom Public Node": "Custom Public Node", + "Custom arguments:": "Custom arguments:", + "Custom data storage folder": "Custom data storage folder", "DAA": "DAA", - "DAA Offset": "Przesunięcie DAA", - "DAA Range": "Zakres DAA", - "DB Blocks": "Bloki DB", - "DB Headers": "Nagłówki DB", - "Database Blocks": "Bloki baz danych", - "Database Headers": "Nagłówki bazy danych", - "Decrypting wallet, please wait...": "Odszyfrowywanie portfela, proszę czekać...", - "Default": "Domyślny", - "Default Account Name": "Domyślna nazwa konta", - "Delete Data Folder": "Usuń folder danych", - "Dependencies": "Zależności", - "Derivation Indexes": "Indeksy pochodne", - "Details": "Szczegóły", - "Developer Mode": "Tryb dewelopera", - "Developer Resources": "Zasoby dla programistów", - "Developer mode enables advanced and experimental features": "Tryb programisty umożliwia korzystanie z zaawansowanych i eksperymentalnych funkcji", - "Difficulty": "Trudność", - "Dimensions": "Wymiary", - "Disable password score restrictions": "Wyłącz ograniczenia punktacji hasła", - "Disabled": "Wyłączony", - "Disables node connectivity (Offline Mode).": "Wyłącza łączność węzła (tryb offline).", + "DAA Offset": "DAA Offset", + "DAA Range": "DAA Range", + "DB Blocks": "DB Blocks", + "DB Headers": "DB Headers", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", + "Database Blocks": "Database Blocks", + "Database Headers": "Database Headers", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Decrypting wallet, please wait...", + "Default": "Default", + "Default Account Name": "Default Account Name", + "Delete Data Folder": "Delete Data Folder", + "Dependencies": "Dependencies", + "Derivation Indexes": "Derivation Indexes", + "Details": "Details", + "Developer Mode": "Developer Mode", + "Developer Resources": "Developer Resources", + "Developer mode enables advanced and experimental features": "Developer mode enables advanced and experimental features", + "Difficulty": "Difficulty", + "Dimensions": "Dimensions", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Disabled", + "Disables node connectivity (Offline Mode).": "Disables node connectivity (Offline Mode).", "Discord": "Discord", - "Donations": "Darowizny", - "Double click on the graph to re-center...": "Kliknij dwukrotnie wykres, aby ponownie wyśrodkować...", + "Donations": "Donations", + "Double click on the graph to re-center...": "Double click on the graph to re-center...", "ECDSA": "ECDSA", - "Enable Market Monitor": "Włącz Monitor rynku", - "Enable UPnP": "Włącz UPnP", - "Enable custom daemon arguments": "Włącz niestandardowe argumenty demona", - "Enable experimental features": "Włącz funkcje eksperymentalne", - "Enable gRPC": "Włącz gRPC", - "Enable optional BIP39 passphrase": "Włącz opcjonalne hasło BIP39", - "Enable screen capture": "Włącz przechwytywanie ekranu", - "Enables features currently in development": "Włącza funkcje testowe - aktualnie opracowywane", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Enable Market Monitor", + "Enable UPnP": "Enable UPnP", + "Enable custom daemon arguments": "Enable custom daemon arguments", + "Enable experimental features": "Enable experimental features", + "Enable gRPC": "Enable gRPC", + "Enable optional BIP39 passphrase": "Enable optional BIP39 passphrase", + "Enable screen capture": "Enable screen capture", + "Enables features currently in development": "Enables features currently in development", "Enter": "Enter", - "Enter account name (optional)": "Wpisz nazwę konta (opcjonalnie)", - "Enter first account name": "Wpisz pierwszą nazwę konta", - "Enter phishing hint": "Wpisz wskazówkę dotyczącą phishingu", - "Enter the amount": "Wprowadź kwotę", - "Enter the password for your wallet": "Wpisz hasło do swojego portfela", - "Enter the password to unlock your wallet": "Wprowadź hasło, aby odblokować swój portfel", - "Enter wallet name": "Wpisz nazwę portfela", - "Enter wallet password": "Wprowadź hasło do portfela", - "Enter your wallet secret": "Wprowadź sekret swojego portfela", - "Explorer": "Eksplorator", - "Export Wallet Data": "Eksportuj dane portfela", - "Faucet": "Kran", - "File Handles": "Uchwyty plików", - "Filename:": "Nazwa pliku:", - "Final Amount:": "Końcowa kwota:", - "GitHub Release": "Wydanie GitHuba", - "Go to Settings": "Przejdź do ustawień", - "Handles": "Uchwyty", - "Headers": "Nagłówki", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Enter account name (optional)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Enter first account name", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Enter phishing hint", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Enter the amount", + "Enter the password for your wallet": "Enter the password for your wallet", + "Enter the password to unlock your wallet": "Enter the password to unlock your wallet", + "Enter wallet name": "Enter wallet name", + "Enter wallet password": "Enter wallet password", + "Enter your wallet secret": "Enter your wallet secret", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Explorer", + "Export Wallet Data": "Export Wallet Data", + "FIRST": "FIRST", + "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "File Handles", + "File contents": "File contents", + "Filename:": "Filename:", + "Final Amount:": "Final Amount:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub Release", + "Go to Settings": "Go to Settings", + "Good": "Good", + "Handles": "Handles", + "Headers": "Headers", + "High": "High", "IBD:": "IBD:", - "If not specified, the account will be represented by the numeric id.": "Jeśli nie zostanie określony, konto będzie reprezentowane przez identyfikator numeryczny.", - "If you are running locally, use: ": "Jeśli używasz lokalnie, użyj: ", - "Import existing": "Importuj istniejące", - "Inbound": "Przychodzące", - "Include QoS Priority Fees": "Uwzględnij opłaty za priorytet QoS", - "Integrated Daemon": "Zintegrowany demon", - "Invalid daemon arguments": "Nieprawidłowe argumenty demona", - "Invalid network type - expected: testnet-10 connected to: testnet-11": "Nieprawidłowy typ sieci - oczekiwano: testnet-10 podłączony do: testnet-11", - "Invalid wRPC URL": "Nieprawidłowy adres URL wRPC", - "Json Active Connections": "Aktywne połączenia Jsona", - "Json Connection Attempts": "Próby połączenia Json", - "Json Handshake Failures": "Błędy Handshake Json", - "Kaspa Discord": "Discord Kaspy", - "Kaspa Integration Guide": "Przewodnik integracji Kaspy", + "If not specified, the account will be represented by the numeric id.": "If not specified, the account will be represented by the numeric id.", + "If you are running locally, use: ": "If you are running locally, use: ", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Import existing", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Inbound", + "Integrated Daemon": "Integrated Daemon", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Invalid daemon arguments", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Invalid wRPC URL", + "Json Active Connections": "Json Active Connections", + "Json Connection Attempts": "Json Connection Attempts", + "Json Handshake Failures": "Json Handshake Failures", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Kaspa Integration Guide", "Kaspa NG": "Kaspa NG", - "Kaspa NG Online": "Kaspa NG Online", - "Kaspa NG Web App": "Aplikacja internetowa Kaspa NG", - "Kaspa NG on GitHub": "Kaspa NG na GitHubie", + "Kaspa NG on GitHub": "Kaspa NG on GitHub", "Kaspa NG online": "Kaspa NG online", - "Kaspa Network": "Sieć Kaspa", - "Kaspa Node": "Węzeł Kaspa", - "Kaspa p2p Network & Node Connection": "Sieć p2p Kaspa oraz połączenie z węzłem", - "Kaspa p2p Node": "Węzeł Kaspa p2p", - "Kaspa p2p Node & Connection": "Węzeł Kaspa p2p", - "Key Perf.": "Kluczowa wydajność", - "Language:": "Język:", - "Large (1 BPS)": "Duży (1 BPS)", - "Levels": "Poziomy", - "License Information": "Informacje o licencji", - "Local": "Lokalny", - "Local p2p Node Configuration": "Konfiguracja lokalnego węzła p2p", - "Logs": "Dzienniki", + "Kaspa Network": "Kaspa Network", + "Kaspa Node": "Kaspa Node", + "Kaspa p2p Network & Node Connection": "Kaspa p2p Network & Node Connection", + "Kaspa p2p Node": "Kaspa p2p Node", + "Kaspa p2p Node & Connection": "Kaspa p2p Node & Connection", + "Key Perf.": "Key Perf.", + "LAST": "LAST", + "Language:": "Language:", + "Large (1 BPS)": "Large (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Levels", + "License Information": "License Information", + "Local": "Local", + "Local p2p Node Configuration": "Local p2p Node Configuration", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Logs", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", "MT": "MT", - "Main Kaspa network": "Główna sieć Kaspa", - "Mainnet": "Sieć główna", - "Mainnet (Main Kaspa network)": "Mainnet (główna sieć Kaspa)", - "Managed by the Rusty Kaspa daemon": "Zarządzany przez demona Rusty Kaspa", - "Market": "Rynek", - "Market Cap": "Kapitalizacja rynkowa", - "Market Monitor": "Monitor rynku", - "Mass Processed": "Przetworzone masowo", - "Medium Narrow": "Średnio wąski", - "Medium Wide": "Średnio szeroki", - "Memory": "Pamięć", - "Mempool": "Pamięć", - "Mempool Size": "Rozmiar pamięci", - "Metrics": "Metryka", - "Metrics are not currently available": "Dane nie są obecnie dostępne", - "NPM Modules for NodeJS": "Moduły NPM dla NodeJS", - "Network": "Sieć", - "Network Difficulty": "Trudność sieci", - "Network Fees:": "Opłaty sieciowe:", - "Network Interface": "Interfejs sieciowy", - "Network Peers": "Peers Sieci", - "No peers": "Brak Peers", - "No public node selected - please select a public node": "Nie wybrano węzła publicznego — wybierz węzeł publiczny", - "No transactions": "Brak transakcji", - "No wallets found, please create a new wallet": "Nie znaleziono portfeli, proszę utworzyć nowy.", - "Node": "Węzeł", - "Node Status": "Stan węzła", - "Noise": "Hałas", - "None": "Brak", - "Not Connected": "Nie połączony", - "Not connected": "Nie połączony", - "Notifications": "Powiadomienia", - "Open Data Folder": "Otwórz folder danych", - "Opening wallet:": "Otwieranie portfela:", - "Optional": "Opcjonalny", - "Other operations": "Inne operacje", - "Outbound": "Wychodzące", - "Overview": "Przegląd", - "Parents": "Rodzice", - "Past Median Time": "Przeszły średni czas", - "Payment & Recovery Password": "Zapłata", - "Payment Request": "Żądanie zapłaty", + "Main Kaspa network": "Main Kaspa network", + "Mainnet": "Mainnet", + "Managed by the Rusty Kaspa daemon": "Managed by the Rusty Kaspa daemon", + "Market": "Market", + "Market Cap": "Market Cap", + "Market Monitor": "Market Monitor", + "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Medium Narrow", + "Medium Wide": "Medium Wide", + "Memory": "Memory", + "Mempool": "Mempool", + "Mempool Size": "Mempool Size", + "Metrics": "Metrics", + "Metrics are not currently available": "Metrics are not currently available", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM Modules for NodeJS", + "Network": "Network", + "Network Difficulty": "Network Difficulty", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Network Interface", + "Network Peers": "Network Peers", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "No peers", + "No public node selected - please select a public node": "No public node selected - please select a public node", + "No transactions": "No transactions", + "No wallets found, please create a new wallet": "No wallets found, please create a new wallet", + "Node": "Node", + "Node Status": "Node Status", + "Noise": "Noise", + "None": "None", + "Normal": "Normal", + "Not Connected": "Not Connected", + "Not connected": "Not connected", + "Notifications": "Notifications", + "Open Data Folder": "Open Data Folder", + "Opening wallet:": "Opening wallet:", + "Optional": "Optional", + "Options": "Options", + "Other operations": "Other operations", + "Outbound": "Outbound", + "Overview": "Overview", + "PREV": "PREV", + "Parents": "Parents", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Past Median Time", + "Payment & Recovery Password": "Payment & Recovery Password", + "Payment Request": "Payment Request", + "Payment request to account: {account}": "Payment request to account: {account}", "Peers": "Peers", - "Performance": "Wydajność", - "Phishing Hint": "Wskazówka dotycząca phishingu", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performance", + "Phishing Hint": "Phishing Hint", "Ping:": "Ping:", - "Please Confirm Deletion": "Proszę potwierdzić usunięcie", - "Please configure your Kaspa NG settings": "Proszę skonfigurować ustawienia Kaspa NG", - "Please connect to Kaspa p2p node": "Proszę połączyć się z węzłem p2p Kaspa", - "Please create a stronger password": "Utwórz silniejsze hasło", - "Please enter": "Podaj", - "Please enter KAS amount to send": "Proszę wpisać kwotę KAS do wysłania", - "Please enter an amount": "Proszę wpisać kwotę", - "Please enter the account name": "Proszę wpisać nazwę konta", - "Please enter the wallet secret": "Proszę podać sekret portfela", - "Please note that this is a beta release. Until this message is removed, please avoid using the wallet with mainnet funds.": "Należy pamiętać, że jest to wersja alfa. Do momentu usunięcia tej wiadomości nie łącz portfela z Mainnet.", - "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Pamiętaj, że kopiowanie do schowka niesie ze sobą ryzyko narażenia Twojego mnemonika na złośliwe oprogramowanie.", - "Please select an account type": "Proszę wybrać typ konta", - "Please select the private key to export": "Wybierz klucz prywatny do wyeksportowania", - "Please set node to 'Disabled' to delete the data folder": "Aby usunąć folder danych, ustaw węzeł na 'Wyłączony'.", - "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Proszę podać nazwę konta domyślnego. ", - "Please specify the name of the new wallet": "Podaj nazwę nowego portfela", - "Please specify the private key type for the new wallet": "Proszę określić typ klucza prywatnego dla nowego portfela", - "Please wait for the node to sync or connect to a remote node.": "Poczekaj, aż węzeł się zsynchronizuje lub połączy się z węzłem zdalnym.", - "Please wait for the node to sync...": "Poczekaj, aż węzeł się zsynchronizuje...", - "Please wait...": "Proszę czekać...", - "Presets": "Ustawienia wstępne", - "Price": "Cena", - "Private Key Mnemonic": "Mnemonik klucza prywatnego", - "Processed Bodies": "Przetworzone ciała", - "Processed Dependencies": "Przetworzone zależności", - "Processed Headers": "Przetworzone nagłówki", - "Processed Mass Counts": "Liczniki przetworzonej masy", - "Processed Transactions": "Przetworzone transakcje", - "Protocol:": "Protokół:", - "Public Node": "Węzeł publiczny", - "Public Nodes": "Węzły publiczne", - "Public Server": "Serwer publiczny", - "Public p2p Nodes for": "Publiczne węzły p2p dla", - "Random Public Node": "Losowy węzeł publiczny", - "Range:": "Zakres:", - "Receive Address": "Adres do odbioru", - "Recommended arguments for the remote node: ": "Zalecane argumenty dla zdalnego węzła: ", - "Remote": "Zdalny", - "Remote Connection:": "Zdalne połączenie:", - "Remote p2p Node Configuration": "Zdalna konfiguracja węzła p2p", - "Removes security restrictions, allows for single-letter passwords": "Usuwa ograniczenia bezpieczeństwa, umożliwia stosowanie haseł jednoliterowych", - "Reset Settings": "Resetowanie ustawień", - "Reset VSPC": "Zresetuj VSPC", - "Resident Memory": "Pamięć rezydenta", - "Resources": "Zasoby", - "Resulting daemon arguments:": "Wynikowe argumenty demona:", - "Rust Wallet SDK": "Pakiet SDK portfela Rust", - "Rusty Kaspa on GitHub": "Rusty Kaspa na GitHubie", - "Secret is too weak": "Sekret jest za słaby", - "Secret score:": "Sekretny wynik:", - "Select Account": "Wybierz Konto", - "Select Available Server": "Wybierz Dostępny serwer", - "Select Private Key Type": "Wybierz Typ klucza prywatnego", - "Select Public Node": "Wybierz węzeł publiczny", - "Select Wallet": "Wybierz Portfel", - "Select a wallet to unlock": "Wybierz portfel do odblokowania", - "Send": "Wyślij", - "Services": "Usługi", - "Settings": "Ustawienia", - "Show DAA": "Pokaż DAA", - "Show Grid": "Pokaż siatkę", - "Show VSPC": "Pokaż VSPC", - "Show balances in alternate currencies for testnet coins": "Pokaż salda w alternatywnych walutach dla monet testnetowych", - "Show password": "Pokaż hasło", - "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Pokazuje salda w alternatywnych walutach (BTC, USD) podczas korzystania z monet testnetowych, tak jakbyś był w sieci głównej", - "Skip": "Pomiń", - "Small (10 BPS)": "Mały (10 BPS)", - "Spread": "Rozpowszechnienie", - "Stage": "Scena", - "Starting...": "Startowy...", - "Statistics": "Statystyka", - "Stor Read": "Odczyty dysku", - "Stor Write": "Zapisy dysku", - "Storage": "Dysk", - "Storage Read": "Odczyty pamięci", - "Storage Read/s": "Pamięć Odczyt/s", - "Storage Write": "Zapis do pamięci", - "Storage Write/s": "Pamięć Zapis/s", - "Submitted Blocks": "Przesłane bloki", - "Supporting Kaspa NG development": "Wspieranie rozwoju Kaspa NG", - "Syncing Cryptographic Proof...": "Synchronizowanie dowodu kryptograficznego...", - "Syncing DAG Blocks...": "Synchronizowanie bloków DAG...", - "Syncing Headers...": "Synchronizowanie nagłówków...", - "Syncing UTXO entries...": "Synchronizowanie wpisów UTXO...", - "Syncing...": "Synchronizowanie...", + "Please Confirm Deletion": "Please Confirm Deletion", + "Please configure your Kaspa NG settings": "Please configure your Kaspa NG settings", + "Please connect to Kaspa p2p node": "Please connect to Kaspa p2p node", + "Please create a stronger password": "Please create a stronger password", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Please enter an amount", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Please enter the account name", + "Please enter the wallet secret": "Please enter the wallet secret", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Please select an account type", + "Please select export type": "Please select export type", + "Please select the private key to export": "Please select the private key to export", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Please set node to 'Disabled' to delete the data folder", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.", + "Please specify the name of the new wallet": "Please specify the name of the new wallet", + "Please specify the private key type for the new wallet": "Please specify the private key type for the new wallet", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Please wait for the node to sync or connect to a remote node.", + "Please wait for the node to sync...": "Please wait for the node to sync...", + "Please wait...": "Please wait...", + "Presets": "Presets", + "Price": "Price", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Processed Bodies", + "Processed Dependencies": "Processed Dependencies", + "Processed Headers": "Processed Headers", + "Processed Mass Counts": "Processed Mass Counts", + "Processed Transactions": "Processed Transactions", + "Processing...": "Processing...", + "Protocol:": "Protocol:", + "Public Node": "Public Node", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Random Public Node", + "Range:": "Range:", + "Receive Address": "Receive Address", + "Recommended arguments for the remote node: ": "Recommended arguments for the remote node: ", + "Redistributables": "Redistributables", + "Remote": "Remote", + "Remote Connection:": "Remote Connection:", + "Remote p2p Node Configuration": "Remote p2p Node Configuration", + "Removes security restrictions, allows for single-letter passwords": "Removes security restrictions, allows for single-letter passwords", + "Reset Settings": "Reset Settings", + "Reset VSPC": "Reset VSPC", + "Resident Memory": "Resident Memory", + "Resources": "Resources", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Resulting daemon arguments:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa on GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Secret is too weak", + "Secret score:": "Secret score:", + "Select Account": "Select Account", + "Select Private Key Type": "Select Private Key Type", + "Select Public Node": "Select Public Node", + "Select Wallet": "Select Wallet", + "Select a wallet to unlock": "Select a wallet to unlock", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Send", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Services", + "Settings": "Settings", + "Show DAA": "Show DAA", + "Show Grid": "Show Grid", + "Show VSPC": "Show VSPC", + "Show balances in alternate currencies for testnet coins": "Show balances in alternate currencies for testnet coins", + "Show passphrase": "Show passphrase", + "Show password": "Show password", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet", + "Skip": "Skip", + "Small (10 BPS)": "Small (10 BPS)", + "Spread": "Spread", + "Stage": "Stage", + "Starting...": "Starting...", + "Statistics": "Statistics", + "Stop": "Stop", + "Stor Read": "Stor Read", + "Stor Write": "Stor Write", + "Storage": "Storage", + "Storage Read": "Storage Read", + "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", + "Storage Write": "Storage Write", + "Storage Write/s": "Storage Write/s", + "Strong": "Strong", + "Submitted Blocks": "Submitted Blocks", + "Syncing Cryptographic Proof...": "Syncing Cryptographic Proof...", + "Syncing DAG Blocks...": "Syncing DAG Blocks...", + "Syncing Headers...": "Syncing Headers...", + "Syncing UTXO entries...": "Syncing UTXO entries...", + "Syncing...": "Syncing...", "System": "System", "TPS": "TPS", - "Testnet 10": "Sieć testowa 10", - "Testnet 10 (1 BPS)": "Sieć testowa 10 (1 BPS)", - "Testnet 11": "Sieć testowa 11", - "Testnet 11 (10 BPS)": "Sieć testowa 11 (10 BPS)", - "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.": "Testnet 11 nie jest jeszcze udostępniony do testów publicznych. Możesz jednak skonfigurować węzeł tak, aby łączył się z prywatną siecią testową w panelu Ustawienia.", - "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Oprogramowanie Kaspa NG reprezentuje ciągły wysiłek skupiony na budowaniu najnowocześniejszej platformy oprogramowania dedykowanej sieci kryptowalut Kaspa BlockDAG. Oprogramowanie to skupia się na bezpieczeństwie, prywatności, wydajności i decentralizacji.", - "The balance may be out of date during node sync": "Saldo może być nieaktualne podczas synchronizacji węzła", - "The following will guide you through the process of creating or importing a wallet.": "Ta instrukcja przeprowadzi Cię przez proces tworzenia lub importowania portfela.", - "The node is currently syncing with the Kaspa p2p network.": "Węzeł aktualnie synchronizuje się z siecią p2p Kaspa.", - "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "Węzeł aktualnie synchronizuje się z siecią p2p Kaspa. ", - "The node is spawned as a child daemon process (recommended).": "Węzeł jest uruchamiany jako proces demona podrzędnego (zalecane).", - "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "Węzeł działa w ramach procesu aplikacyjnego Kaspa-NG. Zmniejsza to obciążenie komunikacyjne (eksperymentalne).", - "Theme Color": "Kolor motywu", - "Theme Color:": "Kolor motywu:", - "Theme Style": "Styl motywu", - "Theme Style:": "Styl motywu:", - "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Ten portfel nigdy nie poprosi Cię o podanie tego mnemonicznego wyrażenia, chyba że ręcznie zainicjujesz odzyskiwanie klucza prywatnego.", - "Threshold": "Próg", - "Time Offset:": "Przesunięcie czasu:", - "Tip Hashes": "Wskazówki Hashe", - "Tools ⏷": "Narzędzia ⏷", - "Total Rx": "Całkowity odbiór", - "Total Rx/s": "Całkowity Rx/s", - "Total Tx": "Całkowity przesył", - "Total Tx/s": "Całkowity Tx/s", - "Track in the background": "Śledź w tle", - "Transactions": "Transakcje", - "Transactions:": "Transakcje:", - "Type": "Typ", - "UTXO Manager": "Menedżer UTXO", - "UTXOs": "UTXO", - "UTXOs:": "UTXO:", - "Unable to change node settings until the problem is resolved": "Nie można zmienić ustawień węzła, dopóki problem nie zostanie rozwiązany", - "Unlock": "Odblokuj", - "Unlock Wallet": "Odblokuj portfel", - "Unlocking": "Odblokowanie", - "Update Available to version": "Aktualizacja Dostępna dla wersji", - "Updating...": "Aktualizowanie...", - "Uptime:": "Czas pracy:", - "Use 50%-75% of available system memory": "Użyj 50%-75% dostępnej pamięci systemowej", - "Use all available system memory": "Wykorzystaj całą dostępną pamięć systemową", - "User Agent": "Agent użytkownika", - "User Interface": "Interfejs użytkownika", - "Very dangerous (may be cracked within few seconds)": "Bardzo niebezpieczne (może zostać złamane w ciągu kilku sekund)", - "Virt Parents": "Virt Rodzice", - "Virtual DAA Score": "Wirtualny wynik DAA", - "Virtual Memory": "Pamięć wirtualna", - "Virtual Parent Hashes": "Wirtualne skróty nadrzędne", - "Volume": "Tom", - "WASM SDK for JavaScript and TypeScript": "WASM SDK dla JavaScript i TypeScript", - "Wallet": "Portfel", - "Wallet Created": "Portfel utworzono", - "Wallet Encryption Password": "Hasło szyfrowania portfela", - "Wallet Name": "Nazwa portfela", - "Wallet Secret": "Sekret portfela", - "Wallet password is used to encrypt your wallet data.": "Hasło do portfela służy do szyfrowania danych portfela.", - "Wallet:": "Portfel:", - "We greatly appreciate your help in backing our efforts.": "Jesteśmy bardzo wdzięczni za pomoc we wsparciu naszych wysiłków.", - "Welcome to Kaspa NG": "Witamy w Kaspa NG", - "Xpub Keys": "Klucze Xpuba", - "You are currently not connected to the Kaspa node.": "Obecnie nie masz połączenia z węzłem Kaspa.", - "You can configure remote connection in Settings": "Połączenie zdalne możesz skonfigurować w Ustawieniach", - "You can create multiple wallets, but only one wallet can be open at a time.": "Możesz utworzyć wiele portfeli, ale jednocześnie może być otwarty tylko jeden.", - "You must be connected to a node...": "Musisz być podłączony do węzła...", - "Your default wallet private key mnemonic is:": "Twój domyślny mnemonik klucza prywatnego portfela to:", - "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Twoja fraza mnemoniczna umożliwia odtworzenie klucza prywatnego. Osoba mająca dostęp do tego mnemonika będzie miała pełną kontrolę nad przechowywaną w nim Kaspą. Chroń swój mnemonik. Zapisz go i przechowuj w sejfie, najlepiej w miejscu ognioodpornym. Nie przechowuj swojego mnemonika na tym komputerze lub urządzeniu mobilnym. Ten portfel nigdy nie poprosi Cię o podanie tego mnemonicznego wyrażenia, chyba że ręcznie zainicjujesz odzyskiwanie klucza prywatnego.", - "Your private key mnemonic is:": "Twój mnemonik klucza prywatnego to:", - "Your wallet has been created and is ready to use.": "Twój portfel został utworzony i jest gotowy do użycia.", - "Zoom": "Powiększenie", - "amount to send": "kwota do wysłania", - "bye!": "do widzenia!", - "gRPC Network Interface & Port": "Interfejs sieciowy gRPC", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.", + "The balance may be out of date during node sync": "The balance may be out of date during node sync", + "The following will guide you through the process of creating or importing a wallet.": "The following will guide you through the process of creating or importing a wallet.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "The node is currently syncing with the Kaspa p2p network.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Theme Color", + "Theme Color:": "Theme Color:", + "Theme Style": "Theme Style", + "Theme Style:": "Theme Style:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Threshold": "Threshold", + "Time Offset:": "Time Offset:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Track in the background", + "Transactions": "Transactions", + "Transactions:": "Transactions:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Type", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO Manager", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Unable to change node settings until the problem is resolved", + "Unable to store settings": "Unable to store settings", + "Unlock": "Unlock", + "Unlock Wallet": "Unlock Wallet", + "Unlocking": "Unlocking", + "Update Available to version": "Update Available to version", + "Updating...": "Updating...", + "Uptime:": "Uptime:", + "Use 50%-75% of available system memory": "Use 50%-75% of available system memory", + "Use all available system memory": "Use all available system memory", + "User Agent": "User Agent", + "User Interface": "User Interface", + "Very dangerous (may be cracked within few seconds)": "Very dangerous (may be cracked within few seconds)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Virt Parents", + "Virtual DAA Score": "Virtual DAA Score", + "Virtual Memory": "Virtual Memory", + "Virtual Parent Hashes": "Virtual Parent Hashes", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", + "Wallet": "Wallet", + "Wallet Created": "Wallet Created", + "Wallet Encryption Password": "Wallet Encryption Password", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Wallet Name", + "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Wallet password is used to encrypt your wallet data.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Wallet:", + "We greatly appreciate your help in backing our efforts.": "We greatly appreciate your help in backing our efforts.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Welcome to Kaspa NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "You are currently not connected to the Kaspa node.", + "You can configure remote connection in Settings": "You can configure remote connection in Settings", + "You can create multiple wallets, but only one wallet can be open at a time.": "You can create multiple wallets, but only one wallet can be open at a time.", + "You must be connected to a node...": "You must be connected to a node...", + "Your default wallet private key mnemonic is:": "Your default wallet private key mnemonic is:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Your private key mnemonic is:", + "Your wallet has been created and is ready to use.": "Your wallet has been created and is ready to use.", + "Zoom": "Zoom", + "bye!": "bye!", + "gRPC Network Interface & Port": "gRPC Network Interface & Port", "gRPC Rx": "gRPC Rx", "gRPC Rx/s": "gRPC Rx/s", "gRPC Tx": "gRPC Tx", "gRPC Tx/s": "gRPC Tx/s", - "of": "z", - "p2p RPC": "p2pRPC", - "p2p Rx": "odbiór p2p", + "of": "of", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", "p2p Rx/s": "p2p Rx/s", "p2p Tx": "p2p Tx", - "p2p Tx/s": "p2p Transmisja/s", + "p2p Tx/s": "p2p Tx/s", "peer": "peer", "peers": "peers", - "wRPC Borsh Rx": "Odbiór wRPC Borsh", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", - "wRPC Borsh Tx": "Wysyłka wRPC Borsh", + "wRPC Borsh Tx": "wRPC Borsh Tx", "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", - "wRPC Connection Settings": "Ustawienia połączenia wRPC", - "wRPC Encoding:": "Kodowanie wRPC:", - "wRPC JSON Rx": "Odbiór wRPC JSON", + "wRPC Connection Settings": "wRPC Connection Settings", + "wRPC Encoding:": "wRPC Encoding:", + "wRPC JSON Rx": "wRPC JSON Rx", "wRPC JSON Rx/s": "wRPC JSON Rx/s", - "wRPC JSON Tx": "Wysyłka wRPC JSON", + "wRPC JSON Tx": "wRPC JSON Tx", "wRPC JSON Tx/s": "wRPC JSON Tx/s", - "wRPC URL:": "Adres URL wRPC:" + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" }, - "pt": {}, - "ro": { - "1 BPS test network": "1 BPS rețea de test", - "10 BPS test network": "Rețea de testare 10 BPS", - "12 word mnemonic": "Mnemonic de 12 cuvinte", - "24 word mnemonic": "Mnemonic de 24 de cuvinte", - "24h Change": "Schimbare în ultimele 24 de ore", - "A binary at another location is spawned a child process (experimental, for development purposes only).": "Un binar dintr-o altă locație este generat de un proces copil (experimental, numai în scopuri de dezvoltare).", - "A random node will be selected on startup": "La pornire, va fi selectat un nod aleatoriu", - "A wallet is stored in a file on your computer.": "Un portofel este stocat într-un fișier pe computerul tău.", - "Account Index": "Index Cont", - "Account Name": "Nume Cont", - "Account:": "Cont:", - "Activate custom daemon arguments": "Activați argumentele personalizate ale daemonului", - "Active p2p Peers": "Perechi p2p active", - "Address derivation scan": "Scanează derivarea adreselor", - "Address:": "Adresă:", - "Advanced": "Avansat", - "All": "Tot", - "Allow custom arguments for the Rusty Kaspa daemon": "Permiteți argumente personalizate pentru daemonul Rusty Kaspa", - "Allows you to take screenshots from within the application": "Vă permite să realizați capturi de ecran din interiorul aplicației", - "Apply": "Aplică", - "Balance: N/A": "Balanță: N/A", - "Bandwidth": "Lățime de bandă", - "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Datorită accentului său pe securitate și performanță, acest software este dezvoltat în întregime în Rust, cerând semnificativ mai mult timp și efort în comparație cu alte software-uri moderne tradiționale bazate pe aplicații web.", - "Bezier Curves": "Curbe Bézier", + "ta": {}, + "te": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS test network", + "10 BPS test network": "10 BPS test network", + "12 word mnemonic": "12 word mnemonic", + "24 word mnemonic": "24 word mnemonic", + "24h Change": "24h Change", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "A binary at another location is spawned a child process (experimental, for development purposes only).", + "A random node will be selected on startup": "A random node will be selected on startup", + "A wallet is stored in a file on your computer.": "A wallet is stored in a file on your computer.", + "Account Index": "Account Index", + "Account Name": "Account Name", + "Account not found": "Account not found", + "Account:": "Account:", + "Activate custom daemon arguments": "Activate custom daemon arguments", + "Active p2p Peers": "Active p2p Peers", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Address derivation scan", + "Address:": "Address:", + "Advanced": "Advanced", + "All": "All", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Allow custom arguments for the Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Allows you to take screenshots from within the application", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Apply", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Balance: N/A", + "Bandwidth": "Bandwidth", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.", + "Bezier Curves": "Bezier Curves", "Block DAG": "Block DAG", - "Block Scale": "Scală de Blocuri", + "Block Scale": "Block Scale", "Blocks": "Blocks", "Bodies": "Bodies", - "Borsh Active Connections": "Conexiuni Active Borsh", - "Borsh Connection Attempts": "Încercări de Conexiune Borsh", - "Borsh Handshake Failures": "Eșecuri de Protocol Borsh Handshake", - "Build": "Construiește", - "CONNECTED": "CONECTAT", - "CPU": "Procesor", - "Cache Memory Size": "Mărimea Memoriei Cache", - "Cache Memory Size:": "Marimea Memoriei Cache", - "Cancel": "Anulează", - "Cannot delete data folder while the node is running": "Folderul de date nu poate fi șters în timp ce node-ul este pornit", - "Capture a screenshot": "Capturați o captură de ecran", + "Borsh Active Connections": "Borsh Active Connections", + "Borsh Connection Attempts": "Borsh Connection Attempts", + "Borsh Handshake Failures": "Borsh Handshake Failures", + "Build": "Build", + "CONNECTED": "CONNECTED", + "CPU": "CPU", + "Cache Memory Size": "Cache Memory Size", + "Cancel": "Cancel", + "Cannot delete data folder while the node is running": "Cannot delete data folder while the node is running", + "Capture a screenshot": "Capture a screenshot", + "Capture saved to {path}": "Capture saved to {path}", "Center VSPC": "Center VSPC", - "Chain Blocks": "Blocuri din lanț", - "Change Address": "Schimbă adresa", - "Check for Software Updates on GitHub": "Verificați actualizările de software pe GitHub", - "Check for Updates": "Verifică pentru actualizări", - "Clear": "Șterge", - "Click to try another server...": "Apasă pentru a încerca adăugarea unui alt server...", + "Chain Blocks": "Chain Blocks", + "Change Address": "Change Address", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Check for Software Updates on GitHub", + "Check for Updates": "Check for Updates", + "Clear": "Clear", + "Click to try another server...": "Click to try another server...", "Client RPC": "Client RPC", - "Close": "Închide", - "Confirm wallet password": "Confirmă parola portofelului", - "Connect to a local node (localhost)": "Conectați-vă la un nod local (localhost)", - "Connecting to": "Conectare la", - "Connection": "Conexiune", - "Connections": "Conexiuni", - "Connects to a Remote Rusty Kaspa Node via wRPC.": "Se conectează la un Nod Rusty Kaspa la Distanță prin wRPC.", - "Conservative": "Conservator", - "Continue": "Continuă", - "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.": "Contribuțiile orientate către acest proiect alimentează direct software-ul Kaspa NG și ecosistemul său.", - "Copied to clipboard": "Copiat în clipboard", - "Copy": "Copiază", - "Copy logs to clipboard": "Copiați jurnalele în clipboard", - "Create New Account": "Creează un cont nou", - "Create New Wallet": "Creați un Portofel Nou", - "Create new wallet": "Creează un portofel nou", - "Creating Account": "Contul se creează", - "Creating Wallet": "Portofelul se creează", - "Custom": "Personalizat", - "Custom Public Node": "Node Public Personalizat", - "Custom arguments:": "Argumente personalizate:", + "Close": "Close", + "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Confirm wallet password", + "Connecting to": "Connecting to", + "Connection": "Connection", + "Connections": "Connections", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connects to a Remote Rusty Kaspa Node via wRPC.", + "Conservative": "Conservative", + "Continue": "Continue", + "Copied to clipboard": "Copied to clipboard", + "Copy": "Copy", + "Copy logs to clipboard": "Copy logs to clipboard", + "Create New Wallet": "Create New Wallet", + "Create Wallet": "Create Wallet", + "Create new wallet": "Create new wallet", + "Creating Account": "Creating Account", + "Creating Wallet": "Creating Wallet", + "Custom": "Custom", + "Custom Public Node": "Custom Public Node", + "Custom arguments:": "Custom arguments:", + "Custom data storage folder": "Custom data storage folder", "DAA": "DAA", - "DAA Offset": "DAA offset", - "DAA Range": "Interval DAA", - "DB Blocks": "Blocuri DB", - "DB Headers": "Antete DB", - "Database Blocks": "Bolcuri Baza de Date", - "Database Headers": "Antete Baza de Date", - "Decrypting wallet, please wait...": "Decriptarea portofelului, vă rugăm să așteptați...", - "Default": "Implicit", - "Default Account Name": "Numele Contului Implicit", - "Delete Data Folder": "Șterge Folderul de Date", - "Dependencies": "Dependențe", - "Derivation Indexes": "Indecși de Derivare", - "Details": "Detalii", - "Developer Mode": "Mod Dezvoltare", - "Developer Resources": "Resurse pentru Dezvoltatori", - "Developer mode enables advanced and experimental features": "Modul dezvoltator activează funcționalități avansate și experimentale", - "Difficulty": "Dificultate", - "Dimensions": "Dimensiuni", - "Disable password score restrictions": "Dezactivați restricțiile de scor pentru parolă", - "Disabled": "Dezactivat", - "Disables node connectivity (Offline Mode).": "Dezactivează conectivitatea cu nodurile (Mod Offline).", + "DAA Offset": "DAA Offset", + "DAA Range": "DAA Range", + "DB Blocks": "DB Blocks", + "DB Headers": "DB Headers", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", + "Database Blocks": "Database Blocks", + "Database Headers": "Database Headers", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Decrypting wallet, please wait...", + "Default": "Default", + "Default Account Name": "Default Account Name", + "Delete Data Folder": "Delete Data Folder", + "Dependencies": "Dependencies", + "Derivation Indexes": "Derivation Indexes", + "Details": "Details", + "Developer Mode": "Developer Mode", + "Developer Resources": "Developer Resources", + "Developer mode enables advanced and experimental features": "Developer mode enables advanced and experimental features", + "Difficulty": "Difficulty", + "Dimensions": "Dimensions", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Disabled", + "Disables node connectivity (Offline Mode).": "Disables node connectivity (Offline Mode).", "Discord": "Discord", - "Donations": "Donații", - "Double click on the graph to re-center...": "Dați dublu clic pe grafic pentru a re-centra...", + "Donations": "Donations", + "Double click on the graph to re-center...": "Double click on the graph to re-center...", "ECDSA": "ECDSA", - "Enable Market Monitor": "Activați Monitorul de Piață", - "Enable UPnP": "Activează UPnP", - "Enable custom daemon arguments": "Activați argumentele demon personalizate", - "Enable experimental features": "Activare funcționalități experimentale", - "Enable gRPC": "Activează gRPC", - "Enable optional BIP39 passphrase": "Activare frază secretă BIP39 opțională", - "Enable screen capture": "Activați captura de ecran", - "Enables features currently in development": "Activează funcționalități aflate în dezvoltare în prezent", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Enable Market Monitor", + "Enable UPnP": "Enable UPnP", + "Enable custom daemon arguments": "Enable custom daemon arguments", + "Enable experimental features": "Enable experimental features", + "Enable gRPC": "Enable gRPC", + "Enable optional BIP39 passphrase": "Enable optional BIP39 passphrase", + "Enable screen capture": "Enable screen capture", + "Enables features currently in development": "Enables features currently in development", "Enter": "Enter", - "Enter account name (optional)": "Introdu numele contului (opțional)", - "Enter first account name": "Introduceți primul nume de cont", - "Enter phishing hint": "Introduceți indiciul pentru prevenirea phishing-ului", - "Enter the amount": "Intodu cantitatea", - "Enter the password for your wallet": "Introdu parola pentru portofelul tău", - "Enter the password to unlock your wallet": "Introduceți parola pentru a debloca portofelul", - "Enter wallet name": "Introdu numele portofelului", - "Enter wallet password": "Introduceți parola portofelului.", - "Enter your wallet secret": "Introduceți secretul portofelului dumneavoastră", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Enter account name (optional)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Enter first account name", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Enter phishing hint", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Enter the amount", + "Enter the password for your wallet": "Enter the password for your wallet", + "Enter the password to unlock your wallet": "Enter the password to unlock your wallet", + "Enter wallet name": "Enter wallet name", + "Enter wallet password": "Enter wallet password", + "Enter your wallet secret": "Enter your wallet secret", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", "Explorer": "Explorer", - "Export Wallet Data": "Exporă Date Portofel", + "Export Wallet Data": "Export Wallet Data", + "FIRST": "FIRST", "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", "File Handles": "File Handles", - "Filename:": "Nume fișier:", - "Final Amount:": "Suma Finală:", + "File contents": "File contents", + "Filename:": "Filename:", + "Final Amount:": "Final Amount:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", "GitHub Release": "GitHub Release", - "Go to Settings": "Mergi la Setări", + "Go to Settings": "Go to Settings", + "Good": "Good", "Handles": "Handles", - "Headers": "Antete", + "Headers": "Headers", + "High": "High", "IBD:": "IBD:", - "If not specified, the account will be represented by the numeric id.": "Dacă nu este specificat, contul va fi reprezentat prin ID-ul numeric.", - "If you are running locally, use: ": "Dacă rulați local, utilizați:", - "Import existing": "Importați existent", - "Inbound": "Intrare", - "Include QoS Priority Fees": "Includeți Taxele de Prioritate QoS", - "Integrated Daemon": "Daemon integrat", - "Invalid daemon arguments": "Argumente daemon invalide", - "Invalid network type - expected: testnet-10 connected to: testnet-11": "Tip de rețea invalid - așteptat: testnet-10 conectat la: testnet-11", - "Invalid wRPC URL": "URL wRPC invalid", - "Json Active Connections": "Conexiuni Json Active", - "Json Connection Attempts": "Încercări de Conexiune JSON", - "Json Handshake Failures": "Eșecuri de Protocol JSON Handshake", - "Kaspa Discord": "Discord Kaspa", - "Kaspa Integration Guide": "Ghid de integrare Kaspa", + "If not specified, the account will be represented by the numeric id.": "If not specified, the account will be represented by the numeric id.", + "If you are running locally, use: ": "If you are running locally, use: ", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Import existing", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Inbound", + "Integrated Daemon": "Integrated Daemon", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Invalid daemon arguments", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Invalid wRPC URL", + "Json Active Connections": "Json Active Connections", + "Json Connection Attempts": "Json Connection Attempts", + "Json Handshake Failures": "Json Handshake Failures", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Kaspa Integration Guide", "Kaspa NG": "Kaspa NG", - "Kaspa NG Online": "Kaspa NG Online", - "Kaspa NG Web App": "Kaspa NG Web App", - "Kaspa NG on GitHub": "Kaspa NG pe GitHub", + "Kaspa NG on GitHub": "Kaspa NG on GitHub", "Kaspa NG online": "Kaspa NG online", - "Kaspa Network": "Rețea Kaspa", - "Kaspa Node": "Node Kaspa", - "Kaspa p2p Network & Node Connection": "Rețeaua p2p Kaspa & Conexiune Node", - "Kaspa p2p Node": "Nod Kaspa p2p", - "Kaspa p2p Node & Connection": "Nod și Conexiune Kaspa p2p", + "Kaspa Network": "Kaspa Network", + "Kaspa Node": "Kaspa Node", + "Kaspa p2p Network & Node Connection": "Kaspa p2p Network & Node Connection", + "Kaspa p2p Node": "Kaspa p2p Node", + "Kaspa p2p Node & Connection": "Kaspa p2p Node & Connection", "Key Perf.": "Key Perf.", - "Language:": "Limba:", - "Large (1 BPS)": "Mare (1 BPS)", - "Levels": "Nivele", - "License Information": "Informații despre licență", + "LAST": "LAST", + "Language:": "Language:", + "Large (1 BPS)": "Large (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Levels", + "License Information": "License Information", "Local": "Local", - "Local p2p Node Configuration": "Configurarea Nodului p2p Local", - "Logs": "Loguri", + "Local p2p Node Configuration": "Local p2p Node Configuration", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Logs", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", "MT": "MT", - "Main Kaspa network": "Rețeaua Kaspa principală", + "Main Kaspa network": "Main Kaspa network", "Mainnet": "Mainnet", - "Mainnet (Main Kaspa network)": "Rețeaua principală (Mainnet) Kaspa", - "Managed by the Rusty Kaspa daemon": "Gestionat de daemonul Rusty Kaspa", - "Market": "Piață", - "Market Cap": "Capitalizare", - "Market Monitor": "Monitor de Piață", - "Mass Processed": "Procesat în Masă", - "Medium Narrow": "Mediu Îngust", - "Medium Wide": "Mediu Larg", - "Memory": "Memorie", + "Managed by the Rusty Kaspa daemon": "Managed by the Rusty Kaspa daemon", + "Market": "Market", + "Market Cap": "Market Cap", + "Market Monitor": "Market Monitor", + "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Medium Narrow", + "Medium Wide": "Medium Wide", + "Memory": "Memory", "Mempool": "Mempool", - "Mempool Size": "Dimensiune Mempool", - "Metrics": "Metrice", - "Metrics are not currently available": "Metricele nu sunt disponibile în prezent", - "NPM Modules for NodeJS": "Module NPM pentru NodeJS", - "Network": "Rețea", - "Network Difficulty": "Dificultate Rețea", - "Network Fees:": "Taxe Retea:", - "Network Interface": "Interfață Rețea", - "Network Peers": "Parteneri de Rețea", - "No peers": "Fara parteneri", - "No public node selected - please select a public node": "Nu a fost selectat niciun nod public - vă rugăm să selectați un nod public", - "No transactions": "Nicio tranzacție", - "No wallets found, please create a new wallet": "Niciun portofel nu a fost gasit, te rog sa creezi un nou portofel", + "Mempool Size": "Mempool Size", + "Metrics": "Metrics", + "Metrics are not currently available": "Metrics are not currently available", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM Modules for NodeJS", + "Network": "Network", + "Network Difficulty": "Network Difficulty", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Network Interface", + "Network Peers": "Network Peers", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "No peers", + "No public node selected - please select a public node": "No public node selected - please select a public node", + "No transactions": "No transactions", + "No wallets found, please create a new wallet": "No wallets found, please create a new wallet", "Node": "Node", - "Node Status": "Nod Status", - "Noise": "Gălăgie", - "None": "Nici unul", - "Not Connected": "Neconectat", - "Not connected": "Neconectat", - "Notifications": "Notificări", - "Open Data Folder": "Deschideți Folderul de Date", - "Opening wallet:": "Deschidere portofel:", - "Optional": "Opțional", - "Other operations": "Alte oprațiuni", - "Outbound": "Ieșire", - "Overview": "Privire de ansamblu", - "Parents": "Parinți", - "Past Median Time": "Timpul Median Trecut", - "Payment & Recovery Password": "Plată și Parolă de Recuperare", - "Payment Request": "Cerere de Plată", - "Peers": "Parteneri", - "Performance": "Performanță", - "Phishing Hint": "Hint de prevenire a phishing-ului", + "Node Status": "Node Status", + "Noise": "Noise", + "None": "None", + "Normal": "Normal", + "Not Connected": "Not Connected", + "Not connected": "Not connected", + "Notifications": "Notifications", + "Open Data Folder": "Open Data Folder", + "Opening wallet:": "Opening wallet:", + "Optional": "Optional", + "Options": "Options", + "Other operations": "Other operations", + "Outbound": "Outbound", + "Overview": "Overview", + "PREV": "PREV", + "Parents": "Parents", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Past Median Time", + "Payment & Recovery Password": "Payment & Recovery Password", + "Payment Request": "Payment Request", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Peers", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performance", + "Phishing Hint": "Phishing Hint", "Ping:": "Ping:", - "Please Confirm Deletion": "Confirmă ștergerea", - "Please configure your Kaspa NG settings": "Te rugăm să configurați setările Kaspa NG", - "Please connect to Kaspa p2p node": "Vă rugăm să vă conectați la nodul Kaspa p2p", - "Please create a stronger password": "Vă rugăm să creați o parolă mai puternică", - "Please enter": "Te rog introdu", - "Please enter KAS amount to send": "Vă rugăm să introduceți suma KAS de trimis", - "Please enter an amount": "Vă rugăm să introduceți o sumă", - "Please enter the account name": "Vă rugăm să introduceți numele contului", - "Please enter the wallet secret": "Te rog să introduci secretul portofelului", - "Please note that this is a beta release. Until this message is removed, please avoid using the wallet with mainnet funds.": "Vă rugăm să rețineți că aceasta este o versiune beta. Până când acest mesaj nu va fi eliminat, vă rugăm să evitați utilizarea portofelului cu fonduri din rețeaua principală (mainnet).", - "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Vă rugăm să rețineți că copierea în clipboard prezintă riscul expunerii mnemonicului dvs. către malware-uri.", - "Please select an account type": "Te rog sa alegi un tip de cont", - "Please select the private key to export": "Vă rugăm să selectați cheia privată pe care doriți să o exportați", - "Please set node to 'Disabled' to delete the data folder": "Setați nodul la „Dezactivat” pentru a șterge folderul de date", - "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Vă rugăm să specificați numele contului implicit. Portofelul va fi creat cu un cont implicit. După creare, veți putea să creați conturi suplimentare după nevoie.", - "Please specify the name of the new wallet": "Te rog specifică numele pentru noul portofel", - "Please specify the private key type for the new wallet": "Vă rugăm să specificați tipul de cheie privată pentru noul portofel", - "Please wait for the node to sync or connect to a remote node.": "Vă rugăm să așteptați ca nodul să se sincronizeze sau să vă conectați la un nod la distanță.", - "Please wait for the node to sync...": "Vă rugăm să așteptați până când nodul se sincronizează...", - "Please wait...": "Te rog să aștepți...", - "Presets": "Preconfigurări", - "Price": "Preț", - "Private Key Mnemonic": "Mnemonicul cheii private", - "Processed Bodies": "Date procesate", - "Processed Dependencies": "Dependențe procesate", - "Processed Headers": "Antete procesate", - "Processed Mass Counts": "Număr de mase procesate", - "Processed Transactions": "Tranzacții procesate", + "Please Confirm Deletion": "Please Confirm Deletion", + "Please configure your Kaspa NG settings": "Please configure your Kaspa NG settings", + "Please connect to Kaspa p2p node": "Please connect to Kaspa p2p node", + "Please create a stronger password": "Please create a stronger password", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Please enter an amount", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Please enter the account name", + "Please enter the wallet secret": "Please enter the wallet secret", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Please select an account type", + "Please select export type": "Please select export type", + "Please select the private key to export": "Please select the private key to export", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Please set node to 'Disabled' to delete the data folder", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.", + "Please specify the name of the new wallet": "Please specify the name of the new wallet", + "Please specify the private key type for the new wallet": "Please specify the private key type for the new wallet", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Please wait for the node to sync or connect to a remote node.", + "Please wait for the node to sync...": "Please wait for the node to sync...", + "Please wait...": "Please wait...", + "Presets": "Presets", + "Price": "Price", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Processed Bodies", + "Processed Dependencies": "Processed Dependencies", + "Processed Headers": "Processed Headers", + "Processed Mass Counts": "Processed Mass Counts", + "Processed Transactions": "Processed Transactions", + "Processing...": "Processing...", "Protocol:": "Protocol:", - "Public Node": "Nod Public", - "Public Nodes": "Noduri Publice", - "Public Server": "Server Public", - "Public p2p Nodes for": "Noduri publice p2p pentru", - "Random Public Node": "Nod Public Aleator", - "Range:": "Interval:", - "Receive Address": "Adresa de primire", - "Recommended arguments for the remote node: ": "Argumente recomandate pentru nodul la distanță:", - "Remote": "La Distanță", - "Remote Connection:": "Conexiune la distanță", - "Remote p2p Node Configuration": "Configurarea Nodului p2p la Distanță", - "Removes security restrictions, allows for single-letter passwords": "Elimină restricțiile de securitate, permite parole cu o singură literă", - "Reset Settings": "Resetează Setări", - "Reset VSPC": "Resetează VSPC", - "Resident Memory": "Memorie rezidentă", - "Resources": "Resurse", - "Resulting daemon arguments:": "Argumentele rezultate ale demonului (programului sau serviciului):", - "Rust Wallet SDK": "SDK Portofel Rust", - "Rusty Kaspa on GitHub": "Rusty Kaspa pe GitHub", - "Secret is too weak": "Secretul este prea slab", - "Secret score:": "Scor secret:", - "Select Account": "Selectează Contul", - "Select Available Server": "Selectați serverul disponibil", - "Select Private Key Type": "Selectați Tipul de Cheie Privată", - "Select Public Node": "Alege un Node Public", - "Select Wallet": "Selectează Portofel", - "Select a wallet to unlock": "Selectați un portofel pentru deblocare", - "Send": "Trimite", - "Services": "Servicii", - "Settings": "Setări", - "Show DAA": "Arată DAA", - "Show Grid": "Afișează Grilă", - "Show VSPC": "Arată VSPC", - "Show balances in alternate currencies for testnet coins": "Afișați balanțele în alte monede pentru monedele de testnet", - "Show password": "Arată parola", - "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Afișează balanțele în alte monede (BTC, USD) atunci când utilizați monede de testnet ca și cum ați fi pe rețeaua principală (mainnet)", - "Skip": "Sari peste", - "Small (10 BPS)": "Mic (10 BPS)", + "Public Node": "Public Node", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Random Public Node", + "Range:": "Range:", + "Receive Address": "Receive Address", + "Recommended arguments for the remote node: ": "Recommended arguments for the remote node: ", + "Redistributables": "Redistributables", + "Remote": "Remote", + "Remote Connection:": "Remote Connection:", + "Remote p2p Node Configuration": "Remote p2p Node Configuration", + "Removes security restrictions, allows for single-letter passwords": "Removes security restrictions, allows for single-letter passwords", + "Reset Settings": "Reset Settings", + "Reset VSPC": "Reset VSPC", + "Resident Memory": "Resident Memory", + "Resources": "Resources", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Resulting daemon arguments:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa on GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Secret is too weak", + "Secret score:": "Secret score:", + "Select Account": "Select Account", + "Select Private Key Type": "Select Private Key Type", + "Select Public Node": "Select Public Node", + "Select Wallet": "Select Wallet", + "Select a wallet to unlock": "Select a wallet to unlock", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Send", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Services", + "Settings": "Settings", + "Show DAA": "Show DAA", + "Show Grid": "Show Grid", + "Show VSPC": "Show VSPC", + "Show balances in alternate currencies for testnet coins": "Show balances in alternate currencies for testnet coins", + "Show passphrase": "Show passphrase", + "Show password": "Show password", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet", + "Skip": "Skip", + "Small (10 BPS)": "Small (10 BPS)", + "Spread": "Spread", + "Stage": "Stage", + "Starting...": "Starting...", + "Statistics": "Statistics", + "Stop": "Stop", + "Stor Read": "Stor Read", + "Stor Write": "Stor Write", + "Storage": "Storage", + "Storage Read": "Storage Read", + "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", + "Storage Write": "Storage Write", + "Storage Write/s": "Storage Write/s", + "Strong": "Strong", + "Submitted Blocks": "Submitted Blocks", + "Syncing Cryptographic Proof...": "Syncing Cryptographic Proof...", + "Syncing DAG Blocks...": "Syncing DAG Blocks...", + "Syncing Headers...": "Syncing Headers...", + "Syncing UTXO entries...": "Syncing UTXO entries...", + "Syncing...": "Syncing...", + "System": "System", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.", + "The balance may be out of date during node sync": "The balance may be out of date during node sync", + "The following will guide you through the process of creating or importing a wallet.": "The following will guide you through the process of creating or importing a wallet.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "The node is currently syncing with the Kaspa p2p network.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Theme Color", + "Theme Color:": "Theme Color:", + "Theme Style": "Theme Style", + "Theme Style:": "Theme Style:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Threshold": "Threshold", + "Time Offset:": "Time Offset:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Track in the background", + "Transactions": "Transactions", + "Transactions:": "Transactions:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Type", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO Manager", + "UTXOs": "UTXOs", + "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Unable to change node settings until the problem is resolved", + "Unable to store settings": "Unable to store settings", + "Unlock": "Unlock", + "Unlock Wallet": "Unlock Wallet", + "Unlocking": "Unlocking", + "Update Available to version": "Update Available to version", + "Updating...": "Updating...", + "Uptime:": "Uptime:", + "Use 50%-75% of available system memory": "Use 50%-75% of available system memory", + "Use all available system memory": "Use all available system memory", + "User Agent": "User Agent", + "User Interface": "User Interface", + "Very dangerous (may be cracked within few seconds)": "Very dangerous (may be cracked within few seconds)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Virt Parents", + "Virtual DAA Score": "Virtual DAA Score", + "Virtual Memory": "Virtual Memory", + "Virtual Parent Hashes": "Virtual Parent Hashes", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", + "Wallet": "Wallet", + "Wallet Created": "Wallet Created", + "Wallet Encryption Password": "Wallet Encryption Password", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Wallet Name", + "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Wallet password is used to encrypt your wallet data.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Wallet:", + "We greatly appreciate your help in backing our efforts.": "We greatly appreciate your help in backing our efforts.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Welcome to Kaspa NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "You are currently not connected to the Kaspa node.", + "You can configure remote connection in Settings": "You can configure remote connection in Settings", + "You can create multiple wallets, but only one wallet can be open at a time.": "You can create multiple wallets, but only one wallet can be open at a time.", + "You must be connected to a node...": "You must be connected to a node...", + "Your default wallet private key mnemonic is:": "Your default wallet private key mnemonic is:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Your private key mnemonic is:", + "Your wallet has been created and is ready to use.": "Your wallet has been created and is ready to use.", + "Zoom": "Zoom", + "bye!": "bye!", + "gRPC Network Interface & Port": "gRPC Network Interface & Port", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "of", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "peer", + "peers": "peers", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "wRPC Connection Settings", + "wRPC Encoding:": "wRPC Encoding:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" + }, + "th": {}, + "tr": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS test ağı", + "10 BPS test network": "10 BPS test ağı", + "12 word mnemonic": "12 kelimelik gizli cümle", + "24 word mnemonic": "24 kelimelik gizli cümle", + "24h Change": "24 Saatlik Değişim", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "Başka bir konumdaki bir binary, bir alt süreç olarak başlatılır (deneysel, yalnızca geliştirme amaçlıdır).", + "A random node will be selected on startup": "Başlangıçta rastgele bir node seçilir", + "A wallet is stored in a file on your computer.": "Cüzdan, bilgisayarındaki bir dosyada saklanır.", + "Account Index": "Account Index", + "Account Name": "Hesap Adı", + "Account not found": "Account not found", + "Account:": "Hesap:", + "Activate custom daemon arguments": "Özel daemon argümanlarını etkinleştir", + "Active p2p Peers": "Aktif P2P Eşleri", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Adres türeterek tarama", + "Address:": "Adres:", + "Advanced": "Gelişmiş", + "All": "Tümü", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Rusty Kaspa daemon'u için özel argümanlara izin ver", + "Allows you to take screenshots from within the application": "Uygulama içinde ekran görüntüsü almanıza izin verir", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Uygula", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Bakiye: Yok", + "Bandwidth": "Bant Genişliği", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Bu yazılım güvenlik ve performans odaklı olduğu için tamamen Rust dilinde geliştirilmiştir. Diğer geleneksel ve modern web tabanlı yazılımlara kıyasla geliştirilmesi daha fazla zaman ve çaba gerektirir.", + "Bezier Curves": "Bezier Eğrileri", + "Block DAG": "Block DAG", + "Block Scale": "Blok Ölçeği", + "Blocks": "Bloklar", + "Bodies": "Gövdeler", + "Borsh Active Connections": "Aktif Borsh Bağlantıları", + "Borsh Connection Attempts": "Borsh Bağlantı Denemeleri", + "Borsh Handshake Failures": "Borsh El Sıkışma Hataları", + "Build": "Build", + "CONNECTED": "BAĞLANDI", + "CPU": "CPU", + "Cache Memory Size": "Cache Bellek Boyutu", + "Cancel": "İptal Et", + "Cannot delete data folder while the node is running": "Veri klasörü node çalışıyorken silinemez.", + "Capture a screenshot": "Ekran görüntüsü al", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "VSPC'yi Ortala", + "Chain Blocks": "Blokları Birbirine Bağla", + "Change Address": "Adresi Değiştir", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "GitHub'da Yazılım Güncellemelerini Kontrol Et", + "Check for Updates": "Güncellemeleri Kontrol Et", + "Clear": "Temizle", + "Click to try another server...": "Başka bir sunucuyu denemek için tıklayın...", + "Client RPC": "İstemci RPC", + "Close": "Kapat", + "Close the window": "Pencereyi kapat", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Cüzdan parolasını onayla", + "Connecting to": "Bağlanılıyor:", + "Connection": "Bağlantı", + "Connections": "Bağlantılar", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Remote bir Rusty Kaspa Node'una wRPC üzerinden bağlanır.", + "Conservative": "Konservatif", + "Continue": "Devam Et", + "Copied to clipboard": "Panoya kopyalandı", + "Copy": "Kopyala", + "Copy logs to clipboard": "Kayıtları panoya kopyala", + "Create New Wallet": "Yeni Cüzdan Oluştur", + "Create Wallet": "Create Wallet", + "Create new wallet": "Yeni cüzdan oluştur", + "Creating Account": "Hesap Oluşturuluyor", + "Creating Wallet": "Cüzdan Oluşturuluyor", + "Custom": "Özel", + "Custom Public Node": "Özel Herkese Açık Node", + "Custom arguments:": "Özel argümanlar:", + "Custom data storage folder": "Özel veri saklama klasörü", + "DAA": "DAA", + "DAA Offset": "DAA Offset'i", + "DAA Range": "DAA Aralığı", + "DB Blocks": "DB Blokları", + "DB Headers": "DB Header'ları", + "Dangerous": "Tehlikeli", + "Data Storage": "Veri Saklama", + "Database Blocks": "Veritabanı Blokları", + "Database Headers": "Veritabanı Header'ları", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Cüzdanın şifresi çözülüyor, lütfen bekleyin...", + "Default": "Varsayılan", + "Default Account Name": "Varsayılan Hesap Adı", + "Delete Data Folder": "Veri Klasörünü Sil", + "Dependencies": "Bağımlılıklar", + "Derivation Indexes": "Derivation Indexes", + "Details": "Detaylar", + "Developer Mode": "Geliştirici Modu", + "Developer Resources": "Geliştirici Kaynakları", + "Developer mode enables advanced and experimental features": "Geliştirici modu gelişmiş ve deneysel özellikleri etkinleştirir", + "Difficulty": "Zorluk", + "Dimensions": "Boyutlar", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Devre Dışı", + "Disables node connectivity (Offline Mode).": "Node bağlanabilirliğini devre dışı bırakır (Çevrimdışı Mod).", + "Discord": "Discord", + "Donations": "Bağışlar", + "Double click on the graph to re-center...": "Ortalamak için grafiğe çift tıklayın...", + "ECDSA": "ECDSA", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Piyasa Monitörünü Aktifleştir", + "Enable UPnP": "UPnP'yi Aktifleştir", + "Enable custom daemon arguments": "Özel daemon argümanlarını aktifleştir", + "Enable experimental features": "Deneysel özellikleri aktifleştir", + "Enable gRPC": "gRPC'yi Aktifleştir", + "Enable optional BIP39 passphrase": "Opsiyonel BIP39 parolasını aktifleştir", + "Enable screen capture": "Ekran kaydını aktifleştir", + "Enables features currently in development": "Henüz geliştirme sürecinde olan özellikleri aktifleştirir", + "Enter": "Gir", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Hesap adı gir (opsiyonel)", + "Enter destination address": "Enter destination address", + "Enter first account name": "İlk hesap adını gir", + "Enter mnemonic": "Gizli cümleyi gir", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Phishing ipucunu gir", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Miktarı gir", + "Enter the password for your wallet": "Cüzdanın için parolanı gir", + "Enter the password to unlock your wallet": "Cüzdanını açmak için parolayı gir", + "Enter wallet name": "Cüzdan ismi gir", + "Enter wallet password": "Cüzdan şifreni gir", + "Enter your wallet secret": "Cüzdan sırrını gir", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Explorer", + "Export Wallet Data": "Cüzdan Verini Dışa Aktar", + "FIRST": "FIRST", + "Faucet": "Musluk", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "Dosya Tanıtıcıları", + "File contents": "File contents", + "Filename:": "Dosya ismi:", + "Final Amount:": "Son Miktar:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub Release", + "Go to Settings": "Ayarlara Git", + "Good": "İyi", + "Handles": "Tanıtıcılar", + "Headers": "Header'lar", + "High": "High", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "Eğer belirtilmezse hesabınız sayısal bir kimlik ile temsil edilecektir.", + "If you are running locally, use: ": "Yerel olarak çalıştırıyorsanız bunu kullanın:", + "Import Existing Private Key": "Mevcut Özel Anahtarı İçe Aktar", + "Import existing": "Varolanı içe aktar", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Cüzdan İçe Aktarılıyor", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Inbound", + "Integrated Daemon": "Entegre Daemon", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Geçersiz daemon argümanları", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Geçersiz wRPC URL'si", + "Json Active Connections": "Aktif JSON Bağlantıları", + "Json Connection Attempts": "JSON Bağlantı Denemeleri", + "Json Handshake Failures": "JSON El Sıkışma Hataları", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Kaspa Entegrasyon Rehberi", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "GitHub'da Kaspa NG", + "Kaspa NG online": "Kaspa NG Online", + "Kaspa Network": "Kaspa Ağı", + "Kaspa Node": "Kaspa Node'u", + "Kaspa p2p Network & Node Connection": "Kaspa P2P Ağı & Node Bağlantısı", + "Kaspa p2p Node": "Kaspa P2P Node'u", + "Kaspa p2p Node & Connection": "Kaspa P2P Node'u & Bağlantısı", + "Key Perf.": "Key Perf.", + "LAST": "LAST", + "Language:": "Dil:", + "Large (1 BPS)": "Büyük (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Seviyeler", + "License Information": "Lisans Bilgisi", + "Local": "Yerel", + "Local p2p Node Configuration": "Yerel P2P Node Konfigürasyonu", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Kayıtlar", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Ana Kaspa Ağı", + "Mainnet": "Mainnet", + "Managed by the Rusty Kaspa daemon": "Rusty Kaspa daemon'u tarafından yönetiliyor", + "Market": "Piyasa", + "Market Cap": "Piyasa Değeri", + "Market Monitor": "Piyasa Monitörü", + "Mass Processed": "Toplu İşlenen", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Orta Dar", + "Medium Wide": "Orta Geniş", + "Memory": "Hafıza", + "Mempool": "Mempool", + "Mempool Size": "Mempool Boyutu", + "Metrics": "Metrikler", + "Metrics are not currently available": "Metrikler henüz mevcut değil", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Gizli Cümle İçe Aktarma", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NodeJS için NPM Modülleri", + "Network": "Ağ", + "Network Difficulty": "Ağ Zorluğu", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Ağ Arayüzü", + "Network Peers": "Ağ Eşleri", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "Eş Yok", + "No public node selected - please select a public node": "Herkese açık node seçili değil - lütfen herkese açık bir node seçin", + "No transactions": "İşlem yok", + "No wallets found, please create a new wallet": "Cüzdan bulunamadı, lütfen yeni bir cüzdan oluşturun", + "Node": "Node", + "Node Status": "Node Durumu", + "Noise": "Noise", + "None": "Hiç", + "Normal": "Normal", + "Not Connected": "Bağlı Değil", + "Not connected": "Bağlı değil", + "Notifications": "Bildirimler", + "Open Data Folder": "Veri Klasörünü Aç", + "Opening wallet:": "Cüzdan açılıyor:", + "Optional": "Opsiyonel", + "Options": "Options", + "Other operations": "Başka operasyonlar", + "Outbound": "Outbound", + "Overview": "Genel Bakış", + "PREV": "PREV", + "Parents": "Üstler", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Şifreler eşleşmiyor", + "Past Median Time": "Geçmiş Medyan Zaman", + "Payment & Recovery Password": "Ödeme ve Kurtarma Parolası", + "Payment Request": "Ödeme İsteği", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Eşler", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performans", + "Phishing Hint": "Phishing İpucu", + "Ping:": "Ping:", + "Please Confirm Deletion": "Lütfen Silme İşlemini Onaylayın", + "Please configure your Kaspa NG settings": "Lütfen Kaspa NG ayarlarınızı yapılandırın", + "Please connect to Kaspa p2p node": "Lütfen Kaspa P2P Node'una bağlanın", + "Please create a stronger password": "Lütfen daha güçlü bir parola oluşturun", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Lütfen bir miktar girin", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Lütfen hesap ismini girin", + "Please enter the wallet secret": "Lütfen cüzdan sırrını girin", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Panoya kopyalamak, gizli cümlenizi zararlı yazılımların erişimine açma riskini taşır.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Lütfen bir hesap türü seçin", + "Please select export type": "Please select export type", + "Please select the private key to export": "Lütfen dışa aktarılacak edilecek özel anahtarı seçin", + "Please select the private key type you would like to import in the new wallet": "Lütfen yeni cüzdanda içe aktarmak istediğin özel anahtar türünü seç", + "Please set node to 'Disabled' to delete the data folder": "Veri klasörünü silmek için lütfen node'u 'Devre Dışı' hâle getirin", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Lütfen varsayılan hesabınızın ismini belirleyin. Cüzdanınız varsayılan bir hesap ile oluşturulacaktır. Varsayılan hesap oluşturulduktan sonra isterseniz yeni hesaplar oluşturabilirsiniz.", + "Please specify the name of the new wallet": "Lütfen yeni cüzdanın ismini belirleyin", + "Please specify the private key type for the new wallet": "Lütfen yeni cüzdan için özel anahtar türünüzü belirtin", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Lütfen node'un senkronize edilmesini bekleyin veya uzak bir node'a bağlanın.", + "Please wait for the node to sync...": "Lütfen node'un senkronize edilmesini bekleyin...", + "Please wait...": "Lütfen bekleyin...", + "Presets": "Ön Ayarlar", + "Price": "Fiyat", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Özel Anahtar Gizli Cümlesi", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "İşlenen Gövdeler", + "Processed Dependencies": "İşlenen Bağımlılıklar", + "Processed Headers": "İşlenen Header'lar", + "Processed Mass Counts": "İşlenen Toplu Sayımlar", + "Processed Transactions": "İşlenen İşlemler", + "Processing...": "Processing...", + "Protocol:": "Protokol:", + "Public Node": "Herkese Açık Node", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Rastgele Herkese Açık Node", + "Range:": "Aralık:", + "Receive Address": "Alım Adresi", + "Recommended arguments for the remote node: ": "Remote node için tavsiye edilen argümanlar:", + "Redistributables": "Yeniden Dağıtılabilir Unsurlar", + "Remote": "Remote", + "Remote Connection:": "Remote Bağlantı:", + "Remote p2p Node Configuration": "Remote P2P Node Konfigürasyonu", + "Removes security restrictions, allows for single-letter passwords": "Güvenlik kısıtlamalarını kaldırır ve tek harflik parolalara izin verir", + "Reset Settings": "Ayarları Sıfırla", + "Reset VSPC": "VSPC'yi Sıfırla", + "Resident Memory": "Yerleşik Bellek", + "Resources": "Kaynaklar", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Daemon argüman sonuçları:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "GitHub'da Rusty Kaspa", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Sır çok zayıf", + "Secret score:": "Sır skoru:", + "Select Account": "Hesap Seç", + "Select Private Key Type": "Özel Anahtar Türünü Seç", + "Select Public Node": "Herkese Açık Node Seçin", + "Select Wallet": "Cüzdan Seç", + "Select a wallet to unlock": "Lütfen açılacak cüzdanı seçin", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Cüzdanın oluşturulduysa bu seçeneği seç", + "Send": "Gönder", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Hizmetler", + "Settings": "Ayarlar", + "Show DAA": "DAA'yı Göster", + "Show Grid": "Grid'i Göster", + "Show VSPC": "VSPC'yi Göster", + "Show balances in alternate currencies for testnet coins": "Testnet coin'leri için bakiyeleri alternatif para birimlerinde göster", + "Show passphrase": "Show passphrase", + "Show password": "Parolayı göster", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Testnet coin'lerini kullanıyorken sanki mainnet'teymiş gibi bakiyeleri alternatif birimlerde göster (BTC, USD)", + "Skip": "Atla", + "Small (10 BPS)": "Küçük (10 BPS)", "Spread": "Spread", - "Stage": "Etapă", - "Starting...": "Începere...", - "Statistics": "Statistici", - "Stor Read": "Citire din Stocare", - "Stor Write": "Scriere în Stocare", - "Storage": "Spațiu", - "Storage Read": "Citire disc", - "Storage Read/s": "Citire/i din Stocare", - "Storage Write": "Scriere în Stocare", - "Storage Write/s": "Scriere/i în Stocare", - "Submitted Blocks": "Blocuri Trimise", - "Supporting Kaspa NG development": "Sprijinirea dezvoltării Kaspa NG", - "Syncing Cryptographic Proof...": "Sincronizare a Dovezii Criptografice...", - "Syncing DAG Blocks...": "Sincronizare Blocuri DAG...", - "Syncing Headers...": "Sincronizare Antete...", - "Syncing UTXO entries...": "Sincronizare înregistrări UTXO...", - "Syncing...": "Se sincronizează...", + "Stage": "Aşama", + "Starting...": "Başlıyor...", + "Statistics": "İstatistikler", + "Stop": "Stop", + "Stor Read": "Stor Okuma", + "Stor Write": "Stor Yazma", + "Storage": "Depolama", + "Storage Read": "Depolama Okuma", + "Storage Read/s": "Depolama Okuma/sn", + "Storage Size": "Storage Size", + "Storage Write": "Depolama Yazma", + "Storage Write/s": "Depolama Yazma/sn", + "Strong": "Strong", + "Submitted Blocks": "Gönderilen Bloklar", + "Syncing Cryptographic Proof...": "Kriptografik Kanıt Senkronize Ediliyor...", + "Syncing DAG Blocks...": "DAG Blokları Senkronize Ediliyor...", + "Syncing Headers...": "Header'lar Senkronize Ediliyor...", + "Syncing UTXO entries...": "UTXO girişleri senkronize ediliyor...", + "Syncing...": "Senkronize ediliyor:", "System": "Sistem", "TPS": "TPS", "Testnet 10": "Testnet 10", - "Testnet 10 (1 BPS)": "Testnet 10 (1 BPS)", "Testnet 11": "Testnet 11", - "Testnet 11 (10 BPS)": "Testnet 11 (10 BPS)", - "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.": "Testnet 11 nu este încă activat pentru testarea publică. Cu toate acestea, puteți configura nodul pentru a se conecta la testnetul privat pentru dezvoltatori în panoul de setări.", - "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Software-ul Kaspa NG reprezintă un efort continuu concentrat pe construirea unei platforme software de ultimă generație dedicată rețelei de criptomonede Kaspa BlockDAG. Cu o bază ideologică puternică, acest software acordă prioritate securității, confidențialității, performanței și descentralizării.", - "The balance may be out of date during node sync": "Soldul poate fi afișat eronat în timpul sincronizării nodului.", - "The following will guide you through the process of creating or importing a wallet.": "Următoarele instrucțiuni vă vor ghida prin procesul de creare sau importare a unui portofel.", - "The node is currently syncing with the Kaspa p2p network.": "Nodul se sincronizează în prezent cu rețeaua Kaspa p2p", - "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "Nodul este în prezent în proces de sincronizare cu rețeaua Kaspa p2p. Balanțele contului pot fi afișate eronat în timpul acestui proces.", - "The node is spawned as a child daemon process (recommended).": "Nodul este lansat ca un proces demon copil (recomandat).", - "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "Nodul rulează ca parte a procesului aplicației Kaspa-NG. Acest lucru reduce supraîncărcarea comunicării (experimental).", - "Theme Color": "Culoarea Temei", - "Theme Color:": "Culoarea Temei:", - "Theme Style": "Stil Temă", - "Theme Style:": "Stil Temă:", - "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Acest portofel nu vă va cere niciodată această frază mnemonică decât dacă inițiați manual o recuperare a cheii private.", - "Threshold": "Limită", - "Time Offset:": "Decalajul de timp:", - "Tip Hashes": "Tip Hashes", - "Tools ⏷": "Unelte", - "Total Rx": "Total Rx", - "Total Rx/s": "Total Rx/s", - "Total Tx": "Total Tx", - "Total Tx/s": "Total Tx/s", - "Track in the background": "Urmărește în fundal", - "Transactions": "Tranzacții", - "Transactions:": "Tranzacții:", - "Type": "Tip", - "UTXO Manager": "Manager UTXO", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Kaspa NG yazılımı, Kaspa BlockDAG kripto para ağına adanmış son teknoloji bir yazılım platformu oluşturmaya odaklanan çabamızı temsil etmektedir. Özünde ideolojik olan bu yazılım güvenlik, gizlilik, performans ve merkeziyetsizliği ön planda tutar.", + "The balance may be out of date during node sync": "Bakiyeniz node senkronizasyonu esnasında güncel olmayabilir", + "The following will guide you through the process of creating or importing a wallet.": "Bu rehber size cüzdan yaratma ve içe aktarma etme prosedürünü açıklayacaktır.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "Bu node şu an Kaspa P2P ağı ile senkronize ediliyor.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "Bu node şu an Kaspa P2P ağı ile senkronize ediliyor. Hesap bakiyeleri güncel olmayabilir.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "Node, alt daemon işlemi olarak oluşturulur (tavsiye edilen seçenek).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "Node, Kaspa NG uygulama işleminin bir parçası olarak çalışır. Bu, arada oluşan fazladan iletişim gereksinimini azaltır (deneysel).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Tema Rengi", + "Theme Color:": "Tema Rengi:", + "Theme Style": "Tema Stili", + "Theme Style:": "Tema Stili:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Bu cüzdan, özel anahtarınızı kurtarma isteğiniz hariç asla gizli cümlenizi sormayacaktır.", + "Threshold": "Sınır", + "Time Offset:": "Zaman Offset'i:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Tip Hash'leri", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Toplam Rx", + "Total Rx/s": "Toplam Rx/sn", + "Total Tx": "Toplam Tx", + "Total Tx/s": "Toplam Tx/sn", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Arkaplanda takip et", + "Transactions": "İşlemler", + "Transactions:": "İşlemler:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Tür", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO Yöneticisi", + "UTXOs": "UTXO'lar", + "UTXOs:": "UTXO'lar:", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Problem çözülene kadar node ayarları değiştirilemez", + "Unable to store settings": "Unable to store settings", + "Unlock": "Aç", + "Unlock Wallet": "Cüzdanı Aç", + "Unlocking": "Açılıyor", + "Update Available to version": "Şu sürüm için güncelleme mevcut:", + "Updating...": "Güncelleniyor...", + "Uptime:": "Uptime:", + "Use 50%-75% of available system memory": "Mevcut sistem hafızasının yüzde %50-75 kadarını kullan", + "Use all available system memory": "Mevcut tüm sistem hafızasını kullan", + "User Agent": "User Agent", + "User Interface": "Kullanıcı Arayüzü", + "Very dangerous (may be cracked within few seconds)": "Çok tehlikeli (saniyeler içinde kırılabilir)", + "Very strong": "Very strong", + "Very weak": "Çok zayıf", + "Virt Parents": "Sanal Üstler", + "Virtual DAA Score": "Sanal DAA Skoru", + "Virtual Memory": "Sanal Bellek", + "Virtual Parent Hashes": "Virtual Üst Hash'leri", + "Volume": "Hacim", + "WASM SDK for JavaScript and TypeScript": "JavaScript ve TypeScript için WASM SDK'si", + "Wallet": "Cüzdan", + "Wallet Created": "Cüzdan Oluşturuldu", + "Wallet Encryption Password": "Cüzdan Şifreleme Parolası", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Cüzdan Adı", + "Wallet Secret": "Cüzdan Sırrı", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Cüzdan parolası cüzdan verilerinizi şifrelemek için kullanılır.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Cüzdan:", + "We greatly appreciate your help in backing our efforts.": "Çabamıza destek verdiğiniz için çok teşekkür ederiz.", + "Weak": "Zayıf", + "Welcome to Kaspa NG": "Kaspa NG'ye Hoşgeldiniz", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "Şu an Kaspa Node'una bağlı değilsiniz.", + "You can configure remote connection in Settings": "Uzaktan bağlantıyı ayarlarda yapılandırabilirsiniz.", + "You can create multiple wallets, but only one wallet can be open at a time.": "Birden fazla cüzdan oluşturabilirsiniz, ama aynı anda sadece bir cüzdan açık olabilir.", + "You must be connected to a node...": "Bir node'a bağlı olmanız gerekiyor...", + "Your default wallet private key mnemonic is:": "Varsayılan cüzdanın özel anahtarının gizli cümlesi:", + "Your mnemonic is protected with a bip39 passphrase": "Gizli cümlen, bir bip39 parolasıyla korunuyor", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Gizli cümleniz özel anahtarınızı tekrar yaratmanızı sağlar. Gizli cümleyi bilen herkes bu adresteki Kaspa'lara erişebilir. Gizli cümlenizi koruyun. Kağıda yazın ve bir kasada saklayın, mümkünse alev almayacak bir yerde. Gizli cümlenizi herhangi bir bilgisayara veya telefona yazmayın. Özel anahtarınızı tekrar yaratma isteğiniz dışında bu cüzdan size asla gizli cümlenizi sormayacaktır.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Özel anahtar gizli cümleniz:", + "Your wallet has been created and is ready to use.": "Cüzdanınız oluşturuldu ve kullanıma hazır.", + "Zoom": "Yakınlaştır", + "bye!": "Güle güle!", + "gRPC Network Interface & Port": "gRPC Ağ Arayüzü & Port'u", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/sn", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/sn", + "of": "of", + "p2p RPC": "P2P RPC", + "p2p Rx": "P2P Rx", + "p2p Rx/s": "P2P Rx/sn", + "p2p Tx": "P2P Tx", + "p2p Tx/s": "P2P Tx/sn", + "peer": "eş", + "peers": "eşler", + "using KDX or kaspanet.io web wallet": "KDX ya da kaspanet.io web cüzdanını kullanıyorum", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/sn", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/sn", + "wRPC Connection Settings": "wRPC Bağlantı Ayarları", + "wRPC Encoding:": "wRPC Kodlaması:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/sn", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/sn", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" + }, + "uk": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "«Фішингова підказка» — це секретне слово або фраза, яка відображається під час відкриття гаманця. Якщо ви не бачите підказку при відкритті гаманця, можливо, ви отримали доступ до підробленого гаманця, призначеного для викрадення ваших коштів. У такому разі негайно припиніть користуватися гаманцем, перевірте доменне ім’я URL-адреси браузера та зверніться за допомогою до соціальних мереж (Kaspa Discord або Telegram).", + "1 BPS test network": "1 BPS Тестова мережа", + "10 BPS test network": "10 BPS тестова мережа", + "12 word mnemonic": "12-слівна мнемонічна фраза", + "24 word mnemonic": "24-слівна мнемонічна фраза", + "24h Change": "Зміна за 24 години", + "3 hours or more": "3 години або більше", + "< {minutes} minute": "< {minutes} хвилини", + "< {minutes} minutes": "< {minutes} хвилин", + "< {seconds} second": "< {seconds} секунди", + "< {seconds} seconds": "< {seconds} секунд", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "Бінарний файл на іншому місці породжує дочірній процес (експериментально, лише для розробки).", + "A random node will be selected on startup": "Під час запуску буде вибрано випадковий вузол", + "A wallet is stored in a file on your computer.": "Гаманець зберігається у файлі на вашому комп'ютері.", + "Account Index": "Індекс рахунку", + "Account Name": "Назва облікового запису", + "Account not found": "Account not found", + "Account:": "Обліковий запис:", + "Activate custom daemon arguments": "Активація користувацьких аргументів демона", + "Active p2p Peers": "Активні P2P-учасники", + "Add Account": "Додати обліковий запис", + "Address copied to clipboard": "Адреса скопійована в буфер обміну", + "Address derivation scan": "Сканування похідних адрес", + "Address:": "Адреса:", + "Advanced": "Розширені", + "All": "Всі", + "Allow clipboard copy": "Дозволити копіювання з буфера обміну", + "Allow custom arguments for the Rusty Kaspa daemon": "Дозволяє встановлювати користувацькі аргументи для демона Rusty Kaspa", + "Allows you to take screenshots from within the application": "Дозволяє робити скріншоти з програми", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Щоб це налаштування набуло чинності, необхідно перезапустити програму.", + "Apply": "Застосувати", + "Architecture {arch}": "Архітектура {arch}", + "Are you sure you want to reset all settings?": "Ви впевнені, що бажаєте скинути всі налаштування?", + "BALANCE": "BALANCE", + "Balance: N/A": "Баланс: Н/Д", + "Bandwidth": "Пропускна здатність", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Через свою спрямованість на безпеку та продуктивність, це програмне забезпечення повністю розроблене на Rust, що вимагає значно більше часу та зусиль у порівнянні з іншими традиційними сучасними веб-додатками.", + "Bezier Curves": "Криві Безьє", + "Block DAG": "Блок DAG", + "Block Scale": "Масштаб блоку", + "Blocks": "Блоки", + "Bodies": "Тіла", + "Borsh Active Connections": "Активні підключення Borsh", + "Borsh Connection Attempts": "Спроби підключення до Borsh", + "Borsh Handshake Failures": "Невдачі рукостискання Borsh", + "Build": "Збудувати", + "CONNECTED": "ПІДКЛЮЧЕНО", + "CPU": "ЦП", + "Cache Memory Size": "Розмір кеш-пам'яті", + "Cancel": "Скасувати", + "Cannot delete data folder while the node is running": "Неможливо видалити папку даних під час роботи вузла", + "Capture a screenshot": "Зробити скріншот", + "Capture saved to {path}": "Cкріншот збережено у {path}", + "Center VSPC": "Центрувати VSPC", + "Chain Blocks": "Блоки ланцюга", + "Change Address": "Змінити адресу", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Перевірити оновлення програмного забезпечення на GitHub", + "Check for Updates": "Перевірити наявність оновлень", + "Clear": "Очистити", + "Click to try another server...": "Клацніть, щоб спробувати інший сервер...", + "Client RPC": "Клієнтський RPC", + "Close": "Закрити", + "Close the window": "Закрити вікно", + "Confirm BIP39 passphrase": "Підтвердіть фразу-пароль BIP39", + "Confirm wallet password": "Підтвердити пароль гаманця", + "Connecting to": "Підключення до", + "Connection": "Підключення", + "Connections": "Підключення", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Підключається до віддаленого вузла Rusty Kaspa через wRPC.", + "Conservative": "Консервативний", + "Continue": "Продовжити", + "Copied to clipboard": "Скопійовано в буфер обміну", + "Copy": "Копіювати", + "Copy logs to clipboard": "Скопіювати лог-журнали в буфер обміну", + "Create New Wallet": "Створити новий гаманець", + "Create Wallet": "Створити гаманець", + "Create new wallet": "Створити новий гаманець", + "Creating Account": "Створення облікового запису", + "Creating Wallet": "Створення гаманця", + "Custom": "Користувацький", + "Custom Public Node": "Користувацький публічний вузол", + "Custom arguments:": "Користувацькі аргументи:", + "Custom data storage folder": "Користувацька папка сховища даних", + "DAA": "DAA", + "DAA Offset": "Зсув DAA", + "DAA Range": "Діапазон DAA", + "DB Blocks": "Блоки БД", + "DB Headers": "Заголовки БД", + "Dangerous": "Небезпечно", + "Data Storage": "Сховище даних", + "Database Blocks": "Блоки БД", + "Database Headers": "Заголовки БД", + "Decrypt": "Розшифрувати", + "Decrypting Wallet File": "Розшифрування файлу гаманця", + "Decrypting wallet, please wait...": "Розшифровка гаманця, будь ласка, зачекайте...", + "Default": "За замовчуванням", + "Default Account Name": "Назва облікового запису за замовчуванням", + "Delete Data Folder": "Видалити папку з даними", + "Dependencies": "Залежності", + "Derivation Indexes": "Дериваційні індекси", + "Details": "Деталі", + "Developer Mode": "Режим розробника", + "Developer Resources": "Ресурси для розробників", + "Developer mode enables advanced and experimental features": "Режим розробника вмикає розширені та експериментальні функції", + "Difficulty": "Складність", + "Dimensions": "Виміри", + "Disable Window Frame": "Вимкнути рамку вікна", + "Disable password safety rules": "Вимкнути правила безпеки паролів", + "Disabled": "Вимкнено", + "Disables node connectivity (Offline Mode).": "Вимикає підключення вузла (офлайн-режим).", + "Discord": "Discord", + "Donations": "Пожертви", + "Double click on the graph to re-center...": "Двічі клацніть по графіку, щоб відцентрувати...", + "ECDSA": "ECDSA", + "Economic": "Економічний", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Економічний: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Увімкнути огляд ринку", + "Enable UPnP": "Увімкнути UPnP", + "Enable custom daemon arguments": "Увімкнути користувацькі аргументи демона", + "Enable experimental features": "Увімкнути експериментальні функції", + "Enable gRPC": "Увімкнути gRPC", + "Enable optional BIP39 passphrase": "Увімкнути необов'язкову додаткову фразу-пароль BIP39", + "Enable screen capture": "Увімкнути захоплення екрана", + "Enables features currently in development": "Вмикає функції, які наразі у розробці", + "Enter": "Введіть", + "Enter BIP39 passphrase": "Введіть фразу-пароль BIP39", + "Enter account name (optional)": "Введіть назву облікового запису (необов'язково)", + "Enter destination address": "Введіть адресу призначення", + "Enter first account name": "Введіть ім'я першого облікового запису", + "Enter mnemonic": "Введіть мнемонічну фразу", + "Enter password to decrypt this wallet file": "Введіть пароль, щоб розшифрувати цей файл гаманця", + "Enter phishing hint": "Введіть підказку проти фішинг-шахрайства", + "Enter priority fees": "Введіть суму комісії за пріоритет", + "Enter the amount": "Введіть суму", + "Enter the password for your wallet": "Введіть пароль для вашого гаманця", + "Enter the password to unlock your wallet": "Введіть пароль, щоб розблокувати свій гаманець", + "Enter wallet name": "Введіть назву гаманця", + "Enter wallet password": "Введіть пароль гаманця", + "Enter your wallet secret": "Введіть пароль свого гаманця", + "Enter {suffix} amount to send": "Введіть суму {suffix} для відправки", + "Error": "Помилка", + "Error importing a wallet": "Помилка імпортування гаманця", + "Error processing mnemonic: {err}": "Помилка обробки мнемонічної фрази: {err}", + "Exit Full Screen": "Вийти з повноекранного режиму", + "Explorer": "Дослідник", + "Export Wallet Data": "Експорт даних гаманця", + "FIRST": "ПЕРШИЙ", + "Faucet": "Кран криптовалюти", + "Fee Market": "Ринок комісій", + "Fee Market & Network Pressure": "Ринок комісій та навантаження на мережу", + "Fee Market Only": "Тільки ринок комісій", + "File Handles": "Дескриптори файлу", + "File contents": "Вміст файлу", + "Filename:": "Ім'я файлу:", + "Final Amount:": "Кінцева сума:", + "Final Amount: {amount}": "Кінцева сума: {amount}", + "For decrypting uploaded file please enter wallet secret.": "Для дешифрування завантаженого файлу введіть пароль гаманця.", + "Full Screen": "Повноекранний режим", + "Generate New Change Address": "Згенерувати нову адресу для решти", + "Generate New Receive Address": "Згенерувати нову адресу отримання", + "GitHub Release": "GitHub Випуск", + "Go to Settings": "Перейти в Налаштування", + "Good": "Добре", + "Handles": "Дескриптори", + "Headers": "Заголовки", + "High": "Високий", + "IBD:": "Початкове завантаження блоків:", + "If not specified, the account will be represented by the numeric id.": "Якщо не вказано, обліковий запис буде представлений числовим ідентифікатором.", + "If you are running locally, use: ": "Якщо ви запускаєте локально, використовуйте:", + "Import Existing Private Key": "Імпортувати існуючий приватний ключ", + "Import existing": "Імпортувати існуючий", + "Import existing file": "Імпортувати існуючий файл", + "Importing Legacy Wallet": "Імпортування застарілого гаманця", + "Importing Wallet": "Імпортування гаманця", + "Importing Wallet File": "Імпортування файлу гаманця", + "Inbound": "Вхідний", + "Integrated Daemon": "Інтегрований демон", + "Invalid amount:": "Недійсна сума:", + "Invalid daemon arguments": "Недійсні аргументи демона", + "Invalid fee amount:": "Недійсна сума комісії:", + "Invalid wRPC URL": "Недійсний URL wRPC", + "Json Active Connections": "Активні з'єднання Json", + "Json Connection Attempts": "Спроби підключення Json", + "Json Handshake Failures": "Помилки рукостискання Json", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Посібник з інтеграції Kaspa", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG на GitHub", + "Kaspa NG online": "Kaspa NG онлайн", + "Kaspa Network": "Мережа Kaspa", + "Kaspa Node": "Вузол Kaspa", + "Kaspa p2p Network & Node Connection": "Підключення до P2P-мережі та вузлів Kaspa", + "Kaspa p2p Node": "P2P-вузол Kaspa", + "Kaspa p2p Node & Connection": "Підключення та P2P-вузол Kaspa", + "Key Perf.": "Ключові показники", + "LAST": "ОСТАННІЙ", + "Language:": "Мова:", + "Large (1 BPS)": "Велика (1 BPS)", + "Legacy 12 word mnemonic": "Застаріла 12-слівна мнемонічна фраза", + "Levels": "Рівні", + "License Information": "Інформація про ліцензію", + "Local": "Локальний", + "Local p2p Node Configuration": "Локальна конфігурація P2P-вузла", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Логи", + "Low": "Низький", + "Low-priority": "Низькопріоритетний", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Низький: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Основна мережа Kaspa", + "Mainnet": "Основна мережа", + "Managed by the Rusty Kaspa daemon": "Управляється демоном Rusty Kaspa", + "Market": "Ринок", + "Market Cap": "Капіталізація ринку", + "Market Monitor": "Огляд ринку", + "Mass Processed": "Оброблено маси", + "Mass:": "Маса:", + "Mass: {number}g": "Маса: {number}g", + "Maximize window": "Розгорнути вікно", + "Medium Narrow": "Середньо-вузький", + "Medium Wide": "Середньо-широкий", + "Memory": "Пам'ять", + "Mempool": "Пул пам'яті", + "Mempool Size": "Розмір пула пам'яті", + "Metrics": "Метрики", + "Metrics are not currently available": "Метрики на даний момент недоступні", + "Miner Fee": "Комісія майнера", + "Minimize the window": "Згорнути вікно", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Імпорт мнемонічної фрази", + "NEXT": "НАСТУПНИЙ", + "NO NAME": "НЕМАЄ НАЗВИ", + "NPM Modules for NodeJS": "Модулі NPM для NodeJS", + "Network": "Мережа", + "Network Difficulty": "Складність мережі", + "Network Fee Estimator": "Оцінювач мережевих комісій", + "Network Interface": "Мережевий інтерфейс", + "Network Peers": "Учасники мережі", + "Network Pressure: ~{number}%": "Навантаження на мережу: ~{number}%", + "Never share your mnemonic with anyone!": "Ніколи з ніким не діліться своєю мнемонічною фразою!", + "No peers": "Немає учасників", + "No public node selected - please select a public node": "Не вибрано жодного публічного вузла - будь ласка, виберіть публічний вузол", + "No transactions": "Немає транзакцій", + "No wallets found, please create a new wallet": "Не знайдено гаманців, будь ласка, створіть новий гаманець", + "Node": "Вузол", + "Node Status": "Статус вузла", + "Noise": "Шум", + "None": "Нічого", + "Normal": "Нормальний", + "Not Connected": "Не підключено", + "Not connected": "Немає з'єднання", + "Notifications": "Сповіщення", + "Open Data Folder": "Відкрити папку з даними", + "Opening wallet:": "Відкриття гаманця:", + "Optional": "Додатково", + "Options": "Параметри", + "Other operations": "Інші операції", + "Outbound": "Вихідний", + "Overview": "Огляд", + "PREV": "ПОПЕРЕДНІЙ", + "Parents": "Батьки", + "Passive Sync": "Пасивна синхронізація", + "Passphrase is too weak": "Фраза-пароль занадто ненадійна", + "Passphrases do not match": "Фрази-паролі не збігаються", + "Passwords do not match": "Паролі не збігаються", + "Past Median Time": "Минула медіана часу", + "Payment & Recovery Password": "Пароль для оплати та відновлення", + "Payment Request": "Запит на оплату", + "Payment request to account: {account}": "Платіжний запит на рахунок: {account}", + "Peers": "Учасники", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Продуктивність", + "Phishing Hint": "Підказка проти фішинг-шахрайства", + "Ping:": "Пінг:", + "Please Confirm Deletion": "Будь ласка, підтвердіть видалення", + "Please configure your Kaspa NG settings": "Будь ласка, налаштуйте параметри Kaspa NG", + "Please connect to Kaspa p2p node": "Будь ласка, підключіться до P2P-вузла Kaspa", + "Please create a stronger password": "Будь ласка, створіть надійніший пароль", + "Please enter a valid address: {err}": "Будь ласка, введіть дійсну адресу: {err}", + "Please enter a valid amount of KAS": "Будь ласка, введіть дійсну суму KAS", + "Please enter additional {amount} words": "Будь ласка, введіть ще {amount} слів", + "Please enter an amount": "Будь ласка, введіть суму", + "Please enter mnemonic comprised of {number} words": "Будь ласка, введіть мнемонічну фразу, що складається з {number} слів", + "Please enter the account name": "Будь ласка, введіть назву облікового запису", + "Please enter the wallet secret": "Будь ласка, введіть пароль до гаманця", + "Please enter {suffix} amount to send": "Будь ласка, введіть {suffix} суму для відправки", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Зверніть увагу, копіювання в буфер обміну може призвести до ризику викриття вашої мнемонічної фрази вірусам.", + "Please select 'Apply' and restart the application.": "Будь ласка, виберіть 'Застосувати' та перезапустіть програму.", + "Please select account to scan": "Будь ласка, виберіть обліковий запис для сканування", + "Please select an account type": "Будь ласка, виберіть тип облікового запису", + "Please select export type": "Будь ласка, виберіть тип експорту", + "Please select the private key to export": "Будь ласка, виберіть приватний ключ для експорту", + "Please select the private key type you would like to import in the new wallet": "Будь ласка, виберіть тип приватного ключа, який ви хочете імпортувати в новий гаманець", + "Please set node to 'Disabled' to delete the data folder": "Будь ласка, встановіть вузол на 'Вимкнено' для видалення папки з даними", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Будь ласка, вкажіть назву основного облікового запису. Гаманець буде створено з основним обліковим записом. Після створення ви зможете створити додаткові облікові записи за потребою.", + "Please specify the name of the new wallet": "Будь ласка, вкажіть назву нового гаманця", + "Please specify the private key type for the new wallet": "Будь ласка, вкажіть тип приватного ключа для нового гаманця", + "Please support Kaspa NG development": "Підтримайте, будь ласка, розробку Kaspa NG", + "Please wait for the node to sync or connect to a remote node.": "Будь ласка, зачекайте синхронізації вузла або підключення до віддаленого вузла.", + "Please wait for the node to sync...": "Будь ласка, зачекайте синхронізації вузла...", + "Please wait...": "Будь ласка, зачекайте...", + "Presets": "Пресети", + "Price": "Ціна", + "Priority": "Пріоритет", + "Priority Fee Estimator": "Оцінювач комісій за пріоритет", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Пріоритет: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Мнемонічна фраза приватного ключа", + "Private key mnemonic stored in this wallet": "Мнемонічна фраза приватного ключа, що збережена у даному гаманці", + "Processed Bodies": "Оброблені об'єкти", + "Processed Dependencies": "Оброблені залежності", + "Processed Headers": "Оброблені заголовки", + "Processed Mass Counts": "Кількість оброблених мас", + "Processed Transactions": "Оброблені транзакції", + "Processing...": "Обробка...", + "Protocol:": "Протокол:", + "Public Node": "Публічний вузол", + "Public wRPC (Borsh)": "Публічний wRPC (Borsh)", + "Quit": "Вийти", + "Random Public Node": "Випадковий публічний вузол", + "Range:": "Діапазон:", + "Receive Address": "Адреса отримання", + "Recommended arguments for the remote node: ": "Рекомендовані аргументи для віддаленого вузла:", + "Redistributables": "Розповсюджувані компоненти", + "Remote": "Віддалено", + "Remote Connection:": "Віддалене підключення:", + "Remote p2p Node Configuration": "Віддалена конфігурація P2P-вузла", + "Removes security restrictions, allows for single-letter passwords": "Знімає обмеження на безпеку, дозволяє використовувати однолітерні паролі", + "Reset Settings": "Скинути налаштування", + "Reset VSPC": "Скинути VSPC", + "Resident Memory": "Резидентна пам'ять", + "Resources": "Ресурси", + "Restart": "Перезапустити", + "Restore window": "Відновити вікно", + "Resulting daemon arguments:": "Результуючі аргументи демона:", + "Rust Wallet SDK": "Rust Wallet SDK", + "Rusty Kaspa on GitHub": "Rusty Kaspa на GitHub", + "Scanner": "Сканер", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Сканування завершено...", + "Secret is too weak": "Пароль занадто ненадійний", + "Secret score:": "Оцінка паролю:", + "Select Account": "Вибрати обліковий запис", + "Select Private Key Type": "Оберіть тип приватного ключа", + "Select Public Node": "Вибрати публічний вузол", + "Select Wallet": "Вибрати гаманець", + "Select a wallet to unlock": "Виберіть гаманець для розблокування", + "Select file...": "Виберіть файл...", + "Select this option if your wallet was created": "Оберіть цю опцію, якщо ваш гаманець був створений", + "Send": "Надіслати", + "Sending funds": "Надсилання коштів", + "Sending funds without priority fees will result in long transaction wait times.": "Надсилання коштів без комісій за пріоритет призведе до тривалого часу очікування транзакцій.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Сервіси", + "Settings": "Налаштування", + "Show DAA": "Показати DAA", + "Show Grid": "Показати сітку", + "Show VSPC": "Показати VSPC", + "Show balances in alternate currencies for testnet coins": "Показувати баланси в альтернативних валютах для монет тестової мережі", + "Show passphrase": "Показати фразу-пароль", + "Show password": "Показати пароль", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Показує баланси в інших валютах (BTC, USD) при використанні монет тестової мережі, ніби ви у основній мережі.", + "Skip": "Пропустити", + "Small (10 BPS)": "Малий (10 BPS)", + "Spread": "Спред", + "Stage": "Етап", + "Starting...": "Запуск...", + "Statistics": "Статистика", + "Stop": "Стоп", + "Stor Read": "Читання з сховища", + "Stor Write": "Запис у сховище", + "Storage": "Сховище", + "Storage Read": "Читання з сховища", + "Storage Read/s": "Операції читання до сховища", + "Storage Size": "Обсяг сховища", + "Storage Write": "Запис у сховище", + "Storage Write/s": "Операції запису до сховища", + "Strong": "Надійний", + "Submitted Blocks": "Надіслані блоки", + "Syncing Cryptographic Proof...": "Синхронізація криптографічного доказу...", + "Syncing DAG Blocks...": "Синхронізація блоків DAG...", + "Syncing Headers...": "Синхронізація заголовків...", + "Syncing UTXO entries...": "Синхронізація записів UTXO...", + "Syncing...": "Синхронізація...", + "System": "Система", + "TPS": "Транзакцій/сек. TPS", + "Testnet 10": "Тестова мережа 10", + "Testnet 11": "Тестова мережа 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Програмне забезпечення Kaspa NG є результатом постійних зусиль, спрямованих на створення передової програмної платформи, присвяченої криптовалютній мережі Kaspa BlockDAG. Ідеологічне за своєю суттю, це програмне забезпечення має сильний акцент на безпеці, конфіденційності, продуктивності та децентралізації.", + "The balance may be out of date during node sync": "Баланс може бути застарілим під час синхронізації вузла", + "The following will guide you through the process of creating or importing a wallet.": "Далі ви дізнаєтеся, як створити або імпортувати гаманець.", + "The network is currently congested.": "Мережа наразі перевантажена.", + "The node is currently syncing with the Kaspa p2p network.": "Вузол наразі синхронізується з P2P-мережею Kaspa.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "Наразі вузол синхронізується з P2P-мережею Kaspa. Баланси облікових записів можуть бути застарілими.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "Наразі вузол синхронізується з P2P-мережею Kaspa. Будь ласка, зачекайте, поки вузол синхронізується.", + "The node is spawned as a child daemon process (recommended).": "Вузол створюється як дочірній демон (рекомендовано).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "Вузол працює як частина процесу додатку Kaspa-NG. Це зменшує накладні витрати на зв'язок (експериментально).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "Вузол синхронізується у фоновому режимі, поки Kaspa-NG підключено до публічного вузла.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "Вузол синхронізується у фоновому режимі, поки Kaspa-NG підключено до публічного вузла. Коли вузол буде синхронізовано, ви зможете перейти в режим 'Інтегрований демон'.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "Необов’язкова фраза-пароль для оплати та відновлення мнемонічної фрази, відома як BIP39, якщо її вказано, буде потрібна для надсилання платежів. Ця фраза-пароль також буде потрібна під час відновлення вашого гаманця, на додаток до вашої мнемонічної фрази. Якщо ви втратите або забудете цю фразу-пароль, ви не зможете використати мнемонічну фразу для відновлення вашого гаманця!", + "Theme Color": "Колір теми", + "Theme Color:": "Колір теми:", + "Theme Style": "Стиль теми", + "Theme Style:": "Стиль теми:", + "This option will transfer any discovered funds to the first change address of this account.": "Цей варіант здійснить переказ всіх знайдених коштів на першу адресу для решти коштів цього облікового запису.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Цей гаманець ніколи не запитає вас про цю мнемонічну фразу, якщо ви не ініціюєте відновлення приватного ключа вручну.", + "Threshold": "Поріг", + "Time Offset:": "Зсув часу:", + "Timestamp: {timestamp}": "Часова мітка: {timestamp}", + "Tip Hashes": "Хеші вершин", + "Too many words in the": "Занадто багато слів у", + "Tools": "Tools", + "Total Rx": "Загалом отримань", + "Total Rx/s": "Загалом отримань/сек.", + "Total Tx": "Загалом відправлень", + "Total Tx/s": "Загалом відправлень/сек.", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Відстеження у фоновому режимі", + "Transactions": "Транзакції", + "Transactions:": "Транзакції:", + "Transactions: {number}": "Транзакції: {number}", + "Transfer funds during scan": "Переказ коштів під час сканування", + "Type": "Тип", + "URI copied to clipboard": "URI скопійовано в буфер обміну", + "UTXO Manager": "Менеджер UTXO", "UTXOs": "UTXOs", "UTXOs:": "UTXOs:", - "Unable to change node settings until the problem is resolved": "Nu puteți schimba setările nodului până când problema este rezolvată", - "Unlock": "Deblocare", - "Unlock Wallet": "Deblochează portofel", - "Unlocking": "Deblocare", - "Update Available to version": "Actualizează Disponibil la versiune", - "Updating...": "Se actualizează...", - "Uptime:": "Perioadă de activitate:", - "Use 50%-75% of available system memory": "Folosește 50 %-75%din memoria disponibilă a sistemului", - "Use all available system memory": "Utilizați toată memoria sistemului disponibilă", - "User Agent": "Agent utilizator", - "User Interface": "Interfața utilizatorului", - "Very dangerous (may be cracked within few seconds)": "Foarte periculos (poate fi spart în câteva secunde)", - "Virt Parents": "Virt Parents", - "Virtual DAA Score": "Scor Virtual DAA", - "Virtual Memory": "Memorie Virtuală", - "Virtual Parent Hashes": "Virtual Parent Hashes", - "Volume": "Volum", - "WASM SDK for JavaScript and TypeScript": "WASM SDK pentru JavaScript și TypeScript", - "Wallet": "Portofel", - "Wallet Created": "Portofel Creat", - "Wallet Encryption Password": "Parolă de Criptare a Portofelului", - "Wallet Name": "Nume Portofel", - "Wallet Secret": "Secretul Portofelului", - "Wallet password is used to encrypt your wallet data.": "Parola portofelului este folosită pentru a cripta datele portofelului tău.", - "Wallet:": "Portofel:", - "We greatly appreciate your help in backing our efforts.": "Apreciam foarte mult ajutorul acordat în susținerea eforturilor noastre.", - "Welcome to Kaspa NG": "Bine ați venit în Kaspa NG", - "Xpub Keys": "Xpub Keys", - "You are currently not connected to the Kaspa node.": "În prezent, nu sunteți conectat la nodul Kaspa.", - "You can configure remote connection in Settings": "Poți configura conexiunea de la distanță din Setări", - "You can create multiple wallets, but only one wallet can be open at a time.": "Puteți crea mai multe portofele, dar în același timp poate fi deschis doar un singur portofel.", - "You must be connected to a node...": "Trebuie să fii conectat la un nod...", - "Your default wallet private key mnemonic is:": "Mnemonicul cheii private implicit a portofelului tău este:", - "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Fraza dvs. mnemonică vă permite să recreați cheia privată. Persoana care are acces la această frază mnemonică va avea control deplin asupra Kaspa stocate în portofel. Păstrați-vă fraza mnemonică în siguranță. Scrieți-o și stocați-o într-un loc sigur, preferabil într-un loc rezistent la foc. Nu stocați fraza mnemonică pe acest calculator sau pe un dispozitiv mobil. Acest portofel nu vă va solicita niciodată această frază mnemonică decât dacă inițiați manual o recuperare a cheii private.", - "Your private key mnemonic is:": "Mnemonicul cheii private este:", - "Your wallet has been created and is ready to use.": "Portofelul tău a fost creat și este gata de utilizare.", - "Zoom": "Mărire", - "amount to send": "suma de trimis", - "bye!": "La revedere!", - "gRPC Network Interface & Port": "Rețea gRPC Port & Interfață", - "gRPC Rx": "gRPC Rx", - "gRPC Rx/s": "gRPC Rx/s", - "gRPC Tx": "gRPC Tx", - "gRPC Tx/s": "gRPC Tx/s", - "of": "din", - "p2p RPC": "p2p RPC", - "p2p Rx": "p2p Rx", - "p2p Rx/s": "p2p Rx/s", - "p2p Tx": "p2p Tx", - "p2p Tx/s": "p2p Tx/s", - "peer": "partner", - "peers": "peers", - "wRPC Borsh Rx": "wRPC Borsh Rx", - "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", - "wRPC Borsh Tx": "wRPC Borsh Tx", - "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", - "wRPC Connection Settings": "Setări de Conexiune wRPC", - "wRPC Encoding:": "Codificare wRPC:", - "wRPC JSON Rx": "wRPC JSON Rx", - "wRPC JSON Rx/s": "wRPC JSON Rx/s", - "wRPC JSON Tx": "wRPC JSON Tx", - "wRPC JSON Tx/s": "wRPC JSON Tx/s", - "wRPC URL:": "wRPC URL: " + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Неможливо змінити налаштування вузла, доки проблема не буде вирішена", + "Unable to store settings": "Unable to store settings", + "Unlock": "Розблокувати", + "Unlock Wallet": "Розблокувати гаманець", + "Unlocking": "Розблокування", + "Update Available to version": "Доступне оновлення до версії", + "Updating...": "Оновлення...", + "Uptime:": "Час роботи:", + "Use 50%-75% of available system memory": "Використовувати 50%-75% від доступної пам'яті системи", + "Use all available system memory": "Використовувати весь доступний обсяг оперативної пам'яті системи", + "User Agent": "Агент користувача", + "User Interface": "Інтерфейс користувача", + "Very dangerous (may be cracked within few seconds)": "Дуже небезпечно (може бути зламано за кілька секунд)", + "Very strong": "Дуже надійний", + "Very weak": "Дуже ненадійний", + "Virt Parents": "Віртуальні батьки", + "Virtual DAA Score": "Віртуальний показник DAA", + "Virtual Memory": "Віртуальна пам'ять", + "Virtual Parent Hashes": "Віртуальні хеші батьків", + "Volume": "Об'єм", + "WASM SDK for JavaScript and TypeScript": "WASM SDK для JavaScript та TypeScript", + "Wallet": "Гаманець", + "Wallet Created": "Гаманець створено", + "Wallet Encryption Password": "Пароль шифрування гаманця", + "Wallet File Secret": "Пароль файлу гаманця", + "Wallet Name": "Назва гаманця", + "Wallet Secret": "Пароль гаманця", + "Wallet creation error:": "Помилка створення гаманця:", + "Wallet decrypting error:": "Помилка розшифрування гаманця:", + "Wallet password is used to encrypt your wallet data.": "Пароль гаманця використовується для шифрування даних вашого гаманця.", + "Wallet with this name already exists": "Гаманець з цією назвою вже існує", + "Wallet:": "Гаманець:", + "We greatly appreciate your help in backing our efforts.": "Ми високо цінуємо вашу допомогу в підтримці наших зусиль.", + "Weak": "Ненадійний", + "Welcome to Kaspa NG": "Ласкаво просимо до Kaspa NG", + "Xpub Keys": "Ключі Xpub", + "You are currently not connected to the Kaspa node.": "Наразі ви не підключені до вузла Kaspa.", + "You can configure remote connection in Settings": "Ви можете налаштувати віддалене підключення в Налаштуваннях", + "You can create multiple wallets, but only one wallet can be open at a time.": "Ви можете створити кілька гаманців, але одночасно може бути відкритий лише один гаманець.", + "You must be connected to a node...": "Ви повинні бути підключені до вузла...", + "Your default wallet private key mnemonic is:": "Ваша мнемонічна фраза приватного ключа для даного гаманця:", + "Your mnemonic is protected with a bip39 passphrase": "Ваша мнемонічна фраза захищена фразою-паролем BIP39", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Ваша мнемонічна фраза дозволяє відновити ваш приватний ключ. Особа, яка має доступ до цієї мнемонічної фрази, матиме повний контроль над Kaspa, що зберігається у ньому. Зберігайте вашу мнемонічну фразу в безпеці. Запишіть її та зберігайте у сейфі, бажано у вогнетривкому місці. Не зберігайте вашу мнемонічну фразу на цьому комп'ютері або мобільному пристрої. Цей гаманець ніколи не запитає у вас цю мнемонічну фразу, якщо ви не ініціюєте відновлення приватного ключа вручну.", + "Your mnemonic phrase is invalid": "Ваша мнемонічна фраза є невірною", + "Your private key mnemonic is:": "Мнемонічна фраза вашого приватного ключа:", + "Your wallet has been created and is ready to use.": "Ваш гаманець створено і він готовий до використання.", + "Zoom": "Масштаб", + "bye!": "до побачення!", + "gRPC Network Interface & Port": "Інтерфейс та порт мережі gRPC", + "gRPC Rx": "gRPC отримань", + "gRPC Rx/s": "gRPC отримань/сек.", + "gRPC Tx": "gRPC відправлень", + "gRPC Tx/s": "gRPC відправлень/сек.", + "of": "з", + "p2p RPC": "P2P RPC", + "p2p Rx": "P2P отримань", + "p2p Rx/s": "P2P отримань/сек.", + "p2p Tx": "P2P відправлень", + "p2p Tx/s": "P2P відправлень/сек.", + "peer": "учасник", + "peers": "учасники", + "using KDX or kaspanet.io web wallet": "використовуючи KDX або веб-гаманець kaspanet.io", + "wRPC Borsh Rx": "wRPC Borsh отримань", + "wRPC Borsh Rx/s": "wRPC Borsh отримань/сек.", + "wRPC Borsh Tx": "wRPC Borsh відправлень", + "wRPC Borsh Tx/s": "wRPC Borsh отримань/сек.", + "wRPC Connection Settings": "Налаштування підключення wRPC", + "wRPC Encoding:": "Кодування wRPC:", + "wRPC JSON Rx": "wRPC JSON отримань", + "wRPC JSON Rx/s": "wRPC JSON отримань/сек.", + "wRPC JSON Tx": "wRPC JSON відправлень", + "wRPC JSON Tx/s": "wRPC JSON відправлень/сек.", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Надіслати", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Переказ", + "{qrCodeIcon} Request": "{qrCodeIcon} Запит", + "~2 hours": "~2 години", + "~30 minutes": "~30 хвилин" }, - "ru": { - "1 BPS test network": "1 BPS тестовая сеть", - "10 BPS test network": "10 BPS тестовая сеть", - "12 word mnemonic": "12 слов мнемонической фразы", - "24 word mnemonic": "24 слова мнемонической фразы", - "24h Change": "Изменение за 24 часа", - "A binary at another location is spawned a child process (experimental, for development purposes only).": "Бинарный файл в другом месте порождает дочерний процесс (экспериментально, только для разработки).", - "A random node will be selected on startup": "При запуске будет выбрана случайная нода.", - "A wallet is stored in a file on your computer.": "Кошелёк хранится в файле на вашем компьютере.", - "Account Index": "Индекс аккаунта", - "Account Name": "Имя аккаунта", - "Account:": "Аккаунт:", - "Activate custom daemon arguments": "Активировать пользовательские аргументы службы", - "Active p2p Peers": "Активные p2p пиры", - "Address derivation scan": "Сканирование производных адреса", - "Address:": "Адрес:", - "Advanced": "Расширенные", - "All": "Все", - "Allow custom arguments for the Rusty Kaspa daemon": "Разрешить настраиваемые аргументы для службы Rusty Kaspa.", - "Allows you to take screenshots from within the application": "Позволяет вам делать скриншоты прямо из приложения", - "Apply": "Применить", - "Balance: N/A": "Баланс: Недоступен", - "Bandwidth": "Пропускная способность", - "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Из-за своего акцента на безопасности и производительности, это программное обеспечение полностью разработано на Rust, что требует значительно больше времени и усилий по сравнению с другими традиционными современными веб-ориентированными программами.", - "Bezier Curves": "Кривые Безье", - "Block DAG": "Block DAG", - "Block Scale": "Размер блока", - "Blocks": "Блоки", - "Bodies": "Тела блоков", - "Borsh Active Connections": "Активные соединения Borsh", - "Borsh Connection Attempts": "Попытки Borsh-подключения", - "Borsh Handshake Failures": "Сбои при установлении связи Borsh", - "Build": "Сборка", - "CONNECTED": "ПОДКЛЮЧЕНО", - "CPU": "ЦПУ", - "Cache Memory Size": "Размер кэш-памяти", - "Cache Memory Size:": "Размер кэш-памяти:", - "Cancel": "Отменить", - "Cannot delete data folder while the node is running": "Невозможно удалить папку с данными, пока нода работает.", - "Capture a screenshot": "Сделать снимок экрана", - "Center VSPC": "Центр VSPC", - "Chain Blocks": "Цепочка блоков", - "Change Address": "Изменить адрес", - "Check for Software Updates on GitHub": "Проверьте наличие обновлений программного обеспечения на GitHub.", - "Check for Updates": "Проверить наличие обновлений", - "Clear": "Чисто", - "Click to try another server...": "Нажмите, чтобы попробовать другой сервер...", - "Client RPC": "Клиент RPC", - "Close": "Закрыть", - "Confirm wallet password": "Подтвердите пароль кошелька", - "Connect to a local node (localhost)": "Подключитесь к локальной ноде (localhost)", - "Connecting to": "Подключение к", - "Connection": "Соединение", - "Connections": "Соединения", - "Connects to a Remote Rusty Kaspa Node via wRPC.": "Подключается к удалённой ноде Rusty Kaspa через wRPC.", - "Conservative": "Консервативный", - "Continue": "Продолжить", - "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.": "Взносы, направленные на этот проект, непосредственно поддерживают программное обеспечение Kaspa NG и его экосистему.", - "Copied to clipboard": "Скопировано в буфер обмена", - "Copy": "Копировать", - "Copy logs to clipboard": "Копирование журналов в буфер обмена", - "Create New Account": "Создать новый аккаунт", - "Create New Wallet": "Создать новый кошелёк", - "Create new wallet": "Создать новый кошелёк", - "Creating Account": "Создание аккаунта", - "Creating Wallet": "Создание кошелька", - "Custom": "Пользовательский", - "Custom Public Node": "Пользовательская общедоступная нода", - "Custom arguments:": "Пользовательские аргументы:", + "ur": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS test network", + "10 BPS test network": "10 BPS test network", + "12 word mnemonic": "12 word mnemonic", + "24 word mnemonic": "24 word mnemonic", + "24h Change": "24h Change", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "A binary at another location is spawned a child process (experimental, for development purposes only).", + "A random node will be selected on startup": "A random node will be selected on startup", + "A wallet is stored in a file on your computer.": "A wallet is stored in a file on your computer.", + "Account Index": "Account Index", + "Account Name": "Account Name", + "Account not found": "Account not found", + "Account:": "Account:", + "Activate custom daemon arguments": "Activate custom daemon arguments", + "Active p2p Peers": "Active p2p Peers", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Address derivation scan", + "Address:": "Address:", + "Advanced": "Advanced", + "All": "All", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Allow custom arguments for the Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Allows you to take screenshots from within the application", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Apply", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Balance: N/A", + "Bandwidth": "Bandwidth", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.", + "Bezier Curves": "Bezier Curves", + "Block DAG": "Block DAG", + "Block Scale": "Block Scale", + "Blocks": "Blocks", + "Bodies": "Bodies", + "Borsh Active Connections": "Borsh Active Connections", + "Borsh Connection Attempts": "Borsh Connection Attempts", + "Borsh Handshake Failures": "Borsh Handshake Failures", + "Build": "Build", + "CONNECTED": "CONNECTED", + "CPU": "CPU", + "Cache Memory Size": "Cache Memory Size", + "Cancel": "Cancel", + "Cannot delete data folder while the node is running": "Cannot delete data folder while the node is running", + "Capture a screenshot": "Capture a screenshot", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Center VSPC", + "Chain Blocks": "Chain Blocks", + "Change Address": "Change Address", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Check for Software Updates on GitHub", + "Check for Updates": "Check for Updates", + "Clear": "Clear", + "Click to try another server...": "Click to try another server...", + "Client RPC": "Client RPC", + "Close": "Close", + "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Confirm wallet password", + "Connecting to": "Connecting to", + "Connection": "Connection", + "Connections": "Connections", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connects to a Remote Rusty Kaspa Node via wRPC.", + "Conservative": "Conservative", + "Continue": "Continue", + "Copied to clipboard": "Copied to clipboard", + "Copy": "Copy", + "Copy logs to clipboard": "Copy logs to clipboard", + "Create New Wallet": "Create New Wallet", + "Create Wallet": "Create Wallet", + "Create new wallet": "Create new wallet", + "Creating Account": "Creating Account", + "Creating Wallet": "Creating Wallet", + "Custom": "Custom", + "Custom Public Node": "Custom Public Node", + "Custom arguments:": "Custom arguments:", + "Custom data storage folder": "Custom data storage folder", "DAA": "DAA", - "DAA Offset": "DAA-смещение", - "DAA Range": "DAA-диапазон", - "DB Blocks": "DB Блоки", - "DB Headers": "DB Заголовки", - "Database Blocks": "Блоки базы данных", - "Database Headers": "Заголовки базы данных", - "Decrypting wallet, please wait...": "Расшифровка кошелька, пожалуйста, подождите...", - "Default": "По умолчанию", - "Default Account Name": "Имя аккаунта по умолчанию", - "Delete Data Folder": "Удалить папку с данными", - "Dependencies": "Зависимости", - "Derivation Indexes": "Индексы производных", - "Details": "Детали", - "Developer Mode": "Режим разработчика", - "Developer Resources": "Ресурсы разработчика", - "Developer mode enables advanced and experimental features": "Режим разработчика позволяет использовать расширенные и экспериментальные функции", - "Difficulty": "Сложность", - "Dimensions": "Размеры", - "Disable password score restrictions": "Отключить ограничения по оценке сложности пароля", - "Disabled": "Отключено", - "Disables node connectivity (Offline Mode).": "Отключает соединение ноды (оффлайн режим).", + "DAA Offset": "DAA Offset", + "DAA Range": "DAA Range", + "DB Blocks": "DB Blocks", + "DB Headers": "DB Headers", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", + "Database Blocks": "Database Blocks", + "Database Headers": "Database Headers", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Decrypting wallet, please wait...", + "Default": "Default", + "Default Account Name": "Default Account Name", + "Delete Data Folder": "Delete Data Folder", + "Dependencies": "Dependencies", + "Derivation Indexes": "Derivation Indexes", + "Details": "Details", + "Developer Mode": "Developer Mode", + "Developer Resources": "Developer Resources", + "Developer mode enables advanced and experimental features": "Developer mode enables advanced and experimental features", + "Difficulty": "Difficulty", + "Dimensions": "Dimensions", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Disabled", + "Disables node connectivity (Offline Mode).": "Disables node connectivity (Offline Mode).", "Discord": "Discord", - "Donations": "Пожертвования", - "Double click on the graph to re-center...": "Дважды щёлкните по графику, чтобы центрировать его...", + "Donations": "Donations", + "Double click on the graph to re-center...": "Double click on the graph to re-center...", "ECDSA": "ECDSA", - "Enable Market Monitor": "Включить мониторинг рынка", - "Enable UPnP": "Включить UPnP", - "Enable custom daemon arguments": "Включить пользовательские аргументы службы", - "Enable experimental features": "Включить экспериментальные функции", - "Enable gRPC": "Включить gRPC", - "Enable optional BIP39 passphrase": "Включить дополнительную фразу BIP39", - "Enable screen capture": "Включить захват экрана", - "Enables features currently in development": "Включает функции, находящиеся в разработке", - "Enter": "Ввод", - "Enter account name (optional)": "Введите имя аккаунта (необязательно)", - "Enter first account name": "Введите имя аккаунта", - "Enter phishing hint": "Введите фишинговую подсказку", - "Enter the amount": "Введите сумму", - "Enter the password for your wallet": "Введите пароль для вашего кошелька", - "Enter the password to unlock your wallet": "Введите пароль для разблокировки вашего кошелька", - "Enter wallet name": "Введите имя кошелька", - "Enter wallet password": "Введите пароль кошелька", - "Enter your wallet secret": "Введите секрет своего кошелька", - "Explorer": "Обозреватель", - "Export Wallet Data": "Экспорт данных кошелька", - "Faucet": "Криптокран", - "File Handles": "Файловые дескрипторы", - "Filename:": "Имя файла:", - "Final Amount:": "Окончательная сумма:", - "GitHub Release": "GitHub Релиз", - "Go to Settings": "Перейдите в Настройки", - "Handles": "Дескрипторы", - "Headers": "Заголовки", - "IBD:": "IBD:", - "If not specified, the account will be represented by the numeric id.": "Если не указано, учётная запись будет представлена числовым идентификатором.", - "If you are running locally, use: ": "Если вы работаете локально, используйте:", - "Import existing": "Импорт существующих", - "Inbound": "Входящий", - "Include QoS Priority Fees": "Включают плату за приоритет QoS", - "Integrated Daemon": "Интегрированная служба", - "Invalid daemon arguments": "Неверные аргументы службы", - "Invalid network type - expected: testnet-10 connected to: testnet-11": "Неверный тип сети - ожидается: testnet-10 подключено к: testnet-11", - "Invalid wRPC URL": "Неверный URL wRPC", - "Json Active Connections": "Активные Json-соединения", - "Json Connection Attempts": "Попытки подключения Json", - "Json Handshake Failures": "Сбои при Json-соединении", - "Kaspa Discord": "Kaspa Discord", - "Kaspa Integration Guide": "Kaspa Руководство по интеграции", - "Kaspa NG": "Kaspa NG", - "Kaspa NG Online": "Kaspa NG Online", - "Kaspa NG Web App": "Kaspa NG Web App", - "Kaspa NG on GitHub": "Kaspa NG на GitHub", - "Kaspa NG online": "Kaspa NG онлайн", - "Kaspa Network": "Kaspa Сеть", - "Kaspa Node": "Kaspa Нода", - "Kaspa p2p Network & Node Connection": "Kaspa p2p-соединение с сетью и нодой", - "Kaspa p2p Node": "Kaspa p2p-нода", - "Kaspa p2p Node & Connection": "Kaspa p2p-нода и соединение", - "Key Perf.": "Ключевая производительность", - "Language:": "Язык:", - "Large (1 BPS)": "Большой (1 BPS)", - "Levels": "Уровни", - "License Information": "Информация о лицензии", - "Local": "Лосальный", - "Local p2p Node Configuration": "Локальная конфигурация p2p-ноды", - "Logs": "Журналы", - "MT": "Ср.время", - "Main Kaspa network": "Основная сеть Kaspa", - "Mainnet": "Основная сеть", - "Mainnet (Main Kaspa network)": "Основная сеть (Основная сеть Kaspa)", - "Managed by the Rusty Kaspa daemon": "Управляется службой Rusty Kaspa", - "Market": "Рынок", - "Market Cap": "Рыночная капитализация", - "Market Monitor": "Мониторинг рынка", - "Mass Processed": "Массовая обработка", - "Medium Narrow": "Средний узкий", - "Medium Wide": "Средний широкий", - "Memory": "Память", - "Mempool": "Mempool", - "Mempool Size": "Размер Mempool", - "Metrics": "Метрики", - "Metrics are not currently available": "Метрики в настоящее время недоступны", - "NPM Modules for NodeJS": "NPM модули для NodeJS", - "Network": "Сеть", - "Network Difficulty": "Сложность сети", - "Network Fees:": "Сетевые комиссии:", - "Network Interface": "Сетевой интерфейс", - "Network Peers": "Сетевые пиры", - "No peers": "Нет пиров", - "No public node selected - please select a public node": "Не выбрана общедоступная нода - пожалуйста, выберите общедоступную ноду", - "No transactions": "Нет транзакций", - "No wallets found, please create a new wallet": "Нет найденных кошельков, пожалуйста, создайте новый кошелёк", - "Node": "Нода", - "Node Status": "Статус ноды", - "Noise": "Шум", - "None": "Ни одного", - "Not Connected": "Не подключено", - "Not connected": "Не подключено", - "Notifications": "Уведомления", - "Open Data Folder": "Открыть папку с данными", - "Opening wallet:": "Открытие кошелька:", - "Optional": "Дополнительно", - "Other operations": "Другие операции", - "Outbound": "Исходящий", - "Overview": "Обзор", - "Parents": "Родители", - "Past Median Time": "Прошлое среднее время", - "Payment & Recovery Password": "Оплата и восстановление пароля", - "Payment Request": "Запрос на оплату", - "Peers": "Пиры", - "Performance": "Производительность", - "Phishing Hint": "Фишинговая подсказка", - "Ping:": "Пинг:", - "Please Confirm Deletion": "Пожалуйста, подтвердите удаление", - "Please configure your Kaspa NG settings": "Пожалуйста, настройте свои параметры Kaspa NG", - "Please connect to Kaspa p2p node": "Пожалуйста, подключитесь к p2p-ноде Kaspa", - "Please create a stronger password": "Пожалуйста, создайте более надёжный пароль", - "Please enter": "Пожалуйста, введите", - "Please enter KAS amount to send": "Пожалуйста, введите сумму KAS для отправки", - "Please enter an amount": "Пожалуйста, введите сумму", - "Please enter the account name": "Пожалуйста, введите имя аккаунта", - "Please enter the wallet secret": "Пожалуйста, введите секрет кошелька", - "Please note that this is a beta release. Until this message is removed, please avoid using the wallet with mainnet funds.": "Пожалуйста, обратите внимание, что это альфа-версия. Пока это сообщение не будет удалено, пожалуйста, избегайте использования кошелька с основными средствами.", - "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Пожалуйста, обратите внимание, что копирование в буфер обмена несёт риск раскрытия вашей мнемоники вредоносным программам.", - "Please select an account type": "Пожалуйста, выберите тип аккаунта", - "Please select the private key to export": "Пожалуйста, выберите приватный ключ для экспорта", - "Please set node to 'Disabled' to delete the data folder": "Пожалуйста, установите значение ноды 'Отключено', чтобы удалить папку с данными", - "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Пожалуйста, укажите имя аккаунта по умолчанию. Кошелёк будет создан с аккаунтом по умолчанию. После создания вы сможете создавать дополнительные аккаунты по мере необходимости.", - "Please specify the name of the new wallet": "Пожалуйста, укажите имя нового кошелька", - "Please specify the private key type for the new wallet": "Пожалуйста, укажите тип приватного ключа для нового кошелька", - "Please wait for the node to sync or connect to a remote node.": "Пожалуйста, подождите, пока нода синхронизируется или подключится к удалённой ноде.", - "Please wait for the node to sync...": "Пожалуйста, подождите, пока нода синхронизируется...", - "Please wait...": "Пожалуйста, подождите...", - "Presets": "Предустановки", - "Price": "Цена", - "Private Key Mnemonic": "Приватный ключ мнемоники", - "Processed Bodies": "Обработанные тела блоков", - "Processed Dependencies": "Обработанные зависимости", - "Processed Headers": "Обработанные заголовки", - "Processed Mass Counts": "Обработанные счетчики массы", - "Processed Transactions": "Обработанные транзакции", - "Protocol:": "Протокол:", - "Public Node": "Публичная нода", - "Public Nodes": "Публичные ноды", - "Public Server": "Публичный сервер", - "Public p2p Nodes for": "Публичные p2p-ноды для", - "Random Public Node": "Случайная публичная нода", - "Range:": "Диапазон:", - "Receive Address": "Адрес получения", - "Recommended arguments for the remote node: ": "Рекомендуемые аргументы для удалённой ноды:", - "Remote": "Удалённый", - "Remote Connection:": "Удалённое подключение:", - "Remote p2p Node Configuration": " Конфигурация удалённой p2p-ноды", - "Removes security restrictions, allows for single-letter passwords": "Удаляет ограничения безопасности, позволяет использовать однобуквенные пароли", - "Reset Settings": "Сбросить настройки", - "Reset VSPC": "Сбросить VSPC", - "Resident Memory": "Резидентная память", - "Resources": "Ресурсы", - "Resulting daemon arguments:": "Результирующие аргументы службы:", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Enable Market Monitor", + "Enable UPnP": "Enable UPnP", + "Enable custom daemon arguments": "Enable custom daemon arguments", + "Enable experimental features": "Enable experimental features", + "Enable gRPC": "Enable gRPC", + "Enable optional BIP39 passphrase": "Enable optional BIP39 passphrase", + "Enable screen capture": "Enable screen capture", + "Enables features currently in development": "Enables features currently in development", + "Enter": "Enter", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Enter account name (optional)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Enter first account name", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Enter phishing hint", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Enter the amount", + "Enter the password for your wallet": "Enter the password for your wallet", + "Enter the password to unlock your wallet": "Enter the password to unlock your wallet", + "Enter wallet name": "Enter wallet name", + "Enter wallet password": "Enter wallet password", + "Enter your wallet secret": "Enter your wallet secret", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Explorer", + "Export Wallet Data": "Export Wallet Data", + "FIRST": "FIRST", + "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "File Handles", + "File contents": "File contents", + "Filename:": "Filename:", + "Final Amount:": "Final Amount:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub Release", + "Go to Settings": "Go to Settings", + "Good": "Good", + "Handles": "Handles", + "Headers": "Headers", + "High": "High", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "If not specified, the account will be represented by the numeric id.", + "If you are running locally, use: ": "If you are running locally, use: ", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Import existing", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Inbound", + "Integrated Daemon": "Integrated Daemon", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Invalid daemon arguments", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Invalid wRPC URL", + "Json Active Connections": "Json Active Connections", + "Json Connection Attempts": "Json Connection Attempts", + "Json Handshake Failures": "Json Handshake Failures", + "Kaspa Discord": "Kaspa Discord", + "Kaspa Integration Guide": "Kaspa Integration Guide", + "Kaspa NG": "Kaspa NG", + "Kaspa NG on GitHub": "Kaspa NG on GitHub", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Kaspa Network", + "Kaspa Node": "Kaspa Node", + "Kaspa p2p Network & Node Connection": "Kaspa p2p Network & Node Connection", + "Kaspa p2p Node": "Kaspa p2p Node", + "Kaspa p2p Node & Connection": "Kaspa p2p Node & Connection", + "Key Perf.": "Key Perf.", + "LAST": "LAST", + "Language:": "Language:", + "Large (1 BPS)": "Large (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Levels", + "License Information": "License Information", + "Local": "Local", + "Local p2p Node Configuration": "Local p2p Node Configuration", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Logs", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", + "MT": "MT", + "Main Kaspa network": "Main Kaspa network", + "Mainnet": "Mainnet", + "Managed by the Rusty Kaspa daemon": "Managed by the Rusty Kaspa daemon", + "Market": "Market", + "Market Cap": "Market Cap", + "Market Monitor": "Market Monitor", + "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Medium Narrow", + "Medium Wide": "Medium Wide", + "Memory": "Memory", + "Mempool": "Mempool", + "Mempool Size": "Mempool Size", + "Metrics": "Metrics", + "Metrics are not currently available": "Metrics are not currently available", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM Modules for NodeJS", + "Network": "Network", + "Network Difficulty": "Network Difficulty", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Network Interface", + "Network Peers": "Network Peers", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "No peers", + "No public node selected - please select a public node": "No public node selected - please select a public node", + "No transactions": "No transactions", + "No wallets found, please create a new wallet": "No wallets found, please create a new wallet", + "Node": "Node", + "Node Status": "Node Status", + "Noise": "Noise", + "None": "None", + "Normal": "Normal", + "Not Connected": "Not Connected", + "Not connected": "Not connected", + "Notifications": "Notifications", + "Open Data Folder": "Open Data Folder", + "Opening wallet:": "Opening wallet:", + "Optional": "Optional", + "Options": "Options", + "Other operations": "Other operations", + "Outbound": "Outbound", + "Overview": "Overview", + "PREV": "PREV", + "Parents": "Parents", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Past Median Time", + "Payment & Recovery Password": "Payment & Recovery Password", + "Payment Request": "Payment Request", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Peers", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performance", + "Phishing Hint": "Phishing Hint", + "Ping:": "Ping:", + "Please Confirm Deletion": "Please Confirm Deletion", + "Please configure your Kaspa NG settings": "Please configure your Kaspa NG settings", + "Please connect to Kaspa p2p node": "Please connect to Kaspa p2p node", + "Please create a stronger password": "Please create a stronger password", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Please enter an amount", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Please enter the account name", + "Please enter the wallet secret": "Please enter the wallet secret", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Please select an account type", + "Please select export type": "Please select export type", + "Please select the private key to export": "Please select the private key to export", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Please set node to 'Disabled' to delete the data folder", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.", + "Please specify the name of the new wallet": "Please specify the name of the new wallet", + "Please specify the private key type for the new wallet": "Please specify the private key type for the new wallet", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Please wait for the node to sync or connect to a remote node.", + "Please wait for the node to sync...": "Please wait for the node to sync...", + "Please wait...": "Please wait...", + "Presets": "Presets", + "Price": "Price", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Processed Bodies", + "Processed Dependencies": "Processed Dependencies", + "Processed Headers": "Processed Headers", + "Processed Mass Counts": "Processed Mass Counts", + "Processed Transactions": "Processed Transactions", + "Processing...": "Processing...", + "Protocol:": "Protocol:", + "Public Node": "Public Node", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Random Public Node", + "Range:": "Range:", + "Receive Address": "Receive Address", + "Recommended arguments for the remote node: ": "Recommended arguments for the remote node: ", + "Redistributables": "Redistributables", + "Remote": "Remote", + "Remote Connection:": "Remote Connection:", + "Remote p2p Node Configuration": "Remote p2p Node Configuration", + "Removes security restrictions, allows for single-letter passwords": "Removes security restrictions, allows for single-letter passwords", + "Reset Settings": "Reset Settings", + "Reset VSPC": "Reset VSPC", + "Resident Memory": "Resident Memory", + "Resources": "Resources", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Resulting daemon arguments:", "Rust Wallet SDK": "Rust Wallet SDK", - "Rusty Kaspa on GitHub": "Rusty Kaspa на GitHub", - "Secret is too weak": "Секрет слишком слабый", - "Secret score:": "Оценка секрета:", - "Select Account": "Выберите аккаунт", - "Select Available Server": "Выберите доступный сервер", - "Select Private Key Type": "Выберите тип приватного ключа", - "Select Public Node": "Выберите публичную ноду", - "Select Wallet": "Выберите кошелёк", - "Select a wallet to unlock": "Выберите кошелёк для разблокировки", - "Send": "Отправить", - "Services": "Сервисы", - "Settings": "Настройки", - "Show DAA": "Показать DAA", - "Show Grid": "Показать сетку", - "Show VSPC": "Показать VSPC", - "Show balances in alternate currencies for testnet coins": "Показывайте балансы в альтернативных валютах для тестовых монет", - "Show password": "Показать пароль", - "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Показывает балансы в альтернативных валютах (BTC, USD), когда используются тестовые монеты, как будто вы находитесь на основной сети", - "Skip": "Пропустить", - "Small (10 BPS)": "Маленький (10 BPS)", - "Spread": "Разброс", - "Stage": "Этап", - "Starting...": "Начало...", - "Statistics": "Статистика", - "Stor Read": "Чтение с диска", - "Stor Write": "Запись на диск", - "Storage": "Диск", - "Storage Read": "Чтение с диска", - "Storage Read/s": "Чтение с диска/сек.", - "Storage Write": "Запись на диск", - "Storage Write/s": "Запись на диск/сек.", - "Submitted Blocks": "Отправленные блоки", - "Supporting Kaspa NG development": "Поддержка разработки Kaspa NG", - "Syncing Cryptographic Proof...": "Синхронизация криптографического доказательства...", - "Syncing DAG Blocks...": "Синхронизация блоков DAG...", - "Syncing Headers...": "Синхронизация заголовков...", - "Syncing UTXO entries...": "Синхронизация UTXO-записей...", - "Syncing...": "Синхронизация...", - "System": "Система", + "Rusty Kaspa on GitHub": "Rusty Kaspa on GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Secret is too weak", + "Secret score:": "Secret score:", + "Select Account": "Select Account", + "Select Private Key Type": "Select Private Key Type", + "Select Public Node": "Select Public Node", + "Select Wallet": "Select Wallet", + "Select a wallet to unlock": "Select a wallet to unlock", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Send", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Services", + "Settings": "Settings", + "Show DAA": "Show DAA", + "Show Grid": "Show Grid", + "Show VSPC": "Show VSPC", + "Show balances in alternate currencies for testnet coins": "Show balances in alternate currencies for testnet coins", + "Show passphrase": "Show passphrase", + "Show password": "Show password", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet", + "Skip": "Skip", + "Small (10 BPS)": "Small (10 BPS)", + "Spread": "Spread", + "Stage": "Stage", + "Starting...": "Starting...", + "Statistics": "Statistics", + "Stop": "Stop", + "Stor Read": "Stor Read", + "Stor Write": "Stor Write", + "Storage": "Storage", + "Storage Read": "Storage Read", + "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", + "Storage Write": "Storage Write", + "Storage Write/s": "Storage Write/s", + "Strong": "Strong", + "Submitted Blocks": "Submitted Blocks", + "Syncing Cryptographic Proof...": "Syncing Cryptographic Proof...", + "Syncing DAG Blocks...": "Syncing DAG Blocks...", + "Syncing Headers...": "Syncing Headers...", + "Syncing UTXO entries...": "Syncing UTXO entries...", + "Syncing...": "Syncing...", + "System": "System", "TPS": "TPS", "Testnet 10": "Testnet 10", - "Testnet 10 (1 BPS)": "Testnet 10 (1 BPS)", "Testnet 11": "Testnet 11", - "Testnet 11 (10 BPS)": "Testnet 11 (10 BPS)", - "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.": "Testnet 11 ещё не активирована для публичного тестирования. Однако вы можете настроить ноду для подключения к частной тестовой сети разработчиков в панели настроек.", - "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Программное обеспечение Kaspa NG представляет собой непрерывную работу, направленную на создание современной программной платформы, предназначенной для криптовалютной сети Kaspa BlockDAG. Идеологическое по своей сути, это программное обеспечение уделяет приоритетное внимание безопасности, конфиденциальности, производительности и децентрализации.", - "The balance may be out of date during node sync": "Баланс может быть устаревшим во время синхронизации ноды", - "The following will guide you through the process of creating or importing a wallet.": "Следующее руководство поможет вам пройти процесс создания или импорта кошелька.", - "The node is currently syncing with the Kaspa p2p network.": "В настоящее время нода синхронизируется с p2p-сетью Kaspa.", - "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "В настоящее время нода синхронизируется с p2p-сетью Kaspa.. Балансы счетов могут быть устаревшими.", - "The node is spawned as a child daemon process (recommended).": "Нода создаётся в качестве дочерней службы/процесса (рекомендуется).", - "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "Нода работает в рамках процесса приложения Kaspa-NG. Это снижает накладные расходы на связь (экспериментально).", - "Theme Color": "Цвет темы", - "Theme Color:": "Цвет темы:", - "Theme Style": "Стиль темы", - "Theme Style:": "Стиль темы:", - "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Этот кошелёк никогда не будет запрашивать у вас эту мнемоническую фразу, если вы не инициируете восстановление приватного ключа вручную.", - "Threshold": "Предел", - "Time Offset:": "Смещение времени:", - "Tip Hashes": "Хэши советов", - "Tools ⏷": "Инструменты ⏷", - "Total Rx": "Общий Rx", - "Total Rx/s": "Общий Rx/s", - "Total Tx": "Общий Tx", - "Total Tx/s": "Общий Tx/s", - "Track in the background": "Отслеживание в фоновом режиме", - "Transactions": "Транзакции", - "Transactions:": "Транзакции:", - "Type": "Тип", - "UTXO Manager": "UTXO Менеджер", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.", + "The balance may be out of date during node sync": "The balance may be out of date during node sync", + "The following will guide you through the process of creating or importing a wallet.": "The following will guide you through the process of creating or importing a wallet.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "The node is currently syncing with the Kaspa p2p network.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Theme Color", + "Theme Color:": "Theme Color:", + "Theme Style": "Theme Style", + "Theme Style:": "Theme Style:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Threshold": "Threshold", + "Time Offset:": "Time Offset:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Track in the background", + "Transactions": "Transactions", + "Transactions:": "Transactions:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Type", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO Manager", "UTXOs": "UTXOs", "UTXOs:": "UTXOs:", - "Unable to change node settings until the problem is resolved": "Невозможно изменить настройки ноды, пока проблема не будет решена.", - "Unlock": "Разблокировать", - "Unlock Wallet": "Разблокировать кошелёк", - "Unlocking": "Разблокировка", - "Update Available to version": "Доступно обновление до версии", - "Updating...": "Обновление...", - "Uptime:": "Время работы:", - "Use 50%-75% of available system memory": "Используйте 50%-75% от доступной системной памяти", - "Use all available system memory": "Используйте всю доступную системную память", + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Unable to change node settings until the problem is resolved", + "Unable to store settings": "Unable to store settings", + "Unlock": "Unlock", + "Unlock Wallet": "Unlock Wallet", + "Unlocking": "Unlocking", + "Update Available to version": "Update Available to version", + "Updating...": "Updating...", + "Uptime:": "Uptime:", + "Use 50%-75% of available system memory": "Use 50%-75% of available system memory", + "Use all available system memory": "Use all available system memory", "User Agent": "User Agent", - "User Interface": "Пользовательский интерфейс", - "Very dangerous (may be cracked within few seconds)": "Очень опасно (может быть взломано за несколько секунд)", - "Virt Parents": "Вирт. родители", - "Virtual DAA Score": "Виртуальный балл DAA", - "Virtual Memory": "Виртуальная память", - "Virtual Parent Hashes": "Хэши виртуальных родителей", - "Volume": "Объём", - "WASM SDK for JavaScript and TypeScript": "WASM SDK для JavaScript и TypeScript", - "Wallet": "Кошелёк", - "Wallet Created": "Кошелёк создан", - "Wallet Encryption Password": "Пароль шифрования кошелька", - "Wallet Name": "Имя кошелька", - "Wallet Secret": "Секрет кошелька", - "Wallet password is used to encrypt your wallet data.": "Пароль кошелька используется для шифрования данных вашего кошелька.", - "Wallet:": "Кошелёк:", - "We greatly appreciate your help in backing our efforts.": "Мы очень ценим вашу помощь в поддержке наших усилий.", - "Welcome to Kaspa NG": "Добро пожаловать в Kaspa NG", - "Xpub Keys": "Xpub Ключи", - "You are currently not connected to the Kaspa node.": "Вы в настоящее время не подключены к ноде Kaspa.", - "You can configure remote connection in Settings": "Вы можете настроить удалённое подключение в настройках.", - "You can create multiple wallets, but only one wallet can be open at a time.": "Вы можете создать несколько кошельков, но только один кошелёк может быть открыт в данный момент.", - "You must be connected to a node...": "Вы должны быть подключены к ноде...", - "Your default wallet private key mnemonic is:": "Ваш мнемонический приватный ключ кошелька по умолчанию:", - "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Ваша мнемоническая фраза позволяет вам воссоздать ваш приватный ключ. Человек, у которого есть доступ к этой мнемонике, будет иметь полный контроль над Kaspa, хранящимся в ней. Храните вашу мнемоническую фразу в безопасности. Запишите её и сохраните в надёжном месте, желательно в огнестойком месте. Не храните вашу мнемоническую фразу на этом компьютере или мобильном устройстве. Этот кошелёк никогда не будет запрашивать у вас эту мнемоническую фразу, если вы не инициируете восстановление приватного ключа вручную.", - "Your private key mnemonic is:": "Ваш мнемонический приватный ключ:", - "Your wallet has been created and is ready to use.": "Ваш кошелёк был создан и готов к использованию.", - "Zoom": "Масштабирование", - "amount to send": "сумма для отправки", - "bye!": "пока!", - "gRPC Network Interface & Port": "gRPC Сетевой интерфейс и порт", + "User Interface": "User Interface", + "Very dangerous (may be cracked within few seconds)": "Very dangerous (may be cracked within few seconds)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Virt Parents", + "Virtual DAA Score": "Virtual DAA Score", + "Virtual Memory": "Virtual Memory", + "Virtual Parent Hashes": "Virtual Parent Hashes", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", + "Wallet": "Wallet", + "Wallet Created": "Wallet Created", + "Wallet Encryption Password": "Wallet Encryption Password", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Wallet Name", + "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Wallet password is used to encrypt your wallet data.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Wallet:", + "We greatly appreciate your help in backing our efforts.": "We greatly appreciate your help in backing our efforts.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Welcome to Kaspa NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "You are currently not connected to the Kaspa node.", + "You can configure remote connection in Settings": "You can configure remote connection in Settings", + "You can create multiple wallets, but only one wallet can be open at a time.": "You can create multiple wallets, but only one wallet can be open at a time.", + "You must be connected to a node...": "You must be connected to a node...", + "Your default wallet private key mnemonic is:": "Your default wallet private key mnemonic is:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Your private key mnemonic is:", + "Your wallet has been created and is ready to use.": "Your wallet has been created and is ready to use.", + "Zoom": "Zoom", + "bye!": "bye!", + "gRPC Network Interface & Port": "gRPC Network Interface & Port", "gRPC Rx": "gRPC Rx", "gRPC Rx/s": "gRPC Rx/s", "gRPC Tx": "gRPC Tx", "gRPC Tx/s": "gRPC Tx/s", - "of": "из", + "of": "of", "p2p RPC": "p2p RPC", "p2p Rx": "p2p Rx", "p2p Rx/s": "p2p Rx/s", "p2p Tx": "p2p Tx", "p2p Tx/s": "p2p Tx/s", - "peer": "пир", - "peers": "пиры", + "peer": "peer", + "peers": "peers", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", "wRPC Borsh Rx": "wRPC Borsh Rx", "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", "wRPC Borsh Tx": "wRPC Borsh Tx", "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", - "wRPC Connection Settings": "Настройки подключения wRPC", - "wRPC Encoding:": "Кодирование wRPC:", + "wRPC Connection Settings": "wRPC Connection Settings", + "wRPC Encoding:": "wRPC Encoding:", "wRPC JSON Rx": "wRPC JSON Rx", "wRPC JSON Rx/s": "wRPC JSON Rx/s", "wRPC JSON Tx": "wRPC JSON Tx", "wRPC JSON Tx/s": "wRPC JSON Tx/s", - "wRPC URL:": "wRPC URL:" + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" }, - "sk": {}, - "sl": {}, - "sr": {}, - "sv": {}, - "ta": {}, - "te": {}, - "th": {}, - "tr": {}, - "uk": { - "1 BPS test network": "Тестова мережа 1 BPS", - "10 BPS test network": "10 BPS тестова мережа", - "12 word mnemonic": "12-слівна мнемонічна фраза", - "24 word mnemonic": "24-слівний мнемонічний код", - "24h Change": "Зміна за 24 години", - "A binary at another location is spawned a child process (experimental, for development purposes only).": "Бінарний файл на іншому місці породжує дочірній процес (експериментально, лише для розробки).", - "A random node will be selected on startup": "Під час запуску буде вибрано випадковий вузол", - "A wallet is stored in a file on your computer.": "Гаманець зберігається у файлі на вашому комп'ютері.", - "Account Index": "Індекс облікового запису", - "Account Name": "Назва облікового запису", - "Account:": "Обліковий запис:", - "Activate custom daemon arguments": "Активація користувацьких аргументів демона", - "Active p2p Peers": "Активні P2P піри", - "Address derivation scan": "Сканування похідних адрес", - "Address:": "Адреса:", - "Advanced": "Розширені", - "All": "Всі", - "Allow custom arguments for the Rusty Kaspa daemon": "Дозволяє користувачам встановлювати свої аргументи для демона Rusty Kaspa", - "Allows you to take screenshots from within the application": "Дозволяє робити скріншоти з програми", - "Apply": "Застосувати", - "Balance: N/A": "Баланс: Н/Д", - "Bandwidth": "Пропускна здатність", - "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Через свою спрямованість на безпеку та продуктивність, це програмне забезпечення повністю розроблене на Rust, що вимагає значно більше часу та зусиль порівняно з іншими традиційними сучасними веб-додатками.", - "Bezier Curves": "Криві Безьє", - "Block DAG": "Блок DAG", - "Block Scale": "Масштаб блоку", - "Blocks": "Блоки", - "Bodies": "Тіла", - "Borsh Active Connections": "Активні підключення Borsh", - "Borsh Connection Attempts": "Спроби підключення до Borsh", - "Borsh Handshake Failures": "Невдачі рукостискання Borsh", - "Build": "Збудувати", - "CONNECTED": "ПІДКЛЮЧЕНО", - "CPU": "ЦП", - "Cache Memory Size": "Розмір кеш-пам'яті:", - "Cache Memory Size:": "Розмір кеш-пам'яті:", - "Cancel": "Скасувати", - "Cannot delete data folder while the node is running": "Неможливо видалити папку даних під час роботи вузла", - "Capture a screenshot": "Зробити знімок екрана", - "Center VSPC": "Центрувати VSPC", - "Chain Blocks": "Блоки ланцюга", - "Change Address": "Змінити адресу", - "Check for Software Updates on GitHub": "Перевірити оновлення програмного забезпечення на GitHub", - "Check for Updates": "Перевірити наявність оновлень", - "Clear": "Очистити", - "Click to try another server...": "Клацніть, щоб спробувати інший сервер...", - "Client RPC": "Клієнтський RPC", - "Close": "Закрити", - "Confirm wallet password": "Підтвердити пароль гаманця", - "Connect to a local node (localhost)": "Підключитися до локального вузла (localhost)", - "Connecting to": "Підключення до", - "Connection": "Підключення", - "Connections": "Підключення", - "Connects to a Remote Rusty Kaspa Node via wRPC.": "Підключається до віддаленого вузла Rusty Kaspa через wRPC.", - "Conservative": "Консервативний", - "Continue": "Продовжити", - "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.": "Внески, спрямовані на цей проект, безпосередньо підтримують програмне забезпечення Kaspa NG та його екосистему.", - "Copied to clipboard": "Скопійовано в буфер обміну", - "Copy": "Копіювати", - "Copy logs to clipboard": "Скопіювати лог-журнали в буфер обміну", - "Create New Account": "Створити новий обліковий запис", - "Create New Wallet": "Створити новий гаманець", - "Create new wallet": "Створити новий гаманець", - "Creating Account": "Створення облікового запису", - "Creating Wallet": "Створення гаманця", - "Custom": "Користувацький", - "Custom Public Node": "Нестандартний публічний вузол", - "Custom arguments:": "Спеціальні аргументи:", + "vi": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).", + "1 BPS test network": "1 BPS test network", + "10 BPS test network": "10 BPS test network", + "12 word mnemonic": "12 word mnemonic", + "24 word mnemonic": "24 word mnemonic", + "24h Change": "24h Change", + "3 hours or more": "3 hours or more", + "< {minutes} minute": "< {minutes} minute", + "< {minutes} minutes": "< {minutes} minutes", + "< {seconds} second": "< {seconds} second", + "< {seconds} seconds": "< {seconds} seconds", + "A binary at another location is spawned a child process (experimental, for development purposes only).": "A binary at another location is spawned a child process (experimental, for development purposes only).", + "A random node will be selected on startup": "A random node will be selected on startup", + "A wallet is stored in a file on your computer.": "A wallet is stored in a file on your computer.", + "Account Index": "Account Index", + "Account Name": "Account Name", + "Account not found": "Account not found", + "Account:": "Account:", + "Activate custom daemon arguments": "Activate custom daemon arguments", + "Active p2p Peers": "Active p2p Peers", + "Add Account": "Add Account", + "Address copied to clipboard": "Address copied to clipboard", + "Address derivation scan": "Address derivation scan", + "Address:": "Address:", + "Advanced": "Advanced", + "All": "All", + "Allow clipboard copy": "Allow clipboard copy", + "Allow custom arguments for the Rusty Kaspa daemon": "Allow custom arguments for the Rusty Kaspa daemon", + "Allows you to take screenshots from within the application": "Allows you to take screenshots from within the application", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "Application must be restarted for this setting to take effect.", + "Apply": "Apply", + "Architecture {arch}": "Architecture {arch}", + "Are you sure you want to reset all settings?": "Are you sure you want to reset all settings?", + "BALANCE": "BALANCE", + "Balance: N/A": "Balance: N/A", + "Bandwidth": "Bandwidth", + "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.", + "Bezier Curves": "Bezier Curves", + "Block DAG": "Block DAG", + "Block Scale": "Block Scale", + "Blocks": "Blocks", + "Bodies": "Bodies", + "Borsh Active Connections": "Borsh Active Connections", + "Borsh Connection Attempts": "Borsh Connection Attempts", + "Borsh Handshake Failures": "Borsh Handshake Failures", + "Build": "Build", + "CONNECTED": "CONNECTED", + "CPU": "CPU", + "Cache Memory Size": "Cache Memory Size", + "Cancel": "Cancel", + "Cannot delete data folder while the node is running": "Cannot delete data folder while the node is running", + "Capture a screenshot": "Capture a screenshot", + "Capture saved to {path}": "Capture saved to {path}", + "Center VSPC": "Center VSPC", + "Chain Blocks": "Chain Blocks", + "Change Address": "Change Address", + "Change Wallet Secret": "Change Wallet Secret", + "Check for Software Updates on GitHub": "Check for Software Updates on GitHub", + "Check for Updates": "Check for Updates", + "Clear": "Clear", + "Click to try another server...": "Click to try another server...", + "Client RPC": "Client RPC", + "Close": "Close", + "Close the window": "Close the window", + "Confirm BIP39 passphrase": "Confirm BIP39 passphrase", + "Confirm wallet password": "Confirm wallet password", + "Connecting to": "Connecting to", + "Connection": "Connection", + "Connections": "Connections", + "Connects to a Remote Rusty Kaspa Node via wRPC.": "Connects to a Remote Rusty Kaspa Node via wRPC.", + "Conservative": "Conservative", + "Continue": "Continue", + "Copied to clipboard": "Copied to clipboard", + "Copy": "Copy", + "Copy logs to clipboard": "Copy logs to clipboard", + "Create New Wallet": "Create New Wallet", + "Create Wallet": "Create Wallet", + "Create new wallet": "Create new wallet", + "Creating Account": "Creating Account", + "Creating Wallet": "Creating Wallet", + "Custom": "Custom", + "Custom Public Node": "Custom Public Node", + "Custom arguments:": "Custom arguments:", + "Custom data storage folder": "Custom data storage folder", "DAA": "DAA", - "DAA Offset": "Зсув DAA", - "DAA Range": "Діапазон DAA", - "DB Blocks": "Блоки БД", - "DB Headers": "Заголовки БД", - "Database Blocks": "Блоки БД", - "Database Headers": "Заголовки БД", - "Decrypting wallet, please wait...": "Розшифровка гаманця, зачекайте, будь ласка...", - "Default": "За замовчуванням", - "Default Account Name": "Назва облікового запису за замовчуванням", - "Delete Data Folder": "Видалити папку з даними", - "Dependencies": "Залежності", - "Derivation Indexes": "Індекси похідних", - "Details": "Деталі", - "Developer Mode": "Режим розробника", - "Developer Resources": "Ресурси для розробників", - "Developer mode enables advanced and experimental features": "Режим розробника вмикає розширені та експериментальні функції", - "Difficulty": "Складність", - "Dimensions": "Виміри", - "Disable password score restrictions": "Вимкнути правила безпеки паролю", - "Disabled": "Вимкнено", - "Disables node connectivity (Offline Mode).": "Вимикає підключення вузла (офлайн-режим).", + "DAA Offset": "DAA Offset", + "DAA Range": "DAA Range", + "DB Blocks": "DB Blocks", + "DB Headers": "DB Headers", + "Dangerous": "Dangerous", + "Data Storage": "Data Storage", + "Database Blocks": "Database Blocks", + "Database Headers": "Database Headers", + "Decrypt": "Decrypt", + "Decrypting Wallet File": "Decrypting Wallet File", + "Decrypting wallet, please wait...": "Decrypting wallet, please wait...", + "Default": "Default", + "Default Account Name": "Default Account Name", + "Delete Data Folder": "Delete Data Folder", + "Dependencies": "Dependencies", + "Derivation Indexes": "Derivation Indexes", + "Details": "Details", + "Developer Mode": "Developer Mode", + "Developer Resources": "Developer Resources", + "Developer mode enables advanced and experimental features": "Developer mode enables advanced and experimental features", + "Difficulty": "Difficulty", + "Dimensions": "Dimensions", + "Disable Window Frame": "Disable Window Frame", + "Disable password safety rules": "Disable password safety rules", + "Disabled": "Disabled", + "Disables node connectivity (Offline Mode).": "Disables node connectivity (Offline Mode).", "Discord": "Discord", - "Donations": "Пожертви", - "Double click on the graph to re-center...": "Двічі клацніть на графіку, щоб рецентрувати...", + "Donations": "Donations", + "Double click on the graph to re-center...": "Double click on the graph to re-center...", "ECDSA": "ECDSA", - "Enable Market Monitor": "Увімкнути монітор ринку", - "Enable UPnP": "Увімкнути UPnP", - "Enable custom daemon arguments": "Увімкнути користувацькі аргументи демона", - "Enable experimental features": "Увімкнути експериментальні функції", - "Enable gRPC": "Увімкнути gRPC", - "Enable optional BIP39 passphrase": "Увімкнути необов'язкову додаткову фразу BIP39", - "Enable screen capture": "Увімкнути захоплення екрана", - "Enables features currently in development": "Вмикає функції, які наразі у розробці", - "Enter": "Введіть", - "Enter account name (optional)": "Введіть назву облікового запису (необов'язково)", - "Enter first account name": "Введіть ім'я першого облікового запису", - "Enter phishing hint": "Введіть підказку для розпізнавання фішинг-шахрайства", - "Enter the amount": "Введіть суму", - "Enter the password for your wallet": "Введіть пароль для вашого гаманця", - "Enter the password to unlock your wallet": "Введіть пароль, щоб розблокувати свій гаманець", - "Enter wallet name": "Введіть назву гаманця", - "Enter wallet password": "Введіть пароль гаманця", - "Enter your wallet secret": "Введіть секрет свого гаманця", - "Explorer": "Дослідник", - "Export Wallet Data": "Експорт даних гаманця", - "Faucet": "Кран", - "File Handles": "Дескриптори файлу", - "Filename:": "Ім'я файлу:", - "Final Amount:": "Кінцева сума:", - "GitHub Release": "Реліз GitHub", - "Go to Settings": "Перейти до Налаштувань", - "Handles": "Дескриптори", - "Headers": "Заголовки", - "IBD:": "Початкове завантаження блоків:", - "If not specified, the account will be represented by the numeric id.": "Якщо не вказано, обліковий запис буде представлений числовим ідентифікатором.", - "If you are running locally, use: ": "Якщо ви запускаєте локально, використовуйте:", - "Import existing": "Імпортувати існуючий", - "Inbound": "Вхідний", - "Include QoS Priority Fees": "Враховувати плату за пріоритет якості сервісу QoS", - "Integrated Daemon": "Інтегрований демон", - "Invalid daemon arguments": "Недійсні аргументи демона", - "Invalid network type - expected: testnet-10 connected to: testnet-11": "Недійсний тип мережі - очікується: тестова мережа-10; підключено до: тестова мережа-11", - "Invalid wRPC URL": "Недійсний URL wRPC", - "Json Active Connections": "Активні з'єднання Json", - "Json Connection Attempts": "Спроби підключення Json", - "Json Handshake Failures": "Помилки рукостискання Json", + "Economic": "Economic", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "Economic: {med} SOMPI/g; ~{med_kas}/tx", + "Enable Market Monitor": "Enable Market Monitor", + "Enable UPnP": "Enable UPnP", + "Enable custom daemon arguments": "Enable custom daemon arguments", + "Enable experimental features": "Enable experimental features", + "Enable gRPC": "Enable gRPC", + "Enable optional BIP39 passphrase": "Enable optional BIP39 passphrase", + "Enable screen capture": "Enable screen capture", + "Enables features currently in development": "Enables features currently in development", + "Enter": "Enter", + "Enter BIP39 passphrase": "Enter BIP39 passphrase", + "Enter account name (optional)": "Enter account name (optional)", + "Enter destination address": "Enter destination address", + "Enter first account name": "Enter first account name", + "Enter mnemonic": "Enter mnemonic", + "Enter password to decrypt this wallet file": "Enter password to decrypt this wallet file", + "Enter phishing hint": "Enter phishing hint", + "Enter priority fees": "Enter priority fees", + "Enter the amount": "Enter the amount", + "Enter the password for your wallet": "Enter the password for your wallet", + "Enter the password to unlock your wallet": "Enter the password to unlock your wallet", + "Enter wallet name": "Enter wallet name", + "Enter wallet password": "Enter wallet password", + "Enter your wallet secret": "Enter your wallet secret", + "Enter {suffix} amount to send": "Enter {suffix} amount to send", + "Error": "Error", + "Error importing a wallet": "Error importing a wallet", + "Error processing mnemonic: {err}": "Error processing mnemonic: {err}", + "Exit Full Screen": "Exit Full Screen", + "Explorer": "Explorer", + "Export Wallet Data": "Export Wallet Data", + "FIRST": "FIRST", + "Faucet": "Faucet", + "Fee Market": "Fee Market", + "Fee Market & Network Pressure": "Fee Market & Network Pressure", + "Fee Market Only": "Fee Market Only", + "File Handles": "File Handles", + "File contents": "File contents", + "Filename:": "Filename:", + "Final Amount:": "Final Amount:", + "Final Amount: {amount}": "Final Amount: {amount}", + "For decrypting uploaded file please enter wallet secret.": "For decrypting uploaded file please enter wallet secret.", + "Full Screen": "Full Screen", + "Generate New Change Address": "Generate New Change Address", + "Generate New Receive Address": "Generate New Receive Address", + "GitHub Release": "GitHub Release", + "Go to Settings": "Go to Settings", + "Good": "Good", + "Handles": "Handles", + "Headers": "Headers", + "High": "High", + "IBD:": "IBD:", + "If not specified, the account will be represented by the numeric id.": "If not specified, the account will be represented by the numeric id.", + "If you are running locally, use: ": "If you are running locally, use: ", + "Import Existing Private Key": "Import Existing Private Key", + "Import existing": "Import existing", + "Import existing file": "Import existing file", + "Importing Legacy Wallet": "Importing Legacy Wallet", + "Importing Wallet": "Importing Wallet", + "Importing Wallet File": "Importing Wallet File", + "Inbound": "Inbound", + "Integrated Daemon": "Integrated Daemon", + "Invalid amount:": "Invalid amount:", + "Invalid daemon arguments": "Invalid daemon arguments", + "Invalid fee amount:": "Invalid fee amount:", + "Invalid wRPC URL": "Invalid wRPC URL", + "Json Active Connections": "Json Active Connections", + "Json Connection Attempts": "Json Connection Attempts", + "Json Handshake Failures": "Json Handshake Failures", "Kaspa Discord": "Kaspa Discord", - "Kaspa Integration Guide": "Посібник з інтеграції Kaspa", + "Kaspa Integration Guide": "Kaspa Integration Guide", "Kaspa NG": "Kaspa NG", - "Kaspa NG Online": "Kaspa NG онлайн", - "Kaspa NG Web App": "Веб-додаток Kaspa NG", - "Kaspa NG on GitHub": "Kaspa NG на GitHub", - "Kaspa NG online": "Kaspa NG онлайн", - "Kaspa Network": "Мережа Kaspa", - "Kaspa Node": "Вузол Kaspa", - "Kaspa p2p Network & Node Connection": "Підключення до P2P-мережі та вузлів Kaspa", - "Kaspa p2p Node": "P2P Вузол Kaspa", - "Kaspa p2p Node & Connection": "Підключення та P2P вузол Kaspa", - "Key Perf.": "Ключові показники", - "Language:": "Мова:", - "Large (1 BPS)": "Велика (1 BPS)", - "Levels": "Рівні", - "License Information": "Інформація про ліцензію", - "Local": "Локальний", - "Local p2p Node Configuration": "Локальна конфігурація вузла P2P", - "Logs": "Логи", + "Kaspa NG on GitHub": "Kaspa NG on GitHub", + "Kaspa NG online": "Kaspa NG online", + "Kaspa Network": "Kaspa Network", + "Kaspa Node": "Kaspa Node", + "Kaspa p2p Network & Node Connection": "Kaspa p2p Network & Node Connection", + "Kaspa p2p Node": "Kaspa p2p Node", + "Kaspa p2p Node & Connection": "Kaspa p2p Node & Connection", + "Key Perf.": "Key Perf.", + "LAST": "LAST", + "Language:": "Language:", + "Large (1 BPS)": "Large (1 BPS)", + "Legacy 12 word mnemonic": "Legacy 12 word mnemonic", + "Levels": "Levels", + "License Information": "License Information", + "Local": "Local", + "Local p2p Node Configuration": "Local p2p Node Configuration", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", + "Logs": "Logs", + "Low": "Low", + "Low-priority": "Low-priority", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "Low: {low} SOMPI/g; ~{low_kas}/tx", "MT": "MT", - "Main Kaspa network": "Основна мережа Kaspa", - "Mainnet": "Основна мережа", - "Mainnet (Main Kaspa network)": "Mainnet (Основна мережа Kaspa)", - "Managed by the Rusty Kaspa daemon": "Управляється демоном Rusty Kaspa", - "Market": "Ринок", - "Market Cap": "Капіталізація ринку", - "Market Monitor": "Огляд ринку", - "Mass Processed": "Оброблено маси", - "Medium Narrow": "Середній Вузький", - "Medium Wide": "Середній Широкий", - "Memory": "Пам'ять", - "Mempool": "Пул пам'яті", - "Mempool Size": "Розмір пула пам'яті", - "Metrics": "Метрики", - "Metrics are not currently available": "Метрики на даний момент недоступні", - "NPM Modules for NodeJS": "Модулі NPM для NodeJS", - "Network": "Мережа", - "Network Difficulty": "Складність мережі", - "Network Fees:": "Комісія мережі:", - "Network Interface": "Мережевий інтерфейс", - "Network Peers": "Піри мережі", - "No peers": "Немає пірів", - "No public node selected - please select a public node": "Не вибрано жодного публічного вузла - будь ласка, виберіть публічний вузол", - "No transactions": "Немає транзакцій", - "No wallets found, please create a new wallet": "Не знайдено гаманців, будь ласка, створіть новий гаманец", - "Node": "Вузол", - "Node Status": "Статус вузла", - "Noise": "Шум", - "None": "Нічого", - "Not Connected": "Не підключено", - "Not connected": "Немає з'єднання", - "Notifications": "Сповіщення", - "Open Data Folder": "Відкрити папку з даними", - "Opening wallet:": "Відкриття гаманця:", - "Optional": "Додатково", - "Other operations": "Інші операції", - "Outbound": "Вихідний", - "Overview": "Огляд", - "Parents": "Батьки", - "Past Median Time": "Минула медіана часу", - "Payment & Recovery Password": "Пароль для оплати та відновлення", - "Payment Request": "Запит на оплату", - "Peers": "Піри", - "Performance": "Продуктивність", - "Phishing Hint": "Підказка щодо шахрайства - фішингу", - "Ping:": "Пінг:", - "Please Confirm Deletion": "Будь ласка, підтвердіть видалення", - "Please configure your Kaspa NG settings": "Будь ласка, налаштуйте параметри Kaspa NG", - "Please connect to Kaspa p2p node": "Будь ласка, підключіться до P2P вузла Kaspa", - "Please create a stronger password": "Будь ласка, створіть надійніший пароль", - "Please enter": "Будь ласка, введіть", - "Please enter KAS amount to send": "Будь ласка, введіть суму KAS для відправки", - "Please enter an amount": "Будь ласка, введіть суму", - "Please enter the account name": "Будь ласка, введіть назву облікового запису", - "Please enter the wallet secret": "Будь ласка, введіть секрет гаманця", - "Please note that this is a beta release. Until this message is removed, please avoid using the wallet with mainnet funds.": "Зверніть увагу, що це альфа-версія. Доки це повідомлення не буде видалено - уникайте використання цього програмного забезпечення з коштами основної мережі.", - "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Зверніть увагу, копіювання в буфер обміну може призвести до ризику викриття вашого мнемонічного коду вірусам.", - "Please select an account type": "Будь ласка, виберіть тип облікового запису", - "Please select the private key to export": "Будь ласка, виберіть приватний ключ для експорту", - "Please set node to 'Disabled' to delete the data folder": "Будь ласка, встановіть вузол на 'Вимкнено', для видалення папки з даними", - "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Будь ласка, вкажіть назву основного облікового запису. Гаманець буде створено з основним обліковим записом. Після створення ви зможете створити додаткові облікові записи за потребою.", - "Please specify the name of the new wallet": "Будь ласка, вкажіть назву нового гаманця", - "Please specify the private key type for the new wallet": "Будь ласка, вкажіть тип приватного ключа для нового гаманця", - "Please wait for the node to sync or connect to a remote node.": "Будь ласка, зачекайте, поки вузол синхронізується або підключиться до віддаленого вузла.", - "Please wait for the node to sync...": "Будь ласка, зачекайте, поки вузол синхронізується...", - "Please wait...": "Будь ласка, зачекайте...", - "Presets": "Пресети", - "Price": "Ціна", - "Private Key Mnemonic": "Мнемоніка приватного ключа", - "Processed Bodies": "Оброблені тіла", - "Processed Dependencies": "Оброблені залежності", - "Processed Headers": "Оброблені заголовки", - "Processed Mass Counts": "Кількість оброблених мас", - "Processed Transactions": "Оброблені транзакції", - "Protocol:": "Протокол:", - "Public Node": "Публічний вузол", - "Public Nodes": "Публічні вузли", - "Public Server": "Публічний сервер", - "Public p2p Nodes for": "Публічні вузли P2P для", - "Random Public Node": "Випадковий публічний вузол", - "Range:": "Діапазон:", - "Receive Address": "Адреса отримання", - "Recommended arguments for the remote node: ": "Рекомендовані аргументи для віддаленого вузла:", - "Remote": "Віддалено", - "Remote Connection:": "Віддалене підключення:", - "Remote p2p Node Configuration": "Віддалена конфігурація вузла P2P", - "Removes security restrictions, allows for single-letter passwords": "Знімає обмеження на безпеку, дозволяє використовувати однолітерні паролі", - "Reset Settings": "Скинути налаштування", - "Reset VSPC": "Скинути VSPC", - "Resident Memory": "Резидентна пам'ять", - "Resources": "Ресурси", - "Resulting daemon arguments:": "Результати аргументів демона:", + "Main Kaspa network": "Main Kaspa network", + "Mainnet": "Mainnet", + "Managed by the Rusty Kaspa daemon": "Managed by the Rusty Kaspa daemon", + "Market": "Market", + "Market Cap": "Market Cap", + "Market Monitor": "Market Monitor", + "Mass Processed": "Mass Processed", + "Mass:": "Mass:", + "Mass: {number}g": "Mass: {number}g", + "Maximize window": "Maximize window", + "Medium Narrow": "Medium Narrow", + "Medium Wide": "Medium Wide", + "Memory": "Memory", + "Mempool": "Mempool", + "Mempool Size": "Mempool Size", + "Metrics": "Metrics", + "Metrics are not currently available": "Metrics are not currently available", + "Miner Fee": "Miner Fee", + "Minimize the window": "Minimize the window", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "Mnemonic Import", + "NEXT": "NEXT", + "NO NAME": "NO NAME", + "NPM Modules for NodeJS": "NPM Modules for NodeJS", + "Network": "Network", + "Network Difficulty": "Network Difficulty", + "Network Fee Estimator": "Network Fee Estimator", + "Network Interface": "Network Interface", + "Network Peers": "Network Peers", + "Network Pressure: ~{number}%": "Network Pressure: ~{number}%", + "Never share your mnemonic with anyone!": "Never share your mnemonic with anyone!", + "No peers": "No peers", + "No public node selected - please select a public node": "No public node selected - please select a public node", + "No transactions": "No transactions", + "No wallets found, please create a new wallet": "No wallets found, please create a new wallet", + "Node": "Node", + "Node Status": "Node Status", + "Noise": "Noise", + "None": "None", + "Normal": "Normal", + "Not Connected": "Not Connected", + "Not connected": "Not connected", + "Notifications": "Notifications", + "Open Data Folder": "Open Data Folder", + "Opening wallet:": "Opening wallet:", + "Optional": "Optional", + "Options": "Options", + "Other operations": "Other operations", + "Outbound": "Outbound", + "Overview": "Overview", + "PREV": "PREV", + "Parents": "Parents", + "Passive Sync": "Passive Sync", + "Passphrase is too weak": "Passphrase is too weak", + "Passphrases do not match": "Passphrases do not match", + "Passwords do not match": "Passwords do not match", + "Past Median Time": "Past Median Time", + "Payment & Recovery Password": "Payment & Recovery Password", + "Payment Request": "Payment Request", + "Payment request to account: {account}": "Payment request to account: {account}", + "Peers": "Peers", + "Pending: {amount}": "Pending: {amount}", + "Performance": "Performance", + "Phishing Hint": "Phishing Hint", + "Ping:": "Ping:", + "Please Confirm Deletion": "Please Confirm Deletion", + "Please configure your Kaspa NG settings": "Please configure your Kaspa NG settings", + "Please connect to Kaspa p2p node": "Please connect to Kaspa p2p node", + "Please create a stronger password": "Please create a stronger password", + "Please enter a valid address: {err}": "Please enter a valid address: {err}", + "Please enter a valid amount of KAS": "Please enter a valid amount of KAS", + "Please enter additional {amount} words": "Please enter additional {amount} words", + "Please enter an amount": "Please enter an amount", + "Please enter mnemonic comprised of {number} words": "Please enter mnemonic comprised of {number} words", + "Please enter the account name": "Please enter the account name", + "Please enter the wallet secret": "Please enter the wallet secret", + "Please enter {suffix} amount to send": "Please enter {suffix} amount to send", + "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.", + "Please select 'Apply' and restart the application.": "Please select 'Apply' and restart the application.", + "Please select account to scan": "Please select account to scan", + "Please select an account type": "Please select an account type", + "Please select export type": "Please select export type", + "Please select the private key to export": "Please select the private key to export", + "Please select the private key type you would like to import in the new wallet": "Please select the private key type you would like to import in the new wallet", + "Please set node to 'Disabled' to delete the data folder": "Please set node to 'Disabled' to delete the data folder", + "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.", + "Please specify the name of the new wallet": "Please specify the name of the new wallet", + "Please specify the private key type for the new wallet": "Please specify the private key type for the new wallet", + "Please support Kaspa NG development": "Please support Kaspa NG development", + "Please wait for the node to sync or connect to a remote node.": "Please wait for the node to sync or connect to a remote node.", + "Please wait for the node to sync...": "Please wait for the node to sync...", + "Please wait...": "Please wait...", + "Presets": "Presets", + "Price": "Price", + "Priority": "Priority", + "Priority Fee Estimator": "Priority Fee Estimator", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "Priority: {high} SOMPI/g; ~{high_kas}/tx", + "Private Key Mnemonic": "Private Key Mnemonic", + "Private key mnemonic stored in this wallet": "Private key mnemonic stored in this wallet", + "Processed Bodies": "Processed Bodies", + "Processed Dependencies": "Processed Dependencies", + "Processed Headers": "Processed Headers", + "Processed Mass Counts": "Processed Mass Counts", + "Processed Transactions": "Processed Transactions", + "Processing...": "Processing...", + "Protocol:": "Protocol:", + "Public Node": "Public Node", + "Public wRPC (Borsh)": "Public wRPC (Borsh)", + "Quit": "Quit", + "Random Public Node": "Random Public Node", + "Range:": "Range:", + "Receive Address": "Receive Address", + "Recommended arguments for the remote node: ": "Recommended arguments for the remote node: ", + "Redistributables": "Redistributables", + "Remote": "Remote", + "Remote Connection:": "Remote Connection:", + "Remote p2p Node Configuration": "Remote p2p Node Configuration", + "Removes security restrictions, allows for single-letter passwords": "Removes security restrictions, allows for single-letter passwords", + "Reset Settings": "Reset Settings", + "Reset VSPC": "Reset VSPC", + "Resident Memory": "Resident Memory", + "Resources": "Resources", + "Restart": "Restart", + "Restore window": "Restore window", + "Resulting daemon arguments:": "Resulting daemon arguments:", "Rust Wallet SDK": "Rust Wallet SDK", - "Rusty Kaspa on GitHub": "Rusty Kaspa на GitHub", - "Secret is too weak": "Секрет занадто слабкий", - "Secret score:": "Оцінка секрету:", - "Select Account": "Вибрати обліковий запис", - "Select Available Server": "Вибрати доступний сервер", - "Select Private Key Type": "Оберіть тип приватного ключа", - "Select Public Node": "Вибрати публічний вузол", - "Select Wallet": "Вибрати гаманець", - "Select a wallet to unlock": "Виберіть гаманець для розблокування", - "Send": "Надіслати", - "Services": "Сервіси", - "Settings": "Налаштування", - "Show DAA": "Показати DAA", - "Show Grid": "Показати сітку", - "Show VSPC": "Показати VSPC", - "Show balances in alternate currencies for testnet coins": "Показувати баланси в альтернативних валютах для монет тестової мережі", - "Show password": "Показати пароль", - "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Показує баланси в інших валютах (BTC, USD) при використанні монет тестової мережі, якщо ви в основній мережі", - "Skip": "Пропустити", - "Small (10 BPS)": "Малий (10 BPS)", - "Spread": "Поширення", - "Stage": "Етап", - "Starting...": "Запуск...", - "Statistics": "Статистика", - "Stor Read": "Читання з сховища", - "Stor Write": "Запис у сховище", - "Storage": "Сховище", - "Storage Read": "Читання з сховища", - "Storage Read/s": "Операції читання зі сховища", - "Storage Write": "Запис у сховище", - "Storage Write/s": "Операції запису до сховища", - "Submitted Blocks": "Надіслані блоки", - "Supporting Kaspa NG development": "Підтримка розвитку Kaspa NG", - "Syncing Cryptographic Proof...": "Синхронізація криптографічного доказу...", - "Syncing DAG Blocks...": "Синхронізація блоків DAG...", - "Syncing Headers...": "Синхронізація заголовків...", - "Syncing UTXO entries...": "Синхронізація записів UTXO...", - "Syncing...": "Синхронізація...", - "System": "Система", - "TPS": "Транзакцій/сек. TPS", - "Testnet 10": "Тестова мережа 10", - "Testnet 10 (1 BPS)": "Тестова мережа 10 (1 BPS)", - "Testnet 11": "Тестова мережа 11", - "Testnet 11 (10 BPS)": "Тестова мережа 11 (10 BPS)", - "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.": "Тестова мережа 11 ще не активована для публічного тестування. Однак ви можете налаштувати вузол для підключення до приватної тестової мережі розробника в панелі Налаштування.", - "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Програмне забезпечення Kaspa NG є результатом постійних зусиль, спрямованих на створення передової програмної платформи, присвяченої криптовалютній мережі Kaspa BlockDAG. Ідеологічне за своєю суттю, це програмне забезпечення має сильний акцент на безпеці, конфіденційності, продуктивності та децентралізації.", - "The balance may be out of date during node sync": "Баланс може бути застарілим під час синхронізації вузла", - "The following will guide you through the process of creating or importing a wallet.": "Далі ви дізнаєтеся, як створити або імпортувати гаманець.", - "The node is currently syncing with the Kaspa p2p network.": "Вузол в даний час синхронізується з P2P мережею Kaspa.", - "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "Наразі вузол синхронізується з P2P мережею Kaspa. Баланси облікових записів можуть бути застарілими.", - "The node is spawned as a child daemon process (recommended).": "Вузол створюється як дочірній демон (рекомендовано).", - "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "Вузол працює як частина процесу додатку Kaspa-NG. Це зменшує накладні витрати на зв'язок (експериментально).", - "Theme Color": "Колір теми", - "Theme Color:": "Колір теми:", - "Theme Style": "Стиль теми", - "Theme Style:": "Стиль теми:", - "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Цей гаманець ніколи не запитає вас про цю мнемонічну фразу, якщо ви не ініціюєте відновлення приватного ключа вручну.", - "Threshold": "Поріг", - "Time Offset:": "Зсув часу:", - "Tip Hashes": "Хеші вершин", - "Tools ⏷": "Інструменти", - "Total Rx": "Загалом отримань", - "Total Rx/s": "Загалом отримань/сек.", - "Total Tx": "Загалом відправлень", - "Total Tx/s": "Загалом відправлень/сек.", - "Track in the background": "Відстеження в фоновому режимі", - "Transactions": "Транзакції", - "Transactions:": "Транзакції:", - "Type": "Тип", - "UTXO Manager": "Менеджер UTXO", + "Rusty Kaspa on GitHub": "Rusty Kaspa on GitHub", + "Scanner": "Scanner", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "Scanning complete...", + "Secret is too weak": "Secret is too weak", + "Secret score:": "Secret score:", + "Select Account": "Select Account", + "Select Private Key Type": "Select Private Key Type", + "Select Public Node": "Select Public Node", + "Select Wallet": "Select Wallet", + "Select a wallet to unlock": "Select a wallet to unlock", + "Select file...": "Select file...", + "Select this option if your wallet was created": "Select this option if your wallet was created", + "Send": "Send", + "Sending funds": "Sending funds", + "Sending funds without priority fees will result in long transaction wait times.": "Sending funds without priority fees will result in long transaction wait times.", + "Sending: {amount}": "Sending: {amount}", + "Services": "Services", + "Settings": "Settings", + "Show DAA": "Show DAA", + "Show Grid": "Show Grid", + "Show VSPC": "Show VSPC", + "Show balances in alternate currencies for testnet coins": "Show balances in alternate currencies for testnet coins", + "Show passphrase": "Show passphrase", + "Show password": "Show password", + "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet", + "Skip": "Skip", + "Small (10 BPS)": "Small (10 BPS)", + "Spread": "Spread", + "Stage": "Stage", + "Starting...": "Starting...", + "Statistics": "Statistics", + "Stop": "Stop", + "Stor Read": "Stor Read", + "Stor Write": "Stor Write", + "Storage": "Storage", + "Storage Read": "Storage Read", + "Storage Read/s": "Storage Read/s", + "Storage Size": "Storage Size", + "Storage Write": "Storage Write", + "Storage Write/s": "Storage Write/s", + "Strong": "Strong", + "Submitted Blocks": "Submitted Blocks", + "Syncing Cryptographic Proof...": "Syncing Cryptographic Proof...", + "Syncing DAG Blocks...": "Syncing DAG Blocks...", + "Syncing Headers...": "Syncing Headers...", + "Syncing UTXO entries...": "Syncing UTXO entries...", + "Syncing...": "Syncing...", + "System": "System", + "TPS": "TPS", + "Testnet 10": "Testnet 10", + "Testnet 11": "Testnet 11", + "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.", + "The balance may be out of date during node sync": "The balance may be out of date during node sync", + "The following will guide you through the process of creating or importing a wallet.": "The following will guide you through the process of creating or importing a wallet.", + "The network is currently congested.": "The network is currently congested.", + "The node is currently syncing with the Kaspa p2p network.": "The node is currently syncing with the Kaspa p2p network.", + "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.", + "The node is spawned as a child daemon process (recommended).": "The node is spawned as a child daemon process (recommended).", + "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "The node synchronizes in the background while Kaspa-NG is connected to a public node.", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!", + "Theme Color": "Theme Color", + "Theme Color:": "Theme Color:", + "Theme Style": "Theme Style", + "Theme Style:": "Theme Style:", + "This option will transfer any discovered funds to the first change address of this account.": "This option will transfer any discovered funds to the first change address of this account.", + "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Threshold": "Threshold", + "Time Offset:": "Time Offset:", + "Timestamp: {timestamp}": "Timestamp: {timestamp}", + "Tip Hashes": "Tip Hashes", + "Too many words in the": "Too many words in the", + "Tools": "Tools", + "Total Rx": "Total Rx", + "Total Rx/s": "Total Rx/s", + "Total Tx": "Total Tx", + "Total Tx/s": "Total Tx/s", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", + "Track in the background": "Track in the background", + "Transactions": "Transactions", + "Transactions:": "Transactions:", + "Transactions: {number}": "Transactions: {number}", + "Transfer funds during scan": "Transfer funds during scan", + "Type": "Type", + "URI copied to clipboard": "URI copied to clipboard", + "UTXO Manager": "UTXO Manager", "UTXOs": "UTXOs", "UTXOs:": "UTXOs:", - "Unable to change node settings until the problem is resolved": "Неможливо змінити налаштування вузла, доки проблема не буде вирішена", - "Unlock": "Розблокувати", - "Unlock Wallet": "Розблокувати гаманець", - "Unlocking": "Розблокування", - "Update Available to version": "Доступне оновлення до версії", - "Updating...": "Оновлення...", - "Uptime:": "Час роботи:", - "Use 50%-75% of available system memory": "Використовувати 50%-75% від доступної пам'яті системи", - "Use all available system memory": "Використовувати весь доступний обсяг оперативної пам'яті системи", - "User Agent": "Агент користувача", - "User Interface": "Інтерфейс користувача", - "Very dangerous (may be cracked within few seconds)": "Дуже небезпечно (може бути зламаний за кілька секунд)", - "Virt Parents": "Віртуальні батьки", - "Virtual DAA Score": "Віртуальний показник DAA", - "Virtual Memory": "Віртуальна пам'ять", - "Virtual Parent Hashes": "Віртуальні хеші батьків", - "Volume": "Об'єм", - "WASM SDK for JavaScript and TypeScript": "WASM SDK для JavaScript та TypeScript", - "Wallet": "Гаманець", - "Wallet Created": "Гаманець створено", - "Wallet Encryption Password": "Пароль шифрування гаманця", - "Wallet Name": "Назва гаманця", - "Wallet Secret": "Секрет гаманця", - "Wallet password is used to encrypt your wallet data.": "Пароль гаманця використовується для шифрування даних вашого гаманця.", - "Wallet:": "Гаманець:", - "We greatly appreciate your help in backing our efforts.": "Ми високо цінуємо вашу допомогу в підтримці наших зусиль.", - "Welcome to Kaspa NG": "Ласкаво просимо до Kaspa NG", - "Xpub Keys": "Ключі Xpub", - "You are currently not connected to the Kaspa node.": "Зараз ви не підключені до вузла Kaspa.", - "You can configure remote connection in Settings": "Ви можете налаштувати віддалене підключення в Налаштуваннях", - "You can create multiple wallets, but only one wallet can be open at a time.": "Ви можете створити кілька гаманців, але одночасно може бути відкритий лише один гаманець.", - "You must be connected to a node...": "Ви повинні бути підключені до вузла...", - "Your default wallet private key mnemonic is:": "Ваш мнемонічний приватний ключ для даного гаманця:", - "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Ваша мнемонічна фраза дозволяє повторно створити ваш приватний ключ. Особа, яка має доступ до цієї мнемонічної фрази, матиме повний контроль над Kaspa, що зберігається у ньому. Зберігайте вашу мнемонічну фразу в безпеці. Запишіть її та зберігайте у сейфі, бажано у вогнетривкому місці. Не зберігайте мнемонічну фразу на цьому комп'ютері або мобільному пристрої. Цей гаманець ніколи не запитає вас про цю мнемонічну фразу, якщо ви не ініціюєте відновлення приватного ключа вручну.", - "Your private key mnemonic is:": "Мнемоніка вашого приватного ключа:", - "Your wallet has been created and is ready to use.": "Ваш гаманець створено і він готовий до використання.", - "Zoom": "Масштаб", - "amount to send": "сума для відправки", - "bye!": "до побачення!", - "gRPC Network Interface & Port": "Інтерфейс та порт мережі gRPC", - "gRPC Rx": "gRPC отримань", - "gRPC Rx/s": "gRPC отримань/сек.", - "gRPC Tx": "gRPC відправлень", - "gRPC Tx/s": "gRPC відправлень/сек.", - "of": "з", - "p2p RPC": "P2P RPC", - "p2p Rx": "P2P отримань", - "p2p Rx/s": "P2P отримань/сек.", - "p2p Tx": "P2P відправлень", - "p2p Tx/s": "P2P відправлень/сек.", - "peer": "пір", - "peers": "піри", - "wRPC Borsh Rx": "wRPC Borsh отримань", - "wRPC Borsh Rx/s": "wRPC Borsh отримань/сек.", - "wRPC Borsh Tx": "wRPC Borsh відправлень", - "wRPC Borsh Tx/s": "wRPC Borsh отримань/сек.", - "wRPC Connection Settings": "Налаштування підключення wRPC", - "wRPC Encoding:": "Кодування wRPC:", - "wRPC JSON Rx": "wRPC JSON отримань", - "wRPC JSON Rx/s": "wRPC JSON отримань/сек.", - "wRPC JSON Tx": "wRPC JSON відправлень", - "wRPC JSON Tx/s": "wRPC JSON відправлень/сек.", - "wRPC URL:": "wRPC URL:" + "UTXOs: {number}": "UTXOs: {number}", + "Unable to change node settings until the problem is resolved": "Unable to change node settings until the problem is resolved", + "Unable to store settings": "Unable to store settings", + "Unlock": "Unlock", + "Unlock Wallet": "Unlock Wallet", + "Unlocking": "Unlocking", + "Update Available to version": "Update Available to version", + "Updating...": "Updating...", + "Uptime:": "Uptime:", + "Use 50%-75% of available system memory": "Use 50%-75% of available system memory", + "Use all available system memory": "Use all available system memory", + "User Agent": "User Agent", + "User Interface": "User Interface", + "Very dangerous (may be cracked within few seconds)": "Very dangerous (may be cracked within few seconds)", + "Very strong": "Very strong", + "Very weak": "Very weak", + "Virt Parents": "Virt Parents", + "Virtual DAA Score": "Virtual DAA Score", + "Virtual Memory": "Virtual Memory", + "Virtual Parent Hashes": "Virtual Parent Hashes", + "Volume": "Volume", + "WASM SDK for JavaScript and TypeScript": "WASM SDK for JavaScript and TypeScript", + "Wallet": "Wallet", + "Wallet Created": "Wallet Created", + "Wallet Encryption Password": "Wallet Encryption Password", + "Wallet File Secret": "Wallet File Secret", + "Wallet Name": "Wallet Name", + "Wallet Secret": "Wallet Secret", + "Wallet creation error:": "Wallet creation error:", + "Wallet decrypting error:": "Wallet decrypting error:", + "Wallet password is used to encrypt your wallet data.": "Wallet password is used to encrypt your wallet data.", + "Wallet with this name already exists": "Wallet with this name already exists", + "Wallet:": "Wallet:", + "We greatly appreciate your help in backing our efforts.": "We greatly appreciate your help in backing our efforts.", + "Weak": "Weak", + "Welcome to Kaspa NG": "Welcome to Kaspa NG", + "Xpub Keys": "Xpub Keys", + "You are currently not connected to the Kaspa node.": "You are currently not connected to the Kaspa node.", + "You can configure remote connection in Settings": "You can configure remote connection in Settings", + "You can create multiple wallets, but only one wallet can be open at a time.": "You can create multiple wallets, but only one wallet can be open at a time.", + "You must be connected to a node...": "You must be connected to a node...", + "Your default wallet private key mnemonic is:": "Your default wallet private key mnemonic is:", + "Your mnemonic is protected with a bip39 passphrase": "Your mnemonic is protected with a bip39 passphrase", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.", + "Your mnemonic phrase is invalid": "Your mnemonic phrase is invalid", + "Your private key mnemonic is:": "Your private key mnemonic is:", + "Your wallet has been created and is ready to use.": "Your wallet has been created and is ready to use.", + "Zoom": "Zoom", + "bye!": "bye!", + "gRPC Network Interface & Port": "gRPC Network Interface & Port", + "gRPC Rx": "gRPC Rx", + "gRPC Rx/s": "gRPC Rx/s", + "gRPC Tx": "gRPC Tx", + "gRPC Tx/s": "gRPC Tx/s", + "of": "of", + "p2p RPC": "p2p RPC", + "p2p Rx": "p2p Rx", + "p2p Rx/s": "p2p Rx/s", + "p2p Tx": "p2p Tx", + "p2p Tx/s": "p2p Tx/s", + "peer": "peer", + "peers": "peers", + "using KDX or kaspanet.io web wallet": "using KDX or kaspanet.io web wallet", + "wRPC Borsh Rx": "wRPC Borsh Rx", + "wRPC Borsh Rx/s": "wRPC Borsh Rx/s", + "wRPC Borsh Tx": "wRPC Borsh Tx", + "wRPC Borsh Tx/s": "wRPC Borsh Tx/s", + "wRPC Connection Settings": "wRPC Connection Settings", + "wRPC Encoding:": "wRPC Encoding:", + "wRPC JSON Rx": "wRPC JSON Rx", + "wRPC JSON Rx/s": "wRPC JSON Rx/s", + "wRPC JSON Tx": "wRPC JSON Tx", + "wRPC JSON Tx/s": "wRPC JSON Tx/s", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} Send", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} Transfer", + "{qrCodeIcon} Request": "{qrCodeIcon} Request", + "~2 hours": "~2 hours", + "~30 minutes": "~30 minutes" }, - "ur": {}, - "vi": {}, "zh": { + "'Phishing hint' is a secret word or a phrase that is displayed when you open your wallet. If you do not see the hint when opening your wallet, you may be accessing a fake wallet designed to steal your funds. If this occurs, stop using the wallet immediately, check the browser URL domain name and seek help on social networks (Kaspa Discord or Telegram).": "「钓鱼提示」是钱包开启时出现的一组暗语或短语。如果您在打开钱包时没有看到提示,您可能正访问一个旨在盗取您资金的假钱包。如果出现这种情况,请立即停止使用该钱包,检查浏览器 URL 域名,并在社交网络(Kaspa Discord 或 Telegram)上寻求帮助。", "1 BPS test network": "1 BPS 测试网", "10 BPS test network": "10 BPS 测试网", "12 word mnemonic": "12 词助记词", "24 word mnemonic": "24 词助记词", - "24h Change": "24 小时变化", + "24h Change": "24 小时价格变化", + "3 hours or more": "3 小时或更久", + "< {minutes} minute": "< {minutes} 分钟", + "< {minutes} minutes": "< {minutes} 分钟", + "< {seconds} second": "< {seconds} 秒", + "< {seconds} seconds": "< {seconds} 秒", "A binary at another location is spawned a child process (experimental, for development purposes only).": "在另一个位置的二进制文件生成了一个子进程(实验性功能,仅用于开发目的)。", "A random node will be selected on startup": "启动时将随机选择一个节点", "A wallet is stored in a file on your computer.": "钱包存储在您电脑上的一个文件中。", - "Account Index": "账户索引", + "Account Index": "账户目录", "Account Name": "账户名称", + "Account not found": "Account not found", "Account:": "账户:", "Activate custom daemon arguments": "激活自定义守护进程参数", "Active p2p Peers": "活跃 P2P 对等节点", + "Add Account": "添加账户", + "Address copied to clipboard": "地址已复制到剪切板", "Address derivation scan": "地址派生扫描", - "Address:": "钱包地址:", + "Address:": "钱包地址:", "Advanced": "高级", "All": "全部", + "Allow clipboard copy": "允许剪切板复制", "Allow custom arguments for the Rusty Kaspa daemon": "允许对 Rusty Kaspa 守护程序使用自定义参数", "Allows you to take screenshots from within the application": "允许您从应用程序内截取屏幕截图", + "An error has occurred while submitting transaction:": "An error has occurred while submitting transaction:", + "Application must be restarted for this setting to take effect.": "需重新启动应用以启用这项设置", "Apply": "应用", - "Balance: N/A": "余额:N/A", + "Architecture {arch}": "架构 {arch}", + "Are you sure you want to reset all settings?": "您确定要重制所有设置吗?", + "BALANCE": "BALANCE", + "Balance: N/A": "无余额", "Bandwidth": "带宽", "Because of its focus on security and performance, this software is entirely developed in Rust, demanding significantly more time and effort compared to other traditional modern web-driven software.": "由于该软件注重安全性和性能,因此完全使用 Rust 开发,与其他传统的现代 Web 驱动软件相比,需要更多的时间和精力。", "Bezier Curves": "贝塞尔曲线", @@ -5973,67 +18385,74 @@ "CONNECTED": "已连接", "CPU": "CPU", "Cache Memory Size": "缓存内存大小", - "Cache Memory Size:": "缓存内存大小:", "Cancel": "取消", "Cannot delete data folder while the node is running": "不支持在节点运行过程中删除数据目录", "Capture a screenshot": "截屏", + "Capture saved to {path}": "捕获内容保存至 {path}", "Center VSPC": "居中 VSPC", "Chain Blocks": "链区块", "Change Address": "找零地址", + "Change Wallet Secret": "Change Wallet Secret", "Check for Software Updates on GitHub": "在 GitHub 上检查软件更新", "Check for Updates": "检查更新", "Clear": "清除", "Click to try another server...": "点击尝试另外一个服务器...", "Client RPC": "客户端 RPC", "Close": "关闭", + "Close the window": "关闭窗口", + "Confirm BIP39 passphrase": "确认 BIP39 密语", "Confirm wallet password": "确认钱包密码", - "Connect to a local node (localhost)": "连接到一个本地节点 (localhost)", "Connecting to": "正在连接到", "Connection": "连接", "Connections": "连接", "Connects to a Remote Rusty Kaspa Node via wRPC.": "通过 wRPC 连接远程 Rusty Kaspa 节点", "Conservative": "保守的", "Continue": "继续", - "Contributions directed toward this project directly fuel the Kaspa NG software and its ecosystem.": "对该项目的捐赠将直接促进 Kaspa NG 软件及其生态系统的发展。", "Copied to clipboard": "复制到剪切板", "Copy": "复制", "Copy logs to clipboard": "拷贝日志到剪贴板", - "Create New Account": "创建新账户", "Create New Wallet": "创建新钱包", + "Create Wallet": "创建钱包", "Create new wallet": "创建新钱包", "Creating Account": "创建账户", "Creating Wallet": "创建钱包", "Custom": "自定义", "Custom Public Node": "定制公共节点", - "Custom arguments:": "自定义参数:", + "Custom arguments:": "自定义参数:", "Custom data storage folder": "自定义数据存储目录", "DAA": "DAA", "DAA Offset": "DAA 偏移量", "DAA Range": "DAA 区间", - "DB Blocks": "数据库区块", - "DB Headers": "数据库区块头", + "DB Blocks": "DB 区块", + "DB Headers": "DB 区块头", + "Dangerous": "危险的", "Data Storage": "数据存储", "Database Blocks": "数据库区块", "Database Headers": "数据库区块头", + "Decrypt": "解锁", + "Decrypting Wallet File": "解锁钱包文件", "Decrypting wallet, please wait...": "解密钱包中,请稍等...", "Default": "默认", "Default Account Name": "默认账户名", "Delete Data Folder": "删除数据目录", "Dependencies": "依赖项", - "Derivation Indexes": "派生索引", + "Derivation Indexes": "派生路径", "Details": "详情", "Developer Mode": "开发者模式", "Developer Resources": "开发者资源", "Developer mode enables advanced and experimental features": "开发者模式启用高级和实验性功能", "Difficulty": "难度", "Dimensions": "维度", - "Disable password score restrictions": "禁用密码强度限制", + "Disable Window Frame": "关闭窗口框", + "Disable password safety rules": "关闭密码安全规则", "Disabled": "禁用", "Disables node connectivity (Offline Mode).": "关闭节点连接(离线模式)。", "Discord": "Discord", "Donations": "捐赠", "Double click on the graph to re-center...": "双击图表以重新居中...", "ECDSA": "ECDSA", + "Economic": "代币经济情况", + "Economic: {med} SOMPI/g; ~{med_kas}/tx": "代币经济情况:{med} SOMPI/g; ~{med_kas}/tx", "Enable Market Monitor": "启用市场数据监测", "Enable UPnP": "启用 UPnP", "Enable custom daemon arguments": "启用定制守护进程参数", @@ -6043,34 +18462,61 @@ "Enable screen capture": "启用屏幕截屏", "Enables features currently in development": "启用目前正在开发中的功能", "Enter": "输入", + "Enter BIP39 passphrase": "输入 BIP39 密语", "Enter account name (optional)": "输入账户名称 (可选)", + "Enter destination address": "输入目标地址", "Enter first account name": "输入第一个账户名称", + "Enter mnemonic": "输入助记词", + "Enter password to decrypt this wallet file": "输入密码以解锁该钱包文件", "Enter phishing hint": "输入防钓鱼提示", + "Enter priority fees": "输入优先处理费", "Enter the amount": "输入金额", "Enter the password for your wallet": "输入您的钱包密码", "Enter the password to unlock your wallet": "输入密码解锁您的钱包", "Enter wallet name": "输入钱包名称", "Enter wallet password": "输入钱包密码", "Enter your wallet secret": "输入您的钱包密钥", + "Enter {suffix} amount to send": "输入{suffix} 金额发送", + "Error": "错误", + "Error importing a wallet": "倒入钱包文件发生错误", + "Error processing mnemonic: {err}": "处理助记词发生错误:{err}", + "Exit Full Screen": "退出全屏", "Explorer": "浏览器", "Export Wallet Data": "导出钱包数据", - "Faucet": "水龙头", + "FIRST": "最先", + "Faucet": "代币水龙头", + "Fee Market": "手续费市场", + "Fee Market & Network Pressure": "手续费市场与主网处理压力", + "Fee Market Only": "仅手续费市场", "File Handles": "文件句柄", - "Filename:": "文件名:", + "File contents": "文件内容", + "Filename:": "文件名:", "Final Amount:": "最终金额:", + "Final Amount: {amount}": "最终金额: {amount}", + "For decrypting uploaded file please enter wallet secret.": "若要解锁上传文件请输入钱包密钥", + "Full Screen": "全屏", + "Generate New Change Address": "生成新变更地址", + "Generate New Receive Address": "生成新接收地址", "GitHub Release": "GitHub 发布版本", "Go to Settings": "前往设置", + "Good": "好", "Handles": "句柄", "Headers": "区块头", + "High": "高", "IBD:": "IBD:", "If not specified, the account will be represented by the numeric id.": "如果没有指定,该账户将以数字 ID 形式展示", - "If you are running locally, use: ": "如果您在本地运行,请使用:", + "If you are running locally, use: ": "如果您在本地运行,请使用:", + "Import Existing Private Key": "导入已有钱包私钥", "Import existing": "导入已有", + "Import existing file": "导入已有文件", + "Importing Legacy Wallet": "导入旧版钱包", + "Importing Wallet": "导入钱包", + "Importing Wallet File": "导入钱包文件", "Inbound": "入站", - "Include QoS Priority Fees": "包含 QoS 优先级费用", "Integrated Daemon": "集成守护程序", + "Invalid amount:": "无效金额:", "Invalid daemon arguments": "无效守护进程参数", - "Invalid network type - expected: testnet-10 connected to: testnet-11": "网络类型无效 - 预期连接至:测试网-10,实际连接至:测试网-11", + "Invalid fee amount:": "无效手续费金额:", "Invalid wRPC URL": "无效的 wRPC URL", "Json Active Connections": "Json 活跃连接", "Json Connection Attempts": "Json 连接尝试", @@ -6078,8 +18524,6 @@ "Kaspa Discord": "Kaspa Discord", "Kaspa Integration Guide": "Kaspa 集成指南", "Kaspa NG": "Kaspa NG", - "Kaspa NG Online": "Kaspa NG 在线", - "Kaspa NG Web App": "Kaspa NG 网页应用", "Kaspa NG on GitHub": "Kaspa NG 的 Github 链接", "Kaspa NG online": "Kaspa NG 在线", "Kaspa Network": "Kaspa 网络", @@ -6088,22 +18532,30 @@ "Kaspa p2p Node": "Kaspa P2P 节点", "Kaspa p2p Node & Connection": "Kaspa P2P 节点和连接", "Key Perf.": "关键性能。", + "LAST": "最后", "Language:": "语言:", "Large (1 BPS)": "大号(1 BPS)", + "Legacy 12 word mnemonic": "旧版 12 词助记词", "Levels": "层级", "License Information": "许可证信息", "Local": "本地", "Local p2p Node Configuration": "本地 P2P 节点设置", + "Located {utxo_count} UTXOs": "Located {utxo_count} UTXOs", "Logs": "日志", + "Low": "低", + "Low-priority": "低优先级", + "Low: {low} SOMPI/g; ~{low_kas}/tx": "低: {low} SOMPI/g; ~{low_kas}/tx", "MT": "MT", "Main Kaspa network": " Kaspa 主网", "Mainnet": "主网", - "Mainnet (Main Kaspa network)": "主网(Kaspa 主网)", "Managed by the Rusty Kaspa daemon": "由 Rusty Kaspa 守护进程管理", "Market": "市场", "Market Cap": "市值", "Market Monitor": "市场监测", - "Mass Processed": "已处理质量", + "Mass Processed": "已处理质量计数", + "Mass:": "质量:", + "Mass: {number}g": "质量: {number}g", + "Maximize window": "最大化窗口", "Medium Narrow": "中等窄幅", "Medium Wide": "中等宽度", "Memory": "内存", @@ -6111,74 +18563,103 @@ "Mempool Size": "内存池大小", "Metrics": "指标", "Metrics are not currently available": "当前无法获取指标数据", + "Miner Fee": "矿工费", + "Minimize the window": "最小化窗口", + "Missing wallet descriptor": "Missing wallet descriptor", + "Mnemonic Import": "导入助记词", + "NEXT": "下一步", + "NO NAME": "无名", "NPM Modules for NodeJS": "适用于 NodeJS 的 NPM 模块", "Network": "网络", "Network Difficulty": "网络难度", - "Network Fees:": "网络费用:", + "Network Fee Estimator": "网络处理手续费估算", "Network Interface": "网络接口", "Network Peers": "网络对等节点", + "Network Pressure: ~{number}%": "主网处理压力: ~{number}%", + "Never share your mnemonic with anyone!": "切勿将助记词分享给其他任何人!", "No peers": "没有对等节点", "No public node selected - please select a public node": "未选择公共节点,需选择一个公共节点", - "No transactions": "无转账交易", + "No transactions": "无交易", "No wallets found, please create a new wallet": "未找到钱包,请创建一个新钱包", "Node": "节点", "Node Status": "节点状态", "Noise": "噪音", "None": "无", + "Normal": "正常", "Not Connected": "未连接", "Not connected": "未连接", "Notifications": "通知", "Open Data Folder": "打开数据目录", - "Opening wallet:": "打开钱包中:", + "Opening wallet:": "钱包开启中:", "Optional": "可选", + "Options": "选项", "Other operations": "其他操作", "Outbound": "出站", "Overview": "全局", + "PREV": "前项", "Parents": "父节点", + "Passive Sync": "静默同步", + "Passphrase is too weak": "密语太弱", + "Passphrases do not match": "密语不匹配", + "Passwords do not match": "密码不一致", "Past Median Time": "过去的中位时间", "Payment & Recovery Password": "支付和恢复密码", "Payment Request": "付款请求", + "Payment request to account: {account}": "该账户要求如下付款金额: {account}", "Peers": "对等节点", + "Pending: {amount}": "Pending: {amount}", "Performance": "性能", "Phishing Hint": "钓鱼提示", - "Ping:": "Ping:", + "Ping:": "Ping:", "Please Confirm Deletion": "请确认删除", "Please configure your Kaspa NG settings": "调整您的 Kaspa NG 设置", "Please connect to Kaspa p2p node": "请连接到 Kaspa P2P 节点", "Please create a stronger password": "创建一个更复杂的密码", - "Please enter": "输入", - "Please enter KAS amount to send": "请输入要发送的 KAS 金额", + "Please enter a valid address: {err}": "请输入有效的钱包地址: {err}", + "Please enter a valid amount of KAS": "请输入有效金额的 KAS", + "Please enter additional {amount} words": "请输入更多 {amount} 词缀", "Please enter an amount": "输入金额", + "Please enter mnemonic comprised of {number} words": "请输入包含 {number} 词缀的助记词", "Please enter the account name": "输入账户名称", "Please enter the wallet secret": "输入钱包密钥", - "Please note that this is a beta release. Until this message is removed, please avoid using the wallet with mainnet funds.": "请注意,这是一个 Beta 测试版本。在这条消息被移除之前,请避免使用该钱包处理主网资金。", + "Please enter {suffix} amount to send": "请输入 {suffix} 金额以便发送", "Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.": "请注意,复制到剪贴板可能会将您的助记词暴露给恶意软件。", + "Please select 'Apply' and restart the application.": "请选择「应用」并重启程序", + "Please select account to scan": "请选择账户并扫描", "Please select an account type": "请选择账户类型", + "Please select export type": "请选择导出类型", "Please select the private key to export": "选择您要导出的钱包私钥", + "Please select the private key type you would like to import in the new wallet": "请选择你想要导入新钱包的私钥类型", "Please set node to 'Disabled' to delete the data folder": "请将节点设为「禁用」从而删除数据目录", "Please specify the name of the default account. The wallet will be created with a default account. Once created, you will be able to create additional accounts as you need.": "需指定默认账户的名称,创建钱包时将使用默认账户;创建后,您可以根据需要创建其他账户。", "Please specify the name of the new wallet": "为新钱包指定名称", "Please specify the private key type for the new wallet": "为新建的钱包指定私钥类型", + "Please support Kaspa NG development": "请支持 Kaspa NG 开发工作", "Please wait for the node to sync or connect to a remote node.": "请等待节点同步或连接到远程节点。", "Please wait for the node to sync...": "请等待节点同步...", "Please wait...": "请稍作等待...", "Presets": "预设", "Price": "价格", + "Priority": "优先", + "Priority Fee Estimator": "优先处理手续费估算", + "Priority: {high} SOMPI/g; ~{high_kas}/tx": "优先: {high} SOMPI/g; ~{high_kas}/tx", "Private Key Mnemonic": "私钥助记词", + "Private key mnemonic stored in this wallet": "私钥助记词已保存在本钱包中", "Processed Bodies": "已处理区块体", - "Processed Dependencies": "处理的依赖项", - "Processed Headers": "已处理的区块头", + "Processed Dependencies": "已处理依赖项", + "Processed Headers": "已处理区块头", "Processed Mass Counts": "已处理质量计数", - "Processed Transactions": "已处理的交易", - "Protocol:": "协议:", + "Processed Transactions": "已处理交易", + "Processing...": "处理中...", + "Protocol:": "协议:", "Public Node": "公共节点", - "Public Nodes": "公共节点", - "Public Server": "公共服务器", - "Public p2p Nodes for": "将公共 P2P 节点用于", + "Public wRPC (Borsh)": "公共 wRPC (Borsh)", + "Quit": "退出", "Random Public Node": "随机公共节点", - "Range:": "范围:", + "Range:": "范围:", "Receive Address": "接收地址", "Recommended arguments for the remote node: ": "远程节点的推荐参数:", + "Redistributables": "可下载复用", "Remote": "远程", "Remote Connection:": "远程连接: ", "Remote p2p Node Configuration": "远程 P2P 节点设置", @@ -6187,81 +18668,104 @@ "Reset VSPC": "重置虚拟选定父链", "Resident Memory": "常驻内存", "Resources": "资源", + "Restart": "重启", + "Restore window": "恢复窗口", "Resulting daemon arguments:": "结果守护进程参数: ", "Rust Wallet SDK": "Rust 钱包 SDK", "Rusty Kaspa on GitHub": "GitHub 上的 Rusty Kaspa", + "Scanner": "扫描器", + "Scanning address derivation {index}...": "Scanning address derivation {index}...", + "Scanning complete...": "扫描完成...", "Secret is too weak": "密码太简单", "Secret score:": "密钥得分:", "Select Account": "选择账户", - "Select Available Server": "选择可用服务器", "Select Private Key Type": "选择私钥类型", "Select Public Node": "选择公共节点", "Select Wallet": "选择钱包", "Select a wallet to unlock": "选择一个钱包进行解锁", + "Select file...": "选择文件...", + "Select this option if your wallet was created": "如果你已创建钱包,使用这个选项", "Send": "发送", + "Sending funds": "发送金额", + "Sending funds without priority fees will result in long transaction wait times.": "提交不带有优先处理手续费的交易可能需要更长等待时间来完成", + "Sending: {amount}": "Sending: {amount}", "Services": "服务", "Settings": "设置", "Show DAA": "显示 DAA", "Show Grid": "显示网格", "Show VSPC": "显示 VSPC", "Show balances in alternate currencies for testnet coins": "用其他货币单位展示测试网代币余额", + "Show passphrase": "展示密语", "Show password": "显示密码", "Shows balances in alternate currencies (BTC, USD) when using testnet coins as if you are on mainnet": "使用测试网代币时,像主网那样以其他货币单位(如 BTC,USD)进行展示", "Skip": "跳过", "Small (10 BPS)": "小 (10 BPS)", - "Spread": "差价", + "Spread": "价差", "Stage": "阶段", "Starting...": "启动中...", - "Statistics": "统计", + "Statistics": "统计数据", + "Stop": "停止", "Stor Read": "存储读取", "Stor Write": "存储写入", "Storage": "存储", "Storage Read": "存储读取", - "Storage Read/s": "存储读取/每秒", + "Storage Read/s": "每秒存储读取", + "Storage Size": "存储大小", "Storage Write": "存储写入", - "Storage Write/s": "存储写入/每秒", + "Storage Write/s": "每秒存储写入", + "Strong": "强健", "Submitted Blocks": "已提交区块", - "Supporting Kaspa NG development": "支持 Kaspa NG 开发", - "Syncing Cryptographic Proof...": "正在同步加密证明...", - "Syncing DAG Blocks...": "正在同步 DAG 区块...", - "Syncing Headers...": "正在同步区块头...", - "Syncing UTXO entries...": "同步 UTXO 条目中...", + "Syncing Cryptographic Proof...": "加密证明同步中...", + "Syncing DAG Blocks...": "DAG 区块同步中...", + "Syncing Headers...": "区块头同步中...", + "Syncing UTXO entries...": "UTXO 条目同步中...", "Syncing...": "同步中...", "System": "系统", "TPS": "TPS", "Testnet 10": "测试网 10", - "Testnet 10 (1 BPS)": "测试网 10(1 BPS)", "Testnet 11": "测试网 11", - "Testnet 11 (10 BPS)": "测试网 11(10 BPS)", - "Testnet 11 is not yet enabled for public testing. You can, however, configure the node to connect to the private developer testnet in the Settings panel.": "测试网 11 还未开放公开测试。但您可以在设置面板中配置节点,以连接到私有开发者测试网。", "The Kaspa NG software represents an ongoing effort focused on building a state-of-the-art software platform dedicated to the Kaspa BlockDAG cryptocurrency network. Ideological at its core, this software prioritizes security, privacy, performance, and decentralization.": "Kaspa NG 代表了一项持续的努力,致力于构建一个专门服务于 Kaspa BlockDAG 加密货币网络的先进软件平台。这款软件在其核心具有强烈的理念导向,优先考虑安全性、隐私性、性能和去中心化。", "The balance may be out of date during node sync": "节点同步中显示的账户余额可能不是最新的", "The following will guide you through the process of creating or importing a wallet.": "以下内容将指导您完成创建或导入钱包的过程。", + "The network is currently congested.": "主网目前拥堵", "The node is currently syncing with the Kaspa p2p network.": "节点目前正在与 Kaspa P2P 网络同步。", "The node is currently syncing with the Kaspa p2p network. Account balances may be out of date.": "此节点正在与 Kaspa P2P 网络同步中,因此显示的账户余额可能不正确。", + "The node is currently syncing with the Kaspa p2p network. Please wait for the node to sync.": "该节点目前正在与 Kaspa p2p 网络同步,请等待节点同步完成。", "The node is spawned as a child daemon process (recommended).": "生成一个用于子守护进程节点(推荐)。", "The node runs as a part of the Kaspa-NG application process. This reduces communication overhead (experimental).": "节点作为 Kaspa-NG 应用进程的一部分运行,有助于减少通信开销(实验性功能)。", + "The node synchronizes in the background while Kaspa-NG is connected to a public node.": "当 Kaspa-NG 与公共节点连接时,节点在后台同步。", + "The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode.": "当 Kaspa-NG 连接到公共节点时,节点会在后台同步。节点同步完成后,即可切换到「集成守护进程 」模式。", + "The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.If you loose or forget this passphrase, you will not be able to use mnemonic to recover your wallet!": "如果提供了可选的支付和密码恢复密语,即 BIP39 密语,则在发送付款时需要使用该密语。如果您丢失或忘记了该密语,将无法使用助记词来恢复钱包!", "Theme Color": "主题颜色", "Theme Color:": "主题颜色", "Theme Style": "主题风格", - "Theme Style:": "主题风格:", + "Theme Style:": "主题风格:", + "This option will transfer any discovered funds to the first change address of this account.": "此选项会转移任何扫描过程中发现的金额到账户中的首个变更地址", "This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "除非您手动输入私钥进行恢复操作,否则钱包不会向您询问密钥助记词", "Threshold": "阈值", "Time Offset:": "时间偏移量:", + "Timestamp: {timestamp}": "时间戳: {timestamp}", "Tip Hashes": "尖端哈希值", - "Tools ⏷": "工具", - "Total Rx": "全部接收", - "Total Rx/s": "全部接收/每秒", - "Total Tx": "全部发送", - "Total Tx/s": "总发送/每秒", + "Too many words in the": "太多词缀", + "Tools": "Tools", + "Total Rx": "总接收量", + "Total Rx/s": "每秒总接收量", + "Total Tx": "总发送量", + "Total Tx/s": "每秒总发送量", + "Total addresses scanned: {index}": "Total addresses scanned: {index}", "Track in the background": "在后台追踪", "Transactions": "交易", "Transactions:": "交易:", + "Transactions: {number}": "交易量: {number}", + "Transfer funds during scan": "扫描过程中转移金额", "Type": "类型", + "URI copied to clipboard": "URL 地址复制到剪切板", "UTXO Manager": "UTXO 管理", "UTXOs": "UTXOs", "UTXOs:": "UTXOs:", + "UTXOs: {number}": "UTXOs: {number}", "Unable to change node settings until the problem is resolved": "在问题解决之前无法更改节点设置", + "Unable to store settings": "Unable to store settings", "Unlock": "解锁", "Unlock Wallet": "解锁钱包", "Unlocking": "解锁中", @@ -6273,57 +18777,71 @@ "User Agent": "用户代理", "User Interface": "用户界面", "Very dangerous (may be cracked within few seconds)": "非常危险 (可在几秒钟内被破解)", + "Very strong": "极强", + "Very weak": "极弱", "Virt Parents": "虚拟父节点", "Virtual DAA Score": "虚拟 DAA 得分", "Virtual Memory": "虚拟内存", "Virtual Parent Hashes": "虚拟父哈希", - "Volume": "量级", + "Volume": "成交量", "WASM SDK for JavaScript and TypeScript": "适用于 JavaScript 和 TypeScript 的 WASM SDK", "Wallet": "钱包", "Wallet Created": "钱包已创建", "Wallet Encryption Password": "钱包加密密码", + "Wallet File Secret": "钱包文件密码", "Wallet Name": "钱包名称", "Wallet Secret": "钱包密钥", + "Wallet creation error:": "创建钱包发生错误:", + "Wallet decrypting error:": "解锁钱包发生错误:", "Wallet password is used to encrypt your wallet data.": "钱包密码会用于保护您的钱包数据", - "Wallet:": "钱包:", - "We greatly appreciate your help in backing our efforts.": "非常感谢您对我们的支持。", + "Wallet with this name already exists": "已存在同名钱包", + "Wallet:": "钱包:", + "We greatly appreciate your help in backing our efforts.": "非常感谢您的支持。", + "Weak": "弱", "Welcome to Kaspa NG": "欢迎来到 Kaspa NG", - "Xpub Keys": "Xpub Keys", + "Xpub Keys": "Xpub 公钥", "You are currently not connected to the Kaspa node.": "你当前未连接到 Kaspa 节点。", "You can configure remote connection in Settings": "您可以在设置中配置远程连接", "You can create multiple wallets, but only one wallet can be open at a time.": "您可以创建多个钱包,但每次只能打开一个钱包。", "You must be connected to a node...": "您必须连接至一个节点...", - "Your default wallet private key mnemonic is:": "您默认钱包的私钥助记词是:", - "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "您的助记词短语使您能够重新创建私钥。任何能够访问此助记词的人将完全控制其中存储的 Kaspa。请妥善保管您的助记词。将其写下来并存放在一个安全的地方,最好是防火的地点。不要在这台电脑或移动设备上存储您的助记词。除非您手动启动私钥恢复,否则此钱包永远不会要求您提供助记词短语。", - "Your private key mnemonic is:": "您的私钥助记词是:", + "Your default wallet private key mnemonic is:": "您默认钱包的私钥助记词是:", + "Your mnemonic is protected with a bip39 passphrase": "你的助记词已受到 bip39 密语保护", + "Your mnemonic phrase allows you to re-create your private key. The person who has access to this mnemonic will have full control of the Kaspa stored in it. Keep your mnemonic safe. Write it down and store it in a safe, preferably in a fire-resistant location. Do not store your mnemonic on this computer or a mobile device. This wallet will never ask you for this mnemonic phrase unless you manually initiate a private key recovery.": "您的助记词短语使您能够重新创建私钥。任何得到此助记词的人将完全控制其中存储的 Kaspa。请妥善保管您的助记词。建议您将其炒录并存放在一个安全且防火的地方。请切勿在这台电脑或移动设备上存储您的助记词。除非您手动启动私钥恢复,否则此钱包永远不会要求您提供助记词短语。", + "Your mnemonic phrase is invalid": "您的助记词无效", + "Your private key mnemonic is:": "您的私钥助记词是:", "Your wallet has been created and is ready to use.": "您的钱包创建完成,已可以使用。", "Zoom": "缩放", - "amount to send": "待发送金额", "bye!": "再见!", "gRPC Network Interface & Port": "gRPC 网络接口和端口", - "gRPC Rx": "gRPC 接收", - "gRPC Rx/s": " gRPC 接收/每秒", - "gRPC Tx": "gRPC 发送", - "gRPC Tx/s": "gRPC 发送/每秒", + "gRPC Rx": "gRPC 接收量", + "gRPC Rx/s": "每秒 gRPC 接收量", + "gRPC Tx": "gRPC 发送量", + "gRPC Tx/s": "每秒 gRPC 发送量", "of": "of", "p2p RPC": "P2P RPC", - "p2p Rx": "P2P 接收", - "p2p Rx/s": "P2P 接收/每秒", - "p2p Tx": "P2P 发送", - "p2p Tx/s": "P2P 发送/每秒", + "p2p Rx": "P2P 接收量", + "p2p Rx/s": "每秒 P2P 接收量", + "p2p Tx": "P2P 发送量", + "p2p Tx/s": "每秒 P2P 发送量", "peer": "对等节点", "peers": "对等节点", - "wRPC Borsh Rx": "wRPC Borsh 接收", - "wRPC Borsh Rx/s": "wRPC Borsh 接收/秒", - "wRPC Borsh Tx": "wRPC Borsh 发送", - "wRPC Borsh Tx/s": "wRPC Borsh 发送/每秒", + "using KDX or kaspanet.io web wallet": "使用 KDX 或 kaspanet.io 网页钱包", + "wRPC Borsh Rx": "wRPC Borsh 接收量", + "wRPC Borsh Rx/s": "每秒 wRPC Borsh 接收量", + "wRPC Borsh Tx": "wRPC Borsh 发送量", + "wRPC Borsh Tx/s": "每秒 wRPC Borsh 发送量", "wRPC Connection Settings": "wRPC 连接设置", "wRPC Encoding:": "wRPC 编码:", - "wRPC JSON Rx": "wRPC JSON 接收", - "wRPC JSON Rx/s": "wRPC JSON 接收/每秒", - "wRPC JSON Tx": "wRPC JSON 发送", - "wRPC JSON Tx/s": "wRPC JSON 发送/每秒", - "wRPC URL:": "wRPC URL:" + "wRPC JSON Rx": "wRPC JSON 接收量", + "wRPC JSON Rx/s": "每秒 wRPC JSON 接收量", + "wRPC JSON Tx": "wRPC JSON 发送量", + "wRPC JSON Tx/s": "每秒 wRPC JSON 发送量", + "wRPC URL:": "wRPC URL:", + "{arrowCircleUpIcon} Send": "{arrowCircleUpIcon} 发送", + "{arrowsDownUpIcon} Transfer": "{arrowsDownUpIcon} 转移", + "{qrCodeIcon} Request": "{qrCodeIcon} 请求", + "~2 hours": "~2小时", + "~30 minutes": "~30 分钟" } } } \ No newline at end of file diff --git a/core/src/app.rs b/core/src/app.rs index 8cb9a24..c7ed5f0 100644 --- a/core/src/app.rs +++ b/core/src/app.rs @@ -1,7 +1,6 @@ use crate::events::ApplicationEventsChannel; use crate::interop::Adaptor; use crate::result::Result; -use crate::servers::parse_default_servers; use cfg_if::cfg_if; use kaspa_ng_core::runtime; use kaspa_ng_core::settings::Settings; @@ -104,7 +103,7 @@ cfg_if! { let cmd = Command::new("kaspa-ng") - .about(format!("kaspa-ng v{VERSION}-{GIT_DESCRIBE} (rusty-kaspa v{})", kaspa_wallet_core::version())) + .about(format!("kaspa-ng v{VERSION}-{GIT_DESCRIBE} (rusty-kaspa {})", kaspa_version())) .arg(arg!(--version "Display software version")) .arg(arg!(--disable "Disable node services when starting")) .arg(arg!(--daemon "Run as Rusty Kaspa p2p daemon")) @@ -216,15 +215,13 @@ cfg_if! { workflow_log::set_colors_enabled(true); - println!("kaspa-ng v{VERSION}-{GIT_DESCRIBE} (rusty-kaspa v{})", kaspa_wallet_core::version()); + println!("kaspa-ng v{VERSION}-{GIT_DESCRIBE} (rusty-kaspa {})", kaspa_version()); // Log to stderr (if you run with `RUST_LOG=debug`). env_logger::init(); set_log_level(LevelFilter::Info); - parse_default_servers(); - let mut settings = if reset_settings { println!("Resetting kaspa-ng settings on user request..."); Settings::default().store_sync()?.clone() @@ -257,14 +254,14 @@ cfg_if! { let runtime: Arc>> = Arc::new(Mutex::new(None)); let delegate = runtime.clone(); - let window_frame = true; + let window_frame = !settings.user_interface.disable_frame; let mut viewport = egui::ViewportBuilder::default() .with_resizable(true) .with_title(i18n("Kaspa NG")) .with_min_inner_size([400.0,320.0]) .with_inner_size([1000.0,600.0]) - .with_icon(svg_to_icon_data(KASPA_NG_ICON_SVG, FitTo::Size(256,256))); + .with_icon(svg_to_icon_data(KASPA_NG_ICON_SVG, Some(SizeHint::Size(256,256)))); if window_frame { viewport = viewport @@ -275,6 +272,7 @@ cfg_if! { let native_options = eframe::NativeOptions { persist_window : true, viewport, + follow_system_theme: false, ..Default::default() }; @@ -289,7 +287,7 @@ cfg_if! { runtime::signals::Signals::bind(&runtime); runtime.start(); - Box::new(kaspa_ng_core::Core::new(cc, runtime, settings, window_frame)) + Ok(Box::new(kaspa_ng_core::Core::new(cc, runtime, settings, window_frame))) }), )?; @@ -305,6 +303,7 @@ cfg_if! { // use crate::result::Result; // use crate::adaptor::Adaptor; + // use wasm_bindgen::JsCast; // pub async fn kaspa_ng_main(wallet_api : Option>, application_events : Option, adaptor: Option>) -> Result<()> { pub async fn kaspa_ng_main(application_context : ApplicationContext) -> Result<()> { @@ -327,12 +326,13 @@ cfg_if! { // Redirect `log` message to `console.log` and friends: eframe::WebLogger::init(log::LevelFilter::Debug).ok(); - let web_options = eframe::WebOptions::default(); + let web_options = eframe::WebOptions{ + follow_system_theme: false, + ..eframe::WebOptions::default() + }; kaspa_core::log::set_log_level(kaspa_core::log::LevelFilter::Info); - parse_default_servers(); - let settings = Settings::load().await.unwrap_or_else(|err| { log_error!("Unable to load settings: {err}"); Settings::default() @@ -342,7 +342,6 @@ cfg_if! { .with_static_json_data(I18N_EMBEDDED) .try_init()?; - // wasm_bindgen_futures::spawn_local(async { use workflow_log::*; log_info!("Welcome to Kaspa NG! Have a great day!"); @@ -352,6 +351,7 @@ cfg_if! { eframe::WebRunner::new() .start( + // will be used in >0.28.1 -> document().get_element_by_id("kaspa-ng").expect(" not found.").dyn_into::().unwrap(), "kaspa-ng", web_options, Box::new(move |cc| { @@ -371,14 +371,13 @@ cfg_if! { - Box::new(kaspa_ng_core::Core::new(cc, runtime, settings, false)) + Ok(Box::new(kaspa_ng_core::Core::new(cc, runtime, settings, false))) }), ) .await .expect("failed to start eframe"); - // log_info!("shutting down..."); - // }); + //log_info!("shutting down..."); Ok(()) } diff --git a/core/src/collection.rs b/core/src/collection.rs index 8360586..2eb5d2a 100644 --- a/core/src/collection.rs +++ b/core/src/collection.rs @@ -43,27 +43,31 @@ where self.list.push(v); } - pub fn replace_or_insert(&mut self, v: T) { + pub fn replace_or_insert(&mut self, v: T) -> Option { if self.map.insert(*v.id(), v.clone()).is_some() { let id = v.id(); let index = self.list.iter().position(|item| item.id() == id).unwrap_or_else(|| { panic!("Collection::replace_or_insert(): failed to find index for id: {} while inserting: {:?}", id.to_hex(), v) }); - let _ = std::mem::replace(&mut self.list[index], v); + let t = std::mem::replace(&mut self.list[index], v); + Some(t) } else { self.list.insert(0, v); + None } } - pub fn replace_or_push(&mut self, v: T) { + pub fn replace_or_push(&mut self, v: T) -> Option { if self.map.insert(*v.id(), v.clone()).is_some() { let id = v.id(); let index = self.list.iter().position(|item| item.id() == id).unwrap_or_else(|| { panic!("Collection::replace_or_insert(): failed to find index for id: {} while inserting: {:?}", id.to_hex(), v) }); - let _ = std::mem::replace(&mut self.list[index], v); + let t = std::mem::replace(&mut self.list[index], v); + Some(t) } else { self.list.push(v); + None } } @@ -75,6 +79,14 @@ where self.map.get(id) } + pub fn pop(&mut self) -> Option { + if let Some(item) = self.list.pop() { + self.map.remove(item.id()); + return Some(item); + } + None + } + pub fn list(&self) -> &Vec { &self.list } diff --git a/core/src/core.rs b/core/src/core.rs index dd331e5..f83334f 100644 --- a/core/src/core.rs +++ b/core/src/core.rs @@ -8,9 +8,14 @@ use kaspa_wallet_core::api::TransactionsDataGetResponse; use kaspa_wallet_core::events::Events as CoreWallet; use kaspa_wallet_core::storage::{Binding, Hint, PrvKeyDataInfo}; use std::borrow::Cow; +use std::future::IntoFuture; #[allow(unused_imports)] use workflow_i18n::*; use workflow_wasm::callback::CallbackMap; +pub const TRANSACTION_PAGE_SIZE: u64 = 20; +pub const MAINNET_EXPLORER: &str = "https://explorer.kaspa.org"; +pub const TESTNET10_EXPLORER: &str = "https://explorer-tn10.kaspa.org"; +pub const TESTNET11_EXPLORER: &str = "https://explorer-tn11.kaspa.org"; pub enum Exception { #[allow(dead_code)] @@ -54,6 +59,9 @@ pub struct Core { pub network_pressure: NetworkPressure, notifications: Notifications, pub storage: Storage, + // pub feerate : Option>, + pub feerate: Option, + pub node_info: Option>, } impl Core { @@ -215,6 +223,8 @@ impl Core { network_pressure: NetworkPressure::default(), notifications: Notifications::default(), storage, + feerate: None, + node_info: None, // daemon_storage_root: Mutex::new(daemon_storage_root), }; @@ -222,8 +232,6 @@ impl Core { module.init(&mut this); }); - load_public_servers(); - this.wallet_update_list(); cfg_if! { @@ -431,9 +439,10 @@ impl eframe::App for Core { pressed, modifiers, repeat, + physical_key, } = event { - self.handle_keyboard_events(*key, *pressed, modifiers, *repeat); + self.handle_keyboard_events(*key, *pressed, modifiers, *repeat, physical_key); } }); @@ -616,9 +625,9 @@ impl Core { sender .try_send(Events::Notify { - user_notification: UserNotification::success(format!( - "Capture saved to\n{}", - path.to_string_lossy() + user_notification: UserNotification::success(i18n_args( + "Capture saved to {path}", + &[("path", path.to_string_lossy())], )) .as_toast(), }) @@ -726,6 +735,17 @@ impl Core { self.network_pressure .update_mempool_size(mempool_size, &self.settings.node.network); } + Events::Feerate { feerate } => { + if let Some(feerate) = feerate { + if let Some(average) = self.feerate.as_mut() { + average.insert(feerate.as_ref()); + } else { + self.feerate = Some(FeerateEstimate::new(feerate.as_ref())); + } + } else { + self.feerate = None; + } + } Events::Exit => { cfg_if! { if #[cfg(not(target_arch = "wasm32"))] { @@ -765,6 +785,9 @@ impl Core { self.notifications.push(notification); } } + Events::NodeInfo { node_info } => { + self.node_info = node_info; + } Events::Close { .. } => {} Events::UnlockSuccess => {} Events::UnlockFailure { .. } => {} @@ -984,9 +1007,21 @@ impl Core { .as_ref() .and_then(|account_collection| { account_collection.get(&id).map(|account| { - account.transactions().replace_or_insert( - Transaction::new_confirmed(Arc::new(record)), - ); + if account + .transactions() + .replace_or_insert(Transaction::new_confirmed( + Arc::new(record), + )) + .is_none() + { + let mut binding = account.transactions(); + while binding.len() as u64 > TRANSACTION_PAGE_SIZE { + binding.pop(); + } + account.set_transaction_count( + account.transaction_count() + 1, + ); + } }) }); } @@ -1008,9 +1043,21 @@ impl Core { .as_ref() .and_then(|account_collection| { account_collection.get(&id).map(|account| { - account.transactions().replace_or_insert( - Transaction::new_confirmed(Arc::new(record)), - ); + if account + .transactions() + .replace_or_insert(Transaction::new_confirmed( + Arc::new(record), + )) + .is_none() + { + let mut binding = account.transactions(); + while binding.len() as u64 > TRANSACTION_PAGE_SIZE { + binding.pop(); + } + account.set_transaction_count( + account.transaction_count() + 1, + ); + } }) }); } @@ -1025,9 +1072,21 @@ impl Core { .as_ref() .and_then(|account_collection| { account_collection.get(&id).map(|account| { - account.transactions().replace_or_insert( - Transaction::new_processing(Arc::new(record)), - ); + if account + .transactions() + .replace_or_insert(Transaction::new_processing( + Arc::new(record), + )) + .is_none() + { + let mut binding = account.transactions(); + while binding.len() as u64 > TRANSACTION_PAGE_SIZE { + binding.pop(); + } + account.set_transaction_count( + account.transaction_count() + 1, + ); + } }) }); } @@ -1084,6 +1143,41 @@ impl Core { }); } + pub fn load_account_transactions_with_range( + &mut self, + account: &Account, + range: std::ops::Range, + ) -> Result<()> { + let account_id = account.id(); + let network_id = self + .state + .network_id + .unwrap_or(self.settings.node.network.into()); + let runtime = self.runtime.clone(); + let account = account.clone(); + spawn(async move { + let data = runtime + .wallet() + .transactions_data_get_range(account_id, network_id, range) + .into_future() + .await?; + + let TransactionsDataGetResponse { + account_id, + transactions, + start: _, + total, + } = data; + + if let Err(err) = account.load_transactions(transactions, total) { + log_error!("error loading transactions into account {account_id}: {err}"); + } + Ok(()) + }); + + Ok(()) + } + fn load_accounts( &mut self, network_id: NetworkId, @@ -1135,9 +1229,11 @@ impl Core { let futures = account_ids .into_iter() .map(|account_id| { - runtime - .wallet() - .transactions_data_get_range(account_id, network_id, 0..16384) + runtime.wallet().transactions_data_get_range( + account_id, + network_id, + 0..TRANSACTION_PAGE_SIZE, + ) }) .collect::>(); @@ -1190,17 +1286,6 @@ impl Core { .expect("account collection") .extend_unchecked(accounts.clone()); - if let Some(first) = accounts.first() { - let device = self.device().clone(); - let wallet = self.wallet(); - self.get_mut::().select( - wallet, - Some(first.clone()), - device, - true, - ); - } - let account_ids = accounts .iter() .map(|account| account.id()) @@ -1212,6 +1297,17 @@ impl Core { Ok(()) }); + if let Some(first) = accounts.first() { + let device = self.device().clone(); + let wallet = self.wallet(); + self.get_mut::().select( + wallet, + Some(first.clone()), + device, + true, + ); + } + accounts } @@ -1221,6 +1317,7 @@ impl Core { pressed: bool, modifiers: &Modifiers, _repeat: bool, + _physical_key: &Option, ) { if !pressed { return; diff --git a/core/src/egui/composite_button.rs b/core/src/egui/composite_button.rs index a3c9cc2..f357ffa 100644 --- a/core/src/egui/composite_button.rs +++ b/core/src/egui/composite_button.rs @@ -291,11 +291,26 @@ impl Widget for CompositeButton<'_> { secondary_text_style = TextStyle::Monospace; } - let text = text.map(|text| text.into_galley(ui, wrap, text_wrap_width, TextStyle::Button)); + let wrap_mode = wrap.map(|wrap| { + if wrap { + TextWrapMode::Wrap + } else { + TextWrapMode::Extend + } + }); + + let text = + text.map(|text| text.into_galley(ui, wrap_mode, text_wrap_width, TextStyle::Button)); let secondary_text = secondary_text - .map(|text| text.into_galley(ui, wrap, text_wrap_width, secondary_text_style)); - let shortcut_text = (!shortcut_text.is_empty()) - .then(|| shortcut_text.into_galley(ui, Some(false), f32::INFINITY, TextStyle::Button)); + .map(|text| text.into_galley(ui, wrap_mode, text_wrap_width, secondary_text_style)); + let shortcut_text = (!shortcut_text.is_empty()).then(|| { + shortcut_text.into_galley( + ui, + Some(TextWrapMode::Extend), + f32::INFINITY, + TextStyle::Button, + ) + }); let mut desired_size = Vec2::new(pulldown_padding, 0.0); //Vec2::ZERO; let mut img_plus_spacing_width = 0.0; @@ -340,7 +355,7 @@ impl Widget for CompositeButton<'_> { let (rect, mut response) = ui.allocate_at_least(desired_size, sense); response.widget_info(|| { if let Some(text) = &text { - WidgetInfo::labeled(WidgetType::Button, text.text()) + WidgetInfo::labeled(WidgetType::Button, true, text.text()) } else { WidgetInfo::new(WidgetType::Button) } @@ -397,21 +412,36 @@ impl Widget for CompositeButton<'_> { image.image_options(), ); - response = texture_load_result_response(image.source(), &tlr, response); + response = + texture_load_result_response(&image.source(ui.ctx()), &tlr, response); } Composite::Icon(icon) => { let galley = WidgetText::RichText(icon.clone().size(image_size.y)) - .into_galley(ui, wrap, text_wrap_width, TextStyle::Button); + .into_galley( + ui, + wrap.map(|wrap| { + if wrap { + TextWrapMode::Wrap + } else { + TextWrapMode::Extend + } + }), + text_wrap_width, + TextStyle::Button, + ); let image_rect = Rect::from_min_size( pos2(cursor_x, rect.center().y - 0.5 - (galley.size().y / 2.0)), galley.size(), ); cursor_x += galley.size().x; - galley.paint_with_fallback_color( - ui.painter(), - image_rect.min, - visuals.fg_stroke.color, - ); + // galley.paint_with_fallback_color( + // ui.painter(), + // image_rect.min, + // visuals.fg_stroke.color, + // ); + + ui.painter() + .galley(image_rect.min, galley, visuals.fg_stroke.color); } } } @@ -439,14 +469,17 @@ impl Widget for CompositeButton<'_> { .align_size_within_rect(text.size(), rect.shrink2(button_padding)) .min }; - text.paint_with_visuals(ui.painter(), text_pos, visuals); + //text.paint_with_visuals(ui.painter(), text_pos, visuals); + ui.painter().galley(text_pos, text, visuals.text_color()); } if let Some(secondary_text) = secondary_text { let y = text_max_y.unwrap_or_else(|| rect.center().y - 0.5 * secondary_text.size().y); let secondary_text_pos = pos2(cursor_x, y); - secondary_text.paint_with_visuals(ui.painter(), secondary_text_pos, visuals); + //secondary_text.paint_with_visuals(ui.painter(), secondary_text_pos, visuals); + ui.painter() + .galley(secondary_text_pos, secondary_text, visuals.text_color()); } if let Some(shortcut_text) = shortcut_text { @@ -454,17 +487,25 @@ impl Widget for CompositeButton<'_> { rect.max.x - button_padding.x - shortcut_text.size().x, rect.center().y - 0.5 * shortcut_text.size().y, ); - shortcut_text.paint_with_fallback_color( - ui.painter(), - shortcut_text_pos, - ui.visuals().weak_text_color(), - ); + // shortcut_text.paint_with_fallback_color( + // ui.painter(), + // shortcut_text_pos, + // ui.visuals().weak_text_color(), + // ); + ui.painter() + .galley(shortcut_text_pos, shortcut_text, visuals.text_color()); } if pulldown_selector { let galley = WidgetText::RichText(RichText::new("⏷").size(14.)).into_galley( ui, - wrap, + wrap.map(|wrap| { + if wrap { + TextWrapMode::Wrap + } else { + TextWrapMode::Extend + } + }), text_wrap_width, TextStyle::Button, ); @@ -476,11 +517,13 @@ impl Widget for CompositeButton<'_> { galley.size(), ); - galley.paint_with_fallback_color( - ui.painter(), - image_rect.min, - visuals.fg_stroke.color, - ); + // galley.paint_with_fallback_color( + // ui.painter(), + // image_rect.min, + // visuals.fg_stroke.color, + // ); + ui.painter() + .galley(image_rect.min, galley, visuals.fg_stroke.color); } } diff --git a/core/src/egui/composite_icon.rs b/core/src/egui/composite_icon.rs index 16f0698..e9bd21d 100644 --- a/core/src/egui/composite_icon.rs +++ b/core/src/egui/composite_icon.rs @@ -1,5 +1,34 @@ -use egui::widget_text::WidgetTextGalley; +//use egui::widget_text::WidgetTextGalley; use egui::*; +use std::sync::Arc; + +pub struct LayoutResult { + pos: Pos2, + text_pos: Pos2, + response: Response, + icon_text: Arc, + text: Option>, + secondary_text: Option>, +} +impl LayoutResult { + fn new( + pos: Pos2, + text_pos: Pos2, + response: Response, + icon_text: Arc, + text: Option>, + secondary_text: Option>, + ) -> Self { + Self { + pos, + text_pos, + response, + icon_text, + text, + secondary_text, + } + } +} /// Clickable button with text. /// @@ -155,17 +184,7 @@ impl CompositeIcon { } /// Do layout and position the galley in the ui, without painting it or adding widget info. - pub fn layout_in_ui( - &self, - ui: &mut Ui, - ) -> ( - Pos2, - Pos2, - Response, - WidgetTextGalley, - Option, - Option, - ) { + pub fn layout_in_ui(&self, ui: &mut Ui) -> LayoutResult { let sense = { // We only want to focus icon if the screen reader is on. if ui.memory(|mem| mem.options.screen_reader) { @@ -184,14 +203,22 @@ impl CompositeIcon { secondary_text_style = TextStyle::Body; } - let text = self - .text - .clone() - .map(|text| text.into_galley(ui, Some(true), text_wrap_width, TextStyle::Button)); - let secondary_text = self - .secondary_text - .clone() - .map(|text| text.into_galley(ui, Some(true), text_wrap_width, secondary_text_style)); + let text = self.text.clone().map(|text| { + text.into_galley( + ui, + Some(TextWrapMode::Wrap), + text_wrap_width, + TextStyle::Button, + ) + }); + let secondary_text = self.secondary_text.clone().map(|text| { + text.into_galley( + ui, + Some(TextWrapMode::Wrap), + text_wrap_width, + secondary_text_style, + ) + }); if let Some(text) = &text { text_size += text.size(); @@ -221,7 +248,7 @@ impl CompositeIcon { // h-center //pos.x = response.rect.left() + (response.rect.width() - icon_size.x)/2.0; - (pos, text_pos, response, text_galley, text, secondary_text) + LayoutResult::new(pos, text_pos, response, text_galley, text, secondary_text) }; // if let WidgetText::Galley(galley) = self.icon.clone() { @@ -245,14 +272,11 @@ impl CompositeIcon { // } let valign = ui.layout().vertical_align(); - let mut text_job = WidgetText::from(self.icon.clone().size(self.icon_size)).into_text_job( - ui.style(), - FontSelection::Default, - valign, - ); + let mut layout_job = WidgetText::from(self.icon.clone().size(self.icon_size)) + .into_layout_job(ui.style(), FontSelection::Default, valign); let truncate = true; - let wrap = !truncate && ui.wrap_text(); + let wrap = !truncate && ui.wrap_mode() == TextWrapMode::Wrap; let available_width = ui.available_width(); if wrap @@ -265,24 +289,21 @@ impl CompositeIcon { let cursor = ui.cursor(); let first_row_indentation = available_width - ui.available_size_before_wrap().x; - egui_assert!(first_row_indentation.is_finite()); + assert!(first_row_indentation.is_finite()); - text_job.job.wrap.max_width = available_width; - text_job.job.first_row_min_height = cursor.height(); - text_job.job.halign = Align::Min; - text_job.job.justify = false; - if let Some(first_section) = text_job.job.sections.first_mut() { + layout_job.wrap.max_width = available_width; + layout_job.first_row_min_height = cursor.height(); + layout_job.halign = Align::Min; + layout_job.justify = false; + if let Some(first_section) = layout_job.sections.first_mut() { first_section.leading_space = first_row_indentation; } - let text_galley = ui.fonts(|f| text_job.into_galley(f)); + let text_galley = ui.fonts(|fonts| fonts.layout_job(layout_job)); let pos = pos2(ui.max_rect().left(), ui.cursor().top()); - assert!( - !text_galley.galley.rows.is_empty(), - "Galleys are never empty" - ); + assert!(!text_galley.rows.is_empty(), "Galleys are never empty"); // collect a response from many rows: - let mut rect = text_galley.galley.rows[0].rect; + let mut rect = text_galley.rows[0].rect; let mut rect_size = rect.size(); let icon_size = rect_size; rect_size.x = text_size.x.max(rect_size.x) + padding.x * 2.0; @@ -292,7 +313,7 @@ impl CompositeIcon { let rect = rect.translate(vec2(pos.x, pos.y)); let mut response = ui.allocate_rect(rect, sense); - for row in text_galley.galley.rows.iter().skip(1) { + for row in text_galley.rows.iter().skip(1) { let rect = row.rect.translate(vec2(pos.x, pos.y)); response |= ui.allocate_rect(rect, sense); } @@ -300,19 +321,19 @@ impl CompositeIcon { create_result(pos, icon_size, response, text_galley, text, secondary_text) } else { if truncate { - text_job.job.wrap.max_width = available_width; - text_job.job.wrap.max_rows = 1; - text_job.job.wrap.break_anywhere = true; + layout_job.wrap.max_width = available_width; + layout_job.wrap.max_rows = 1; + layout_job.wrap.break_anywhere = true; } else if wrap { - text_job.job.wrap.max_width = available_width; + layout_job.wrap.max_width = available_width; } else { - text_job.job.wrap.max_width = f32::INFINITY; + layout_job.wrap.max_width = f32::INFINITY; }; - text_job.job.halign = Align::Center; - text_job.job.justify = ui.layout().horizontal_justify(); + layout_job.halign = Align::Center; + layout_job.justify = ui.layout().horizontal_justify(); - let text_galley = ui.fonts(|f| text_job.into_galley(f)); + let text_galley = ui.fonts(|fonts| fonts.layout_job(layout_job)); let mut size = text_galley.size(); let icon_size = size; @@ -320,7 +341,7 @@ impl CompositeIcon { size.y += text_size.y + padding.y * 2.0; let (rect, response) = ui.allocate_exact_size(size, sense); - let pos = match text_galley.galley.job.halign { + let pos = match text_galley.job.halign { Align::LEFT => rect.left_top(), Align::Center => rect.center_top(), Align::RIGHT => rect.right_top(), @@ -333,11 +354,18 @@ impl CompositeIcon { impl Widget for CompositeIcon { fn ui(self, ui: &mut Ui) -> Response { - let (pos, text_pos, response, icon_text, text, secondary_text) = self.layout_in_ui(ui); + let LayoutResult { + pos, + text_pos, + response, + icon_text, + text, + secondary_text, + } = self.layout_in_ui(ui); response.widget_info(|| { if let Some(text) = &self.text { - WidgetInfo::labeled(WidgetType::Button, text.text()) + WidgetInfo::labeled(WidgetType::Button, true, text.text()) } else { WidgetInfo::new(WidgetType::Button) } @@ -381,23 +409,28 @@ impl Widget for CompositeIcon { ); } - let override_text_color = if icon_text.galley_has_color { - None - } else { - Some( - ui.style() - .interact_selectable(&response, self.selected) - .text_color(), - ) - }; + // let override_text_color = if icon_text.job.galley_has_color { + // None + // } else { + // let override_text_color = Some( + // ui.style() + // .interact_selectable(&response, self.selected) + // .text_color(), + // ); + //}; let button_padding = self._padding(ui); ui.painter().add(epaint::TextShape { pos, - galley: icon_text.galley, - override_text_color, + galley: icon_text, + override_text_color: None, underline: Stroke::NONE, angle: 0.0, + fallback_color: ui + .style() + .interact_selectable(&response, self.selected) + .text_color(), + opacity_factor: 1.0, }); let mut cursor_y = text_pos.y + ui.spacing().item_spacing.y; @@ -410,7 +443,8 @@ impl Widget for CompositeIcon { pos.y = cursor_y; cursor_y += text.size().y + ui.spacing().item_spacing.y; - text.paint_with_visuals(ui.painter(), pos, visuals); + //text.paint_with_visuals(ui.painter(), pos, visuals); + ui.painter().galley(pos, text, visuals.text_color()); } if let Some(secondary_text) = secondary_text { @@ -420,7 +454,9 @@ impl Widget for CompositeIcon { .min; pos.y = cursor_y; - secondary_text.paint_with_visuals(ui.painter(), pos, visuals); + //secondary_text.paint_with_visuals(ui.painter(), pos, visuals); + ui.painter() + .galley(pos, secondary_text, visuals.text_color()); } } diff --git a/core/src/egui/extensions.rs b/core/src/egui/extensions.rs index 63ba0f4..cfa4e62 100644 --- a/core/src/egui/extensions.rs +++ b/core/src/egui/extensions.rs @@ -25,7 +25,16 @@ pub trait UiExtension { fn large_button(&mut self, text: impl Into) -> Response { self.large_button_enabled(true, text) } + fn large_selected_button(&mut self, selected: bool, text: impl Into) -> Response { + self.large_button_enabled_selected(true, selected, text) + } fn large_button_enabled(&mut self, enabled: bool, text: impl Into) -> Response; + fn large_button_enabled_selected( + &mut self, + enabled: bool, + selected: bool, + text: impl Into, + ) -> Response; fn confirm_medium( &mut self, align: Align, @@ -35,20 +44,104 @@ pub trait UiExtension { fn confirm_medium_apply_cancel(&mut self, align: Align) -> Option; fn confirm_medium_cancel(&mut self, align: Align) -> Option; fn sized_separator(&mut self, size: Vec2) -> Response; + fn widgets_rounding(&self) -> Rounding; + fn small_separator(&mut self) { + self.add_separator(self.create_separator(None, 0.5, None)); + } + fn medium_separator(&mut self) { + self.add_separator(self.create_separator(None, 0.3, None)); + } + fn large_separator(&mut self) { + self.add_separator(self.create_separator(None, 0.1, None)); + } + fn small_separator_with_direction_and_spacing(&mut self, spacing: f32, is_horizontal: bool) { + self.add_separator(self.create_separator(Some(spacing), 0.5, Some(is_horizontal))); + } + fn create_separator( + &self, + spacing: Option, + shrink: f32, + is_horizontal: Option, + ) -> Separator; + fn add_separator(&mut self, separator: Separator); } impl UiExtension for Ui { + fn create_separator( + &self, + spacing: Option, + shrink: f32, + is_horizontal: Option, + ) -> Separator { + let mut sep = Separator::default(); + if let Some(spacing) = spacing { + sep = sep.spacing(spacing) + } + if let Some(is_horizontal) = is_horizontal { + if is_horizontal { + sep = sep.horizontal(); + } else { + sep = sep.vertical(); + } + } + + //let sep = is_horizontal.map_or(sep, |is_horizontal| if is_horizontal{sep.horizontal()}else{sep.vertical()}); + + let is_horizontal_line = + is_horizontal.unwrap_or_else(|| !self.layout().main_dir().is_horizontal()); + + let available_space = self.available_size_before_wrap(); + + //log_info!("spacing:{spacing:?}, is_horizontal: {is_horizontal:?}, is_horizontal_line:{is_horizontal_line}"); + + let size = if is_horizontal_line { + available_space.x + } else { + available_space.y + }; + + let shrink = (size * shrink) / 2.0; + + sep.shrink(shrink) + } + fn add_separator(&mut self, separator: Separator) { + self.add(separator); + } + + fn widgets_rounding(&self) -> Rounding { + self.visuals().widgets.hovered.rounding + } + fn medium_button_enabled(&mut self, enabled: bool, text: impl Into) -> Response { self.add_enabled( enabled, - Button::new(text).min_size(theme_style().medium_button_size()), + Button::new(text) + .rounding(self.widgets_rounding()) + .min_size(theme_style().medium_button_size()), ) } fn large_button_enabled(&mut self, enabled: bool, text: impl Into) -> Response { self.add_enabled( enabled, - Button::new(text).min_size(theme_style().large_button_size()), + Button::new(text) + .rounding(self.widgets_rounding()) + .min_size(theme_style().large_button_size()), + ) + } + + fn large_button_enabled_selected( + &mut self, + enabled: bool, + selected: bool, + text: impl Into, + ) -> Response { + self.add_enabled( + enabled, + Button::new(text) + .rounding(self.widgets_rounding()) + .selected(selected) + .min_size(theme_style().large_button_size()), ) } @@ -140,6 +233,7 @@ pub struct LayoutJobBuilder { leading: f32, icon_font_id: Option, font_id: Option, + heading: Option<(f32, f32, String, Color32)>, } impl LayoutJobBuilder { @@ -147,7 +241,7 @@ impl LayoutJobBuilder { let job = LayoutJob { wrap: TextWrapping { max_width: width, - max_rows: 1, + max_rows: 4, break_anywhere: true, overflow_character: Some('…'), }, @@ -158,6 +252,7 @@ impl LayoutJobBuilder { job, leading, font_id, + heading: None, ..Default::default() } } @@ -209,8 +304,119 @@ impl LayoutJobBuilder { self } + pub fn heading(mut self, ui: &mut Ui, width: f32, text: &str, color: Color32) -> Self { + let galley = ui.painter().layout_no_wrap( + text.to_string(), + self.font_id.clone().unwrap_or_default(), + color, + ); + self.heading = Some((width, galley.size().y, text.to_string(), color)); + self + } + pub fn label(self, ui: &mut Ui) -> Response { - ui.label(self.job) + Self::render_label(ui, self.job, self.heading) + } + + fn render_label( + ui: &mut Ui, + job: LayoutJob, + heading: Option<(f32, f32, String, Color32)>, + ) -> Response { + if let Some((x, y, text, color)) = heading { + let desired_size = Vec2 { x, y }; + ui.horizontal(|ui| { + ui.allocate_ui_with_layout( + desired_size, + Layout::right_to_left(Align::Center), + |ui| ui.label(RichText::new(text).color(color).font(FontId::default())), + ); + ui.label(job) + }) + .inner + } else { + ui.label(job) + } + } + + pub fn hyperlink_with_clipboard_icon( + self, + ui: &mut Ui, + text: &str, + url: &str, + color: Color32, + clipboard_text: Option, + ) { + ui.horizontal(|ui| { + Self::render_label(ui, self.job, self.heading); + ui.hyperlink_to_tab( + RichText::new(text) + .font(self.font_id.unwrap_or_default()) + .color(color), + url, + ); + if let Some(text) = clipboard_text { + Self::clipboard_icon(ui, text); + } + }); + } + pub fn hyperlink(self, ui: &mut Ui, text: &str, url: &str, color: Color32) { + self.hyperlink_with_clipboard_icon(ui, text, url, color, None) + } + pub fn transaction_id( + self, + ui: &mut Ui, + txid: &str, + url: &str, + color: Color32, + range: Option, + ) { + self.hyperlink_with_clipboard_icon( + ui, + &format_partial_string(txid, range), + url, + color, + Some(txid.to_string()), + ) + } + pub fn script(self, ui: &mut Ui, script: &str, color: Color32, range: Option) { + let this = self.text(&format_partial_string(script, range), color); + ui.horizontal(|ui| { + Self::render_label(ui, this.job, this.heading); + Self::clipboard_icon(ui, script.to_string()); + }); + } + pub fn with_clipboard_icon(self, ui: &mut Ui, text: &str) { + ui.horizontal(|ui| { + Self::render_label(ui, self.job, self.heading); + Self::clipboard_icon(ui, text.to_string()); + }); + } + pub fn address( + self, + ui: &mut Ui, + address: &str, + url: &str, + color: Color32, + range: Option, + ) { + self.hyperlink_with_clipboard_icon( + ui, + &format_address_string(address, range), + url, + color, + Some(address.to_string()), + ) + } + + pub fn clipboard_icon(ui: &mut Ui, text: String) { + if ui + .add(Label::new(egui_phosphor::light::CLIPBOARD_TEXT).sense(Sense::click())) + .clicked() + { + ui.output_mut(|o| o.copied_text = text); + runtime().notify_clipboard(i18n("Copied to clipboard")); + } } } diff --git a/core/src/egui/mnemonic.rs b/core/src/egui/mnemonic.rs index 55b6810..618f6c4 100644 --- a/core/src/egui/mnemonic.rs +++ b/core/src/egui/mnemonic.rs @@ -43,7 +43,7 @@ impl<'render> MnemonicPresenter<'render> { pub fn render(&mut self, ui: &mut Ui, caption: Option>) { ui.vertical_centered(|ui| { ui.label( - RichText::new("Never share your mnemonic with anyone!") + RichText::new(i18n("Never share your mnemonic with anyone!")) .color(theme_color().alert_color), ); // ui.separator(); @@ -116,7 +116,7 @@ impl<'render> MnemonicPresenter<'render> { ui.vertical_centered(|ui| { ui.label(""); - ui.checkbox(&mut self.context.allow_clipboard, " Allow clipboard copy"); + ui.checkbox(&mut self.context.allow_clipboard, i18n("Allow clipboard copy")); if self.context.allow_clipboard { ui.label(""); ui.label(i18n("Please note, copying to clipboard carries a risk of exposing your mnemonic to malware.")); diff --git a/core/src/egui/mod.rs b/core/src/egui/mod.rs index 35f248f..557a64f 100644 --- a/core/src/egui/mod.rs +++ b/core/src/egui/mod.rs @@ -6,8 +6,10 @@ mod extensions; mod icon; mod mnemonic; mod network; +mod pagination; mod panel; mod popup; +mod selection_panels; mod theme; pub use collapsable::*; @@ -18,6 +20,8 @@ pub use extensions::*; pub use icon::IconSize; pub use mnemonic::*; pub use network::NetworkInterfaceEditor; +pub use pagination::*; pub use panel::Panel; pub use popup::PopupPanel; +pub use selection_panels::*; pub use theme::*; diff --git a/core/src/egui/pagination.rs b/core/src/egui/pagination.rs new file mode 100644 index 0000000..0e3876d --- /dev/null +++ b/core/src/egui/pagination.rs @@ -0,0 +1,234 @@ +use crate::imports::*; + +#[derive(Debug)] +pub struct PaginationPage { + pub page: u64, + pub skip: u64, + pub active: bool, +} + +#[derive(Clone, Debug)] +pub struct PaginationOptions { + pub first: String, + pub last: String, + pub prev: String, + pub next: String, +} +impl PaginationOptions { + pub fn new() -> Self { + Self { + ..Default::default() + } + } +} +impl Default for PaginationOptions { + fn default() -> Self { + Self { + first: i18n("FIRST").to_string(), + last: i18n("LAST").to_string(), + prev: i18n("PREV").to_string(), + next: i18n("NEXT").to_string(), + } + } +} + +pub struct Pagination { + // pub name: Option, + pub total_pages: u64, + pub active_page: u64, + pub is_last: bool, + pub is_first: bool, + pub prev: u64, + pub next: u64, + pub last: u64, + pub last_skip: u64, + pub prev_skip: u64, + pub next_skip: u64, + pub total: u64, + pub skip: u64, + pub limit: u64, + pub pages: Arc>, + pub max_pages: u64, + pub half: u64, + pub btn_size1: Vec2, + pub btn_size2: Vec2, + //pub callback: Arc>>, + pub options: Option, +} + +impl core::fmt::Debug for Pagination { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> { + f.debug_struct("Pagination") + // .field("name", &self.name) + .field("total_pages", &self.total_pages) + .field("active_page", &self.active_page) + .field("is_last", &self.is_last) + .field("is_first", &self.is_first) + .field("prev", &self.prev) + .field("next", &self.next) + .field("last", &self.last) + .field("last_skip", &self.last_skip) + .field("prev_skip", &self.prev_skip) + .field("next_skip", &self.next_skip) + .field("total", &self.total) + .field("skip", &self.skip) + .field("limit", &self.limit) + .field("pages", &self.pages) + .field("max_pages", &self.max_pages) + .field("half", &self.half) + .field("options", &self.options); + Ok(()) + } +} + +impl Pagination { + pub fn new(total: u64, skip: Option, limit: Option, max_pages: Option) -> Self { + let skip = skip.unwrap_or(0); + let limit = limit.unwrap_or(25); + let total_pages = (total as f32 / limit as f32).ceil() as u64; + let active_page = total_pages.min(((skip + 1) as f64 / limit as f64).ceil() as u64); + let max_pages = max_pages.unwrap_or(10).min(total_pages).min(10); + let half = (max_pages as f64 / 2.0).floor() as u64; + let prev = 1.max(active_page.saturating_sub(1)); + let next = total_pages.min(active_page + 1); + let mut page = 1; + // log_info!( + // "active_page: {active_page}, half:{half}, max_pages:{max_pages}, total_pages:{total_pages}" + // ); + if active_page > half { + page = active_page + half.min(total_pages - active_page) + 1 - max_pages; + } + + let mut pages = Vec::new(); + for _ in 0..max_pages { + pages.push(PaginationPage { + page, + skip: (page - 1) * limit, + active: active_page == page, + }); + page += 1; + } + Self { + //name: None, + total_pages, + active_page, + is_last: active_page == total_pages, + is_first: active_page < 2, + prev, + next, + last: total_pages, + last_skip: total_pages.saturating_sub(1) * limit, + prev_skip: prev.saturating_sub(1) * limit, + next_skip: next.saturating_sub(1) * limit, + total, + skip, + limit, + pages: Arc::new(pages), + max_pages, + half, + btn_size1: Vec2::new(30_f32, 30_f32), // numbers + btn_size2: Vec2::new(50_f32, 30_f32), // first,prev,next,last + options: None, + } + } + + pub fn with_options(mut self, options: PaginationOptions) -> Result { + self.options = Some(options); + Ok(self) + } + + fn calculate_padding(&self, ui: &mut Ui, options: &PaginationOptions) -> f32 { + let available_width = ui.available_width(); + let mut total_width = ui.spacing().item_spacing.x; + + let btns = vec![&options.first, &options.last, &options.last, &options.last]; + let btn_margin = ui.spacing().item_spacing.x; + let btn_padding = ui.spacing().button_padding.x * 2.0; + let pages = self.pages.clone(); + for p in pages.iter() { + let g = WidgetText::from(p.page.to_string()).into_galley( + ui, + None, + available_width, + TextStyle::Button, + ); + let button_width = (g.size().x + btn_padding).max(self.btn_size1.x); + total_width += button_width + btn_margin; + } + + for btn in btns { + let g = WidgetText::from(btn).into_galley(ui, None, available_width, TextStyle::Button); + let button_width = (g.size().x + btn_padding).max(self.btn_size2.x); + total_width += button_width + btn_margin; + } + + let padding = (available_width - total_width) / 2.0; + + padding.max(0.0) + } + + pub fn render(&self, ui: &mut Ui) -> Option { + let pages = self.pages.clone(); + let is_first = self.is_first; + let is_last = self.is_last; + let prev_skip = self.prev_skip; + let next_skip = self.next_skip; + let last_skip = self.last_skip; + let btn_size1 = self.btn_size1; + let btn_size2 = self.btn_size2; + // let name = self.name.clone().unwrap_or_else(|| "kng".to_string()); + + let options = self.options.clone().unwrap_or_default(); + let padding = self.calculate_padding(ui, &options); + + let first_text = options.first; + let last_text = options.last; + let prev_text = options.prev; + let next_text = options.next; + let mut start = None; + + //ui.with_layout(egui::Layout::top_down(egui::Align::Center), |ui| { + ui.horizontal(|ui| { + ui.add_space(padding); + + if add_btn(ui, !is_first, prev_text, btn_size2).clicked() { + start = Some(prev_skip); + } + + if add_btn(ui, !is_first, first_text, btn_size2).clicked() { + start = Some(0); + } + + for page in pages.iter() { + if add_num_btn(ui, page.active, page.page.to_string(), btn_size1).clicked() { + start = Some(page.skip); + } + } + + if add_btn(ui, !is_last, last_text, btn_size2).clicked() { + start = Some(last_skip); + } + + if add_btn(ui, !is_last, next_text, btn_size2).clicked() { + start = Some(next_skip); + } + }); + //}); + + start + } +} + +fn add_btn(ui: &mut Ui, enabled: bool, text: impl Into, min_size: Vec2) -> Response { + ui.add_enabled(enabled, Button::new(text).min_size(min_size)) +} + +fn add_num_btn(ui: &mut Ui, active: bool, text: impl Into, min_size: Vec2) -> Response { + ui.add_enabled( + !active, + Button::new(text) + .rounding(ui.visuals().widgets.hovered.rounding) + .selected(active) + .min_size(min_size), + ) +} diff --git a/core/src/egui/panel.rs b/core/src/egui/panel.rs index e3e0355..1f09d72 100644 --- a/core/src/egui/panel.rs +++ b/core/src/egui/panel.rs @@ -203,7 +203,10 @@ impl<'panel, Context> Panel<'panel, Context> { if let Some(handler) = self.handler { let text = self.handler_text.as_deref(); if ui - .large_button_enabled(self.handler_enabled, text.unwrap_or("Continue")) + .large_button_enabled( + self.handler_enabled, + text.unwrap_or(i18n("Continue")), + ) .clicked() { handler(self.this); diff --git a/core/src/egui/selection_panels.rs b/core/src/egui/selection_panels.rs new file mode 100644 index 0000000..d3445a8 --- /dev/null +++ b/core/src/egui/selection_panels.rs @@ -0,0 +1,403 @@ +use egui::*; +use std::hash::Hash; + +trait UILayoutExt { + //fn layout_with_max_rect(&mut self, max_rect:Rect, layout:Layout, add_contents: impl FnOnce(&mut Ui) -> R)->InnerResponse; + fn indent_with_size<'c, R>( + &mut self, + id_source: impl Hash, + indent: f32, + add_contents: Box R + 'c>, + ) -> InnerResponse; +} + +impl UILayoutExt for Ui { + // fn layout_with_max_rect(&mut self, max_rect:Rect, layout:Layout, add_contents: impl FnOnce(&mut Ui) -> R)->InnerResponse { + // let mut child_ui = self.child_ui(max_rect, layout); + // let inner = add_contents(&mut child_ui); + // let rect = child_ui.min_rect(); + // let id = self.advance_cursor_after_rect(rect); + + // InnerResponse::new(inner, self.interact(rect, id, Sense::hover())) + + // } + + fn indent_with_size<'c, R>( + &mut self, + id_source: impl Hash, + indent: f32, + add_contents: Box R + 'c>, + ) -> InnerResponse { + assert!( + self.layout().is_vertical(), + "You can only indent vertical layouts, found {:?}", + self.layout() + ); + + let mut child_rect = self.available_rect_before_wrap(); + child_rect.min.x += indent; + + let mut child_ui = + self.child_ui_with_id_source(child_rect, *self.layout(), id_source, None); + let ret = add_contents(&mut child_ui); + + // let left_vline = self.visuals().indent_has_left_vline; + // let end_with_horizontal_line = self.spacing().indent_ends_with_horizontal_line; + + // if left_vline || end_with_horizontal_line { + // if end_with_horizontal_line { + // child_ui.add_space(4.0); + // } + + // let stroke = self.visuals().widgets.noninteractive.bg_stroke; + // let left_top = child_rect.min - 0.5 * indent * Vec2::X; + // let left_top = self.painter().round_pos_to_pixels(left_top); + // let left_bottom = pos2(left_top.x, child_ui.min_rect().bottom() - 2.0); + // let left_bottom = self.painter().round_pos_to_pixels(left_bottom); + + // if left_vline { + // // draw a faint line on the left to mark the indented section + // self.painter.line_segment([left_top, left_bottom], stroke); + // } + + // if end_with_horizontal_line { + // let fudge = 2.0; // looks nicer with button rounding in collapsing headers + // let right_bottom = pos2(child_ui.min_rect().right() - fudge, left_bottom.y); + // self.painter + // .line_segment([left_bottom, right_bottom], stroke); + // } + // } + + let response = self.allocate_rect(child_ui.min_rect(), Sense::hover()); + InnerResponse::new(ret, response) + } +} + +type UiBuilderFn = Box; +// type FooterUiBuilderFn = Box; + +pub struct SelectionPanel { + pub title: WidgetText, + pub sub: WidgetText, + pub value: V, + pub build_heading: Option, + pub build_footer: Option, + pub icons: Option<(RichText, RichText)>, +} + +impl SelectionPanel { + pub fn new(value: Value, title: impl Into, sub: impl Into) -> Self { + Self { + title: title.into(), + sub: sub.into(), + value, + build_heading: None, + build_footer: None, + icons: Some(( + RichText::new(egui_phosphor::bold::CHECK).heading(), + RichText::new(egui_phosphor::bold::DOT_OUTLINE).heading(), + )), + } + } + pub fn heading(mut self, build_heading: impl FnOnce(&mut Ui) + 'static) -> Self { + self.build_heading = Some(Box::new(build_heading)); + self + } + pub fn footer(mut self, build_footer: impl FnOnce(&mut Ui) + 'static) -> Self { + self.build_footer = Some(Box::new(build_footer)); + self + } + pub fn icons(mut self, icons: Option<(impl Into, impl Into)>) -> Self { + self.icons = icons.map(|(a, b)| (a.into(), b.into())); + self + } + + pub fn render( + self, + ui: &mut Ui, + bg_color: Color32, + width: f32, + min_height: &mut f32, + current_value: &mut Value, + ) -> (Response, Option) { + let selected = *current_value == self.value; + let visuals = ui.visuals(); + let selected_bg = visuals.selection.bg_fill; + // let hover_stroke = Stroke::new(1.0, visuals.text_color()); //visuals.window_stroke; + let frame = Frame::none() + .stroke(Stroke::new(1.0, Color32::TRANSPARENT)) + .fill(if selected { selected_bg } else { bg_color }); + let mut prepared = frame.begin(ui); + + let add_contents = |ui: &mut Ui| { + ui.allocate_ui_with_layout( + egui::vec2(width, ui.available_height()), + Layout::top_down(Align::Center), + |ui| { + ui.label(" "); + ui.label(self.title.strong().heading()); + ui.label(self.sub); + if let Some(build) = self.build_heading { + (build)(ui); + } + if let Some((selected_icon, normal_icon)) = self.icons { + let icon = if selected { selected_icon } else { normal_icon }; + ui.label(icon); + } + if let Some(build) = self.build_footer { + //ui.visuals_mut().override_text_color = Some(Color32::WHITE); + (build)(ui); + } + ui.label(" "); + }, + ) + .response + }; + + let _res = add_contents(&mut prepared.content_ui); + *min_height = min_height.max(prepared.content_ui.min_rect().height()); + prepared.content_ui.set_min_height(*min_height); + let mut response = prepared.allocate_space(ui).interact(Sense::click()); + + // if !selected && response.hovered() { + // prepared.frame = prepared.frame.stroke(hover_stroke); + // } + // let stroke = None; + //if response.is_pointer_button_down_on() { + let visuals = ui.style().interact(&response); + //prepared.frame = prepared.frame.fill(selected_bg);//.stroke(visuals.bg_stroke); + prepared.frame = prepared.frame.fill(visuals.weak_bg_fill); + //stroke = Some(visuals.bg_stroke); + //} + + prepared.paint(ui); + + if response.clicked() && *current_value != self.value { + *current_value = self.value; + response.mark_changed(); + } + + (response, None) + } +} + +pub struct SelectionPanels { + // pub title: WidgetText, + pub panel_min_width: f32, + pub panel_max_width: f32, + pub panels: Vec>, + // pub build_footer: FooterUiBuilderFn, + pub panel_min_height: f32, + pub vertical: bool, + pub sep_ratio: f32, +} + +impl SelectionPanels { + pub fn new( + panel_min_width: f32, + panel_max_width: f32, + // title: impl Into, + // build_footer: impl FnOnce(&mut Ui, &mut Value) + 'static, + ) -> Self { + Self { + // title: title.into(), + panel_min_width, + panel_max_width, + // build_footer: Box::new(build_footer), + panels: vec![], + panel_min_height: 0., + vertical: false, + sep_ratio: 1.0, + } + } + pub fn add( + mut self, + value: Value, + title: impl Into, + sub: impl Into, + ) -> Self { + self.panels.push(SelectionPanel::new(value, title, sub)); + self + } + pub fn add_with_footer( + mut self, + value: Value, + title: impl Into, + sub: impl Into, + build_footer: impl FnOnce(&mut Ui) + 'static, + ) -> Self { + self.panels + .push(SelectionPanel::new(value, title, sub).footer(build_footer)); + self + } + pub fn add_icon_less( + mut self, + value: Value, + title: impl Into, + sub: impl Into, + build_footer: impl FnOnce(&mut Ui) + 'static, + ) -> Self { + self.panels.push( + SelectionPanel::new(value, title, sub) + .footer(build_footer) + .icons(None::<(RichText, RichText)>), + ); + self + } + pub fn panel_min_height(mut self, min_height: f32) -> Self { + self.panel_min_height = min_height; + self + } + + pub fn vertical(mut self, vertical: bool) -> Self { + self.vertical = vertical; + self + } + pub fn sep_ratio(mut self, sep_ratio: f32) -> Self { + self.sep_ratio = sep_ratio; + self + } + + pub fn render(self, ui: &mut Ui, current_value: &mut Value) -> Response { + // TODO @28 + let visuals = ui.visuals().clone(); + let sep_ratio = self.sep_ratio; + let text_color = visuals.text_color(); + let bg_color = visuals.code_bg_color; + let before_wrap_width = ui.available_rect_before_wrap().width(); + let mut panel_width = self.panel_min_width.max( + self.panel_max_width + .min(before_wrap_width / self.panels.len() as f32), + ); + let vertical = self.vertical || (before_wrap_width < (panel_width + 2.0) * 3.0); + let panels_width = if vertical { + panel_width = self + .panel_min_width + .max(self.panel_max_width.min(before_wrap_width - 10.0)); + panel_width + } else { + let mut width = 0.0; + let mut available_width = ui.available_rect_before_wrap().width(); + for _ in 0..self.panels.len() { + if (available_width - 2.0) < panel_width { + break; + } + available_width -= panel_width; + width += panel_width; + } + width + }; + + let indent = (before_wrap_width - panels_width) / 2.0; + + let add_contents = |ui: &mut Ui| { + let mut responce = ui.allocate_rect( + Rect::from_min_size(ui.cursor().min, [1.0, 1.0].into()), + Sense::click(), + ); + + // { + // let available_width = ui.available_width() - indent; + // let title = self.title.into_galley( + // ui, + // Some(TextWrapMode::Wrap), + // available_width, + // TextStyle::Heading, + // ); + // let text_indent = (available_width - title.size().x) / 2.0; + // let rect = ui.cursor().translate(Vec2::new(text_indent, 10.0)); + // ui.allocate_exact_size( + // title.size() + Vec2::new(text_indent, 10.0), + // Sense::focusable_noninteractive(), + // ); + // ui.painter().galley(rect.min, title, visuals.text_color()); + // } + + // ui.label(format!("before_wrap_width: {before_wrap_width}")); + // ui.label(format!("panel_width: {panel_width}")); + let _panels_res = ui.horizontal_wrapped(|ui| { + ui.spacing_mut().item_spacing = Vec2::new(1.0, 1.0); + let mut min_height = self.panel_min_height; + let mut first_row = true; + let mut row = 0; + let mut col = 0; + let mut pressed_cell = None; + let default_stroke = Stroke::new(1.0, text_color); + + for (index, panel) in self.panels.into_iter().enumerate() { + let rect = ui.available_rect_before_wrap(); + let mut row_first_item = index == 0; + if (index > 0 && vertical) || rect.width() - 2.0 < panel_width { + ui.end_row(); + row_first_item = true; + first_row = false; + row += 1; + col = 0; + } + // left separator + if !row_first_item { + let Pos2 { x, y } = ui.cursor().min; + let height = min_height * sep_ratio; + let m = (min_height - height) / 2.0; + let stroke = pressed_cell.map_or(default_stroke, |(row_, col_, stroke)| { + if row == row_ && col == col_ + 1 { + stroke + } else { + default_stroke + } + }); + ui.painter().vline(x, (y + m)..=(y + m + height), stroke); + } + + // top seperator + if !first_row { + let Pos2 { x, y } = ui.cursor().min; + let width = panel_width * sep_ratio; + let m = (panel_width - width) / 2.0; + let stroke = pressed_cell.map_or(default_stroke, |(row_, col_, stroke)| { + if row == row_ + 1 && col == col_ { + stroke + } else { + default_stroke + } + }); + ui.painter().hline((x + m)..=(x + m + width), y, stroke); + } + let (res, stroke) = + panel.render(ui, bg_color, panel_width, &mut min_height, current_value); + responce |= res; + + if let Some(stroke) = stroke { + pressed_cell = Some((row, col, stroke)); + } + + col += 1; + } + }); + + // let total_width = panels_res.response.rect.width(); + // ui.allocate_ui_with_layout( + // egui::vec2(total_width, ui.available_height()), + // Layout::top_down(Align::Center), + // |ui| { + // ui.set_width(total_width); + // (self.build_footer)(ui, current_value) + // } + // ); + + // ui.label(format!("bottom width {}", b.response.rect.width())); + // ui.label(format!("ui.min_rect().width() {}", ui.min_rect().width())); + responce + }; + + ui.indent_with_size("selection-panels", indent, Box::new(add_contents)) + .inner + // response |= ui + // .vertical_centered(|ui| (self.build_footer)(ui, current_value)) + // .response; + // ui.label(" "); + // ui.label(format!(" vertical: {vertical}")); + // ui.label(format!("panels_width {}", panels_width)); + // response + } +} diff --git a/core/src/egui/theme/color.rs b/core/src/egui/theme/color.rs index f8619c9..30f5c2b 100644 --- a/core/src/egui/theme/color.rs +++ b/core/src/egui/theme/color.rs @@ -101,8 +101,8 @@ impl ThemeColor { qr_background: Color32::from_rgba(0, 0, 0, 0), qr_foreground: Color32::WHITE, - selection_background_color: Color32::from_rgb(40, 153, 132), - selection_text_color: Color32::from_rgb(220, 220, 220), + selection_background_color: Color32::from_rgb(50, 50, 50), + selection_text_color: Color32::from_rgb(255, 255, 255), progress_color: Color32::from_rgb(71, 105, 97), transaction_incoming: Color32::from_rgb(162, 245, 187), diff --git a/core/src/egui/theme/mod.rs b/core/src/egui/theme/mod.rs index a56fe7f..b41340b 100644 --- a/core/src/egui/theme/mod.rs +++ b/core/src/egui/theme/mod.rs @@ -8,12 +8,12 @@ pub use style::*; use crate::imports::*; #[derive(Clone)] -pub struct Theme { +pub struct AppTheme { pub color: ThemeColor, pub style: ThemeStyle, } -impl Theme { +impl AppTheme { pub fn new(color: ThemeColor, style: ThemeStyle) -> Self { Self { color, style } } @@ -29,7 +29,7 @@ impl Theme { } } -impl Default for Theme { +impl Default for AppTheme { fn default() -> Self { Self { color: ThemeColor::dark(), @@ -38,8 +38,8 @@ impl Default for Theme { } } -impl From<&Theme> for Visuals { - fn from(theme: &Theme) -> Self { +impl From<&AppTheme> for Visuals { + fn from(theme: &AppTheme) -> Self { let mut visuals = if theme.color.dark_mode { Visuals::dark() } else { @@ -62,16 +62,16 @@ impl From<&Theme> for Visuals { } } -impl AsRef for Theme { +impl AsRef for AppTheme { fn as_ref(&self) -> &Self { self } } -static mut THEME: Option = None; +static mut THEME: Option = None; #[inline(always)] -pub fn theme() -> &'static Theme { - unsafe { THEME.get_or_insert_with(Theme::default) } +pub fn theme() -> &'static AppTheme { + unsafe { THEME.get_or_insert_with(AppTheme::default) } } #[inline(always)] @@ -107,7 +107,7 @@ pub fn apply_theme_by_name( ThemeStyle::default() }); - apply_theme(ctx, Theme::new(theme_color, theme_style)); + apply_theme(ctx, AppTheme::new(theme_color, theme_style)); } pub fn apply_theme_color_by_name(ctx: &Context, theme_color_name: impl Into) { @@ -120,7 +120,7 @@ pub fn apply_theme_color_by_name(ctx: &Context, theme_color_name: impl Into) { @@ -133,10 +133,10 @@ pub fn apply_theme_style_by_name(ctx: &Context, theme_style_name: impl Into>, + }, Error(Box), WalletList { wallet_list: Arc>, @@ -42,6 +45,9 @@ pub enum Events { Notify { user_notification: UserNotification, }, + NodeInfo { + node_info: Option>, + }, Close, Exit, } diff --git a/core/src/fonts.rs b/core/src/fonts.rs index 570105b..8a9a494 100644 --- a/core/src/fonts.rs +++ b/core/src/fonts.rs @@ -17,11 +17,29 @@ impl RegisterStaticFont for FontDefinitions { } } +use egui_phosphor::Variant; +pub fn add_to_fonts(fonts: &mut egui::FontDefinitions, variant: Variant) { + fonts + .font_data + .insert("phosphor".into(), variant.font_data()); + + if let Some(font_keys) = fonts.families.get_mut(&egui::FontFamily::Proportional) { + // font_keys.insert(0, "phosphor".into()); + font_keys.push("phosphor".into()); + } + + fonts + .families + .entry(egui::FontFamily::Name("phosphor".into())) + .or_default() + .insert(0, "phosphor".to_owned()); +} + pub fn init_fonts(cc: &eframe::CreationContext<'_>) { let mut fonts = FontDefinitions::default(); - egui_phosphor::add_to_fonts(&mut fonts, egui_phosphor::Variant::Bold); - egui_phosphor::add_to_fonts(&mut fonts, egui_phosphor::Variant::Regular); - egui_phosphor::add_to_fonts(&mut fonts, egui_phosphor::Variant::Light); + // add_to_fonts(&mut fonts, egui_phosphor::Variant::Bold); + // add_to_fonts(&mut fonts, egui_phosphor::Variant::Regular); + add_to_fonts(&mut fonts, egui_phosphor::Variant::Light); // --- diff --git a/core/src/frame.rs b/core/src/frame.rs index 5a558fd..6ca991e 100644 --- a/core/src/frame.rs +++ b/core/src/frame.rs @@ -70,7 +70,7 @@ pub fn window_frame( }; // .shrink(4.0); // .shrink2(vec2(8.0,4.0)); - let mut content_ui = ui.child_ui(content_rect, *ui.layout()); + let mut content_ui = ui.child_ui(content_rect, *ui.layout(), None); add_contents(&mut content_ui); // panel_frame.show(ui); @@ -86,7 +86,7 @@ pub fn window_frame( CentralPanel::default().frame(panel_frame).show(ctx, |ui| { let app_rect = ui.max_rect(); - let mut content_ui = ui.child_ui(app_rect, *ui.layout()); + let mut content_ui = ui.child_ui(app_rect, *ui.layout(), None); add_contents(&mut content_ui); }); } @@ -179,7 +179,7 @@ fn close_maximize_minimize(ui: &mut egui::Ui, is_fullscreen: bool, is_maximized: .add(Button::new( RichText::new(ARROWS_IN.to_string()).size(button_height), )) - .on_hover_text("Exit Full Screen"); + .on_hover_text(i18n("Exit Full Screen")); if fullscreen_response.clicked() { ui.ctx() .send_viewport_cmd(ViewportCommand::Fullscreen(false)); @@ -191,7 +191,7 @@ fn close_maximize_minimize(ui: &mut egui::Ui, is_fullscreen: bool, is_maximized: RichText::new(ARROWS_OUT.to_string()).size(button_height), )) // .add(Button::new(RichText::new(ARROWS_OUT.to_string()).size(button_height))) - .on_hover_text("Full Screen"); + .on_hover_text(i18n("Full Screen")); if fullscreen_response.clicked() { ui.ctx() .send_viewport_cmd(ViewportCommand::Fullscreen(true)); @@ -209,7 +209,7 @@ fn close_maximize_minimize(ui: &mut egui::Ui, is_fullscreen: bool, is_maximized: .add(Button::new( RichText::new(RECTANGLE.to_string()).size(button_height), )) - .on_hover_text("Restore window"); + .on_hover_text(i18n("Restore window")); if maximized_response.clicked() { ui.ctx() .send_viewport_cmd(ViewportCommand::Maximized(false)); @@ -221,7 +221,7 @@ fn close_maximize_minimize(ui: &mut egui::Ui, is_fullscreen: bool, is_maximized: RichText::new(SQUARE.to_string()).size(button_height), )) // .add(Button::new(RichText::new(ARROWS_OUT.to_string()).size(button_height))) - .on_hover_text("Maximize window"); + .on_hover_text(i18n("Maximize window")); if maximized_response.clicked() { ui.ctx().send_viewport_cmd(ViewportCommand::Maximized(true)); } @@ -234,7 +234,7 @@ fn close_maximize_minimize(ui: &mut egui::Ui, is_fullscreen: bool, is_maximized: .add(Button::new(RichText::new("🗕").size(button_height))) // .add(Button::new(RichText::new(ARROW_SQUARE_DOWN.to_string()).size(button_height))) // .add(Button::new(RichText::new(ARROW_LINE_DOWN.to_string()).size(button_height))) - .on_hover_text("Minimize the window"); + .on_hover_text(i18n("Minimize the window")); if minimized_response.clicked() { ui.ctx().send_viewport_cmd(ViewportCommand::Minimized(true)); } diff --git a/core/src/imports.rs b/core/src/imports.rs index 4bd303d..9af298a 100644 --- a/core/src/imports.rs +++ b/core/src/imports.rs @@ -5,6 +5,7 @@ pub use kaspa_consensus_core::network::{NetworkId, NetworkType}; pub use kaspa_consensus_core::Hash as KaspaHash; pub use kaspa_metrics_core::MetricsSnapshot; pub use kaspa_rpc_core::api::rpc::RpcApi; +pub use kaspa_rpc_core::{RpcFeeEstimate, RpcFeerateBucket}; pub use kaspa_utils::hex::{FromHex, ToHex}; pub use kaspa_utils::{hashmap::GroupExtension, networking::ContextualNetAddress}; pub use kaspa_wallet_core::prelude::{ @@ -42,11 +43,13 @@ pub use workflow_core::channel::{oneshot, Channel, Receiver, Sender}; pub use workflow_core::enums::Describe; pub use workflow_core::extensions::is_not_empty::*; pub use workflow_core::task; +pub use workflow_core::task::{sleep, yield_executor}; pub use workflow_core::time::{unixtime_as_millis_f64, Instant}; pub use workflow_dom::utils::*; pub use workflow_http as http; -pub use workflow_i18n::*; -pub use workflow_log::*; +pub use workflow_i18n::i18n_args; +pub use workflow_i18n::prelude::*; +pub use workflow_log::prelude::*; pub use ahash::{AHashMap, AHashSet}; pub use pad::{Alignment, PadStr}; @@ -63,6 +66,9 @@ pub use egui_plot::{PlotPoint, PlotPoints}; pub use crate::collection::Collection; pub use crate::core::Core; +pub use crate::core::MAINNET_EXPLORER; +pub use crate::core::TESTNET10_EXPLORER; +pub use crate::core::TESTNET11_EXPLORER; pub use crate::device::{Device, Orientation}; pub use crate::egui::*; pub use crate::error::Error; @@ -73,6 +79,7 @@ pub use crate::market::MarketData; pub use crate::menu::Menu; pub use crate::modules; pub use crate::modules::{Module, ModuleCaps, ModuleStyle, ModuleT}; +pub use crate::network::BASIC_TRANSACTION_MASS; pub use crate::network::{Network, NetworkPressure}; pub use crate::notifications::{Notifications, UserNotification, UserNotifyKind}; pub use crate::primitives::{ @@ -81,10 +88,10 @@ pub use crate::primitives::{ }; pub use crate::result::Result; pub use crate::runtime::{runtime, spawn, spawn_with_result, Payload, Runtime, Service}; -pub use crate::servers::{load_public_servers, public_servers, Server}; pub use crate::settings::{ - KaspadNodeKind, NetworkInterfaceConfig, NetworkInterfaceKind, NodeConnectionConfigKind, - NodeMemoryScale, NodeSettings, RpcConfig, RpcOptions, Settings, UserInterfaceSettings, + EstimatorMode, EstimatorSettings, KaspadNodeKind, NetworkInterfaceConfig, NetworkInterfaceKind, + NodeConnectionConfigKind, NodeMemoryScale, NodeSettings, RpcConfig, RpcOptions, Settings, + UserInterfaceSettings, }; pub use crate::state::State; pub use crate::status::Status; diff --git a/core/src/interop/adaptor.rs b/core/src/interop/adaptor.rs index 6dc4991..78b1d44 100644 --- a/core/src/interop/adaptor.rs +++ b/core/src/interop/adaptor.rs @@ -53,7 +53,10 @@ impl Adaptor { log_info!("Adaptor::init()"); let res = self .sender - .send_message(Target::Adaptor, ServerAction::PendingRequests.try_to_vec()?) + .send_message( + Target::Adaptor, + borsh::to_vec(&ServerAction::PendingRequests)?, + ) .await?; // log_info!("Adaptor:init res: {res:?}"); if !res.is_empty() { @@ -72,7 +75,7 @@ impl Adaptor { .sender .send_message( Target::Adaptor, - ServerAction::Response(sender_id, id, data).try_to_vec()?, + borsh::to_vec(&ServerAction::Response(sender_id, id, data))?, ) .await; if res.is_ok() { @@ -118,7 +121,7 @@ impl Adaptor { response: "xyz".into(), }; self.response - .try_send(response.try_to_vec().unwrap()) + .try_send(borsh::to_vec(&response).unwrap()) .unwrap(); // clear the action @@ -144,7 +147,7 @@ impl Adaptor { address: account.receive_address().to_string(), }; self.response - .try_send(response.try_to_vec().unwrap()) + .try_send(borsh::to_vec(&response).unwrap()) .unwrap(); self.clear(); } diff --git a/core/src/interop/transport.rs b/core/src/interop/transport.rs index cbb386e..b0e7ed5 100644 --- a/core/src/interop/transport.rs +++ b/core/src/interop/transport.rs @@ -4,6 +4,7 @@ use kaspa_wallet_core::result::Result; #[repr(u8)] #[derive(Debug, BorshSerialize, BorshDeserialize)] +#[borsh(use_discriminant = true)] pub enum Target { Wallet = 0, Runtime = 1, diff --git a/core/src/lib.rs b/core/src/lib.rs index 689dd0e..0cc494f 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -25,7 +25,6 @@ pub mod notifications; pub mod primitives; pub mod result; pub mod runtime; -pub mod servers; pub mod settings; pub mod state; pub mod status; diff --git a/core/src/modules/account_create.rs b/core/src/modules/account_create.rs index acd423a..dd77625 100644 --- a/core/src/modules/account_create.rs +++ b/core/src/modules/account_create.rs @@ -1,4 +1,8 @@ +use modules::wallet_create::WalletCreate; + use crate::imports::*; +use kaspa_wallet_core::storage::AssocPrvKeyDataIds; +use kaspa_wallet_core::deterministic::bip32::BIP32_ACCOUNT_KIND; #[derive(Clone)] pub enum CreateAccountKind { @@ -15,12 +19,18 @@ pub enum CreateAccountKind { #[derive(Clone)] pub enum State { Start, + KeySelection, + StartImport, + ImportMnemonic, + ImportMnemonicWithEditor, PrivateKeyCreate, PrivateKeyConfirm, AccountName, WalletSecret, PaymentSecret, - CreateAccount, + AddAccount, + //CreateAccount, + //ImportAccount, AccountError(Arc), PresentMnemonic(Arc), ConfirmMnemonic(Arc), @@ -50,6 +60,7 @@ enum Focus { AccountName, WalletSecret, PaymentSecret, + WalletMnemonic, } #[derive(Clone, Default)] @@ -63,6 +74,21 @@ struct Context { wallet_secret : String, payment_secret: String, // payment_secret_confirm: String, + word_count: WordCount, + import_mnemonic: bool, + import_legacy: bool, + import_with_bip39_passphrase: bool, + import_private_key_mnemonic: String, + prv_keys: Vec>, +} + +impl Zeroize for Context { + fn zeroize(&mut self) { + self.account_name.zeroize(); + self.wallet_secret.zeroize(); + self.payment_secret.zeroize(); + self.import_private_key_mnemonic.zeroize(); + } } pub struct AccountCreate { @@ -103,28 +129,81 @@ impl ModuleT for AccountCreate { ) { match self.state.clone() { State::Start => { + { + let account_list = core.account_collection().iter(); + let mut prv_keys = HashMap::new(); + if let Some(prv_key_data_map) = core.prv_key_data_map.clone(){ + account_list + .flat_map(|a|a.iter()) + .for_each(|account|{ + if account.account_kind() != &BIP32_ACCOUNT_KIND { + return; + } + if let AssocPrvKeyDataIds::Single(key_id) = account.descriptor().prv_key_data_ids { + if let Some(prv_key) = prv_key_data_map.get(&key_id){ + prv_keys.insert(*prv_key.id(), prv_key.clone()); + } + } + }); + } + self.context.prv_keys = prv_keys.into_values().collect(); + } + + Panel::new(self) + .with_caption("Add Account") + .with_back_enabled(core.has_stack(), |this| { + this.context.zeroize(); + core.back(); + }) + .with_close_enabled(false, |_|{ }) + .with_header(|_ctx,ui| { + // ui.add_space(64.); + ui.label(i18n("Add a new account by importing a mnemonic")); + ui.label(i18n("or by deriving an already imported BIP-44 private key.")); + ui.label(" "); + }) + .with_body(|this,ui|{ + let no_keys = this.context.prv_keys.is_empty(); + if ui.large_button_enabled(!no_keys, i18n("Create Account")).clicked(){ + this.state = State::KeySelection; + } + ui.label(i18n("Derive a private key to create a new account.")); + if no_keys { + ui.label(i18n("No BIP-44 private keys found")); + } + + ui.add(ui.create_separator(Some(32.0), 0.5, Some(true))); - let prv_key_data_map = core.prv_key_data_map.clone(); + if ui.large_button(i18n("Import Account")).clicked(){ + this.state = State::StartImport; + } + ui.label(i18n("Create an account by importing a private key.")); + + }) + .render(ui); + } + State::KeySelection => { + self.context.import_mnemonic = false; Panel::new(self) .with_caption("Create Account") - .with_back_enabled(core.has_stack(), |_this| { - core.back(); + .with_back_enabled(core.has_stack(), |this| { + this.state = State::Start; }) .with_close_enabled(false, |_|{ }) .with_header(|_ctx,ui| { // ui.add_space(64.); - ui.label(i18n("Please select an account type")); + ui.label(i18n("Please select private key")); ui.label(" "); }) .with_body(|this,ui|{ let margin = ui.available_width() * 0.5; - if let Some(prv_key_data_map) = prv_key_data_map { + if !this.context.prv_keys.is_empty() { - for (_, prv_key_data_info) in prv_key_data_map.into_iter() { + for prv_key_data_info in &this.context.prv_keys{ ui.add(Separator::default().horizontal().shrink(margin)); ui.add_space(16.); ui.label(format!("Private Key: {}", prv_key_data_info.name_or_id())); @@ -152,12 +231,63 @@ impl ModuleT for AccountCreate { }) .render(ui); } + State::StartImport => { + self.context.import_mnemonic = true; + self.context.import_private_key_mnemonic.zeroize(); + self.context.wallet_secret.zeroize(); + self.context.payment_secret.zeroize(); + self.context.prv_key_data_info = None; + + let submit = WalletCreate::import_selection::( + &mut self.state, + &mut self.context.word_count, + &mut self.context.import_legacy, + &mut self.context.import_with_bip39_passphrase, + ui, + Some(|state: &mut State|{ + *state = State::Start; + } + )); + if submit { + self.state = State::ImportMnemonic; + } + } + + State::ImportMnemonic => { + self.state = State::ImportMnemonicWithEditor; + self.focus.next(Focus::WalletMnemonic); + } + + State::ImportMnemonicWithEditor => { + let proceed = WalletCreate::import_mnemonic::( + &mut self.state, + &mut self.context.import_private_key_mnemonic, + &self.context.word_count, + &mut self.focus, + Focus::WalletMnemonic, + ui, + |m| { + *m = State::StartImport; + } + ); + + if proceed { + self.state = State::AccountName; + self.focus.clear(); + } + + } + State::AccountName => { Panel::new(self) .with_caption(i18n("Account Name")) .with_back(|this| { - this.state = State::Start; + if this.context.import_mnemonic{ + this.state = State::StartImport; + }else{ + this.state = State::Start; + } }) .with_close_enabled(false, |_|{ }) @@ -235,11 +365,11 @@ impl ModuleT for AccountCreate { .render(ui); if *submit.borrow() { - if self.context.prv_key_data_info.as_ref().map(|info| info.requires_bip39_passphrase()).unwrap_or(false) { + if self.context.import_with_bip39_passphrase || self.context.prv_key_data_info.as_ref().map(|info| info.requires_bip39_passphrase()).unwrap_or(false) { self.state = State::PaymentSecret; self.focus.next(Focus::PaymentSecret); } else { - self.state = State::CreateAccount; + self.state = State::AddAccount; } } } @@ -268,7 +398,7 @@ impl ModuleT for AccountCreate { }, ).submit(|text,focus| { if !text.is_empty() { - this.state = State::CreateAccount; + this.state = State::AddAccount; focus.clear() } }) @@ -277,7 +407,7 @@ impl ModuleT for AccountCreate { .with_footer(|this,ui| { let enabled = !this.context.payment_secret.is_empty(); if ui.large_button_enabled(enabled,i18n("Continue")).clicked() { - this.state = State::CreateAccount; + this.state = State::AddAccount; } }) .render(ui); @@ -289,19 +419,20 @@ impl ModuleT for AccountCreate { State::PrivateKeyConfirm => { } - State::CreateAccount => { + State::AddAccount => { + let caption = if self.context.import_mnemonic {i18n("Importing Account")}else{i18n("Creating Account")}; Panel::new(self) - .with_caption(i18n("Creating Account")) - .with_header(|_, ui|{ - ui.label(" "); - ui.label(i18n("Please wait...")); - ui.label(" "); - ui.label(" "); - ui.add_space(64.); - ui.add(egui::Spinner::new().size(92.)); - }) - .render(ui); + .with_caption(caption) + .with_header(|_, ui|{ + ui.label(" "); + ui.label(i18n("Please wait...")); + ui.label(" "); + ui.label(" "); + ui.add_space(64.); + ui.add(egui::Spinner::new().size(92.)); + }) + .render(ui); let args = self.context.clone(); self.context = Default::default(); @@ -311,20 +442,36 @@ impl ModuleT for AccountCreate { let wallet = self.runtime.wallet().clone(); spawn_with_result(&account_create_result, async move { - + sleep(Duration::from_secs(2)).await; let account_name = args.account_name.trim(); - let account_name = (!account_name.is_empty()).then_some(account_name.to_string()); + let account_name = account_name.is_not_empty().then_some(account_name.to_string()); let wallet_secret = Secret::from(args.wallet_secret); - let payment_secret = args.prv_key_data_info.as_ref().and_then(|secret| { - secret.requires_bip39_passphrase().then_some(Secret::from(args.payment_secret)) - }); - - let prv_key_data_id = *args.prv_key_data_info.as_ref().unwrap().id(); - - let prv_key_data_args = PrvKeyDataArgs { prv_key_data_id, payment_secret }; - let account_args = AccountCreateArgsBip32 { account_name, account_index: None }; - let account_create_args = AccountCreateArgs::Bip32 { prv_key_data_args, account_args }; + let payment_secret; + + let prv_key_data_id = if args.import_mnemonic { + let requires_bip39_passphrase = !args.import_legacy && args.import_with_bip39_passphrase; + payment_secret = requires_bip39_passphrase.then_some(Secret::from(args.payment_secret.as_str())); + let mnemonic = Secret::from(sanitize_mnemonic(args.import_private_key_mnemonic.as_str())); + let key_data_name = None; + let prv_key_data_args = PrvKeyDataCreateArgs::new( + key_data_name, + payment_secret.clone(), + mnemonic, + ); + wallet.clone().prv_key_data_create(wallet_secret.clone(), prv_key_data_args).await? + }else{ + payment_secret = args.prv_key_data_info.as_ref().and_then(|key| { + key.requires_bip39_passphrase().then_some(Secret::from(args.payment_secret)) + }); + *args.prv_key_data_info.as_ref().unwrap().id() + }; + + let account_create_args = if args.import_legacy { + AccountCreateArgs::new_legacy(prv_key_data_id, account_name) + }else{ + AccountCreateArgs::new_bip32(prv_key_data_id, payment_secret, account_name, None) + }; let account_descriptor = wallet.accounts_create(wallet_secret, account_create_args).await?; Ok(account_descriptor) }); @@ -338,7 +485,12 @@ impl ModuleT for AccountCreate { self.state = State::Start; } Err(err) => { - println!("Account creation error: {}", err); + if self.context.import_mnemonic{ + log_info!("Account import error: {}", err); + }else{ + log_info!("Account creation error: {}", err); + } + self.state = State::AccountError(Arc::new(err)); } } @@ -355,7 +507,11 @@ impl ModuleT for AccountCreate { ui.label(RichText::new(err.to_string()).color(egui::Color32::from_rgb(255, 120, 120))); if ui.large_button(i18n("Restart")).clicked() { - this.state = State::Start; + if this.context.import_mnemonic{ + this.state = State::StartImport; + }else{ + this.state = State::Start; + } } }) .render(ui); diff --git a/core/src/modules/account_manager/balance.rs b/core/src/modules/account_manager/balance.rs index 4dc7bb5..eda0b59 100644 --- a/core/src/modules/account_manager/balance.rs +++ b/core/src/modules/account_manager/balance.rs @@ -53,21 +53,21 @@ impl<'context> BalancePane<'context> { } if balance.pending != 0 { - ui.label(format!( - "Pending: {}", - sompi_to_kaspa_string_with_suffix( + ui.label(i18n_args( + "Pending: {amount}", + &[("amount", &sompi_to_kaspa_string_with_suffix( balance.pending, network_type - ) + ))] )); } if balance.outgoing != 0 { - ui.label(format!( - "Sending: {}", - sompi_to_kaspa_string_with_suffix( + ui.label(i18n_args( + "Sending: {amount}", + &[("amount", &sompi_to_kaspa_string_with_suffix( balance.outgoing, network_type - ) + ))] )); } diff --git a/core/src/modules/account_manager/destination.rs b/core/src/modules/account_manager/destination.rs index 387da0d..6431ed1 100644 --- a/core/src/modules/account_manager/destination.rs +++ b/core/src/modules/account_manager/destination.rs @@ -20,7 +20,7 @@ impl<'context> Destination<'context> { Focus::Address, |ui, text| { ui.add_space(8.); - ui.label(RichText::new("Enter destination address").size(12.).raised()); + ui.label(RichText::new(i18n("Enter destination address")).size(12.).raised()); ui.add_sized(Overview::editor_size(ui), TextEdit::singleline(text) .vertical_align(Align::Center)) }, @@ -50,10 +50,10 @@ impl<'context> Destination<'context> { AddressStatus::Valid => {}, AddressStatus::None => {}, AddressStatus::NetworkMismatch(address_network_type) => { - ui.label(format!("This address if for the different\nnetwork ({address_network_type})")); + ui.label(i18n_args("This address if for the different network ({address_network_type})", &[("address_network_type", address_network_type.to_string())])); }, AddressStatus::Invalid(err) => { - ui.label(format!("Please enter a valid address\n{err}")); + ui.label(i18n_args("Please enter a valid address: {err}", &[("err", err)])); } } diff --git a/core/src/modules/account_manager/details.rs b/core/src/modules/account_manager/details.rs index 43122fd..03bbab6 100644 --- a/core/src/modules/account_manager/details.rs +++ b/core/src/modules/account_manager/details.rs @@ -16,16 +16,16 @@ impl Details { let descriptor = account.descriptor(); - descriptor.render(ui); + descriptor.render(ui, account.network()); ui.add_space(8.); let mut address_kind : Option = None; ui.horizontal(|ui|{ - if ui.medium_button("Generate New Receive Address").clicked() { + if ui.medium_button(i18n("Generate New Receive Address")).clicked() { address_kind = Some(NewAddressKind::Receive); } - if ui.medium_button("Generate New Change Address").clicked() { + if ui.medium_button(i18n("Generate New Change Address")).clicked() { address_kind = Some(NewAddressKind::Change); } }); @@ -37,7 +37,7 @@ impl Details { .wallet() .accounts_create_new_address(account_id, address_kind) .await - .map_err(|err|Error::custom(format!("Failed to create new address\n{err}")))?; + .map_err(|err|Error::custom(i18n_args("Failed to create new address: {err}",&[("err",err.to_string())])))?; runtime().request_repaint(); diff --git a/core/src/modules/account_manager/estimator.rs b/core/src/modules/account_manager/estimator.rs index fda8113..c271da7 100644 --- a/core/src/modules/account_manager/estimator.rs +++ b/core/src/modules/account_manager/estimator.rs @@ -16,6 +16,10 @@ impl<'context> Estimator<'context> { use egui_phosphor::light::{CHECK, X}; let RenderContext { network_type, .. } = rc; + let network_id = NetworkId::from(core.network()); + let network_type = *network_type; + let network_pressure = core.network_pressure.capacity(); + let network_below_capacity = core.network_pressure.below_capacity(); let mut request_send = false; let mut request_estimate = self.context.request_estimate.take().unwrap_or_default(); @@ -23,21 +27,35 @@ impl<'context> Estimator<'context> { match self.context.transaction_kind.as_ref().unwrap() { TransactionKind::Send => { Destination::new(self.context).render(core, ui, rc); - // self.render_address_input(core, ui, rc); } TransactionKind::Transfer => { Transfer::new(self.context).render(core, ui, rc); - // self.render_transfer_account_selector(core, ui, rc); } } + let (ready_to_send, actual_estimate, error) = match &*self.context.estimate.lock().unwrap() { + EstimatorStatus::GeneratorSummary(actual_estimate) => { + let ready_to_send = self.context.address_status == AddressStatus::Valid || (self.context.transaction_kind == Some(TransactionKind::Transfer) && self.context.transfer_to_account.is_some()); + (ready_to_send, actual_estimate.clone(), None) + } + EstimatorStatus::Error(error) => { + // ui.label(RichText::new(error.to_string()).color(theme_color().error_color)); + (false, GeneratorSummary::new(network_id),Some(RichText::new(error.to_string()).color(theme_color().error_color))) + } + EstimatorStatus::None => { + let err = i18n_args("Please enter {suffix} amount to send", &[("suffix", kaspa_suffix(&network_type))]); + (false, GeneratorSummary::new(network_id),Some(RichText::new(err).color(theme_color().error_color))) + } + }; + + let response = TextEditor::new( &mut self.context.send_amount_text, &mut self.context.focus, Focus::Amount, |ui, text| { ui.add_space(8.); - ui.label(RichText::new(format!("{} {} {}", i18n("Enter"), kaspa_suffix(network_type), i18n("amount to send"))).size(12.).raised()); + ui.label(RichText::new(i18n_args("Enter {suffix} amount to send", &[("suffix", kaspa_suffix(&network_type))])).size(12.).raised()); ui.add_sized(Overview::editor_size(ui), TextEdit::singleline(text) .vertical_align(Align::Center)) }, @@ -48,85 +66,153 @@ impl<'context> Estimator<'context> { .build(ui); if response.text_edit_submit(ui) { - if self.context.enable_priority_fees { - self.context.focus.next(Focus::Fees); - } else if self.update_user_args() { - request_send = true; - } + self.context.focus.next(Focus::Fees); } - // TODO - improve the logic - if core.network_pressure.is_high() { - ui.label(format!("{}: {}% {} {} {:0.3} {} {}", - i18n("The network is currently experiencing high load"), - core.network_pressure.capacity(), - i18n("of its capacity."), - i18n("It is recommended that you add a priority fee of at least"), - 0.001, - kaspa_suffix(network_type), - i18n("to ensure faster transaction acceptance."), - )); - } + // ui.add_space(8.); - ui.add_space(8.); - if ui - .checkbox(&mut self.context.enable_priority_fees,i18n("Include QoS Priority Fees")) - // .on_hover_text_at_pointer(i18n("Add priority fees to ensure faster confirmation.\nUseful only if the network is congested.")) - .changed() { - if self.context.enable_priority_fees { - self.context.focus.next(Focus::Fees); - } else { - self.context.focus.next(Focus::Amount); - } - } + TextEditor::new( + &mut self.context.priority_fees_text, + &mut self.context.focus, + Focus::Fees, + |ui, text| { + ui.add_space(8.); + ui.label(RichText::new(i18n("Enter priority fees")).size(12.).raised()); + ui.add_sized(Overview::editor_size(ui), TextEdit::singleline(text) + .vertical_align(Align::Center)) + }, + ) + .change(|_| { + request_estimate = true; + }) + .submit(|_,_|{ + request_send = true; + }) + .build(ui); - if self.context.enable_priority_fees { - TextEditor::new( - &mut self.context.priority_fees_text, - &mut self.context.focus, - Focus::Fees, - |ui, text| { - ui.add_space(8.); - ui.label(RichText::new("Enter priority fees").size(12.).raised()); - ui.add_sized(Overview::editor_size(ui), TextEdit::singleline(text) - .vertical_align(Align::Center)) - }, - ) - .change(|_| { - request_estimate = true; - }) - .submit(|_,_|{ - request_send = true; + core.apply_default_style(ui); + + // let (ready_to_send, actual_estimate) = match &*self.context.estimate.lock().unwrap() { + // EstimatorStatus::GeneratorSummary(actual_estimate) => { + // let ready_to_send = self.context.address_status == AddressStatus::Valid || (self.context.transaction_kind == Some(TransactionKind::Transfer) && self.context.transfer_to_account.is_some()); + // (ready_to_send, actual_estimate.clone()) + // } + // EstimatorStatus::Error(error) => { + // ui.label(RichText::new(error.to_string()).color(theme_color().error_color)); + // (false, GeneratorSummary::new(network_id)) + // } + // EstimatorStatus::None => { + // ui.label(i18n_args("Please enter {suffix} amount to send", &[("suffix", kaspa_suffix(&network_type))])); + // (false, GeneratorSummary::new(network_id)) + // } + // }; + + + let usd_rate = if core.settings.market_monitor { + core.market.as_ref().and_then(|market| { + market.price.as_ref().and_then(|price_list| { + price_list.get("usd").map(|market_data| market_data.price) + }) }) - .build(ui); - } + } else { None }; + + let aggregate_mass = actual_estimate.aggregate_mass; + let number_of_generated_stages = actual_estimate.number_of_generated_stages; + + let buckets = if let Some(fees) = core.feerate.as_ref() { + if network_below_capacity && core.settings.estimator.mode == EstimatorMode::NetworkPressure { + [ + Some(FeeMode::Low(FeerateBucket::new(1.0,5.0))), + Some(FeeMode::Economic(fees.low.value().with_seconds(3.0))), + Some(FeeMode::Priority(fees.economic.value().with_seconds(1.0))) + ] + } else { + [Some(FeeMode::Low(fees.low.value())), Some(FeeMode::Economic(fees.economic.value())), Some(FeeMode::Priority(fees.priority.value()))] + } + } else { [None, None, None] }; ui.add_space(8.); - let ready_to_send = match &*self.context.estimate.lock().unwrap() { - EstimatorStatus::GeneratorSummary(estimate) => { - if let Some(final_transaction_amount) = estimate.final_transaction_amount { - ui.label(format!("{} {}",i18n("Final Amount:"), sompi_to_kaspa_string_with_suffix(final_transaction_amount + estimate.aggregated_fees, network_type))); - } - let fee_title = if self.context.priority_fees_sompi != 0 { - i18n("Network and Priority Fees:") + ui.heading(i18n("Priority Fee Estimator")); + + let is_send_amount_zero = self.context.send_amount_sompi == 0; + + let mut fee_selection = SelectionPanels::new( + 120.0, + 150.0); + let fee_mode = self.context.fee_mode; + for mode in buckets.into_iter().flatten() { + let bucket = mode.bucket(); + let feerate = bucket.feerate; + let seconds = bucket.seconds.max(1.0) * number_of_generated_stages as f64; + let seconds = if is_send_amount_zero || error.is_some() { "---".to_string() } else { format_duration_estimate_i18n(seconds) }; + let total_kas = feerate * aggregate_mass as f64 * 1e-8; + let total_sompi = (feerate * aggregate_mass as f64) as u64; + let total_usd = usd_rate.map(|rate| total_kas * rate); + fee_selection = fee_selection.add_icon_less(mode, i18n(mode.to_string().as_str()), seconds, move |ui| { + // icon + let icon = if mode == fee_mode { + RichText::new(egui_phosphor::bold::CHECK).strong() } else { - i18n("Network Fees:") + RichText::new(egui_phosphor::bold::DOT_OUTLINE).strong() }; - ui.label(format!("{} {}", fee_title, sompi_to_kaspa_string_with_suffix(estimate.aggregated_fees, network_type))); - ui.label(format!("{} {} {} {}",i18n("Transactions:"), estimate.number_of_generated_transactions, i18n("UTXOs:"), estimate.aggregated_utxos)); + ui.label(icon); - self.context.address_status == AddressStatus::Valid || (self.context.transaction_kind == Some(TransactionKind::Transfer) && self.context.transfer_to_account.is_some()) - } - EstimatorStatus::Error(error) => { - ui.label(RichText::new(error.to_string()).color(theme_color().error_color)); - false - } - EstimatorStatus::None => { - ui.label(format!("{} {} {}", i18n("Please enter"), kaspa_suffix(network_type), i18n("amount to send"))); - false + ui.label(RichText::new(sompi_to_kaspa_string_with_suffix(total_sompi, &network_type)).strong()); + if let Some(usd) = total_usd { + let usd = format_currency(usd, 6); + ui.label(RichText::new(format!("~{} USD", usd)).strong()); + } + ui.label(format!("{} SOMPI/g", format_with_precision(feerate))); + }); + } + + if fee_selection.render(ui, &mut self.context.fee_mode).clicked() { + let bucket = self.context.fee_mode.bucket(); + // let priority_feerate = (bucket.feerate - 1.0).max(0.0); + // let priority_feerate = bucket.feerate; + // let total_fees_sompi = (priority_feerate * actual_estimate.aggregate_mass as f64) as u64; + let total_fees_sompi = (bucket.feerate * actual_estimate.aggregate_mass as f64) as u64; + // runtime().toast(UserNotification::success(format!("selection: {:?}", self.context.fee_mode)).short()); + let total_fee_kaspa = sompi_to_kaspa(total_fees_sompi); + self.context.priority_fees_text = format!("{}", total_fee_kaspa); + self.context.fee_mode = FeeMode::None; + request_estimate = true; + } + + + ui.vertical_centered(|ui| { + + ui.label(format!("{} • {} • {} • {}", + i18n_args("Transactions: {number}",&[("number", actual_estimate.number_of_generated_transactions.to_string())]), + i18n_args("UTXOs: {number}", &[("number", actual_estimate.aggregated_utxos.to_string())]), + i18n_args("Mass: {number}g", &[("number", actual_estimate.aggregate_mass.to_string())]), + i18n_args("Network Pressure: ~{number}%", &[("number", network_pressure.to_string())]), + )); + + ui.add_space(8.); + + if let Some(final_transaction_amount) = actual_estimate.final_transaction_amount { + ui.heading(RichText::new( + i18n_args("Final Amount: {amount}", + &[("amount",sompi_to_kaspa_string_with_suffix(final_transaction_amount + actual_estimate.aggregate_fees, &network_type))] + )).strong()); } - }; - ui.add_space(8.); + + }); + + if let Some(error) = error { + ui.label(error); + ui.add_space(16.); + } else if !network_below_capacity && self.context.priority_fees_sompi == 0 && self.context.send_amount_sompi != 0 { + ui.add_space(16.); + ui.label(RichText::new(i18n("The network is currently congested."))); + ui.label(RichText::new(i18n("Sending funds without priority fees will result in long transaction wait times."))); + ui.add_space(16.); + } else { + ui.add_space(16.); + } + + core.apply_mobile_style(ui); if request_send { if ready_to_send { @@ -154,6 +240,8 @@ impl<'context> Estimator<'context> { }); + ui.add_space(16.); + self.update_user_args() && request_estimate && matches!(self.context.action,Action::Estimating) @@ -199,4 +287,20 @@ impl<'context> Estimator<'context> { *self.context.estimate.lock().unwrap() = EstimatorStatus::Error(error.into()); } +} + + +fn format_duration_estimate_i18n(seconds: f64) -> String { + let minutes = (seconds / 60.0) as u64; + let seconds = seconds as u64; + + if seconds == 1 { + i18n_args("< {seconds} second", &[("seconds", seconds.to_string())]) + } else if seconds < 60 { + i18n_args("< {seconds} seconds", &[("seconds", seconds.to_string())]) + } else if minutes == 1 { + i18n_args("< {minutes} minute", &[("minutes", minutes.to_string())]) + } else { + i18n_args("< {minutes} minutes", &[("minutes", minutes.to_string())]) + } } \ No newline at end of file diff --git a/core/src/modules/account_manager/menus.rs b/core/src/modules/account_manager/menus.rs index 17af95d..9e7448c 100644 --- a/core/src/modules/account_manager/menus.rs +++ b/core/src/modules/account_manager/menus.rs @@ -23,7 +23,7 @@ impl WalletMenu { let wallet_name = if let Some(wallet_descriptor) = core.wallet_descriptor.as_ref() { wallet_descriptor.title.as_deref().unwrap_or(wallet_descriptor.filename.as_str()).to_string() } else { - ui.label("Missing wallet descriptor"); + ui.label(i18n("Missing wallet descriptor")); return; }; @@ -41,7 +41,7 @@ impl WalletMenu { let wallet_filename = if let Some(wallet_descriptor) = core.wallet_descriptor.as_ref() { wallet_descriptor.filename.clone() } else { - ui.label("Missing wallet descriptor"); + ui.label(i18n("Missing wallet descriptor")); return; }; @@ -213,13 +213,12 @@ impl AccountMenu { ui.add_space(8.); if ui.add_sized(theme_style().large_button_size,CompositeButton::opt_image_and_text( Some(Composite::icon(LIST)), - Some(i18n("Create New Account").into()), + Some(i18n("Add Account").into()), None, )).clicked() { *close = true; core.select::(); } - }); }) @@ -242,7 +241,7 @@ impl ToolsMenu { } pub fn render(&mut self, core: &mut Core, ui : &mut Ui, _account_manager : &mut AccountManager, _rc : &RenderContext, max_height: f32) { - PopupPanel::new(PopupPanel::id(ui,"tools_popup"),|ui|{ ui.add(Label::new(i18n("Tools ⏷")).sense(Sense::click())) }, |ui, _| { + PopupPanel::new(PopupPanel::id(ui,"tools_popup"),|ui|{ ui.add(Label::new(format!("{} ⏷", i18n("Tools"))).sense(Sense::click())) }, |ui, _| { egui::ScrollArea::vertical() .id_source("tools_popup_scroll") diff --git a/core/src/modules/account_manager/mod.rs b/core/src/modules/account_manager/mod.rs index dfac97e..ac07af5 100644 --- a/core/src/modules/account_manager/mod.rs +++ b/core/src/modules/account_manager/mod.rs @@ -35,6 +35,7 @@ use qr::*; use secret::*; use transactions::*; use transfer::*; +#[allow(unused_imports)] use utxo::*; @@ -52,7 +53,7 @@ pub enum AccountManagerSection { Overview, Transactions, Details, - UtxoManager + // UtxoManager } // #[derive(Default, Debug, Clone, Copy, Eq, PartialEq)] @@ -94,7 +95,7 @@ enum Focus { PaymentSecret, } -#[derive(Default)] +#[derive(Default, Clone)] pub enum EstimatorStatus { #[default] None, @@ -111,6 +112,60 @@ enum AddressStatus { Invalid(String), } +#[derive(Default, Debug, Clone, Copy)] +pub enum FeeMode{ + #[default] + None, + Low(FeerateBucket), + // #[default] + Economic(FeerateBucket), + Priority(FeerateBucket), +} + +impl FeeMode { + pub fn bucket(&self) -> FeerateBucket { + match self { + FeeMode::Low(bucket) => *bucket, + FeeMode::Economic(bucket) => *bucket, + FeeMode::Priority(bucket) => *bucket, + FeeMode::None => FeerateBucket::default(), + } + } +} + +// impl Default for FeeMode { +// fn default() -> Self { +// // FeeMode::Economic(FeerateBucket::default()) +// FeeMode::None +// } +// } + +impl Eq for FeeMode {} + +impl PartialEq for FeeMode { + fn eq(&self, other: &Self) -> bool { + // match (self, other) { + // (FeeMode::None, FeeMode::None) => true, + // (FeeMode::Low(_), FeeMode::Low(_)) => true, + // (FeeMode::Economic(_), FeeMode::Economic(_)) => true, + // (FeeMode::Priority(_), FeeMode::Priority(_)) => true, + // _ => false, + // } + matches!((self, other), (FeeMode::None, FeeMode::None) | (FeeMode::Low(_), FeeMode::Low(_)) | (FeeMode::Economic(_), FeeMode::Economic(_)) | (FeeMode::Priority(_), FeeMode::Priority(_))) + } +} + +impl std::fmt::Display for FeeMode { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + FeeMode::None => write!(f, "N/A"), + FeeMode::Low(_) => write!(f, "Low"), + FeeMode::Economic(_) => write!(f, "Economic"), + FeeMode::Priority(_) => write!(f, "Priority"), + } + } +} + #[derive(Default)] pub struct ManagerContext { transfer_to_account : Option, @@ -120,6 +175,7 @@ pub struct ManagerContext { enable_priority_fees : bool, priority_fees_text : String, priority_fees_sompi : u64, + // priority_fee_rate : f64, estimate : Arc>, request_estimate : Option, address_status : AddressStatus, @@ -129,6 +185,7 @@ pub struct ManagerContext { wallet_secret : String, payment_secret : String, loading : bool, + fee_mode : FeeMode } impl ManagerContext { @@ -155,6 +212,7 @@ impl Zeroize for ManagerContext { self.enable_priority_fees = false; self.priority_fees_text = String::default(); self.priority_fees_sompi = 0; + // self.priority_fee_rate = 0.0; *self.estimate.lock().unwrap() = EstimatorStatus::None; self.address_status = AddressStatus::None; self.transaction_kind = None; @@ -164,8 +222,6 @@ impl Zeroize for ManagerContext { } } -// pub struct RenderContext<'render> { -// pub account : &'render Account, pub struct RenderContext { pub account : Account, pub context : Arc, @@ -173,29 +229,9 @@ pub struct RenderContext { pub current_daa_score : Option, } -// impl<'render> RenderContext<'render> { impl RenderContext { - // pub fn new(account : &'render Account, network_type : NetworkType, current_daa_score : Option) -> Result { - // pub fn new(account : Account, network_type : NetworkType, current_daa_score : Option) -> Result { - // pub fn new(account : Account, core: &Core) -> Result { pub fn new(account : Account, network_type : NetworkType, current_daa_score : Option) -> Result { - - // if let AccountManagerState::Overview { account } = &account_manager.state { - // let network_type = if let Some(network_id) = core.state().network_id() { - // network_id.network_type() - // } else { - // core.settings.node.network.into() - // }; - - // let current_daa_score = core.state().current_daa_score(); - - // Ok(RenderContext::new(account, network_type, current_daa_score)?) - // } else { - // Err(Error::custom("Account is missing context")) - // } - - let context = if let Some(context) = account.context() { context } else { @@ -275,9 +311,10 @@ impl AccountManager { account: account.clone(), }; - if device.orientation() == Orientation::Portrait { + if device.orientation() == Orientation::Portrait || Self::single_pane(&device){ self.section = AccountManagerSection::Overview; } else { + // self.section = AccountManagerSection::Details; self.section = AccountManagerSection::Transactions; } @@ -413,7 +450,7 @@ impl AccountManager { if core.device().mobile() { self.render_singular_layout(core,ui,&rc, self.section); - } else if core.device().single_pane() { + } else if core.device().single_pane() || Self::single_pane(core.device()) { self.render_menu(core,ui,&rc); @@ -430,6 +467,10 @@ impl AccountManager { Ok(()) } + fn single_pane(device: &Device)->bool{ + device.screen_size.x < 800. + } + pub fn account(&self) -> Option { if let AccountManagerState::Overview { account } = &self.state { Some(account.clone()) @@ -467,12 +508,12 @@ impl AccountManager { self.section = AccountManagerSection::Details; } - if core.device().desktop() { - ui.separator(); - if ui.add(Label::new(i18n("UTXOs")).sense(Sense::click())).clicked() { - self.section = AccountManagerSection::UtxoManager; - } - } + // if core.device().desktop() { + // ui.separator(); + // if ui.add(Label::new(i18n("UTXOs")).sense(Sense::click())).clicked() { + // self.section = AccountManagerSection::UtxoManager; + // } + // } }); @@ -496,12 +537,12 @@ impl AccountManager { ui.separator(); ToolsMenu::new().render(core,ui,self, rc, screen_rect_height * 0.8); - if core.device().desktop() { - ui.separator(); - if ui.add(Label::new(i18n("UTXOs")).sense(Sense::click())).clicked() { - self.section = AccountManagerSection::UtxoManager; - } - } + // if core.device().desktop() { + // ui.separator(); + // if ui.add(Label::new(i18n("UTXOs")).sense(Sense::click())).clicked() { + // self.section = AccountManagerSection::UtxoManager; + // } + // } ui.separator(); if ui.add(Label::new(i18n("Details")).sense(Sense::click())).clicked() { @@ -556,9 +597,9 @@ impl AccountManager { AccountManagerSection::Details => { Details::new().render(core,ui,rc); } - AccountManagerSection::UtxoManager => { - UtxoManager::new().render(core,ui,rc); - } + // AccountManagerSection::UtxoManager => { + // UtxoManager::new().render(core,ui,rc); + // } } }); @@ -577,9 +618,9 @@ impl AccountManager { AccountManagerSection::Details => { Details::new().render(core,ui,rc); } - AccountManagerSection::UtxoManager => { - UtxoManager::new().render(core,ui,rc); - } + // AccountManagerSection::UtxoManager => { + // UtxoManager::new().render(core,ui,rc); + // } } } diff --git a/core/src/modules/account_manager/overview.rs b/core/src/modules/account_manager/overview.rs index e8ce832..ee0b977 100644 --- a/core/src/modules/account_manager/overview.rs +++ b/core/src/modules/account_manager/overview.rs @@ -45,7 +45,7 @@ impl<'manager> Overview<'manager> { ui.vertical_centered(|ui|{ ui.add_space(16.); - ui.label(RichText::new("An error has occurred while submitting transaction:")); + ui.label(RichText::new(i18n("An error has occurred while submitting transaction:"))); ui.add_space(16.); ui.separator(); ui.add_space(8.); @@ -54,7 +54,7 @@ impl<'manager> Overview<'manager> { ui.separator(); ui.add_space(16.); // TODO - copy to clipboard? - if ui.medium_button("Continue").clicked() { + if ui.medium_button(i18n("Continue")).clicked() { self.context.action = Action::None; } }); @@ -70,20 +70,20 @@ impl<'manager> Overview<'manager> { let mut layout = CenterLayoutBuilder::new(); - layout = layout.add(Button::new(format!("{} Send", ARROW_CIRCLE_UP)).min_size(theme_style().medium_button_size()), |(this, _):&mut (&mut Overview<'_>, &mut Core)| { + layout = layout.add(Button::new(i18n_args("{arrowCircleUpIcon} Send", &[("arrowCircleUpIcon", ARROW_CIRCLE_UP)])).min_size(theme_style().medium_button_size()), |(this, _):&mut (&mut Overview<'_>, &mut Core)| { this.context.action = Action::Estimating; this.context.transaction_kind = Some(TransactionKind::Send); this.context.focus.next(Focus::Address); }); if core.account_collection().as_ref().map(|collection|collection.len()).unwrap_or(0) > 1 { - layout = layout.add(Button::new(format!("{} Transfer", ARROWS_DOWN_UP)).min_size(theme_style().medium_button_size()), |(this,_)| { + layout = layout.add(Button::new(i18n_args("{arrowsDownUpIcon} Transfer", &[("arrowsDownUpIcon", ARROWS_DOWN_UP)])).min_size(theme_style().medium_button_size()), |(this,_)| { this.context.action = Action::Estimating; this.context.transaction_kind = Some(TransactionKind::Transfer); this.context.focus.next(Focus::Amount); }); } - layout = layout.add(Button::new(format!("{} Request", QR_CODE)).min_size(theme_style().medium_button_size()), |(_,core)| { + layout = layout.add(Button::new(i18n_args("{qrCodeIcon} Request", &[("qrCodeIcon", QR_CODE)])).min_size(theme_style().medium_button_size()), |(_,core)| { core.get_mut::().select(&rc.account); core.select::(); diff --git a/core/src/modules/account_manager/processor.rs b/core/src/modules/account_manager/processor.rs index 7885335..a9d59a6 100644 --- a/core/src/modules/account_manager/processor.rs +++ b/core/src/modules/account_manager/processor.rs @@ -13,11 +13,12 @@ impl<'context> Processor<'context> { pub fn render(&mut self, core : &mut Core, ui: &mut Ui, rc : &RenderContext) { let RenderContext { account, network_type, .. } = rc; + let network_type = *network_type; ui.add_space(8.); match self.context.transaction_kind.as_ref().unwrap() { TransactionKind::Send => { - ui.label("Sending funds"); + ui.label(i18n("Sending funds")); ui.add_space(8.); } TransactionKind::Transfer => { @@ -34,10 +35,6 @@ impl<'context> Processor<'context> { if request_estimate { - let priority_fees_sompi = if self.context.enable_priority_fees { - self.context.priority_fees_sompi - } else { 0 }; - let address = match network_type { NetworkType::Testnet => Address::try_from("kaspatest:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqhqrxplya").unwrap(), NetworkType::Mainnet => Address::try_from("kaspa:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkx9awp4e").unwrap(), @@ -45,27 +42,37 @@ impl<'context> Processor<'context> { }; let account_id = account.id(); - let payment_output = PaymentOutput { - address, - amount: self.context.send_amount_sompi, - }; + + let priority_fee_sompi = self.context.priority_fees_sompi; + let send_amount_sompi = self.context.send_amount_sompi; let status = self.context.estimate.clone(); spawn(async move { - let request = AccountsEstimateRequest { + + let fee_rate = calculate_fee_rate(network_type, account_id, send_amount_sompi, priority_fee_sompi).await; + + let payment_output = PaymentOutput { + address, + amount: send_amount_sompi, + }; + + let actual_request = AccountsEstimateRequest { account_id, destination: payment_output.into(), - priority_fee_sompi: Fees::SenderPays(priority_fees_sompi), + priority_fee_sompi: Fees::SenderPays(0), + fee_rate: Some(fee_rate), payload: None, }; - match runtime().wallet().accounts_estimate_call(request).await { - Ok(response) => { - *status.lock().unwrap() = EstimatorStatus::GeneratorSummary(response.generator_summary); + let actual_result = runtime().wallet().accounts_estimate_call(actual_request).await; + + match actual_result { + Ok(actual_estimate_response) => { + *status.lock().unwrap() = EstimatorStatus::GeneratorSummary(actual_estimate_response.generator_summary); } Err(error) => { *status.lock().unwrap() = EstimatorStatus::Error(error.to_string()); - } + } } runtime().egui_ctx().request_repaint(); @@ -85,9 +92,9 @@ impl<'context> Processor<'context> { unreachable!("expecting only one of destination address or transfer to account"); } - let priority_fees_sompi = if self.context.enable_priority_fees { - self.context.priority_fees_sompi - } else { 0 }; + let priority_fee_sompi = self.context.priority_fees_sompi; + + // --- let wallet_secret = Secret::from(self.context.wallet_secret.clone()); let payment_secret = account.requires_bip39_passphrase(core).then_some(Secret::from(self.context.payment_secret.clone())); @@ -97,18 +104,23 @@ impl<'context> Processor<'context> { let address = Address::try_from(self.context.destination_address_string.as_str()).expect("invalid address"); let account_id = account.id(); + let send_amount_sompi = self.context.send_amount_sompi; let payment_output = PaymentOutput { address, - amount: self.context.send_amount_sompi, + amount: send_amount_sompi, }; spawn_with_result(&send_result, async move { + + let fee_rate = calculate_fee_rate(network_type, account_id, send_amount_sompi, priority_fee_sompi).await; + let request = AccountsSendRequest { account_id, destination: payment_output.into(), wallet_secret, payment_secret, - priority_fee_sompi: Fees::SenderPays(priority_fees_sompi), + fee_rate: Some(fee_rate), + priority_fee_sompi: Fees::SenderPays(0), payload: None, }; @@ -125,12 +137,15 @@ impl<'context> Processor<'context> { let transfer_amount_sompi = self.context.send_amount_sompi; spawn_with_result(&send_result, async move { + let fee_rate = calculate_fee_rate(network_type, source_account_id, transfer_amount_sompi, priority_fee_sompi).await; + let request = AccountsTransferRequest { source_account_id, destination_account_id, wallet_secret, payment_secret, - priority_fee_sompi: Some(Fees::SenderPays(priority_fees_sompi)), + fee_rate: Some(fee_rate), + priority_fee_sompi: Some(Fees::SenderPays(0)), transfer_amount_sompi, }; @@ -169,4 +184,38 @@ impl<'context> Processor<'context> { } } +} + +async fn calculate_fee_rate(network_type : NetworkType, account_id : AccountId, send_amount_sompi : u64, priority_fee_sompi : u64) -> f64 { + + let address = match network_type { + NetworkType::Testnet => Address::try_from("kaspatest:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqhqrxplya").unwrap(), + NetworkType::Mainnet => Address::try_from("kaspa:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqkx9awp4e").unwrap(), + _ => panic!("Unsupported network"), + }; + + let payment_output = PaymentOutput { + address, + amount: send_amount_sompi, + }; + + + let base_request = AccountsEstimateRequest { + account_id, + destination: payment_output.clone().into(), + priority_fee_sompi: Fees::SenderPays(0), + fee_rate: Some(0.0), + payload: None, + }; + + let base_result = runtime().wallet().accounts_estimate_call(base_request).await; + + let base_mass = base_result.as_ref().map(|r| r.generator_summary.aggregate_mass).unwrap_or_default(); + + if base_mass == 0 { + 1.0 + } else { + // (priority_fee_sompi as f64 / base_mass as f64) + 1.0 + priority_fee_sompi as f64 / base_mass as f64 + } } \ No newline at end of file diff --git a/core/src/modules/account_manager/transactions.rs b/core/src/modules/account_manager/transactions.rs index 840bcf0..04ae95d 100644 --- a/core/src/modules/account_manager/transactions.rs +++ b/core/src/modules/account_manager/transactions.rs @@ -1,5 +1,6 @@ use crate::imports::*; use super::*; +use crate::core::TRANSACTION_PAGE_SIZE; pub struct Transactions { } @@ -8,10 +9,10 @@ impl Transactions { Self { } } - pub fn render(&mut self, ui: &mut Ui, _core : &mut Core, rc : &RenderContext) { + pub fn render(&mut self, ui: &mut Ui, core : &mut Core, rc : &RenderContext) { let RenderContext { account, network_type, current_daa_score, .. } = rc; - - egui::ScrollArea::vertical().auto_shrink([false,false]).show(ui, |ui| { + let max_height = ui.available_height() - (ui.fonts(|fonts|RichText::new("YWgy").font_height(fonts, ui.style())).at_least(ui.spacing().interact_size.y) * 2.0 + 5.0); + egui::ScrollArea::vertical().max_height(max_height).auto_shrink([false,false]).show(ui, |ui| { let transactions = account.transactions(); if transactions.is_empty() { ui.vertical_centered(|ui| { @@ -21,9 +22,21 @@ impl Transactions { } else { let total: u64 = transactions.iter().map(|transaction|transaction.aggregate_input_value()).sum(); transactions.iter().for_each(|transaction| { - transaction.render(ui, *network_type, *current_daa_score, true, Some(total)); + transaction.render(ui, *network_type, account.network(), *current_daa_score, true, Some(total)); }); } }); + + ui.add_space(4.); + let pagination = Pagination::new(account.transaction_count(), account.transaction_start().into(), Some(TRANSACTION_PAGE_SIZE), Some(5)); + if let Some(start) = pagination.render(ui){ + core.load_account_transactions_with_range(account, start..(start+TRANSACTION_PAGE_SIZE)) + .map_err(|err|{ + log_info!("Failed to load transactions\n{err:?}") + }).ok(); + + account.set_transaction_start(start); + runtime().request_repaint(); + } } } diff --git a/core/src/modules/account_manager/transfer.rs b/core/src/modules/account_manager/transfer.rs index 85849cb..7af5baa 100644 --- a/core/src/modules/account_manager/transfer.rs +++ b/core/src/modules/account_manager/transfer.rs @@ -27,8 +27,10 @@ impl<'context> Transfer<'context> { if let Some(account) = default_account { self.context.transfer_to_account = Some(account.clone()); - ui.label(format!("Transferring funds to: {}", account.name_or_id())); - ui.label(format!("Destination balance: {}", sompi_to_kaspa_string_with_suffix(account.balance().map(|balance|balance.mature).unwrap_or(0), network_type))); + // ui.label(format!("Transferring funds to: {}", account.name_or_id())); + ui.label(i18n_args("Transferring funds to: {account}", &[("account", account.name_or_id())])); + // ui.label(format!("Destination balance: {}", sompi_to_kaspa_string_with_suffix(account.balance().map(|balance|balance.mature).unwrap_or(0), network_type))); + ui.label(i18n_args("Destination balance: {balance}", &[("balance", sompi_to_kaspa_string_with_suffix(account.balance().map(|balance|balance.mature).unwrap_or(0), network_type))])); } else { if self.context.transfer_to_account.as_ref().map(|account|account.id() == rc.account.id()).unwrap_or_default() { @@ -41,13 +43,15 @@ impl<'context> Transfer<'context> { PopupPanel::new(PopupPanel::id(ui,"transfer_selector_popup"),|ui|{ let response = ui.vertical_centered(|ui| { if let Some(account) = transfer_to_account { - let response = ui.add(Label::new(format!("Transferring funds to: {} ⏷", account.name_or_id())).sense(Sense::click())); - ui.label(format!("Destination balance: {}", sompi_to_kaspa_string_with_suffix(account.balance().map(|balance|balance.mature).unwrap_or(0), network_type))); + // let response = ui.add(Label::new(format!("Transferring funds to: {} ⏷", account.name_or_id())).sense(Sense::click())); + let response = ui.add(Label::new(i18n_args("Transferring funds to: {account}", &[("account", account.name_or_id())])).sense(Sense::click())); + // ui.label(format!("Destination balance: {}", sompi_to_kaspa_string_with_suffix(account.balance().map(|balance|balance.mature).unwrap_or(0), network_type))); + ui.label(i18n_args("Destination balance: {balance}", &[("balance", sompi_to_kaspa_string_with_suffix(account.balance().map(|balance|balance.mature).unwrap_or(0), network_type))])); response } else if self.context.send_amount_text.is_not_empty() { - ui.add(Label::new(RichText::new("Please select destination account ⏷").color(theme_color().warning_color)).sense(Sense::click())) + ui.add(Label::new(RichText::new(i18n("Please select destination account ⏷")).color(theme_color().warning_color)).sense(Sense::click())) } else { - ui.add(Label::new(RichText::new("Please select destination account ⏷")).sense(Sense::click())) + ui.add(Label::new(RichText::new(i18n("Please select destination account ⏷"))).sense(Sense::click())) } }); diff --git a/core/src/modules/account_manager/utxo.rs b/core/src/modules/account_manager/utxo.rs index 418832c..4934897 100644 --- a/core/src/modules/account_manager/utxo.rs +++ b/core/src/modules/account_manager/utxo.rs @@ -1,3 +1,5 @@ +#![allow(dead_code)] + use crate::imports::*; use super::*; diff --git a/core/src/modules/block_dag.rs b/core/src/modules/block_dag.rs index 4837653..8c9ff56 100644 --- a/core/src/modules/block_dag.rs +++ b/core/src/modules/block_dag.rs @@ -88,13 +88,13 @@ impl BlockDag { let settings = BlockDagGraphSettings::new(preset.spread); runtime.block_dag_monitor_service().update_settings(settings.clone()); - Self { - runtime, - daa_cursor : 0.0, - last_daa_score : 0, - running : false, - plot_bounds : PlotBounds::NOTHING, - bezier : true, + Self { + runtime, + daa_cursor : 0.0, + last_daa_score : 0, + running : false, + plot_bounds : PlotBounds::NOTHING, + bezier : true, daa_offset : preset.daa_offset, daa_range : preset.daa_range, block_scale : preset.block_scale, @@ -171,7 +171,7 @@ impl ModuleT for BlockDag { ui.heading(i18n("Block DAG")); ui.with_layout(egui::Layout::right_to_left(egui::Align::Center), |ui| { - PopupPanel::new(PopupPanel::id(ui,"block_dag_settings"),|ui|{ ui.add(Label::new("Settings ⏷").sense(Sense::click())) }, |ui, _| { + PopupPanel::new(PopupPanel::id(ui,"block_dag_settings"),|ui|{ ui.add(Label::new(format!("{} ⏷", i18n("Settings"))).sense(Sense::click())) }, |ui, _| { CollapsingHeader::new(i18n("Dimensions")) .open(Some(true)) @@ -294,7 +294,6 @@ impl ModuleT for BlockDag { runtime().block_dag_monitor_service().update_settings(self.settings.clone()); } - let mut reset_plot = false; let current_daa_score = core.state().current_daa_score().unwrap_or_default(); if self.last_daa_score != current_daa_score { @@ -308,6 +307,22 @@ impl ModuleT for BlockDag { self.last_daa_score = current_daa_score; } + // let mut reset_plot = false; + // let current_daa_score = core.state().current_daa_score().unwrap_or_default(); + // if self.last_daa_score != current_daa_score || current_daa_score==0 { + // if !self.running || current_daa_score==0{ + // if current_daa_score > 0{ + // self.running = true; + // }else{ + // self.running = false; + // } + // reset_plot = true; + // self.daa_cursor = current_daa_score as f64 - 1.0; + // } + + // self.last_daa_score = current_daa_score; + // } + let delta = 0.025; let daa_diff = current_daa_score as f64 - self.daa_cursor; let step = daa_diff * delta; @@ -329,14 +344,14 @@ impl ModuleT for BlockDag { .include_y(15.) .include_y(-15.) .data_aspect(0.2) - .y_axis_width(0) + .y_axis_min_width(0.0) .show_axes([self.settings.show_daa, false]) .show_grid(self.settings.show_grid) .allow_drag([true, true]) .allow_scroll(true) .allow_double_click_reset(true) - .x_axis_formatter(move |x, _size, _range| { - format!("{} DAA", x.trunc().separated_string()) + .x_axis_formatter(move |x, _range| { + format!("{} DAA", x.value.trunc().separated_string()) }) .x_grid_spacer( uniform_grid_spacer(move |input| { @@ -357,8 +372,10 @@ impl ModuleT for BlockDag { // kick it into gear when starting up if reset_plot { - plot = plot.auto_bounds_x().auto_bounds_y(); + plot = plot.auto_bounds([true, true].into()); plot = plot.reset(); + } else { + plot = plot.auto_bounds([false, false].into()); } let mut graph_settled = true; diff --git a/core/src/modules/export.rs b/core/src/modules/export.rs index 921db7f..c3d3985 100644 --- a/core/src/modules/export.rs +++ b/core/src/modules/export.rs @@ -30,8 +30,8 @@ pub enum ExportKind { impl ExportKind { pub fn info(&self) -> (&'static str,&'static str) { match self { - Self::Mnemonic => ("Private Key Mnemonic","Private key mnemonic stored in this wallet"), - Self::Transportable => ("Transportable", "Encrypted hex encoded data easily importable into another instance of KaspaNG"), + Self::Mnemonic => (i18n("Private Key Mnemonic"),i18n("Private key mnemonic stored in this wallet")), + Self::Transportable => (i18n("Transportable"), i18n("Encrypted hex encoded data easily importable into another instance of Kaspa-NG")), } } } @@ -114,12 +114,12 @@ impl ModuleT for Export { }) .with_header(|_ctx,ui| { ui.add_space(64.); - ui.label("Please select export type"); + ui.label(i18n("Please select export type")); }) .with_body(|this,ui| { ui.vertical_centered(|ui| { - for kind in ExportKind::list() { + for kind in ExportKind::into_iter() { if kind == ExportKind::Transportable { continue; } @@ -130,7 +130,7 @@ impl ModuleT for Export { }) .with_footer(|_this,ui| { - if ui.large_button("Continue").clicked() { + if ui.large_button(i18n("Continue")).clicked() { submit = true; } }) @@ -190,7 +190,7 @@ impl ModuleT for Export { let requires_bip39_passphrase = self.context.prv_key_data_info.as_ref().unwrap().requires_bip39_passphrase(); Panel::new(self) - .with_caption("Unlock Wallet") + .with_caption(i18n("Unlock Wallet")) .with_back(|this| { this.state = State::Select; }) @@ -243,7 +243,7 @@ impl ModuleT for Export { }) .with_footer(|this,ui| { let ok = this.context.wallet_secret.is_not_empty() && (!requires_bip39_passphrase || this.context.payment_secret.is_not_empty()); - if ui.large_button_enabled(ok, "Continue").clicked() { + if ui.large_button_enabled(ok, i18n("Continue")).clicked() { *submit.borrow_mut() = true; } }) @@ -350,7 +350,7 @@ impl ModuleT for Export { }) .with_footer(|this,ui| { - if ui.large_button("Continue").clicked() { + if ui.large_button(i18n("Continue")).clicked() { this.context.zeroize(); this.state = State::Select; core.select::(); diff --git a/core/src/modules/import.rs b/core/src/modules/import.rs index 33875a9..28175bb 100644 --- a/core/src/modules/import.rs +++ b/core/src/modules/import.rs @@ -59,12 +59,12 @@ impl ModuleT for Import { State::Words => { Panel::new(self) - .with_caption("Mnemonic Import") + .with_caption(i18n("Mnemonic Import")) .with_close_enabled(false, |_|{ }) .with_header(|this,ui| { // ui.add_space(64.); - ui.label("Importing word N/N"); + ui.label(i18n("Importing word N/N")); ui.horizontal(|ui|{ // ui.vertical_centered_justified(|ui|{ @@ -81,7 +81,8 @@ impl ModuleT for Import { ui.add_sized( size, TextEdit::singleline(&mut this.word) - .hint_text(format!("Enter Word {}...", this.mnemonic.len()+1)) + // .hint_text(format!("Enter Word {}...", this.mnemonic.len()+1)) + .hint_text(i18n_args("Enter Word {number}...", &[("number", &(this.mnemonic.len() + 1).to_string())])) .horizontal_align(Align::Center) // .vertical_align(Align::Center), ); @@ -104,9 +105,9 @@ impl ModuleT for Import { }) // .with_footer(|_this,ui| { - // // if ui.add_sized(theme().large_button_size, egui::Button::new("Continue")).clicked() { + // // if ui.add_sized(theme().large_button_size, egui::Button::new(i18n("Continue"))).clicked() { // let size = theme().large_button_size; - // if ui.add_sized(size, egui::Button::new("Continue")).clicked() { + // if ui.add_sized(size, egui::Button::new(i18n("Continue"))).clicked() { // // this.state = State::WalletName; // } // }) @@ -114,9 +115,9 @@ impl ModuleT for Import { } State::Select => { - ui.heading("Select Wallet"); + ui.heading(i18n("Select Wallet")); ui.label(" "); - ui.label("Select a wallet to unlock"); + ui.label(i18n("Select a wallet to unlock")); ui.label(" "); // ui.add_space(32.); @@ -137,23 +138,20 @@ impl ModuleT for Import { }); } State::Unlock(message) => { - ui.heading("Unlock Wallet"); + ui.heading(i18n("Unlock Wallet")); egui::ScrollArea::vertical() .id_source("unlock-wallet") .show(ui, |ui| { ui.label(" "); - ui.label(format!( - "Opening wallet: \"{}\"", - self.selected_wallet.as_ref().unwrap() - )); + ui.label(i18n_args("Opening wallet: {wallet}", &[("wallet", self.selected_wallet.as_ref().unwrap())])); ui.label(" "); if let Some(message) = message { ui.label(" "); ui.label( - RichText::new("Error unlocking wallet") + RichText::new(i18n("Error unlocking wallet")) .color(egui::Color32::from_rgb(255, 120, 120)), ); ui.label( @@ -164,39 +162,40 @@ impl ModuleT for Import { ui.label(" "); } - ui.label("Enter your password to unlock your wallet"); + ui.label(i18n("Enter your password to unlock your wallet")); ui.label(" "); ui.add_sized( size, TextEdit::singleline(&mut self.wallet_secret) - .hint_text("Enter Password...") + .hint_text(i18n("Enter Password...")) .password(true) .vertical_align(Align::Center), ); - if ui.add_sized(size, egui::Button::new("Unlock")).clicked() { + if ui.add_sized(size, egui::Button::new(i18n("Unlock"))).clicked() { let wallet_secret = Secret::new( self.wallet_secret.as_bytes().to_vec() ); self.wallet_secret.zeroize(); let wallet = self.runtime.wallet().clone(); let wallet_name = self.selected_wallet.clone(); //.expect("Wallet name not set"); - + self.state = State::Unlocking; + spawn_with_result(&unlock_result, async move { - + sleep(Duration::from_secs(2)).await; wallet.wallet_open(wallet_secret, wallet_name, true, true).await?; // wallet.load(secret, wallet_name).await?; Ok(()) }); - self.state = State::Unlocking; + } ui.label(" "); if ui - .add_sized(size, egui::Button::new("Select a different wallet")) + .add_sized(size, egui::Button::new(i18n("Select a different wallet"))) .clicked() { self.state = State::Select; @@ -204,10 +203,10 @@ impl ModuleT for Import { }); } State::Unlocking => { - ui.heading("Unlocking"); + ui.heading(i18n("Unlocking")); // ui.separator(); ui.label(" "); - ui.label("Unlocking wallet, please wait..."); + ui.label(i18n("Unlocking wallet, please wait...")); ui.label(" "); ui.add_space(64.); ui.add(egui::Spinner::new().size(92.)); diff --git a/core/src/modules/metrics.rs b/core/src/modules/metrics.rs index d0a9cf4..bb874f6 100644 --- a/core/src/modules/metrics.rs +++ b/core/src/modules/metrics.rs @@ -95,18 +95,18 @@ impl ModuleT for Metrics { } if ui.button(i18n("None")).clicked() { - core.settings.user_interface.metrics.disabled = Metric::list().into_iter().collect::>(); + core.settings.user_interface.metrics.disabled = Metric::into_iter().collect::>(); } if ui.button(i18n("Key Perf.")).clicked() { - core.settings.user_interface.metrics.disabled = Metric::list().into_iter().filter(|metric|!metric.is_key_performance_metric()).collect::>(); + core.settings.user_interface.metrics.disabled = Metric::into_iter().filter(|metric|!metric.is_key_performance_metric()).collect::>(); } }); ui.separator(); - for group in MetricGroup::list() { + for group in MetricGroup::iter() { CollapsingHeader::new(i18n(group.title())) .default_open(true) .show(ui, |ui| { @@ -215,7 +215,7 @@ impl ModuleT for Metrics { }; - let mut metric_iter = Metric::list().into_iter().filter(|metric| !core.settings.user_interface.metrics.disabled.contains(metric)); + let mut metric_iter = Metric::iter().filter(|metric| !core.settings.user_interface.metrics.disabled.contains(metric)); let mut draw = true; while draw { ui.horizontal(|ui| { @@ -223,7 +223,7 @@ impl ModuleT for Metrics { if let Some(metric) = metric_iter.next() { let range_from = core.settings.user_interface.metrics.graph_range_from; let range_to = core.settings.user_interface.metrics.graph_range_to; - self.render_metric(ui,metric,metrics,range_from..range_to,graph_width,graph_height); + self.render_metric(ui, *metric, metrics,range_from..range_to,graph_width,graph_height); } else { draw = false; } @@ -304,20 +304,24 @@ impl Metrics { .legend(Legend::default()) .width(graph_width) .height(graph_height) - .auto_bounds_x() - .auto_bounds_y() + .auto_bounds([true, true].into()) .set_margin_fraction(vec2(0.0,0.0) ) - .y_axis_width(4) + .y_axis_min_width(4.0 * 12.0) .show_axes(true) .show_grid(true) // .allow_drag([true, false]) .allow_drag([false, false]) .allow_scroll(false) - .y_axis_formatter(move |y,_size,_range|{ - metric.format(y, true, true) + .y_axis_formatter(move |grid, _range|{ + match metric { + Metric::NetworkPastMedianTime => { + String::default() + } + metric => metric.format(grid.value, true, true) + } }) - .x_axis_formatter(move |x, _size, _range| { - DateTime::::from_timestamp((x / 1000.0) as i64, 0) + .x_axis_formatter(move |grid, _range| { + DateTime::::from_timestamp((grid.value / 1000.0) as i64, 0) .expect("could not parse timestamp") .with_timezone(&chrono::Local) .format("%H:%M:%S") @@ -325,7 +329,6 @@ impl Metrics { }) .x_grid_spacer( uniform_grid_spacer(move |input| { - let (start_time,stop_time) = input.bounds; let range = stop_time - start_time; let base_step_size = range / graph_width as f64 * 64.; @@ -419,3 +422,4 @@ fn format_duration_unit(value: u64, unit: &str) -> String { format!("{} {}", value, unit) } } + diff --git a/core/src/modules/overview.rs b/core/src/modules/overview.rs index 4e4ebd0..f1ad6b9 100644 --- a/core/src/modules/overview.rs +++ b/core/src/modules/overview.rs @@ -49,22 +49,23 @@ impl ModuleT for Overview { if #[cfg(not(feature = "lean"))] { let width = ui.available_width(); - + SidePanel::left("overview_left") - .exact_width(width*0.5) - .resizable(false) - .show_separator_line(true) - .show_inside(ui, |ui| { - egui::ScrollArea::vertical() - .id_source("overview_metrics") - .auto_shrink([false; 2]) - .show(ui, |ui| { - self.render_stats(core,ui); + .exact_width(width*0.5) + .resizable(false) + .show_separator_line(true) + .show_inside(ui, |ui| { + egui::ScrollArea::vertical() + .id_source("overview_metrics") + .auto_shrink([false; 2]) + .show(ui, |ui| { + self.render_stats(core,ui); + }); }); - }); SidePanel::right("overview_right") .exact_width(width*0.5) + .frame(Frame::default().fill(Color32::TRANSPARENT)) .resizable(false) .show_separator_line(false) .show_inside(ui, |ui| { @@ -84,16 +85,22 @@ impl Overview { #[cfg(not(feature = "lean"))] fn render_stats(&mut self, core: &mut Core, ui : &mut Ui) { - CollapsingHeader::new(i18n("Kaspa p2p Node")) - .default_open(true) - .show(ui, |ui| { + let node_info = if let Some(node_info) = &core.node_info { + format!(" - {}", node_info) + } else { + "".to_string() + }; - if core.state().is_connected() { - self.render_graphs(core,ui); - } else { - ui.label(i18n("Not connected")); - } - }); + CollapsingHeader::new(format!("{}{}",i18n("Kaspa p2p Node"), node_info)) + .default_open(true) + .show(ui, |ui| { + + if core.state().is_connected() { + self.render_graphs(core,ui); + } else { + ui.label(i18n("Not connected")); + } + }); ui.add_space(48.); } @@ -182,39 +189,82 @@ impl Overview { format!("• {CLOUD} {}",i18n("Kaspa NG online")), "https://kaspa-ng.org" ); - }); - - CollapsingHeader::new(i18n("Mainnet")) - .default_open(true) - .show(ui, |ui| { - #[allow(unused_imports)] - use egui_phosphor::light::{YOUTUBE_LOGO,DISCORD_LOGO,TELEGRAM_LOGO,REDDIT_LOGO,CHART_SCATTER,NEWSPAPER_CLIPPING,DATABASE}; - - ui.hyperlink_to_tab( - format!("• {DATABASE} {}",i18n("Explorer")), - "https://explorer.kaspa.org/", - ); - ui.hyperlink_to_tab( - format!("• {CHART_SCATTER} {}",i18n("Statistics")), - "https://kas.fyi", - ); - // ui.hyperlink_to_tab( - // format!("• {DISCORD_LOGO} {}",i18n("Discord")), - // "https://discord.com/invite/kS3SK5F36R", - // ); }); - if core.settings.node.network == Network::Testnet11 { - CollapsingHeader::new(i18n("Testnet 11")) - .default_open(true) - .show(ui, |ui| { - use egui_phosphor::light::HAND_COINS; - - ui.hyperlink_to_tab( - format!("• {HAND_COINS} {}",i18n("Faucet")), - "https://faucet-t11.kaspa.ws", - ); - }); + match core.settings.node.network { + Network::Mainnet => { + CollapsingHeader::new(i18n("Mainnet")) + .default_open(true) + .show(ui, |ui| { + CollapsingHeader::new(i18n("Resources")) + .default_open(true) + .show(ui, |ui| { + #[allow(unused_imports)] + use egui_phosphor::light::{YOUTUBE_LOGO,DISCORD_LOGO,TELEGRAM_LOGO,REDDIT_LOGO,CHART_SCATTER,NEWSPAPER_CLIPPING,DATABASE}; + + ui.hyperlink_to_tab( + format!("• {DATABASE} {}",i18n("Explorer")), + "https://explorer.kaspa.org/", + ); + ui.hyperlink_to_tab( + format!("• {CHART_SCATTER} {}",i18n("Statistics")), + "https://kas.fyi", + ); + // ui.hyperlink_to_tab( + // format!("• {DISCORD_LOGO} {}",i18n("Discord")), + // "https://discord.com/invite/kS3SK5F36R", + // ); + + }); + self.render_network_info(core, ui); + self.render_fee_rate(core, ui); + }); + } + Network::Testnet10 => { + CollapsingHeader::new(i18n("Testnet 10")) + .default_open(true) + .show(ui, |ui| { + CollapsingHeader::new(i18n("Resources")) + .default_open(true) + .show(ui, |ui| { + use egui_phosphor::light::{HAND_COINS,DATABASE}; + + ui.hyperlink_to_tab( + format!("• {DATABASE} {}",i18n("Explorer")), + "https://explorer-tn10.kaspa.org/", + ); + ui.hyperlink_to_tab( + format!("• {HAND_COINS} {}",i18n("Faucet")), + "https://faucet-testnet.kaspanet.io", + ); + + }); + self.render_network_info(core, ui); + self.render_fee_rate(core, ui); + }); + } + Network::Testnet11 => { + CollapsingHeader::new(i18n("Testnet 11")) + .default_open(true) + .show(ui, |ui| { + CollapsingHeader::new(i18n("Resources")) + .default_open(true) + .show(ui, |ui| { + use egui_phosphor::light::{HAND_COINS,DATABASE}; + + ui.hyperlink_to_tab( + format!("• {DATABASE} {}",i18n("Explorer")), + "https://explorer-tn11.kaspa.org/", + ); + ui.hyperlink_to_tab( + format!("• {HAND_COINS} {}",i18n("Faucet")), + "https://faucet-t11.kaspanet.io", + ); + }); + self.render_network_info(core, ui); + self.render_fee_rate(core, ui); + }); + } } CollapsingHeader::new(i18n("Developer Resources")) @@ -295,20 +345,19 @@ impl Overview { CollapsingHeader::new(i18n("Build")) .default_open(true) .show(ui, |ui| { - ui.add(Label::new(format!("Kaspa NG v{}-{} + Rusty Kaspa v{}", env!("CARGO_PKG_VERSION"),crate::app::GIT_DESCRIBE, kaspa_wallet_core::version()))); + ui.add(Label::new(format!("Kaspa NG v{}-{} + Rusty Kaspa {}", env!("CARGO_PKG_VERSION"),crate::app::GIT_DESCRIBE, kaspa_version()))); // if ui.add(Label::new(format!("Kaspa NG v{}-{} + Rusty Kaspa v{}", env!("CARGO_PKG_VERSION"),crate::app::GIT_DESCRIBE, kaspa_wallet_core::version())).sense(Sense::click())).clicked() { // core.select::(); // } - ui.label(format!("Timestamp: {}", crate::app::BUILD_TIMESTAMP)); - ui.label(format!("rustc {}-{} {} llvm {}", + // ui.label(format!("Timestamp: {}", crate::app::BUILD_TIMESTAMP)); + ui.label(i18n_args("Timestamp: {timestamp}", &[("timestamp", crate::app::BUILD_TIMESTAMP)])); + ui.label(format!("rustc {}-{} {} llvm {}", crate::app::RUSTC_SEMVER, crate::app::RUSTC_COMMIT_HASH.chars().take(8).collect::(), crate::app::RUSTC_CHANNEL, crate::app::RUSTC_LLVM_VERSION, )); - ui.label(format!("architecture {}", - crate::app::CARGO_TARGET_TRIPLE - )); + ui.label(i18n_args("Architecture {arch}", &[("arch", crate::app::CARGO_TARGET_TRIPLE)])); }); if let Some(system) = runtime().system() { @@ -358,13 +407,47 @@ impl Overview { CollapsingHeader::new(i18n("Donations")) .default_open(true) .show(ui, |ui| { - if ui.link(i18n("Supporting Kaspa NG development")).clicked() { + if ui.link(i18n("Please support Kaspa NG development")).clicked() { core.select::(); } }); }); } + fn render_network_info(&self, core: &Core, ui : &mut Ui) { + + CollapsingHeader::new(i18n("Statistics")) + .default_open(true) + .show(ui, |ui| { + // ui.label(format!("Network Pressure: ~{}%", core.network_pressure.capacity())); + ui.label(i18n_args("Network Pressure: ~{number}%", &[("number", core.network_pressure.capacity().to_string())])); + }); + } + + fn render_fee_rate(&self, core: &Core, ui : &mut Ui) { + + if let Some(fees) = core.feerate.as_ref() { + let (low,med,high) = if core.network_pressure.below_capacity() { + (1.0,1.0,1.0) + } else { + (fees.low.value().feerate, fees.economic.value().feerate, fees.priority.value().feerate) + }; + let low_kas = sompi_to_kaspa_string_with_suffix((low * BASIC_TRANSACTION_MASS as f64) as u64, &core.settings.node.network.into()); + let med_kas = sompi_to_kaspa_string_with_suffix((med * BASIC_TRANSACTION_MASS as f64) as u64, &core.settings.node.network.into()); + let high_kas = sompi_to_kaspa_string_with_suffix((high * BASIC_TRANSACTION_MASS as f64) as u64, &core.settings.node.network.into()); + CollapsingHeader::new(i18n("Fee Market")) + .default_open(true) + .show(ui, |ui| { + // ui.label(format!("Low: {} SOMPI/g; ~{}/tx", format_with_precision(low), low_kas)); + // ui.label(format!("Economic: {} SOMPI/g; ~{}/tx", format_with_precision(med),med_kas)); + // ui.label(format!("Priority: {} SOMPI/g; ~{}/tx", format_with_precision(high),high_kas)); + ui.label(i18n_args("Low: {low} SOMPI/g; ~{low_kas}/tx", &[("low", format_with_precision(low)), ("low_kas", low_kas)])); + ui.label(i18n_args("Economic: {med} SOMPI/g; ~{med_kas}/tx", &[("med", format_with_precision(med)), ("med_kas", med_kas)])); + ui.label(i18n_args("Priority: {high} SOMPI/g; ~{high_kas}/tx", &[("high", format_with_precision(high)), ("high_kas", high_kas)])); + }); + } + } + #[cfg(not(feature = "lean"))] fn render_graphs(&mut self, core: &mut Core, ui : &mut Ui) { @@ -372,10 +455,13 @@ impl Overview { if let Some(snapshot) = core.metrics() { let view_width = ui.available_width(); + if view_width < 200. { return; } - let graph_columns = ((view_width-48.) / 128.) as usize; + const GRAPH_WIDTH: f32 = 128.+6.+8.; + const GRAPH_VIEW_MARGIN: f32 = 48.; + let graph_columns = ((view_width-GRAPH_VIEW_MARGIN) / GRAPH_WIDTH) as usize; let mut draw = true; while draw { @@ -408,10 +494,26 @@ impl Overview { if available_samples < duration { duration = available_samples; } - let samples = if data.len() < duration { data.len() } else { duration }; - data[data.len()-samples..].to_vec() + let len = data.len(); + let samples = len.min(duration); + data[len-samples..].to_vec() + // let mut data = data[len-samples..].to_vec(); + // if data.len() == 1{ + // let mut last_clone = data[0].clone(); + // if last_clone.y > 100000000000.0{ + // last_clone.x += 0.1; + // last_clone.y += 100.0; + // data.push(last_clone); + // } + // } + // data }; + //skip rendering + if graph_data.len() < 2 { + return; + } + ui.vertical(|ui|{ let frame = @@ -430,8 +532,7 @@ impl Overview { .legend(Legend::default()) .width(128.) .height(32.) - .auto_bounds_x() - .auto_bounds_y() + .auto_bounds([true, true].into()) .set_margin_fraction(vec2(0.0,0.0) ) .show_axes(false) .show_grid(false) @@ -459,7 +560,7 @@ impl Overview { let text = format!("{} {}", i18n(metric.title().1).to_uppercase(), metric.format(value, true, true)); let rich_text_top = RichText::new(&text).size(10.).color(theme_color().raised_text_color); - let label_top = Label::new(rich_text_top).wrap(false); + let label_top = Label::new(rich_text_top).extend(); let mut rect_top = plot_result.response.rect; rect_top.set_bottom(rect_top.top() + 12.); @@ -468,7 +569,7 @@ impl Overview { vec2(1.0,1.0),vec2(1.0,-1.0),vec2(-1.0,1.0),vec2(-1.0,-1.0), ].iter().for_each(|offset| { let rich_text_back = RichText::new(&text).size(10.).color(theme_color().raised_text_shadow); - let label_back = Label::new(rich_text_back).wrap(false); + let label_back = Label::new(rich_text_back).extend(); let mut rect_back = rect_top; rect_back.set_center(rect_back.center()+*offset); ui.put(rect_back, label_back); diff --git a/core/src/modules/private_key_create.rs b/core/src/modules/private_key_create.rs index 92cc0ae..4e2a573 100644 --- a/core/src/modules/private_key_create.rs +++ b/core/src/modules/private_key_create.rs @@ -158,7 +158,7 @@ impl ModuleT for PrivateKeyCreate { // ui.label("A wallet is stored in a file on your computer. You can create multiple wallet."); }) .with_footer(|_this,ui| { - // if ui.add_sized(theme().large_button_size, egui::Button::new("Continue")).clicked() { + // if ui.add_sized(theme().large_button_size, egui::Button::new(i18n("Continue"))).clicked() { if ui.large_button(i18n("Continue")).clicked() { // this.state = State::WalletName; } @@ -403,7 +403,7 @@ impl ModuleT for PrivateKeyCreate { // }) // .with_footer(|this,ui| { - // if ui.add_sized(size, egui::Button::new("Continue")).clicked() { + // if ui.add_sized(size, egui::Button::new(i18n("Continue"))).clicked() { // this.state = State::ConfirmMnemonic(mnemonic); // } // }) diff --git a/core/src/modules/request.rs b/core/src/modules/request.rs index 5f0cd02..50524b4 100644 --- a/core/src/modules/request.rs +++ b/core/src/modules/request.rs @@ -152,14 +152,14 @@ impl ModuleT for Request { let close = Rc::new(RefCell::new(false)); Panel::new(self) - .with_caption("Payment Request") + .with_caption(i18n("Payment Request")) .with_back_enabled(core.has_stack(), |_|{ *close.borrow_mut() = true; }) .with_header(|this, ui| { if let Some(account) = this.account.as_ref() { ui.label(""); - ui.label(format!("Payment request to account: {}",account.name_or_id())); + ui.label(i18n_args("Payment request to account: {account}", &[("account", account.name_or_id())])); } // ui.label(text); }) @@ -197,7 +197,7 @@ impl ModuleT for Request { }, Err(_err) => { this.amount_sompi = None; - this.error = Some(i18n("Please enter a valid about of KAS").to_string()); + this.error = Some(i18n("Please enter a valid amount of KAS").to_string()); }, } } diff --git a/core/src/modules/scanner.rs b/core/src/modules/scanner.rs index 0da7eb4..6716861 100644 --- a/core/src/modules/scanner.rs +++ b/core/src/modules/scanner.rs @@ -102,7 +102,7 @@ impl ModuleT for Scanner { let back = Rc::new(RefCell::new(false)); Panel::new(self) - .with_caption("Scanner") + .with_caption(i18n("Scanner")) .with_back(|_this| { *back.borrow_mut() = true; }) @@ -270,11 +270,10 @@ impl ModuleT for Scanner { let wallet_secret = Secret::from(self.context.wallet_secret.as_str()); let transfer_funds = self.context.transfer_funds; self.context.wallet_secret.zeroize(); - spawn(async move { - - if let Some(account) = wallet.get_account_by_id(&account.id()).await? { - + let binding = wallet.guard(); + let guard = binding.lock().await; + if let Some(account) = wallet.get_account_by_id(&account.id(),&guard).await? { account.as_derivation_capable()? .derivation_scan( wallet_secret, @@ -283,6 +282,7 @@ impl ModuleT for Scanner { usize::MAX, 64, transfer_funds, + None, &abortable, Some(Arc::new(move |index,utxo_count, balance, txid|{ if let Some(_txid) = txid { @@ -295,7 +295,7 @@ impl ModuleT for Scanner { ).await?; } else { - *status.lock().unwrap() = Status::error("Account not found"); + *status.lock().unwrap() = Status::error(i18n("Account not found")); } Ok(()) @@ -328,10 +328,13 @@ impl ModuleT for Scanner { ui.label(message); } Status::Processing { index, utxo_count, balance } => { - ui.label(format!("Scanning address derivation {}...", index.separated_string())); - ui.label(format!("Located {} UTXOs", utxo_count.separated_string())); + //ui.label(format!("Scanning address derivation {}...", index.separated_string())); + //ui.label(format!("Located {} UTXOs", utxo_count.separated_string())); + ui.label(i18n_args("Scanning address derivation {index}...", &[("index", &index.separated_string())])); + ui.label(i18n_args("Located {utxo_count} UTXOs", &[("utxo_count", &utxo_count.separated_string())])); + ui.add_space(16.); - ui.label(RichText::new("BALANCE").size(12.).raised()); + ui.label(RichText::new(i18n("BALANCE")).size(12.).raised()); ui.label( s2kws_layout_job(core.balance_padding(), *balance, &network_type, theme_color().balance_color,FontId::proportional(28.)) ); @@ -368,10 +371,12 @@ impl ModuleT for Scanner { .with_body(|this,ui| { if let Status::Processing { index,utxo_count, balance } = &*this.context.status.lock().unwrap() { - ui.label(format!("Total addresses scanned: {}", index.separated_string())); - ui.label(format!("Located {} UTXOs", utxo_count.separated_string())); + //ui.label(format!("Total addresses scanned: {}", index.separated_string())); + //ui.label(format!("Located {} UTXOs", utxo_count.separated_string())); + ui.label(i18n_args("Total addresses scanned: {index}", &[("index", &index.separated_string())])); + ui.label(i18n_args("Located {utxo_count} UTXOs", &[("utxo_count", &utxo_count.separated_string())])); ui.add_space(16.); - ui.label(RichText::new("BALANCE").size(12.).raised()); + ui.label(RichText::new(i18n("BALANCE")).size(12.).raised()); ui.label( s2kws_layout_job(balance_padding, *balance, &network_type, theme_color().balance_color,FontId::proportional(28.)) ); diff --git a/core/src/modules/settings/mod.rs b/core/src/modules/settings/mod.rs index 54e4357..11d7883 100644 --- a/core/src/modules/settings/mod.rs +++ b/core/src/modules/settings/mod.rs @@ -1,10 +1,11 @@ use crate::imports::*; -use crate::servers::render_public_server_selector; pub struct Settings { #[allow(dead_code)] runtime: Runtime, settings : crate::settings::Settings, + wrpc_borsh_network_interface : NetworkInterfaceEditor, + wrpc_json_network_interface : NetworkInterfaceEditor, grpc_network_interface : NetworkInterfaceEditor, reset_settings : bool, } @@ -14,6 +15,8 @@ impl Settings { Self { runtime, settings : crate::settings::Settings::default(), + wrpc_borsh_network_interface : NetworkInterfaceEditor::default(), + wrpc_json_network_interface : NetworkInterfaceEditor::default(), grpc_network_interface : NetworkInterfaceEditor::default(), reset_settings : false, } @@ -22,6 +25,8 @@ impl Settings { pub fn load(&mut self, settings : crate::settings::Settings) { self.settings = settings; + self.wrpc_borsh_network_interface = NetworkInterfaceEditor::from(&self.settings.node.wrpc_borsh_network_interface); + self.wrpc_json_network_interface = NetworkInterfaceEditor::from(&self.settings.node.wrpc_json_network_interface); self.grpc_network_interface = NetworkInterfaceEditor::from(&self.settings.node.grpc_network_interface); } @@ -29,7 +34,7 @@ impl Settings { self.settings.node.network = network; } - pub fn render_remote_settings(core: &mut Core, ui: &mut Ui, settings : &mut NodeSettings) -> Option<&'static str> { + pub fn render_remote_settings(_core: &mut Core, ui: &mut Ui, settings : &mut NodeSettings) -> Option<&'static str> { let mut node_settings_error = None; @@ -69,7 +74,7 @@ impl Settings { if let Err(err) = KaspaRpcClient::parse_url(settings.wrpc_url.clone(), settings.wrpc_encoding, settings.network.into()) { ui.label( - RichText::new(format!("{err}")) + RichText::new(err.to_string()) .color(theme_color().warning_color), ); node_settings_error = Some(i18n("Invalid wRPC URL")); @@ -90,13 +95,6 @@ impl Settings { }, NodeConnectionConfigKind::PublicServerCustom => { - CollapsingHeader::new(i18n("Public Node")) - .default_open(true) - .show(ui, |ui| { - if let Some(error) = render_public_server_selector(core, ui, settings) { - node_settings_error = Some(error); - } - }); }, NodeConnectionConfigKind::PublicServerRandom => { ui.label(i18n("A random node will be selected on startup")); @@ -353,16 +351,24 @@ impl Settings { .show(ui, |ui| { ui.vertical(|ui|{ + ui.checkbox(&mut self.settings.node.enable_wrpc_borsh, i18n("Public wRPC (Borsh)")); + + // ui.checkbox(&mut self.settings.node.enable_wrpc_json, i18n("Enable wRPC JSON")); + // if self.settings.node.enable_wrpc_json { + // CollapsingHeader::new(i18n("wRPC JSON Network Interface & Port")) + // .default_open(true) + // .show(ui, |ui| { + // self.wrpc_json_network_interface.ui(ui); + // }); + // } + ui.checkbox(&mut self.settings.node.enable_grpc, i18n("Enable gRPC")); if self.settings.node.enable_grpc { - CollapsingHeader::new(i18n("gRPC Network Interface & Port")) .default_open(true) .show(ui, |ui| { self.grpc_network_interface.ui(ui); }); - // - TODO - // ui.add(TextEdit::singleline(&mut self.settings.node.grpc_network_interface)); } }); @@ -446,89 +452,136 @@ impl Settings { CollapsingHeader::new(i18n("User Interface")) - .default_open(true) + .default_open(false) .show(ui, |ui| { - ui.label(i18n("Theme Color")); - ui.vertical(|ui| { - ui.horizontal(|ui| { - let current_theme_color_name = theme_color().name(); - ui.menu_button( - format!("{} ⏷", current_theme_color_name), - |ui| { - theme_colors().keys().for_each(|name| { - if name.as_str() != current_theme_color_name - && ui.button(name).clicked() - { - apply_theme_color_by_name( - ui.ctx(), - name, - ); - core - .settings - .user_interface - .theme_color = name.to_string(); - // core.store_settings(); - ui.close_menu(); - } - }); - }, - ); + CollapsingHeader::new(i18n("Theme Color")) + .default_open(true) + .show(ui, |ui| { + ui.vertical(|ui| { + ui.horizontal(|ui| { + let current_theme_color_name = theme_color().name(); + ui.menu_button( + format!("{} ⏷", current_theme_color_name), + |ui| { + theme_colors().keys().for_each(|name| { + if name.as_str() != current_theme_color_name + && ui.button(name).clicked() + { + apply_theme_color_by_name( + ui.ctx(), + name, + ); + core + .settings + .user_interface + .theme_color = name.to_string(); + // core.store_settings(); + ui.close_menu(); + } + }); + }, + ); + }); + }); + + ui.add_space(1.); }); - ui.add_space(1.); - }); - ui.label(i18n("Theme Style")); - ui.horizontal(|ui| { - let current_theme_style_name = theme_style().name(); - ui.menu_button( - format!("{} ⏷", current_theme_style_name), - |ui| { - theme_styles().keys().for_each(|name| { - if name.as_str() != current_theme_style_name - && ui.button(name).clicked() - { - apply_theme_style_by_name(ui.ctx(), name); - core - .settings - .user_interface - .theme_style = name.to_string(); - // core.store_settings(); - ui.close_menu(); - } + CollapsingHeader::new(i18n("Theme Style")) + .default_open(true) + .show(ui, |ui| { + ui.horizontal(|ui| { + let current_theme_style_name = theme_style().name(); + ui.menu_button( + format!("{} ⏷", current_theme_style_name), + |ui| { + theme_styles().keys().for_each(|name| { + if name.as_str() != current_theme_style_name + && ui.button(name).clicked() + { + apply_theme_style_by_name(ui.ctx(), name); + core + .settings + .user_interface + .theme_style = name.to_string(); + // core.store_settings(); + ui.close_menu(); + } + }); + }, + ); }); - }, - ); - }); + ui.add_space(1.); + }); - if workflow_core::runtime::is_native() { - ui.label(i18n("Zoom")); - ui.horizontal(|ui| { - let zoom_factor = ui.ctx().zoom_factor(); - if ui - .add_sized( - Vec2::splat(24.), - Button::new(RichText::new("-").size(18.)), - ) - .clicked() - { - ui.ctx().set_zoom_factor(zoom_factor - 0.1); - } - ui.label(format!("{:.0}%", zoom_factor * 100.0)); - if ui - .add_sized( - Vec2::splat(24.), - Button::new(RichText::new("+").size(18.)), - ) - .clicked() - { - ui.ctx().set_zoom_factor(zoom_factor + 0.1); + if workflow_core::runtime::is_native() { + CollapsingHeader::new(i18n("Zoom")) + .default_open(true) + .show(ui, |ui| { + ui.horizontal(|ui| { + let zoom_factor = ui.ctx().zoom_factor(); + if ui + .add_sized( + Vec2::splat(24.), + Button::new(RichText::new("-").size(18.)), + ) + .clicked() + { + ui.ctx().set_zoom_factor(zoom_factor - 0.1); + } + ui.label(format!("{:.0}%", zoom_factor * 100.0)); + if ui + .add_sized( + Vec2::splat(24.), + Button::new(RichText::new("+").size(18.)), + ) + .clicked() + { + ui.ctx().set_zoom_factor(zoom_factor + 0.1); + } + }); + + ui.add_space(1.); + }); } - }); - } - }); + if workflow_core::runtime::is_native() { + CollapsingHeader::new(i18n("Options")) + .default_open(true) + .show(ui, |ui| { + + ui.checkbox(&mut self.settings.user_interface.disable_frame, i18n("Disable Window Frame")); + if self.settings.user_interface.disable_frame != core.settings.user_interface.disable_frame { + ui.vertical(|ui| { + ui.add_space(4.); + ui.label(RichText::new(i18n("Application must be restarted for this setting to take effect.")).color(theme_color().warning_color)); + ui.label(RichText::new(i18n("Please select 'Apply' and restart the application.")).color(theme_color().warning_color)); + ui.add_space(4.); + }); + } + + ui.add_space(1.); + }); + + if self.settings.user_interface.disable_frame != core.settings.user_interface.disable_frame { + ui.add_space(16.); + if let Some(response) = ui.confirm_medium_apply_cancel(Align::Max) { + match response { + Confirm::Ack => { + core.settings.user_interface.disable_frame = self.settings.user_interface.disable_frame; + core.settings.store_sync().unwrap(); + }, + Confirm::Nack => { + self.settings.user_interface.disable_frame = core.settings.user_interface.disable_frame; + } + } + } + ui.separator(); + } + } + }); } @@ -568,6 +621,21 @@ impl Settings { }); }); + CollapsingHeader::new(i18n("Network Fee Estimator")) + .default_open(false) + .show(ui, |ui| { + ui.vertical(|ui|{ + EstimatorMode::iter().for_each(|kind| { + ui.radio_value(&mut self.settings.estimator.mode, *kind, i18n(kind.describe())); + }); + + if self.settings.estimator.mode != core.settings.estimator.mode { + core.settings.estimator.mode = self.settings.estimator.mode; + core.store_settings(); + } + }); + }); + #[cfg(not(target_arch = "wasm32"))] core.storage.clone().render_settings(core, ui); @@ -606,7 +674,7 @@ impl Settings { ui.checkbox( &mut self.settings.developer.disable_password_restrictions, - i18n("Disable password score restrictions") + i18n("Disable password safety rules") ).on_hover_text_at_pointer( i18n("Removes security restrictions, allows for single-letter passwords") ); diff --git a/core/src/modules/testing.rs b/core/src/modules/testing.rs index 4501b48..6a3a1d7 100644 --- a/core/src/modules/testing.rs +++ b/core/src/modules/testing.rs @@ -1,5 +1,4 @@ use kaspa_bip32::{Mnemonic,WordCount}; - use crate::imports::*; // use egui_plot::PlotPoint; @@ -12,9 +11,18 @@ pub enum State { Unlocking, } +#[derive(PartialEq, Debug)] +pub enum FeeMode{ + None, + LowPriority, + Economic, + Normal, +} + pub struct Testing { #[allow(dead_code)] runtime: Runtime, + fee_mode: FeeMode, // pub state: State, // pub message: Option, @@ -44,6 +52,7 @@ impl Testing { Self { runtime, + fee_mode: FeeMode::None, // state: State::Select, // message: None, // graph_data, @@ -75,6 +84,8 @@ impl ModuleT for Testing { _frame: &mut eframe::Frame, ui: &mut egui::Ui, ) { + ui.label(RichText::new("\u{E610}").size(32.).family(FontFamily::Name("phosphor".into()))); + ui.label(RichText::new("\u{E611}").size(32.)); if ui.large_button("notify regular").clicked() { runtime().notify(UserNotification::info("This is a regular notification").short()); @@ -95,6 +106,113 @@ impl ModuleT for Testing { if ui.large_button("notify info").clicked() { runtime().notify(UserNotification::info("Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, ").short()); } + + + let fee_selection = SelectionPanels::new( + 100.0, + 130.0) + // i18n("Miner Fee"), + // |ui, value|{ + // ui.label("1 in / 2 outputs, ~1.2 Kg"); + // ui.label(format!("Fee Mode: {:?}", value)); + // }) + //.panel_min_height(300.) + //.vertical(true) + //.add(FeeMode::LowPriority, i18n("Low-priority"), i18n("3 hours or more")) + .add_with_footer(FeeMode::LowPriority, i18n("Low-priority"), i18n("3 hours or more"), |ui|{ + ui.label("12.88716 µKAS"); + ui.label(RichText::new("~0.00000215 USD").strong()); + ui.label("9 SOMPI/G"); + }) + .add_with_footer(FeeMode::Economic, i18n("Economic"), i18n("~2 hours"), |ui|{ + ui.label("15.83525 µKAS"); + ui.label(RichText::new("~0.00000264 USD").strong()); + ui.label("10 SOMPI/G"); + }) + .add_with_footer(FeeMode::Normal, i18n("Normal"), i18n("~30 minutes"), |ui|{ + ui.label("20.78334 µKAS"); + ui.label(RichText::new("~0.00000347 USD").strong()); + ui.label("10 SOMPI/G"); + }) + .add_with_footer(FeeMode::LowPriority, i18n("Low-priority"), i18n("3 hours or more"), |ui|{ + ui.label("12.88716 µKAS"); + ui.label(RichText::new("~0.00000215 USD").strong()); + ui.label("9 SOMPI/G"); + }) + .add_with_footer(FeeMode::Economic, i18n("Economic"), i18n("~2 hours"), |ui|{ + ui.label("15.83525 µKAS"); + ui.label(RichText::new("~0.00000264 USD").strong()); + ui.label("10 SOMPI/G"); + }) + .add_with_footer(FeeMode::Normal, i18n("Normal"), i18n("~30 minutes"), |ui|{ + ui.label("20.78334 µKAS"); + ui.label(RichText::new("~0.00000347 USD").strong()); + ui.label("10 SOMPI/G"); + }); + // .add_with_footer(FeeMode::Economic, i18n("Economic"), i18n("~2 hours"), |ui|{ + // ui.label("13.83525 µKAS"); + // ui.label(RichText::new("~608.83 USD").strong()); + // ui.label("10 SOMPI/G"); + // }) + // .add_with_footer(FeeMode::Normal, i18n("Normal"), i18n("~30 minutes"), |ui|{ + // ui.label("14.78334 µKAS"); + // ui.label(RichText::new("~650.56 USD").strong()); + // ui.label("10 SOMPI/G"); + // }); + + + if fee_selection.render(ui, &mut self.fee_mode).clicked(){ + log_info!("clicked: self.fee_mode: {:?}", self.fee_mode); + runtime().toast(UserNotification::success(format!("selection: {:?}", self.fee_mode)).short()) + } + + let fee_selection = SelectionPanels::new( + 100.0, + 150.0, + // i18n("Miner Fee"), + // |ui, value|{ + // ui.label("1 in / 2 outputs, ~1.2 Kg"); + // ui.label(format!("Fee Mode: {:?}", value)); + // } + ) + //.panel_min_height(300.) + //.vertical(true) + //.add(FeeMode::LowPriority, i18n("Low-priority"), i18n("3 hours or more")) + .add_with_footer(FeeMode::LowPriority, i18n("Low-priority"), i18n("3 hours or more"), |ui|{ + ui.label("12.88716 µKAS"); + ui.label(RichText::new("~0.00000215 USD").strong()); + ui.label("9 SOMPI/G"); + }) + .add_with_footer(FeeMode::Economic, i18n("Economic"), i18n("~2 hours"), |ui|{ + ui.label("15.83525 µKAS"); + ui.label(RichText::new("~0.00000264 USD").strong()); + ui.label("10 SOMPI/G"); + }) + .add_with_footer(FeeMode::Normal, i18n("Normal"), i18n("~30 minutes"), |ui|{ + ui.label("20.78334 µKAS"); + ui.label(RichText::new("~0.00000347 USD").strong()); + ui.label("10 SOMPI/G"); + }) + .add_with_footer(FeeMode::LowPriority, i18n("Low-priority"), i18n("3 hours or more"), |ui|{ + ui.label("12.88716 µKAS"); + ui.label(RichText::new("~0.00000215 USD").strong()); + ui.label("9 SOMPI/G"); + }) + .add_with_footer(FeeMode::Economic, i18n("Economic"), i18n("~2 hours"), |ui|{ + ui.label("15.83525 µKAS"); + ui.label(RichText::new("~0.00000264 USD").strong()); + ui.label("10 SOMPI/G"); + }) + .add_with_footer(FeeMode::Normal, i18n("Normal"), i18n("~30 minutes"), |ui|{ + ui.label("20.78334 µKAS"); + ui.label(RichText::new("~0.00000347 USD").strong()); + ui.label("10 SOMPI/G"); + }); + + if fee_selection.sep_ratio(0.7).render(ui, &mut self.fee_mode).clicked(){ + log_info!("clicked: self.fee_mode: {:?}", self.fee_mode); + runtime().toast(UserNotification::success(format!("selection: {:?}", self.fee_mode)).short()) + } } } diff --git a/core/src/modules/wallet_create.rs b/core/src/modules/wallet_create.rs index 297761b..08f7b7a 100644 --- a/core/src/modules/wallet_create.rs +++ b/core/src/modules/wallet_create.rs @@ -16,6 +16,14 @@ enum Focus { PaymentSecret, PaymentSecretConfirm, WalletMnemonic, + DecryptWalletSecret, +} + +#[derive(Clone)] +pub enum KeyOperationKind { + Create, + ImportKey, + ImportFile, } #[derive(Clone)] @@ -26,7 +34,10 @@ pub enum State { ImportMnemonic, ImportMnemonicWithEditor, ImportMnemonicInteractive, + WalletFileSecret, + DecryptWalletFile, ImportWallet, + // WalletName { kind: KeyOperationKind }, WalletName, AccountName, PhishingHint, @@ -34,7 +45,7 @@ pub enum State { PaymentSecret, CreateWalletConfirm, CreateWallet, - WalletError(Arc), + WalletError(Arc, Arc), PresentMnemonic(String), ConfirmMnemonic(String), Finish, @@ -49,6 +60,7 @@ struct Context { enable_phishing_hint: bool, phishing_hint: String, wallet_secret: String, + decrypt_wallet_secret: String, wallet_secret_confirm: String, wallet_secret_show: bool, wallet_secret_score: Option, @@ -59,11 +71,13 @@ struct Context { payment_secret_score: Option, mnemonic_presenter_context : MnemonicPresenterContext, import_private_key : bool, + import_private_key_file: bool, import_private_key_mnemonic : String, import_private_key_mnemonic_error : Option, import_with_bip39_passphrase : bool, import_legacy : bool, import_advanced : bool, + wallet_file_data: Option } impl Zeroize for Context { @@ -82,6 +96,7 @@ impl Zeroize for Context { self.import_private_key_mnemonic.zeroize(); self.import_private_key_mnemonic_error.zeroize(); self.import_with_bip39_passphrase.zeroize(); + self.decrypt_wallet_secret.zeroize(); self.import_legacy.zeroize(); self.import_advanced.zeroize(); } @@ -106,8 +121,162 @@ impl WalletCreate { focus: FocusManager::default(), } } + + pub fn import_selection(context:&mut M, word_count: &mut WordCount, import_legacy: &mut bool, bip39_passphrase: &mut bool, ui: &mut Ui, back_callback:Option)->bool{ + let mut submit = false; + if *import_legacy { + *bip39_passphrase = false; + } + let mut panel = Panel::new(context) + .with_caption(i18n("Import Existing Private Key")) + .with_close_enabled(false, |_|{ + }) + .with_header(|_ctx,ui| { + ui.add_space(64.); + ui.label(i18n("Please select the private key type you would like to import in the new wallet")); + }) + .with_body(|_this,ui| { + // ui.label("(You can import additional private keys later, once the wallet has been created)"); + // let word_12_selected = !*import_legacy && *word_count == WordCount::Words12; + // if ui.large_selected_button(word_12_selected, i18n("12 word mnemonic")).clicked() { + if ui.large_button(i18n("12 word mnemonic")).clicked() { + *word_count = WordCount::Words12; + *import_legacy = false; + submit = true; + } + ui.label(""); + + // if ui.large_selected_button(*word_count == WordCount::Words24, i18n("24 word mnemonic")).clicked() { + if ui.large_button(i18n("24 word mnemonic")).clicked() { + *word_count = WordCount::Words24; + *import_legacy = false; + submit = true; + } + ui.label(""); + ui.add_enabled_ui(!*import_legacy, |ui|{ + ui.checkbox(bip39_passphrase, i18n("Your mnemonic is protected with a bip39 passphrase")); + }); + ui.label(""); + + ui.medium_separator(); + ui.label(""); + + ui.label(i18n("Select this option if your wallet was created")); + ui.label(i18n("using KDX or kaspanet.io web wallet")); + ui.label(""); + // if ui.large_selected_button(*import_legacy, format!(" {} ", i18n("Legacy 12 word mnemonic"))).clicked() { + if ui.large_button_enabled(!*bip39_passphrase,format!(" {} ", i18n("Legacy 12 word mnemonic"))).clicked() { + *word_count = WordCount::Words12; + *import_legacy = true; + *bip39_passphrase = false; + submit = true; + } + // ui.label(""); + + // ui.medium_separator(); + // ui.label(""); + + // if ui.large_button(i18n("Continue")).clicked() { + // submit = true; + // } + }) + .with_footer(|_this,_ui| { + }); + + if let Some(back_callback) = back_callback{ + panel = panel.with_back(back_callback) + } + + panel.render(ui); + submit + } + + pub fn import_mnemonic(context: &mut M, mnemonic_phrase: &mut String, word_count: &WordCount, focus_manager: &mut FocusManager, focus_value: F, ui: &mut Ui, back_callback: impl FnOnce(&mut M))->bool{ + let mnemonic_is_ok = Rc::new(RefCell::new(false)); + let proceed = Rc::new(RefCell::new(false)); + let needed = match word_count { + WordCount::Words12 => 12, + WordCount::Words24 => 24, + } as usize; + Panel::new(context) + .with_caption(i18n("Mnemonic Import")) + .with_back(back_callback) + .with_close_enabled(false, |_|{ + }) + .with_header(|_this,ui| { + ui.add_space(64.); + ui.label(i18n_args("Please enter mnemonic comprised of {number} words", &[("number", needed.to_string())])); + }) + .with_body(|_this,ui| { + let mut submit = false; + TextEditor::new( + mnemonic_phrase, + focus_manager, + focus_value, + |ui, text| { + // ui.add_space(8.); + ui.label(RichText::new(i18n("Enter mnemonic")).size(12.).raised()); + let mut available_width = ui.available_width(); + if available_width > 1024. { + available_width *= 0.5; + } else if available_width > 512. { + available_width *= 0.7; + } + ui.add_sized(vec2(available_width, 64.), TextEdit::multiline(text)) + }, + ) + .submit(|_text,_focus| { + submit = true; + }) + .build(ui); + + let phrase = mnemonic_phrase.as_str().split_ascii_whitespace().filter(|s| s.is_not_empty()).collect::>(); + // TODO - use comparison chain + #[allow(clippy::comparison_chain)] + if phrase.len() < needed { + ui.label(""); + ui.label(i18n_args("Please enter additional {amount} words", &[("amount", (needed - phrase.len()).to_string())])); + ui.label(""); + } else if phrase.len() > needed { + ui.label(""); + ui.colored_label(error_color(), i18n_args("Too many words ({words}) in the {amount} word mnemonic", &[ + ("words",phrase.len().to_string()), + ("amount",(phrase.len() - needed).to_string()) + ])); + ui.label(""); + } else { + let mut phrase = phrase.join(" "); + match Mnemonic::new(phrase.as_str(), Language::default()) { + Ok(_) => { + *mnemonic_is_ok.borrow_mut() = true; + if submit { + *proceed.borrow_mut() = true; + } + }, + Err(err) => { + phrase.zeroize(); + ui.label(""); + ui.label(RichText::new(i18n_args("Error processing mnemonic: {err}",&[("err",err.to_string())])).color(error_color())); + if matches!(err,kaspa_bip32::Error::Bip39) { + ui.label(RichText::new(i18n("Your mnemonic phrase is invalid")).color(error_color())); + } + ui.label(""); + } + } + } + }) + .with_footer(|_this,ui| { + if ui.large_button_enabled(*mnemonic_is_ok.borrow(), i18n("Continue")).clicked() { + *proceed.borrow_mut() = true; + } + }) + .render(ui); + let proceed = *proceed.borrow(); + proceed + } } + impl ModuleT for WalletCreate { fn modal(&self) -> bool { true } @@ -130,7 +299,7 @@ impl ModuleT for WalletCreate { let mut back = false; Panel::new(self) - .with_caption("Create Wallet") + .with_caption(i18n("Create Wallet")) .with_back_enabled(core.has_stack(), |_|{ back = true; }) @@ -156,8 +325,10 @@ impl ModuleT for WalletCreate { } State::KeySelection => { - let mut submit = false; - let mut import = false; + self.context.import_with_bip39_passphrase = false; + self.context.import_legacy = false; + self.context.import_private_key = false; + self.context.import_private_key_file = false; Panel::new(self) .with_caption(i18n("Select Private Key Type")) @@ -171,7 +342,7 @@ impl ModuleT for WalletCreate { ui.label(i18n("Please specify the private key type for the new wallet")); }) .with_body(|this,ui| { - + let mut submit = false; if ui.large_button(i18n("12 word mnemonic")).clicked() { this.context.word_count = WordCount::Words12; submit = true; @@ -181,6 +352,12 @@ impl ModuleT for WalletCreate { this.context.word_count = WordCount::Words24; submit = true; } + + if submit { + // this.state = State::WalletName { kind : KeyOperationKind::Create }; + this.state = State::WalletName; + this.focus.next(Focus::WalletName); + } // ui.label(""); // if ui.large_button_enabled(false,"MultiSig account").clicked() { // } @@ -191,94 +368,40 @@ impl ModuleT for WalletCreate { ui.label(""); if ui.large_button(i18n("Import existing")).clicked() { - import = true; + this.state = State::ImportSelection; + this.focus.clear(); } ui.label(""); - }) - .with_footer(|_this,_ui| { - }) - .render(ui); - - if import { - self.state = State::ImportSelection; - self.focus.clear(); - - } else if submit { - self.state = State::WalletName; - self.focus.next(Focus::WalletName); - } - - } - - State::ImportSelection => { - - let mut submit = false; - Panel::new(self) - .with_caption(i18n("Import Existing Private Key")) - .with_back(|this| { - this.state = State::KeySelection; - }) - .with_close_enabled(false, |_|{ - }) - .with_header(|_ctx,ui| { - ui.add_space(64.); - ui.label(i18n("Please select the private key type you would like to import in the new wallet")); - }) - .with_body(|this,ui| { - // ui.label("(You can import additional private keys later, once the wallet has been created)"); - - if ui.large_button(i18n("12 word mnemonic")).clicked() { - this.context.word_count = WordCount::Words12; - submit = true; + if ui.large_button(i18n("Import existing file")).clicked() { + this.context.import_private_key_file = true; + this.state = State::ImportMnemonicInteractive; } - ui.label(""); - ui.checkbox(&mut this.context.import_legacy, i18n("I have a 12 word mnemonic legacy account")); - ui.label(i18n("Select this option if your wallet was created")); - ui.label(i18n("using KDX or kaspanet.io web wallet")); - ui.label(RichText::new("NOT SUPPORTED IN THIS BETA RELEASE").size(10.).color(warning_color())); - - if !this.context.import_legacy { - ui.label(""); - if ui.large_button(i18n("24 word mnemonic")).clicked() { - this.context.word_count = WordCount::Words24; - submit = true; - } - // ui.label(""); - // if ui.large_button("MultiSig account").clicked() { - // } - - ui.label(""); - ui.checkbox(&mut this.context.import_with_bip39_passphrase, i18n("Your mnemonic is protected with a bip39 passphrase")); - - ui.label(""); - ui.checkbox(&mut this.context.import_advanced, i18n("Advanced Options")); - if this.context.import_advanced { - ui.label(""); - if ui.large_button_enabled(false, i18n("secp256k1 keypair")).clicked() { - this.context.word_count = WordCount::Words12; - submit = true; - } - ui.label(RichText::new("NOT SUPPORTED IN THIS BETA RELEASE").size(10.).color(warning_color())); - } - } - - }) .with_footer(|_this,_ui| { }) .render(ui); - - if submit { - self.context.import_private_key = true; - self.state = State::WalletName; - self.focus.next(Focus::WalletName); - } } - - + State::ImportSelection => { + let submit = Self::import_selection::(&mut self.state, + &mut self.context.word_count, + &mut self.context.import_legacy, + &mut self.context.import_with_bip39_passphrase, + ui, + Some(|state : &mut State|{ + *state = State::KeySelection + }) + ); + if submit { + self.context.import_private_key = true; + // self.state = State::WalletName { kind : KeyOperationKind::ImportKey }; + self.state = State::WalletName; + self.focus.next(Focus::WalletName); + } + } + // State::WalletName { kind } => { State::WalletName => { let wallet_exists = Rc::new(RefCell::new(false)); @@ -286,6 +409,14 @@ impl ModuleT for WalletCreate { Panel::new(self) .with_caption(i18n("Wallet Name")) .with_back(|this| { + // match kind { + // KeyOperationKind::Create => { + // this.state = State::KeySelection; + // } + // KeyOperationKind::Import => { + // this.state = State::ImportSelection; + // } + // } this.state = State::KeySelection; }) .with_close_enabled(false, |_|{ @@ -388,7 +519,7 @@ impl ModuleT for WalletCreate { }) .with_footer(|this,ui| { - let text = if this.context.account_name.is_not_empty() { "Continue" } else { "Skip" }; + let text = if this.context.account_name.is_not_empty() { i18n("Continue") } else { i18n("Skip") }; if ui.large_button(i18n(text)).clicked() { this.state = State::PhishingHint; this.focus.next(Focus::PhishingHint); @@ -409,14 +540,13 @@ impl ModuleT for WalletCreate { .with_header(|_ctx,ui| { ui.heading(i18n("Optional")); ui.label(" "); - // TODO i18n - ui.label("\ - \"Phishing hint\" is a secret word or a phrase that is displayed \ + ui.label(i18n("\ + 'Phishing hint' is a secret word or a phrase that is displayed \ when you open your wallet. If you do not see the hint when opening \ your wallet, you may be accessing a fake wallet designed to steal \ your funds. If this occurs, stop using the wallet immediately, \ check the browser URL domain name and seek help on social networks \ - (Kaspa Discord or Telegram)."); + (Kaspa Discord or Telegram).")); ui.label(" "); }) .with_body(|this,ui| { @@ -568,153 +698,157 @@ impl ModuleT for WalletCreate { } State::PaymentSecret => { - let mut proceed = self.context.import_private_key && !self.context.import_with_bip39_passphrase; + let mut proceed = self.context.import_legacy || (self.context.import_private_key && !self.context.import_with_bip39_passphrase); + if !self.context.import_legacy { + Panel::new(self) + .with_caption(i18n("Payment & Recovery Password")) + .with_back(|this| { + this.state = State::WalletSecret; + this.focus.next(Focus::WalletSecret); + }) + .with_close_enabled(false, |_|{ + }) + .with_header(|this,ui| { + if this.context.import_with_bip39_passphrase { - Panel::new(self) - .with_caption(i18n("Payment & Recovery Password")) - .with_back(|this| { - this.state = State::WalletSecret; - this.focus.next(Focus::WalletSecret); - }) - .with_close_enabled(false, |_|{ - }) - .with_header(|this,ui| { - if this.context.import_with_bip39_passphrase { + } else { + ui.heading(i18n("Optional")); + ui.label(" "); + ui.label(i18n("The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to \ + send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.\ + If you loose or forget this passphrase, you will not \ + be able to use mnemonic to recover your wallet!")); + } + }) + .with_body(|this,ui| { + let mut submit = false; + let mut change = false; + + + if !this.context.import_with_bip39_passphrase { + ui.checkbox(&mut this.context.enable_payment_secret, i18n("Enable optional BIP39 passphrase")); + } - } else { - ui.heading(i18n("Optional")); - ui.label(" "); - ui.label(i18n("The optional payment & mnemonic recovery passphrase, known as BIP39 passphrase, if provided, will be required to \ - send payments. This passphrase will also be required when recovering your wallet in addition to your mnemonic.\ - If you lose or forget this passphrase, you will not \ - be able to use mnemonic to recover your wallet!")); - } - }) - .with_body(|this,ui| { - let mut submit = false; - let mut change = false; - - - if !this.context.import_with_bip39_passphrase { - ui.checkbox(&mut this.context.enable_payment_secret, i18n("Enable optional BIP39 passphrase")); - } + if this.context.enable_payment_secret || this.context.import_with_bip39_passphrase { + + ui.label(""); - if this.context.enable_payment_secret || this.context.import_with_bip39_passphrase { - - ui.label(""); + TextEditor::new( + &mut this.context.payment_secret, + &mut this.focus, + Focus::PaymentSecret, + |ui, text| { + // ui.add_space(8.); + ui.label(RichText::new(i18n("Enter BIP39 passphrase")).size(12.).raised()); + ui.add_sized(editor_size, TextEdit::singleline(text) + .password(!this.context.payment_secret_show) + .vertical_align(Align::Center)) + }, + ) + .change(|_|{ + change = true; + }) + .submit(|text,focus| { + if text.is_not_empty() { + focus.next(Focus::PaymentSecretConfirm); + } else { + submit = true; + } + }) + .build(ui); - TextEditor::new( - &mut this.context.payment_secret, - &mut this.focus, - Focus::PaymentSecret, - |ui, text| { - // ui.add_space(8.); - ui.label(RichText::new(i18n("Enter BIP39 passphrase")).size(12.).raised()); - ui.add_sized(editor_size, TextEdit::singleline(text) - .password(!this.context.payment_secret_show) - .vertical_align(Align::Center)) - }, - ) - .change(|_|{ - change = true; - }) - .submit(|text,focus| { - if text.is_not_empty() { - focus.next(Focus::PaymentSecretConfirm); - } else { + ui.label(""); + TextEditor::new( + &mut this.context.payment_secret_confirm, + &mut this.focus, + Focus::PaymentSecretConfirm, + |ui, text| { + ui.label(RichText::new(i18n("Confirm BIP39 passphrase")).size(12.).raised()); + ui.add_sized(editor_size, TextEdit::singleline(text) + .password(!this.context.payment_secret_show) + .vertical_align(Align::Center)) + }, + ) + .submit(|_text,_focus| { submit = true; - } - }) - .build(ui); + }) + .build(ui); - ui.label(""); - TextEditor::new( - &mut this.context.payment_secret_confirm, - &mut this.focus, - Focus::PaymentSecretConfirm, - |ui, text| { - ui.label(RichText::new(i18n("Confirm BIP39 passphrase")).size(12.).raised()); - ui.add_sized(editor_size, TextEdit::singleline(text) - .password(!this.context.payment_secret_show) - .vertical_align(Align::Center)) - }, - ) - .submit(|_text,_focus| { - submit = true; - }) - .build(ui); - - ui.label(""); - ui.checkbox(&mut this.context.payment_secret_show, i18n("Show passphrase")); - ui.label(""); + ui.label(""); + ui.checkbox(&mut this.context.payment_secret_show, i18n("Show passphrase")); + ui.label(""); - if change { - let payment_secret = this - .context - .payment_secret - .is_not_empty() - .then_some(this.context.payment_secret.clone()) - .or(this.context - .payment_secret_confirm + if change { + let payment_secret = this + .context + .payment_secret .is_not_empty() - .then_some(this.context.wallet_secret_confirm.clone()) - ); - this.context.payment_secret_score = payment_secret.map(secret_score); - } + .then_some(this.context.payment_secret.clone()) + .or(this.context + .payment_secret_confirm + .is_not_empty() + .then_some(this.context.wallet_secret_confirm.clone()) + ); + this.context.payment_secret_score = payment_secret.map(secret_score); + } - if let Some(score) = this.context.payment_secret_score { - ui.label(""); - ui.label(secret_score_to_text(score)); - if score < 80.0 { + if let Some(score) = this.context.payment_secret_score { ui.label(""); - ui.label(RichText::new(i18n("Passphrase is too weak")).color(warning_color())); - // if !core.settings.developer.password_restrictions_disabled() { - // // submit = false; - // ui.label(RichText::new(i18n("Please create a stronger passphrase")).color(egui::Color32::from_rgb(255, 120, 120))); - // } + ui.label(secret_score_to_text(score)); + if score < 80.0 { + ui.label(""); + ui.label(RichText::new(i18n("Passphrase is too weak")).color(warning_color())); + // if !core.settings.developer.password_restrictions_disabled() { + // // submit = false; + // ui.label(RichText::new(i18n("Please create a stronger passphrase")).color(egui::Color32::from_rgb(255, 120, 120))); + // } + } } - } - ui.label(""); + ui.label(""); - if this.context.payment_secret_confirm.is_not_empty() && this.context.payment_secret != this.context.payment_secret_confirm { - ui.label(" "); - ui.label(RichText::new(i18n("Passphrases do not match")).color(egui::Color32::from_rgb(255, 120, 120))); - ui.label(" "); - submit = false; - } else { - ui.label(" "); - } + if this.context.payment_secret_confirm.is_not_empty() && this.context.payment_secret != this.context.payment_secret_confirm { + ui.label(" "); + ui.label(RichText::new(i18n("Passphrases do not match")).color(egui::Color32::from_rgb(255, 120, 120))); + ui.label(" "); + submit = false; + } else { + ui.label(" "); + } - if submit { - this.state = State::CreateWalletConfirm; - this.focus.clear(); + if submit { + this.state = State::CreateWalletConfirm; + this.focus.clear(); + } } - } - }) - .with_footer(|this,ui| { + }) + .with_footer(|this,ui| { - if this.context.enable_payment_secret { - let is_weak = !core.settings.developer.password_restrictions_disabled() && this.context.payment_secret_score.unwrap_or_default() < 80.0; - let enabled = this.context.wallet_secret == this.context.wallet_secret_confirm && this.context.wallet_secret.is_not_empty(); - if ui.large_button_enabled(enabled && !is_weak, i18n("Continue")).clicked() { + if this.context.enable_payment_secret { + let is_weak = !core.settings.developer.password_restrictions_disabled() && this.context.payment_secret_score.unwrap_or_default() < 80.0; + let enabled = this.context.wallet_secret == this.context.wallet_secret_confirm && this.context.wallet_secret.is_not_empty(); + if ui.large_button_enabled(enabled && !is_weak, i18n("Continue")).clicked() { + proceed = true; + } + } else if ui.large_button_enabled(true, i18n("Skip")).clicked() { proceed = true; } - } else if ui.large_button_enabled(true, i18n("Skip")).clicked() { - proceed = true; - } - }) - .render(ui); + }) + .render(ui); + } - if proceed { - if self.context.import_private_key { - self.state = State::ImportMnemonicWithEditor; - } else { - self.state = State::CreateWalletConfirm; - } + if proceed { + if self.context.import_private_key_file { + self.state = State::ImportWallet; self.focus.clear(); - + } else if self.context.import_private_key { + self.state = State::ImportMnemonic; + } else { + self.state = State::CreateWalletConfirm; } + self.focus.clear(); + + } } @@ -724,106 +858,247 @@ impl ModuleT for WalletCreate { } State::ImportMnemonicWithEditor => { + let proceed = Self::import_mnemonic::( + &mut self.state, + &mut self.context.import_private_key_mnemonic, + &self.context.word_count, + &mut self.focus, + Focus::WalletMnemonic, + ui, + |m|{ + *m = State::KeySelection; + } + ); - let mnemonic_is_ok = Rc::new(RefCell::new(false)); - let proceed = Rc::new(RefCell::new(false)); + if proceed { + self.state = State::ImportWallet; + self.focus.clear(); + } + + } + State::ImportMnemonicInteractive => { Panel::new(self) - .with_caption(i18n("Mnemonic Import")) - .with_back(|this| { - this.state = State::KeySelection; + .with_caption(i18n("Importing Wallet File")) + .with_header(|_, ui|{ + ui.label(" "); + ui.label(i18n("Select file...")); + ui.label(" "); + ui.label(" "); + ui.add_space(64.); + ui.add(egui::Spinner::new().size(92.)); }) - .with_close_enabled(false, |_|{ + .render(ui); + + let wallet_import_result = Payload::>>::new("wallet_import_file_dialog"); + if !wallet_import_result.is_pending() { + wallet_import_result.mark_pending(); + let import_result = wallet_import_result.clone(); + let file_handle = rfd::AsyncFileDialog::new() + .add_filter("LegacyWallet", &["kpk"]) + .add_filter("GolangWallet", &["json"]) + .set_directory("/") + .pick_file(); + #[cfg(target_arch="wasm32")] + wasm_bindgen_futures::spawn_local(async move { + if let Some(file_handle) = file_handle.await{ + let file_data = file_handle.read().await; + let json = String::from_utf8_lossy(&file_data.clone()).to_string(); + log_trace!("json: {json}"); + import_result.store(Ok(Some(json))); + }else{ + import_result.store(Ok(None)); + } + }); + #[cfg(not(target_arch="wasm32"))] + spawn_with_result(&import_result, async move { + if let Some(file_handle) = file_handle.await{ + let file_data = file_handle.read().await; + let json = String::from_utf8_lossy(&file_data.clone()).to_string(); + log_trace!("json: {json}"); + Ok(Some(json)) + }else{ + Ok(None) + } + }); + } + + if let Some(result) = wallet_import_result.take() { + match result { + Ok(json) => { + if let Some(json) = json{ + match parse_wallet_file(&json){ + Ok(data)=>{ + self.context.wallet_file_data = Some(data); + self.state = State::WalletFileSecret; + } + Err(err)=>{ + log_error!("{} {}",i18n("Wallet import error:"), err); + self.state = State::WalletError(Arc::new(err), State::ImportMnemonicInteractive.into()); + } + } + }else{ + self.state = State::KeySelection; + } + } + Err(err) => { + log_error!("{} {}",i18n("Wallet import error:"), err); + self.state = State::WalletError(Arc::new(err), State::ImportMnemonicInteractive.into()); + } + } + } + } + + State::WalletFileSecret =>{ + let data = self.context.wallet_file_data.as_ref().unwrap().clone(); + Panel::new(self) + .with_caption(i18n("Wallet File Secret")) + .with_back(|this|{ + this.state = State::ImportMnemonicInteractive; + }) + .with_header(move |_this,ui| { + ui.label(" "); + ui.label(i18n("For decrypting uploaded file please enter wallet secret.")); + ui.label(" "); + }) + .with_body(|this, ui|{ + if core.settings.developer.enable { + CollapsingHeader::new(i18n("File contents")) + .default_open(false) + .show_unindented(ui, |ui| { + ui.label(data.to_string()); + ui.label(" "); + }); + } + TextEditor::new( + &mut this.context.decrypt_wallet_secret, + &mut this.focus, + Focus::DecryptWalletSecret, + |ui, text| { + ui.label(RichText::new(i18n("Enter password to decrypt this wallet file")).size(12.).raised()); + ui.add_sized(editor_size, TextEdit::singleline(text).password(true) + .vertical_align(Align::Center)) + }, + ) + .submit(|text,focus| { + if text.is_not_empty(){ + this.state = State::DecryptWalletFile; + focus.clear(); + } }) - .with_header(|this,ui| { + .build(ui); + ui.label(" "); + if ui.large_button_enabled(this.context.decrypt_wallet_secret.is_not_empty(), i18n("Decrypt")).clicked(){ + this.state = State::DecryptWalletFile; + } + ui.label(" "); + if ui.large_button(i18n("Cancel")).clicked(){ + this.state = State::Start; + this.context.decrypt_wallet_secret.zeroize(); + this.context.wallet_file_data = None; + if core.has_stack() { + core.back(); + } + } + }) + .render(ui); + } + + State::DecryptWalletFile=>{ + Panel::new(self) + .with_caption(i18n("Decrypting Wallet File")) + .with_header(|_, ui|{ + ui.label(" "); + ui.label(i18n("Please wait...")); + ui.label(" "); + ui.label(" "); ui.add_space(64.); - match this.context.word_count { - WordCount::Words12 => { - ui.label(i18n("Please enter mnemonic comprised of 12 words")); + ui.add(egui::Spinner::new().size(92.)); + }) + .render(ui); + let wallet_file_data = self.context.wallet_file_data.as_ref().unwrap().clone(); + let import_secret = Secret::from(self.context.decrypt_wallet_secret.as_str()); + let wallet_decrypt_result = Payload::>::new("wallet_file_decrypt_result"); + if !wallet_decrypt_result.is_pending() { + //let wallet = self.runtime.wallet().clone(); + spawn_with_result(&wallet_decrypt_result, async move { + sleep(Duration::from_secs(2)).await; + + match wallet_file_data{ + WalletFileData::Legacy(data)=>{ + let key_data = kaspa_wallet_core::compat::gen0::get_v0_keydata(&data, &import_secret)?; + Ok(WalletFileDecryptedData::Legacy(key_data.mnemonic.clone())) } - WordCount::Words24 => { - ui.label(i18n("Please enter mnemonic comprised of 24 words")); + WalletFileData::GoWallet(data)=>{ + let mnemonic = match data { + WalletType::SingleV0(data)=>{ + kaspa_wallet_core::compat::gen1::decrypt_mnemonic( + data.num_threads, + data.encrypted_mnemonic, + import_secret.as_ref() + )? + } + }; + Ok(WalletFileDecryptedData::Core(mnemonic)) + } + WalletFileData::Core(_data)=>{ + Err(Error::custom("Core wallet import not supported yet.")) } } }) - .with_body(|this,ui| { - let mut submit = false; - TextEditor::new( - &mut this.context.import_private_key_mnemonic, - &mut this.focus, - Focus::WalletMnemonic, - |ui, text| { - // ui.add_space(8.); - ui.label(RichText::new(i18n("Enter mnemonic")).size(12.).raised()); - let mut available_width = ui.available_width(); - if available_width > 1024. { - available_width *= 0.5; - } else if available_width > 512. { - available_width *= 0.7; - } - ui.add_sized(vec2(available_width, 64.), TextEdit::multiline(text)) - }, - ) - .submit(|_text,_focus| { - submit = true; - }) - .build(ui); + } - let phrase = this.context.import_private_key_mnemonic.as_str().split_ascii_whitespace().filter(|s| s.is_not_empty()).collect::>(); - let needed = match this.context.word_count { - WordCount::Words12 => 12, - WordCount::Words24 => 24, - } as usize; - // TODO - use comparison chain - #[allow(clippy::comparison_chain)] - if phrase.len() < needed { - ui.label(""); - ui.label(format!("{} {} {}", i18n("Please enter additional"), needed - phrase.len(), i18n("words"))); - ui.label(""); - } else if phrase.len() > needed { - ui.label(""); - ui.colored_label(error_color(), format!("{} '{}' {}", i18n("Too many words in the"), phrase.len() - needed, i18n("word mnemonic"))); - ui.label(""); - } else { - let mut phrase = phrase.join(" "); - match Mnemonic::new(phrase.as_str(), Language::default()) { - Ok(_) => { - *mnemonic_is_ok.borrow_mut() = true; - if submit { - *proceed.borrow_mut() = true; + if let Some(result) = wallet_decrypt_result.take() { + self.context.decrypt_wallet_secret.zeroize(); + match result { + Ok(wallet_file_decrypted_data) => { + match wallet_file_decrypted_data{ + WalletFileDecryptedData::Legacy(mnemonic)=>{ + self.context.word_count = WordCount::Words12; + self.context.import_legacy = true; + self.context.import_with_bip39_passphrase = false; + self.context.import_private_key_mnemonic = mnemonic; + self.state = State::WalletName; + } + WalletFileDecryptedData::Core(mnemonic)=>{ + let size = mnemonic.trim().split(' ').collect::>().len(); + match size{ + 24|12=>{ + if size == 12 { + self.context.word_count = WordCount::Words12; + }else{ + self.context.word_count = WordCount::Words24; + } + self.context.import_legacy = false; + self.context.import_with_bip39_passphrase = false; + self.context.import_private_key_mnemonic = mnemonic; + self.state = State::WalletName; + } + _=>{ + self.state = State::WalletError(Arc::new(Error::Custom(format!("Invalid mnemonic count: {size}"))), State::ImportMnemonicInteractive.into()); + } } - }, - Err(err) => { - phrase.zeroize(); - ui.label(""); - ui.label(RichText::new(format!("Error processing mnemonic; {err}")).color(error_color())); - ui.label(""); + } } } - }) - .with_footer(|_this,ui| { - if ui.large_button_enabled(*mnemonic_is_ok.borrow(), i18n("Continue")).clicked() { - *proceed.borrow_mut() = true; + Err(err) => { + log_error!("{} {}",i18n("Wallet decrypting error:"), err); + self.state = State::WalletError(Arc::new(err), State::WalletFileSecret.into()); } - }) - .render(ui); - - if *proceed.borrow() { - self.state = State::ImportWallet; - self.focus.clear(); + } } - - } - - State::ImportMnemonicInteractive => { - // TODO } State::ImportWallet => { - + let import_legacy = self.context.import_legacy; + let caption = if import_legacy { + i18n("Importing Legacy Wallet") + }else{ + i18n("Importing Wallet") + }; Panel::new(self) - .with_caption(i18n("Importing Wallet")) + .with_caption(caption) .with_header(|_, ui|{ ui.label(" "); ui.label(i18n("Please wait...")); @@ -886,14 +1161,24 @@ impl ModuleT for WalletCreate { let prv_key_data_id = wallet.clone().prv_key_data_create(wallet_secret.clone(), prv_key_data_args).await?; let mut account_descriptors = Vec::with_capacity(number_of_accounts); - for account_index in 0..number_of_accounts { - let account_create_args = AccountCreateArgs::new_bip32( - prv_key_data_id, - payment_secret.clone(), - args.account_name.is_not_empty().then_some(args.account_name.clone()), - Some(account_index as u64), - ); - account_descriptors.push(wallet.clone().accounts_create(wallet_secret.clone(), account_create_args).await?); + if import_legacy{ + for _account_index in 0..number_of_accounts { + let account_create_args = AccountCreateArgs::new_legacy( + prv_key_data_id, + args.account_name.is_not_empty().then_some(args.account_name.clone()), + ); + account_descriptors.push(wallet.clone().accounts_create(wallet_secret.clone(), account_create_args).await?); + } + }else{ + for account_index in 0..number_of_accounts { + let account_create_args = AccountCreateArgs::new_bip32( + prv_key_data_id, + payment_secret.clone(), + args.account_name.is_not_empty().then_some(args.account_name.clone()), + Some(account_index as u64), + ); + account_descriptors.push(wallet.clone().accounts_create(wallet_secret.clone(), account_create_args).await?); + } } wallet.clone().flush(wallet_secret).await?; @@ -913,12 +1198,11 @@ impl ModuleT for WalletCreate { } Err(err) => { log_error!("{} {}",i18n("Wallet creation error:"), err); - self.state = State::WalletError(Arc::new(err)); + self.state = State::WalletError(Arc::new(err), State::Start.into()); } } } } - State::CreateWalletConfirm => { // - TODO: present summary information self.state = State::CreateWallet; @@ -1001,27 +1285,26 @@ impl ModuleT for WalletCreate { } Err(err) => { log_error!("{} {}",i18n("Wallet creation error:"), err); - self.state = State::WalletError(Arc::new(err)); + self.state = State::WalletError(Arc::new(err), State::Start.into()); } } } } - - State::WalletError(err) => { - + State::WalletError(err, back_state) => { + let msg = if self.context.import_private_key || self.context.import_private_key_file{i18n("Error importing a wallet")}else{i18n("Error creating a wallet")}; Panel::new(self) - .with_caption("Error") + .with_caption(i18n("Error")) .with_header(move |this,ui| { ui.label(" "); ui.label(" "); - ui.label(RichText::new(i18n("Error creating a wallet")).color(egui::Color32::from_rgb(255, 120, 120))); + ui.label(RichText::new(msg).color(egui::Color32::from_rgb(255, 120, 120))); ui.label(RichText::new(err.to_string()).color(egui::Color32::from_rgb(255, 120, 120))); ui.label(" "); ui.label(" "); if ui.large_button(i18n("Restart")).clicked() { - this.state = State::Start; + this.state = back_state.as_ref().clone(); } }) .render(ui); @@ -1047,7 +1330,7 @@ impl ModuleT for WalletCreate { ui.label(""); }) .with_footer(|_this,ui| { - if ui.large_button_enabled(true, "Continue").clicked() { + if ui.large_button_enabled(true, i18n("Continue")).clicked() { finish = true; } }) @@ -1074,7 +1357,7 @@ impl ModuleT for WalletCreate { // TODO }) .with_footer(move |this,ui| { - if ui.add_sized(editor_size, egui::Button::new("Continue")).clicked() { + if ui.add_sized(editor_size, egui::Button::new(i18n("Continue"))).clicked() { this.state = State::Finish; } }) diff --git a/core/src/modules/wallet_open.rs b/core/src/modules/wallet_open.rs index 81d3864..c272b0e 100644 --- a/core/src/modules/wallet_open.rs +++ b/core/src/modules/wallet_open.rs @@ -160,12 +160,12 @@ impl ModuleT for WalletOpen { self.wallet_secret.zeroize(); let wallet = self.runtime.wallet().clone(); let wallet_descriptor_delegate = wallet_descriptor.clone(); + self.state = State::Unlocking { wallet_descriptor }; spawn_with_result(&unlock_result, async move { + sleep(Duration::from_secs(1)).await; wallet.wallet_open(wallet_secret, Some(wallet_descriptor_delegate.filename), true, true).await?; Ok(()) }); - - self.state = State::Unlocking { wallet_descriptor }; } } diff --git a/core/src/modules/wallet_secret.rs b/core/src/modules/wallet_secret.rs index 0c84fe6..dd90d92 100644 --- a/core/src/modules/wallet_secret.rs +++ b/core/src/modules/wallet_secret.rs @@ -131,7 +131,7 @@ impl ModuleT for WalletSecret { // let mut back = false; Panel::new(self) - .with_caption("Change Wallet Secret") + .with_caption(i18n("Change Wallet Secret")) .with_back(|_this| { *back.borrow_mut() = true; }) diff --git a/core/src/modules/welcome.rs b/core/src/modules/welcome.rs index 2b5956f..f00d2c2 100644 --- a/core/src/modules/welcome.rs +++ b/core/src/modules/welcome.rs @@ -94,7 +94,7 @@ impl Welcome { egui::ComboBox::from_id_source("language_selector") .selected_text(language) .show_ui(ui, |ui| { - ui.style_mut().wrap = Some(false); + ui.style_mut().wrap_mode = Some(TextWrapMode::Extend); ui.set_min_width(60.0); dictionary.enabled_languages().into_iter().for_each(|(code,lang)| { ui.selectable_value(&mut self.settings.language_code, code.to_string(), lang); @@ -108,7 +108,7 @@ impl Welcome { egui::ComboBox::from_id_source("theme_color_selector") .selected_text(theme_color.as_str()) .show_ui(ui, |ui| { - ui.style_mut().wrap = Some(false); + ui.style_mut().wrap_mode = Some(TextWrapMode::Extend); ui.set_min_width(60.0); theme_colors().keys().for_each(|name| { ui.selectable_value(&mut theme_color, name.to_string(), name); @@ -127,7 +127,7 @@ impl Welcome { egui::ComboBox::from_id_source("theme_style_selector") .selected_text(theme_style.as_str()) .show_ui(ui, |ui| { - ui.style_mut().wrap = Some(false); + ui.style_mut().wrap_mode = Some(TextWrapMode::Extend); ui.set_min_width(60.0); theme_styles().keys().for_each(|name| { ui.selectable_value(&mut theme_style, name.to_string(), name); @@ -158,7 +158,8 @@ impl Welcome { if ui.medium_button(format!("{} {}", egui_phosphor::light::CHECK, i18n("Apply"))).clicked() { let mut settings = self.settings.clone(); settings.initialized = true; - settings.store_sync().expect("Unable to store settings"); + let message = i18n("Unable to store settings"); + settings.store_sync().expect(message); self.runtime.kaspa_service().update_services(&self.settings.node, None); core.settings = settings.clone(); core.get_mut::().load(settings); @@ -231,8 +232,8 @@ impl Welcome { if proceed { let mut settings = self.settings.clone(); settings.initialized = true; - - settings.store_sync().expect("Unable to store settings"); + let message = i18n("Unable to store settings"); + settings.store_sync().expect(message); core.settings = settings.clone(); self.runtime.kaspa_service().update_services(&settings.node, None); diff --git a/core/src/network.rs b/core/src/network.rs index 57a7c4f..b51e989 100644 --- a/core/src/network.rs +++ b/core/src/network.rs @@ -1,8 +1,9 @@ use crate::imports::*; +use kaspa_addresses::Prefix as AddressPrefix; use kaspa_consensus_core::config::params::Params; use kaspa_wallet_core::utxo::NetworkParams; -const BASIC_TRANSACTION_MASS: u64 = 1281; +pub const BASIC_TRANSACTION_MASS: u64 = 2036; #[derive( Default, Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash, @@ -70,6 +71,18 @@ impl From for NetworkId { } } +impl From<&Network> for AddressPrefix { + fn from(network: &Network) -> Self { + NetworkType::from(network).into() + } +} + +impl From for AddressPrefix { + fn from(network: Network) -> Self { + NetworkType::from(network).into() + } +} + impl From<&Network> for NetworkId { fn from(network: &Network) -> Self { match network { @@ -108,15 +121,15 @@ impl From<&Network> for Params { } } -impl From for NetworkParams { +impl From for &'static NetworkParams { fn from(network: Network) -> Self { - NetworkId::from(network).into() + NetworkParams::from(NetworkId::from(network)) } } -impl From<&Network> for NetworkParams { +impl From<&Network> for &'static NetworkParams { fn from(network: &Network) -> Self { - NetworkId::from(network).into() + NetworkParams::from(NetworkId::from(network)) } } @@ -154,6 +167,7 @@ const NETWORK_PRESSURE_ALPHA_HIGH: f32 = 0.8; const NETWORK_PRESSURE_ALPHA_LOW: f32 = 0.5; const NETWORK_PRESSURE_THRESHOLD_HIGH: f32 = 0.4; const NETWORK_PRESSURE_THRESHOLD_LOW: f32 = 0.2; +const NETWORK_CAPACITY_THRESHOLD: usize = 90; #[derive(Default, Debug, Clone)] pub struct NetworkPressure { @@ -210,4 +224,12 @@ impl NetworkPressure { pub fn capacity(&self) -> usize { (self.pressure * 100.0).min(100.0) as usize } + + pub fn above_capacity(&self) -> bool { + self.capacity() > NETWORK_CAPACITY_THRESHOLD + } + + pub fn below_capacity(&self) -> bool { + self.capacity() <= NETWORK_CAPACITY_THRESHOLD + } } diff --git a/core/src/primitives/account.rs b/core/src/primitives/account.rs index 5534818..5d85f42 100644 --- a/core/src/primitives/account.rs +++ b/core/src/primitives/account.rs @@ -47,6 +47,7 @@ struct Inner { context: Mutex>>, transactions: Mutex, total_transaction_count: AtomicU64, + transaction_start: AtomicU64, is_loading: AtomicBool, network: Mutex, } @@ -62,6 +63,7 @@ impl Inner { context: Mutex::new(context), transactions: Mutex::new(TransactionCollection::default()), total_transaction_count: AtomicU64::new(0), + transaction_start: AtomicU64::new(0), is_loading: AtomicBool::new(true), network: Mutex::new(network), } @@ -164,6 +166,10 @@ impl Account { *self.inner.network.lock().unwrap() = network; } + pub fn network(&self) -> Network { + *self.inner.network.lock().unwrap() + } + pub fn set_loading(&self, is_loading: bool) { self.inner.is_loading.store(is_loading, Ordering::SeqCst); } @@ -182,15 +188,29 @@ impl Account { self.inner.total_transaction_count.load(Ordering::SeqCst) } + pub fn set_transaction_start(&self, start: u64) { + self.inner.transaction_start.store(start, Ordering::SeqCst); + } + + pub fn transaction_start(&self) -> u64 { + self.inner.transaction_start.load(Ordering::SeqCst) + } + pub fn load_transactions( &self, mut transactions: Vec>, total: u64, ) -> Result<()> { - // TODO - pagination self.transactions().clear(); - transactions.sort_by(|a, b| b.block_daa_score.cmp(&a.block_daa_score)); + transactions.sort_by(|a, b| { + if let Some(b_ts) = b.unixtime_msec { + if let Some(a_ts) = a.unixtime_msec { + return b_ts.cmp(&a_ts); + } + } + b.block_daa_score.cmp(&a.block_daa_score) + }); self.set_transaction_count(total); self.transactions() diff --git a/core/src/primitives/descriptor.rs b/core/src/primitives/descriptor.rs index 952509b..1e2d02d 100644 --- a/core/src/primitives/descriptor.rs +++ b/core/src/primitives/descriptor.rs @@ -1,64 +1,180 @@ use crate::imports::*; +use crate::primitives::transaction::paint_header_icon; use convert_case::{Case, Casing}; -fn grid(ui: &mut Ui, id: &AccountId, add_contents: impl FnOnce(&mut Ui)) { - CollapsingHeader::new(id.to_string()) - .default_open(true) - .show(ui, |ui| { - Grid::new("bip32_descriptor") - .num_columns(2) - .spacing([20.0, 4.0]) - .show(ui, |ui| { - add_contents(ui); - }); - }); -} +// fn grid(ui: &mut Ui, id: &AccountId, add_contents: impl FnOnce(&mut Ui)) { +// CollapsingHeader::new(id.to_string()) +// .default_open(true) +// .show(ui, |ui| { +// Grid::new("bip32_descriptor") +// .num_columns(3) +// .spacing([20.0, 4.0]) +// .show(ui, |ui| { +// add_contents(ui); +// }); +// }); +// } pub trait RenderAccountDescriptor { - fn render(&self, ui: &mut Ui); + fn render(&self, ui: &mut Ui, network: Network); } impl RenderAccountDescriptor for AccountDescriptor { - fn render(&self, ui: &mut Ui) { - grid(ui, &self.account_id, |ui| { - let color = strong_color(); + fn render(&self, ui: &mut Ui, network: Network) { + let collapsing_header = CollapsingHeader::new(self.account_id.to_string()) + .id_source("bip32_descriptor") + .icon(paint_header_icon) + .default_open(true); + + collapsing_header.show(ui, |ui| { + let default_color = theme_color().default_color; + let color = theme_color().strong_color; + + let explorer = match network { + Network::Mainnet => MAINNET_EXPLORER, + Network::Testnet10 => TESTNET10_EXPLORER, + Network::Testnet11 => TESTNET11_EXPLORER, + }; + let pixels_per_point = ui.ctx().pixels_per_point(); + let one_char_width = ui + .painter() + .layout_no_wrap('x'.to_string(), Default::default(), color) + .size() + .x; + let heading_width = one_char_width * 18.0; + let width = ui.available_width() / pixels_per_point; + let content = LayoutJobBuilderSettings::new(width, 8.0, None); + ljb(&content) + .heading(ui, heading_width, i18n("Account Name"), default_color) + .text( + self.account_name.as_ref().unwrap_or(&"...".to_string()), + color, + ) + .label(ui); + ljb(&content) + .heading(ui, heading_width, i18n("Type"), default_color) + .text( + &self.account_kind().as_ref().to_case(Case::UpperCamel), + color, + ) + .label(ui); - ui.label(i18n("Account Name")); - ui.colored_label( - color, - self.account_name.as_ref().unwrap_or(&"...".to_string()), - ); - ui.end_row(); - ui.label(i18n("Type")); - ui.colored_label( - color, - self.account_kind().as_ref().to_case(Case::UpperCamel), - ); - ui.end_row(); - ui.label(i18n("Receive Address")); - ui.colored_label( - color, - self.receive_address - .as_ref() - .map(String::from) - .unwrap_or("N/A".to_string()), - ); - ui.end_row(); - ui.label(i18n("Change Address")); - ui.colored_label( - color, - self.change_address - .as_ref() - .map(String::from) - .unwrap_or("N/A".to_string()), - ); - ui.end_row(); + let job = + ljb(&content).heading(ui, heading_width, i18n("Receive Address"), default_color); + match self.receive_address.as_ref() { + Some(address) => { + job.address( + ui, + &address.to_string(), + &format!("{explorer}/addresses/{address}"), + color, + Some(6), + ); + } + None => { + job.text("N/A", color).label(ui); + } + } + + let job = + ljb(&content).heading(ui, heading_width, i18n("Change Address"), default_color); + match self.change_address.as_ref() { + Some(address) => { + job.address( + ui, + &address.to_string(), + &format!("{explorer}/addresses/{address}"), + color, + Some(6), + ); + } + None => { + job.text("N/A", color).label(ui); + } + } for (prop, value) in self.properties.iter() { - ui.label(i18n(prop.to_string().as_str())); - ui.colored_label(color, value.to_string()); - ui.end_row(); + let text = value.to_string(); + let job = ljb(&content).heading( + ui, + heading_width, + i18n(prop.to_string().as_str()), + default_color, + ); + + if text.len() > 20 { + job.text(&format_partial_string(&text, Some(10)), color) + .with_clipboard_icon(ui, &text); + } else { + job.text(&text, color).label(ui); + } } + + //grid(ui, &self.account_id, |ui| { + + // ui.label(i18n("Account Name")); + // ui.colored_label( + // color, + // self.account_name.as_ref().unwrap_or(&"...".to_string()), + // ); + // ui.label(""); + // ui.end_row(); + // ui.label(i18n("Type")); + // ui.colored_label( + // color, + // self.account_kind().as_ref().to_case(Case::UpperCamel), + // ); + // ui.label(""); + // ui.end_row(); + //ui.label(i18n("Receive Address")); + + // match self.receive_address.as_ref(){ + // Some(address)=>{ + // ui.hyperlink_to_tab( + // RichText::new(format_address(address, None)) + // //.font(self.font_id.unwrap_or_default()) + // .color(color), + // &format!("{explorer}/addresses/{address}"), + // ); + // ui.label("xxxx"); + // //LayoutJobBuilder::clipboard_icon(&mut ui[1], address.to_string()); + // } + // None=>{ + // ui.colored_label( + // color, + // "N/A".to_string() + // ); + // } + // } + + // ui.end_row(); + // ui.label(i18n("Change Address")); + // match self.change_address.as_ref(){ + // Some(address)=>{ + // ui.hyperlink_to_tab( + // RichText::new(format_address(address, None)) + // //.font(self.font_id.unwrap_or_default()) + // .color(color), + // &format!("{explorer}/addresses/{address}"), + // ); + // LayoutJobBuilder::clipboard_icon(ui, address.to_string()); + // } + // None=>{ + // ui.colored_label( + // color, + // "N/A".to_string() + // ); + // } + // } + + // ui.end_row(); + + // for (prop, value) in self.properties.iter() { + // ui.label(i18n(prop.to_string().as_str())); + // ui.colored_label(color, value.to_string()); + // ui.label(""); + // ui.end_row(); + // } }); } } diff --git a/core/src/primitives/transaction.rs b/core/src/primitives/transaction.rs index f51d9bd..013d9cb 100644 --- a/core/src/primitives/transaction.rs +++ b/core/src/primitives/transaction.rs @@ -1,6 +1,7 @@ use crate::imports::*; use egui_phosphor::light::*; use kaspa_consensus_core::tx::{TransactionInput, TransactionOutpoint, TransactionOutput}; +use kaspa_txscript::standard::extract_script_pub_key_address; use kaspa_wallet_core::storage::{ transaction::{TransactionData, UtxoRecord}, TransactionKind, @@ -126,11 +127,17 @@ impl Transaction { &self, ui: &mut Ui, network_type: NetworkType, + network: Network, current_daa_score: Option, _include_utxos: bool, largest: Option, ) { let width = ui.available_width() / ui.ctx().pixels_per_point(); + let w_min = 250.0; + let w_span = 196.0; + let w_range = 32.0; + // println!("width: {} {} {}", width,((width - w_min) / w_span),(((width - w_min) / w_span) * w_range).max(16.0)); + let padding_range = Some((((width - w_min) / w_span) * w_range).max(16.0) as usize); let Context { record, maturity } = &*self.context(); @@ -161,6 +168,12 @@ impl Transaction { let is_transfer = record.is_transfer(); + let explorer = match network { + Network::Mainnet => MAINNET_EXPLORER, + Network::Testnet10 => TESTNET10_EXPLORER, + Network::Testnet11 => TESTNET11_EXPLORER, + }; + match record.transaction_data() { TransactionData::Reorg { utxo_entries, .. } | TransactionData::Stasis { utxo_entries, .. } @@ -256,8 +269,13 @@ impl Transaction { collapsing_header.show(ui, |ui| { ljb(&content) .padded(15, "Transaction id:", default_color) - .text(&transaction_id, default_color) - .label(ui); + .transaction_id( + ui, + &transaction_id, + &format!("{explorer}/txs/{transaction_id}"), + default_color, + padding_range, + ); ljb(&content) .padded(15, "Received at:", default_color) @@ -277,7 +295,13 @@ impl Transaction { .map(|addr| addr.to_string()) .unwrap_or_else(|| "n/a".to_string()); - ljb(&content).text(&address, default_color).label(ui); + ljb(&content).address( + ui, + &address, + &format!("{explorer}/addresses/{address}"), + default_color, + padding_range, + ); if *is_coinbase { ljb(&content) @@ -289,12 +313,19 @@ impl Transaction { .label(ui); } - ljb(&content) - .text( - &format!("Script: {}", script_public_key.script_as_hex()), - default_color, - ) - .label(ui); + ljb(&content).text("Script:", default_color).script( + ui, + &script_public_key.script_as_hex(), + default_color, + padding_range, + ); + + // ljb(&content) + // .text( + // &format!("Script: {}", script_public_key.script_as_hex()), + // default_color, + // ) + // .label(ui); }); }); } @@ -414,11 +445,14 @@ impl Transaction { } collapsing_header.show(ui, |ui| { ljb(&content) - .text( - &format!("{}: {}", "Transaction id", transaction_id), + .padded(15, "Transaction id:", default_color) + .transaction_id( + ui, + &transaction_id, + &format!("{explorer}/txs/{transaction_id}"), default_color, - ) - .label(ui); + padding_range, + ); ljb(&content) .padded(15, "Submitted at:", default_color) @@ -475,16 +509,16 @@ impl Transaction { transaction_id, index, } = previous_outpoint; - + let transaction_id = transaction_id.to_string(); ljb(&content) .text( &format!( " {sequence:>2}: {}:{index} SigOps: {sig_op_count}", - transaction_id + format_partial_string(&transaction_id, padding_range) ), default_color, ) - .label(ui); + .with_clipboard_icon(ui, &transaction_id); } ljb(&content) @@ -494,22 +528,53 @@ impl Transaction { ) .label(ui); + let address_prefix: kaspa_addresses::Prefix = network.into(); + for output in transaction.outputs.iter() { let TransactionOutput { value, - script_public_key, + .. + //script_public_key, } = output; ljb(&content) - .text( - &format!( - " {} {}", - ps2k(*value), - script_public_key.script_as_hex() - ), - default_color, - ) + .text(&format!(" {}", ps2k(*value)), default_color) .label(ui); + + // ljb(&content) + // .text(&format!(" {}", script_public_key.script_as_hex()), default_color) + // .label(ui); + + let address_info = extract_script_pub_key_address( + &output.script_public_key, + address_prefix, + ); + match address_info { + Ok(address) => { + let address = address.to_string(); + ljb(&content).padded(2, "", default_color).address( + ui, + &address, + &format!("{explorer}/addresses/{address}"), + default_color, + padding_range, + ); + } + Err(err) => { + log_info!("scriptpubkey to address error: {:?}", err) + } + } + + // ljb(&content) + // .text( + // &format!( + // " {} {}", + // ps2k(*value), + // script_public_key.script_as_hex() + // ), + // default_color, + // ) + // .label(ui); } }); } diff --git a/core/src/runtime/mod.rs b/core/src/runtime/mod.rs index 11a9eab..9929f93 100644 --- a/core/src/runtime/mod.rs +++ b/core/src/runtime/mod.rs @@ -35,6 +35,7 @@ pub struct Inner { kaspa: Arc, peer_monitor_service: Arc, + feerate_monitor_service: Arc, update_monitor_service: Arc, market_monitor_service: Arc, @@ -75,6 +76,10 @@ impl Runtime { application_events.clone(), settings, )); + let feerate_monitor_service = Arc::new(FeerateMonitorService::new( + application_events.clone(), + settings, + )); let market_monitor_service = Arc::new(MarketMonitorService::new( application_events.clone(), settings, @@ -104,6 +109,7 @@ impl Runtime { repaint_service.clone(), kaspa.clone(), peer_monitor_service.clone(), + feerate_monitor_service.clone(), market_monitor_service.clone(), update_monitor_service.clone(), // #[cfg(not(feature = "lean"))] @@ -118,6 +124,7 @@ impl Runtime { application_events, repaint_service, kaspa, + feerate_monitor_service, peer_monitor_service, market_monitor_service, update_monitor_service, @@ -227,6 +234,10 @@ impl Runtime { &self.inner.kaspa } + pub fn feerate_monitor_service(&self) -> &Arc { + &self.inner.feerate_monitor_service + } + pub fn peer_monitor_service(&self) -> &Arc { &self.inner.peer_monitor_service } diff --git a/core/src/runtime/panic.rs b/core/src/runtime/panic.rs index 45d3e05..17a8e83 100644 --- a/core/src/runtime/panic.rs +++ b/core/src/runtime/panic.rs @@ -1,17 +1,20 @@ +use std::backtrace::Backtrace; use std::fs; use std::panic; -use std::backtrace::Backtrace; +use workflow_core::dirs; pub fn init_graceful_panic_handler() { let default_hook = panic::take_hook(); panic::set_hook(Box::new(move |panic_info| { let backtrace = Backtrace::capture(); // println!("panic! \n{:#?}\n{:#?}", panic_info, backtrace); - let _ = fs::write("kaspa-ng.log", format!("{:#?}\n{:#?}", panic_info, backtrace)); - println!("An unexpected condition (panic) has occurred. Additional information has been written to `kaspa-ng.log`"); + let _ = fs::write( + dirs::home_dir().unwrap_or_default().join("kaspa-ng.log"), + format!("{:#?}\n{:#?}", panic_info, backtrace), + ); + println!("An unexpected condition (panic) has occurred. Additional information has been written to `~/kaspa-ng.log`"); default_hook(panic_info); crate::runtime::abort(); - })); } @@ -19,9 +22,14 @@ pub fn init_ungraceful_panic_handler() { let default_hook = panic::take_hook(); panic::set_hook(Box::new(move |panic_info| { let backtrace = Backtrace::capture(); - let _ = fs::write("kaspa-ng-service.log", format!("{:#?}\n{:#?}", panic_info, backtrace)); + let _ = fs::write( + dirs::home_dir() + .unwrap_or_default() + .join("kaspa-ng-service.log"), + format!("{:#?}\n{:#?}", panic_info, backtrace), + ); default_hook(panic_info); - println!("An unexpected condition (panic) has occurred. Additional information has been written to `kaspa-ng-service.log`"); + println!("An unexpected condition (panic) has occurred. Additional information has been written to `~/kaspa-ng-service.log`"); println!("Exiting..."); std::process::exit(1); })); diff --git a/core/src/runtime/services/feerate_monitor.rs b/core/src/runtime/services/feerate_monitor.rs new file mode 100644 index 0000000..56dcf23 --- /dev/null +++ b/core/src/runtime/services/feerate_monitor.rs @@ -0,0 +1,157 @@ +use crate::imports::*; + +// pub const FEERATE_POLLING_INTERVAL_SECONDS: u64 = 10; +pub const FEERATE_POLLING_INTERVAL_SECONDS: u64 = 3; + +pub enum FeerateMonitorEvents { + Enable, + Disable, + Fetch, + Exit, +} + +pub struct FeerateMonitorService { + pub application_events: ApplicationEventsChannel, + pub service_events: Channel, + pub task_ctl: Channel<()>, + pub rpc_api: Mutex>>, + // pub feerate: Mutex>>, + pub is_enabled: Arc, +} + +impl FeerateMonitorService { + pub fn new(application_events: ApplicationEventsChannel, _settings: &Settings) -> Self { + Self { + application_events, + service_events: Channel::unbounded(), + task_ctl: Channel::oneshot(), + rpc_api: Mutex::new(None), + // feerate: Mutex::new(None), + is_enabled: Arc::new(AtomicBool::new(true)), + } + } + + pub fn rpc_api(&self) -> Option> { + self.rpc_api.lock().unwrap().clone() + } + + // pub fn peer_info(&self) -> Option>> { + // self.peer_info.lock().unwrap().clone() + // } + + pub fn enable(&self) { + self.service_events + .sender + .try_send(FeerateMonitorEvents::Enable) + .unwrap(); + } + + pub fn disable(&self) { + self.service_events + .sender + .try_send(FeerateMonitorEvents::Disable) + .unwrap(); + } + + async fn fetch(self: &Arc) -> Result<()> { + if let Some(rpc_api) = self.rpc_api() { + if let Ok(resp) = rpc_api.get_fee_estimate().await { + // println!("{}",resp.priority_bucket.feerate); + // let feerate = Arc::new(resp); + // self.feerate.lock().unwrap().replace(feerate.clone()); + self.application_events + .send(Events::Feerate { + feerate: Some(Arc::new(resp)), + }) + .await + .unwrap(); + } + } + + Ok(()) + } + + async fn clear(&self) { + self.application_events + .send(Events::Feerate { feerate: None }) + .await + .unwrap(); + } +} + +#[async_trait] +impl Service for FeerateMonitorService { + fn name(&self) -> &'static str { + "feerate-monitor" + } + + async fn attach_rpc(self: Arc, rpc_api: &Arc) -> Result<()> { + self.rpc_api.lock().unwrap().replace(rpc_api.clone()); + Ok(()) + } + + async fn detach_rpc(self: Arc) -> Result<()> { + self.rpc_api.lock().unwrap().take(); + self.clear().await; + + Ok(()) + } + + async fn spawn(self: Arc) -> Result<()> { + // let this = self.clone(); + // let application_events_sender = self.application_events.sender.clone(); + + let interval = task::interval(Duration::from_secs(FEERATE_POLLING_INTERVAL_SECONDS)); + pin_mut!(interval); + + loop { + select! { + _ = interval.next().fuse() => { + if !self.is_enabled.load(Ordering::Relaxed) { + continue; + } + + self.fetch().await.unwrap(); + }, + msg = self.as_ref().service_events.receiver.recv().fuse() => { + if let Ok(event) = msg { + match event { + FeerateMonitorEvents::Fetch => { + self.fetch().await.unwrap(); + } + FeerateMonitorEvents::Enable => { + self.is_enabled.store(true, Ordering::Relaxed); + self.fetch().await.unwrap(); + } + FeerateMonitorEvents::Disable => { + self.is_enabled.store(false, Ordering::Relaxed); + // self.feerate.lock().unwrap().take(); + self.clear().await; + } + FeerateMonitorEvents::Exit => { + break; + } + } + } else { + break; + } + } + } + } + + self.task_ctl.send(()).await.unwrap(); + Ok(()) + } + + fn terminate(self: Arc) { + self.service_events + .sender + .try_send(FeerateMonitorEvents::Exit) + .unwrap(); + } + + async fn join(self: Arc) -> Result<()> { + self.task_ctl.recv().await.unwrap(); + Ok(()) + } +} diff --git a/core/src/runtime/services/kaspa/config.rs b/core/src/runtime/services/kaspa/config.rs index 7aa3b4a..4522f44 100644 --- a/core/src/runtime/services/kaspa/config.rs +++ b/core/src/runtime/services/kaspa/config.rs @@ -25,6 +25,9 @@ fn user_agent() -> String { pub struct Config { network: Network, enable_upnp: bool, + enable_wrpc_borsh: bool, + #[allow(dead_code)] + enable_wrpc_json: bool, enable_grpc: bool, grpc_network_interface: NetworkInterfaceConfig, kaspad_daemon_args_enable: bool, @@ -39,6 +42,8 @@ impl From for Config { Self { network: node_settings.network, enable_upnp: node_settings.enable_upnp, + enable_wrpc_borsh: node_settings.enable_wrpc_borsh, + enable_wrpc_json: node_settings.enable_wrpc_json, enable_grpc: node_settings.enable_grpc, grpc_network_interface: node_settings.grpc_network_interface, kaspad_daemon_args_enable: node_settings.kaspad_daemon_args_enable, @@ -125,7 +130,11 @@ cfg_if! { args.push("--nogrpc"); } - args.push("--rpclisten-borsh=default"); + if config.enable_wrpc_borsh { + args.push("--rpclisten-borsh=0.0.0.0"); + } else { + args.push("--rpclisten-borsh=127.0.0.1"); + } args.push(format!("--uacomment={}", user_agent_comment())); diff --git a/core/src/runtime/services/kaspa/mod.rs b/core/src/runtime/services/kaspa/mod.rs index e91ce51..559445f 100644 --- a/core/src/runtime/services/kaspa/mod.rs +++ b/core/src/runtime/services/kaspa/mod.rs @@ -7,6 +7,7 @@ use kaspa_wallet_core::events::Events as CoreWalletEvents; use kaspa_wallet_core::rpc::{ ConnectOptions, ConnectStrategy, NotificationMode, Rpc, RpcCtl, WrpcEncoding, }; +use kaspa_wrpc_client::Resolver; use workflow_core::runtime; const ENABLE_PREEMPTIVE_DISCONNECT: bool = true; @@ -43,6 +44,7 @@ cfg_if! { pub enum KaspadServiceEvents { StartInternalInProc { config: Config, network : Network }, StartInternalAsDaemon { config: Config, network : Network }, + StartInternalAsPassiveSync { config: Config, network : Network }, StartExternalAsDaemon { path: PathBuf, config: Config, network : Network }, StartRemoteConnection { rpc_config : RpcConfig, network : Network }, Stdout { line : String }, @@ -157,18 +159,35 @@ impl KaspaService { pub fn create_rpc_client(config: &RpcConfig, network: Network) -> Result { match config { - RpcConfig::Wrpc { url, encoding } => { - // log_warn!("create_rpc_client - RPC URL: {:?}", url); + RpcConfig::Wrpc { + url, + encoding, + resolver_urls, + } => { + let resolver_or_none = match url { + Some(_) => None, + None => { + if resolver_urls.is_none() { + Some(Resolver::default()) + } else { + Some(Resolver::new(resolver_urls.clone(), false)) + } + } + }; + let url = url.clone().unwrap_or_else(|| "127.0.0.1".to_string()); let url = KaspaRpcClient::parse_url(url, *encoding, NetworkId::from(network).into())?; let wrpc_client = Arc::new(KaspaRpcClient::new_with_args( *encoding, - Some(url.as_str()), - // TODO: introduce resolver for public node resolution - None, - None, + if resolver_or_none.is_some() { + None + } else { + Some(url.as_str()) + }, + resolver_or_none, + Some(NetworkId::from(network)), None, )?); let rpc_ctl = wrpc_client.ctl().clone(); @@ -366,6 +385,9 @@ impl KaspaService { .connect_call(ConnectRequest { url: None, network_id: network.into(), + retry_on_error: true, + block_async_connect: false, + require_sync: false, }) .await?; @@ -478,9 +500,33 @@ impl KaspaService { self.retain(kaspad.clone()); kaspad.clone().start(config).await.unwrap(); + let rpc_config = RpcConfig::Wrpc { + url: Some("127.0.0.1".to_string()), + encoding: WrpcEncoding::Borsh, + resolver_urls: None, + }; + + let rpc = Self::create_rpc_client(&rpc_config, network) + .expect("Kaspad Service - unable to create wRPC client"); + self.start_all_services(Some(rpc), network).await?; + self.connect_rpc_client().await?; + + self.update_storage(); + } + #[cfg(not(target_arch = "wasm32"))] + KaspadServiceEvents::StartInternalAsPassiveSync { config, network } => { + self.stop_all_services().await?; + + self.handle_network_change(network).await?; + + let kaspad = Arc::new(daemon::Daemon::new(None, &self.service_events)); + self.retain(kaspad.clone()); + kaspad.clone().start(config).await.unwrap(); + let rpc_config = RpcConfig::Wrpc { url: None, encoding: WrpcEncoding::Borsh, + resolver_urls: None, }; let rpc = Self::create_rpc_client(&rpc_config, network) @@ -508,6 +554,7 @@ impl KaspaService { let rpc_config = RpcConfig::Wrpc { url: None, encoding: WrpcEncoding::Borsh, + resolver_urls: None, }; let rpc = Self::create_rpc_client(&rpc_config, network) @@ -581,6 +628,8 @@ impl KaspaService { CoreWalletEvents::DaaScoreChange { .. } => {} CoreWalletEvents::Connect { .. } => { self.connect_all_services().await?; + + // self.wallet(). } CoreWalletEvents::Disconnect { .. } => { self.disconnect_all_services().await?; @@ -733,7 +782,7 @@ impl Service for KaspaService { // new instance - setup new context let context = Context {}; self.wallet() - .retain_context("kaspa-ng", Some(context.try_to_vec()?)) + .retain_context("kaspa-ng", Some(borsh::to_vec(&context)?)) .await?; } } else { @@ -838,6 +887,9 @@ impl KaspadServiceEvents { KaspadNodeKind::IntegratedAsDaemon => { Ok(KaspadServiceEvents::StartInternalAsDaemon { config : Config::from(node_settings.clone()), network : node_settings.network }) } + KaspadNodeKind::IntegratedAsPassiveSync => { + Ok(KaspadServiceEvents::StartInternalAsPassiveSync { config : Config::from(node_settings.clone()), network : node_settings.network }) + } KaspadNodeKind::ExternalAsDaemon => { let path = node_settings.kaspad_daemon_binary.clone(); Ok(KaspadServiceEvents::StartExternalAsDaemon { path : PathBuf::from(path), config : Config::from(node_settings.clone()), network : node_settings.network }) diff --git a/core/src/runtime/services/metrics_monitor.rs b/core/src/runtime/services/metrics_monitor.rs index 711d19a..0528667 100644 --- a/core/src/runtime/services/metrics_monitor.rs +++ b/core/src/runtime/services/metrics_monitor.rs @@ -2,6 +2,7 @@ use crate::imports::*; use crate::runtime::Service; pub use futures::{future::FutureExt, select, Future}; use kaspa_metrics_core::{Metric, Metrics, MetricsSnapshot}; +use kaspa_rpc_core::GetSystemInfoResponse; #[allow(unused_imports)] use kaspa_wallet_core::rpc::{NotificationMode, Rpc, RpcCtl, WrpcEncoding}; @@ -14,13 +15,13 @@ pub struct MetricsService { pub metrics: Arc, pub metrics_data: Mutex>>, pub samples_since_connection: Arc, + pub rpc_api: Mutex>>, } impl MetricsService { pub fn new(application_events: ApplicationEventsChannel, _settings: &Settings) -> Self { let metrics = Arc::new(Metrics::default()); - let metrics_data = Metric::list() - .into_iter() + let metrics_data = Metric::into_iter() .map(|metric| (metric, Vec::new())) .collect::>>(); @@ -30,9 +31,14 @@ impl MetricsService { metrics, metrics_data: Mutex::new(metrics_data), samples_since_connection: Arc::new(AtomicUsize::new(0)), + rpc_api: Mutex::new(None), } } + pub fn rpc_api(&self) -> Option> { + self.rpc_api.lock().unwrap().clone() + } + pub fn metrics_data(&self) -> MutexGuard<'_, HashMap>> { self.metrics_data.lock().unwrap() } @@ -43,7 +49,7 @@ impl MetricsService { pub fn reset_metrics_data(&self) -> Result<()> { let mut metrics_data = self.metrics_data.lock().unwrap(); - for metric in Metric::list().into_iter() { + for metric in Metric::into_iter() { metrics_data.insert(metric, Vec::with_capacity(MAX_METRICS_SAMPLES)); } Ok(()) @@ -52,9 +58,12 @@ impl MetricsService { pub fn ingest_metrics_snapshot(&self, snapshot: Box) -> Result<()> { let timestamp = snapshot.unixtime_millis; let mut metrics_data = self.metrics_data.lock().unwrap(); - for metric in Metric::list().into_iter() { + for metric in Metric::into_iter() { let dest = metrics_data.get_mut(&metric).unwrap(); if dest.is_empty() { + if snapshot.duration_millis < 0.0 { + continue; + } let y = snapshot.get(&metric); let mut timestamp = timestamp - MAX_METRICS_SAMPLES as f64 * 1000.0; for _ in 0..(MAX_METRICS_SAMPLES - 1) { @@ -66,10 +75,16 @@ impl MetricsService { if dest.len() > MAX_METRICS_SAMPLES { dest.drain(0..dest.len() - MAX_METRICS_SAMPLES); } - dest.push(PlotPoint { - x: timestamp, - y: snapshot.get(&metric), - }); + + let y = snapshot.get(&metric); + if y.is_finite() { + dest.push(PlotPoint { x: timestamp, y }); + } else { + dest.push(PlotPoint { + x: timestamp, + y: 0.0, + }); + } } if snapshot.node_cpu_cores > 0.0 { @@ -103,6 +118,8 @@ impl Service for MetricsService { } async fn attach_rpc(self: Arc, rpc_api: &Arc) -> Result<()> { + self.rpc_api.lock().unwrap().replace(rpc_api.clone()); + let this = self.clone(); self.metrics .register_sink(Arc::new(Box::new(move |snapshot: MetricsSnapshot| { @@ -118,6 +135,8 @@ impl Service for MetricsService { Ok(()) } async fn detach_rpc(self: Arc) -> Result<()> { + self.rpc_api.lock().unwrap().take(); + self.metrics.unregister_sink(); self.metrics.stop_task().await?; self.metrics.bind_rpc(None); @@ -127,6 +146,34 @@ impl Service for MetricsService { async fn connect_rpc(self: Arc) -> Result<()> { self.samples_since_connection.store(0, Ordering::SeqCst); + + if let Some(rpc_api) = self.rpc_api() { + if let Ok(system_info) = rpc_api.get_system_info().await { + let GetSystemInfoResponse { + version, system_id, .. + } = system_info; + + let system_id = system_id + .map(|id| format!(" - {}", id[0..8].to_vec().to_hex())) + .unwrap_or_else(|| "".to_string()); + + self.application_events + .sender + .try_send(crate::events::Events::NodeInfo { + node_info: Some(Box::new(format!("{}{}", version, system_id))), + }) + .unwrap(); + } + } + + Ok(()) + } + + async fn disconnect_rpc(self: Arc) -> Result<()> { + self.application_events + .sender + .try_send(crate::events::Events::NodeInfo { node_info: None }) + .unwrap(); Ok(()) } diff --git a/core/src/runtime/services/mod.rs b/core/src/runtime/services/mod.rs index 4b9e0e6..fdf871e 100644 --- a/core/src/runtime/services/mod.rs +++ b/core/src/runtime/services/mod.rs @@ -9,6 +9,9 @@ pub use kaspa::KaspaService; pub mod peer_monitor; pub use peer_monitor::PeerMonitorService; +pub mod feerate_monitor; +pub use feerate_monitor::FeerateMonitorService; + pub mod market_monitor; pub use market_monitor::MarketMonitorService; diff --git a/core/src/servers.rs b/core/src/servers.rs index 21248d1..2a08721 100644 --- a/core/src/servers.rs +++ b/core/src/servers.rs @@ -1,55 +1,49 @@ +use kaspa_wrpc_client::Resolver; + use crate::imports::*; type ServerCollection = Arc>>>>; pub fn public_server_config() -> &'static ServerCollection { static SERVERS: OnceLock = OnceLock::new(); - SERVERS.get_or_init(|| Arc::new(Mutex::new(parse_default_servers().clone()))) + SERVERS.get_or_init(|| Arc::new(Mutex::new(HashMap::new().into()))) } #[derive(Clone, Debug, Serialize, Deserialize)] pub struct Server { - pub name: Option, - pub ident: Option, - pub location: Option, - pub protocol: WrpcEncoding, - pub address: String, - pub enable: Option, - pub link: Option, + pub id: String, + pub url: String, + #[serde(skip_serializing_if = "Option::is_none")] + pub provider_name: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub provider_url: Option, + pub encoding: WrpcEncoding, pub network: Network, - pub bias: Option, - pub manual: Option, - pub version: Option, + pub online: bool, + pub status: String, } impl Eq for Server {} impl PartialEq for Server { fn eq(&self, other: &Self) -> bool { - self.address == other.address + self.url == other.url } } impl std::fmt::Display for Server { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - let mut title = self.name.clone().unwrap_or(self.address.to_string()); - if let Some(ident) = self.ident.as_ref() { - title += format!(" ({ident})").as_str(); - } else if let Some(location) = self.location.as_ref() { - title += format!(" ({location})").as_str(); - } - - write!(f, "{}", title) + write!(f, "{} - {}", self.id, self.url) } } impl Server { pub fn address(&self) -> String { - self.address.clone() + self.url.clone() } pub fn wrpc_encoding(&self) -> WrpcEncoding { - self.protocol + self.encoding } } @@ -58,41 +52,6 @@ pub struct ServerConfig { server: Vec, } -fn try_parse_servers(toml: &str) -> Result>>> { - let servers: Vec = toml::from_str::(toml)? - .server - .into_iter() - .filter(|server| server.enable.unwrap_or(true)) - .collect::>(); - - let servers = HashMap::group_from(servers.into_iter().map(|server| (server.network, server))); - - Ok(servers.into()) -} - -// fn parse_servers(toml: &str) -> Arc> { -fn parse_servers(toml: &str) -> Arc>> { - match try_parse_servers(toml) { - Ok(servers) => servers, - Err(e) => { - cfg_if! { - if #[cfg(not(target_arch = "wasm32"))] { - println!(); - panic!("Error parsing Servers.toml: {}", e); - } else { - log_error!("Error parsing Servers.toml: {}", e); - HashMap::default().into() - } - } - } - } -} - -pub fn parse_default_servers() -> &'static Arc>> { - static EMBEDDED_SERVERS: OnceLock>>> = OnceLock::new(); - EMBEDDED_SERVERS.get_or_init(|| parse_servers(include_str!("../resources/Servers.toml"))) -} - pub fn update_public_servers() { spawn(async move { let servers = fetch_public_servers().await?; @@ -102,28 +61,33 @@ pub fn update_public_servers() { } pub fn load_public_servers() { - parse_default_servers(); update_public_servers(); } -async fn fetch_public_servers() -> Result>>> { - cfg_if! { - if #[cfg(all(target_arch = "wasm32", not(feature = "browser-extension")))] { - let href = location()?.href()?; - let location = if let Some(index) = href.find('#') { - let (location, _) = href.split_at(index); - location.to_string() - } else { - href - }; - let url = format!("{}/Servers.toml", location.trim_end_matches('/')); - let servers_toml = http::get(url).await?; - try_parse_servers(&servers_toml) - } else { - // TODO - parse local Servers.toml file - Ok(parse_default_servers().clone()) +async fn get_server_list() -> Result> { + // Get all resolver urls + if let Some(resolvers) = Resolver::default().urls() { + // Try to connect to each resolver + for resolver in resolvers { + // Retrieve server list + let server_list = + workflow_http::get_json::>(format!("{}/status", resolver)).await; + if server_list.is_ok() { + return Ok(server_list?); + } } } + + // If no resolver was able to connect, return an error + Err(Error::custom("Unable to connect to any resolver")) +} + +async fn fetch_public_servers() -> Result>>> { + // Get server list + let servers = get_server_list().await?; + // Group servers by network + let servers = HashMap::group_from(servers.into_iter().map(|server| (server.network, server))); + Ok(servers.into()) } pub fn tls() -> bool { @@ -145,73 +109,14 @@ pub fn public_servers(network: &Network) -> Vec { servers .iter() .filter(|server| { - server.enable.unwrap_or(true) + server.online && !(tls() - && !(server.address.starts_with("wss://") - || server.address.starts_with("wrpcs://"))) + && !(server.url.starts_with("wss://") || server.url.starts_with("wrpcs://"))) }) .cloned() .collect::>() } -pub fn random_public_server(network: &Network, options: Option) -> Option { - let servers = public_server_config().lock().unwrap().clone(); - - let RpcOptions { - force_server, - blacklist_servers, - } = options.unwrap_or_default(); - - if let Some(server) = force_server.clone() { - return Some(server); - } - - if let Some(servers) = servers.get(network) { - #[allow(clippy::nonminimal_bool)] - let mut servers = servers - .iter() - .filter(|server| { - server.enable.unwrap_or(true) - && !server.manual.unwrap_or(false) - && !server.address.contains("localhost") - && !server.address.contains("127.0.0.1") - && !(tls() - && !(server.address.starts_with("wss://") - || server.address.starts_with("wrpcs://"))) - && !blacklist_servers.contains(&server.address) - }) - .cloned() - .collect::>(); - - let max = servers - .iter() - .map(|server| server.bias.unwrap_or(1.)) - .max_by(|a, b| a.total_cmp(b)) - .unwrap_or(1.); - servers.iter_mut().for_each(|server| { - server.bias = Some(server.bias.unwrap_or(1.) / max); - }); - - if servers.is_empty() { - log_error!("Unable to select random public server: no servers available"); - None - } else { - let mut server = None; - while server.is_none() { - let selected = &servers[rand::thread_rng().gen::() % servers.len()]; - let f = rand::thread_rng().gen_range(0.0..1.0); - if f < selected.bias.unwrap_or(1.) { - server = Some(selected.clone()); - } - } - server - } - } else { - log_error!("Unable to select random public server: no servers available for this network"); - None - } -} - pub fn render_public_server_selector( core: &mut Core, ui: &mut egui::Ui, @@ -270,11 +175,9 @@ pub fn render_public_server_selector( *close = true; } - if let Some(link) = server.link.as_ref() { - ui.add_space(4.); - ui.hyperlink_url_to_tab(link); - ui.add_space(4.); - } + ui.add_space(4.); + ui.hyperlink_url_to_tab(server.url); + ui.add_space(4.); } }); }, diff --git a/core/src/settings.rs b/core/src/settings.rs index ae5376b..30185e5 100644 --- a/core/src/settings.rs +++ b/core/src/settings.rs @@ -1,4 +1,4 @@ -use crate::{imports::*, servers::random_public_server}; +use crate::imports::*; use kaspa_metrics_core::Metric; use kaspa_utils::networking::ContextualNetAddress; use kaspa_wallet_core::storage::local::storage::Storage; @@ -17,14 +17,16 @@ cfg_if! { IntegratedInProc, #[default] IntegratedAsDaemon, + IntegratedAsPassiveSync, ExternalAsDaemon, } - const KASPAD_NODE_KINDS: [KaspadNodeKind; 5] = [ + const KASPAD_NODE_KINDS: [KaspadNodeKind; 6] = [ KaspadNodeKind::Disable, KaspadNodeKind::Remote, KaspadNodeKind::IntegratedInProc, KaspadNodeKind::IntegratedAsDaemon, + KaspadNodeKind::IntegratedAsPassiveSync, KaspadNodeKind::ExternalAsDaemon, ]; @@ -35,6 +37,7 @@ cfg_if! { KaspadNodeKind::Remote => write!(f, "{}", i18n("Remote")), KaspadNodeKind::IntegratedInProc => write!(f, "{}", i18n("Integrated Node")), KaspadNodeKind::IntegratedAsDaemon => write!(f, "{}", i18n("Integrated Daemon")), + KaspadNodeKind::IntegratedAsPassiveSync => write!(f, "{}", i18n("Passive Sync")), KaspadNodeKind::ExternalAsDaemon => write!(f, "{}", i18n("External Daemon")), } } @@ -78,6 +81,8 @@ impl KaspadNodeKind { #[cfg(not(target_arch = "wasm32"))] KaspadNodeKind::IntegratedAsDaemon => i18n("The node is spawned as a child daemon process (recommended)."), #[cfg(not(target_arch = "wasm32"))] + KaspadNodeKind::IntegratedAsPassiveSync => i18n("The node synchronizes in the background while Kaspa-NG is connected to a public node. Once the node is synchronized, you can switch to the 'Integrated Daemon' mode."), + #[cfg(not(target_arch = "wasm32"))] KaspadNodeKind::ExternalAsDaemon => i18n("A binary at another location is spawned a child process (experimental, for development purposes only)."), } } @@ -91,6 +96,8 @@ impl KaspadNodeKind { #[cfg(not(target_arch = "wasm32"))] KaspadNodeKind::IntegratedAsDaemon => true, #[cfg(not(target_arch = "wasm32"))] + KaspadNodeKind::IntegratedAsPassiveSync => true, + #[cfg(not(target_arch = "wasm32"))] KaspadNodeKind::ExternalAsDaemon => true, } } @@ -104,6 +111,8 @@ impl KaspadNodeKind { #[cfg(not(target_arch = "wasm32"))] KaspadNodeKind::IntegratedAsDaemon => true, #[cfg(not(target_arch = "wasm32"))] + KaspadNodeKind::IntegratedAsPassiveSync => true, + #[cfg(not(target_arch = "wasm32"))] KaspadNodeKind::ExternalAsDaemon => true, } } @@ -112,7 +121,6 @@ impl KaspadNodeKind { #[derive(Default)] pub struct RpcOptions { pub blacklist_servers: Vec, - pub force_server: Option, } impl RpcOptions { @@ -124,11 +132,6 @@ impl RpcOptions { self.blacklist_servers.push(server); self } - - pub fn force(mut self, server: Server) -> Self { - self.force_server = Some(server); - self - } } #[derive(Default, Debug, Clone, Serialize, Deserialize, Eq, PartialEq)] @@ -144,6 +147,7 @@ pub enum RpcConfig { Wrpc { url: Option, encoding: WrpcEncoding, + resolver_urls: Option>>, }, Grpc { url: Option, @@ -163,6 +167,7 @@ impl Default for RpcConfig { RpcConfig::Wrpc { url: Some(url.to_string()), encoding: WrpcEncoding::Borsh, + resolver_urls: None, } } } @@ -238,7 +243,7 @@ impl NodeConnectionConfigKind { pub fn iter() -> impl Iterator { [ NodeConnectionConfigKind::PublicServerRandom, - NodeConnectionConfigKind::PublicServerCustom, + // NodeConnectionConfigKind::PublicServerCustom, NodeConnectionConfigKind::Custom, // NodeConnectionConfigKind::Local, ] @@ -355,9 +360,12 @@ impl NodeMemoryScale { #[serde(rename_all = "kebab-case")] pub struct NodeSettings { pub connection_config_kind: NodeConnectionConfigKind, - pub public_servers: HashMap, pub rpc_kind: RpcKind, pub wrpc_url: String, + #[serde(default)] + pub enable_wrpc_borsh: bool, + #[serde(default)] + pub wrpc_borsh_network_interface: NetworkInterfaceConfig, pub wrpc_encoding: WrpcEncoding, pub enable_wrpc_json: bool, pub wrpc_json_network_interface: NetworkInterfaceConfig, @@ -381,10 +389,11 @@ impl Default for NodeSettings { fn default() -> Self { Self { connection_config_kind: NodeConnectionConfigKind::default(), - public_servers: HashMap::default(), rpc_kind: RpcKind::Wrpc, wrpc_url: "127.0.0.1".to_string(), wrpc_encoding: WrpcEncoding::Borsh, + enable_wrpc_borsh: false, + wrpc_borsh_network_interface: NetworkInterfaceConfig::default(), enable_wrpc_json: false, wrpc_json_network_interface: NetworkInterfaceConfig::default(), enable_grpc: false, @@ -414,7 +423,6 @@ impl NodeSettings { } else if self.memory_scale != other.memory_scale { Some(true) } else if self.connection_config_kind != other.connection_config_kind - || (other.connection_config_kind == NodeConnectionConfigKind::PublicServerCustom && !self.public_servers.compare(&other.public_servers)) { Some(true) } else if self.kaspad_daemon_storage_folder_enable != other.kaspad_daemon_storage_folder_enable @@ -447,9 +455,7 @@ impl NodeSettings { Some(true) } else if self.node_kind != other.node_kind { Some(true) - } else if self.connection_config_kind != other.connection_config_kind - || (other.connection_config_kind == NodeConnectionConfigKind::PublicServerCustom && !self.public_servers.compare(&other.public_servers)) - { + } else if self.connection_config_kind != other.connection_config_kind { Some(true) } else if self.rpc_kind != other.rpc_kind || self.wrpc_url != other.wrpc_url @@ -466,37 +472,24 @@ impl NodeSettings { } impl RpcConfig { - pub fn from_node_settings(settings: &NodeSettings, options: Option) -> Self { + pub fn from_node_settings(settings: &NodeSettings, _options: Option) -> Self { match settings.connection_config_kind { NodeConnectionConfigKind::Custom => match settings.rpc_kind { RpcKind::Wrpc => RpcConfig::Wrpc { url: Some(settings.wrpc_url.clone()), encoding: settings.wrpc_encoding, + resolver_urls: None, }, RpcKind::Grpc => RpcConfig::Grpc { url: Some(settings.grpc_network_interface.clone()), }, }, - NodeConnectionConfigKind::PublicServerCustom => { - if let Some(public_server) = settings.public_servers.get(&settings.network) { - RpcConfig::Wrpc { - url: Some(public_server.address()), - encoding: public_server.wrpc_encoding(), - } - } else { - RpcConfig::default() - } - } - NodeConnectionConfigKind::PublicServerRandom => { - if let Some(public_server) = random_public_server(&settings.network, options) { - RpcConfig::Wrpc { - url: Some(public_server.address()), - encoding: public_server.wrpc_encoding(), - } - } else { - RpcConfig::default() - } - } + NodeConnectionConfigKind::PublicServerCustom + | NodeConnectionConfigKind::PublicServerRandom => RpcConfig::Wrpc { + url: None, + encoding: settings.wrpc_encoding, + resolver_urls: None, + }, } } } @@ -531,16 +524,27 @@ pub struct UserInterfaceSettings { pub scale: f32, pub metrics: MetricsSettings, pub balance_padding: bool, + #[serde(default)] + pub disable_frame: bool, } impl Default for UserInterfaceSettings { fn default() -> Self { + // cfg_if! { + // if #[cfg(target_os = "windows")] { + // let disable_frame = true; + // } else { + // let disable_frame = false; + // } + // } + Self { theme_color: "Dark".to_string(), theme_style: "Rounded".to_string(), scale: 1.0, metrics: MetricsSettings::default(), balance_padding: true, + disable_frame: true, } } } @@ -587,6 +591,36 @@ impl DeveloperSettings { } } +#[derive(Describe, Default, Debug, Clone, Copy, Eq, PartialEq, Serialize, Deserialize)] +#[serde(rename_all = "kebab-case")] +pub enum EstimatorMode { + #[describe("Fee Market Only")] + FeeMarketOnly, + #[default] + #[describe("Fee Market & Network Pressure")] + NetworkPressure, +} + +#[derive(Debug, Eq, PartialEq, Clone, Serialize, Deserialize)] +#[serde(rename_all = "kebab-case")] +pub struct EstimatorSettings { + pub mode: EstimatorMode, +} + +impl Default for EstimatorSettings { + fn default() -> Self { + Self { + mode: EstimatorMode::NetworkPressure, + } + } +} + +impl EstimatorSettings { + pub fn track_network_load(&self) -> EstimatorMode { + self.mode + } +} + #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "kebab-case")] pub struct Settings { @@ -596,11 +630,15 @@ pub struct Settings { pub version: String, pub update: String, pub developer: DeveloperSettings, + #[serde(default)] + pub estimator: EstimatorSettings, pub node: NodeSettings, pub user_interface: UserInterfaceSettings, pub language_code: String, pub update_monitor: bool, pub market_monitor: bool, + // #[serde(default)] + // pub disable_frame: bool, } impl Default for Settings { @@ -613,11 +651,13 @@ impl Default for Settings { version: "0.0.0".to_string(), update: crate::app::VERSION.to_string(), developer: DeveloperSettings::default(), + estimator: EstimatorSettings::default(), node: NodeSettings::default(), user_interface: UserInterfaceSettings::default(), language_code: "en".to_string(), update_monitor: true, market_monitor: true, + // disable_frame: false, } } } @@ -658,10 +698,18 @@ impl Settings { let storage = storage()?; if storage.exists().await.unwrap_or(false) { match read_json::(storage.filename()).await { - Ok(settings) => { + Ok(mut settings) => { if settings.revision != SETTINGS_REVISION { Ok(Self::default()) } else { + if matches!( + settings.node.connection_config_kind, + NodeConnectionConfigKind::PublicServerCustom + ) { + settings.node.connection_config_kind = + NodeConnectionConfigKind::PublicServerRandom; + } + Ok(settings) } } diff --git a/core/src/status.rs b/core/src/status.rs index b0dec9d..76aac7e 100644 --- a/core/src/status.rs +++ b/core/src/status.rs @@ -117,8 +117,6 @@ impl<'core> Status<'core> { } fn render_connection_selector(&mut self, ui: &mut Ui) { - use egui_phosphor::light::CHECK; - let connection_selector = !self.core.module().modal() && self.core.settings.node.connection_config_kind.is_public(); @@ -131,13 +129,13 @@ impl<'core> Status<'core> { } }); } else { - let mut response = + let response = ui.add(Label::new(RichText::new(i18n("CONNECTED"))).sense(Sense::click())); let popup_id = PopupPanel::id(ui, "node_connection_selector_popup"); if !PopupPanel::is_open(ui, popup_id) { - response = response.on_hover_ui(|ui| { + response.on_hover_ui(|ui| { if let Some(wrpc_url) = runtime().kaspa_service().rpc_url() { ui.horizontal(|ui| { ui.label(wrpc_url); @@ -145,52 +143,6 @@ impl<'core> Status<'core> { } }); } - - PopupPanel::new( - popup_id, - |_ui| response, - |ui, close| { - set_menu_style(ui.style_mut()); - - let wrpc_url = runtime().kaspa_service().rpc_url(); - let public_servers = public_servers(&self.settings().node.network); - for server in public_servers.into_iter() { - let name = if Some(server.address()) == wrpc_url { - format!("{server} {CHECK}") - } else { - server.to_string() - }; - - if ui.button(name).clicked() { - *close = true; - - match self.core.settings.node.connection_config_kind { - NodeConnectionConfigKind::PublicServerCustom => { - self.core - .settings - .node - .public_servers - .insert(self.core.settings.node.network, server.clone()); - self.core.settings.store_sync().ok(); - runtime() - .kaspa_service() - .update_services(&self.core.settings.node, None); - } - NodeConnectionConfigKind::PublicServerRandom => { - let options = RpcOptions::new().force(server); - runtime() - .kaspa_service() - .update_services(&self.core.settings.node, Some(options)); - } - _ => {} - } - } - } - }, - ) - .with_min_width(140.0) - .with_above_or_below(AboveOrBelow::Above) - .build(ui); } } @@ -392,8 +344,10 @@ impl<'core> Status<'core> { } ui.label( + // "\u{E610}" RichText::new(icon) .size(status_icon_size) + .family(FontFamily::Name("phosphor".into())) .color(theme_color().icon_connected_color), ); } else { diff --git a/core/src/tests/transactions.rs b/core/src/tests/transactions.rs index 6a4372c..c0f9311 100644 --- a/core/src/tests/transactions.rs +++ b/core/src/tests/transactions.rs @@ -1,5 +1,6 @@ use crate::imports::*; use kaspa_wallet_core::tx::mass::MassCalculator; +use kaspa_wallet_core::utxo::NetworkParams; #[test] fn test_generic_transaction_mass() { @@ -60,8 +61,8 @@ fn test_generic_transaction_mass() { ); for network in Network::iter() { - let calc = MassCalculator::new(&network.into(), &network.into()); - let mass = calc.calc_mass_for_signed_transaction(&tx, 1); - println!("basic transaction mass for {} is {}", network, mass); + let calc = MassCalculator::new(&network.into(), NetworkParams::from(network.into())); + let mass = calc.calc_compute_mass_for_unsigned_consensus_transaction(&tx, 1); + println!("compute transaction mass for {} is {}", network, mass); } } diff --git a/core/src/utils/arglist.rs b/core/src/utils/arglist.rs index 0a6d6a5..634161f 100644 --- a/core/src/utils/arglist.rs +++ b/core/src/utils/arglist.rs @@ -13,13 +13,12 @@ impl Arglist { impl From for Vec { fn from(arglist: Arglist) -> Self { - let mut unique_elements = AHashSet::new(); - let mut list = vec![]; + let mut args = AHashSet::new(); for arg in arglist.args.into_iter() { - if unique_elements.insert(arg.clone()) { - list.push(arg); - } + args.insert(arg); } + let mut list = args.into_iter().collect::>(); + list.sort(); list } } diff --git a/core/src/utils/average.rs b/core/src/utils/average.rs new file mode 100644 index 0000000..a27900b --- /dev/null +++ b/core/src/utils/average.rs @@ -0,0 +1,515 @@ +use crate::imports::*; + +const MAX_AVERAGE_SAMPLES: usize = 6; +const AVERAGE_ALPHA_HIGH: f64 = 0.8; +const AVERAGE_ALPHA_LOW: f64 = 0.5; + +#[derive(Default)] +pub struct FeerateEstimate { + pub low: FeerateBucketAverage, + pub economic: FeerateBucketAverage, + pub priority: FeerateBucketAverage, +} + +// impl Default for FeerateEstimate { +// fn default() -> Self { +// Self { +// low: FeerateBucketAverage::default(), +// economic: FeerateBucketAverage::default(), +// priority: FeerateBucketAverage::default(), +// } +// } +// } + +impl FeerateEstimate { + pub fn new(estimate: &RpcFeeEstimate) -> Self { + let mut feerate = Self { + low: FeerateBucketAverage::default(), + economic: FeerateBucketAverage::default(), + priority: FeerateBucketAverage::default(), + }; + feerate.insert(estimate); + feerate + } + + pub fn insert(&mut self, estimate: &RpcFeeEstimate) { + self.low.insert( + estimate + .low_buckets + .first() + .map(FeerateBucket::from) + .unwrap_or_default(), + ); + self.economic.insert( + estimate + .normal_buckets + .first() + .map(FeerateBucket::from) + .unwrap_or_default(), + ); + self.priority.insert(estimate.priority_bucket.into()); + } +} + +#[derive(Debug, Clone, Copy)] +pub struct FeerateBucket { + pub feerate: f64, + pub seconds: f64, +} + +impl FeerateBucket { + pub fn new(feerate: f64, seconds: f64) -> Self { + Self { feerate, seconds } + } + + pub fn with_seconds(self, seconds: f64) -> Self { + Self { + feerate: self.feerate, + seconds, + } + } +} + +impl std::cmp::PartialOrd for FeerateBucket { + fn partial_cmp(&self, other: &Self) -> Option { + self.feerate.partial_cmp(&other.feerate) + } +} + +impl std::cmp::PartialEq for FeerateBucket { + fn eq(&self, other: &Self) -> bool { + self.feerate == other.feerate + } +} + +impl std::ops::Add for FeerateBucket { + type Output = Self; + + fn add(self, other: Self) -> Self { + Self { + feerate: self.feerate + other.feerate, + seconds: self.seconds + other.seconds, + } + } +} + +impl Default for FeerateBucket { + fn default() -> Self { + Self { + feerate: 1.0, + seconds: 1.0, + } + } +} + +impl From<&RpcFeerateBucket> for FeerateBucket { + fn from(bucket: &RpcFeerateBucket) -> Self { + Self { + feerate: bucket.feerate, + seconds: bucket.estimated_seconds, + } + } +} + +impl From for FeerateBucket { + fn from(bucket: RpcFeerateBucket) -> Self { + Self { + feerate: bucket.feerate, + seconds: bucket.estimated_seconds, + } + } +} + +pub type FeerateBucketAverage = FeerateBucketAverageN; + +#[derive(Default, Debug, Clone)] +pub struct FeerateBucketAverageN { + pub samples: VecDeque, + pub average: FeerateBucket, +} + +impl FeerateBucketAverageN { + pub fn clear(&mut self) { + self.samples.clear(); + self.average = FeerateBucket::default(); + } + + fn insert(&mut self, value: FeerateBucket) { + if self.samples.is_empty() { + self.samples.push_back(value); + } else { + let delta = self.average; + + if value > self.value() { + let feerate = + AVERAGE_ALPHA_HIGH * value.feerate + (1.0 - AVERAGE_ALPHA_HIGH) * delta.feerate; + let seconds = + AVERAGE_ALPHA_HIGH * value.seconds + (1.0 - AVERAGE_ALPHA_HIGH) * delta.seconds; + self.samples.push_back(FeerateBucket::new(feerate, seconds)); + } else { + let feerate = + AVERAGE_ALPHA_LOW * value.feerate + (1.0 - AVERAGE_ALPHA_LOW) * delta.feerate; + let seconds = + AVERAGE_ALPHA_LOW * value.seconds + (1.0 - AVERAGE_ALPHA_LOW) * delta.seconds; + self.samples.push_back(FeerateBucket::new(feerate, seconds)); + } + } + + if self.samples.len() > SAMPLES { + self.samples.pop_front(); + } + self.update(); + } + + pub fn update(&mut self) { + let len = self.samples.len() as f64; + let sum = self + .samples + .iter() + .fold(FeerateBucket::default(), |a, b| a + *b); + self.average = FeerateBucket { + feerate: sum.feerate / len, + seconds: sum.seconds / len, + }; + } + + pub fn value(&self) -> FeerateBucket { + if let Some(value) = self.samples.back() { + *value + } else { + FeerateBucket::default() + } + } +} + +#[cfg(test)] +mod test { + use super::*; + + #[test] + fn test_average() { + let values = [ + 248155.3514557079, + 215263.2471686213, + 245860.5071433737, + 182878.35543534035, + 247603.8863732086, + 192076.06581364156, + 191832.4918487833, + 128304.96588496015, + 238531.64457851378, + 234273.18428987174, + 255773.0300519179, + 249093.50547463333, + 249987.27849438024, + 142243.6036012581, + 177387.34711973823, + 225326.88080792018, + 246519.9389768766, + 178864.37118321584, + 153275.66505913227, + 246842.79445636555, + 223232.92238098633, + 224018.9368980746, + 144846.07860895086, + 249044.80135444857, + 193644.7196123328, + 216569.54469648135, + 171501.87818606084, + 209143.00683348018, + 247766.34940556984, + 240134.74496231132, + 222067.39937692153, + 244959.2666668208, + 244778.55586060378, + 236770.12079389597, + 150160.29996444215, + 245368.49577914673, + 237944.53312366523, + 233158.65408234956, + 133382.8086967139, + 236848.24272788866, + 144236.5336527448, + 148653.23967874967, + 238307.96108361648, + 169613.28962313317, + 238433.97536641933, + 177764.92055346936, + 139490.52495366355, + 187191.81261710104, + 244475.82286127112, + 245749.91495551568, + 243281.21882477857, + 243326.62347613362, + 196588.33586232664, + 120549.67729575293, + 207835.44585471656, + 200133.85199050562, + 151756.37033541917, + 235157.25117139242, + 246507.34219541284, + 176741.3115867982, + 99382.172497149, + 187744.75694246456, + 232886.15175851452, + 175217.07336267238, + 236816.7528010096, + 139970.4400116053, + 159865.71770829588, + 136558.44865940727, + 195715.8517624622, + 247389.84374880078, + 239440.79812678922, + 135748.0474010845, + 210934.440126234, + 146065.89308193082, + 147800.1502998639, + 244894.88053721157, + 243994.97948386057, + 245393.49415038983, + 243058.58821456484, + 127735.35987305158, + 140369.60399027826, + 134043.303765809, + 193254.1420857881, + 190437.9472722749, + 244581.3539859155, + 245565.95352441736, + 146978.29638989634, + 245169.43506911577, + 244653.8568352576, + 219344.22021480868, + 237979.00370085222, + 187110.5903983477, + 241250.8277014743, + 233906.6233636831, + 233246.14065750796, + 233413.1716293142, + 233148.15345403645, + 235678.72315910575, + 229063.60353987105, + 240832.9716861154, + 247508.69135150572, + 168210.11234128906, + 210847.66573606082, + 246857.0640787107, + 246239.95443353, + 171438.46158665072, + 247079.0881248516, + 171697.12570214068, + 149564.49850670493, + 245807.68863258162, + 149489.9342934734, + 242506.84793606773, + 242075.0260494275, + 220151.7465220994, + 126044.54038402438, + 243012.56791447278, + 241111.42157753845, + 235986.34918704405, + 143356.96079931365, + 130424.4130526057, + 181255.2246665847, + 238256.8730829127, + 146452.11754679924, + 170026.6602172315, + 193312.99575573037, + 239332.9420721534, + 223632.38567019213, + 141671.20874054675, + 213208.87877292512, + 219982.01542181577, + 134341.80571515945, + 194831.33549576855, + 239883.47734007097, + 88967.05109533986, + 202053.81995419698, + 243547.28828147077, + 259553.12840624293, + 247677.92768900306, + 242653.40883194323, + 174398.6326048576, + 128285.83328560732, + 244399.46198033314, + 146487.26658813033, + 241494.59142860002, + 240616.70796003094, + 138833.95391005423, + 213584.339225704, + 239133.53643788848, + 237835.51801700686, + 237347.47389371862, + 234469.64315771483, + 152160.9061874391, + 237494.77127650633, + 173040.8121341394, + 130912.77797708409, + 241962.979458208, + 182373.4185260581, + 179541.5825536582, + 179029.96761306134, + 243205.50735454418, + 199721.08821708092, + 259852.2696898588, + 228419.10949632138, + 248855.05259311185, + 150812.03274903848, + 147457.01306234082, + 244726.97247294002, + 146187.5743984257, + 244823.66242046928, + 244862.57860557683, + 244955.87378775087, + 130421.35339233676, + 244445.4788989109, + 137780.17782492848, + 133758.41619601438, + 156704.98698541842, + 238910.814299598, + 240336.87067486043, + 214522.15232621093, + 130056.62527973427, + 178634.3844432882, + 244888.6989210272, + 217647.4456866496, + 244594.37186805526, + 228030.16662885746, + 214253.44980608378, + 209516.1694079057, + 244868.00533888358, + 233448.87699662437, + 257545.7255320017, + 249172.88737132723, + 232243.2726875817, + 136311.39666593345, + 249623.2939563043, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 215391.32088258484, + 67.52105424968201, + 242234.10627665027, + 168573.38189513536, + 231680.36189481552, + 207704.39080488606, + 248347.3469480634, + 211414.393660134, + 248765.77597833515, + 84283.68751575101, + 239052.37494681875, + 175256.67273241273, + 127825.05894308779, + 216616.31935138846, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 238537.57586429152, + 127547.14902881409, + 135879.29173228334, + 238302.0978156781, + 135926.23165511477, + 246619.3074482109, + 248641.3156527779, + 226314.28646016173, + 154861.34389305062, + 204459.3146002139, + 181339.61465791994, + 246846.6580346392, + 207506.03970416822, + 199709.8717643581, + 178158.12966541818, + 246227.38389916637, + 141832.6854908764, + 237995.89026512875, + 245124.70220074043, + 245836.33998509325, + 247250.12234223183, + 244902.619869532, + 251890.4761664218, + 252799.9852909657, + 253275.67723549923, + 241236.4859757893, + 238396.0150783782, + 183664.4147463932, + 242305.507166485, + 181229.56382171725, + 242067.5188488911, + 250022.01325817694, + 179025.21296337966, + 131457.8297950491, + 177872.42410698708, + 245104.4716619338, + 243458.21421007247, + 245401.3834330709, + 205715.71134339966, + 244804.82748832856, + 244561.01289969, + 157427.76485069326, + 186983.8334490723, + 231963.53189224305, + 172578.63845091636, + 245203.00423633948, + 151143.67479554564, + 245177.82270082034, + 246292.37314888765, + 68855.01652778508, + 246382.54972762943, + 245977.19630932037, + 245196.2241682157, + 194767.96677656696, + 245693.9823006708, + 242633.14689425754, + 242418.49831178205, + 242756.2666038934, + 243668.81635819998, + 0.0, + 245422.2838396944, + 244682.78711597863, + 244792.26394066506, + 152821.9161276334, + 249688.58018299768, + 249301.2771748242, + 181230.20839436172, + 257962.65317966897, + 248043.1062423161, + 258443.0871438949, + 224195.3353968486, + 161304.520674059, + 256466.31079941467, + 257594.97335507823, + 188122.8387603218, + 256452.86741962022, + 158010.11777856835, + 151733.4649294484, + 246619.54674299472, + 152716.32651794696, + ]; + + let mut average = FeerateBucketAverageN::<6>::default(); + for value in values.iter() { + average.insert(FeerateBucket::new(*value, 1.0)); + println!("{} -> {:?}", value, average.value()); + } + } +} diff --git a/core/src/utils/format.rs b/core/src/utils/format.rs index 0a3e865..6619fde 100644 --- a/core/src/utils/format.rs +++ b/core/src/utils/format.rs @@ -1,4 +1,5 @@ use crate::imports::*; +// use separator::{separated_float, separated_int, separated_uint_with_output, Separatable}; pub fn format_duration(millis: u64) -> String { let seconds = millis / 1000; @@ -26,14 +27,18 @@ pub fn format_address_string(address: impl Into, range: Option) - let prefix = parts[0]; let payload = parts[1]; let range = range.unwrap_or(6); - let start = range; - let finish = payload.len() - range; + if range >= payload.len() / 2 { + address + } else { + let start = range; + let finish = payload.len() - range; - let left = &payload[0..start]; - // let center = style(&payload[start..finish]).dim(); - let right = &payload[finish..]; + let left = &payload[0..start]; + // let center = style(&payload[start..finish]).dim(); + let right = &payload[finish..]; - format!("{prefix}:{left}....{right}") + format!("{prefix}:{left}....{right}") + } } pub fn format_address(address: &Address, range: Option) -> String { @@ -199,3 +204,35 @@ pub fn precision_from_symbol(symbol: &str) -> usize { _ => 6, } } + +// /// Format supplied value as a float with 2 decimal places. +// fn format_as_float(f: f64, short: bool) -> String { +// if short { +// if f < 1000.0 { +// format_with_precision(f) +// } else if f < 1000000.0 { +// format_with_precision(f / 1000.0) + " K" +// } else if f < 1000000000.0 { +// format_with_precision(f / 1000000.0) + " M" +// } else if f < 1000000000000.0 { +// format_with_precision(f / 1000000000.0) + " G" +// } else if f < 1000000000000000.0 { +// format_with_precision(f / 1000000000000.0) + " T" +// } else if f < 1000000000000000000.0 { +// format_with_precision(f / 1000000000000000.0) + " P" +// } else { +// format_with_precision(f / 1000000000000000000.0) + " E" +// } +// } else { +// f.separated_string() +// } +// } + +/// Format supplied value as a float with 2 decimal places. +pub fn format_with_precision(f: f64) -> String { + if f.fract() < 0.01 { + separated_float!(format!("{}", f.trunc())) + } else { + separated_float!(format!("{:.2}", f)) + } +} diff --git a/core/src/utils/image.rs b/core/src/utils/image.rs index 2420025..82f1edf 100644 --- a/core/src/utils/image.rs +++ b/core/src/utils/image.rs @@ -1,4 +1,5 @@ -pub use egui_extras::image::{load_svg_bytes, load_svg_bytes_with_size, FitTo}; +pub use egui::SizeHint; +pub use egui_extras::image::{load_svg_bytes, load_svg_bytes_with_size}; pub fn color_image_to_icon_data(image: epaint::ColorImage) -> egui::IconData { egui::IconData { @@ -8,7 +9,7 @@ pub fn color_image_to_icon_data(image: epaint::ColorImage) -> egui::IconData { } } -pub fn svg_to_icon_data(svg_bytes: &[u8], fit_to: FitTo) -> egui::IconData { - let image = load_svg_bytes_with_size(svg_bytes, fit_to).unwrap(); +pub fn svg_to_icon_data(svg_bytes: &[u8], size_hint: Option) -> egui::IconData { + let image = load_svg_bytes_with_size(svg_bytes, size_hint).unwrap(); color_image_to_icon_data(image) } diff --git a/core/src/utils/mod.rs b/core/src/utils/mod.rs index 9d8ff81..59bbae0 100644 --- a/core/src/utils/mod.rs +++ b/core/src/utils/mod.rs @@ -1,5 +1,7 @@ use crate::imports::*; +mod average; +pub use average::*; mod qr; pub use qr::*; mod i18n; @@ -23,6 +25,8 @@ mod secret; pub use secret::*; mod mnemonic; pub use mnemonic::*; +mod wallet; +pub use wallet::*; pub fn is_mobile() -> bool { use workflow_core::runtime::{is_android, is_ios}; diff --git a/core/src/utils/version.rs b/core/src/utils/version.rs index 5fc5e59..b0df771 100644 --- a/core/src/utils/version.rs +++ b/core/src/utils/version.rs @@ -1,6 +1,10 @@ use crate::imports::*; use workflow_http::Request; +pub fn kaspa_version() -> String { + kaspa_utils::git::version() +} + #[derive(Debug, Clone)] pub struct Asset { pub name: String, diff --git a/core/src/utils/wallet.rs b/core/src/utils/wallet.rs new file mode 100644 index 0000000..85e7c38 --- /dev/null +++ b/core/src/utils/wallet.rs @@ -0,0 +1,176 @@ +use crate::imports::*; +use kaspa_wallet_core::wallet::EncryptedMnemonic; +use std::fmt::Display; + +#[derive(Debug, Deserialize)] +struct LegacyWalletJSONInner { + mnemonic: String, +} + +#[derive(Debug, Deserialize)] +struct LegacyWalletJSON { + wallet: LegacyWalletJSONInner, +} + +// #[derive(Debug, Deserialize)] +// struct KNGWalletJSON { +// payload: String, +// } + +#[derive(Debug)] +pub struct SingleWalletFileV0 { + pub num_threads: u32, + pub encrypted_mnemonic: EncryptedMnemonic>, + pub xpublic_key: String, + pub ecdsa: bool, +} +impl Clone for SingleWalletFileV0 { + fn clone(&self) -> Self { + Self { + num_threads: self.num_threads, + encrypted_mnemonic: EncryptedMnemonic { + cipher: self.encrypted_mnemonic.cipher.clone(), + salt: self.encrypted_mnemonic.salt.clone(), + }, + xpublic_key: self.xpublic_key.clone(), + ecdsa: self.ecdsa, + } + } +} + +#[derive(Debug, Clone)] +pub enum WalletType { + SingleV0(SingleWalletFileV0), + // SingleV1(SingleWalletFileV1<'a, Vec>), + // MultiV0(MultisigWalletFileV0<'a, Vec>), + // MultiV1(MultisigWalletFileV1<'a, Vec>), +} + +#[derive(Debug, Default, Deserialize)] +struct EncryptedMnemonicIntermediate { + #[serde(with = "kaspa_utils::serde_bytes")] + cipher: Vec, + #[serde(with = "kaspa_utils::serde_bytes")] + salt: Vec, +} +impl From for EncryptedMnemonic> { + fn from(value: EncryptedMnemonicIntermediate) -> Self { + Self { + cipher: value.cipher, + salt: value.salt, + } + } +} + +//golang wallet file +#[derive(Debug, Deserialize)] +#[serde(rename_all = "camelCase")] +struct UnifiedWalletIntermediate { + version: u32, + num_threads: Option, + encrypted_mnemonics: Vec, + public_keys: Vec, + //minimum_signatures: u16, + //cosigner_index: u8, + ecdsa: bool, +} + +impl UnifiedWalletIntermediate { + fn into_wallet_type(mut self) -> Result { + let single = self.encrypted_mnemonics.len() == 1 && self.public_keys.len() == 1; + let wallet = match (single, self.version) { + (true, 0) | (true, 1) => { + WalletType::SingleV0(SingleWalletFileV0 { + num_threads: self + .num_threads + .unwrap_or(8) + //.ok_or(Error::custom("num_threads must present in case of v0 wallet"))? + as u32, + encrypted_mnemonic: std::mem::take(&mut self.encrypted_mnemonics[0]).into(), + xpublic_key: self.public_keys[0].to_string(), + ecdsa: self.ecdsa, + }) + } + _ => return Err(Error::custom("Multisig wallet import is not supported.")), + }; + // (true, WalletVersion::One) => WalletType::SingleV1(SingleWalletFileV1 { + // num_threads: 8, + // encrypted_mnemonic: std::mem::take(&mut self.encrypted_mnemonics[0]).into(), + // xpublic_key: self.public_keys[0], + // ecdsa: self.ecdsa, + // }), + // (false, WalletVersion::Zero) => WalletType::MultiV0(MultisigWalletFileV0 { + // num_threads: self + // .num_threads + // .expect("num_threads must present in case of v0") + // as u32, + // encrypted_mnemonics: self + // .encrypted_mnemonics + // .into_iter() + // .map( + // |EncryptedMnemonicIntermediate { cipher, salt }| EncryptedMnemonic { + // cipher, + // salt, + // }, + // ) + // .collect(), + // xpublic_keys: self.public_keys, + // required_signatures: self.minimum_signatures, + // cosigner_index: self.cosigner_index, + // ecdsa: self.ecdsa, + // }), + // (false, WalletVersion::One) => WalletType::MultiV1(MultisigWalletFileV1 { + // encrypted_mnemonics: self + // .encrypted_mnemonics + // .into_iter() + // .map( + // |EncryptedMnemonicIntermediate { cipher, salt }| EncryptedMnemonic { + // cipher, + // salt, + // }, + // ) + // .collect(), + // xpublic_keys: self.public_keys, + // required_signatures: self.minimum_signatures, + // cosigner_index: self.cosigner_index, + // ecdsa: self.ecdsa, + // }), + + Ok(wallet) + } +} + +#[derive(Debug, Clone)] +pub enum WalletFileData { + Legacy(String), + GoWallet(WalletType), + Core(String), +} + +#[derive(Debug, Clone)] +pub enum WalletFileDecryptedData { + Legacy(String), + //GoWallet(WalletType), + Core(String), +} +impl Display for WalletFileData { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::Legacy(data) => f.write_str(&format!("Legacy: {data}")), + Self::GoWallet(data) => f.write_str(&format!("Go Wallet: {data:?}")), + Self::Core(data) => f.write_str(&format!("Core BIP-44: {data}")), + } + } +} + +pub fn parse_wallet_file(contents: &str) -> Result { + if let Ok(data) = serde_json::from_str::(contents) { + Ok(WalletFileData::Legacy(data.wallet.mnemonic)) + } else if let Ok(data) = serde_json::from_str::(contents) { + Ok(WalletFileData::Legacy(data.mnemonic)) + } else if let Ok(data) = serde_json::from_str::(contents) { + Ok(WalletFileData::GoWallet(data.into_wallet_type()?)) + } else { + Err(Error::Custom("Unable to parse wallet file".into())) + } +} diff --git a/extensions/chrome/Cargo.toml b/extensions/chrome/Cargo.toml index 4b6f588..1c924bc 100644 --- a/extensions/chrome/Cargo.toml +++ b/extensions/chrome/Cargo.toml @@ -9,8 +9,8 @@ repository.workspace = true [features] browser-extension = ["kaspa-ng-core/browser-extension"] -# default = [] -default = ["browser-extension"] +default = [] +# default = ["browser-extension"] [lib] crate-type = ["cdylib", "lib"] diff --git a/extensions/chrome/src/server.rs b/extensions/chrome/src/server.rs index 3fc9b1c..04ca884 100644 --- a/extensions/chrome/src/server.rs +++ b/extensions/chrome/src/server.rs @@ -50,7 +50,7 @@ pub struct Server { unsafe impl Send for Server {} unsafe impl Sync for Server {} -#[derive(Debug, Describe)] +#[derive(Debug, Describe, Clone)] enum ExtensionActions { InjectPageScript, Connect, @@ -431,7 +431,7 @@ impl Server { *self.waiting_response.lock().unwrap() = Some((a.sender_id, id)); } - a.try_to_vec().unwrap() + borsh::to_vec(&a).unwrap() }); let res = resp_to_jsv(Target::Adaptor, Ok(pending_request)); @@ -460,7 +460,7 @@ impl Server { }); } ServerAction::CloseWindow => { - let req = Request::CloseWindow.try_to_vec().unwrap(); + let req = borsh::to_vec(&Request::CloseWindow).unwrap(); spawn_local(async move { // log_info!("[SERVER] sending CloseWindow notification"); if let Err(err) = @@ -508,7 +508,7 @@ impl EventHandler for ServerEventHandler { async fn handle_event(&self, event: &Events) { // log_info!("EVENT HANDLER - POSTING NOTIFICATION! {event:?}"); - let data = event.try_to_vec().unwrap(); + let data = borsh::to_vec(&event).unwrap(); spawn_local(async move { let data = notify_to_jsv(Target::Wallet, &data); // log_info!("EVENT HANDLER - SENDING MESSAGE!"); diff --git a/extensions/chrome/src/transport.rs b/extensions/chrome/src/transport.rs index 5bfd958..d08f53f 100644 --- a/extensions/chrome/src/transport.rs +++ b/extensions/chrome/src/transport.rs @@ -43,7 +43,7 @@ impl BorshCodec for ClientSender { Ok(self .send_message( Target::Wallet, - WalletMessage::new(op, data).try_to_vec().unwrap(), + borsh::to_vec(&WalletMessage::new(op, data)).unwrap(), ) .await?) } @@ -51,6 +51,7 @@ impl BorshCodec for ClientSender { #[repr(u8)] #[derive(Debug, BorshSerialize, BorshDeserialize)] +#[borsh(use_discriminant = true)] enum ServerMessageKind { Success = 0, Error = 1, @@ -130,7 +131,7 @@ pub fn req_to_jsv(target: Target, src: &[u8]) -> JsValue { data: src.to_vec(), }; - let data = request.try_to_vec().unwrap(); + let data = borsh::to_vec(&request).unwrap(); JsValue::from(data.to_hex()) } @@ -161,7 +162,7 @@ pub fn resp_to_jsv(target: Target, response: Result>) -> JsValue { data: src, }; - let data = response.try_to_vec().unwrap(); + let data = borsh::to_vec(&response).unwrap(); JsValue::from(data.to_hex()) } @@ -172,7 +173,7 @@ pub fn resp_to_jsv(target: Target, response: Result>) -> JsValue { data: error.to_string().as_bytes().to_vec(), }; - let data = response.try_to_vec().unwrap(); + let data = borsh::to_vec(&response).unwrap(); JsValue::from(data.to_hex()) } } @@ -212,7 +213,7 @@ pub fn notify_to_jsv(target: Target, src: &[u8]) -> JsValue { data: src.to_vec(), }; - let data = notify.try_to_vec().unwrap(); + let data = borsh::to_vec(¬ify).unwrap(); JsValue::from(data.to_hex()) }