From 483a2892985ba441e0f8f8d3af9cd432c0e2690e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 16:41:15 +0900 Subject: [PATCH 1/9] Merge released refs/tags/v0.119.0 into develop (#3272) * chore: Update ckb node assume valid target (#3268) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update Neuron compatibility table (#3270) Co-authored-by: Keith-CY <7271329+Keith-CY@users.noreply.github.com> * chore: update versions and changelogs --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Keith-CY <7271329+Keith-CY@users.noreply.github.com> Co-authored-by: Keith --- CHANGELOG.md | 22 ++++++++++++++++++++++ compatible.json | 20 ++++++++++++++++++++ lerna.json | 6 ++++-- package.json | 2 +- packages/neuron-ui/package.json | 12 ++++++------ packages/neuron-wallet/.env | 6 +++--- packages/neuron-wallet/package.json | 6 +++--- 7 files changed, 59 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f4894734..118116006 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,25 @@ +# 0.119.0 (2024-12-02) + +### CKB Node & Light Client + +- [CKB@v0.119.0](https://github.com/nervosnetwork/ckb/releases/tag/v0.119.0) was released on Oct. 25th, 2024. This version of CKB node is now bundled and preconfigured in Neuron. +- [CKB Light Client@v0.4.1](https://github.com/nervosnetwork/ckb-light-client/releases/tag/v0.4.1) was released on Nov. 13th, 2024. This version of CKB Light Client is now bundled and preconfigured in Neuron + +### Assumed valid target + +Block before `0x7488acf2280ebf5b83c805a517f766eab77f45cd51f61476811d1ce96a60ea71`(at height `14,687,217`) will be skipped in validation.(https://github.com/nervosnetwork/neuron/pull/3268) + +--- + +## Bug fixes + +- #3239: Fix abnormal display of remaining time of Nervos DAO.(@devchenyan) +- #3246: Use the median fee rate instead of the average as a more appropriate reference for fee rate.(@yanguoyu) + + +**Full Changelog**: https://github.com/nervosnetwork/neuron/compare/v0.117.0...v0.119.0 + + # 0.117.0 (2024-08-12) ### CKB Node & Light Client diff --git a/compatible.json b/compatible.json index 7e9f198dc..cdb29ad5b 100644 --- a/compatible.json +++ b/compatible.json @@ -159,6 +159,26 @@ "0.3", "0.2" ] + }, + "0.119": { + "full": [ + "0.119", + "0.118", + "0.117", + "0.116", + "0.115", + "0.114", + "0.113", + "0.112", + "0.111", + "0.110", + "0.109" + ], + "light": [ + "0.4", + "0.3", + "0.2" + ] } } } diff --git a/lerna.json b/lerna.json index 6e0105574..6124dd279 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,8 @@ { - "packages": ["packages/*"], - "version": "0.117.0", + "packages": [ + "packages/*" + ], + "version": "0.119.0", "npmClient": "yarn", "$schema": "node_modules/lerna/schemas/lerna-schema.json" } diff --git a/package.json b/package.json index 460937a77..65f963d9b 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "neuron", "productName": "Neuron", "description": "CKB Neuron Wallet", - "version": "0.117.0", + "version": "0.119.0", "private": true, "author": { "name": "Nervos Core Dev", diff --git a/packages/neuron-ui/package.json b/packages/neuron-ui/package.json index a8ade4ea7..aebcb7cd5 100644 --- a/packages/neuron-ui/package.json +++ b/packages/neuron-ui/package.json @@ -1,6 +1,6 @@ { "name": "neuron-ui", - "version": "0.117.0", + "version": "0.119.0", "private": true, "author": { "name": "Nervos Core Dev", @@ -47,15 +47,15 @@ "displayName": "UI Tests" }, "dependencies": { - "@ckb-lumos/lumos": "0.23.0", - "@ckb-lumos/bi": "0.23.0", - "@ckb-lumos/rpc": "0.23.0", "@ckb-lumos/base": "0.23.0", + "@ckb-lumos/bi": "0.23.0", "@ckb-lumos/codec": "0.23.0", + "@ckb-lumos/common-scripts": "0.23.0", + "@ckb-lumos/config-manager": "0.23.0", "@ckb-lumos/hd": "0.23.0", "@ckb-lumos/helpers": "0.23.0", - "@ckb-lumos/config-manager": "0.23.0", - "@ckb-lumos/common-scripts": "0.23.0", + "@ckb-lumos/lumos": "0.23.0", + "@ckb-lumos/rpc": "0.23.0", "canvg": "2.0.0", "i18next": "23.7.11", "immer": "9.0.21", diff --git a/packages/neuron-wallet/.env b/packages/neuron-wallet/.env index 7d71ecbdd..3b6fcb433 100644 --- a/packages/neuron-wallet/.env +++ b/packages/neuron-wallet/.env @@ -117,6 +117,6 @@ DAO_CODE_HASH=0x82d76d1b75fe2fd9a27dfbaa65a039221a380d76c926f378d3f81cf3e7e13f2e MULTISIG_CODE_HASH=0x5c5069eb0857efc65e1bca0c07df34c31663b3622fd3876c876320fc9634e2a8 # CKB NODE OPTIONS -CKB_NODE_ASSUME_VALID_TARGET='0xca44ae8f7bc12ba8eab3224cbe3156c913e2284693e36dc1d01e4d30f362f3c2' -CKB_NODE_ASSUME_VALID_TARGET_BLOCK_NUMBER=13705152 -CKB_NODE_DATA_SIZE=58 +CKB_NODE_ASSUME_VALID_TARGET='0x7488acf2280ebf5b83c805a517f766eab77f45cd51f61476811d1ce96a60ea71' +CKB_NODE_ASSUME_VALID_TARGET_BLOCK_NUMBER=14687217 +CKB_NODE_DATA_SIZE=116 diff --git a/packages/neuron-wallet/package.json b/packages/neuron-wallet/package.json index 586fbc616..9d9e7d00a 100644 --- a/packages/neuron-wallet/package.json +++ b/packages/neuron-wallet/package.json @@ -3,7 +3,7 @@ "productName": "Neuron", "description": "CKB Neuron Wallet", "homepage": "https://www.nervos.org/", - "version": "0.117.0", + "version": "0.119.0", "private": true, "author": { "name": "Nervos Core Dev", @@ -45,8 +45,8 @@ "@ckb-lumos/base": "0.23.0", "@ckb-lumos/ckb-indexer": "0.23.0", "@ckb-lumos/helpers": "0.23.0", - "@ckb-lumos/rpc": "0.23.0", "@ckb-lumos/lumos": "0.23.0", + "@ckb-lumos/rpc": "0.23.0", "@iarna/toml": "2.2.5", "@ledgerhq/hw-transport-node-hid": "6.27.22", "@spore-sdk/core": "0.1.0", @@ -92,7 +92,7 @@ "electron-builder": "24.9.1", "electron-devtools-installer": "3.2.0", "jest-when": "3.6.0", - "neuron-ui": "0.117.0", + "neuron-ui": "0.119.0", "typescript": "5.3.3" } } From 56576e4810c65275834698768b8e15fe5f93022a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2024 12:03:43 +0900 Subject: [PATCH 2/9] Update ckb client versions (#3279) feat: update ckb client versions Co-authored-by: Keith-CY <7271329+Keith-CY@users.noreply.github.com> --- .ckb-version | 2 +- compatible.json | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.ckb-version b/.ckb-version index c19ddce0b..11c3166fe 100644 --- a/.ckb-version +++ b/.ckb-version @@ -1 +1 @@ -v0.119.0 +v0.120.0 diff --git a/compatible.json b/compatible.json index cdb29ad5b..4046d2ab1 100644 --- a/compatible.json +++ b/compatible.json @@ -1,5 +1,6 @@ { "fullVersions": [ + "0.120", "0.119", "0.118", "0.117", @@ -26,6 +27,7 @@ "compatible": { "0.111": { "full": [ + "0.120", "0.119", "0.118", "0.117", @@ -46,6 +48,7 @@ }, "0.110": { "full": [ + "0.120", "0.119", "0.118", "0.117", @@ -82,6 +85,7 @@ }, "0.112": { "full": [ + "0.120", "0.119", "0.118", "0.117", @@ -102,6 +106,7 @@ }, "0.114": { "full": [ + "0.120", "0.119", "0.118", "0.117", @@ -122,6 +127,7 @@ }, "0.116": { "full": [ + "0.120", "0.119", "0.118", "0.117", @@ -142,6 +148,7 @@ }, "0.117": { "full": [ + "0.120", "0.119", "0.118", "0.117", @@ -162,6 +169,7 @@ }, "0.119": { "full": [ + "0.120", "0.119", "0.118", "0.117", From 3d3546fa9a2604cb1098d7c213dd64eadd26cf5d Mon Sep 17 00:00:00 2001 From: Chen Yu Date: Fri, 13 Dec 2024 11:20:23 +0800 Subject: [PATCH 3/9] chore: change hw sdk to forked one (#3281) Co-authored-by: homura --- packages/neuron-wallet/package.json | 2 +- .../src/services/hardware/ledger.ts | 2 +- packages/neuron-wallet/src/types/ledger.d.ts | 2 +- .../tests/services/hardware/ledger.test.ts | 2 +- packages/neuron-wallet/tests/setup.ts | 2 +- yarn.lock | 58 +++++-------------- 6 files changed, 19 insertions(+), 49 deletions(-) diff --git a/packages/neuron-wallet/package.json b/packages/neuron-wallet/package.json index 9d9e7d00a..d1e4ebdfa 100644 --- a/packages/neuron-wallet/package.json +++ b/packages/neuron-wallet/package.json @@ -47,6 +47,7 @@ "@ckb-lumos/helpers": "0.23.0", "@ckb-lumos/lumos": "0.23.0", "@ckb-lumos/rpc": "0.23.0", + "@magickbase/hw-app-ckb": "0.2.0-alpha.0", "@iarna/toml": "2.2.5", "@ledgerhq/hw-transport-node-hid": "6.27.22", "@spore-sdk/core": "0.1.0", @@ -59,7 +60,6 @@ "electron-updater": "6.3.0", "electron-window-state": "5.0.3", "elliptic": "6.6.0", - "hw-app-ckb": "0.1.2", "i18next": "21.10.0", "leveldown": "6.1.1", "levelup": "4.4.0", diff --git a/packages/neuron-wallet/src/services/hardware/ledger.ts b/packages/neuron-wallet/src/services/hardware/ledger.ts index 34bfcbb38..c7bbaaa58 100644 --- a/packages/neuron-wallet/src/services/hardware/ledger.ts +++ b/packages/neuron-wallet/src/services/hardware/ledger.ts @@ -1,7 +1,7 @@ import { DeviceInfo, ExtendedPublicKey } from './common' import { Hardware } from './hardware' import HID from '@ledgerhq/hw-transport-node-hid' -import LedgerCKB from 'hw-app-ckb' +import LedgerCKB from '@magickbase/hw-app-ckb' import type { DescriptorEvent, Subscription, Observer } from '@ledgerhq/hw-transport' import type Transport from '@ledgerhq/hw-transport' import { Observable, timer } from 'rxjs' diff --git a/packages/neuron-wallet/src/types/ledger.d.ts b/packages/neuron-wallet/src/types/ledger.d.ts index e95a2f703..7aa9338e1 100644 --- a/packages/neuron-wallet/src/types/ledger.d.ts +++ b/packages/neuron-wallet/src/types/ledger.d.ts @@ -1,7 +1,7 @@ // Until there's a @types/hw-app-ckb // import type Transport from '@ledgerhq/hw-transport' declare module '@ledgerhq/hw-transport-node-ble' -declare module 'hw-app-ckb' { +declare module '@magickbase/hw-app-ckb' { export interface WalletPublicKey { publicKey: string lockArg: string diff --git a/packages/neuron-wallet/tests/services/hardware/ledger.test.ts b/packages/neuron-wallet/tests/services/hardware/ledger.test.ts index 84ee4255f..81dc37c3f 100644 --- a/packages/neuron-wallet/tests/services/hardware/ledger.test.ts +++ b/packages/neuron-wallet/tests/services/hardware/ledger.test.ts @@ -2,7 +2,7 @@ import Ledger from '../../../src/services/hardware/ledger' const getWalletExtendedPublicKeyMock = jest.fn() -jest.mock('hw-app-ckb', () => { +jest.mock('@magickbase/hw-app-ckb', () => { return function () { return { getWalletExtendedPublicKey: getWalletExtendedPublicKeyMock, diff --git a/packages/neuron-wallet/tests/setup.ts b/packages/neuron-wallet/tests/setup.ts index a0baee9a0..7f7d61532 100644 --- a/packages/neuron-wallet/tests/setup.ts +++ b/packages/neuron-wallet/tests/setup.ts @@ -112,6 +112,6 @@ jest.mock('@ledgerhq/hw-transport-node-hid', () => { return LedgerHID }) -jest.mock('hw-app-ckb', () => { +jest.mock('@magickbase/hw-app-ckb', () => { return LedgerCkbApp }) diff --git a/yarn.lock b/yarn.lock index b8695d4a0..de72f256a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3414,6 +3414,16 @@ yargs "17.7.2" yargs-parser "21.1.1" +"@magickbase/hw-app-ckb@0.2.0-alpha.0": + version "0.2.0-alpha.0" + resolved "https://registry.yarnpkg.com/@magickbase/hw-app-ckb/-/hw-app-ckb-0.2.0-alpha.0.tgz#903dea98bc349e32f39015fdebb95f8fe3436ab5" + integrity sha512-qphkM7WNQ1bLTvUS6VsJXaqyUg+kDzw+A2PAeCaQ0f3LhYqeTkg7keIGgPCUro7UTijatUxgkD903xq6VIuDlA== + dependencies: + "@ledgerhq/hw-transport" "^5.9.0" + bech32 "2.0.0" + bip32-path "0.4.2" + blake2b-wasm "2.1.0" + "@malept/cross-spawn-promise@^1.1.0": version "1.1.1" resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz#504af200af6b98e198bce768bc1730c6936ae01d" @@ -7600,12 +7610,7 @@ batch@0.6.1: resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== -bech32@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" - integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== - -bech32@^2.0.0: +bech32@2.0.0, bech32@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== @@ -12267,16 +12272,6 @@ husky@8.0.3: resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== -hw-app-ckb@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/hw-app-ckb/-/hw-app-ckb-0.1.2.tgz#ca5b69ebcd4009af5cf0002c09e61962721d7e74" - integrity sha512-ruzlfQpo/jeByaPCNNlzGlZdfhFTeTwIWfAJDZaBjspvWLOzSi1L1gV/NsjRS+B03rI4gR5HAnQJiblrnf4d7A== - dependencies: - "@ledgerhq/hw-transport" "^5.9.0" - bech32 "1.1.4" - bip32-path "0.4.2" - blake2b-wasm "2.1.0" - i18next@21.10.0: version "21.10.0" resolved "https://registry.yarnpkg.com/i18next/-/i18next-21.10.0.tgz#85429af55fdca4858345d0e16b584ec29520197d" @@ -18974,16 +18969,7 @@ string-natural-compare@^3.0.1: resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -19101,14 +19087,7 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -20858,16 +20837,7 @@ workbox-window@6.6.1: "@types/trusted-types" "^2.0.2" workbox-core "6.6.1" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== From f5942d7db0fde601d0001e5a3ff114f95a497409 Mon Sep 17 00:00:00 2001 From: Chen Yu Date: Fri, 13 Dec 2024 14:41:32 +0800 Subject: [PATCH 4/9] feat: handle hash_type:data2 (#3280) * feat: update ckb client versions * feat: handle hash_type:data2 * fix --------- Co-authored-by: Keith-CY <7271329+Keith-CY@users.noreply.github.com> Co-authored-by: devchenyan --- packages/neuron-ui/src/components/SpecialAssetList/hooks.ts | 2 +- packages/neuron-ui/src/types/Controller/index.d.ts | 2 +- packages/neuron-wallet/src/models/asset-account-info.ts | 1 + packages/neuron-wallet/src/models/chain/live-cell.ts | 1 + packages/neuron-wallet/src/models/chain/script.ts | 1 + 5 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/neuron-ui/src/components/SpecialAssetList/hooks.ts b/packages/neuron-ui/src/components/SpecialAssetList/hooks.ts index d1ff65cc4..1e0b9c82c 100644 --- a/packages/neuron-ui/src/components/SpecialAssetList/hooks.ts +++ b/packages/neuron-ui/src/components/SpecialAssetList/hooks.ts @@ -30,7 +30,7 @@ export interface SpecialAssetCell { lock: { args: string codeHash: string - hashType: 'type' | 'data' + hashType: 'type' | 'data' | 'data1' | 'data2' } lockHash: string multiSignBlake160: string diff --git a/packages/neuron-ui/src/types/Controller/index.d.ts b/packages/neuron-ui/src/types/Controller/index.d.ts index 380129f80..6a1b6f22b 100644 --- a/packages/neuron-ui/src/types/Controller/index.d.ts +++ b/packages/neuron-ui/src/types/Controller/index.d.ts @@ -215,7 +215,7 @@ declare namespace Controller { interface Response { cellDep: any codeHash: string - hashType: 'data' | 'type' + hashType: 'data' | 'type' | 'data1' | 'data2' } } interface SUDTAccount { diff --git a/packages/neuron-wallet/src/models/asset-account-info.ts b/packages/neuron-wallet/src/models/asset-account-info.ts index b4cb7a8d8..dee91b242 100644 --- a/packages/neuron-wallet/src/models/asset-account-info.ts +++ b/packages/neuron-wallet/src/models/asset-account-info.ts @@ -401,6 +401,7 @@ function toScriptInfo(sporeConfig: SporeScript): ScriptCellInfo { if (sporeScriptHashType === 'type') return ScriptHashType.Type if (sporeScriptHashType === 'data') return ScriptHashType.Data if (sporeScriptHashType === 'data1') return ScriptHashType.Data1 + if (sporeScriptHashType === 'data2') return ScriptHashType.Data2 throw new Error(`Invalid hash type: ${sporeScriptHashType}`) })() diff --git a/packages/neuron-wallet/src/models/chain/live-cell.ts b/packages/neuron-wallet/src/models/chain/live-cell.ts index 4efc95dd6..4d85cedd4 100644 --- a/packages/neuron-wallet/src/models/chain/live-cell.ts +++ b/packages/neuron-wallet/src/models/chain/live-cell.ts @@ -6,6 +6,7 @@ const LUMOS_HASH_TYPE_MAP: Record = { type: ScriptHashType.Type, data1: ScriptHashType.Data1, data: ScriptHashType.Data, + data2: ScriptHashType.Data2, } export type CellWithOutPoint = Cell & { outPoint: IOutPoint } diff --git a/packages/neuron-wallet/src/models/chain/script.ts b/packages/neuron-wallet/src/models/chain/script.ts index 40034ea46..03dcc0880 100644 --- a/packages/neuron-wallet/src/models/chain/script.ts +++ b/packages/neuron-wallet/src/models/chain/script.ts @@ -6,6 +6,7 @@ export enum ScriptHashType { Data = 'data', Type = 'type', Data1 = 'data1', + Data2 = 'data2', } export default class Script { From 992ccad613167793572d19a6c81c3bc314900b7d Mon Sep 17 00:00:00 2001 From: Chen Yu Date: Fri, 13 Dec 2024 16:25:29 +0800 Subject: [PATCH 5/9] - Support Arabic, FrCanadian/Belgian in User Interface (#3271) (#3274) * - Support Arabic, FrCanadian/Belgian in User Interface (#3271) * test: fix test cases which derived from Intl * refactor: remove unrelated update --------- Co-authored-by: Natixe <49234582+Natixe@users.noreply.github.com> --- packages/neuron-ui/.storybook/electron.js | 2 +- packages/neuron-ui/src/locales/ar.json | 1330 +++++++++++++++++ packages/neuron-ui/src/locales/en.json | 9 +- packages/neuron-ui/src/locales/es.json | 9 +- packages/neuron-ui/src/locales/fr.json | 9 +- packages/neuron-ui/src/locales/zh-tw.json | 9 +- packages/neuron-ui/src/locales/zh.json | 9 +- .../src/tests/calendar/index.test.ts | 41 + packages/neuron-ui/src/utils/const.ts | 2 +- packages/neuron-ui/src/utils/i18n.ts | 4 + packages/neuron-wallet/electron-builder.yml | 2 +- packages/neuron-wallet/src/locales/ar.ts | 301 ++++ packages/neuron-wallet/src/locales/i18n.ts | 4 + .../neuron-wallet/src/services/settings.ts | 2 +- .../tests/services/setting.test.ts | 2 + 15 files changed, 1716 insertions(+), 19 deletions(-) create mode 100644 packages/neuron-ui/src/locales/ar.json create mode 100644 packages/neuron-wallet/src/locales/ar.ts diff --git a/packages/neuron-ui/.storybook/electron.js b/packages/neuron-ui/.storybook/electron.js index 492a24c53..62941a713 100644 --- a/packages/neuron-ui/.storybook/electron.js +++ b/packages/neuron-ui/.storybook/electron.js @@ -1,5 +1,5 @@ const sendSyncValues = { - 'get-locale': ('zh', 'fr', 'es'), + 'get-locale': ('zh', 'fr', 'es', 'ar'), 'get-version': '0.103.1', } diff --git a/packages/neuron-ui/src/locales/ar.json b/packages/neuron-ui/src/locales/ar.json new file mode 100644 index 000000000..3703ca659 --- /dev/null +++ b/packages/neuron-ui/src/locales/ar.json @@ -0,0 +1,1330 @@ +{ + "translation": { + "launch-screen": { + "loading-wallets": "جارٍ تحميل المحافظ" + }, + "contextmenu": { + "cut": "قص", + "copy": "نسخ", + "paste": "لصق", + "selectall": "تحديد الكل" + }, + "navbar": { + "overview": "نظرة عامة", + "wallet": "محفظة", + "send": "إرسال", + "receive": "استلام", + "history": "التاريخ", + "addresses": "العناوين", + "nervos-dao": "نيرفوس DAO", + "settings": "الإعدادات", + "special-assets": "الأصول المخصصة", + "sync-not-start": "لم تبدأ المزامنة بعد", + "connecting": "جارٍ الاتصال", + "pause": "تم إيقاف المزامنة مؤقتًا", + "experimental-functions": "تجريبي", + "s-udt": "حسابات الأصول", + "update-neuron-with-ckb": "لا يتطابق إصدار عقدة CKB مع Neuron (الإصدار {{ version }}), مما قد يسبب مشاكل توافق. يرجى التحديث إلى أحدث إصدار من Neuron.", + "learn-more": "تعرف على المزيد", + "ckb-node-compatible": "عقدة CKB غير متوافقة مع Neuron (الإصدار {{ version }}), يرجى التحقق قبل متابعة العملية. (<0>{{btnText}})", + "ckb-without-indexer": "يرجى إضافة الخيار '--indexer' لبدء العقدة المحلية" + }, + "network-status": { + "tooltip": { + "block-synced": "تمت مزامنة الكتلة", + "looking-valid-target": "جارٍ البحث عن هدف صالح مفترض", + "start-block-number": "رقم كتلة البدء", + "set-start-block-number": "تعيين رقم كتلة البدء" + }, + "migrating": "جارٍ الترحيل...", + "left-time": "الوقت المتبقي", + "left-time-tip": "الوقت المتبقي تقديري ويعتمد على الشبكة الحالية وعوامل أخرى، وهو للمرجعية فقط." + }, + "import-hardware": { + "title": { + "select-model": "يرجى توصيل جهازك وتحديد الطراز", + "detect-device": "جارٍ اكتشاف الجهاز", + "name-wallet": "تسمية المحفظة", + "choose-address": "اختر عنوانًا من الجهاز" + }, + "actions": { + "confirm": "يرجى التأكيد على جهازك...", + "success": "تم الاستيراد بنجاح!", + "next": "التالي", + "cancel": "إلغاء", + "back": "رجوع", + "rescan": "إعادة المسح", + "close": "إغلاق", + "finish": "إنهاء الإنشاء" + }, + "errors": { + "multi-device": "تم اكتشاف أجهزة متعددة. يمكن توصيل جهاز واحد فقط من نفس الطراز.", + "device-not-found": "لم يتم اكتشاف أي جهاز. يرجى توصيل جهازك.", + "ckb-app-not-found": "تطبيق CKB غير مفتوح. يرجى فتح تطبيق CKB على جهازك." + }, + "waiting": "في انتظار تطبيق CKB...", + "abort": "في انتظار تطبيق CKB... تم إلغاء الإجراء", + "app-version": "تطبيق CKB الإصدار {{version}} قيد التشغيل.", + "firmware-version": "الإصدار الثابت {{version}} تم اكتشافه.", + "wallet-name": "اسم المحفظة", + "select-model": "حدد الطراز", + "other-device": "جهاز آخر" + }, + "hardware-sign": { + "cancel": "إلغاء", + "title": "التوقيع عبر محفظة الأجهزة", + "device": "الجهاز:", + "status": { + "label": "الحالة:", + "connect": "متصل، جاهز للتوقيع.", + "user-input": "متصل، في انتظار التأكيد على الجهاز...", + "disconnect": "منفصل، يرجى التأكد من توصيل الجهاز وفتح تطبيق Nervos" + }, + "inputs": "المدخلات (التوقيع {{index}} من {{length}})", + "outputs": "المخرجات ({{length}})", + "actions": { + "close": "إغلاق", + "success": "تمت المعاملة بنجاح!", + "rescan": "إعادة المسح" + } + }, + "hardware-verify-address": { + "title": "التحقق من العنوان عبر محفظة الأجهزة", + "device": "الجهاز:", + "address": "العنوان:", + "verified": "تم التحقق", + "invalid": "غير صالح", + "status": { + "label": "الحالة:", + "connect": "متصل، جاهز للتحقق.", + "user-input": "متصل، في انتظار التأكيد على الجهاز...", + "disconnect": "منفصل، يرجى التأكد من توصيل الجهاز وفتح تطبيق Nervos" + }, + "actions": { + "close": "إغلاق", + "reconnect": "إعادة الاتصال", + "copy-address": "نسخ العنوان", + "verify": "تحقق من العنوان", + "finish": "موافق" + } + }, + "offline-sign": { + "title": "التوقيع دون اتصال", + "json-file": "ملف JSON:", + "status": { + "label": "الحالة:", + "unsigned": "غير موقع", + "partially-signed": "موقع جزئيًا", + "signed": "موقع" + }, + "import-signed-transaction": "استيراد معاملة موقعة", + "import-signed-transaction-detail": "لقد قمت باستيراد معاملة موقعة، يرجى التأكيد والمحاولة مرة أخرى.", + "wallet": "المحفظة:", + "content": "المحتوى:", + "export": "تصدير المعاملة", + "sign-and-export": "توقيع وتصدير", + "sign-and-broadcast": "توقيع وبث", + "actions": { + "broadcast": "بث", + "sign": "توقيع وتصدير", + "cancel": "إلغاء", + "view-in-explorer": "عرض في المستكشف" + }, + "broadcast-transaction": "بث المعاملة", + "import-transaction-to-sign": "استيراد معاملة للتوقيع", + "import-unsigned-transaction-detail": "لقد قمت باستيراد معاملة غير موقعة، يرجى التأكيد والمحاولة مرة أخرى." + }, + "overview": { + "date": "التاريخ", + "type": "النوع", + "balance": "الرصيد", + "recent-activities": "الأنشطة الأخيرة", + "no-recent-activities": "لا توجد أنشطة حديثة", + "activity": "النشاط", + "datetime": "التاريخ والوقت", + "status": "الحالة", + "asset": "الأصل", + "address": "العنوان", + "sent": "تم الإرسال", + "sending": "جارٍ الإرسال", + "received": "تم الاستلام", + "receiving": "جارٍ الاستلام", + "more": "المزيد", + "copy-balance": "نسخ الرصيد", + "create": "إنشاء حساب أصل {{name}}", + "destroy": "تدمير حساب أصل {{name}}", + "createSUDT": "إنشاء حساب أصل <0>", + "destroySUDT": "تدمير حساب أصل <0>", + "wallet-ready": "المحفظة جاهزة، مرحبًا بك", + "send": "إرسال", + "receive": "استلام", + "locked": "المبلغ المقفل", + "locked-balance": "الرصيد المقفل", + "first-sync-notice": "تتطلب المزامنة الأولية مساحة قرص لا تقل عن {{size}} جيجابايت.
وسيزداد حجم البيانات مع مرور الوقت. يُنصح باختيار مساحة قرص أكبر لتخزين البيانات.", + "start-sync": "بدء المزامنة" + }, + "wizard": { + "welcome-to-nervos-neuron": "مرحبًا بك في Neuron", + "create-or-import-your-first-wallet": "إنشاء أو استيراد محفظتك الأولى", + "create-new-wallet": "إنشاء محفظة", + "import-mnemonic": "استيراد بذرة المحفظة", + "import-keystore": "الاستيراد من Keystore", + "import-wallet": "استيراد محفظة", + "import-hardware-wallet": "استيراد محفظة أجهزة", + "new-wallet": "محفظة جديدة", + "wallet-seed": "بذرة المحفظة", + "keystore": "Keystore", + "hardware-wallet": "محفظة أجهزة", + "next": "التالي", + "back": "رجوع", + "name": "الاسم", + "your-wallet-seed-is": "تم إنشاء بذرة محفظتك الجديدة", + "input-your-seed": "يرجى إدخال بذرة محفظتك", + "password": "كلمة المرور", + "confirm-password": "تأكيد كلمة المرور", + "set-wallet-name-and-password": "يرجى تسمية محفظتك على هذا الجهاز واختيار كلمة مرور قوية لحمايتها", + "set-wallet-name": "تعيين اسم للمحفظة", + "set-a-strong-password-to-protect-your-wallet": "يرجى تعيين كلمة مرور قوية لحماية محفظتك", + "wallet-suffix": "محفظة {{suffix}}", + "handwritten-recommended": "يوصى بالنسخ اليدوي", + "do-not-copy": "لا تقم بالنسخ", + "do-not-save-scrrenshots": "لا تحفظ لقطات الشاشة", + "replenish-your-seed": "يرجى استعادة بذرة محفظتك", + "new-name": "استخدم اسمًا غير مستخدم للمحفظة الجديدة", + "complex-password": "يجب أن تتكون كلمة المرور من 8 إلى 50 حرفًا وتحتوي على ثلاث فئات على الأقل من الفئات التالية: حروف كبيرة، حروف صغيرة، أرقام، ورموز خاصة.", + "same-password": "يجب أن تتطابق كلمة المرور وتأكيد كلمة المرور", + "input-seed-verify": "يرجى إدخال بذرة المحفظة الصحيحة أو النقر على رجوع لإعادة إنشاء المحفظة", + "input-seed-first-empty-space": "يمكنك لصق بذرة المحفظة بالكامل في المساحة الفارغة الأولى", + "no-wallet": "لا توجد محفظة؟", + "create-wallet": "إنشاء محفظة", + "repeat-password": "أعد إدخال كلمة المرور", + "finish-create": "إنهاء الإنشاء", + "creating-wallet": "جارٍ إعداد المحفظة، يرجى الانتظار", + "add-one": "أضف واحدًا آخر", + "detect-duplicate-wallets": "تم اكتشاف محافظ مكررة" + }, + "import-keystore": { + "title": "استيراد ملف Keystore", + "select-file": "اختيار الملف", + "import-failure": "فشل الاستيراد", + "import-failure-msg": "لا يدعم Neuron استيراد ملف keystore الخاص بـ ckb-cli بسبب اختلاف قواعد اشتقاق ملفات keystore.", + "label": { + "path": "ملف Keystore", + "name": "اسم المحفظة", + "password": "كلمة المرور" + }, + "placeholder": { + "path": "انقر لتحديد ملف keystore", + "name": "اسم للمحفظة الجديدة", + "password": "كلمة المرور للتحقق من keystore" + }, + "button": { + "back": "رجوع", + "submit": "إرسال" + } + }, + "detail": { + "more-transactions": "المزيد" + }, + "send": { + "address": "إرسال إلى", + "input-address": "يرجى إدخال عنوان الاستلام", + "amount": "المبلغ (CKB)", + "input-amount": "يرجى إدخال المبلغ", + "send": "إرسال", + "reset": "إعادة تعيين", + "confirm-password": "تأكيد كلمة المرور", + "to": "إلى", + "add-receiving-address": "إضافة عنوان استلام", + "input-password-to-confirm": "إدخال كلمة المرور للتأكيد", + "scan-to-get-address": "مسح رمز QR لقراءة العنوان المرسل إليه", + "total-amount": "المبلغ الإجمالي (CKB)", + "description": "الوصف", + "description-optional": "يرجى إدخال وصف، اختياري", + "balance": "الرصيد", + "add-one": "أضف واحدًا آخر", + "remove-this": "إزالة هذا", + "fee": "رسوم المعاملة (CKB)", + "advanced-fee-settings": "إعدادات الرسوم المتقدمة", + "price": "السعر", + "pick-price": "اختيار سريع للسعر", + "custom-price": "سعر مخصص", + "slow": "بطيء", + "standard": "قياسي", + "fast": "سريع", + "total-cycles": "إجمالي دورات RISC-V", + "scan-screen-qr-code": "مسح رمز QR على الشاشة", + "set-locktime": "تعيين وقت القفل", + "remove-receiving-address": "إزالة عنوان الاستلام", + "remove-receiving-address-msg": "هل أنت متأكد أنك تريد إزالة عنوان الاستلام المحدد؟", + "locktime-notice-content": "وفقًا لارتفاع الكتلة الفعلي الجاري، قد يكون هناك بعض التفاوت في وقت القفل.", + "release-on": "الإصدار في", + "locktime-warning": "يرجى التأكد من أن محفظة المستلم تدعم فتح القفل عند انتهاء المدة. (ملاحظة: 1. عمومًا، لا تدعم البورصات فتح القفل عند انتهاء المدة {{extraNote}})", + "allow-use-sent-cell": "المخرجات غير المؤكدة مسموح بها في هذه المعاملة.", + "submit-transaction": "إرسال المعاملة", + "transaction-confirmed": "تم تأكيد المعاملة", + "transaction-cannot-amend": "لا يمكن تعديل المعاملة الحالية بعد تأكيدها.", + "amend-pending-transaction": "تعديل المعاملة المعلقة" + }, + "receive": { + "title": "استلام", + "address-book": "دفتر العناوين", + "click-to-copy": "انقر لنسخ العنوان", + "copy-address": "نسخ العنوان", + "address-not-found": "العنوان غير موجود", + "prompt": "يختار Neuron عنوان استلام جديدًا لتحسين الخصوصية. يرجى الانتقال إلى دفتر العناوين إذا كنت تريد استخدام عنوان استلام تم استخدامه سابقًا.", + "address-qrcode": "رمز QR للعنوان", + "address": "عنوان {{network}}", + "verify-address": "تحقق من العنوان", + "turn-into-full-version-format": "تحويل إلى تنسيق الإصدار الكامل", + "turn-into-deprecated-format": "تحويل إلى تنسيق قديم", + "save-qr-code": "تحميل", + "copy-qr-code": "نسخ" + }, + "transaction-status": { + "pending": "قيد الانتظار", + "success": "ناجح", + "failed": "فشل", + "confirming": "جارٍ التأكيد" + }, + "confirmationsCount_one": "{{count}} تأكيد", + "confirmationsCount_other": "{{count}} تأكيدات", + "history": { + "title": "التاريخ", + "title-detail": "تفاصيل التاريخ", + "meta": "ميتا", + "type": "النوع", + "date": "التاريخ", + "timestamp": "الوقت", + "amount": "المبلغ", + "transaction-hash": "هاش المعاملة", + "send": "إرسال", + "receive": "استلام", + "other": "أخرى", + "more-actions": "المزيد من الإجراءات", + "detail": "التفاصيل", + "explorer": "المستكشف", + "first": "الأول", + "previous": "السابق", + "next": "التالي", + "last": "الأخير", + "description": "الوصف", + "status": "الحالة", + "blockNumber": "رقم الكتلة", + "basic-information": "معلومات أساسية", + "search": { + "button": "بحث", + "placeholder": "بحث عن هاش المعاملة، عنوان، أو تاريخ (yyyy-mm-dd)" + }, + "table": { + "name": "اسم المحفظة", + "type": "النوع", + "balance": "الرصيد", + "asset": "الأصل", + "timestamp": "الوقت", + "status": "الحالة", + "operation": "العملية" + }, + "export-history": "تصدير سجل المعاملات", + "confirmationTimes": "التأكيدات", + "confirming-with-count": "{{confirmations}} تأكيدات", + "view-on-explorer": "عرض على المستكشف", + "no-txs": "لا توجد معاملات في السجل", + "view-in-explorer": "عرض في المستكشف", + "view-in-explorer-button-title": "عرض في المستكشف", + "view-detail": "التفاصيل", + "view-detail-button-title": "عرض التفاصيل", + "amend": "تعديل", + "opening": "جارٍ الفتح", + "copy-tx-hash": "نسخ هاش المعاملة", + "copy-balance": "نسخ الرصيد", + "copy-address": "نسخ العنوان", + "create": "إنشاء حساب أصل {{name}}", + "destroy": "تدمير حساب أصل {{name}}", + "fee": "رسوم المعاملة" + }, + "transaction": { + "window-title": "المعاملة: {{hash}}", + "date": "التاريخ", + "transaction-hash": "هاش المعاملة", + "block-number": "رقم الكتلة", + "goBack": "العودة", + "index": "الفهرس", + "address": "العنوان", + "income": "الدخل", + "amount": "المبلغ", + "inputs": "المدخلات", + "outputs": "المخرجات", + "cell-from-cellbase": "من cellbase", + "lock-script": "نص القفل", + "lock-script-title": "معلومات العنوان", + "deprecated-address-format": "العنوان بالتنسيق القديم", + "type": "النوع", + "fee": "رسوم المعاملة", + "assets": "الأصول", + "balance": "الرصيد", + "status": "الحالة", + "size": "الحجم", + "cycles": "الدورات", + "cell-detail": "تفاصيل الخلية" + }, + "addresses": { + "title": "دفتر العناوين", + "addresses": "العناوين", + "type": "النوع", + "address": "العنوان", + "identifier": "المعرف", + "description": "الوصف", + "balance": "الرصيد", + "transactions": "المعاملات", + "receiving-address": "عنوان الاستلام", + "change-address": "عنوان التغيير", + "copy-address": "نسخ العنوان", + "request-payment": "طلب الدفع", + "view-on-explorer": "عرض على المستكشف", + "default-description": "لا شيء", + "all-address": "كل العناوين" + }, + "settings": { + "title": { + "normal": "الإعدادات", + "mac": "التفضيلات" + }, + "go-to-overview": "الانتقال إلى النظرة العامة", + "setting-tabs": { + "general": "عام", + "wallets": "المحافظ", + "network": "الشبكة", + "data": "البيانات" + }, + "general": { + "show": "إظهار", + "hide": "إخفاء", + "version": "الإصدار", + "language": "اللغة", + "select-language": "اختر اللغة", + "apply": "تطبيق", + "keep-awake": "ابق الشاشة مستيقظة أثناء المزامنة", + "lock-password": "قفل كلمة مرور النافذة", + "set-lock-password": "تعيين كلمة مرور لقفل النافذة", + "change-lock-password": "تغيير كلمة مرور قفل النافذة", + "lock-window": { + "set-password": "تعيين كلمة المرور", + "confirm-password": "تأكيد كلمة المرور", + "enter-current-password": "أدخل كلمة المرور الحالية", + "enter-new-password": "أدخل كلمة مرور جديدة", + "password-error": "خطأ في كلمة المرور", + "different-password": "كلمتا المرور المدخلتان غير متطابقتين", + "set-password-success": "تم تعيين كلمة المرور بنجاح", + "change-password-success": "تم تغيير كلمة المرور بنجاح", + "reset": "إعادة تعيين" + } + }, + "wallet-manager": { + "edit-wallet": { + "wallet-name": "اسم المحفظة", + "password": "كلمة المرور", + "new-password": "كلمة مرور جديدة", + "confirm-password": "تأكيد كلمة المرور", + "edit-wallet": "تعديل المحفظة" + }, + "edit-success": "تم تحديث معلومات المحفظة", + "delete-wallet-title": "يرجى إدخال كلمة مرور {{name}}", + "password": "كلمة المرور", + "wallet-detail": { + "balance": "الرصيد" + }, + "importing-existing": { + "title": "استيراد محفظة موجودة", + "detail": "لقد قمت باستيراد محفظة موجودة بالفعل، اختر استبدال المحفظة الموجودة أو إلغاء الاستيراد.", + "replace": "استبدال" + }, + "detected-duplicate": { + "title": "تم اكتشاف محافظ مكررة", + "detail": "لديك محافظ مكررة في حسابك، ومن المستحسن اختيار المحافظ التي تحتاج إلى تمييزها لتسهيل إدارتها." + } + }, + "network": { + "online": "متصل", + "offline": "غير متصل", + "add-network": "إضافة شبكة", + "remove-network": "إزالة شبكة", + "remove-network-msg": "هل أنت متأكد أنك تريد إزالة الشبكة المحددة؟", + "edit-network": { + "title": "تعديل الشبكة", + "rpc-url": "رابط RPC", + "name": "اسم الشبكة", + "input-rpc": "يرجى إدخال RPC", + "input-network": "يرجى إدخال الاسم" + }, + "edit-success": "تم تعديل الشبكة بنجاح", + "mainnet": "الشبكة الرئيسية", + "testnet": "شبكة الاختبار", + "lightTestnet": "شبكة الاختبار الخفيفة", + "lightMainnet": "الشبكة الرئيسية الخفيفة", + "devnet": "شبكة التطوير", + "switch-network-type": "التبديل إلى {{type}}", + "type": "النوع", + "full-node": "عقدة كاملة", + "light-client-node": "عقدة عميل خفيف" + }, + "locale": { + "en": "English", + "en-US": "English (United States)", + "zh": "中文 (简体)", + "zh-TW": "中文 (繁體)", + "ar": "العربية", + "fr": "Français", + "fr-CA": "Français (Canada)", + "fr-BE": "Français (Belgique)", + "es": "Español" + }, + "data": { + "ckb-node-data": "تكوين وتخزين عقدة CKB", + "set": "تعيين", + "cache": "ذاكرة التخزين المؤقت", + "clear-cache-description": "امسح الذاكرة المؤقتة إذا واجهت مشاكل في مزامنة البيانات أو عرض الرصيد. سيقوم Neuron بإعادة مسح بيانات الكتلة.", + "cache-cleared-on": "تم تحديث الذاكرة المؤقتة في {{date}}", + "refresh": "تحديث", + "clearing-cache": "جارٍ مسح الذاكرة المؤقتة، يرجى الانتظار قليلاً", + "clear-success": "تم مسح الذاكرة المؤقتة", + "set-path": "تعيين المسار", + "remove-ckb-data-tip": "يرجى نقل بيانات عقدة CKB من 【{{prevPath}}】 إلى 【{{currentPath}}】 ثم النقر على \"تم نقل البيانات\" للبدء من الكتلة التي تمت مزامنتها سابقًا؛ أو النقر على \"المزامنة من البداية\" لبدء المزامنة من البداية.", + "resync-ckb-node-describe": "تنبيه: المزامنة من البداية لن تزيل بيانات عقدة CKB التي تم تنزيلها سابقًا", + "cancel": "إلغاء", + "confirm-clear": "تأكيد", + "move-data-finish": "تم نقل البيانات", + "re-sync": "إعادة المزامنة من البداية", + "disabled-set-path": "عند بدء عقدة CKB يدويًا، لا يؤثر تكوين مسار تكوين وتخزين عقدة CKB", + "ckb-node-storage": "تخزين عقدة CKB" + } + }, + "password-request": { + "wallet-not-found": "لم يتم العثور على المحفظة", + "password": "أدخل كلمة المرور", + "placeholder": "يرجى إدخال كلمة مرور المحفظة", + "send": { + "title": "إرسال المعاملة" + }, + "send-nft": { + "title": "إرسال الرموز غير القابلة للاستبدال (NFT)" + }, + "delete": { + "title": "حذف المحفظة" + }, + "backup": { + "title": "نسخ احتياطي للمحفظة" + }, + "unlock": { + "title": "يرجى إدخال كلمة مرور المحفظة للمطالبة بالأصل" + }, + "create-sudt-account": { + "title": "إنشاء حساب أصل" + }, + "send-sudt": { + "title": "إرسال UDT" + }, + "transfer-to-sudt": { + "title": "إرسال إلى حساب UDT" + }, + "send-ckb-asset": { + "title": "إرسال CKB" + }, + "send-acp": { + "title": "إرسال CKB" + }, + "send-acp-sudt-to-new-cell": { + "title": "إرسال UDT" + }, + "send-acp-ckb-to-new-cell": { + "title": "إرسال CKB" + }, + "migrate-acp": { + "title": "ترقية حسابات الأصول" + }, + "send-cheque": { + "title": "إرسال أصل الشيك" + }, + "withdraw-cheque": { + "title": "سحب أصل الشيك" + }, + "claim-cheque": { + "title": "المطالبة بأصل الشيك" + }, + "create-account-to-claim-cheque": { + "title": "المطالبة بأصل الشيك بحساب جديد" + }, + "destroy-asset-account": { + "title": "تدمير حساب الأصل" + }, + "send-from-multisig": { + "title": "إرسال CKB من عنوان متعدد التوقيعات" + }, + "send-from-multisig-need-one": { + "title": "إرسال CKB من عنوان متعدد التوقيعات" + }, + "xpub-notice": "بالنسبة للمحفظة المراقبة فقط، يتم دعم تصدير المعاملات فقط" + }, + "qrcode": { + "copy": "نسخ الصورة", + "save": "حفظ الصورة" + }, + "common": { + "or": "أو", + "ok": "موافق", + "dismiss": "رفض", + "confirm": "تأكيد", + "open": "فتح", + "cancel": "إلغاء", + "save": "حفظ", + "toggle": { + "on": "تشغيل", + "off": "إيقاف" + }, + "copy-tx-hash": "نسخ تجزئة المعاملة", + "copy-address": "نسخ العنوان", + "select": "تحديد", + "backup": "نسخ احتياطي", + "edit": "تعديل", + "delete": "حذف", + "click-to-edit": "انقر للتعديل", + "notice": "تنويه", + "experimental": "تجريبي", + "close": "إغلاق", + "copy": "نسخ", + "copied": "تم النسخ", + "verification-failure": "فشل التحقق", + "back": "رجوع", + "switch-to-light": "التبديل إلى الوضع الفاتح", + "switch-to-dark": "التبديل إلى الوضع الداكن", + "ckb-node-data-path": "مسار بيانات عقدة CKB" + }, + "notification-panel": { + "title": "الإشعارات" + }, + "message-types": { + "warning": "تحذير", + "alert": "تنبيه", + "success": "نجاح" + }, + "messages": { + "error": "خطأ", + "unknown-error": "خطأ غير معروف", + "update-wallet-successfully": "تم تحديث المحفظة بنجاح", + "delete-wallet-successfully": "تم حذف المحفظة بنجاح", + "create-network-successfully": "تم إنشاء الشبكة بنجاح", + "update-network-successfully": "تم تحديث الشبكة بنجاح", + "clear-cache-successfully": "تم مسح الذاكرة المؤقتة بنجاح", + "addr-copied": "تم نسخ العنوان إلى الحافظة", + "qrcode-copied": "تم نسخ رمز الاستجابة السريعة إلى الحافظة", + "view-the-run-node-doc": "عرض الدليل في المتصفح", + "remain-ckb-for-withdraw": "يُقترح الاحتفاظ ببعض CKBytes لعملية السحب", + "no-valid-addresses-found": "لم يتم العثور على عناوين صالحة", + "decimal-range": "يجب أن يكون العشري عددًا صحيحًا ضمن النطاق {{range}} (شامل)", + "experimental-message-hardware": "هذه ميزة تجريبية. يرجى الانتباه إلى المخاطر واستخدامها بحذر.", + "experimental-message": "هذه ميزة تجريبية، قد تتغير في أي وقت. يرجى استخدامها بحذر.", + "rebuild-sync": "لتحسين تجربة المستخدم، يستخدم Neuron تخزينًا جديدًا، مما يتطلب ترحيل البيانات (يستغرق من 20 إلى 60 دقيقة تقريبًا). نعتذر عن الإزعاج.", + "migrate-warning": "تحذير: قد تفشل عملية الترحيل لأسباب غير معروفة مما يؤدي إلى إعادة المزامنة، يرجى النسخ الاحتياطي يدويًا وبدء الترحيل!", + "migrate-ckb-data": "ترحيل", + "migrate": "ترحيل", + "secp256k1/blake160-address-required": "العنوان من نوع Secp256k1/blake160 مطلوب", + "light-client-locktime-warning": "لا يدعم وضع عميل خفيف عرض CKBytes ذات وقت القفل.", + "light-client-cheque-warning": "تحذير: وضع عميل خفيف لا يدعم عرض أصول الشيك.", + "fields": { + "wallet": "محفظة", + "name": "الاسم", + "password": "كلمة المرور", + "remote": "رابط RPC", + "network": "شبكة", + "address": "العنوان", + "amount": "المبلغ", + "transaction": "معاملة", + "default-address": "العنوان الافتراضي", + "mnemonic": "عبارة الاسترداد", + "keystore-path": "ملف Keystore", + "keystore-name": "اسم المحفظة", + "keystore-password": "كلمة المرور", + "deposit": "الإيداع", + "account-name": "اسم الحساب", + "token-name": "اسم الرمز", + "token-id": "معرف الرمز", + "symbol": "الرمز", + "decimal": "العشري" + }, + "codes": { + "-3": "", + "100": "المبلغ غير كافٍ.", + "101": "المبلغ {{amount}} CKB صغير جدًا، يرجى إدخال مبلغ لا يقل عن {{required}} CKB.", + "102": "$t(messages.fields.{{fieldName}}) غير صالح.", + "103": "$t(messages.fields.keystore-password) غير صحيح", + "104": "فشل الاتصال بالعقدة، يرجى إعادة تشغيل Neuron.", + "105": "تحتاج إلى مزيد من القدرات للتغيير (أكثر من 61 CKBytes).", + "106": "تحتاج إلى مزيد من القدرات للتغيير (أكثر من 61 CKBytes)، أو اسحب حتى النهاية لإرسال كل رصيدك.", + "107": "المبلغ {{amount}} CKB صغير جدًا، يتطلب النقل باستخدام وقت القفل مبلغًا لا يقل عن 69 CKB.", + "108": "العنوان المقدم لا ينتمي إلى المحفظة الحالية. يرجى التحقق من محفظتك أو الانتظار حتى تكتمل المزامنة.", + "109": "الرصيد غير كافٍ.", + "110": "الرصيد المتاح غير كافٍ، يرجى المحاولة مرة أخرى عندما يتم تأكيد المعاملة الأخيرة.", + "111": "لم يتم تعيين المحفظة الحالية.", + "112": "لم يتم العثور على المحفظة {{id}}.", + "113": "Keystore غير صالح، يرجى التحقق من سلامة الملف.", + "114": "الحد الأدنى لرصيد النقل هو {{bytes}} CKBytes.", + "115": "تحتاج إلى مزيد من القدرات للتغيير (أكثر من 61 CKBytes)، أو انقر على زر 'الحد الأقصى' لإرسال كل رصيدك.", + "201": "$t(messages.fields.{{fieldName}}) مطلوب.", + "202": "$t(messages.fields.{{fieldName}}) مستخدم.", + "203": "$t(messages.fields.{{fieldName}}) يجب أن يكون أقصر من أو يساوي {{length}}.", + "204": "$t(messages.fields.{{fieldName}}) قصير جدًا، يجب أن يكون أطول من أو يساوي {{length}}.", + "205": "$t(messages.fields.{{fieldName}}) {{fieldValue}} غير صالح.", + "206": "$t(messages.fields.{{fieldName}}) غير صالح، يرجى إدخال $t(messages.fields.{{fieldName}}) بدون أكثر من {{length}} منازل عشرية.", + "207": "$t(messages.fields.{{fieldName}}) {{fieldValue}} غير صالح، لا يمكن أن يكون سالبًا.", + "208": "$t(messages.fields.{{fieldName}}) {{fieldValue}} غير صالح، يجب أن يبدأ بـ http(s)://", + "209": "$t(messages.fields.{{fieldName}}) يجب ألا يحتوي على مسافات.", + "210": "\"{{value}}\" محجوز، يرجى استخدام آخر.", + "211": "لا يمكن أن يكون المبلغ 0", + "212": "$t(messages.fields.{{fieldName}}) بسيط جدًا", + "301": "$t(messages.fields.{{fieldName}}) {{fieldValue}} لا يمكن إزالته.", + "303": "$t(messages.fields.{{fieldName}}) غير موجود.", + "304": "الكاميرا غير متاحة أو معطلة.", + "305": "$t(messages.fields.address) لا يمكن أن يكون فارغًا.", + "306": "يرجى إدخال عنوان الشبكة الرئيسية", + "307": "يرجى إدخال عنوان شبكة الاختبار", + "308": "المبلغ غير كافٍ", + "309": "المستلم بحاجة إلى ترقية عنوان حسابه لقبول المزيد من النقل.", + "310": "يرجى إدخال عنوان {{tagName}}", + "311": "يرجى إدخال العنوان", + "402": "تطبيق CKB غير مفتوح. يرجى فتح تطبيق CKB على جهازك.", + "403": "لم يتم اكتشاف أي جهاز. يرجى توصيل جهازك", + "404": "تم اكتشاف أجهزة متعددة. يمكن توصيل جهاز واحد فقط من نفس الطراز.", + "600": "يرجى التأكد من أن المزامنة قد انتهت قبل القيام بأي عملية متعلقة بالمعاملات." + } + }, + "sync": { + "synced": "تمت المزامنة بنسبة 100%", + "syncing": "جارٍ المزامنة {{ syncPercents }}", + "block-number": "رقم الكتلة", + "syncing-balance": "يتم تحديث الرصيد", + "slow": "المزامنة بطيئة", + "sync-failed": "فشل المزامنة", + "sync-failed-detail": "فشلت المزامنة بسبب مشكلات في عقدة الشبكة أو مشاكل أخرى.", + "learn-more": "اعرف المزيد", + "sync-not-start": "لم تبدأ المزامنة بعد، يرجى محاولة إعادة تشغيل محفظة Neuron", + "connecting": "جارٍ الاتصال" + }, + "pagination": { + "previous-page": "الصفحة السابقة", + "next-page": "الصفحة التالية", + "first-page": "الصفحة الأولى", + "last-page": "الصفحة الأخيرة", + "page": "الصفحة", + "selected": "الصفحة الحالية", + "range": "{{start}} - {{end}} من {{count}}", + "page-no": "الصفحة {{pageNo}}" + }, + "nervos-dao": { + "free": "متاح", + "locked": "مقفل", + "deposit": "إيداع", + "deposit-rules": "قواعد الإيداع", + "copy-balance": "نسخ الرصيد", + "deposit-records": "سجلات الإيداع", + "completed-records": "المكتملة", + "apc": "نسبة التعويض السنوية الحالية", + "apc-tooltip": "نسبة التعويض السنوية الحالية", + "fee": "رسوم المعاملة: ", + "deposit-to-nervos-dao": "إيداع في Nervos DAO", + "withdraw-from-nervos-dao": "سحب من Nervos DAO", + "cancel": "إلغاء", + "proceed": "متابعة", + "compensation": "تعويض", + "notice-wait-time": "تنبيه: أنت تقوم ببدء عملية السحب وسيحتاج السحب النهائي إلى انتظار {{epochs}} دورات {{blocks}} كتل (حوالي {{days}} أيام).", + "deposit-dialog-title": "إيداع", + "deposit-terms": "يحتاج Nervos DAO إلى 102 CKBytes لتخزين خلية الإيداع، وهي خالية من التعويض.
يرجى زيارة <0>Nervos DAO RFC لمزيد من المعلومات حول Nervos DAO", + "minimal-fee-required": "الحد الأدنى لرصيد الإيداع هو {{minimal}} CKBytes", + "compensation-accumulated": "{{blockNumber}} كتل تم تجميعها كتعويض", + "withdraw-alert": "تلميح: هناك فقط {{epochs}} دورات (~{{hours}} ساعات) حتى نهاية فترة القفل الحالية. إذا كنت ترغب في السحب في فترة القفل الحالية، يرجى إرسال طلب السحب في الوقت المناسب. هناك {{nextLeftEpochs}} دورات (~{{days}} أيام) حتى نهاية فترة القفل التالية.", + "balance-not-reserved": "لا تحتفظ بأي CKBytes لعمليات DAO المستقبلية (غير موصى به)", + "estimated-rewards": "المكافآت المقدرة لمدة {{days}} أيام", + "estimated-apc": "نسبة التعويض السنوية المقدرة", + "estimated-apc-tooltip": "نسبة التعويض السنوية المقدرة", + "deposit-amount": "مبلغ الإيداع (CKB)", + "attention": "انتباه: بمجرد الإيداع في Nervos DAO، ستظل إيداعاتك مقفلة لمدة 180 دورة على الأقل (حوالي 30 يومًا).", + "deposit-submitted": "تم تقديم الإيداع", + "deposit-record": { + "deposited-at": "تم الإيداع في", + "completed-at": "تم الانتهاء", + "deposit-pending": "إيداع قيد الانتظار", + "withdraw-action-label": "سحب", + "unlock-action-label": "فتح", + "record": "سجل", + "deposited": "مُودع", + "withdrawn": "مسحوب", + "unlocked": "مفتوح", + "view-tx-detail": "عرض تفاصيل المعاملة", + "locked-period": "فترة القفل", + "compensated-period": "فترة التعويض", + "days-hours": "{{days}} أيام {{hours}} ساعات", + "no-deposit": "لا يوجد إيداع", + "no-completed": "لا توجد عمليات مكتملة", + "insufficient-balance-to-unlock": "الرصيد غير كافٍ لرسوم المعاملة لفتح الإيداع", + "lock-warn": "القفل حتى نهاية دورة التعويض الحالية" + }, + "compensation-period": { + "tooltip": { + "compensated-period": "فترة التعويض", + "days-hours": "{{days}} أيام {{hours}} ساعات", + "immature-for-withdraw": "يستغرق الأمر على الأقل حوالي 16 ساعة (4 دورات) للمضي قدمًا في الإجراء التالي", + "normal": "مبلغ التعويض منخفض، لا يُوصى بإجراء السحب", + "suggested": "فترة السحب المقترحة لتعظيم التعويض", + "ending": "قد يتم تأجيل السحب المطلوب وقبوله لدورة إضافية من 30 يومًا", + "withdrawn": "مسحوب" + }, + "stage-messages": { + "deposit-in-progress": "جارٍ الإيداع", + "immature-for-withdraw": "لا يمكن سحب CKB خلال الساعات القادمة ({{hours}} ساعة)", + "immature-for-unlock": "لا يمكن فتح CKB خلال الساعات القادمة ({{hours}} ساعة)", + "next-compensation-cycle": "ستبدأ دورة التعويض التالية في حوالي {{days}} يومًا", + "next-compensation-cycle-hours": "ستبدأ دورة التعويض التالية في حوالي {{hours}} ساعة", + "withdrawing": "جارٍ السحب...", + "compensation-cycle-will-end": "تنتهي دورة التعويض في حوالي {{days}} يومًا", + "compensation-cycle-will-end-hours": "تنتهي دورة التعويض في حوالي {{hours}} ساعة", + "compensation-cycle-has-ended": "انتهت الدورة، CKB جاهز للإلغاء", + "unlocking": "جارٍ فتح القفل...", + "calculating-the-compensation-cycle": "جارٍ حساب دورة التعويض" + } + } + }, + "nervos-dao-detail": { + "tx-detail": "تفاصيل المعاملة", + "deposited": "مُودع", + "withdrawn": "مسحوب", + "unlocked": "مفتوح", + "basic-information": "معلومات أساسية", + "transaction-hash": "تجزئة المعاملة", + "blockNumber": "رقم الكتلة", + "datetime": "التاريخ والوقت", + "income": "الدخل", + "index": "المؤشر", + "address": "العنوان", + "amount": "المبلغ", + "cell-from-cellbase": "من خلية الأساس", + "cancel": "إلغاء", + "next": "التالي" + }, + "deposit-rules": { + "minimum-deposit": "الحد الأدنى للإيداع", + "single-compensation-cycle": "دورة تعويض واحدة", + "single-compensation-cycle-description": "180 حقبة (حوالي 30 يومًا)", + "withdraw": "سحب", + "withdraw-description": "في أي وقت", + "unlock": "فتح", + "unlock-description": "بعد دورة التعويض الحالية", + "get": "احصل على" + }, + "lock-info-dialog": { + "address-info": "معلومات العنوان", + "deprecated-address": "عنوان مهمل" + }, + "updates": { + "check-updates": "تحقق من التحديثات", + "checking-updates": "جارٍ التحقق...", + "update-available": "تحديثات متاحة حاليًا.", + "downloading-update": "جارٍ تنزيل التحديث...", + "update-not-available": "لا توجد تحديثات متاحة حاليًا.", + "updates-found-do-you-want-to-update": "تم العثور على تحديث ({{version}})، هل ترغب في التحديث؟", + "install-update": "تثبيت الآن", + "updates-downloaded-about-to-quit-and-install": "تم تنزيل التحديث. جاهز للتثبيت وإعادة التشغيل.", + "quit-and-install-restart": "تثبيت وإعادة التشغيل", + "quit-and-install": "تثبيت الآن" + }, + "datetime": { + "mon": { + "full": "الاثنين", + "short": "اثن.", + "tag": "اث" + }, + "tue": { + "full": "الثلاثاء", + "short": "ثلا.", + "tag": "ث" + }, + "wed": { + "full": "الأربعاء", + "short": "أرب.", + "tag": "أر" + }, + "thur": { + "full": "الخميس", + "short": "خم.", + "tag": "خ" + }, + "fri": { + "full": "الجمعة", + "short": "جم.", + "tag": "ج" + }, + "sat": { + "full": "السبت", + "short": "سبت.", + "tag": "س" + }, + "sun": { + "full": "الأحد", + "short": "أحد.", + "tag": "أ" + }, + "jan": { + "full": "يناير", + "short": "ينا.", + "tag": "ين" + }, + "feb": { + "full": "فبراير", + "short": "فبر.", + "tag": "ف" + }, + "mar": { + "full": "مارس", + "short": "مار.", + "tag": "م" + }, + "apr": { + "full": "أبريل", + "short": "أبر.", + "tag": "أب" + }, + "may": { + "full": "مايو", + "short": "ماي.", + "tag": "ما" + }, + "june": { + "full": "يونيو", + "short": "يون.", + "tag": "يو" + }, + "july": { + "full": "يوليو", + "short": "يول.", + "tag": "يو" + }, + "aug": { + "full": "أغسطس", + "short": "أغس.", + "tag": "أغ" + }, + "sept": { + "full": "سبتمبر", + "short": "سبت.", + "tag": "سب" + }, + "oct": { + "full": "أكتوبر", + "short": "أكت.", + "tag": "أك" + }, + "nov": { + "full": "نوفمبر", + "short": "نوف.", + "tag": "نو" + }, + "dec": { + "full": "ديسمبر", + "short": "ديس.", + "tag": "د" + }, + "timezone": "المنطقة الزمنية", + "previous-month": "الشهر السابق", + "next-month": "الشهر التالي", + "start-tomorrow": "يجب أن يبدأ الوقت المحدد من الغد." + }, + "sign-and-verify": { + "window-title": "توقيع أو تحقق من الرسالة", + "sign-or-verify-message": "توقيع أو تحقق من الرسالة", + "message": "الرسالة", + "address": "العنوان", + "signature": "التوقيع", + "cancel": "إلغاء", + "sign": "توقيع", + "verify": "تحقق", + "password": "كلمة المرور", + "confirm": "تأكيد", + "verification-success": "تم التحقق بنجاح", + "verification-failure": "فشل التحقق", + "address-not-found": "العنوان المُعطى لا ينتمي إلى المحفظة الحالية. يرجى التحقق من محفظتك أو الانتظار حتى اكتمال المزامنة.", + "sign-with-magic-byte": "سيتم توقيع الرسالة بالبايتات السحرية 'Nervos Message:'", + "verify-tip": "يمكن التحقق منها بواسطة Neuron من الإصدار v0.33.1", + "verify-old-sign-success": "تم توقيع الرسالة بواسطة Neuron قبل الإصدار v0.33.1", + "input-message": "يرجى إدخال الرسالة", + "input-choose-address": "يرجى إدخال أو اختيار عنوان", + "input-password": "يرجى إدخال كلمة المرور" + }, + "special-assets": { + "title": "الأصول المخصصة", + "date": "التاريخ", + "assets": "الأصول", + "type-script-tooltip": "نص النوع", + "data-tooltip": "البيانات", + "user-defined-asset": "أصل غير مصنف", + "user-defined-asset-tooltip": "هذا أصل غير مصنف، لا يمكن لـ Neuron معالجته الآن، يرجى استخدام برنامج طرف ثالث للتحقق.", + "locked-asset": "مقفل", + "locked-asset-tooltip": "معامل القفل هو {{epochs}} حقبة، تاريخ الإصدار المقدر هو {{year}}-{{month}}-{{day}} (وفقًا لارتفاع الكتلة الفعلي الجاري، قد يكون هناك بعض الفروقات الزمنية في وقت القفل).", + "withdraw-asset-tooltip": "وقت الإصدار المقدر هو {{year}}-{{month}}-{{day}} {{hour}}:{{minute}} (وفقًا لارتفاع الكتلة الفعلي الجاري).", + "user-defined-token-tooltip": "ترحيل أصل {{udtType}} إلى حساب أصل {{udtType}}", + "claim-asset": "ادعِ", + "withdraw-asset": "سحب", + "view-details": "عرض التفاصيل", + "release-success": "تم تحرير الأصل، عرض التفاصيل في السجل.", + "no-special-assets": "لا توجد أصول مخصصة", + "experimental": "تجريبي", + "unknown-asset": "أصل غير معروف", + "transfer-nft": "إرسال", + "user-defined-token": "ترحيل", + "transfer-nft-success": "تم نقل الأصول بنجاح", + "migrate-sudt-success": "تم تحويل حساب أصل {{udtType}} الجديد بنجاح", + "send-sudt-success": "تم النقل إلى حساب {{udtType}} بنجاح", + "unlock-success": "تم ادعاء الأصل، اذهب إلى سجل المعاملات للتفاصيل", + "withdraw-cheque-success": "تم سحب الأصل، اذهب إلى سجل المعاملات للتفاصيل", + "claim-cheque-success": "تم ادعاء الأصل، اذهب إلى سجل المعاملات للتفاصيل" + }, + "migrate-sudt": { + "title": "ترحيل إلى حساب أصل {{udtType}}", + "choose-title": "وضعية الترحيل", + "next": "التالي", + "back": "السابق", + "input-token": "يرجى إدخال اسم الرمز", + "input-symbol": "يرجى إدخال الرمز", + "input-decimal": "يرجى إدخال العشرية", + "turn-into-new-account": { + "title": "تحويل إلى حساب أصل {{udtType}} جديد", + "sub-title": "تحويل أصل {{udtType}} إلى حساب {{udtType}} جديد، يشغل على الأقل 142 CKBytes", + "cancel": "إلغاء", + "confirm": "تأكيد" + }, + "transfer-to-exist-account": { + "title": "نقل إلى حساب أصل {{udtType}} موجود", + "sub-title": "نقل جميع أرصدة {{udtType}} إلى حساب {{udtType}} موجود، يرجى التأكد من أن الحساب الهدف نشط" + }, + "cancel": "إلغاء", + "confirm": "تأكيد", + "balance": "الرصيد", + "amount": "المبلغ", + "address": "العنوان" + }, + "s-udt": { + "edit-account-success": "تم تعديل معلومات الحساب بنجاح", + "create-account-success": "تم إنشاء حساب الأصل بنجاح", + "account-list": { + "title": "حسابات الأصول", + "no-asset-accounts": "لم يتم اكتشاف أي أصل sUDT", + "search": "اسم الحساب، اسم الرمز أو الرمز", + "syncing": "جارٍ المزامنة، قد تكون البيانات الحالية غير دقيقة", + "send": "إرسال", + "receive": "استلام", + "set-account-info": "تعيين معلومات الحساب" + }, + "create-dialog": { + "create-asset-account": "إنشاء حساب أصل", + "input-account-name": "يرجى إدخال اسم الحساب", + "select-account-type": "اختر نوع الحساب", + "account-name": "اسم الحساب", + "sudt-account": "حساب sUDT", + "xudt-account": "حساب xUDT", + "delete-failed": "فشل حذف تكوين التوقيع المتعدد، سبب الفشل: {{reason}}", + "ckb-account": "حساب CKB", + "set-token-info": "تعيين معلومات الرمز", + "token-id": "معرف الرمز", + "token-name": "اسم الرمز", + "symbol": "الرمز", + "decimal": "عشرية", + "confirm": "تأكيد", + "cancel": "إلغاء", + "next": "التالي", + "back": "السابق", + "occupy-142-ckb": "يشغل على الأقل 142 CKBytes", + "occupy-61-ckb": "يشغل على الأقل 61 CKBytes", + "input": { + "account-name": "يرجى إدخال اسم الحساب", + "token-id": "يرجى إدخال معرف الرمز", + "token-name": "يرجى إدخال اسم الرمز", + "symbol": "يرجى إدخال الرمز", + "decimal": "يرجى إدخال العشرية" + }, + "placeholder": { + "token-id": "معرف الرمز هو Args لنص النوع {{udtType}}، والذي هو نفس تجزئة القفل لمنشئ الرمز." + } + }, + "send": { + "title": "إرسال", + "address": "إرسال إلى", + "address-placeholder": "يرجى إدخال العنوان", + "input-address": "يرجى إدخال العنوان", + "input-description": "يرجى إدخال الوصف، اختياري", + "amount": "المبلغ", + "amount-placeholder": "يرجى إدخال المبلغ", + "description": "الوصف", + "description-placeholder": "يرجى إدخال الوصف، اختياري", + "submit": "إرسال", + "click-to-edit": "انقر للتعديل", + "cheque-address-hint": { + "label": "قفل 162 CKBytes مؤقتًا", + "tooltip": "سيتم قفل سعة 162 CKBytes مؤقتًا لتهيئة نقل الرمز، وسيتم فكها تلقائيًا بعد ادعاء الرمز من قبل المستلم." + }, + "destroy": "تدمير", + "destroy-ckb-desc": "سيتم إعادة جميع CKB من حساب أصل CKB هذا إلى عنوان التغيير الخاص بك.", + "destroy-sudt-desc": "سيتم إعادة CKB المشغل لحساب الأصل إلى عنوان التغيير الخاص بك.", + "extra-ckb-send-to-secp256": { + "label": "إرسال 142 CKBytes إضافية مع {{assetName}}", + "tooltip": "سيتم إرسال 142 CKBytes إضافية مع {{assetName}} للاحتفاظ بالأصل" + }, + "extra-ckb-send-to-acp": { + "label": "إرسال {{extraCKB}} CKBytes إضافية لإنشاء حساب أصل للمستلم" + }, + "extra-ckb-send-to-unknow": { + "label": "عنوان الاستلام يحتوي على نص قفل غير معروف، يرجى التأكد من أن المستلم يعرف كيفية التعامل معه، وسيتم إرسال {{extraCKB}} CKBytes إضافية مع {{assetName}} للاحتفاظ بالأصل" + }, + "select-option": "يرجى تأكيد الخيار أعلاه قبل الإرسال" + }, + "receive": { + "notation": "قبول {{symbol}} فقط" + }, + "update-dialog": { + "update-asset-account": "تفاصيل الحساب", + "account-name": "اسم الحساب", + "token-id": "معرف الرمز", + "token-name": "اسم الرمز", + "symbol": "الرمز", + "decimal": "العشرية", + "confirm": "تأكيد", + "cancel": "إلغاء" + } + }, + "multisig-address": { + "window-title": "عناوين التوقيع المتعدد", + "guide-tip": "ارجع إلى وثائق التوقيع المتعدد لت <0>تعلم المزيد.", + "learn-more": "تعلم المزيد", + "search": { + "placeholder": "بحث بواسطة عنوان التوقيع المتعدد، الاسم المستعار" + }, + "add": { + "label": "إنشاء" + }, + "import": { + "label": "استيراد" + }, + "export": { + "label": "تصدير" + }, + "ok": "حسنًا", + "no-data": "لا يوجد عنوان توقيع متعدد", + "table": { + "address": "عنوان الموقع", + "alias": "الاسم المستعار", + "type": "النوع", + "balance": "الرصيد", + "copy-address": "نسخ العنوان", + "action": "الإجراءات", + "more": "المزيد", + "sync-block": "كتلة متزامنة", + "actions": { + "info": "معلومات", + "send": "إرسال", + "approve": "الموافقة", + "delete": "حذف" + } + }, + "import-dialog": { + "actions": { + "cancel": "إلغاء", + "confirm": "تأكيد" + }, + "notice": "يمكن استيراد تكوين واحد فقط في كل مرة. إذا كان محتوى الملف مصفوفة، يتم استيراد الأول بشكل افتراضي." + }, + "delete-failed": "فشل حذف تكوين التوقيع المتعدد", + "remove-multisig-address": "إزالة عنوان التوقيع المتعدد", + "remove-multisig-address-msg": "هل أنت متأكد أنك تريد إزالة عنوان التوقيع المتعدد المحدد؟", + "send-ckb": { + "title": "إرسال CKB من عنوان توقيع متعدد", + "detail": "إرسال CKB من عنوان توقيع متعدد {{m}}-من-{{n}}: <0>", + "balance": "الرصيد", + "address": "العنوان", + "amount": "المبلغ", + "send": "إرسال", + "cancel": "إلغاء", + "export": "تصدير المعاملة" + }, + "multi-details": "تفاصيل عنوان التوقيع المتعدد", + "synchronization-abort": "تم إلغاء المزامنة", + "synchronization-abort-msg": "سيؤدي مغادرة النافذة الحالية إلى إلغاء مزامنة التوقيع المتعدد، لذا يرجى التأكد قبل المغادرة.", + "create-dialog": { + "title": "إنشاء عنوان توقيع متعدد", + "preview-title": "تم إنشاء عنوان توقيع متعدد", + "index": "المؤشر", + "required": "مطلوب", + "signer-address": "عنوان الموقع", + "copy-address": "نسخ العنوان", + "placeholder": "يرجى إدخال {{type}} (1-255)", + "m-n": { + "title": "يرجى إدخال تكوين عنوان التوقيع المتعدد من نوع m-of-n حيث يتطلب أي m مفاتيح خاصة من n ممكنة لنقل الأصل.", + "m-less-equal-n": "بالنسبة لعنوان توقيع متعدد m-of-n، يجب ألا يكون m أكبر من n", + "m-n-required": "يرجى إدخال m/n", + "m-n-between-0-256": "يجب أن يكون m/n بين 0 و256" + }, + "multi-address-info": { + "title": "يرجى إدخال المواقع لعنوان التوقيع المتعدد {{m}}-من-{{n}}", + "view-title": "عنوان التوقيع المتعدد {{m}}-من-{{n}}", + "ckb-address-placeholder": "يرجى إدخال عنوان CKB" + }, + "multi-list": "قائمة المواقع", + "actions": { + "cancel": "إلغاء", + "back": "السابق", + "next": "التالي", + "generate-address": "إنشاء عنوان", + "confirm": "تأكيد" + }, + "duplicate-address-forbid": "لا يمكن تكرار العنوان" + }, + "approve-dialog": { + "title": "الموافقة باستخدام عنوان التوقيع المتعدد", + "detail": "الموافقة باستخدام عنوان توقيع متعدد {{m}}-من-{{n}} <0>", + "transaction": "المعاملة", + "cancel": "إلغاء", + "signAndExport": "توقيع وتصدير", + "export": "تصدير المعاملة", + "signAndBroadcast": "توقيع وبث", + "broadcast": "بث", + "content": "المحتوى:", + "status": "الحالة", + "signerApprove": "نقص {{m}} موافقة من الموقعين، بما في ذلك {{r}} من الموقعين المحددين", + "noRSignerApprove": "نقص {{m}} موافقة من الموقعين", + "signed": "موقع", + "view-concise-data": "بيانات موجزة", + "view-raw-data": "بيانات خام" + } + }, + "dropdown": { + "placeholder": "يرجى التحديد..." + }, + "price-switch": { + "price": "السعر", + "customPrice": "سعر مخصص", + "errorTip": "لا يمكن أن يكون السعر أقل من {{minPrice}} شانون/KB، يرجى إعادة الإدخال", + "hintTip": "السعر المقترح هو {{suggestFeeRate}} شانون/KB", + "priceColumn": "السعر {{priceValue}} شانون/KB | الرسوم {{feeValue}} CKB", + "fast": "سريع", + "standard": "قياسي", + "slow": "بطيء", + "countDownTip": "سيتم تحديث السعر بعد {{countDown}} ثانية", + "switchToCustomPrice": "التبديل إلى سعر مخصص", + "switchToPrice": "التبديل إلى السعر" + }, + "set-start-block-number": { + "title": "تعيين رقم كتلة البداية", + "warn": "تحذير: لن تتم مزامنة المعاملات قبل كتلة البداية للمزامنة", + "tip": "رقم كتلة المزامنة البدء هو تكوين عند استخدام عقدة ckb خفيفة العميل، ثم يمكنك تعيينه وتسريع المزامنة", + "input-place-holder": "يرجى إدخال رقم كتلة المزامنة البدء، مثل: 10,100,101", + "locate-first-tx": "تحديد المعاملة الأولى", + "view-block": "عرض الكتلة", + "set-less-than-before": "رقم الكتلة الذي تحدده أصغر من التعيين السابق، ستبدأ المزامنة من جديد، يرجى المتابعة بحذر.", + "reset-to-header-tip-number": "لا يمكن تعيين رقم كتلة أكبر من رقم كتلة رأس الرأس، سيتم إعادة التعيين إلى رقم كتلة رأس الرأس." + }, + "main": { + "external-node-detected-dialog": { + "title": "تم الكشف عن عقدة خارجية", + "body-tips-without-network": "لقد اخترت العقدة الداخلية ولكنك بدأت العقدة الخارجية، إذا كنت ترغب في الاستمرار في استخدام العقدة الخارجية، يرجى إضافة شبكة جديدة.", + "body-tips-with-network": "لقد اخترت حاليًا عقدة داخلية ولكنك بدأت عقدة خارجية، إذا كنت بحاجة إلى الاستمرار في استخدام العقدة الخارجية، يرجى التبديل إلى شبكة خارجية أخرى أو إضافة شبكة جديدة.", + "add-network": "إضافة شبكة", + "ignore-external-node": "تجاهل العقدة الخارجية" + }, + "no-disk-space-dialog": { + "tip": "بسبب عدم كفاية مساحة القرص، تم إيقاف المزامنة.
يرجى تخصيص مساحة قرص أكبر أو نقل البيانات إلى قرص آخر.", + "continue-sync": "استمرار المزامنة", + "migrate-data": "نقل البيانات" + }, + "import-exist-xpubkey-dialog": { + "replace-tip": "تم استيراد محفظة المراقبة من قبل، هل ترغب في استبدالها؟", + "delete-tip": "كان هناك محفظة أصلية مماثلة موجودة. إذا كنت ترغب في الاستمرار في الاستيراد، يرجى حذفها." + } + }, + "cell-manage": { + "title": "إدارة الخلية", + "wallet-balance": "رصيد المحفظة", + "table": { + "head": { + "date": "التاريخ", + "type": "النوع", + "balance": "الرصيد", + "status": "الحالة", + "description": "الوصف", + "action": "العملية" + }, + "locked": "مقفل", + "unlocked": "مفتوح", + "default-description": "لا شيء" + }, + "cell-detail-dialog": { + "title": "تفاصيل الخلية", + "transaction-hash": "هاش المعاملة", + "capacity-used": "السعة المستخدمة", + "data": "البيانات", + "total": "الإجمالي", + "used": "المستخدم", + "view-raw-data": "بيانات خام", + "UTF8": "UTF-8", + "address": "العنوان", + "number": "العدد", + "bigEndian": "Big-Endian" + }, + "locked-reason": { + "multi-locktime": "الخلية لها قفل زمني ولا يمكنك استخدامها حتى {{time}}.", + "multi-locktime-reached": "انتهى القفل الزمني لهذه الخلية ويجب عليك ادعاؤها في الأصول المخصصة قبل استخدامها.", + "cheque-acp-multisig": "هذه خلية {{type}} ولا تدعم فك القفل.", + "NFT-SUDT-DAO": "هذه أصل {{type}} ولا تدعم فك القفل.", + "Unknown": "هذا أصل غير مصنف، يرجى التحقق والتأكيد قبل المتابعة." + }, + "cell-lock-dialog": { + "title": "قفل الخلية", + "capacity": "قفل خلية مختارة {{capacity}} CKB", + "locked-cell-can-not-use": "تحذير، لا يمكن استخدام الخلايا المقفلة" + }, + "cell-unlock-dialog": { + "title": "فتح خلية", + "capacity": "فتح خلية مختارة {{capacity}} CKB" + }, + "cell-consume-dialog": { + "title": "استهلاك الخلية", + "warn-consume": "سيؤدي استهلاك الخلية إلى عدم الاحتفاظ بأي بيانات واستخدام كل CKB، يرجى التأكد من عدم وجود بيانات مهمة تحتاج إلى الاحتفاظ بها" + }, + "cell-consolidate-dialog": { + "title": "تجميع الخلايا", + "warn-consume": "سيتم تجميع جميع الخلايا المختارة في خلية جديدة، تأكد من أن الخلايا المختارة لا تحتوي على بيانات مهمة." + }, + "enter-password": "أدخل كلمة المرور", + "password-placeholder": "يرجى إدخال كلمة مرور المحفظة", + "lock": "قفل", + "unlock": "فتح", + "consume": "استهلاك", + "verify": "تحقق", + "consolidate": "تجميع" + }, + "send-tx-detail": { + "page-title": "تفاصيل المعاملة", + "basic-info": "معلومات أساسية", + "topology": "الهندسة", + "tx-basic": { + "tx-hash": "هاش المعاملة", + "capacity": "السعة", + "tx-fee": "رسوم المعاملة", + "size": "الحجم", + "lock-time": "وقت القفل" + } + }, + "lock-window": { + "neuron-is-locked": "تم قفل نافذة نيورون", + "enter-lock-password": "أدخل كلمة مرور القفل", + "forget-password": "هل نسيت كلمة المرور؟", + "lock-password-error": "خطأ في كلمة مرور نافذة القفل", + "failed-times": "فشل أكثر من {{frequency}} مرات، يرجى المحاولة بعد {{time}}", + "verify-wallet": "تحقق" + } + } +} \ No newline at end of file diff --git a/packages/neuron-ui/src/locales/en.json b/packages/neuron-ui/src/locales/en.json index 7f43a266e..4c5142990 100644 --- a/packages/neuron-ui/src/locales/en.json +++ b/packages/neuron-ui/src/locales/en.json @@ -470,10 +470,13 @@ }, "locale": { "en": "English", - "en-US": "English(United States)", - "zh": "中文(简体)", - "zh-TW": "中文(繁體)", + "en-US": "English (United States)", + "zh": "中文 (简体)", + "zh-TW": "中文 (繁體)", + "ar": "العربية", "fr": "Français", + "fr-CA": "Français (Canada)", + "fr-BE": "Français (Belgique)", "es": "Español" }, "data": { diff --git a/packages/neuron-ui/src/locales/es.json b/packages/neuron-ui/src/locales/es.json index 0cb4932d1..2ba59528b 100644 --- a/packages/neuron-ui/src/locales/es.json +++ b/packages/neuron-ui/src/locales/es.json @@ -453,10 +453,13 @@ }, "locale": { "en": "English", - "en-US": "English(United States)", - "zh": "中文(简体)", - "zh-TW": "中文(繁體)", + "en-US": "English (United States)", + "zh": "中文 (简体)", + "zh-TW": "中文 (繁體)", + "ar": "العربية", "fr": "Français", + "fr-CA": "Français (Canada)", + "fr-BE": "Français (Belgique)", "es": "Español" }, "data": { diff --git a/packages/neuron-ui/src/locales/fr.json b/packages/neuron-ui/src/locales/fr.json index 6d5890ad1..9973dc4e0 100644 --- a/packages/neuron-ui/src/locales/fr.json +++ b/packages/neuron-ui/src/locales/fr.json @@ -460,10 +460,13 @@ }, "locale": { "en": "English", - "en-US": "English(United States)", - "zh": "中文(简体)", - "zh-TW": "中文(繁體)", + "en-US": "English (United States)", + "zh": "中文 (简体)", + "zh-TW": "中文 (繁體)", + "ar": "العربية", "fr": "Français", + "fr-CA": "Français (Canada)", + "fr-BE": "Français (Belgique)", "es": "Español" }, "data": { diff --git a/packages/neuron-ui/src/locales/zh-tw.json b/packages/neuron-ui/src/locales/zh-tw.json index 8f96a5ed4..6f69bd6bf 100644 --- a/packages/neuron-ui/src/locales/zh-tw.json +++ b/packages/neuron-ui/src/locales/zh-tw.json @@ -464,10 +464,13 @@ }, "locale": { "en": "English", - "en-US": "English(United States)", - "zh": "中文(简体)", - "zh-TW": "中文(繁體)", + "en-US": "English (United States)", + "zh": "中文 (简体)", + "zh-TW": "中文 (繁體)", + "ar": "العربية", "fr": "Français", + "fr-CA": "Français (Canada)", + "fr-BE": "Français (Belgique)", "es": "Español" }, "data": { diff --git a/packages/neuron-ui/src/locales/zh.json b/packages/neuron-ui/src/locales/zh.json index ed50683b8..5f2e16103 100644 --- a/packages/neuron-ui/src/locales/zh.json +++ b/packages/neuron-ui/src/locales/zh.json @@ -463,10 +463,13 @@ }, "locale": { "en": "English", - "en-US": "English(United States)", - "zh": "中文(简体)", - "zh-TW": "中文(繁體)", + "en-US": "English (United States)", + "zh": "中文 (简体)", + "zh-TW": "中文 (繁體)", + "ar": "العربية", "fr": "Français", + "fr-CA": "Français (Canada)", + "fr-BE": "Français (Belgique)", "es": "Español" }, "data": { diff --git a/packages/neuron-ui/src/tests/calendar/index.test.ts b/packages/neuron-ui/src/tests/calendar/index.test.ts index bfac169ca..ae4e0772e 100644 --- a/packages/neuron-ui/src/tests/calendar/index.test.ts +++ b/packages/neuron-ui/src/tests/calendar/index.test.ts @@ -111,6 +111,24 @@ describe('Get Local Month Short Names', () => { expect(getLocalMonthShortNames('fr')).toEqual(names) }) + it('Arabic', () => { + const names = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ] + expect(getLocalMonthShortNames('ar')).toEqual(names) + }) + it('Spanish', () => { const names = ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sept', 'oct', 'nov', 'dic'] expect(getLocalMonthShortNames('es')).toEqual(names) @@ -157,6 +175,24 @@ describe('Get Local Month Names', () => { expect(getLocalMonthNames('fr')).toEqual(names) }) + it('Arabic', () => { + const names = [ + 'يناير', + 'فبراير', + 'مارس', + 'أبريل', + 'مايو', + 'يونيو', + 'يوليو', + 'أغسطس', + 'سبتمبر', + 'أكتوبر', + 'نوفمبر', + 'ديسمبر', + ] + expect(getLocalMonthNames('ar')).toEqual(names) + }) + it('Spanish', () => { const names = [ 'enero', @@ -197,6 +233,11 @@ describe('Get Local Week Names', () => { expect(getLocalWeekNames('fr')).toEqual(names) }) + it('Arabic', () => { + const names = ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'] + expect(getLocalWeekNames('ar')).toEqual(names) + }) + it('Traditional Chinese', () => { const names = ['日', '一', '二', '三', '四', '五', '六'] expect(getLocalWeekNames('zh-TW')).toEqual(names) diff --git a/packages/neuron-ui/src/utils/const.ts b/packages/neuron-ui/src/utils/const.ts index 02dc63967..4e2e2cbb9 100644 --- a/packages/neuron-ui/src/utils/const.ts +++ b/packages/neuron-ui/src/utils/const.ts @@ -50,7 +50,7 @@ export const DEFAULT_SUDT_FIELDS = { CKBSymbol: 'CKB', CKBDecimal: '8', } -export const LOCALES = ['zh', 'zh-TW', 'en', 'en-US', 'fr', 'es'] as const +export const LOCALES = ['zh', 'zh-TW', 'en', 'en-US', 'ar', 'fr', 'fr-CA', 'fr-BE', 'es'] as const // address property export const SHORT_ADDR_LENGTH = 46 diff --git a/packages/neuron-ui/src/utils/i18n.ts b/packages/neuron-ui/src/utils/i18n.ts index 7202152a5..5be8f2800 100644 --- a/packages/neuron-ui/src/utils/i18n.ts +++ b/packages/neuron-ui/src/utils/i18n.ts @@ -7,14 +7,18 @@ import en from 'locales/en.json' import zhTW from 'locales/zh-tw.json' import fr from 'locales/fr.json' import es from 'locales/es.json' +import ar from 'locales/ar.json' i18n.use(initReactI18next).init({ resources: { en, fr, + ar, es, zh, 'zh-TW': zhTW, + 'fr-CA': fr, + 'fr-BE': fr, }, lng: getLocale(), fallbackLng: { diff --git a/packages/neuron-wallet/electron-builder.yml b/packages/neuron-wallet/electron-builder.yml index 32ab13572..8beb1160e 100644 --- a/packages/neuron-wallet/electron-builder.yml +++ b/packages/neuron-wallet/electron-builder.yml @@ -73,7 +73,7 @@ mac: gatekeeperAssess: false entitlements: assets/entitlements.plist entitlementsInherit: assets/entitlements.plist - electronLanguages: ["en", "zh", "zh_CN", "zh_TW"] + electronLanguages: ["en", "zh", "zh_CN", "zh_TW", "ar", "fr"] target: - target: default arch: diff --git a/packages/neuron-wallet/src/locales/ar.ts b/packages/neuron-wallet/src/locales/ar.ts new file mode 100644 index 000000000..f72a67161 --- /dev/null +++ b/packages/neuron-wallet/src/locales/ar.ts @@ -0,0 +1,301 @@ +export default { + translation: { + keywords: { + wallet: 'محفظة', + password: 'كلمة المرور', + 'wallet-name': 'اسم المحفظة', + }, + 'application-menu': { + neuron: { + about: 'حول {{app}}', + preferences: 'التفضيلات...', + 'check-updates': 'التحقق من التحديثات...', + quit: 'إنهاء {{app}}', + }, + wallet: { + label: 'المحفظة', + select: 'اختر المحفظة', + 'create-new': 'إنشاء محفظة جديدة', + import: 'استيراد المحفظة', + backup: 'نسخ احتياطي للمحفظة الحالية', + 'export-xpubkey': 'تصدير المفتاح العام الموسع', + delete: 'حذف المحفظة الحالية', + 'change-password': 'تغيير كلمة المرور', + 'import-mnemonic': 'استيراد العبارة المساعدة', + 'import-keystore': 'الاستيراد من مخزن المفاتيح', + 'import-xpubkey': 'استيراد المفتاح العام الموسع', + 'import-hardware': 'استيراد محفظة الأجهزة', + }, + edit: { + label: 'تعديل', + cut: 'قص', + copy: 'نسخ', + paste: 'لصق', + selectall: 'تحديد الكل', + }, + tools: { + label: 'أدوات', + 'sign-and-verify': 'توقيع/التحقق من الرسالة', + 'multisig-address': 'عناوين التوقيع المتعدد', + 'offline-sign': 'توقيع غير متصل', + 'clear-sync-data': 'مسح جميع البيانات المتزامنة', + 'broadcast-transaction': 'بث المعاملة', + }, + window: { + label: 'نافذة', + minimize: 'تصغير', + close: 'إغلاق النافذة', + lock: 'قفل النافذة', + }, + help: { + label: 'مساعدة', + 'nervos-website': 'موقع Nervos', + 'source-code': 'شفرة المصدر', + 'report-issue': 'الإبلاغ عن مشكلة', + 'contact-us': 'اتصل بنا', + 'contact-us-message': + '> يرجى إرفاق معلومات التصحيح المصدرة من "القائمة" -> "مساعدة" -> "تصدير معلومات التصحيح".', + documentation: 'الوثائق', + settings: 'الإعدادات', + 'export-debug-info': 'تصدير معلومات التصحيح', + }, + develop: { + develop: 'تطوير', + 'force-reload': 'إعادة التحميل بالقوة', + reload: 'إعادة التحميل', + 'toggle-dev-tools': 'تبديل أدوات المطور', + }, + }, + services: { + transactions: 'المعاملات', + wallets: 'المحافظ', + }, + messages: { + 'failed-to-load-networks': 'فشل في تحميل الشبكات.', + 'Networks-will-be-reset': 'سيتم إعادة تعيين الشبكات.', + 'wallet-password-less-than-min-length': 'يجب أن تكون كلمة المرور من {{minPasswordLength}} أحرف على الأقل.', + 'wallet-password-more-than-max-length': 'يمكن أن تصل كلمة المرور إلى {{maxPasswordLength}} أحرف.', + 'wallet-password-letter-complexity': + 'يجب أن تحتوي كلمة المرور على مزيج من الأحرف الكبيرة والصغيرة والأرقام والرموز الخاصة.', + 'current-wallet-not-set': 'لم يتم تعيين المحفظة الحالية.', + 'incorrect-password': 'كلمة المرور غير صحيحة', + 'invalid-address': 'العنوان {{address}} غير صالح.', + 'codehash-not-loaded': 'لم يتم تحميل codehash.', + 'wallet-not-found': 'لم يتم العثور على المحفظة {{id}}.', + 'failed-to-create-mnemonic': 'فشل في إنشاء العبارة المساعدة.', + 'network-not-found': 'لم يتم العثور على شبكة بالمعرف {{id}}.', + 'invalid-name': 'الاسم {{field}} غير صالح.', + 'default-network-unremovable': 'لا يمكن إزالة الشبكة الافتراضية.', + 'lack-of-default-network': 'لا توجد شبكة افتراضية.', + 'current-network-not-set': 'لم يتم تعيين عقدة CKB الحالية.', + 'transaction-not-found': 'لم يتم العثور على المعاملة {{hash}}.', + 'is-required': '{{field}} مطلوب.', + 'invalid-format': '{{field}} بتنسيق غير صالح.', + 'used-name': 'الاسم {{field}} مستخدم، يرجى اختيار اسم آخر.', + 'missing-required-argument': 'المعامل المطلوب مفقود.', + 'save-keystore': 'حفظ مخزن المفاتيح.', + 'save-extended-public-key': 'حفظ المفتاح العام الموسع.', + 'import-extended-public-key': 'استيراد المفتاح العام الموسع.', + 'invalid-mnemonic': 'العبارة المساعدة غير صالحة، يرجى التحقق منها مرة أخرى.', + 'unsupported-cipher': 'الشيفرة غير مدعومة.', + 'capacity-not-enough': 'السعة غير كافية.', + 'capacity-not-enough-for-change': 'تحتاج إلى مزيد من السعة للفائض (أكثر من 61 CKBytes).', + 'capacity-not-enough-for-change-by-transfer': + "تحتاج إلى مزيد من السعة للفائض (أكثر من 61 CKBytes)، أو اضغط على زر 'الحد الأقصى' لإرسال كل رصيدك.", + 'live-capacity-not-enough': 'السعة المتاحة غير كافية، يرجى المحاولة مرة أخرى بعد تأكيد المعاملة الأخيرة.', + 'capacity-too-small': 'الحد الأدنى للسعة للتحويل هو {{bytes}} CKBytes.', + 'should-be-type-of': '{{field}} يجب أن يكون من نوع {{type}}.', + 'invalid-keystore': 'مخزن المفاتيح غير صالح، يرجى التحقق من سلامة الملف.', + 'invalid-json': 'ملف JSON غير صالح، يرجى التحقق من سلامة الملف.', + 'cell-is-not-yet-live': 'يرجى الانتظار حتى يتم تأكيد المعاملة الأخيرة على السلسلة.', + 'transaction-is-not-committed-yet': + 'لا يمكن العثور على الخلايا المطلوبة على السلسلة، يرجى التأكد من تأكيد المعاملات ذات الصلة.', + 'mainnet-address-required': '{{address}} ليس عنوان الشبكة الرئيسية.', + 'testnet-address-required': '{{address}} ليس عنوان شبكة الاختبار.', + 'address-not-found': + 'العنوان المعطى لا ينتمي إلى المحفظة الحالية. يرجى التحقق من محفظتك أو الانتظار حتى تكتمل المزامنة.', + 'target-output-not-found': 'لا توجد محفظة حساب مرتبطة بهذا العنوان.', + 'acp-same-account': 'يجب ألا يكون حساب الدفع وحساب الاستلام هو نفسه.', + 'device-sign-canceled': + 'لقد قمت بإلغاء طلب التوقيع. إذا لم يكن الأمر كذلك، يرجى التأكد من تمكين إعداد "السماح ببيانات العقد" في تطبيق Nervos على جهازك.', + 'connect-device-failed': 'لا يمكن الاتصال بالجهاز، يرجى التحقق من اتصالك.', + 'unsupported-manufacturer': 'الأجهزة من {{manufacturer}} غير مدعومة حاليًا.', + 'wallet-not-supported-function': 'هذه المحفظة لا تدعم الوظيفة {name}.', + 'unsupported-ckb-cli-keystore': 'Neuron لا يدعم استيراد ملف مخزن المفاتيح الخاص بـ ckb-cli.', + 'invalid-transaction-file': 'ملف المعاملة غير صالح.', + 'offline-sign-failed': 'فشل التوقيع، يرجى التحقق من استخدام المحفظة الصحيحة.', + 'multisig-script-prefix-error': 'إعداد التوقيع المتعدد خاطئ', + 'multisig-config-not-exist': 'إعداد التوقيع المتعدد غير موجود', + 'multisig-config-exist': 'إعداد التوقيع المتعدد موجود بالفعل', + 'multisig-config-address-error': 'عنوان إعداد التوقيع المتعدد غير صحيح', + 'multisig-config-need-error': 'يتطلب إنشاء معاملة توقيع متعدد إعداد التوقيع المتعدد', + 'transaction-no-input-parameter': 'معامل الإدخال مفقود للاستعلام عن الخلايا', + 'migrate-sudt-no-type': 'الخلايا المهاجرة لا تحتوي على نص النوع', + 'multisig-not-signed': 'التوقيعات الجزئية مفقودة للمعاملات ذات التوقيع المتعدد', + 'multisig-lock-hash-mismatch': 'عنوان التوقيع المتعدد الحالي لا يتطابق مع المعاملة التي سيتم الموافقة عليها', + 'sudt-acp-have-data': 'الحساب المدمر لـ sUDT لديه بيانات', + 'no-match-address-for-sign': 'لم يتم العثور على عنوان مطابق للتوقيع', + 'target-lock-error': 'يمكن لحساب أصول CKB التحويل فقط إلى عنوان secp256k1 أو acp', + 'no-exist-ckb-node-data': '{{path}} لا يحتوي على تكوين وتخزين عقدة CKB، اضغط على "تأكيد" للمزامنة من البداية', + 'light-client-sudt-acp-error': 'وضع العميل الخفيف لا يدعم إرسال الأصول إلى حسابات أصول الآخرين', + 'could-not-connect-service': 'تعذر الاتصال بالخدمة، يرجى المحاولة مرة أخرى لاحقًا.', + 'address-required': 'لا يمكن أن يكون العنوان فارغًا.', + }, + messageBox: { + button: { + confirm: 'تأكيد', + discard: 'إلغاء', + }, + 'clear-sync-data': { + title: 'مسح جميع البيانات المتزامنة', + message: + 'سيؤدي مسح جميع البيانات المتزامنة إلى حذف جميع البيانات المحلية وإعادة مزامنة البيانات على السلسلة، وقد تستغرق المزامنة الكاملة وقتًا طويلاً.', + }, + 'send-capacity': { + title: 'إرسال معاملة', + }, + 'remove-network': { + title: 'إزالة الشبكة', + message: 'سيتم إزالة شبكة {{name}} (العنوان: {{address}}).', + alert: 'هذه هي الشبكة الحالية، عند إزالتها، سيتم التحويل إلى الشبكة الافتراضية', + }, + 'remove-wallet': { + title: 'حذف المحفظة', + password: 'كلمة المرور', + }, + 'backup-keystore': { + title: 'نسخ احتياطي لمخزن المفاتيح', + password: 'كلمة المرور', + }, + transaction: { + title: 'معاملة: {{hash}}', + }, + 'sign-and-verify': { + title: 'توقيع/التحقق من الرسالة', + }, + 'multisig-address': { + title: 'عناوين التوقيع المتعدد', + }, + 'ckb-dependency': { + title: 'العميل المدمج لـ CKB', + message: 'يتطلب الاعتماد', + detail: `تعتمد عقد الشبكة في Neuron على مكونات بلغة C++، لذا يرجى تثبيت أحدث إصدار من Redistributable لـ Microsoft Visual C++ لنظام x64 لضمان تشغيل البرنامج بشكل صحيح.`, + buttons: { + 'install-and-exit': 'تثبيت وإنهاء', + }, + }, + 'acp-migration': { + title: 'ترقية حساب الأصول', + message: 'ترقية حساب الأصول', + detail: + 'في الآونة الأخيرة، حدد فريق الأمان لدينا ثغرة محتملة في نص حساب الأصول التجريبي. لقد نشرنا نص حساب الأصول الجديد مع إصلاح على الشبكة الرئيسية وسيستخدم جميع حسابات الأصول المستقبلية الإصدار الجديد. نقترح عليك ترقيتها لاستخدام النص الجديد.', + buttons: { + migrate: 'ترقية آمنة الآن', + skip: 'أنا أعلم بالمخاطر، سأرقى لاحقًا', + }, + }, + 'acp-migration-completed': { + title: 'تهانينا! لقد أكملت الترقية الآمنة.', + message: 'تهانينا! لقد أكملت الترقية الآمنة.', + buttons: { + ok: 'حسنًا', + }, + }, + 'hard-fork-migrate': { + message: + 'من أجل التوافق مع أحدث إصدار من CKB، سيقوم Neuron بمزامنة البيانات على السلسلة، وقد تستغرق المزامنة الكاملة وقتًا طويلاً.', + }, + 'mail-us': { + message: 'يرجى مراسلتنا مع إرفاق معلومات التصحيح المصدرة من "القائمة" -> "مساعدة" -> "تصدير معلومات التصحيح".', + 'open-client': 'فتح عميل البريد', + 'fail-message': + 'تعذر تشغيل عميل البريد، يرجى نسخ عنوان البريد الإلكتروني، وإرفاق معلومات التصحيح المصدرة من "القائمة" -> "مساعدة" -> "تصدير معلومات التصحيح" وإرسالها لنا.', + 'copy-mail-addr': 'نسخ عنوان البريد الإلكتروني', + }, + 'migrate-failed': { + title: 'فشلت الترقية', + message: + 'فشلت الترقية، اضغط على "حسنًا" لحذف البيانات القديمة والمزامنة من البداية، أو اضغط على "إلغاء" للترقية لاحقًا بإعادة تشغيل Neuron. سبب فشل الترقية: {{reason}}', + buttons: { + ok: 'حسنًا', + cancel: 'إلغاء', + }, + }, + }, + prompt: { + password: { + label: 'أدخل كلمة المرور الخاصة بك', + submit: 'إرسال', + cancel: 'إلغاء', + }, + }, + updater: { + 'update-not-available': 'لا توجد تحديثات متاحة حاليًا.', + }, + common: { + yes: 'نعم', + no: 'لا', + ok: 'حسنًا', + cancel: 'إلغاء', + error: 'خطأ', + }, + 'export-debug-info': { + 'export-debug-info': 'تصدير معلومات التصحيح', + 'debug-info-exported': 'تم تصدير معلومات التصحيح إلى {{file}}', + }, + about: { + 'app-version': 'إصدار {{name}}: {{version}}', + 'ckb-client-version': 'إصدار عميل CKB: {{version}}', + 'ckb-light-client-version': 'إصدار عميل CKB الخفيف: {{version}}', + }, + settings: { + title: { + normal: 'الإعدادات', + mac: 'التفضيلات', + }, + }, + 'export-transactions': { + 'export-transactions': 'تصدير سجل المعاملات', + 'export-success': 'تم تصدير المعاملات بنجاح', + 'transactions-exported': 'تم تصدير {{total}} سجل معاملات إلى {{file}}', + column: { + time: 'الوقت', + 'block-number': 'رقم الكتلة', + 'tx-hash': 'تجزئة المعاملة', + 'tx-type': 'نوع المعاملة', + amount: 'مبلغ CKB', + 'udt-amount': 'مبلغ UDT', + description: 'الوصف', + }, + 'tx-type': { + send: 'إرسال', + receive: 'استلام', + 'create-asset-account': 'إنشاء حساب أصول {{name}}', + 'destroy-asset-account': 'حذف حساب الأصول {{name}}', + }, + }, + 'offline-signature': { + 'export-transaction': 'تصدير المعاملة كـ JSON', + 'transaction-exported': 'تم تصدير المعاملة إلى {{filePath}}.', + 'load-transaction': 'تحميل ملف المعاملة', + }, + 'multisig-config': { + 'import-config': 'استيراد إعداد التوقيع المتعدد', + 'export-config': 'تصدير إعداد التوقيع المتعدد', + 'config-exported': 'تم تصدير إعداد التوقيع المتعدد إلى {{filePath}}.', + 'import-duplicate': 'يرجى التحقق من وجود إعدادات مكررة', + 'import-result': 'عمليات الاستيراد الناجحة: {{success}}، الفاشلة: {{fail}}.{{failCheck}}', + 'confirm-delete': 'تأكيد حذف إعداد التوقيع المتعدد؟', + 'approve-tx': 'تأكيد معاملة التوقيع المتعدد', + 'delete-actions': { + ok: 'تأكيد', + cancel: 'إلغاء', + }, + }, + 'open-in-explorer': { + title: 'عرض في مستكشف CKB', + transaction: 'معاملة', + message: 'عرض {{type}} {{key}} في مستكشف CKB', + }, + }, +} diff --git a/packages/neuron-wallet/src/locales/i18n.ts b/packages/neuron-wallet/src/locales/i18n.ts index 703b1f042..10724f7b7 100644 --- a/packages/neuron-wallet/src/locales/i18n.ts +++ b/packages/neuron-wallet/src/locales/i18n.ts @@ -3,15 +3,19 @@ import zh from './zh' import en from './en' import zhTW from './zh-tw' import fr from './fr' +import ar from './ar' import es from './es' i18n.init({ resources: { en, + ar, fr, es, zh, 'zh-TW': zhTW, + 'fr-CA': fr, + 'fr-BE': fr, }, fallbackLng: { 'zh-CN': ['zh'], diff --git a/packages/neuron-wallet/src/services/settings.ts b/packages/neuron-wallet/src/services/settings.ts index f836ba5e0..cd202dffb 100644 --- a/packages/neuron-wallet/src/services/settings.ts +++ b/packages/neuron-wallet/src/services/settings.ts @@ -11,7 +11,7 @@ import { LIGHT_CLIENT_MAINNET, LIGHT_CLIENT_TESTNET } from '../utils/const' const { app } = env -export const locales = ['zh', 'zh-TW', 'en', 'en-US', 'fr', 'es'] as const +export const locales = ['zh', 'zh-TW', 'en', 'en-US', 'ar', 'fr', 'fr-CA', 'fr-BE', 'es'] as const export type Locale = (typeof locales)[number] const settingKeys = { ckbDataPath: 'ckbDataPath', diff --git a/packages/neuron-wallet/tests/services/setting.test.ts b/packages/neuron-wallet/tests/services/setting.test.ts index 78f2bf453..c456e1c4c 100644 --- a/packages/neuron-wallet/tests/services/setting.test.ts +++ b/packages/neuron-wallet/tests/services/setting.test.ts @@ -76,9 +76,11 @@ describe('SettingsService', () => { }) it('set', () => { SettingsService.getInstance().locale = 'zh' + SettingsService.getInstance().locale = 'ar' SettingsService.getInstance().locale = 'fr' SettingsService.getInstance().locale = 'es' expect(writeSyncMock).toBeCalledWith('locale', 'zh') + expect(writeSyncMock).toBeCalledWith('locale', 'ar') expect(writeSyncMock).toBeCalledWith('locale', 'fr') expect(writeSyncMock).toBeCalledWith('locale', 'es') expect(updateApplicationMenuMock).toHaveBeenCalled() From d7228da37d0d1e6e617e011946cab6d3b226902a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2024 17:38:03 +0900 Subject: [PATCH 6/9] chore(deps): bump nanoid from 3.3.6 to 3.3.8 (#3278) Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.6 to 3.3.8. - [Release notes](https://github.com/ai/nanoid/releases) - [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md) - [Commits](https://github.com/ai/nanoid/compare/3.3.6...3.3.8) --- updated-dependencies: - dependency-name: nanoid dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index de72f256a..55aa095ba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15082,9 +15082,9 @@ nanoassert@^2.0.0: integrity sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA== nanoid@^3.3.6: - version "3.3.6" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + version "3.3.8" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" + integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== nanomatch@^1.2.9: version "1.2.13" From 7ca008caf6943b2231afbb1d29ff70eaaee2470f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2024 18:06:48 +0900 Subject: [PATCH 7/9] chore: Update ckb node assume valid target (#3282) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- packages/neuron-wallet/.env | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/neuron-wallet/.env b/packages/neuron-wallet/.env index 3b6fcb433..1c24ec4eb 100644 --- a/packages/neuron-wallet/.env +++ b/packages/neuron-wallet/.env @@ -117,6 +117,6 @@ DAO_CODE_HASH=0x82d76d1b75fe2fd9a27dfbaa65a039221a380d76c926f378d3f81cf3e7e13f2e MULTISIG_CODE_HASH=0x5c5069eb0857efc65e1bca0c07df34c31663b3622fd3876c876320fc9634e2a8 # CKB NODE OPTIONS -CKB_NODE_ASSUME_VALID_TARGET='0x7488acf2280ebf5b83c805a517f766eab77f45cd51f61476811d1ce96a60ea71' -CKB_NODE_ASSUME_VALID_TARGET_BLOCK_NUMBER=14687217 +CKB_NODE_ASSUME_VALID_TARGET='0xe1085c7ce8f4e8461ea75afe63ef21d2c1ce6a5d0bf0f0170042bebdd2fbde04' +CKB_NODE_ASSUME_VALID_TARGET_BLOCK_NUMBER=14817366 CKB_NODE_DATA_SIZE=116 From 23df11147c472c04ba1dbb5a30774d47b1c29e44 Mon Sep 17 00:00:00 2001 From: Keith Date: Fri, 13 Dec 2024 17:10:02 +0800 Subject: [PATCH 8/9] chore: update versions and changelogs --- CHANGELOG.md | 24 ++++++++++++++++++++++++ lerna.json | 2 +- package.json | 2 +- packages/neuron-ui/package.json | 2 +- packages/neuron-wallet/package.json | 6 +++--- 5 files changed, 30 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 118116006..689dddb5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,27 @@ +# 0.120.0 (2024-12-13) + +### CKB Node & Light Client + +- [CKB@v0.120.0](https://github.com/nervosnetwork/ckb/releases/tag/v0.120.0) was released on Dec. 12th, 2024. This version of CKB node is now bundled and preconfigured in Neuron. +- [CKB Light Client@v0.4.1](https://github.com/nervosnetwork/ckb-light-client/releases/tag/v0.4.1) was released on Nov. 13th, 2024. This version of CKB Light Client is now bundled and preconfigured in Neuron + +### Assumed valid target + +Block before `0xe1085c7ce8f4e8461ea75afe63ef21d2c1ce6a5d0bf0f0170042bebdd2fbde04`(at height `14,817,366`) will be skipped in validation.(https://github.com/nervosnetwork/neuron/pull/3282) + +--- + +## New features + +- #3271: Support Arabic, FrCanadian/Belgian in User Interface.(@Natixe) + +## New Contributors + +- @Natixe made their first contribution in https://github.com/nervosnetwork/neuron/pull/3271 + +**Full Changelog**: https://github.com/nervosnetwork/neuron/compare/v0.119.0...v0.120.0 + + # 0.119.0 (2024-12-02) ### CKB Node & Light Client diff --git a/lerna.json b/lerna.json index 6124dd279..ebd934768 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "packages": [ "packages/*" ], - "version": "0.119.0", + "version": "0.120.0", "npmClient": "yarn", "$schema": "node_modules/lerna/schemas/lerna-schema.json" } diff --git a/package.json b/package.json index 65f963d9b..3131fa124 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "neuron", "productName": "Neuron", "description": "CKB Neuron Wallet", - "version": "0.119.0", + "version": "0.120.0", "private": true, "author": { "name": "Nervos Core Dev", diff --git a/packages/neuron-ui/package.json b/packages/neuron-ui/package.json index aebcb7cd5..11247bb41 100644 --- a/packages/neuron-ui/package.json +++ b/packages/neuron-ui/package.json @@ -1,6 +1,6 @@ { "name": "neuron-ui", - "version": "0.119.0", + "version": "0.120.0", "private": true, "author": { "name": "Nervos Core Dev", diff --git a/packages/neuron-wallet/package.json b/packages/neuron-wallet/package.json index d1e4ebdfa..8bbbdba31 100644 --- a/packages/neuron-wallet/package.json +++ b/packages/neuron-wallet/package.json @@ -3,7 +3,7 @@ "productName": "Neuron", "description": "CKB Neuron Wallet", "homepage": "https://www.nervos.org/", - "version": "0.119.0", + "version": "0.120.0", "private": true, "author": { "name": "Nervos Core Dev", @@ -47,9 +47,9 @@ "@ckb-lumos/helpers": "0.23.0", "@ckb-lumos/lumos": "0.23.0", "@ckb-lumos/rpc": "0.23.0", - "@magickbase/hw-app-ckb": "0.2.0-alpha.0", "@iarna/toml": "2.2.5", "@ledgerhq/hw-transport-node-hid": "6.27.22", + "@magickbase/hw-app-ckb": "0.2.0-alpha.0", "@spore-sdk/core": "0.1.0", "archiver": "6.0.2", "async": "3.2.5", @@ -92,7 +92,7 @@ "electron-builder": "24.9.1", "electron-devtools-installer": "3.2.0", "jest-when": "3.6.0", - "neuron-ui": "0.119.0", + "neuron-ui": "0.120.0", "typescript": "5.3.3" } } From 832b8fd1a05bbefe168e178a3efa04026cdfb427 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2024 19:19:17 +0900 Subject: [PATCH 9/9] Update Neuron compatibility table (#3284) Co-authored-by: Keith-CY <7271329+Keith-CY@users.noreply.github.com> --- compatible.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/compatible.json b/compatible.json index 7e4b0d4c5..7948c6020 100644 --- a/compatible.json +++ b/compatible.json @@ -169,7 +169,6 @@ }, "0.119": { "full": [ - "0.120", "0.119", "0.118", "0.117", @@ -188,7 +187,7 @@ "0.2" ] }, - "0.119": { + "0.120": { "full": [ "0.119", "0.118",