diff --git a/.github/workflows/pr-any.yml b/.github/workflows/pr-any.yml index 4caf3b8fe10b..d4b46ac63bfe 100644 --- a/.github/workflows/pr-any.yml +++ b/.github/workflows/pr-any.yml @@ -5,7 +5,7 @@ jobs: pr: strategy: matrix: - step: ['lint', 'lint:css', 'lint:i18n', 'test', 'build:code', 'build:i18n'] + step: ['lint', 'lint:css', 'test', 'build:code', 'build:i18n'] name: ${{ matrix.step }} runs-on: ubuntu-latest steps: diff --git a/I18N.md b/I18N.md new file mode 100644 index 000000000000..b7d5f1106fc7 --- /dev/null +++ b/I18N.md @@ -0,0 +1,20 @@ +# I18N + +The apps UI allows all strings to be translated. Additionally it has a basic UI that allows for the creation of the required translation files, which will give an overview on the progress for a specific language. + +## Updating translations + +To update translations, the following process is required. + +- launch the apps UI, either locally or via [https://polkadot.js.org/apps](https://polkadot.js.org/apps) +- explicitly navigate to the i18n page, [https://polkadot.js.org/apps/#/i18n](https://polkadot.js.org/apps/#/i18n) + +Here you will find a dropdown of all the available languages and all the modules that maps to the UI. On a single screen you will be able to see all the available strings for a specific module. + +- adjust any strings as required +- once completed with the changes, click the `Generate translation.json` button to download the translation file +- this file can now be added to the repo with a PR to [https://github.com/polkadot-js/apps/tree/master/packages/apps/public/locales](https://github.com/polkadot-js/apps/tree/master/packages/apps/public/locales) + +## Adding a new language + +The process is similar for the above, but does require a new folder with the language identifier to be added, with an empty `translation.json` (containing only `{}`) & `index.json` file (containing only `[]`) diff --git a/package.json b/package.json index a02a48a06419..a92953c6feb0 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "analyze": "yarn run build && cd packages/apps && yarn run source-map-explorer build/main.*.js", "build": "yarn run build:i18n && yarn run build:code", "build:code": "NODE_ENV=production node_modules/@polkadot/dev/scripts/polkadot-dev-build-ts.js", - "build:i18n": "i18next-scanner --config i18next-scanner.config.js", + "build:i18n": "i18next-scanner --config i18next-scanner.config.js && node ./scripts/i18nSort.js", "build:release": "yarn polkadot-ci-ghact-build && yarn polkadot-ci-ghact-docs", "build:www": "rm -rf packages/apps/build && mkdir -p packages/apps/build && yarn run build:i18n && cd packages/apps && NODE_ENV=production webpack --config webpack.config.js", "docs": "echo \"skipping docs\"", @@ -29,7 +29,6 @@ "clean:i18n": "rm -rf packages/apps/public/locales/en && mkdir -p packages/apps/public/locales/en", "lint": "polkadot-dev-run-lint", "lint:css": "stylelint './packages/**/src/**/*.tsx'", - "lint:i18n": "node ./scripts/i18nLint.js", "postinstall": "polkadot-dev-yarn-only", "test": "polkadot-dev-run-test packages/page-claims/src", "test:one": "polkadot-dev-run-test", diff --git a/packages/apps-config/src/settings/languages.ts b/packages/apps-config/src/settings/languages.ts index 5235b2f02d71..ed4be4ff718c 100644 --- a/packages/apps-config/src/settings/languages.ts +++ b/packages/apps-config/src/settings/languages.ts @@ -18,5 +18,10 @@ export default function create (t: (key: string, text: string, options: { ns: st text: '汉语', value: 'zh' } + // For ja, we only have the settings page, remove until comprehensive + // , { + // text: '日本語', + // value: 'ja' + // } ]; } diff --git a/packages/apps-routing/src/i18n.ts b/packages/apps-routing/src/i18n.ts new file mode 100644 index 000000000000..d8e8ec5c14da --- /dev/null +++ b/packages/apps-routing/src/i18n.ts @@ -0,0 +1,19 @@ +// Copyright 2017-2020 @polkadot/apps-routing authors & contributors +// This software may be modified and distributed under the terms +// of the Apache-2.0 license. See the LICENSE file for details. + +import { Route } from './types'; + +import Translator from '@polkadot/app-i18n'; + +export default function create (t: (key: string, text: string, options: { ns: string }) => string): Route { + return { + Component: Translator, + display: { + isHidden: true + }, + icon: 'th', + name: 'i18n', + text: t('nav.i18n', 'I18n Translator', { ns: 'apps-routing' }) + }; +} diff --git a/packages/apps-routing/src/index.ts b/packages/apps-routing/src/index.ts index 8d9f49871ffa..e1cad7ebdfa7 100644 --- a/packages/apps-routing/src/index.ts +++ b/packages/apps-routing/src/index.ts @@ -18,6 +18,7 @@ import democracy from './democracy'; import explorer from './explorer'; import extrinsics from './extrinsics'; import genericAsset from './generic-asset'; +import i18n from './i18n'; import js from './js'; import parachains from './parachains'; import settings from './settings'; @@ -71,6 +72,8 @@ export default function create (t: (key: string, text: string, options: { ns: st settings(t), toolbox(t), js(t), - template(t) + // hidden + template(t), + i18n(t) ]; } diff --git a/packages/apps/public/locales/en/app-123code.json b/packages/apps/public/locales/en/app-123code.json index 0967ef424bce..9e26dfeeb6e6 100644 --- a/packages/apps/public/locales/en/app-123code.json +++ b/packages/apps/public/locales/en/app-123code.json @@ -1 +1 @@ -{} +{} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-accounts.json b/packages/apps/public/locales/en/app-accounts.json index 78b7c5b7df7d..009a03fa5236 100644 --- a/packages/apps/public/locales/en/app-accounts.json +++ b/packages/apps/public/locales/en/app-accounts.json @@ -1,197 +1,197 @@ { - "account forgotten": "account forgotten", - "This account is recoverable, with the following friends:": "This account is recoverable, with the following friends:", - "threshold": "threshold", - "delay": "delay", - "deposit": "deposit", - "send": "send", - "Send funds from this account": "Send funds from this account", - "Set on-chain identity": "Set on-chain identity", - "Derive account via derivation path": "Derive account via derivation path", - "Create a backup file for this account": "Create a backup file for this account", + "//hard/soft": "//hard/soft", + "//hard/soft///password": "//hard/soft///password", + "": "", + "Accounts injected from any of these extensions will appear in this application and be available for use. The above list is updated as more extensions with external signing capability become available.": "Accounts injected from any of these extensions will appear in this application and be available for use. The above list is updated as more extensions with external signing capability become available.", + "Add account": "Add account", + "Add account via Qr": "Add account via Qr", + "Add an account via seed": "Add an account via seed", + "Add an address": "Add an address", + "Add contact": "Add contact", + "Add identity judgment": "Add identity judgment", + "Add multisig": "Add multisig", + "Add via Qr": "Add via Qr", + "Add via backup file": "Add via backup file", + "Advanced creation options": "Advanced creation options", + "An URL that is linked to this identity.": "An URL that is linked to this identity.", + "An encrypted backup file will be created once you have pressed the \"Download\" button. This can be used to re-import your account on any other machine.": "An encrypted backup file will be created once you have pressed the \"Download\" button. This can be used to re-import your account on any other machine.", + "Approve this call hash": "Approve this call hash", + "Backup account": "Backup account", + "Cancel this call hash": "Cancel this call hash", + "Change": "Change", + "Change account password": "Change account password", "Change this account's password": "Change this account's password", + "Council": "Council", + "Create": "Create", + "Create a backup file for this account": "Create a backup file for this account", + "Create and backup account": "Create and backup account", + "Deposit": "Deposit", + "Derive account from pair": "Derive account from pair", + "Derive account via derivation path": "Derive account via derivation path", + "Determines what cryptography will be used to create this account. Note that to validate on Polkadot, the session account must use \"ed25519\".": "Determines what cryptography will be used to create this account. Note that to validate on Polkadot, the session account must use \"ed25519\".", + "Development": "Development", + "Download": "Download", + "Either approve or reject this call.": "Either approve or reject this call.", + "Erroneous": "Erroneous", + "Evaluated {{count}} keys in {{elapsed}}s ({{avg}} keys/s)": "Evaluated {{count}} keys in {{elapsed}}s ({{avg}} keys/s)", "Forget this account": "Forget this account", - "Make recoverable": "Make recoverable", + "Forget this address": "Forget this address", + "Important notice": "Important notice", + "Initiate account recovery": "Initiate account recovery", "Initiate recovery for another": "Initiate recovery for another", - "Multisig approvals": "Multisig approvals", + "Injected": "Injected", "It is recommended that you create/store your accounts securely and externally from the app. On {{yourBrowser}} the following browser extensions are available for use -": "It is recommended that you create/store your accounts securely and externally from the app. On {{yourBrowser}} the following browser extensions are available for use -", - "Accounts injected from any of these extensions will appear in this application and be available for use. The above list is updated as more extensions with external signing capability become available.": "Accounts injected from any of these extensions will appear in this application and be available for use. The above list is updated as more extensions with external signing capability become available.", + "Judge": "Judge", + "Known good": "Known good", "Learn more...": "Learn more...", - "accounts": "accounts", - "parent": "parent", - "type": "type", - "tags": "tags", - "transactions": "transactions", - "balances": "balances", - "filter by name or tags": "filter by name or tags", - "Add account": "Add account", - "Restore JSON": "Restore JSON", - "Add via Qr": "Add via Qr", - "Query Ledger": "Query Ledger", + "Less": "Less", + "Low quality": "Low quality", + "Make Transfer": "Make Transfer", + "Make recoverable": "Make recoverable", + "Mnemonic": "Mnemonic", + "More": "More", "Multisig": "Multisig", - "no accounts yet, create or import an existing": "no accounts yet, create or import an existing", - "Backup account": "Backup account", - "Download": "Download", - "An encrypted backup file will be created once you have pressed the \"Download\" button. This can be used to re-import your account on any other machine.": "An encrypted backup file will be created once you have pressed the \"Download\" button. This can be used to re-import your account on any other machine.", + "Multisig approvals": "Multisig approvals", + "My accounts": "My accounts", + "My contacts": "My contacts", + "Name given to this account. You can change it at any point in the future.": "Name given to this account. You can change it at any point in the future.", + "Name given to this account. You can edit it. To use the account to validate or nominate, it is a good practice to append the function of the account in the name, e.g \"name_you_want - stash\".": "Name given to this account. You can edit it. To use the account to validate or nominate, it is a good practice to append the function of the account in the name, e.g \"name_you_want - stash\".", + "Name given to this multisig. You can edit it it any later point in time.": "Name given to this multisig. You can edit it it any later point in time.", + "No judgments": "No judgments", + "No matches found": "No matches found", + "Owned": "Owned", + "Paste here the address of the contact you want to add to your address book.": "Paste here the address of the contact you want to add to your address book.", + "Pending call hashes": "Pending call hashes", + "Please make sure to save this file in a secure location as it is required, together with your password, to restore your account.": "Please make sure to save this file in a secure location as it is required, together with your password, to restore your account.", + "Provide judgement": "Provide judgement", + "Query Ledger": "Query Ledger", + "Raw seed": "Raw seed", + "Reasonable": "Reasonable", + "Register identity": "Register identity", + "Remove": "Remove", + "Restore": "Restore", + "Restore JSON": "Restore JSON", + "Save": "Save", "Save this backup file in a secure location. Additionally, the password associated with this account is needed together with this backup file in order to restore your account.": "Save this backup file in a secure location. Additionally, the password associated with this account is needed together with this backup file in order to restore your account.", + "Saved": "Saved", + "Search for": "Search for", + "Select a contact or paste the address you want to send funds to.": "Select a contact or paste the address you want to send funds to.", + "Select the JSON key file that was downloaded when you created the account. This JSON file contains your private key encrypted with your password.": "Select the JSON key file that was downloaded when you created the account. This JSON file contains your private key encrypted with your password.", + "Select the account you wish to recover into this account.": "Select the account you wish to recover into this account.", + "Send funds": "Send funds", + "Send funds from this account": "Send funds from this account", + "Send funds to this address": "Send funds to this address", + "Set Identity": "Set Identity", + "Set on-chain identity": "Set on-chain identity", + "Setup account as recoverable": "Setup account as recoverable", + "Should the search be case sensitive, e.g if you select \"no\" your search for \"Some\" may return addresses containing \"somE\" or \"sOme\"...": "Should the search be case sensitive, e.g if you select \"no\" your search for \"Some\" may return addresses containing \"somE\" or \"sOme\"...", + "Society": "Society", + "Start generation": "Start generation", + "Start recovery": "Start recovery", + "Stop generation": "Stop generation", + "Sudo key": "Sudo key", + "Technical committee": "Technical committee", + "Test account": "Test account", "The account password as specified when creating the account. This is used to encrypt the backup file and subsequently decrypt it when restoring the account.": "The account password as specified when creating the account. This is used to encrypt the backup file and subsequently decrypt it when restoring the account.", - "password": "password", - "Change account password": "Change account password", - "This will apply to any future use of this account as stored on this browser. Ensure that you securely store this new password and that it is strong and unique to the account.": "This will apply to any future use of this account as stored on this browser. Ensure that you securely store this new password and that it is strong and unique to the account.", + "The account you will send funds from.": "The account you will send funds from.", + "The addresses that are able to help in recovery. You can select up to {{maxHelpers}} trusted helpers.": "The addresses that are able to help in recovery. You can select up to {{maxHelpers}} trusted helpers.", + "The call hashes that have not been executed as of yet.": "The call hashes that have not been executed as of yet.", + "The delay between vouching and the availability of the recovered account.": "The delay between vouching and the availability of the recovered account.", + "The email address associated with this identity.": "The email address associated with this identity.", "The existing account password as specified when this account was created or when it was last changed.": "The existing account password as specified when this account was created or when it was last changed.", - "your current password": "your current password", + "The legal name for this identity.": "The legal name for this identity.", + "The name that will be displayed in your accounts list.": "The name that will be displayed in your accounts list.", "The new account password. Once set, all future account unlocks will be performed with this new password.": "The new account password. Once set, all future account unlocks will be performed with this new password.", - "your new password": "your new password", - "Change": "Change", - "Development": "Development", - "Mnemonic": "Mnemonic", - "Raw seed": "Raw seed", - "created account": "created account", - "Add an account via seed": "Add an account via seed", - "Name given to this account. You can edit it. To use the account to validate or nominate, it is a good practice to append the function of the account in the name, e.g \"name_you_want - stash\".": "Name given to this account. You can edit it. To use the account to validate or nominate, it is a good practice to append the function of the account in the name, e.g \"name_you_want - stash\".", - "name": "name", - "new account": "new account", + "The password to unlock the selected account.": "The password to unlock the selected account.", "The private key for your account is derived from this seed. This seed must be kept secret as anyone in its possession has access to the funds of this account. If you validate, use the seed of the session account as the \"--key\" parameter of your node.": "The private key for your account is derived from this seed. This seed must be kept secret as anyone in its possession has access to the funds of this account. If you validate, use the seed of the session account as the \"--key\" parameter of your node.", - "mnemonic seed": "mnemonic seed", - "development seed": "development seed", - "seed (hex or string)": "seed (hex or string)", + "The selected account to perform the derivation on.": "The selected account to perform the derivation on.", + "The signatory to send the approval/cancel from": "The signatory to send the approval/cancel from", + "The threshold for this multisig": "The threshold for this multisig", + "The threshold of vouches that is to be reached for the account to be recovered.": "The threshold of vouches that is to be reached for the account to be recovered.", + "The twitter name for this identity.": "The twitter name for this identity.", + "This account is recoverable, with the following friends:": "This account is recoverable, with the following friends:", "This password is used to encrypt your private key. It must be strong and unique! You will need it to sign transactions with this account. You can recover this account using this password together with the backup file (generated in the next step).": "This password is used to encrypt your private key. It must be strong and unique! You will need it to sign transactions with this account. You can recover this account using this password together with the backup file (generated in the next step).", + "This will apply to any future use of this account as stored on this browser. Ensure that you securely store this new password and that it is strong and unique to the account.": "This will apply to any future use of this account as stored on this browser. Ensure that you securely store this new password and that it is strong and unique to the account.", + "Type here what you would like your address to contain. This tool will generate the keys and show the associated addresses that best match your search. You can use \"?\" as a wildcard for a character.": "Type here what you would like your address to contain. This tool will generate the keys and show the associated addresses that best match your search. You can use \"?\" as a wildcard for a character.", + "Type the amount you want to transfer. Note that you can select the unit on the right e.g sending 1 milli is equivalent to sending 0.001.": "Type the amount you want to transfer. Note that you can select the unit on the right e.g sending 1 milli is equivalent to sending 0.001.", + "Type the name of your contact. This name will be used across all the apps. It can be edited later on.": "Type the name of your contact. This name will be used across all the apps. It can be edited later on.", + "Type the password chosen at the account creation. It was used to encrypt your account's private key in the backup file.": "Type the password chosen at the account creation. It was used to encrypt your account's private key in the backup file.", + "Unlock": "Unlock", + "Vanity generator": "Vanity generator", "Verify the password entered above.": "Verify the password entered above.", - "password (repeat)": "password (repeat)", - "Advanced creation options": "Advanced creation options", - "Determines what cryptography will be used to create this account. Note that to validate on Polkadot, the session account must use \"ed25519\".": "Determines what cryptography will be used to create this account. Note that to validate on Polkadot, the session account must use \"ed25519\".", - "keypair crypto type": "keypair crypto type", - "You can set a custom derivation path for this account using the following syntax \"//////\". The \"/\" and \"//\" may be repeated and mixed`. The \"///password\" is optional and should only occur once.": "You can set a custom derivation path for this account using the following syntax \"//////\". The \"/\" and \"//\" may be repeated and mixed`. The \"///password\" is optional and should only occur once.", - "secret derivation path": "secret derivation path", - "//hard/soft///password": "//hard/soft///password", - "Save": "Save", - "Important notice": "Important notice", "We will provide you with a generated backup file after your account is created. As long as you have access to your account you can always download this file later by clicking on \"Backup\" button from the Accounts section.": "We will provide you with a generated backup file after your account is created. As long as you have access to your account you can always download this file later by clicking on \"Backup\" button from the Accounts section.", - "Please make sure to save this file in a secure location as it is required, together with your password, to restore your account.": "Please make sure to save this file in a secure location as it is required, together with your password, to restore your account.", - "Create and backup account": "Create and backup account", - "The selected account to perform the derivation on.": "The selected account to perform the derivation on.", - "derive root account": "derive root account", - "Derive account from pair": "Derive account from pair", - "The password to unlock the selected account.": "The password to unlock the selected account.", - "derivation path": "derivation path", - "//hard/soft": "//hard/soft", - "Unlock": "Unlock", - "include value": "include value", - "exclude value": "exclude value", - "Register identity": "Register identity", - "The name that will be displayed in your accounts list.": "The name that will be displayed in your accounts list.", - "display name": "display name", - "The legal name for this identity.": "The legal name for this identity.", - "legal name": "legal name", - "The email address associated with this identity.": "The email address associated with this identity.", - "email": "email", - "An URL that is linked to this identity.": "An URL that is linked to this identity.", - "web": "web", - "The twitter name for this identity.": "The twitter name for this identity.", - "twitter": "twitter", + "You can set a custom derivation path for this account using the following syntax \"//////\". The \"/\" and \"//\" may be repeated and mixed`. The \"///password\" is optional and should only occur once.": "You can set a custom derivation path for this account using the following syntax \"//////\". The \"/\" and \"//\" may be repeated and mixed`. The \"///password\" is optional and should only occur once.", "a riot name linked to this identity": "a riot name linked to this identity", - "riot name": "riot name", - "Set Identity": "Set Identity", + "account forgotten": "account forgotten", "account restored": "account restored", - "Add via backup file": "Add via backup file", - "Select the JSON key file that was downloaded when you created the account. This JSON file contains your private key encrypted with your password.": "Select the JSON key file that was downloaded when you created the account. This JSON file contains your private key encrypted with your password.", - "backup file": "backup file", - "Type the password chosen at the account creation. It was used to encrypt your account's private key in the backup file.": "Type the password chosen at the account creation. It was used to encrypt your account's private key in the backup file.", - "Restore": "Restore", - "Approve this call hash": "Approve this call hash", - "Cancel this call hash": "Cancel this call hash", - "Pending call hashes": "Pending call hashes", - "The signatory to send the approval/cancel from": "The signatory to send the approval/cancel from", - "signatory": "signatory", - "The call hashes that have not been executed as of yet.": "The call hashes that have not been executed as of yet.", - "pending hashes": "pending hashes", - "Either approve or reject this call.": "Either approve or reject this call.", + "accounts": "accounts", + "address": "address", + "address created": "address created", + "address edited": "address edited", + "address forgotten": "address forgotten", + "amount": "amount", "approval type": "approval type", + "available social recovery helpers": "available social recovery helpers", + "backup file": "backup file", + "balances": "balances", + "case sensitive": "case sensitive", + "contacts": "contacts", + "created account": "created account", "created multisig": "created multisig", - "Add multisig": "Add multisig", - "Name given to this multisig. You can edit it it any later point in time.": "Name given to this multisig. You can edit it it any later point in time.", + "delay": "delay", + "deposit": "deposit", + "derivation path": "derivation path", + "derive root account": "derive root account", + "development seed": "development seed", + "display name": "display name", + "email": "email", + "exclude value": "exclude value", + "filter by name or tags": "filter by name or tags", + "identity": "identity", + "include value": "include value", + "invalid/unknown registrar account": "invalid/unknown registrar account", + "judgement": "judgement", + "keypair crypto type": "keypair crypto type", + "legal name": "legal name", + "matches": "matches", + "mnemonic seed": "mnemonic seed", "multisig name": "multisig name", - "The threshold for this multisig": "The threshold for this multisig", - "signatory {{index}}/{{length}}": "signatory {{index}}/{{length}}", - "Less": "Less", - "More": "More", - "Create": "Create", - "Add account via Qr": "Add account via Qr", - "Name given to this account. You can change it at any point in the future.": "Name given to this account. You can change it at any point in the future.", - "Initiate account recovery": "Initiate account recovery", - "the account to recover to": "the account to recover to", - "Select the account you wish to recover into this account.": "Select the account you wish to recover into this account.", + "name": "name", + "new account": "new account", + "new address": "new address", + "no accounts yet, create or import an existing": "no accounts yet, create or import an existing", + "no addresses saved yet, add any existing address": "no addresses saved yet, add any existing address", + "no tags": "no tags", + "parent": "parent", + "password": "password", + "password (repeat)": "password (repeat)", + "pending hashes": "pending hashes", "recover this account": "recover this account", - "Start recovery": "Start recovery", - "Setup account as recoverable": "Setup account as recoverable", - "the account to make recoverable": "the account to make recoverable", - "available social recovery helpers": "available social recovery helpers", - "The addresses that are able to help in recovery. You can select up to {{maxHelpers}} trusted helpers.": "The addresses that are able to help in recovery. You can select up to {{maxHelpers}} trusted helpers.", - "trusted social recovery helpers": "trusted social recovery helpers", - "The threshold of vouches that is to be reached for the account to be recovered.": "The threshold of vouches that is to be reached for the account to be recovered.", - "recovery threshold": "recovery threshold", - "The delay between vouching and the availability of the recovered account.": "The delay between vouching and the availability of the recovered account.", "recovery block delay": "recovery block delay", - "transferrable": "transferrable", - "Send funds": "Send funds", - "The account you will send funds from.": "The account you will send funds from.", - "send from account": "send from account", - "Select a contact or paste the address you want to send funds to.": "Select a contact or paste the address you want to send funds to.", - "send to address": "send to address", - "Type the amount you want to transfer. Note that you can select the unit on the right e.g sending 1 milli is equivalent to sending 0.001.": "Type the amount you want to transfer. Note that you can select the unit on the right e.g sending 1 milli is equivalent to sending 0.001.", - "amount": "amount", - "Make Transfer": "Make Transfer", - "address forgotten": "address forgotten", - "Send funds to this address": "Send funds to this address", - "Forget this address": "Forget this address", - "contacts": "contacts", - "Add contact": "Add contact", - "no addresses saved yet, add any existing address": "no addresses saved yet, add any existing address", - "address edited": "address edited", - "address created": "address created", - "Add an address": "Add an address", - "Paste here the address of the contact you want to add to your address book.": "Paste here the address of the contact you want to add to your address book.", - "address": "address", - "new address": "new address", - "Type the name of your contact. This name will be used across all the apps. It can be edited later on.": "Type the name of your contact. This name will be used across all the apps. It can be edited later on.", - "My accounts": "My accounts", - "My contacts": "My contacts", - "Vanity generator": "Vanity generator", - "Injected": "Injected", - "Test account": "Test account", - "Council": "Council", - "Society": "Society", - "Technical committee": "Technical committee", - "Sudo key": "Sudo key", - "Provide judgement": "Provide judgement", + "recovery threshold": "recovery threshold", "registrar account": "registrar account", "registrar index": "registrar index", - "invalid/unknown registrar account": "invalid/unknown registrar account", - "judgement": "judgement", - "Judge": "Judge", - "": "", - "no tags": "no tags", - "Deposit": "Deposit", - "Owned": "Owned", - "Saved": "Saved", - "Remove": "Remove", - "identity": "identity", - "Known good": "Known good", - "Reasonable": "Reasonable", - "Erroneous": "Erroneous", - "Low quality": "Low quality", - "No judgments": "No judgments", - "website": "website", "riot": "riot", - "Add identity judgment": "Add identity judgment", - "matches": "matches", - "Evaluated {{count}} keys in {{elapsed}}s ({{avg}} keys/s)": "Evaluated {{count}} keys in {{elapsed}}s ({{avg}} keys/s)", + "riot name": "riot name", "secret": "secret", - "Type here what you would like your address to contain. This tool will generate the keys and show the associated addresses that best match your search. You can use \"?\" as a wildcard for a character.": "Type here what you would like your address to contain. This tool will generate the keys and show the associated addresses that best match your search. You can use \"?\" as a wildcard for a character.", - "Search for": "Search for", - "Should the search be case sensitive, e.g if you select \"no\" your search for \"Some\" may return addresses containing \"somE\" or \"sOme\"...": "Should the search be case sensitive, e.g if you select \"no\" your search for \"Some\" may return addresses containing \"somE\" or \"sOme\"...", - "case sensitive": "case sensitive", - "Stop generation": "Stop generation", - "Start generation": "Start generation", - "No matches found": "No matches found" -} + "secret derivation path": "secret derivation path", + "seed (hex or string)": "seed (hex or string)", + "send": "send", + "send from account": "send from account", + "send to address": "send to address", + "signatory": "signatory", + "signatory {{index}}/{{length}}": "signatory {{index}}/{{length}}", + "tags": "tags", + "the account to make recoverable": "the account to make recoverable", + "the account to recover to": "the account to recover to", + "threshold": "threshold", + "transactions": "transactions", + "transferrable": "transferrable", + "trusted social recovery helpers": "trusted social recovery helpers", + "twitter": "twitter", + "type": "type", + "web": "web", + "website": "website", + "your current password": "your current password", + "your new password": "your new password" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-claims.json b/packages/apps/public/locales/en/app-claims.json index f51bd03e2387..fb5931f6a7b4 100644 --- a/packages/apps/public/locales/en/app-claims.json +++ b/packages/apps/public/locales/en/app-claims.json @@ -1,15 +1,15 @@ { - "Your Ethereum account": "Your Ethereum account", - "has a valid claim for": "has a valid claim for", - "does not appear to have a valid claim. Please double check that you have signed the transaction correctly on the correct ETH account.": "does not appear to have a valid claim. Please double check that you have signed the transaction correctly on the correct ETH account.", - "Redeem": "Redeem", "1. Select your {{chain}} account": "1. Select your {{chain}} account", + "2. Sign ETH transaction": "2. Sign ETH transaction", + "Confirm claim": "Confirm claim", + "Continue": "Continue", + "Copy the above string and sign an Ethereum transaction with the account you used during the pre-sale in the wallet of your choice, using the string as the payload, and then paste the transaction signature object below": "Copy the above string and sign an Ethereum transaction with the account you used during the pre-sale in the wallet of your choice, using the string as the payload, and then paste the transaction signature object below", + "Redeem": "Redeem", "The account you want to claim to.": "The account you want to claim to.", + "Your Ethereum account": "Your Ethereum account", "claim to account": "claim to account", - "Continue": "Continue", - "2. Sign ETH transaction": "2. Sign ETH transaction", - "copied": "copied", "click to copy": "click to copy", - "Copy the above string and sign an Ethereum transaction with the account you used during the pre-sale in the wallet of your choice, using the string as the payload, and then paste the transaction signature object below": "Copy the above string and sign an Ethereum transaction with the account you used during the pre-sale in the wallet of your choice, using the string as the payload, and then paste the transaction signature object below", - "Confirm claim": "Confirm claim" -} + "copied": "copied", + "does not appear to have a valid claim. Please double check that you have signed the transaction correctly on the correct ETH account.": "does not appear to have a valid claim. Please double check that you have signed the transaction correctly on the correct ETH account.", + "has a valid claim for": "has a valid claim for" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-contracts.json b/packages/apps/public/locales/en/app-contracts.json index a5d91d76636d..49c7201b0ca4 100644 --- a/packages/apps/public/locales/en/app-contracts.json +++ b/packages/apps/public/locales/en/app-contracts.json @@ -1,69 +1,69 @@ { - "You are using an ABI with an outdated format. Please generate a new one.": "You are using an ABI with an outdated format. Please generate a new one.", - "invalid ABI file selected": "invalid ABI file selected", - "click to select or drag and drop a JSON ABI file": "click to select or drag and drop a JSON ABI file", - "The code hash for the on-chain deployed code.": "The code hash for the on-chain deployed code.", - "code hash": "code hash", - "Save": "Save", - "Add an existing code hash": "Add an existing code hash", + "A deployed contract that has either been deployed or attached. The address and ABI are used to construct the parameters.": "A deployed contract that has either been deployed or attached. The address and ABI are used to construct the parameters.", "ABI": "ABI", - "Forget this code hash": "Forget this code hash", - "deploy": "deploy", - "Deploy this code hash as a smart contract": "Deploy this code hash as a smart contract", - "You are about to remove this code from your list of available code hashes. Once completed, should you need to access it again, you will have to manually add the code hash again.": "You are about to remove this code from your list of available code hashes. Once completed, should you need to access it again, you will have to manually add the code hash again.", - "This operation does not remove the uploaded code WASM and ABI from the chain, nor any deployed contracts. The forget operation only limits your access to the code on this browser.": "This operation does not remove the uploaded code WASM and ABI from the chain, nor any deployed contracts. The forget operation only limits your access to the code on this browser.", - "Upload WASM": "Upload WASM", - "No code hashes available": "No code hashes available", - "The compiled WASM for the contract that you wish to deploy. Each unique code blob will be attached with a code hash that can be used to create new instances.": "The compiled WASM for the contract that you wish to deploy. Each unique code blob will be attached with a code hash that can be used to create new instances.", - "compiled contract WASM": "compiled contract WASM", - "The code is not recognized as being in valid WASM format": "The code is not recognized as being in valid WASM format", - "Upload": "Upload", - "Unable to find on-chain WASM code for the supplied codeHash": "Unable to find on-chain WASM code for the supplied codeHash", - "The codeHash is not a valid hex hash": "The codeHash is not a valid hex hash", - "The address for the deployed contract instance.": "The address for the deployed contract instance.", - "contract address": "contract address", + "Add an existing code hash": "Add an existing code hash", "Add an existing contract": "Add an existing contract", - "Call a contract": "Call a contract", - "Specify the user account to use for this contract call. And fees will be deducted from this account.": "Specify the user account to use for this contract call. And fees will be deducted from this account.", - "call from account": "call from account", - "A deployed contract that has either been deployed or attached. The address and ABI are used to construct the parameters.": "A deployed contract that has either been deployed or attached. The address and ABI are used to construct the parameters.", - "contract to use": "contract to use", - "The message to send to this contract. Parameters are adjusted based on the ABI provided.": "The message to send to this contract. Parameters are adjusted based on the ABI provided.", - "message to send": "message to send", - "The allotted value for this contract, i.e. the amount transferred to the contract as part of this call.": "The allotted value for this contract, i.e. the amount transferred to the contract as part of this call.", - "value": "value", - "The maximum amount of gas that can be used by this call. If the code requires more, the call will fail.": "The maximum amount of gas that can be used by this call. If the code requires more, the call will fail.", - "maximum gas allowed": "maximum gas allowed", - "send as RPC call": "send as RPC call", - "send as transaction": "send as transaction", "Call": "Call", + "Call a contract": "Call a contract", + "Call a method on this contract": "Call a method on this contract", "Call results": "Call results", + "Call this message": "Call this message", "Clear all": "Clear all", - "address forgotten": "address forgotten", + "Confirm ABI removal": "Confirm ABI removal", + "Deploy": "Deploy", + "Deploy a code hash": "Deploy a code hash", + "Deploy this code hash as a smart contract": "Deploy this code hash as a smart contract", + "Deploy with this constructor": "Deploy with this constructor", + "Forget this code hash": "Forget this code hash", "Forget this contract": "Forget this contract", - "execute": "execute", - "Call a method on this contract": "Call a method on this contract", "Messages": "Messages", - "Deploy a code hash": "Deploy a code hash", + "Mutates contract state": "Mutates contract state", + "No code hashes available": "No code hashes available", "No contracts available": "No contracts available", - "Unable to find deployed contract code at the specified address": "Unable to find deployed contract code at the specified address", - "The value is not in a valid address format": "The value is not in a valid address format", - "The contract WASM previously deployed. Internally this is identified by the hash of the code, as either created or attached.": "The contract WASM previously deployed. Internally this is identified by the hash of the code, as either created or attached.", - "code for this contract": "code for this contract", - "The deployment constructor information for this contract, as provided by the ABI.": "The deployment constructor information for this contract, as provided by the ABI.", - "The allotted endowment for this contract, i.e. the amount transferred to the contract upon instantiation.": "The allotted endowment for this contract, i.e. the amount transferred to the contract upon instantiation.", - "endowment": "endowment", - "Deploy": "Deploy", "No documentation provided": "No documentation provided", - "Call this message": "Call this message", - "Deploy with this constructor": "Deploy with this constructor", + "Remove": "Remove", "Remove ABI": "Remove ABI", - "Mutates contract state": "Mutates contract state", + "Save": "Save", + "Specify the user account to use for this contract call. And fees will be deducted from this account.": "Specify the user account to use for this contract call. And fees will be deducted from this account.", "Specify the user account to use for this deployment. And fees will be deducted from this account.": "Specify the user account to use for this deployment. And fees will be deducted from this account.", - "deployment account": "deployment account", + "The address for the deployed contract instance.": "The address for the deployed contract instance.", + "The allotted endowment for this contract, i.e. the amount transferred to the contract upon instantiation.": "The allotted endowment for this contract, i.e. the amount transferred to the contract upon instantiation.", + "The allotted value for this contract, i.e. the amount transferred to the contract as part of this call.": "The allotted value for this contract, i.e. the amount transferred to the contract as part of this call.", + "The code hash for the on-chain deployed code.": "The code hash for the on-chain deployed code.", + "The code is not recognized as being in valid WASM format": "The code is not recognized as being in valid WASM format", + "The codeHash is not a valid hex hash": "The codeHash is not a valid hex hash", + "The compiled WASM for the contract that you wish to deploy. Each unique code blob will be attached with a code hash that can be used to create new instances.": "The compiled WASM for the contract that you wish to deploy. Each unique code blob will be attached with a code hash that can be used to create new instances.", + "The contract WASM previously deployed. Internally this is identified by the hash of the code, as either created or attached.": "The contract WASM previously deployed. Internally this is identified by the hash of the code, as either created or attached.", + "The deployment constructor information for this contract, as provided by the ABI.": "The deployment constructor information for this contract, as provided by the ABI.", + "The maximum amount of gas that can be used by this call. If the code requires more, the call will fail.": "The maximum amount of gas that can be used by this call. If the code requires more, the call will fail.", "The maximum amount of gas that can be used by this deployment, if the code requires more, the deployment will fail.": "The maximum amount of gas that can be used by this deployment, if the code requires more, the deployment will fail.", - "Confirm ABI removal": "Confirm ABI removal", - "You are about to remove this code's ABI. Once completed, should you need to access it again, you will have to manually re-upload it.": "You are about to remove this code's ABI. Once completed, should you need to access it again, you will have to manually re-upload it.", + "The message to send to this contract. Parameters are adjusted based on the ABI provided.": "The message to send to this contract. Parameters are adjusted based on the ABI provided.", + "The value is not in a valid address format": "The value is not in a valid address format", "This operation does not impact the associated on-chain code or any of its contracts.": "This operation does not impact the associated on-chain code or any of its contracts.", - "Remove": "Remove" -} + "This operation does not remove the uploaded code WASM and ABI from the chain, nor any deployed contracts. The forget operation only limits your access to the code on this browser.": "This operation does not remove the uploaded code WASM and ABI from the chain, nor any deployed contracts. The forget operation only limits your access to the code on this browser.", + "Unable to find deployed contract code at the specified address": "Unable to find deployed contract code at the specified address", + "Unable to find on-chain WASM code for the supplied codeHash": "Unable to find on-chain WASM code for the supplied codeHash", + "Upload": "Upload", + "Upload WASM": "Upload WASM", + "You are about to remove this code from your list of available code hashes. Once completed, should you need to access it again, you will have to manually add the code hash again.": "You are about to remove this code from your list of available code hashes. Once completed, should you need to access it again, you will have to manually add the code hash again.", + "You are about to remove this code's ABI. Once completed, should you need to access it again, you will have to manually re-upload it.": "You are about to remove this code's ABI. Once completed, should you need to access it again, you will have to manually re-upload it.", + "You are using an ABI with an outdated format. Please generate a new one.": "You are using an ABI with an outdated format. Please generate a new one.", + "address forgotten": "address forgotten", + "call from account": "call from account", + "click to select or drag and drop a JSON ABI file": "click to select or drag and drop a JSON ABI file", + "code for this contract": "code for this contract", + "code hash": "code hash", + "compiled contract WASM": "compiled contract WASM", + "contract address": "contract address", + "contract to use": "contract to use", + "deploy": "deploy", + "deployment account": "deployment account", + "endowment": "endowment", + "execute": "execute", + "invalid ABI file selected": "invalid ABI file selected", + "maximum gas allowed": "maximum gas allowed", + "message to send": "message to send", + "send as RPC call": "send as RPC call", + "send as transaction": "send as transaction", + "value": "value" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-council.json b/packages/apps/public/locales/en/app-council.json index e9fa50c6ef0e..a6068898c75f 100644 --- a/packages/apps/public/locales/en/app-council.json +++ b/packages/apps/public/locales/en/app-council.json @@ -1,58 +1,58 @@ { + "Cancel slashes": "Cancel slashes", + "Close": "Close", + "Close proposal": "Close proposal", "Council overview": "Council overview", + "Current prime member, default voting": "Current prime member, default voting", "Motions ({{count}})": "Motions ({{count}})", - "Close proposal": "Close proposal", - "Select the account you wish close the proposal with.": "Select the account you wish close the proposal with.", - "sending account": "sending account", - "Close": "Close", - "motions": "motions", - "threshold": "threshold", - "voting end": "voting end", - "aye": "aye", - "nay": "nay", + "No candidates found": "No candidates found", "No council motions": "No council motions", + "No members found": "No members found", + "No runners up found": "No runners up found", + "Positive number between 1 and {{memberCount}}": "Positive number between 1 and {{memberCount}}", + "Propose": "Propose", + "Propose a council motion": "Propose a council motion", "Propose external": "Propose external", "Propose external (majority)": "Propose external (majority)", - "Select the account you wish to make the proposal with.": "Select the account you wish to make the proposal with.", - "propose from account": "propose from account", - "The preimage hash of the proposal": "The preimage hash of the proposal", - "preimage hash": "preimage hash", - "Propose": "Propose", "Propose motion": "Propose motion", - "Propose a council motion": "Propose a council motion", - "The minimum number of council votes required to approve this motion": "The minimum number of council votes required to approve this motion", - "Positive number between 1 and {{memberCount}}": "Positive number between 1 and {{memberCount}}", - "proposal": "proposal", - "era {{era}}, {{count}} slashes": "era {{era}}, {{count}} slashes", - "Cancel slashes": "Cancel slashes", + "Revert": "Revert", "Revert pending slashes": "Revert pending slashes", + "Select and order council candidates you wish to vote for.": "Select and order council candidates you wish to vote for.", + "Select the account you wish close the proposal with.": "Select the account you wish close the proposal with.", + "Select the account you wish to make the proposal with.": "Select the account you wish to make the proposal with.", + "Select the account you wish to submit for candidacy.": "Select the account you wish to submit for candidacy.", + "Submit candidacy": "Submit candidacy", + "Submit your council candidacy": "Submit your council candidacy", + "The minimum number of council votes required to approve this motion": "The minimum number of council votes required to approve this motion", + "The preimage hash of the proposal": "The preimage hash of the proposal", "The unapplied slashed era to cancel.": "The unapplied slashed era to cancel.", - "the era to cancel for": "the era to cancel for", - "no unapplied slashes found": "no unapplied slashes found", - "Revert": "Revert", + "This account will be use to approve each candidate.": "This account will be use to approve each candidate.", + "Vote": "Vote", + "Vote for current candidates": "Vote for current candidates", "Vote on proposal": "Vote on proposal", "You are voting with this collective's prime account. The vote will be the default outcome in case of any abstentions.": "You are voting with this collective's prime account. The vote will be the default outcome in case of any abstentions.", - "Vote": "Vote", - "Current prime member, default voting": "Current prime member, default voting", - "prime voter": "prime voter", - "runners up": "runners up", + "aye": "aye", "backing": "backing", + "candidate account": "candidate account", "candidates": "candidates", - "No runners up found": "No runners up found", - "No candidates found": "No candidates found", + "council candidates": "council candidates", + "era {{era}}, {{count}} slashes": "era {{era}}, {{count}} slashes", "members": "members", - "No members found": "No members found", - "Submit your council candidacy": "Submit your council candidacy", - "Select the account you wish to submit for candidacy.": "Select the account you wish to submit for candidacy.", - "candidate account": "candidate account", - "Submit candidacy": "Submit candidacy", + "motions": "motions", + "my ordered votes": "my ordered votes", + "nay": "nay", + "no unapplied slashes found": "no unapplied slashes found", + "preimage hash": "preimage hash", + "prime voter": "prime voter", + "proposal": "proposal", + "propose from account": "propose from account", + "runners up": "runners up", "seats": "seats", - "voting round": "voting round", + "sending account": "sending account", "term progress": "term progress", - "Vote for current candidates": "Vote for current candidates", - "This account will be use to approve each candidate.": "This account will be use to approve each candidate.", + "the era to cancel for": "the era to cancel for", + "threshold": "threshold", "voting account": "voting account", - "council candidates": "council candidates", - "Select and order council candidates you wish to vote for.": "Select and order council candidates you wish to vote for.", - "my ordered votes": "my ordered votes" -} + "voting end": "voting end", + "voting round": "voting round" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-dashboard.json b/packages/apps/public/locales/en/app-dashboard.json index 0967ef424bce..9e26dfeeb6e6 100644 --- a/packages/apps/public/locales/en/app-dashboard.json +++ b/packages/apps/public/locales/en/app-dashboard.json @@ -1 +1 @@ -{} +{} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-democracy.json b/packages/apps/public/locales/en/app-democracy.json index 55f251c9f313..198c0a5aa805 100644 --- a/packages/apps/public/locales/en/app-democracy.json +++ b/packages/apps/public/locales/en/app-democracy.json @@ -1,62 +1,62 @@ { + "0.1x voting balance, no lockup period": "0.1x voting balance, no lockup period", "Democracy overview": "Democracy overview", - "dispatch queue": "dispatch queue", - "enact": "enact", - "Nothing queued for execution": "Nothing queued for execution", - "proposal hash": "proposal hash", - "external": "external", - "proposer": "proposer", - "locked": "locked", - "No external proposal": "No external proposal", + "Fast track": "Fast track", "Fast track proposal": "Fast track proposal", + "No active proposals": "No active proposals", + "No active referendums": "No active referendums", + "No external proposal": "No external proposal", + "Nothing queued for execution": "Nothing queued for execution", + "Preimage": "Preimage", + "Second": "Second", + "Second proposal": "Second proposal", + "Seconds ({{count}})": "Seconds ({{count}})", "Select the account you wish to make the proposal with.": "Select the account you wish to make the proposal with.", - "propose from account": "propose from account", - "The external proposal to send to the technical committee": "The external proposal to send to the technical committee", - "preimage hash": "preimage hash", - "The voting period to apply in blocks": "The voting period to apply in blocks", - "voting period": "voting period", - "The delay period to apply in blocks": "The delay period to apply in blocks", - "delay": "delay", - "Fast track": "Fast track", + "Select the account you wish to second with. This will lock your funds until the proposal is either approved or rejected": "Select the account you wish to second with. This will lock your funds until the proposal is either approved or rejected", "Submit preimage": "Submit preimage", "Submit proposal": "Submit proposal", "The account you want to register the preimage from": "The account you want to register the preimage from", - "send from account": "send from account", - "transferrable": "transferrable", - "propose": "propose", - "The hash of the selected proposal, use it for submitting the proposal": "The hash of the selected proposal, use it for submitting the proposal", - "imminent preimage (proposal already passed)": "imminent preimage (proposal already passed)", - "Preimage": "Preimage", - "Seconds ({{count}})": "Seconds ({{count}})", - "proposals": "proposals", - "No active proposals": "No active proposals", "The account you want to register the proposal from": "The account you want to register the proposal from", - "The preimage hash of the proposal": "The preimage hash of the proposal", + "The amount this total can be reduced by to change the referendum outcome. This assumes changes to the convictions of the existing votes, with no additional turnout.": "The amount this total can be reduced by to change the referendum outcome. This assumes changes to the convictions of the existing votes, with no additional turnout.", + "The amount this total should be increased by to change the referendum outcome. This assumes additional turnout with new votes at 1x conviction.": "The amount this total should be increased by to change the referendum outcome. This assumes additional turnout with new votes at 1x conviction.", + "The conviction to use for this vote, with an appropriate lock period.": "The conviction to use for this vote, with an appropriate lock period.", + "The delay period to apply in blocks": "The delay period to apply in blocks", + "The external proposal to send to the technical committee": "The external proposal to send to the technical committee", + "The hash of the selected proposal, use it for submitting the proposal": "The hash of the selected proposal, use it for submitting the proposal", "The locked value for this proposal": "The locked value for this proposal", + "The preimage hash of the proposal": "The preimage hash of the proposal", + "The voting period to apply in blocks": "The voting period to apply in blocks", + "Vote": "Vote", + "Vote on proposal": "Vote on proposal", + "activate": "activate", + "aye": "aye", + "conviction": "conviction", + "delay": "delay", + "dispatch queue": "dispatch queue", + "enact": "enact", + "external": "external", + "failing": "failing", + "imminent preimage (proposal already passed)": "imminent preimage (proposal already passed)", + "launch period": "launch period", + "locked": "locked", "locked balance": "locked balance", - "{{blocks}} blocks": "{{blocks}} blocks", - "{{threshold}}, passing": "{{threshold}}, passing", - "{{threshold}}, not passing": "{{threshold}}, not passing", + "nay": "nay", "passing": "passing", - "failing": "failing", + "preimage hash": "preimage hash", + "proposal hash": "proposal hash", + "proposals": "proposals", + "propose": "propose", + "propose from account": "propose from account", + "proposer": "proposer", "referenda": "referenda", "remaining": "remaining", - "activate": "activate", - "aye": "aye", - "nay": "nay", - "No active referendums": "No active referendums", - "The amount this total can be reduced by to change the referendum outcome. This assumes changes to the convictions of the existing votes, with no additional turnout.": "The amount this total can be reduced by to change the referendum outcome. This assumes changes to the convictions of the existing votes, with no additional turnout.", - "The amount this total should be increased by to change the referendum outcome. This assumes additional turnout with new votes at 1x conviction.": "The amount this total should be increased by to change the referendum outcome. This assumes additional turnout with new votes at 1x conviction.", - "Second proposal": "Second proposal", - "Select the account you wish to second with. This will lock your funds until the proposal is either approved or rejected": "Select the account you wish to second with. This will lock your funds until the proposal is either approved or rejected", "second with account": "second with account", - "Second": "Second", + "send from account": "send from account", "total": "total", - "launch period": "launch period", - "0.1x voting balance, no lockup period": "0.1x voting balance, no lockup period", - "{{value}}x voting balance, locked for {{lock}}x enactment ({{period}} days)": "{{value}}x voting balance, locked for {{lock}}x enactment ({{period}} days)", - "Vote on proposal": "Vote on proposal", - "The conviction to use for this vote, with an appropriate lock period.": "The conviction to use for this vote, with an appropriate lock period.", - "conviction": "conviction", - "Vote": "Vote" -} + "transferrable": "transferrable", + "voting period": "voting period", + "{{blocks}} blocks": "{{blocks}} blocks", + "{{threshold}}, not passing": "{{threshold}}, not passing", + "{{threshold}}, passing": "{{threshold}}, passing", + "{{value}}x voting balance, locked for {{lock}}x enactment ({{period}} days)": "{{value}}x voting balance, locked for {{lock}}x enactment ({{period}} days)" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-explorer.json b/packages/apps/public/locales/en/app-explorer.json index f50fcd2f00eb..27215c501aca 100644 --- a/packages/apps/public/locales/en/app-explorer.json +++ b/packages/apps/public/locales/en/app-explorer.json @@ -1,49 +1,49 @@ { - "recent blocks": "recent blocks", - "No blocks available": "No blocks available", - "hash": "hash", - "parent": "parent", - "extrinsics": "extrinsics", - "state": "state", - "system events": "system events", - "mortal, valid from #{{startAt}} to #{{endsAt}}": "mortal, valid from #{{startAt}} to #{{endsAt}}", - "immortal": "immortal", - "index": "index", - "not signed": "not signed", - "events": "events", - "signer": "signer", - "No pending extrinsics are in the queue": "No pending extrinsics are in the queue", - "logs": "logs", - "No logs available": "No logs available", - "recent events": "recent events", - "No events available": "No events available", - "blocks": "blocks", - "forks": "forks", - "Chain info": "Chain info", "Block details": "Block details", + "Chain info": "Chain info", "Forks": "Forks", + "No blocks available": "No blocks available", + "No events available": "No events available", + "No logs available": "No logs available", + "No pending extrinsics are in the queue": "No pending extrinsics are in the queue", "Node info": "Node info", - "pending extrinsics": "pending extrinsics", - "connected peers": "connected peers", - "role": "role", + "best": "best", "best #": "best #", "best hash": "best hash", + "block hash or number to query": "block hash or number to query", + "blocks": "blocks", + "connected peers": "connected peers", + "epoch": "epoch", + "era": "era", + "events": "events", + "extrinsics": "extrinsics", + "finalized": "finalized", + "forks": "forks", + "hash": "hash", + "immortal": "immortal", + "index": "index", + "last block": "last block", + "logs": "logs", + "mortal, valid from #{{startAt}} to #{{endsAt}}": "mortal, valid from #{{startAt}} to #{{endsAt}}", + "no": "no", "no peers connected": "no peers connected", + "not signed": "not signed", + "our best": "our best", + "parent": "parent", + "peer best": "peer best", + "pending extrinsics": "pending extrinsics", + "queued tx": "queued tx", + "recent blocks": "recent blocks", + "recent events": "recent events", "refresh in": "refresh in", - "total peers": "total peers", + "role": "role", + "session": "session", + "signer": "signer", + "state": "state", "syncing": "syncing", - "yes": "yes", - "no": "no", - "queued tx": "queued tx", - "peer best": "peer best", - "our best": "our best", - "block hash or number to query": "block hash or number to query", - "last block": "last block", + "system events": "system events", "target": "target", "total issuance": "total issuance", - "finalized": "finalized", - "best": "best", - "era": "era", - "epoch": "epoch", - "session": "session" -} + "total peers": "total peers", + "yes": "yes" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-extrinsics.json b/packages/apps/public/locales/en/app-extrinsics.json index 73dd1257daf3..da38c9ed9fc3 100644 --- a/packages/apps/public/locales/en/app-extrinsics.json +++ b/packages/apps/public/locales/en/app-extrinsics.json @@ -1,8 +1,8 @@ { "Extrinsic submission": "Extrinsic submission", - "using the selected account": "using the selected account", + "Submit Transaction": "Submit Transaction", + "Submit Unsigned": "Submit Unsigned", "free balance": "free balance", "submit the following extrinsic": "submit the following extrinsic", - "Submit Unsigned": "Submit Unsigned", - "Submit Transaction": "Submit Transaction" -} + "using the selected account": "using the selected account" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-generic-asset.json b/packages/apps/public/locales/en/app-generic-asset.json index 43aa0d74b30a..855282cf2d09 100644 --- a/packages/apps/public/locales/en/app-generic-asset.json +++ b/packages/apps/public/locales/en/app-generic-asset.json @@ -1,23 +1,23 @@ { - "Forget this asset": "Forget this asset", "Asset ID": "Asset ID", - "Register Asset": "Register Asset", - "No assets found.": "No assets found.", "Assets": "Assets", - "Transfer": "Transfer", - "Register an Asset": "Register an Asset", "Enter the Asset ID of the token you want to manage.": "Enter the Asset ID of the token you want to manage.", - "asset id": "asset id", - "Type the name of this Asset. This name will be used across all the apps. It can be edited later on.": "Type the name of this Asset. This name will be used across all the apps. It can be edited later on.", - "name": "name", + "Enter the Asset ID of the token you want to transfer.": "Enter the Asset ID of the token you want to transfer.", + "Forget this asset": "Forget this asset", + "Make Transfer": "Make Transfer", + "No assets found.": "No assets found.", "Register": "Register", - "transferrable": "transferrable", - "The account you will send funds from.": "The account you will send funds from.", - "send from account": "send from account", + "Register Asset": "Register Asset", + "Register an Asset": "Register an Asset", "Select a contact or paste the address you want to send funds to.": "Select a contact or paste the address you want to send funds to.", - "send to address": "send to address", - "Enter the Asset ID of the token you want to transfer.": "Enter the Asset ID of the token you want to transfer.", + "The account you will send funds from.": "The account you will send funds from.", + "Transfer": "Transfer", "Type the amount you want to transfer. Note that you can select the unit on the right e.g sending 1 milli is equivalent to sending 0.001.": "Type the amount you want to transfer. Note that you can select the unit on the right e.g sending 1 milli is equivalent to sending 0.001.", + "Type the name of this Asset. This name will be used across all the apps. It can be edited later on.": "Type the name of this Asset. This name will be used across all the apps. It can be edited later on.", "amount": "amount", - "Make Transfer": "Make Transfer" -} + "asset id": "asset id", + "name": "name", + "send from account": "send from account", + "send to address": "send to address", + "transferrable": "transferrable" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-i18n.json b/packages/apps/public/locales/en/app-i18n.json new file mode 100644 index 000000000000..ac886970eb2b --- /dev/null +++ b/packages/apps/public/locales/en/app-i18n.json @@ -0,0 +1,7 @@ +{ + "the language to display translations for": "the language to display translations for", + "{{p}}% done": "{{p}}% done", + "the module to display strings for": "the module to display strings for", + "Generate {{lng}}/translate.json": "Generate {{lng}}/translate.json", + "{{done}}/{{total}}, {{progress}}% done": "{{done}}/{{total}}, {{progress}}% done" +} diff --git a/packages/apps/public/locales/en/app-js.json b/packages/apps/public/locales/en/app-js.json index 806d7cedadbb..bc8f98ddf5d0 100644 --- a/packages/apps/public/locales/en/app-js.json +++ b/packages/apps/public/locales/en/app-js.json @@ -3,4 +3,4 @@ "Name your example": "Name your example", "Save snippet to local storage": "Save snippet to local storage", "Select example": "Select example" -} +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-parachains.json b/packages/apps/public/locales/en/app-parachains.json index f4b9a1634181..f40c623146a5 100644 --- a/packages/apps/public/locales/en/app-parachains.json +++ b/packages/apps/public/locales/en/app-parachains.json @@ -1,37 +1,37 @@ { - "Parachains overview": "Parachains overview", - "There are no registered parachains": "There are no registered parachains", - "{{relayDispatchQueueSize}} dispatch messages pending": "{{relayDispatchQueueSize}} dispatch messages pending", "": "", - "parachains": "parachains", - "swap to id": "swap to id", - "scheduling": "scheduling", - "Register a parachain": "Register a parachain", - "The id number to assign to this parachain.": "The id number to assign to this parachain.", - "parachain id": "parachain id", + "Deregister this parachain": "Deregister this parachain", + "Download": "Download", + "Message data": "Message data", + "Message origin.": "Message origin.", + "Most recent head data": "Most recent head data", + "Parachains overview": "Parachains overview", "Positive number greater than or equal to {{nextFreeId}}": "Positive number greater than or equal to {{nextFreeId}}", - "The scheduling preference for this parachain.": "The scheduling preference for this parachain.", - "The compiled runtime WASM for the parachain you wish to register.": "The compiled runtime WASM for the parachain you wish to register.", - "code": "code", + "Register a parachain": "Register a parachain", "The code is not recognized as being in valid WASM format": "The code is not recognized as being in valid WASM format", + "The compiled runtime WASM for the parachain you wish to register.": "The compiled runtime WASM for the parachain you wish to register.", + "The compiled runtime WASM for this parachain.": "The compiled runtime WASM for this parachain.", + "The id number to assign to this parachain.": "The id number to assign to this parachain.", + "The id of the parachain to be deregistered.": "The id of the parachain to be deregistered.", "The initial head state for the parachain.": "The initial head state for the parachain.", - "initial head state": "initial head state", "The initial head state is invalid.": "The initial head state is invalid.", - "next id": "next id", - "best block": "best block", - "Deregister this parachain": "Deregister this parachain", - "The id of the parachain to be deregistered.": "The id of the parachain to be deregistered.", + "The scheduling preference for this parachain.": "The scheduling preference for this parachain.", "The scheduling setting for this parachain.": "The scheduling setting for this parachain.", + "There are no registered parachains": "There are no registered parachains", "Unknown": "Unknown", - "Most recent head data": "Most recent head data", + "best block": "best block", + "code": "code", + "data": "data", "heads": "heads", - "The compiled runtime WASM for this parachain.": "The compiled runtime WASM for this parachain.", - "Download": "Download", - "relay dispatch queue": "relay dispatch queue", + "initial head state": "initial head state", + "next id": "next id", "no messages": "no messages", - "Message origin.": "Message origin.", "origin": "origin", - "Message data": "Message data", - "data": "data", - "pending swap id": "pending swap id" -} + "parachain id": "parachain id", + "parachains": "parachains", + "pending swap id": "pending swap id", + "relay dispatch queue": "relay dispatch queue", + "scheduling": "scheduling", + "swap to id": "swap to id", + "{{relayDispatchQueueSize}} dispatch messages pending": "{{relayDispatchQueueSize}} dispatch messages pending" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-settings.json b/packages/apps/public/locales/en/app-settings.json index 069a0cbd6e13..e7ad08934351 100644 --- a/packages/apps/public/locales/en/app-settings.json +++ b/packages/apps/public/locales/en/app-settings.json @@ -1,42 +1,42 @@ { - "This is not a valid JSON object.": "This is not a valid JSON object.", - "Your custom types have been added": "Your custom types have been added", - "Save the type definitions for your custom structures as key-value pairs in a valid JSON file. The key should be the name of your custom structure and the value an object containing your type definitions.": "Save the type definitions for your custom structures as key-value pairs in a valid JSON file. The key should be the name of your custom structure and the value an object containing your type definitions.", "Additional types as a JSON file (or edit below)": "Additional types as a JSON file (or edit below)", - "Reset": "Reset", - "Save": "Save", - "Override the default ss58 prefix for address generation": "Override the default ss58 prefix for address generation", - "address prefix": "address prefix", - "Override the default identity icon display with a specific theme": "Override the default identity icon display with a specific theme", - "default icon theme": "default icon theme", + "Address Prefix": "Address Prefix", "Adjust the mode from basic (with a limited number of beginner-user-friendly apps) to full (with all basic & advanced apps available)": "Adjust the mode from basic (with a limited number of beginner-user-friendly apps) to full (with all basic & advanced apps available)", - "interface operation mode": "interface operation mode", - "Manage your connection to Ledger S": "Manage your connection to Ledger S", - "manage hardware connections": "manage hardware connections", - "default interface language": "default interface language", - "Save & Reload": "Save & Reload", - "General": "General", - "Metadata {{count}}": "Metadata {{count}}", + "Chain specifications": "Chain specifications", + "Color": "Color", + "Decimals": "Decimals", + "Decimals decides the smallest unit of the token, which is 1/10^decimals": "Decimals decides the smallest unit of the token, which is 1/10^decimals", "Developer": "Developer", - "upgradable extensions": "upgradable extensions", - "Update metadata": "Update metadata", - "No upgradable extensions found": "No upgradable extensions found", "Extensions": "Extensions", - "Chain specifications": "Chain specifications", + "General": "General", + "Genesis Hash": "Genesis Hash", + "Genesis Hash refers to initial state of the chain, it cannot be changed once the chain is launched": "Genesis Hash refers to initial state of the chain, it cannot be changed once the chain is launched", + "Manage your connection to Ledger S": "Manage your connection to Ledger S", + "Metadata {{count}}": "Metadata {{count}}", "Name of the network. It only for display purpose.": "Name of the network. It only for display purpose.", "Network Name": "Network Name", - "The color used to distinguish this network with others, use color code with 3 or 6 digits, like \"#FFF\" or \"#111111\"": "The color used to distinguish this network with others, use color code with 3 or 6 digits, like \"#FFF\" or \"#111111\"", - "Color": "Color", - "Random": "Random", - "Genesis Hash refers to initial state of the chain, it cannot be changed once the chain is launched": "Genesis Hash refers to initial state of the chain, it cannot be changed once the chain is launched", - "Genesis Hash": "Genesis Hash", - "Unit decides the name of 1 unit token, e.g. \"DOT\" for Polkadot": "Unit decides the name of 1 unit token, e.g. \"DOT\" for Polkadot", - "Unit": "Unit", + "No upgradable extensions found": "No upgradable extensions found", + "Override the default identity icon display with a specific theme": "Override the default identity icon display with a specific theme", + "Override the default ss58 prefix for address generation": "Override the default ss58 prefix for address generation", "Prefix indicates the ss58 address format in this network, it is a number between 0 ~ 255 that describes the precise format of the bytes of the address": "Prefix indicates the ss58 address format in this network, it is a number between 0 ~ 255 that describes the precise format of the bytes of the address", - "Address Prefix": "Address Prefix", - "Decimals decides the smallest unit of the token, which is 1/10^decimals": "Decimals decides the smallest unit of the token, which is 1/10^decimals", - "Decimals": "Decimals", + "Random": "Random", + "Reset": "Reset", + "Save": "Save", + "Save & Reload": "Save & Reload", + "Save the type definitions for your custom structures as key-value pairs in a valid JSON file. The key should be the name of your custom structure and the value an object containing your type definitions.": "Save the type definitions for your custom structures as key-value pairs in a valid JSON file. The key should be the name of your custom structure and the value an object containing your type definitions.", "Select the remote endpoint, either from the dropdown on manual entered via the custom toggle": "Select the remote endpoint, either from the dropdown on manual entered via the custom toggle", + "The color used to distinguish this network with others, use color code with 3 or 6 digits, like \"#FFF\" or \"#111111\"": "The color used to distinguish this network with others, use color code with 3 or 6 digits, like \"#FFF\" or \"#111111\"", + "This is not a valid JSON object.": "This is not a valid JSON object.", + "Unit": "Unit", + "Unit decides the name of 1 unit token, e.g. \"DOT\" for Polkadot": "Unit decides the name of 1 unit token, e.g. \"DOT\" for Polkadot", + "Update metadata": "Update metadata", + "Your custom types have been added": "Your custom types have been added", + "address prefix": "address prefix", + "custom endpoint": "custom endpoint", + "default icon theme": "default icon theme", + "default interface language": "default interface language", + "interface operation mode": "interface operation mode", + "manage hardware connections": "manage hardware connections", "remote node/endpoint to connect to": "remote node/endpoint to connect to", - "custom endpoint": "custom endpoint" -} + "upgradable extensions": "upgradable extensions" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-society.json b/packages/apps/public/locales/en/app-society.json index b28b091edd78..0bb02c753715 100644 --- a/packages/apps/public/locales/en/app-society.json +++ b/packages/apps/public/locales/en/app-society.json @@ -1,33 +1,33 @@ { - "Society overview": "Society overview", - "bids": "bids", - "kind": "kind", - "value": "value", - "No bids": "No bids", - "candidates": "candidates", - "votes": "votes", - "No candidates": "No candidates", + "Approvals": "Approvals", + "Approve or reject this defneder.": "Approve or reject this defneder.", + "Approve this candidacy.": "Approve this candidacy.", "Aye, I approve": "Aye, I approve", + "Current society head, exempt": "Current society head, exempt", "Nay, I do not approve": "Nay, I do not approve", - "Vote for candidate": "Vote for candidate", + "No active members": "No active members", + "No bids": "No bids", + "No candidates": "No candidates", + "Rejections": "Rejections", + "Skeptics": "Skeptics", + "Society overview": "Society overview", "The address to vote from (must be a member)": "The address to vote from (must be a member)", - "vote from account": "vote from account", - "Approve this candidacy.": "Approve this candidacy.", - "vote for andidate": "vote for andidate", "Vote": "Vote", - "defender": "defender", + "Vote for candidate": "Vote for candidate", "Vote for defender": "Vote for defender", - "Approve or reject this defneder.": "Approve or reject this defneder.", - "vote for defender": "vote for defender", - "Current society head, exempt": "Current society head, exempt", - "society head": "society head", - "members": "members", - "strikes": "strikes", - "No active members": "No active members", - "rotation": "rotation", + "bids": "bids", + "candidates": "candidates", "challenge": "challenge", + "defender": "defender", + "kind": "kind", + "members": "members", "pot": "pot", - "Skeptics": "Skeptics", - "Approvals": "Approvals", - "Rejections": "Rejections" -} + "rotation": "rotation", + "society head": "society head", + "strikes": "strikes", + "value": "value", + "vote for andidate": "vote for andidate", + "vote for defender": "vote for defender", + "vote from account": "vote from account", + "votes": "votes" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-staking.json b/packages/apps/public/locales/en/app-staking.json index 11987d6ef5db..04d75be964c9 100644 --- a/packages/apps/public/locales/en/app-staking.json +++ b/packages/apps/public/locales/en/app-staking.json @@ -1,128 +1,128 @@ { - "Bond more funds": "Bond more funds", - "stash account": "stash account", - "transferrable": "transferrable", + "A controller account should not be set to manages multiple stashes. The selected controller is already controlling {{stashId}}": "A controller account should not be set to manages multiple stashes. The selected controller is already controlling {{stashId}}", + "A controller account should not map to another stash. This selected controller is a stash, controlled by {{bondedId}}": "A controller account should not map to another stash. This selected controller is a stash, controlled by {{bondedId}}", + "Account actions": "Account actions", + "Active nominations ({{count}})": "Active nominations ({{count}})", "Amount to add to the currently bonded funds. This is adjusted using the available funds on the account.": "Amount to add to the currently bonded funds. This is adjusted using the available funds on the account.", - "additional bonded funds": "additional bonded funds", + "Aura": "Aura", + "Babe": "Babe", + "Bond": "Bond", "Bond more": "Bond more", - "Active nominations ({{count}})": "Active nominations ({{count}})", - "Inactive nominations ({{count}})": "Inactive nominations ({{count}})", - "Stop": "Stop", - "Session Key": "Session Key", - "Validate": "Validate", - "Nominate": "Nominate", - "Unbond funds": "Unbond funds", + "Bond more funds": "Bond more funds", + "Bonding Preferences": "Bonding Preferences", + "Calculator": "Calculator", "Change controller account": "Change controller account", "Change reward destination": "Change reward destination", - "Change validator preferences": "Change validator preferences", "Change session keys": "Change session keys", - "Set nominees": "Set nominees", - "Inject session keys (advanced)": "Inject session keys (advanced)", - "Aura": "Aura", - "Babe": "Babe", + "Change validator preferences": "Change validator preferences", + "Changing the key only takes effect at the start of the next session. The input here is generates from the author_rotateKeys command": "Changing the key only takes effect at the start of the next session. The input here is generates from the author_rotateKeys command", + "Display overview information for the selected validator, including blocks produced.": "Display overview information for the selected validator, including blocks produced.", + "Distinct stash and controller accounts are recommended to ensure fund security. You will be allowed to make the transaction, but take care to not tie up all funds, only use a portion of the available funds during this period.": "Distinct stash and controller accounts are recommended to ensure fund security. You will be allowed to make the transaction, but take care to not tie up all funds, only use a portion of the available funds during this period.", + "Filter available candidates based on name, address or short account index.": "Filter available candidates based on name, address or short account index.", + "For fund security, your session key should not match your stash key.": "For fund security, your session key should not match your stash key.", "Grandpa": "Grandpa", "I'm Online": "I'm Online", - "Parachains": "Parachains", - "ed25519, Edwards": "ed25519, Edwards", - "sr15519, Schnorrkel": "sr15519, Schnorrkel", + "Inactive nominations ({{count}})": "Inactive nominations ({{count}})", "Inject Keys": "Inject Keys", - "suri (seed & derivation)": "suri (seed & derivation)", - "key type to set": "key type to set", - "crypto type to use": "crypto type to use", - "generated public key": "generated public key", - "This operation will submit the seed via an RPC call. Do not perform this operation on a public RPC node, but ensure that the node is local, connected to your validator and secure.": "This operation will submit the seed via an RPC call. Do not perform this operation on a public RPC node, but ensure that the node is local, connected to your validator and secure.", + "Inject session keys (advanced)": "Inject session keys (advanced)", + "Keys from rotateKeys": "Keys from rotateKeys", + "New stake": "New stake", + "No active validators found": "No active validators found", + "No active validators to check for rewards available": "No active validators to check for rewards available", + "No funds staked yet. Bond funds to validate or nominate a validator": "No funds staked yet. Bond funds to validate or nominate a validator", + "No pending era payouts from validators": "No pending era payouts from validators", + "No pending payouts for your stashes": "No pending payouts for your stashes", + "No waiting validators found": "No waiting validators found", + "Nominate": "Nominate", + "Nominate Validators": "Nominate Validators", + "Nominations ({{count}})": "Nominations ({{count}})", + "Parachains": "Parachains", + "Payout": "Payout", + "Payout all": "Payout all", + "Payout all stakers": "Payout all stakers", + "Retrieving info for all applicable eras, this will take some time": "Retrieving info for all applicable eras, this will take some time", + "Session Key": "Session Key", + "Set Session Key": "Set Session Key", + "Set controller": "Set controller", + "Set nominees": "Set nominees", + "Set reward destination": "Set reward destination", + "Set validator preferences": "Set validator preferences", + "Staking overview": "Staking overview", + "Stop": "Stop", "Submit key": "Submit key", - "The specified value is greater than your free balance. The node will bond the maximum amount available.": "The specified value is greater than your free balance. The node will bond the maximum amount available.", - "Distinct stash and controller accounts are recommended to ensure fund security. You will be allowed to make the transaction, but take care to not tie up all funds, only use a portion of the available funds during this period.": "Distinct stash and controller accounts are recommended to ensure fund security. You will be allowed to make the transaction, but take care to not tie up all funds, only use a portion of the available funds during this period.", - "A controller account should not map to another stash. This selected controller is a stash, controlled by {{bondedId}}": "A controller account should not map to another stash. This selected controller is a stash, controlled by {{bondedId}}", - "A controller account should not be set to manages multiple stashes. The selected controller is already controlling {{stashId}}": "A controller account should not be set to manages multiple stashes. The selected controller is already controlling {{stashId}}", - "For fund security, your session key should not match your stash key.": "For fund security, your session key should not match your stash key.", "The Threshold must be a positive number": "The Threshold must be a positive number", "The Threshold must lower than 11": "The Threshold must lower than 11", - "Nominate Validators": "Nominate Validators", - "controller account": "controller account", - "candidate accounts": "candidate accounts", - "Filter available candidates based on name, address or short account index.": "Filter available candidates based on name, address or short account index.", - "nominated accounts": "nominated accounts", - "The controller is the account that will be used to control any nominating or validating actions. Should not match another stash or controller.": "The controller is the account that will be used to control any nominating or validating actions. Should not match another stash or controller.", - "Set controller": "Set controller", - "Bonding Preferences": "Bonding Preferences", + "The amount of funds to unbond, this is adjusted using the bonded funds on the stash account.": "The amount of funds to unbond, this is adjusted using the bonded funds on the stash account.", + "The amount that will be used on a per-validator basis to calculate rewards for that validator.": "The amount that will be used on a per-validator basis to calculate rewards for that validator.", "The controller is the account that is be used to control any nominating or validating actions. I will sign this transaction.": "The controller is the account that is be used to control any nominating or validating actions. I will sign this transaction.", + "The controller is the account that will be used to control any nominating or validating actions. Should not match another stash or controller.": "The controller is the account that will be used to control any nominating or validating actions. Should not match another stash or controller.", "The destination account for any payments as either a nominator or validator": "The destination account for any payments as either a nominator or validator", - "payment destination": "payment destination", - "Set reward destination": "Set reward destination", - "Set Session Key": "Set Session Key", - "Changing the key only takes effect at the start of the next session. The input here is generates from the author_rotateKeys command": "Changing the key only takes effect at the start of the next session. The input here is generates from the author_rotateKeys command", - "Keys from rotateKeys": "Keys from rotateKeys", - "The amount of funds to unbond, this is adjusted using the bonded funds on the stash account.": "The amount of funds to unbond, this is adjusted using the bonded funds on the stash account.", - "unbond amount": "unbond amount", - "Unbond": "Unbond", - "Set validator preferences": "Set validator preferences", "The percentage reward (0-100) that should be applied for the validator": "The percentage reward (0-100) that should be applied for the validator", - "reward commission percentage": "reward commission percentage", - "stashes": "stashes", - "controller": "controller", - "rewards": "rewards", - "bonded": "bonded", - "No funds staked yet. Bond funds to validate or nominate a validator": "No funds staked yet. Bond funds to validate or nominate a validator", - "New stake": "New stake", + "The specified value is greater than your free balance. The node will bond the maximum amount available.": "The specified value is greater than your free balance. The node will bond the maximum amount available.", "The total amount of the stash balance that will be at stake in any forthcoming rounds (should be less than the total amount available)": "The total amount of the stash balance that will be at stake in any forthcoming rounds (should be less than the total amount available)", - "value bonded": "value bonded", - "Bond": "Bond", "There is currently an ongoing election for new validator candidates. As such staking operations are not permitted.": "There is currently an ongoing election for new validator candidates. As such staking operations are not permitted.", - "Staking overview": "Staking overview", - "Account actions": "Account actions", - "Calculator": "Calculator", - "Waiting": "Waiting", + "This operation will submit the seed via an RPC call. Do not perform this operation on a public RPC node, but ensure that the node is local, connected to your validator and secure.": "This operation will submit the seed via an RPC call. Do not perform this operation on a public RPC node, but ensure that the node is local, connected to your validator and secure.", + "Unbond": "Unbond", + "Unbond funds": "Unbond funds", + "Validate": "Validate", "Validator stats": "Validator stats", - "Nominations ({{count}})": "Nominations ({{count}})", - "priority {{index}}": "priority {{index}}", + "Waiting": "Waiting", + "additional bonded funds": "additional bonded funds", + "amount to use for estimation": "amount to use for estimation", + "available": "available", + "average": "average", + "bonded": "bonded", + "candidate accounts": "candidate accounts", + "commission": "commission", + "controller": "controller", + "controller account": "controller account", + "crypto type to use": "crypto type to use", + "ed25519, Edwards": "ed25519, Edwards", + "elected stake": "elected stake", + "era points": "era points", + "eras": "eras", + "filter by name, address or index": "filter by name, address or index", + "generated public key": "generated public key", "intentions": "intentions", + "key type to set": "key type to set", + "last #": "last #", + "last block": "last block", + "last reward": "last reward", + "nominated accounts": "nominated accounts", "nominators": "nominators", - "commission": "commission", - "validators": "validators", "other stake": "other stake", "own stake": "own stake", - "points": "points", - "last #": "last #", - "filter by name, address or index": "filter by name, address or index", - "No waiting validators found": "No waiting validators found", - "No active validators found": "No active validators found", - "waiting": "waiting", - "last block": "last block", - "payout/stash": "payout/stash", - "eras": "eras", - "available": "available", - "payout/validator": "payout/validator", - "No pending payouts for your stashes": "No pending payouts for your stashes", - "Retrieving info for all applicable eras, this will take some time": "Retrieving info for all applicable eras, this will take some time", - "No pending era payouts from validators": "No pending era payouts from validators", - "Payout all stakers": "Payout all stakers", + "payment destination": "payment destination", "payout stakers for (multiple)": "payout stakers for (multiple)", "payout stakers for (single)": "payout stakers for (single)", + "payout/stash": "payout/stash", + "payout/validator": "payout/validator", + "points": "points", + "priority {{index}}": "priority {{index}}", + "profit/era est": "profit/era est", "request payout from": "request payout from", - "Payout": "Payout", - "Payout all": "Payout all", - "{{count}} stakers": "{{count}} stakers", - "average": "average", - "era points": "era points", - "{{currency}} slashed": "{{currency}} slashed", - "{{currency}} rewards": "{{currency}} rewards", - "{{currency}} average": "{{currency}} average", + "reward commission percentage": "reward commission percentage", + "rewards": "rewards", "rewards & slashes": "rewards & slashes", - "{{currency}} clipped": "{{currency}} clipped", - "{{currency}} total": "{{currency}} total", - "elected stake": "elected stake", - "Display overview information for the selected validator, including blocks produced.": "Display overview information for the selected validator, including blocks produced.", - "validator to query": "validator to query", + "sr15519, Schnorrkel": "sr15519, Schnorrkel", + "staked": "staked", + "stash account": "stash account", + "stashes": "stashes", + "suri (seed & derivation)": "suri (seed & derivation)", + "total issuance": "total issuance", "total stake": "total stake", - "profit/era est": "profit/era est", - "The amount that will be used on a per-validator basis to calculate rewards for that validator.": "The amount that will be used on a per-validator basis to calculate rewards for that validator.", - "amount to use for estimation": "amount to use for estimation", - "No active validators to check for rewards available": "No active validators to check for rewards available", "total staked": "total staked", - "total issuance": "total issuance", - "staked": "staked", + "transferrable": "transferrable", + "unbond amount": "unbond amount", + "validator to query": "validator to query", + "validators": "validators", "validators/nominators": "validators/nominators", - "last reward": "last reward" -} + "value bonded": "value bonded", + "waiting": "waiting", + "{{count}} stakers": "{{count}} stakers", + "{{currency}} average": "{{currency}} average", + "{{currency}} clipped": "{{currency}} clipped", + "{{currency}} rewards": "{{currency}} rewards", + "{{currency}} slashed": "{{currency}} slashed", + "{{currency}} total": "{{currency}} total" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-storage.json b/packages/apps/public/locales/en/app-storage.json index 74e1bdf568ca..7c48d4b59f53 100644 --- a/packages/apps/public/locales/en/app-storage.json +++ b/packages/apps/public/locales/en/app-storage.json @@ -1,8 +1,8 @@ { - "selected constant query": "selected constant query", - "Storage": "Storage", "Constants": "Constants", "Raw storage": "Raw storage", - "selected state query": "selected state query", - "hex-encoded storage key": "hex-encoded storage key" -} + "Storage": "Storage", + "hex-encoded storage key": "hex-encoded storage key", + "selected constant query": "selected constant query", + "selected state query": "selected state query" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-sudo.json b/packages/apps/public/locales/en/app-sudo.json index f7c244784a09..b204431acb97 100644 --- a/packages/apps/public/locales/en/app-sudo.json +++ b/packages/apps/public/locales/en/app-sudo.json @@ -1,10 +1,10 @@ { - "Sudo access": "Sudo access", + "Reassign": "Reassign", "Set sudo key": "Set sudo key", + "Submit Sudo": "Submit Sudo", + "Sudo access": "Sudo access", "You do not have access to the current sudo key": "You do not have access to the current sudo key", - "sudo key": "sudo key", - "Reassign": "Reassign", "You will no longer have sudo access": "You will no longer have sudo access", "submit the following change": "submit the following change", - "Submit Sudo": "Submit Sudo" -} + "sudo key": "sudo key" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-tech-comm.json b/packages/apps/public/locales/en/app-tech-comm.json index 3e214ff2a7e7..c843a7bfe6a1 100644 --- a/packages/apps/public/locales/en/app-tech-comm.json +++ b/packages/apps/public/locales/en/app-tech-comm.json @@ -1,24 +1,24 @@ { - "Tech. committee": "Tech. committee", - "Proposals ({{count}})": "Proposals ({{count}})", - "members": "members", - "No members found": "No members found", "Committee prime member, default voting": "Committee prime member, default voting", - "prime member": "prime member", - "proposals": "proposals", - "total": "total", - "threshold": "threshold", - "aye": "aye", - "nay": "nay", "No committee proposals": "No committee proposals", + "No members found": "No members found", + "Positive number between 1 and {{count}}": "Positive number between 1 and {{count}}", + "Proposals ({{count}})": "Proposals ({{count}})", "Propose a committee motion": "Propose a committee motion", "Select the account you wish to make the proposal with.": "Select the account you wish to make the proposal with.", - "propose from account": "propose from account", - "The minimum number of committee votes required to approve this motion": "The minimum number of committee votes required to approve this motion", - "Positive number between 1 and {{count}}": "Positive number between 1 and {{count}}", - "proposal": "proposal", "Submit proposal": "Submit proposal", + "Tech. committee": "Tech. committee", + "The minimum number of committee votes required to approve this motion": "The minimum number of committee votes required to approve this motion", + "Vote": "Vote", "Vote on proposal": "Vote on proposal", "You are voting with this collective's prime account. The vote will be the default outcome in case of any abstentions.": "You are voting with this collective's prime account. The vote will be the default outcome in case of any abstentions.", - "Vote": "Vote" -} + "aye": "aye", + "members": "members", + "nay": "nay", + "prime member": "prime member", + "proposal": "proposal", + "proposals": "proposals", + "propose from account": "propose from account", + "threshold": "threshold", + "total": "total" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-toolbox.json b/packages/apps/public/locales/en/app-toolbox.json index b1df66e213b1..4d304b56cebd 100644 --- a/packages/apps/public/locales/en/app-toolbox.json +++ b/packages/apps/public/locales/en/app-toolbox.json @@ -1,42 +1,42 @@ { - "The input data to hash. This can be either specified as a hex value (0x-prefix) or as a string.": "The input data to hash. This can be either specified as a hex value (0x-prefix) or as a string.", - "from the following data": "from the following data", + "Crypto not detected": "Crypto not detected", + "Cryptography used to create this signature. It is auto-detected on valid signatures.": "Cryptography used to create this signature. It is auto-detected on valid signatures.", "Detection on the input string to determine if it is hex or non-hex.": "Detection on the input string to determine if it is hex or non-hex.", - "hex input data": "hex input data", - "Yes": "Yes", + "Hash data": "Hash data", "No": "No", - "The blake2b 256-bit hash of the actual input data.": "The blake2b 256-bit hash of the actual input data.", - "the resulting hash is": "the resulting hash is", "RPC calls": "RPC calls", - "Hash data": "Hash data", "Sign message": "Sign message", - "Verify signature": "Verify signature", - "sign data from account": "sign data from account", - "with an index of": "with an index of", - "The actual JSONRPC module and function to make a call to.": "The actual JSONRPC module and function to make a call to.", - "call the selected endpoint": "call the selected endpoint", "Submit RPC call": "Submit RPC call", - "select the account you wish to sign data with": "select the account you wish to sign data with", - "account": "account", + "The account that signed the input": "The account that signed the input", + "The account's password specified at the creation of this account.": "The account's password specified at the creation of this account.", + "The actual JSONRPC module and function to make a call to.": "The actual JSONRPC module and function to make a call to.", + "The blake2b 256-bit hash of the actual input data.": "The blake2b 256-bit hash of the actual input data.", + "The data that was signed. This is used in combination with the signature for the verification. It can either be hex or a string.": "The data that was signed. This is used in combination with the signature for the verification. It can either be hex or a string.", + "The input data to hash. This can be either specified as a hex value (0x-prefix) or as a string.": "The input data to hash. This can be either specified as a hex value (0x-prefix) or as a string.", "The input data to sign. This can be either specified as a hex value (0x-prefix) or as a string.": "The input data to sign. This can be either specified as a hex value (0x-prefix) or as a string.", - "sign the following data": "sign the following data", "The resulting signature of the input data, as done with the crypto algorithm from the account. (This could be non-deterministic for some types such as sr25519).": "The resulting signature of the input data, as done with the crypto algorithm from the account. (This could be non-deterministic for some types such as sr25519).", - "signature of supplied data": "signature of supplied data", - "You need to unlock this account to be able to sign data.": "You need to unlock this account to be able to sign data.", - "Unlock account": "Unlock account", - "This injected account cannot be used to sign data since the extension does not support raw signing.": "This injected account cannot be used to sign data since the extension does not support raw signing.", + "The signature as by the account being checked, supplied as a hex-formatted string.": "The signature as by the account being checked, supplied as a hex-formatted string.", "This external account cannot be used to sign data. Only Limited support is currently available for signing from any non-internal accounts.": "This external account cannot be used to sign data. Only Limited support is currently available for signing from any non-internal accounts.", + "This injected account cannot be used to sign data since the extension does not support raw signing.": "This injected account cannot be used to sign data since the extension does not support raw signing.", + "Unlock": "Unlock", + "Unlock account": "Unlock account", + "Verify signature": "Verify signature", + "Yes": "Yes", "You are about to unlock your account to allow for the signing of messages. Once active the signature will be generated based on the content provided.": "You are about to unlock your account to allow for the signing of messages. Once active the signature will be generated based on the content provided.", - "The account's password specified at the creation of this account.": "The account's password specified at the creation of this account.", + "You need to unlock this account to be able to sign data.": "You need to unlock this account to be able to sign data.", + "account": "account", + "call the selected endpoint": "call the selected endpoint", + "from the following data": "from the following data", + "hex input data": "hex input data", "password": "password", - "Unlock": "Unlock", - "Crypto not detected": "Crypto not detected", - "The account that signed the input": "The account that signed the input", - "verify using address": "verify using address", - "The data that was signed. This is used in combination with the signature for the verification. It can either be hex or a string.": "The data that was signed. This is used in combination with the signature for the verification. It can either be hex or a string.", - "using the following data": "using the following data", - "The signature as by the account being checked, supplied as a hex-formatted string.": "The signature as by the account being checked, supplied as a hex-formatted string.", + "select the account you wish to sign data with": "select the account you wish to sign data with", + "sign data from account": "sign data from account", + "sign the following data": "sign the following data", + "signature crypto type": "signature crypto type", + "signature of supplied data": "signature of supplied data", + "the resulting hash is": "the resulting hash is", "the supplied signature": "the supplied signature", - "Cryptography used to create this signature. It is auto-detected on valid signatures.": "Cryptography used to create this signature. It is auto-detected on valid signatures.", - "signature crypto type": "signature crypto type" -} + "using the following data": "using the following data", + "verify using address": "verify using address", + "with an index of": "with an index of" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/app-treasury.json b/packages/apps/public/locales/en/app-treasury.json index c806b7f826bf..55699deb0b46 100644 --- a/packages/apps/public/locales/en/app-treasury.json +++ b/packages/apps/public/locales/en/app-treasury.json @@ -1,54 +1,54 @@ { - "Treasury overview": "Treasury overview", - "Submit treasury proposal": "Submit treasury proposal", - "Select the account you wish to submit the proposal from.": "Select the account you wish to submit the proposal from.", - "submit with account": "submit with account", - "The account to which the proposed balance will be transferred if approved": "The account to which the proposed balance will be transferred if approved", - "beneficiary": "beneficiary", - "The amount that will be allocated from the treasury pot": "The amount that will be allocated from the treasury pot", - "value": "value", - "Submit proposal": "Submit proposal", + "Acceptance proposal to council": "Acceptance proposal to council", "Approved": "Approved", - "Proposals": "Proposals", - "payment": "payment", - "bond": "bond", + "Endorse": "Endorse", + "Endorsements ({{count}})": "Endorsements ({{count}})", "No approved proposals": "No approved proposals", + "No open tips": "No open tips", "No pending proposals": "No pending proposals", - "Acceptance proposal to council": "Acceptance proposal to council", + "Proposals": "Proposals", + "Propose tip": "Propose tip", "Rejection proposal to council": "Rejection proposal to council", - "To council": "To council", + "Select the account you wish to submit the proposal from.": "Select the account you wish to submit the proposal from.", + "Select the account you wish to submit the tip from.": "Select the account you wish to submit the tip from.", "Select the council account you wish to use to make the proposal.": "Select the council account you wish to use to make the proposal.", - "submit with council account": "submit with council account", - "The type of council proposal to submit.": "The type of council proposal to submit.", - "council proposal type": "council proposal type", "Send to council": "Send to council", - "proposals": "proposals", - "approved": "approved", - "available": "available", - "spend period": "spend period", - "Endorsements ({{count}})": "Endorsements ({{count}})", - "Tip": "Tip", + "Submit proposal": "Submit proposal", + "Submit tip": "Submit tip", + "Submit tip endorsement": "Submit tip endorsement", "Submit tip request": "Submit tip request", - "Select the account you wish to submit the tip from.": "Select the account you wish to submit the tip from.", + "Submit treasury proposal": "Submit treasury proposal", + "The account to which the proposed balance will be transferred if approved": "The account to which the proposed balance will be transferred if approved", "The account to which the tip will be transferred if approved": "The account to which the tip will be transferred if approved", + "The amount that will be allocated from the treasury pot": "The amount that will be allocated from the treasury pot", + "The council proposal to make the vote on": "The council proposal to make the vote on", + "The hash for the proposal this vote applies to": "The hash for the proposal this vote applies to", "The reason why this tip should be paid.": "The reason why this tip should be paid.", - "tip reason": "tip reason", "The suggested value for this tip": "The suggested value for this tip", - "tip value": "tip value", - "Propose tip": "Propose tip", - "Endorse": "Endorse", - "Submit tip endorsement": "Submit tip endorsement", "The tip amount that should be allocated": "The tip amount that should be allocated", - "Submit tip": "Submit tip", - "tips": "tips", - "finder": "finder", - "fee": "fee", - "reason": "reason", - "No open tips": "No open tips", + "The type of council proposal to submit.": "The type of council proposal to submit.", + "Tip": "Tip", + "To council": "To council", + "Treasury overview": "Treasury overview", + "Vote": "Vote", "Vote on proposal": "Vote on proposal", - "The council proposal to make the vote on": "The council proposal to make the vote on", + "approved": "approved", + "available": "available", + "beneficiary": "beneficiary", + "bond": "bond", "council proposal": "council proposal", - "The hash for the proposal this vote applies to": "The hash for the proposal this vote applies to", + "council proposal type": "council proposal type", + "fee": "fee", + "finder": "finder", + "payment": "payment", "proposal hash": "proposal hash", - "Vote": "Vote" -} + "proposals": "proposals", + "reason": "reason", + "spend period": "spend period", + "submit with account": "submit with account", + "submit with council account": "submit with council account", + "tip reason": "tip reason", + "tip value": "tip value", + "tips": "tips", + "value": "value" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/apps-config.json b/packages/apps/public/locales/en/apps-config.json index 27dd6515a279..60fcb5600cc9 100644 --- a/packages/apps/public/locales/en/apps-config.json +++ b/packages/apps/public/locales/en/apps-config.json @@ -1,22 +1,22 @@ { - "rpc.local": "Local Node (Own, 127.0.0.1:9944)", - "rpc.kusama.parity": "Kusama (Polkadot Canary, hosted by Parity)", - "rpc.kusama.w3f": "Kusama (Polkadot Canary, hosted by Web3 Foundation)", - "rpc.kusama.ava": "Kusama (Polkadot Canary, user-run public nodes; see https://status.cloud.ava.do/)", - "rpc.edgeware": "Edgeware (Edgeware Mainnet, hosted by Commonwealth Labs)", - "rpc.kulupu": "Kulupu (Kulupu Mainnet, hosted by Kulupu)", - "rpc.westend": "Westend (Polkadot Testnet, hosted by Parity)", + "lng.detect": "Default browser language (auto-detect)", "rpc.berlin": "Berlin (Edgeware Testnet, hosted by Commonwealth Labs)", + "rpc.custom": "Custom environment", + "rpc.edgeware": "Edgeware (Edgeware Mainnet, hosted by Commonwealth Labs)", "rpc.flamingfir": "Flaming Fir (Substrate Testnet, hosted by Parity)", + "rpc.header.dev": "Development", "rpc.header.live": "Live networks", "rpc.header.test": "Test networks", - "rpc.header.dev": "Development", - "rpc.custom": "Custom environment", - "lng.detect": "Default browser language (auto-detect)", + "rpc.kulupu": "Kulupu (Kulupu Mainnet, hosted by Kulupu)", + "rpc.kusama.ava": "Kusama (Polkadot Canary, user-run public nodes; see https://status.cloud.ava.do/)", + "rpc.kusama.parity": "Kusama (Polkadot Canary, hosted by Parity)", + "rpc.kusama.w3f": "Kusama (Polkadot Canary, hosted by Web3 Foundation)", + "rpc.local": "Local Node (Own, 127.0.0.1:9944)", + "rpc.westend": "Westend (Polkadot Testnet, hosted by Parity)", + "ss58.centrifuge": "Centrifuge (live)", "ss58.default": "Default for the connected node", - "ss58.substrate": "Substrate (generic)", - "ss58.polkadot": "Polkadot (live)", - "ss58.kusmaa": "Kusama (canary)", "ss58.edgeware": "Edgeware (live)", - "ss58.centrifuge": "Centrifuge (live)" -} + "ss58.kusmaa": "Kusama (canary)", + "ss58.polkadot": "Polkadot (live)", + "ss58.substrate": "Substrate (generic)" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/apps-routing.json b/packages/apps/public/locales/en/apps-routing.json index fa1f15f8e3be..056b25e9c390 100644 --- a/packages/apps/public/locales/en/apps-routing.json +++ b/packages/apps/public/locales/en/apps-routing.json @@ -9,6 +9,8 @@ "nav.explorer": "Explorer", "nav.extrinsics": "Extrinsics", "nav.generic-asset": "Generic asset", + "nav.github": "GitHub", + "nav.i18n": "I18n Translator", "nav.js": "Javascript", "nav.parachains": "Parachains", "nav.settings": "Settings", @@ -20,6 +22,5 @@ "nav.toolbox": "Toolbox", "nav.transfer": "Transfer", "nav.treasury": "Treasury", - "nav.github": "GitHub", "nav.wiki": "Wiki" -} +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/apps.json b/packages/apps/public/locales/en/apps.json index c0605434fc77..6055b34bd24c 100644 --- a/packages/apps/public/locales/en/apps.json +++ b/packages/apps/public/locales/en/apps.json @@ -1,16 +1,14 @@ { + "Create an account now.": "Create an account now.", "Initializing connection": "Initializing connection", - "transfer received": "transfer received", - "update on #{{index}}": "update on #{{index}}", "Select Network": "Select Network", - "You don't have any accounts. Some features are currently hidden and will only become available once you have accounts.": "You don't have any accounts. Some features are currently hidden and will only become available once you have accounts.", - "Create an account now.": "Create an account now.", "Waiting for authorization from the extension. Please open the installed extension and approve or reject access.": "Waiting for authorization from the extension. Please open the installed extension and approve or reject access.", - "You are not connected to a node. Ensure that your node is running and that the Websocket endpoint is reachable.": "You are not connected to a node. Ensure that your node is running and that the Websocket endpoint is reachable.", "You are connecting from a secure location to an insecure WebSocket ({{wsUrl}}). Due to browser mixed-content security policies this connection type is not allowed. Change the RPC service to a secure 'wss' endpoint.": "You are connecting from a secure location to an insecure WebSocket ({{wsUrl}}). Due to browser mixed-content security policies this connection type is not allowed. Change the RPC service to a secure 'wss' endpoint.", - "version {{version}}": "version {{version}}", - "GitHub": "GitHub", - "Wiki": "Wiki", + "You are not connected to a node. Ensure that your node is running and that the Websocket endpoint is reachable.": "You are not connected to a node. Ensure that your node is running and that the Websocket endpoint is reachable.", + "You don't have any accounts. Some features are currently hidden and will only become available once you have accounts.": "You don't have any accounts. Some features are currently hidden and will only become available once you have accounts.", "nav.github": "nav.github", - "nav.wiki": "nav.wiki" -} + "nav.wiki": "nav.wiki", + "transfer received": "transfer received", + "update on #{{index}}": "update on #{{index}}", + "version {{version}}": "version {{version}}" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/index.json b/packages/apps/public/locales/en/index.json new file mode 100644 index 000000000000..c15e8a22bd78 --- /dev/null +++ b/packages/apps/public/locales/en/index.json @@ -0,0 +1,31 @@ +[ + "app-123code.json", + "app-accounts.json", + "app-claims.json", + "app-contracts.json", + "app-council.json", + "app-dashboard.json", + "app-democracy.json", + "app-explorer.json", + "app-extrinsics.json", + "app-generic-asset.json", + "app-js.json", + "app-parachains.json", + "app-settings.json", + "app-society.json", + "app-staking.json", + "app-storage.json", + "app-sudo.json", + "app-tech-comm.json", + "app-toolbox.json", + "app-treasury.json", + "apps-config.json", + "apps-routing.json", + "apps.json", + "react-api.json", + "react-components.json", + "react-hooks.json", + "react-params.json", + "react-query.json", + "react-signer.json" +] \ No newline at end of file diff --git a/packages/apps/public/locales/en/react-api.json b/packages/apps/public/locales/en/react-api.json index 0967ef424bce..9e26dfeeb6e6 100644 --- a/packages/apps/public/locales/en/react-api.json +++ b/packages/apps/public/locales/en/react-api.json @@ -1 +1 @@ -{} +{} \ No newline at end of file diff --git a/packages/apps/public/locales/en/react-components.json b/packages/apps/public/locales/en/react-components.json index cd7025e6ad87..69b67cb97eeb 100644 --- a/packages/apps/public/locales/en/react-components.json +++ b/packages/apps/public/locales/en/react-components.json @@ -1,79 +1,79 @@ { - "transactions": "transactions", - "type": "type", - "unstake threshold": "unstake threshold", - "commission": "commission", - "via Democracy/Vote": "via Democracy/Vote", - "via Council/Vote": "via Council/Vote", - "via Staking/Bond": "via Staking/Bond", - "via Vesting": "via Vesting", - "total": "total", - "transferrable": "transferrable", - "vested": "vested", - "locked": "locked", - "everything": "everything", - "reserved": "reserved", - "bonded": "bonded", - "redeemable": "redeemable", - "unbonding": "unbonding", - "session keys": "session keys", - "session next": "session next", - "or": "or", + "Aye, I approve": "Aye, I approve", "Cancel": "Cancel", - "extrinsic hash": "extrinsic hash", - "lifetime": "lifetime", - "tip": "tip", - "No items": "No items", - "only this network": "only this network", - "use on any network": "use on any network", - "clipboard": "clipboard", - "address copied": "address copied", - "Uncaught error. Something went wrong with the query and rendering of this component. {{message}}": "Uncaught error. Something went wrong with the query and rendering of this component. {{message}}", - "Details": "Details", - "You are about to remove this account from your list of available accounts. Once completed, should you need to access it again, you will have to re-create the account either via seed or via a backup file.": "You are about to remove this account from your list of available accounts. Once completed, should you need to access it again, you will have to re-create the account either via seed or via a backup file.", - "This operation does not remove the history of the account from the chain, nor any associated funds from the account. The forget operation only limits your access to the account on this browser.": "This operation does not remove the history of the account from the chain, nor any associated funds from the account. The forget operation only limits your access to the account on this browser.", - "You are about to remove this address from your address book. Once completed, should you need to access it again, you will have to re-add the address.": "You are about to remove this address from your address book. Once completed, should you need to access it again, you will have to re-add the address.", - "This operation does not remove the history of the account from the chain, nor any associated funds from the account. The forget operation only limits your access to the address on this browser.": "This operation does not remove the history of the account from the chain, nor any associated funds from the account. The forget operation only limits your access to the address on this browser.", - "You are about to remove this contract from your list of available contracts. Once completed, should you need to access it again, you will have to manually add the contract's address in the Instantiate tab.": "You are about to remove this contract from your list of available contracts. Once completed, should you need to access it again, you will have to manually add the contract's address in the Instantiate tab.", - "This operation does not remove the history of the contract from the chain, nor any associated funds from its account. The forget operation only limits your access to the contract on this browser.": "This operation does not remove the history of the contract from the chain, nor any associated funds from its account. The forget operation only limits your access to the contract on this browser.", "Confirm account removal": "Confirm account removal", "Confirm address removal": "Confirm address removal", - "Confirm contract removal": "Confirm contract removal", "Confirm code removal": "Confirm code removal", + "Confirm contract removal": "Confirm contract removal", + "Details": "Details", + "Dismiss all notifications": "Dismiss all notifications", "Forget": "Forget", - "filter by name, address, or account index": "filter by name, address, or account index", - "click to select or drag and drop the file here": "click to select or drag and drop the file here", - "{{name}} ({{size}} bytes)": "{{name}} ({{size}} bytes)", + "Make Transfer": "Make Transfer", + "Nay, I do not approve": "Nay, I do not approve", + "No items": "No items", "Positive number": "Positive number", - "View this externally": "View this externally", "Retrieving data": "Retrieving data", - "Withdraw these unbonded funds": "Withdraw these unbonded funds", - "Unbonding {{value}}, ": "Unbonding {{value}}, ", - "{{blocks}} blocks": "{{blocks}} blocks", - "Dismiss all notifications": "Dismiss all notifications", + "Select a contact or paste the address you want to send funds to.": "Select a contact or paste the address you want to send funds to.", + "Select the account to use for this action.": "Select the account to use for this action.", + "Select the account you wish to vote with. You can approve \"aye\" or deny \"nay\" the proposal.": "Select the account you wish to vote with. You can approve \"aye\" or deny \"nay\" the proposal.", "Send funds": "Send funds", + "Submit": "Submit", + "Submit signed extrinsic": "Submit signed extrinsic", "The account you will send funds from.": "The account you will send funds from.", - "send from account": "send from account", - "Select a contact or paste the address you want to send funds to.": "Select a contact or paste the address you want to send funds to.", - "send to address": "send to address", + "The amount that is associated with this vote. This value is is locked for the duration of the vote.": "The amount that is associated with this vote. This value is is locked for the duration of the vote.", + "This operation does not remove the history of the account from the chain, nor any associated funds from the account. The forget operation only limits your access to the account on this browser.": "This operation does not remove the history of the account from the chain, nor any associated funds from the account. The forget operation only limits your access to the account on this browser.", + "This operation does not remove the history of the account from the chain, nor any associated funds from the account. The forget operation only limits your access to the address on this browser.": "This operation does not remove the history of the account from the chain, nor any associated funds from the account. The forget operation only limits your access to the address on this browser.", + "This operation does not remove the history of the contract from the chain, nor any associated funds from its account. The forget operation only limits your access to the contract on this browser.": "This operation does not remove the history of the contract from the chain, nor any associated funds from its account. The forget operation only limits your access to the contract on this browser.", "Type the amount you want to transfer. Note that you can select the unit on the right e.g sending 1 milli is equivalent to sending 0.001.": "Type the amount you want to transfer. Note that you can select the unit on the right e.g sending 1 milli is equivalent to sending 0.001.", + "Unbonding {{value}}, ": "Unbonding {{value}}, ", + "Uncaught error. Something went wrong with the query and rendering of this component. {{message}}": "Uncaught error. Something went wrong with the query and rendering of this component. {{message}}", + "View this externally": "View this externally", + "Vote Aye": "Vote Aye", + "Vote Nay": "Vote Nay", + "Withdraw these unbonded funds": "Withdraw these unbonded funds", + "You are about to remove this account from your list of available accounts. Once completed, should you need to access it again, you will have to re-create the account either via seed or via a backup file.": "You are about to remove this account from your list of available accounts. Once completed, should you need to access it again, you will have to re-create the account either via seed or via a backup file.", + "You are about to remove this address from your address book. Once completed, should you need to access it again, you will have to re-add the address.": "You are about to remove this address from your address book. Once completed, should you need to access it again, you will have to re-add the address.", + "You are about to remove this contract from your list of available contracts. Once completed, should you need to access it again, you will have to manually add the contract's address in the Instantiate tab.": "You are about to remove this contract from your list of available contracts. Once completed, should you need to access it again, you will have to manually add the contract's address in the Instantiate tab.", + "address copied": "address copied", "amount": "amount", - "Make Transfer": "Make Transfer", - "proposed by": "proposed by", "beneficiary": "beneficiary", - "value": "value", "bond": "bond", - "Submit": "Submit", - "Select the account to use for this action.": "Select the account to use for this action.", + "bonded": "bonded", + "click to select or drag and drop the file here": "click to select or drag and drop the file here", + "clipboard": "clipboard", + "commission": "commission", + "everything": "everything", + "extrinsic hash": "extrinsic hash", + "filter by name, address, or account index": "filter by name, address, or account index", + "lifetime": "lifetime", + "locked": "locked", + "only this network": "only this network", + "or": "or", + "proposed by": "proposed by", + "redeemable": "redeemable", + "reserved": "reserved", + "send from account": "send from account", + "send to address": "send to address", + "session keys": "session keys", + "session next": "session next", + "tip": "tip", + "total": "total", + "transactions": "transactions", + "transferrable": "transferrable", + "type": "type", + "unbonding": "unbonding", + "unstake threshold": "unstake threshold", + "use on any network": "use on any network", "using my account": "using my account", - "Submit signed extrinsic": "Submit signed extrinsic", - "Select the account you wish to vote with. You can approve \"aye\" or deny \"nay\" the proposal.": "Select the account you wish to vote with. You can approve \"aye\" or deny \"nay\" the proposal.", - "vote with account": "vote with account", - "Vote Aye": "Vote Aye", - "Vote Nay": "Vote Nay", - "Aye, I approve": "Aye, I approve", - "Nay, I do not approve": "Nay, I do not approve", - "The amount that is associated with this vote. This value is is locked for the duration of the vote.": "The amount that is associated with this vote. This value is is locked for the duration of the vote.", + "value": "value", + "vested": "vested", + "via Council/Vote": "via Council/Vote", + "via Democracy/Vote": "via Democracy/Vote", + "via Staking/Bond": "via Staking/Bond", + "via Vesting": "via Vesting", "vote value": "vote value", - "voting balance": "voting balance" -} + "vote with account": "vote with account", + "voting balance": "voting balance", + "{{blocks}} blocks": "{{blocks}} blocks", + "{{name}} ({{size}} bytes)": "{{name}} ({{size}} bytes)" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/react-hooks.json b/packages/apps/public/locales/en/react-hooks.json index 0967ef424bce..9e26dfeeb6e6 100644 --- a/packages/apps/public/locales/en/react-hooks.json +++ b/packages/apps/public/locales/en/react-hooks.json @@ -1 +1 @@ -{} +{} \ No newline at end of file diff --git a/packages/apps/public/locales/en/react-params.json b/packages/apps/public/locales/en/react-params.json index cb121c5077e1..7b2432468480 100644 --- a/packages/apps/public/locales/en/react-params.json +++ b/packages/apps/public/locales/en/react-params.json @@ -1,21 +1,21 @@ { - "type": "type", - "details": "details", - "{{count}} key/value pairs encoded for submission": "{{count}} key/value pairs encoded for submission", - "include option": "include option", - "exclude option": "exclude option", "": "", "Add item": "Add item", - "Remove item": "Remove item", - "Nay": "Nay", "Aye": "Aye", - "None": "None", "Locked1x": "Locked1x", "Locked2x": "Locked2x", "Locked3x": "Locked3x", "Locked4x": "Locked4x", "Locked5x": "Locked5x", "Locked6x": "Locked6x", + "Nay": "Nay", + "None": "None", + "Remove item": "Remove item", "aye: bool": "aye: bool", - "conviction: Conviction": "conviction: Conviction" -} + "conviction: Conviction": "conviction: Conviction", + "details": "details", + "exclude option": "exclude option", + "include option": "include option", + "type": "type", + "{{count}} key/value pairs encoded for submission": "{{count}} key/value pairs encoded for submission" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/react-query.json b/packages/apps/public/locales/en/react-query.json index e02d8da940ac..1652429ba51d 100644 --- a/packages/apps/public/locales/en/react-query.json +++ b/packages/apps/public/locales/en/react-query.json @@ -1,11 +1,11 @@ { - "{{d}} days": "{{d}} days", "1 day": "1 day", - "{{h}} hrs": "{{h}} hrs", "1 hr": "1 hr", - "{{m}} mins": "{{m}} mins", "1 min": "1 min", - "{{s}} s": "{{s}} s", "1 s": "1 s", - "everything": "everything" -} + "everything": "everything", + "{{d}} days": "{{d}} days", + "{{h}} hrs": "{{h}} hrs", + "{{m}} mins": "{{m}} mins", + "{{s}} s": "{{s}} s" +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/react-signer.json b/packages/apps/public/locales/en/react-signer.json index e9c3df63150e..8b096ba17c2c 100644 --- a/packages/apps/public/locales/en/react-signer.json +++ b/packages/apps/public/locales/en/react-signer.json @@ -1,30 +1,30 @@ { - "The deposit is below the {{minimum}} minimum required for the proposal to be evaluated": "The deposit is below the {{minimum}} minimum required for the proposal to be evaluated", - "The deposit of {{deposit}} will be reserved until the proposal is completed": "The deposit of {{deposit}} will be reserved until the proposal is completed", - "The final recipient balance is less or equal to {{existentialDeposit}} (the existential amount) and will not be reflected": "The final recipient balance is less or equal to {{existentialDeposit}} (the existential amount) and will not be reflected", "A fee of {{creationFee}} will be deducted from the sender since the destination account does not exist": "A fee of {{creationFee}} will be deducted from the sender since the destination account does not exist", + "Add a tip to this extrinsic, paying the block author for greater priority": "Add a tip to this extrinsic, paying the block author for greater priority", "Authorize transaction": "Authorize transaction", "Close": "Close", + "Current account nonce: {{accountNonce}}": "Current account nonce: {{accountNonce}}", + "Do not include a tip for the block author": "Do not include a tip for the block author", + "Include an optional tip for faster processing": "Include an optional tip for faster processing", + "Lifetime (# of blocks)": "Lifetime (# of blocks)", + "Nonce": "Nonce", "Scan Signature Qr": "Scan Signature Qr", - "Submit (no signature)": "Submit (no signature)", - "Sign via {{hardwareType}}": "Sign via {{hardwareType}}", + "Sending transaction": "Sending transaction", + "Set to 0 to make transaction immortal": "Set to 0 to make transaction immortal", + "Sign (no submission)": "Sign (no submission)", + "Sign and Submit": "Sign and Submit", "Sign for multisig": "Sign for multisig", "Sign via Qr": "Sign via Qr", - "Sign and Submit": "Sign and Submit", - "Sign (no submission)": "Sign (no submission)", + "Sign via {{hardwareType}}": "Sign via {{hardwareType}}", + "Signed transaction": "Signed transaction", + "Submit (no signature)": "Submit (no signature)", + "The deposit is below the {{minimum}} minimum required for the proposal to be evaluated": "The deposit is below the {{minimum}} minimum required for the proposal to be evaluated", + "The deposit of {{deposit}} will be reserved until the proposal is completed": "The deposit of {{deposit}} will be reserved until the proposal is completed", + "The final recipient balance is less or equal to {{existentialDeposit}} (the existential amount) and will not be reflected": "The final recipient balance is less or equal to {{existentialDeposit}} (the existential amount) and will not be reflected", "The multisig signatory for this transaction.": "The multisig signatory for this transaction.", - "signatory": "signatory", - "Include an optional tip for faster processing": "Include an optional tip for faster processing", - "Do not include a tip for the block author": "Do not include a tip for the block author", - "Add a tip to this extrinsic, paying the block author for greater priority": "Add a tip to this extrinsic, paying the block author for greater priority", "Tip (optional)": "Tip (optional)", - "Nonce": "Nonce", - "Current account nonce: {{accountNonce}}": "Current account nonce: {{accountNonce}}", - "Lifetime (# of blocks)": "Lifetime (# of blocks)", - "Set to 0 to make transaction immortal": "Set to 0 to make transaction immortal", - "Signed transaction": "Signed transaction", "sending from my account": "sending from my account", - "Sending transaction": "Sending transaction", + "signatory": "signatory", "unlock account with password": "unlock account with password", "wrong password supplied": "wrong password supplied" -} +} \ No newline at end of file diff --git a/packages/apps/public/locales/en/translation.json b/packages/apps/public/locales/en/translation.json index 4b681df2cb97..2fc6d1e4f715 100644 --- a/packages/apps/public/locales/en/translation.json +++ b/packages/apps/public/locales/en/translation.json @@ -1,896 +1,901 @@ { - "Initializing connection": "", - "transfer received": "", - "update on #{{index}}": "", - "Select Network": "", - "You don't have any accounts. Some features are currently hidden and will only become available once you have accounts.": "", - "Create an account now.": "", - "Waiting for authorization from the extension. Please open the installed extension and approve or reject access.": "", - "You are not connected to a node. Ensure that your node is running and that the Websocket endpoint is reachable.": "", - "You are connecting from a secure location to an insecure WebSocket ({{wsUrl}}). Due to browser mixed-content security policies this connection type is not allowed. Change the RPC service to a secure 'wss' endpoint.": "", - "version {{version}}": "", - "account forgotten": "", - "This account is recoverable, with the following friends:": "", - "threshold": "", - "delay": "", - "deposit": "", - "send": "", - "Send funds from this account": "", - "Set on-chain identity": "", - "Derive account via derivation path": "", - "Create a backup file for this account": "", - "Change this account's password": "", - "Forget this account": "", - "Make recoverable": "", - "Initiate recovery for another": "", - "Multisig approvals": "", - "It is recommended that you create/store your accounts securely and externally from the app. On {{yourBrowser}} the following browser extensions are available for use -": "", + "//hard/soft": "", + "//hard/soft///password": "", + "0.1x voting balance, no lockup period": "", + "0x...": "", + "1 day": "", + "1 hr": "", + "1 min": "", + "1 s": "", + "1. Select your {{chain}} account": "", + "2. Sign ETH transaction": "", + "": "", + "": "", + "A controller account should not be set to manages multiple stashes. The selected controller is already controlling {{stashId}}": "", + "A controller account should not map to another stash. This selected controller is a stash, controlled by {{bondedId}}": "", + "A deployed contract that has either been deployed or attached. The address and ABI are used to construct the parameters.": "", + "A fee of {{creationFee}} will be deducted from the sender since the destination account does not exist": "", + "ABI": "", + "Acceptance proposal to council": "", + "Account actions": "", "Accounts injected from any of these extensions will appear in this application and be available for use. The above list is updated as more extensions with external signing capability become available.": "", - "Learn more...": "", - "accounts": "", - "parent": "", - "type": "", - "tags": "", - "transactions": "", - "balances": "", - "filter by name or tags": "", + "Active nominations ({{count}})": "", + "Add a tip to this extrinsic, paying the block author for greater priority": "", "Add account": "", - "Restore JSON": "", - "Add via Qr": "", - "Query Ledger": "", - "Multisig": "", - "no accounts yet, create or import an existing": "", - "Backup account": "", - "Download": "", - "An encrypted backup file will be created once you have pressed the \"Download\" button. This can be used to re-import your account on any other machine.": "", - "Save this backup file in a secure location. Additionally, the password associated with this account is needed together with this backup file in order to restore your account.": "", - "The account password as specified when creating the account. This is used to encrypt the backup file and subsequently decrypt it when restoring the account.": "", - "password": "", - "Change account password": "", - "This will apply to any future use of this account as stored on this browser. Ensure that you securely store this new password and that it is strong and unique to the account.": "", - "The existing account password as specified when this account was created or when it was last changed.": "", - "your current password": "", - "The new account password. Once set, all future account unlocks will be performed with this new password.": "", - "your new password": "", - "Change": "", - "Development": "", - "Mnemonic": "", - "Raw seed": "", - "created account": "", + "Add account via Qr": "", "Add an account via seed": "", - "Name given to this account. You can edit it. To use the account to validate or nominate, it is a good practice to append the function of the account in the name, e.g \"name_you_want - stash\".": "", - "name": "", - "new account": "", - "The private key for your account is derived from this seed. This seed must be kept secret as anyone in its possession has access to the funds of this account. If you validate, use the seed of the session account as the \"--key\" parameter of your node.": "", - "mnemonic seed": "", - "development seed": "", - "seed (hex or string)": "", - "This password is used to encrypt your private key. It must be strong and unique! You will need it to sign transactions with this account. You can recover this account using this password together with the backup file (generated in the next step).": "", - "Verify the password entered above.": "", - "password (repeat)": "", + "Add an address": "", + "Add an existing code hash": "", + "Add an existing contract": "", + "Add contact": "", + "Add identity judgment": "", + "Add item": "", + "Add multisig": "", + "Add via Qr": "", + "Add via backup file": "", + "Additional types as a JSON file (or edit below)": "", + "Address Prefix": "", + "Adjust the mode from basic (with a limited number of beginner-user-friendly apps) to full (with all basic & advanced apps available)": "", "Advanced creation options": "", - "Determines what cryptography will be used to create this account. Note that to validate on Polkadot, the session account must use \"ed25519\".": "", - "keypair crypto type": "", - "You can set a custom derivation path for this account using the following syntax \"//////\". The \"/\" and \"//\" may be repeated and mixed`. The \"///password\" is optional and should only occur once.": "", - "secret derivation path": "", - "//hard/soft///password": "", - "Save": "", - "Important notice": "", - "We will provide you with a generated backup file after your account is created. As long as you have access to your account you can always download this file later by clicking on \"Backup\" button from the Accounts section.": "", - "Please make sure to save this file in a secure location as it is required, together with your password, to restore your account.": "", - "Create and backup account": "", - "The selected account to perform the derivation on.": "", - "derive root account": "", - "Derive account from pair": "", - "The password to unlock the selected account.": "", - "derivation path": "", - "//hard/soft": "", - "Unlock": "", - "include value": "", - "exclude value": "", - "Register identity": "", - "The name that will be displayed in your accounts list.": "", - "display name": "", - "The legal name for this identity.": "", - "legal name": "", - "The email address associated with this identity.": "", - "email": "", + "Amount to add to the currently bonded funds. This is adjusted using the available funds on the account.": "", "An URL that is linked to this identity.": "", - "web": "", - "The twitter name for this identity.": "", - "twitter": "", - "a riot name linked to this identity": "", - "riot name": "", - "sha2 image hash": "", - "0x...": "", - "pgp hash": "", - "Set Identity": "", - "account restored": "", - "Add via backup file": "", - "Select the JSON key file that was downloaded when you created the account. This JSON file contains your private key encrypted with your password.": "", - "backup file": "", - "Type the password chosen at the account creation. It was used to encrypt your account's private key in the backup file.": "", - "Restore": "", + "An encrypted backup file will be created once you have pressed the \"Download\" button. This can be used to re-import your account on any other machine.": "", + "Approvals": "", + "Approve or reject this defneder.": "", "Approve this call hash": "", + "Approve this candidacy.": "", + "Approved": "", + "Asset ID": "", + "Assets": "", + "Aura": "", + "Authorize transaction": "", + "Aye": "", + "Aye, I approve": "", + "Babe": "", + "Backup account": "", + "Block details": "", + "Bond": "", + "Bond more": "", + "Bond more funds": "", + "Bonding Preferences": "", + "Calculator": "", + "Call": "", + "Call a contract": "", + "Call a method on this contract": "", + "Call results": "", + "Call this message": "", + "Cancel": "", + "Cancel slashes": "", "Cancel this call hash": "", - "Pending call hashes": "", - "The signatory to send the approval/cancel from": "", - "signatory": "", - "The call hashes that have not been executed as of yet.": "", - "pending hashes": "", - "Either approve or reject this call.": "", - "approval type": "", - "created multisig": "", - "Add multisig": "", - "Name given to this multisig. You can edit it it any later point in time.": "", - "multisig name": "", - "The threshold for this multisig": "", - "signatory {{index}}/{{length}}": "", - "Less": "", - "More": "", - "Create": "", - "Add account via Qr": "", - "Name given to this account. You can change it at any point in the future.": "", - "Initiate account recovery": "", - "the account to recover to": "", - "Select the account you wish to recover into this account.": "", - "recover this account": "", - "Start recovery": "", - "Setup account as recoverable": "", - "the account to make recoverable": "", - "available social recovery helpers": "", - "The addresses that are able to help in recovery. You can select up to {{maxHelpers}} trusted helpers.": "", - "trusted social recovery helpers": "", - "The threshold of vouches that is to be reached for the account to be recovered.": "", - "recovery threshold": "", - "The delay between vouching and the availability of the recovered account.": "", - "recovery block delay": "", - "transferrable": "", - "Send funds": "", - "The account you will send funds from.": "", - "send from account": "", - "Select a contact or paste the address you want to send funds to.": "", - "send to address": "", - "Type the amount you want to transfer. Note that you can select the unit on the right e.g sending 1 milli is equivalent to sending 0.001.": "", - "amount": "", - "Make Transfer": "", - "address forgotten": "", - "Send funds to this address": "", - "Forget this address": "", - "contacts": "", - "Add contact": "", - "no addresses saved yet, add any existing address": "", - "address edited": "", - "address created": "", - "Add an address": "", - "Paste here the address of the contact you want to add to your address book.": "", - "address": "", - "new address": "", - "Type the name of your contact. This name will be used across all the apps. It can be edited later on.": "", - "My accounts": "", - "My contacts": "", - "Vanity generator": "", - "Injected": "", - "Test account": "", - "Council": "", - "Society": "", - "Technical committee": "", - "Sudo key": "", - "Provide judgement": "", - "registrar account": "", - "registrar index": "", - "invalid/unknown registrar account": "", - "judgement": "", - "Judge": "", - "": "", - "no tags": "", - "Deposit": "", - "Owned": "", - "Saved": "", - "Remove": "", - "identity": "", - "Known good": "", - "Reasonable": "", - "Erroneous": "", - "Low quality": "", - "No judgments": "", - "website": "", - "riot": "", - "Add identity judgment": "", - "matches": "", - "Evaluated {{count}} keys in {{elapsed}}s ({{avg}} keys/s)": "", - "secret": "", - "Type here what you would like your address to contain. This tool will generate the keys and show the associated addresses that best match your search. You can use \"?\" as a wildcard for a character.": "", - "Search for": "", - "Should the search be case sensitive, e.g if you select \"no\" your search for \"Some\" may return addresses containing \"somE\" or \"sOme\"...": "", - "case sensitive": "", - "Stop generation": "", - "Start generation": "", - "No matches found": "", - "Your Ethereum account": "", - "has a valid claim for": "", - "does not appear to have a valid claim. Please double check that you have signed the transaction correctly on the correct ETH account.": "", - "1. Select your {{chain}} account": "", - "The account you want to claim to.": "", - "claim to account": "", + "Chain info": "", + "Chain specifications": "", + "Change": "", + "Change account password": "", + "Change controller account": "", + "Change reward destination": "", + "Change session keys": "", + "Change this account's password": "", + "Change validator preferences": "", + "Changing the key only takes effect at the start of the next session. The input here is generates from the author_rotateKeys command": "", + "Clear all": "", + "Close": "", + "Close proposal": "", + "Color": "", + "Committee prime member, default voting": "", + "Confirm ABI removal": "", + "Confirm account removal": "", + "Confirm address removal": "", + "Confirm claim": "", + "Confirm code removal": "", + "Confirm contract removal": "", + "Constants": "", "Continue": "", - "2. Sign ETH transaction": "", - "copied": "", - "click to copy": "", "Copy the above string and sign an Ethereum transaction with the account you used during the pre-sale in the wallet of your choice, using the string as the payload, and then paste the transaction signature object below": "", - "Confirm claim": "", - "Redeem": "", - "invalid ABI file selected": "", - "click to select or drag and drop a JSON ABI file": "", - "You are using an ABI with an outdated format. Please generate a new one.": "", - "Add an existing code hash": "", - "The code hash for the on-chain deployed code.": "", - "code hash": "", - "ABI": "", - "Forget this code hash": "", - "deploy": "", + "Council": "", + "Council overview": "", + "Create": "", + "Create a backup file for this account": "", + "Create an account now.": "", + "Create and backup account": "", + "Crypto not detected": "", + "Cryptography used to create this signature. It is auto-detected on valid signatures.": "", + "Current account nonce: {{accountNonce}}": "", + "Current prime member, default voting": "", + "Current society head, exempt": "", + "Decimals": "", + "Decimals decides the smallest unit of the token, which is 1/10^decimals": "", + "Delete this custom example": "", + "Democracy overview": "", + "Deploy": "", + "Deploy a code hash": "", "Deploy this code hash as a smart contract": "", - "You are about to remove this code from your list of available code hashes. Once completed, should you need to access it again, you will have to manually add the code hash again.": "", - "This operation does not remove the uploaded code WASM and ABI from the chain, nor any deployed contracts. The forget operation only limits your access to the code on this browser.": "", - "Upload WASM": "", - "No code hashes available": "", - "The compiled WASM for the contract that you wish to deploy. Each unique code blob will be attached with a code hash that can be used to create new instances.": "", - "compiled contract WASM": "", - "The code is not recognized as being in valid WASM format": "", - "Upload": "", - "Unable to find on-chain WASM code for the supplied codeHash": "", - "The codeHash is not a valid hex hash": "", - "Add an existing contract": "", - "The address for the deployed contract instance.": "", - "contract address": "", - "Call a contract": "", - "Specify the user account to use for this contract call. And fees will be deducted from this account.": "", - "call from account": "", - "A deployed contract that has either been deployed or attached. The address and ABI are used to construct the parameters.": "", - "contract to use": "", - "The message to send to this contract. Parameters are adjusted based on the ABI provided.": "", - "message to send": "", - "The allotted value for this contract, i.e. the amount transferred to the contract as part of this call.": "", - "value": "", - "The maximum amount of gas that can be used by this call. If the code requires more, the call will fail.": "", - "maximum gas allowed": "", - "send as RPC call": "", - "send as transaction": "", - "Call": "", - "Call results": "", - "Clear all": "", + "Deploy with this constructor": "", + "Deposit": "", + "Deregister this parachain": "", + "Derive account from pair": "", + "Derive account via derivation path": "", + "Details": "", + "Detection on the input string to determine if it is hex or non-hex.": "", + "Determines what cryptography will be used to create this account. Note that to validate on Polkadot, the session account must use \"ed25519\".": "", + "Developer": "", + "Development": "", + "Dismiss all notifications": "", + "Display overview information for the selected validator, including blocks produced.": "", + "Distinct stash and controller accounts are recommended to ensure fund security. You will be allowed to make the transaction, but take care to not tie up all funds, only use a portion of the available funds during this period.": "", + "Do not include a tip for the block author": "", + "Download": "", + "Either approve or reject this call.": "", + "Endorse": "", + "Endorsements ({{count}})": "", + "Enter the Asset ID of the token you want to manage.": "", + "Enter the Asset ID of the token you want to transfer.": "", + "Erroneous": "", + "Evaluated {{count}} keys in {{elapsed}}s ({{avg}} keys/s)": "", + "Extensions": "", + "Extrinsic submission": "", + "Fast track": "", + "Fast track proposal": "", + "Filter available candidates based on name, address or short account index.": "", + "For fund security, your session key should not match your stash key.": "", + "Forget": "", + "Forget this account": "", + "Forget this address": "", + "Forget this asset": "", + "Forget this code hash": "", "Forget this contract": "", - "execute": "", - "Call a method on this contract": "", + "Forks": "", + "General": "", + "Generate {{lng}}/translate.json": "", + "Genesis Hash": "", + "Genesis Hash refers to initial state of the chain, it cannot be changed once the chain is launched": "", + "Grandpa": "", + "Hash data": "", + "I'm Online": "", + "Important notice": "", + "Inactive nominations ({{count}})": "", + "Include an optional tip for faster processing": "", + "Initializing connection": "", + "Initiate account recovery": "", + "Initiate recovery for another": "", + "Inject Keys": "", + "Inject session keys (advanced)": "", + "Injected": "", + "It is recommended that you create/store your accounts securely and externally from the app. On {{yourBrowser}} the following browser extensions are available for use -": "", + "Judge": "", + "Keys from rotateKeys": "", + "Known good": "", + "Learn more...": "", + "Less": "", + "Lifetime (# of blocks)": "", + "Locked1x": "", + "Locked2x": "", + "Locked3x": "", + "Locked4x": "", + "Locked5x": "", + "Locked6x": "", + "Low quality": "", + "Make Transfer": "", + "Make recoverable": "", + "Manage your connection to Ledger S": "", + "Max": "", + "Message data": "", + "Message origin.": "", "Messages": "", - "Deploy a code hash": "", - "No contracts available": "", - "Unable to find deployed contract code at the specified address": "", - "The value is not in a valid address format": "", - "The contract WASM previously deployed. Internally this is identified by the hash of the code, as either created or attached.": "", - "code for this contract": "", - "The deployment constructor information for this contract, as provided by the ABI.": "", - "The allotted endowment for this contract, i.e. the amount transferred to the contract upon instantiation.": "", - "endowment": "", - "Deploy": "", - "No documentation provided": "", - "Call this message": "", - "Deploy with this constructor": "", - "Remove ABI": "", - "Mutates contract state": "", - "Specify the user account to use for this deployment. And fees will be deducted from this account.": "", - "deployment account": "", - "The maximum amount of gas that can be used by this deployment, if the code requires more, the deployment will fail.": "", - "Confirm ABI removal": "", - "You are about to remove this code's ABI. Once completed, should you need to access it again, you will have to manually re-upload it.": "", - "This operation does not impact the associated on-chain code or any of its contracts.": "", - "Council overview": "", + "Metadata {{count}}": "", + "Mnemonic": "", + "More": "", + "Most recent head data": "", "Motions ({{count}})": "", - "Close proposal": "", - "Select the account you wish close the proposal with.": "", - "sending account": "", - "Close": "", - "motions": "", - "voting end": "", - "aye": "", - "nay": "", + "Multisig": "", + "Multisig approvals": "", + "Mutates contract state": "", + "My accounts": "", + "My contacts": "", + "Name given to this account. You can change it at any point in the future.": "", + "Name given to this account. You can edit it. To use the account to validate or nominate, it is a good practice to append the function of the account in the name, e.g \"name_you_want - stash\".": "", + "Name given to this multisig. You can edit it it any later point in time.": "", + "Name of the network. It only for display purpose.": "", + "Name your example": "", + "Nay": "", + "Nay, I do not approve": "", + "Network Name": "", + "New stake": "", + "No": "", + "No active members": "", + "No active proposals": "", + "No active referendums": "", + "No active validators found": "", + "No active validators to check for rewards available": "", + "No approved proposals": "", + "No assets found.": "", + "No bids": "", + "No blocks available": "", + "No candidates": "", + "No candidates found": "", + "No code hashes available": "", + "No committee proposals": "", + "No contracts available": "", "No council motions": "", + "No documentation provided": "", + "No events available": "", + "No external proposal": "", + "No funds staked yet. Bond funds to validate or nominate a validator": "", + "No items": "", + "No judgments": "", + "No logs available": "", + "No matches found": "", + "No members found": "", + "No open tips": "", + "No pending era payouts from validators": "", + "No pending extrinsics are in the queue": "", + "No pending payouts for your stashes": "", + "No pending proposals": "", + "No runners up found": "", + "No upgradable extensions found": "", + "No waiting validators found": "", + "Node info": "", + "Nominate": "", + "Nominate Validators": "", + "Nominations ({{count}})": "", + "Nonce": "", + "None": "", + "Nothing queued for execution": "", + "Override the default identity icon display with a specific theme": "", + "Override the default ss58 prefix for address generation": "", + "Owned": "", + "Parachains": "", + "Parachains overview": "", + "Paste here the address of the contact you want to add to your address book.": "", + "Payout": "", + "Payout all": "", + "Payout all stakers": "", + "Pending call hashes": "", + "Please make sure to save this file in a secure location as it is required, together with your password, to restore your account.": "", + "Positive number": "", + "Positive number between 1 and {{count}}": "", + "Positive number between 1 and {{memberCount}}": "", + "Positive number greater than or equal to {{nextFreeId}}": "", + "Prefix indicates the ss58 address format in this network, it is a number between 0 ~ 255 that describes the precise format of the bytes of the address": "", + "Preimage": "", + "Proposals": "", + "Proposals ({{count}})": "", + "Propose": "", + "Propose a committee motion": "", + "Propose a council motion": "", "Propose external": "", "Propose external (majority)": "", - "Select the account you wish to make the proposal with.": "", - "propose from account": "", - "The preimage hash of the proposal": "", - "preimage hash": "", - "Propose": "", "Propose motion": "", - "Propose a council motion": "", - "The minimum number of council votes required to approve this motion": "", - "Positive number between 1 and {{memberCount}}": "", - "proposal": "", - "era {{era}}, {{count}} slashes": "", - "Cancel slashes": "", - "Revert pending slashes": "", - "The unapplied slashed era to cancel.": "", - "the era to cancel for": "", - "no unapplied slashes found": "", + "Propose tip": "", + "Provide judgement": "", + "Query Ledger": "", + "RPC calls": "", + "Random": "", + "Raw seed": "", + "Raw storage": "", + "Reasonable": "", + "Reassign": "", + "Redeem": "", + "Register": "", + "Register Asset": "", + "Register a parachain": "", + "Register an Asset": "", + "Register identity": "", + "Rejection proposal to council": "", + "Rejections": "", + "Remove": "", + "Remove ABI": "", + "Remove item": "", + "Reset": "", + "Restore": "", + "Restore JSON": "", + "Retrieving data": "", + "Retrieving info for all applicable eras, this will take some time": "", "Revert": "", - "Vote on proposal": "", - "You are voting with this collective's prime account. The vote will be the default outcome in case of any abstentions.": "", - "Vote": "", - "Current prime member, default voting": "", - "prime voter": "", - "runners up": "", - "backing": "", - "candidates": "", - "No runners up found": "", - "No candidates found": "", - "members": "", - "No members found": "", - "Submit your council candidacy": "", + "Revert pending slashes": "", + "Save": "", + "Save & Reload": "", + "Save snippet to local storage": "", + "Save the type definitions for your custom structures as key-value pairs in a valid JSON file. The key should be the name of your custom structure and the value an object containing your type definitions.": "", + "Save this backup file in a secure location. Additionally, the password associated with this account is needed together with this backup file in order to restore your account.": "", + "Saved": "", + "Scan Signature Qr": "", + "Search for": "", + "Second": "", + "Second proposal": "", + "Seconds ({{count}})": "", + "Select Network": "", + "Select a contact or paste the address you want to send funds to.": "", + "Select and order council candidates you wish to vote for.": "", + "Select example": "", + "Select the JSON key file that was downloaded when you created the account. This JSON file contains your private key encrypted with your password.": "", + "Select the account to use for this action.": "", + "Select the account you wish close the proposal with.": "", + "Select the account you wish to make the proposal with.": "", + "Select the account you wish to recover into this account.": "", + "Select the account you wish to second with. This will lock your funds until the proposal is either approved or rejected": "", "Select the account you wish to submit for candidacy.": "", - "candidate account": "", + "Select the account you wish to submit the proposal from.": "", + "Select the account you wish to submit the tip from.": "", + "Select the account you wish to vote with. You can approve \"aye\" or deny \"nay\" the proposal.": "", + "Select the council account you wish to use to make the proposal.": "", + "Select the remote endpoint, either from the dropdown on manual entered via the custom toggle": "", + "Send funds": "", + "Send funds from this account": "", + "Send funds to this address": "", + "Send to council": "", + "Sending transaction": "", + "Session Key": "", + "Set Identity": "", + "Set Session Key": "", + "Set controller": "", + "Set nominees": "", + "Set on-chain identity": "", + "Set reward destination": "", + "Set sudo key": "", + "Set to 0 to make transaction immortal": "", + "Set validator preferences": "", + "Setup account as recoverable": "", + "Should the search be case sensitive, e.g if you select \"no\" your search for \"Some\" may return addresses containing \"somE\" or \"sOme\"...": "", + "Sign (no submission)": "", + "Sign and Submit": "", + "Sign for multisig": "", + "Sign message": "", + "Sign via Qr": "", + "Sign via {{hardwareType}}": "", + "Signed transaction": "", + "Skeptics": "", + "Society": "", + "Society overview": "", + "Specify the user account to use for this contract call. And fees will be deducted from this account.": "", + "Specify the user account to use for this deployment. And fees will be deducted from this account.": "", + "Staking overview": "", + "Start generation": "", + "Start recovery": "", + "Stop": "", + "Stop generation": "", + "Storage": "", + "Submit": "", + "Submit (no signature)": "", + "Submit RPC call": "", + "Submit Sudo": "", + "Submit Transaction": "", + "Submit Unsigned": "", "Submit candidacy": "", - "seats": "", - "voting round": "", - "term progress": "", - "Vote for current candidates": "", - "This account will be use to approve each candidate.": "", - "voting account": "", - "council candidates": "", - "Select and order council candidates you wish to vote for.": "", - "my ordered votes": "", - "Democracy overview": "", - "dispatch queue": "", - "enact": "", - "Nothing queued for execution": "", - "proposal hash": "", - "external": "", - "proposer": "", - "locked": "", - "No external proposal": "", - "Fast track proposal": "", - "The external proposal to send to the technical committee": "", - "The voting period to apply in blocks": "", - "voting period": "", - "The delay period to apply in blocks": "", - "Fast track": "", + "Submit key": "", "Submit preimage": "", "Submit proposal": "", + "Submit signed extrinsic": "", + "Submit tip": "", + "Submit tip endorsement": "", + "Submit tip request": "", + "Submit treasury proposal": "", + "Submit your council candidacy": "", + "Sudo access": "", + "Sudo key": "", + "Tech. committee": "", + "Technical committee": "", + "Test account": "", + "The Threshold must be a positive number": "", + "The Threshold must lower than 11": "", + "The account password as specified when creating the account. This is used to encrypt the backup file and subsequently decrypt it when restoring the account.": "", + "The account that signed the input": "", + "The account to which the proposed balance will be transferred if approved": "", + "The account to which the tip will be transferred if approved": "", + "The account you want to claim to.": "", "The account you want to register the preimage from": "", - "propose": "", - "The hash of the selected proposal, use it for submitting the proposal": "", - "imminent preimage (proposal already passed)": "", - "Preimage": "", - "Seconds ({{count}})": "", - "proposals": "", - "No active proposals": "", "The account you want to register the proposal from": "", - "The locked value for this proposal": "", - "locked balance": "", - "{{blocks}} blocks": "", - "{{threshold}}, passing": "", - "{{threshold}}, not passing": "", - "passing": "", - "failing": "", - "referenda": "", - "remaining": "", - "activate": "", - "No active referendums": "", + "The account you will send funds from.": "", + "The account's password specified at the creation of this account.": "", + "The actual JSONRPC module and function to make a call to.": "", + "The address for the deployed contract instance.": "", + "The address to vote from (must be a member)": "", + "The addresses that are able to help in recovery. You can select up to {{maxHelpers}} trusted helpers.": "", + "The allotted endowment for this contract, i.e. the amount transferred to the contract upon instantiation.": "", + "The allotted value for this contract, i.e. the amount transferred to the contract as part of this call.": "", + "The amount of funds to unbond, this is adjusted using the bonded funds on the stash account.": "", + "The amount that is associated with this vote. This value is is locked for the duration of the vote.": "", + "The amount that will be allocated from the treasury pot": "", + "The amount that will be used on a per-validator basis to calculate rewards for that validator.": "", "The amount this total can be reduced by to change the referendum outcome. This assumes changes to the convictions of the existing votes, with no additional turnout.": "", "The amount this total should be increased by to change the referendum outcome. This assumes additional turnout with new votes at 1x conviction.": "", - "Second proposal": "", - "Select the account you wish to second with. This will lock your funds until the proposal is either approved or rejected": "", - "second with account": "", - "Second": "", - "total": "", - "launch period": "", - "0.1x voting balance, no lockup period": "", - "{{value}}x voting balance, locked for {{lock}}x enactment ({{period}} days)": "", + "The blake2b 256-bit hash of the actual input data.": "", + "The call hashes that have not been executed as of yet.": "", + "The code hash for the on-chain deployed code.": "", + "The code is not recognized as being in valid WASM format": "", + "The codeHash is not a valid hex hash": "", + "The color used to distinguish this network with others, use color code with 3 or 6 digits, like \"#FFF\" or \"#111111\"": "", + "The compiled WASM for the contract that you wish to deploy. Each unique code blob will be attached with a code hash that can be used to create new instances.": "", + "The compiled runtime WASM for the parachain you wish to register.": "", + "The compiled runtime WASM for this parachain.": "", + "The contract WASM previously deployed. Internally this is identified by the hash of the code, as either created or attached.": "", + "The controller is the account that is be used to control any nominating or validating actions. I will sign this transaction.": "", + "The controller is the account that will be used to control any nominating or validating actions. Should not match another stash or controller.": "", "The conviction to use for this vote, with an appropriate lock period.": "", - "conviction": "", - "recent blocks": "", - "No blocks available": "", - "hash": "", - "extrinsics": "", - "state": "", - "system events": "", - "mortal, valid from #{{startAt}} to #{{endsAt}}": "", - "immortal": "", - "index": "", - "not signed": "", - "events": "", - "signer": "", - "No pending extrinsics are in the queue": "", - "logs": "", - "No logs available": "", - "recent events": "", - "No events available": "", - "blocks": "", - "forks": "", - "Chain info": "", - "Block details": "", - "Forks": "", - "Node info": "", - "pending extrinsics": "", - "connected peers": "", - "role": "", - "best #": "", - "best hash": "", - "no peers connected": "", - "refresh in": "", - "total peers": "", - "syncing": "", - "yes": "", - "no": "", - "queued tx": "", - "peer best": "", - "our best": "", - "block hash or number to query": "", - "last block": "", - "target": "", - "total issuance": "", - "finalized": "", - "best": "", - "era": "", - "epoch": "", - "session": "", - "Extrinsic submission": "", - "using the selected account": "", - "free balance": "", - "submit the following extrinsic": "", - "Submit Unsigned": "", - "Submit Transaction": "", - "Forget this asset": "", - "Asset ID": "", - "Register Asset": "", - "No assets found.": "", - "Assets": "", - "Transfer": "", - "Register an Asset": "", - "Enter the Asset ID of the token you want to manage.": "", - "asset id": "", - "Type the name of this Asset. This name will be used across all the apps. It can be edited later on.": "", - "Register": "", - "Enter the Asset ID of the token you want to transfer.": "", - "Delete this custom example": "", - "Name your example": "", - "Save snippet to local storage": "", - "Select example": "", - "Parachains overview": "", - "There are no registered parachains": "", - "{{relayDispatchQueueSize}} dispatch messages pending": "", - "parachains": "", - "swap to id": "", - "scheduling": "", - "Register a parachain": "", + "The council proposal to make the vote on": "", + "The data that was signed. This is used in combination with the signature for the verification. It can either be hex or a string.": "", + "The delay between vouching and the availability of the recovered account.": "", + "The delay period to apply in blocks": "", + "The deployment constructor information for this contract, as provided by the ABI.": "", + "The deposit is below the {{minimum}} minimum required for the proposal to be evaluated": "", + "The deposit of {{deposit}} will be reserved until the proposal is completed": "", + "The destination account for any payments as either a nominator or validator": "", + "The email address associated with this identity.": "", + "The existing account password as specified when this account was created or when it was last changed.": "", + "The external proposal to send to the technical committee": "", + "The final recipient balance is less or equal to {{existentialDeposit}} (the existential amount) and will not be reflected": "", + "The hash for the proposal this vote applies to": "", + "The hash of the selected proposal, use it for submitting the proposal": "", "The id number to assign to this parachain.": "", - "parachain id": "", - "Positive number greater than or equal to {{nextFreeId}}": "", - "The scheduling preference for this parachain.": "", - "The compiled runtime WASM for the parachain you wish to register.": "", - "code": "", + "The id of the parachain to be deregistered.": "", "The initial head state for the parachain.": "", - "initial head state": "", "The initial head state is invalid.": "", - "next id": "", - "best block": "", - "Deregister this parachain": "", - "The id of the parachain to be deregistered.": "", + "The input data to hash. This can be either specified as a hex value (0x-prefix) or as a string.": "", + "The input data to sign. This can be either specified as a hex value (0x-prefix) or as a string.": "", + "The legal name for this identity.": "", + "The locked value for this proposal": "", + "The maximum amount of gas that can be used by this call. If the code requires more, the call will fail.": "", + "The maximum amount of gas that can be used by this deployment, if the code requires more, the deployment will fail.": "", + "The message to send to this contract. Parameters are adjusted based on the ABI provided.": "", + "The minimum number of committee votes required to approve this motion": "", + "The minimum number of council votes required to approve this motion": "", + "The multisig signatory for this transaction.": "", + "The name that will be displayed in your accounts list.": "", + "The new account password. Once set, all future account unlocks will be performed with this new password.": "", + "The password to unlock the selected account.": "", + "The percentage reward (0-100) that should be applied for the validator": "", + "The preimage hash of the proposal": "", + "The private key for your account is derived from this seed. This seed must be kept secret as anyone in its possession has access to the funds of this account. If you validate, use the seed of the session account as the \"--key\" parameter of your node.": "", + "The reason why this tip should be paid.": "", + "The resulting signature of the input data, as done with the crypto algorithm from the account. (This could be non-deterministic for some types such as sr25519).": "", + "The scheduling preference for this parachain.": "", "The scheduling setting for this parachain.": "", + "The selected account to perform the derivation on.": "", + "The signatory to send the approval/cancel from": "", + "The signature as by the account being checked, supplied as a hex-formatted string.": "", + "The specified value is greater than your free balance. The node will bond the maximum amount available.": "", + "The suggested value for this tip": "", + "The threshold for this multisig": "", + "The threshold of vouches that is to be reached for the account to be recovered.": "", + "The tip amount that should be allocated": "", + "The total amount of the stash balance that will be at stake in any forthcoming rounds (should be less than the total amount available)": "", + "The twitter name for this identity.": "", + "The type of council proposal to submit.": "", + "The unapplied slashed era to cancel.": "", + "The value is not in a valid address format": "", + "The voting period to apply in blocks": "", + "There are no registered parachains": "", + "There is currently an ongoing election for new validator candidates. As such staking operations are not permitted.": "", + "This account is recoverable, with the following friends:": "", + "This account will be use to approve each candidate.": "", + "This external account cannot be used to sign data. Only Limited support is currently available for signing from any non-internal accounts.": "", + "This injected account cannot be used to sign data since the extension does not support raw signing.": "", + "This is not a valid JSON object.": "", + "This operation does not impact the associated on-chain code or any of its contracts.": "", + "This operation does not remove the history of the account from the chain, nor any associated funds from the account. The forget operation only limits your access to the account on this browser.": "", + "This operation does not remove the history of the account from the chain, nor any associated funds from the account. The forget operation only limits your access to the address on this browser.": "", + "This operation does not remove the history of the contract from the chain, nor any associated funds from its account. The forget operation only limits your access to the contract on this browser.": "", + "This operation does not remove the uploaded code WASM and ABI from the chain, nor any deployed contracts. The forget operation only limits your access to the code on this browser.": "", + "This operation will submit the seed via an RPC call. Do not perform this operation on a public RPC node, but ensure that the node is local, connected to your validator and secure.": "", + "This password is used to encrypt your private key. It must be strong and unique! You will need it to sign transactions with this account. You can recover this account using this password together with the backup file (generated in the next step).": "", + "This will apply to any future use of this account as stored on this browser. Ensure that you securely store this new password and that it is strong and unique to the account.": "", + "Tip": "", + "Tip (optional)": "", + "To council": "", + "Transfer": "", + "Treasury overview": "", + "Type here what you would like your address to contain. This tool will generate the keys and show the associated addresses that best match your search. You can use \"?\" as a wildcard for a character.": "", + "Type the amount you want to transfer. Note that you can select the unit on the right e.g sending 1 milli is equivalent to sending 0.001.": "", + "Type the name of this Asset. This name will be used across all the apps. It can be edited later on.": "", + "Type the name of your contact. This name will be used across all the apps. It can be edited later on.": "", + "Type the password chosen at the account creation. It was used to encrypt your account's private key in the backup file.": "", + "Unable to find deployed contract code at the specified address": "", + "Unable to find on-chain WASM code for the supplied codeHash": "", + "Unbond": "", + "Unbond funds": "", + "Unbonding {{value}}, ": "", + "Uncaught error. Something went wrong with the query and rendering of this component. {{message}}": "", + "Unit": "", + "Unit decides the name of 1 unit token, e.g. \"DOT\" for Polkadot": "", "Unknown": "", - "Most recent head data": "", - "heads": "", - "The compiled runtime WASM for this parachain.": "", - "relay dispatch queue": "", - "no messages": "", - "Message origin.": "", - "origin": "", - "Message data": "", - "data": "", - "pending swap id": "", "Unknown Chain": "", "Unknown Owner": "", - "This is not a valid JSON object.": "", + "Unlock": "", + "Unlock account": "", + "Update metadata": "", + "Upload": "", + "Upload WASM": "", + "Validate": "", + "Validator stats": "", + "Vanity generator": "", + "Verify signature": "", + "Verify the password entered above.": "", + "View this externally": "", + "Vote": "", + "Vote Aye": "", + "Vote Nay": "", + "Vote for candidate": "", + "Vote for current candidates": "", + "Vote for defender": "", + "Vote on proposal": "", + "Waiting": "", + "Waiting for authorization from the extension. Please open the installed extension and approve or reject access.": "", + "We will provide you with a generated backup file after your account is created. As long as you have access to your account you can always download this file later by clicking on \"Backup\" button from the Accounts section.": "", + "Withdraw these unbonded funds": "", + "Yes": "", + "You are about to remove this account from your list of available accounts. Once completed, should you need to access it again, you will have to re-create the account either via seed or via a backup file.": "", + "You are about to remove this address from your address book. Once completed, should you need to access it again, you will have to re-add the address.": "", + "You are about to remove this code from your list of available code hashes. Once completed, should you need to access it again, you will have to manually add the code hash again.": "", + "You are about to remove this code's ABI. Once completed, should you need to access it again, you will have to manually re-upload it.": "", + "You are about to remove this contract from your list of available contracts. Once completed, should you need to access it again, you will have to manually add the contract's address in the Instantiate tab.": "", + "You are about to unlock your account to allow for the signing of messages. Once active the signature will be generated based on the content provided.": "", + "You are connecting from a secure location to an insecure WebSocket ({{wsUrl}}). Due to browser mixed-content security policies this connection type is not allowed. Change the RPC service to a secure 'wss' endpoint.": "", + "You are not connected to a node. Ensure that your node is running and that the Websocket endpoint is reachable.": "", + "You are using an ABI with an outdated format. Please generate a new one.": "", + "You are voting with this collective's prime account. The vote will be the default outcome in case of any abstentions.": "", + "You can set a custom derivation path for this account using the following syntax \"//////\". The \"/\" and \"//\" may be repeated and mixed`. The \"///password\" is optional and should only occur once.": "", + "You do not have access to the current sudo key": "", + "You don't have any accounts. Some features are currently hidden and will only become available once you have accounts.": "", + "You need to unlock this account to be able to sign data.": "", + "You will no longer have sudo access": "", + "Your Ethereum account": "", "Your custom types have been added": "", - "Save the type definitions for your custom structures as key-value pairs in a valid JSON file. The key should be the name of your custom structure and the value an object containing your type definitions.": "", - "Additional types as a JSON file (or edit below)": "", - "Reset": "", - "Override the default ss58 prefix for address generation": "", + "a riot name linked to this identity": "", + "account": "", + "account forgotten": "", + "account restored": "", + "accounts": "", + "activate": "", + "additional bonded funds": "", + "address": "", + "address copied": "", + "address created": "", + "address edited": "", + "address forgotten": "", "address prefix": "", - "Override the default identity icon display with a specific theme": "", + "amount": "", + "amount to use for estimation": "", + "approval type": "", + "approved": "", + "asset id": "", + "available": "", + "available social recovery helpers": "", + "average": "", + "aye": "", + "aye: bool": "", + "backing": "", + "backup file": "", + "balances": "", + "beneficiary": "", + "best": "", + "best #": "", + "best block": "", + "best hash": "", + "bids": "", + "block hash or number to query": "", + "blocks": "", + "bond": "", + "bonded": "", + "call from account": "", + "call the selected endpoint": "", + "candidate account": "", + "candidate accounts": "", + "candidates": "", + "case sensitive": "", + "challenge": "", + "claim to account": "", + "click to copy": "", + "click to select or drag and drop a JSON ABI file": "", + "click to select or drag and drop the file here": "", + "clipboard": "", + "code": "", + "code for this contract": "", + "code hash": "", + "commission": "", + "compiled contract WASM": "", + "connected peers": "", + "contacts": "", + "contract address": "", + "contract to use": "", + "controller": "", + "controller account": "", + "conviction": "", + "conviction: Conviction": "", + "copied": "", + "council candidates": "", + "council proposal": "", + "council proposal type": "", + "created account": "", + "created multisig": "", + "crypto type to use": "", + "custom endpoint": "", + "data": "", "default icon theme": "", - "Adjust the mode from basic (with a limited number of beginner-user-friendly apps) to full (with all basic & advanced apps available)": "", - "interface operation mode": "", - "Manage your connection to Ledger S": "", - "manage hardware connections": "", "default interface language": "", - "Save & Reload": "", - "General": "", - "Metadata {{count}}": "", - "Developer": "", - "upgradable extensions": "", - "Update metadata": "", - "No upgradable extensions found": "", - "Extensions": "", - "Chain specifications": "", - "Name of the network. It only for display purpose.": "", - "Network Name": "", - "The color used to distinguish this network with others, use color code with 3 or 6 digits, like \"#FFF\" or \"#111111\"": "", - "Color": "", - "Random": "", - "Genesis Hash refers to initial state of the chain, it cannot be changed once the chain is launched": "", - "Genesis Hash": "", - "Unit decides the name of 1 unit token, e.g. \"DOT\" for Polkadot": "", - "Unit": "", - "Prefix indicates the ss58 address format in this network, it is a number between 0 ~ 255 that describes the precise format of the bytes of the address": "", - "Address Prefix": "", - "Decimals decides the smallest unit of the token, which is 1/10^decimals": "", - "Decimals": "", - "Select the remote endpoint, either from the dropdown on manual entered via the custom toggle": "", - "remote node/endpoint to connect to": "", - "custom endpoint": "", - "Society overview": "", - "bids": "", - "kind": "", - "No bids": "", - "votes": "", - "No candidates": "", - "Aye, I approve": "", - "Nay, I do not approve": "", - "Vote for candidate": "", - "The address to vote from (must be a member)": "", - "vote from account": "", - "Approve this candidacy.": "", - "vote for andidate": "", "defender": "", - "Vote for defender": "", - "Approve or reject this defneder.": "", - "vote for defender": "", - "Current society head, exempt": "", - "society head": "", - "strikes": "", - "No active members": "", - "rotation": "", - "challenge": "", - "pot": "", - "Skeptics": "", - "Approvals": "", - "Rejections": "", - "Bond more funds": "", - "stash account": "", - "Amount to add to the currently bonded funds. This is adjusted using the available funds on the account.": "", - "additional bonded funds": "", - "Bond more": "", - "Active nominations ({{count}})": "", - "Inactive nominations ({{count}})": "", - "Stop": "", - "Session Key": "", - "Validate": "", - "Nominate": "", - "Unbond funds": "", - "Change controller account": "", - "Change reward destination": "", - "Change validator preferences": "", - "Change session keys": "", - "Set nominees": "", - "Inject session keys (advanced)": "", - "Aura": "", - "Babe": "", - "Grandpa": "", - "I'm Online": "", - "Parachains": "", + "delay": "", + "deploy": "", + "deployment account": "", + "deposit": "", + "derivation path": "", + "derive root account": "", + "details": "", + "development seed": "", + "dispatch queue": "", + "display name": "", + "does not appear to have a valid claim. Please double check that you have signed the transaction correctly on the correct ETH account.": "", "ed25519, Edwards": "", - "sr15519, Schnorrkel": "", - "Inject Keys": "", - "suri (seed & derivation)": "", - "key type to set": "", - "crypto type to use": "", + "elected stake": "", + "email": "", + "enact": "", + "endowment": "", + "epoch": "", + "era": "", + "era points": "", + "era {{era}}, {{count}} slashes": "", + "eras": "", + "events": "", + "everything": "", + "exclude option": "", + "exclude value": "", + "execute": "", + "external": "", + "extrinsic hash": "", + "extrinsics": "", + "failing": "", + "fee": "", + "filter by name or tags": "", + "filter by name, address or index": "", + "filter by name, address, or account index": "", + "finalized": "", + "finder": "", + "forks": "", + "free balance": "", + "from the following data": "", "generated public key": "", - "This operation will submit the seed via an RPC call. Do not perform this operation on a public RPC node, but ensure that the node is local, connected to your validator and secure.": "", - "Submit key": "", - "The specified value is greater than your free balance. The node will bond the maximum amount available.": "", - "Distinct stash and controller accounts are recommended to ensure fund security. You will be allowed to make the transaction, but take care to not tie up all funds, only use a portion of the available funds during this period.": "", - "A controller account should not map to another stash. This selected controller is a stash, controlled by {{bondedId}}": "", - "A controller account should not be set to manages multiple stashes. The selected controller is already controlling {{stashId}}": "", - "For fund security, your session key should not match your stash key.": "", - "The Threshold must be a positive number": "", - "The Threshold must lower than 11": "", - "Nominate Validators": "", - "controller account": "", - "candidate accounts": "", - "Filter available candidates based on name, address or short account index.": "", - "nominated accounts": "", - "The controller is the account that will be used to control any nominating or validating actions. Should not match another stash or controller.": "", - "Set controller": "", - "Bonding Preferences": "", - "The controller is the account that is be used to control any nominating or validating actions. I will sign this transaction.": "", - "The destination account for any payments as either a nominator or validator": "", - "payment destination": "", - "Set reward destination": "", - "Set Session Key": "", - "Changing the key only takes effect at the start of the next session. The input here is generates from the author_rotateKeys command": "", - "Keys from rotateKeys": "", - "The amount of funds to unbond, this is adjusted using the bonded funds on the stash account.": "", - "unbond amount": "", - "Unbond": "", - "Set validator preferences": "", - "The percentage reward (0-100) that should be applied for the validator": "", - "reward commission percentage": "", - "stashes": "", - "controller": "", - "rewards": "", - "bonded": "", - "No funds staked yet. Bond funds to validate or nominate a validator": "", - "New stake": "", - "The total amount of the stash balance that will be at stake in any forthcoming rounds (should be less than the total amount available)": "", - "value bonded": "", - "Bond": "", - "There is currently an ongoing election for new validator candidates. As such staking operations are not permitted.": "", - "Staking overview": "", - "Account actions": "", - "Calculator": "", - "Waiting": "", - "Validator stats": "", - "Nominations ({{count}})": "", - "priority {{index}}": "", + "has a valid claim for": "", + "hash": "", + "heads": "", + "hex input data": "", + "hex-encoded storage key": "", + "identity": "", + "imminent preimage (proposal already passed)": "", + "immortal": "", + "include option": "", + "include value": "", + "index": "", + "initial head state": "", "intentions": "", + "interface operation mode": "", + "invalid ABI file selected": "", + "invalid/unknown registrar account": "", + "judgement": "", + "key type to set": "", + "keypair crypto type": "", + "kind": "", + "last #": "", + "last block": "", + "last reward": "", + "launch period": "", + "legal name": "", + "lifetime": "", + "locked": "", + "locked balance": "", + "logs": "", + "manage hardware connections": "", + "matches": "", + "maximum gas allowed": "", + "members": "", + "message to send": "", + "mnemonic seed": "", + "mortal, valid from #{{startAt}} to #{{endsAt}}": "", + "motions": "", + "multisig name": "", + "my ordered votes": "", + "name": "", + "nay": "", + "new account": "", + "new address": "", + "next id": "", + "no": "", + "no accounts yet, create or import an existing": "", + "no addresses saved yet, add any existing address": "", + "no messages": "", + "no peers connected": "", + "no tags": "", + "no unapplied slashes found": "", + "nominated accounts": "", "nominators": "", - "commission": "", - "validators": "", + "not signed": "", + "only this network": "", + "or": "", + "origin": "", "other stake": "", + "our best": "", "own stake": "", - "points": "", - "last #": "", - "filter by name, address or index": "", - "No waiting validators found": "", - "No active validators found": "", - "waiting": "", - "payout/stash": "", - "eras": "", - "available": "", - "payout/validator": "", - "No pending payouts for your stashes": "", - "Retrieving info for all applicable eras, this will take some time": "", - "No pending era payouts from validators": "", - "Payout all stakers": "", + "parachain id": "", + "parachains": "", + "parent": "", + "passing": "", + "password": "", + "password (repeat)": "", + "payment": "", + "payment destination": "", "payout stakers for (multiple)": "", "payout stakers for (single)": "", + "payout/stash": "", + "payout/validator": "", + "peer best": "", + "pending extrinsics": "", + "pending hashes": "", + "pending swap id": "", + "pgp hash": "", + "points": "", + "pot": "", + "preimage hash": "", + "prime member": "", + "prime voter": "", + "priority {{index}}": "", + "profit/era est": "", + "proposal": "", + "proposal hash": "", + "proposals": "", + "propose": "", + "propose from account": "", + "proposed by": "", + "proposer": "", + "queued tx": "", + "reason": "", + "recent blocks": "", + "recent events": "", + "recover this account": "", + "recovery block delay": "", + "recovery threshold": "", + "redeemable": "", + "referenda": "", + "refresh in": "", + "registrar account": "", + "registrar index": "", + "relay dispatch queue": "", + "remaining": "", + "remote node/endpoint to connect to": "", "request payout from": "", - "Payout": "", - "Payout all": "", - "{{count}} stakers": "", - "average": "", - "era points": "", - "{{currency}} slashed": "", - "{{currency}} rewards": "", - "{{currency}} average": "", + "reserved": "", + "reward commission percentage": "", + "rewards": "", "rewards & slashes": "", - "{{currency}} clipped": "", - "{{currency}} total": "", - "elected stake": "", - "Display overview information for the selected validator, including blocks produced.": "", - "validator to query": "", - "total stake": "", - "profit/era est": "", - "The amount that will be used on a per-validator basis to calculate rewards for that validator.": "", - "amount to use for estimation": "", - "No active validators to check for rewards available": "", - "total staked": "", - "staked": "", - "validators/nominators": "", - "last reward": "", - "selected constant query": "", - "Storage": "", - "Constants": "", - "Raw storage": "", - "selected state query": "", - "hex-encoded storage key": "", - "Sudo access": "", - "Set sudo key": "", - "You do not have access to the current sudo key": "", - "sudo key": "", - "Reassign": "", - "You will no longer have sudo access": "", - "submit the following change": "", - "Submit Sudo": "", - "Tech. committee": "", - "Proposals ({{count}})": "", - "Committee prime member, default voting": "", - "prime member": "", - "No committee proposals": "", - "Propose a committee motion": "", - "The minimum number of committee votes required to approve this motion": "", - "Positive number between 1 and {{count}}": "", - "The input data to hash. This can be either specified as a hex value (0x-prefix) or as a string.": "", - "from the following data": "", - "Detection on the input string to determine if it is hex or non-hex.": "", - "hex input data": "", - "Yes": "", - "No": "", - "The blake2b 256-bit hash of the actual input data.": "", - "the resulting hash is": "", - "RPC calls": "", - "Hash data": "", - "Sign message": "", - "Verify signature": "", - "sign data from account": "", - "with an index of": "", - "The actual JSONRPC module and function to make a call to.": "", - "call the selected endpoint": "", - "Submit RPC call": "", + "riot": "", + "riot name": "", + "role": "", + "rotation": "", + "runners up": "", + "scheduling": "", + "seats": "", + "second with account": "", + "secret": "", + "secret derivation path": "", + "seed (hex or string)": "", "select the account you wish to sign data with": "", - "account": "", - "The input data to sign. This can be either specified as a hex value (0x-prefix) or as a string.": "", + "selected constant query": "", + "selected state query": "", + "send": "", + "send as RPC call": "", + "send as transaction": "", + "send from account": "", + "send to address": "", + "sending account": "", + "sending from my account": "", + "session": "", + "session keys": "", + "session next": "", + "sha2 image hash": "", + "sign data from account": "", "sign the following data": "", - "The resulting signature of the input data, as done with the crypto algorithm from the account. (This could be non-deterministic for some types such as sr25519).": "", - "signature of supplied data": "", - "You need to unlock this account to be able to sign data.": "", - "Unlock account": "", - "This injected account cannot be used to sign data since the extension does not support raw signing.": "", - "This external account cannot be used to sign data. Only Limited support is currently available for signing from any non-internal accounts.": "", - "You are about to unlock your account to allow for the signing of messages. Once active the signature will be generated based on the content provided.": "", - "The account's password specified at the creation of this account.": "", - "Crypto not detected": "", - "The account that signed the input": "", - "verify using address": "", - "The data that was signed. This is used in combination with the signature for the verification. It can either be hex or a string.": "", - "using the following data": "", - "The signature as by the account being checked, supplied as a hex-formatted string.": "", - "the supplied signature": "", - "Cryptography used to create this signature. It is auto-detected on valid signatures.": "", + "signatory": "", + "signatory {{index}}/{{length}}": "", "signature crypto type": "", - "Treasury overview": "", - "Submit treasury proposal": "", - "Select the account you wish to submit the proposal from.": "", + "signature of supplied data": "", + "signer": "", + "society head": "", + "spend period": "", + "sr15519, Schnorrkel": "", + "staked": "", + "stash account": "", + "stashes": "", + "state": "", + "strikes": "", + "submit the following change": "", + "submit the following extrinsic": "", "submit with account": "", - "The account to which the proposed balance will be transferred if approved": "", - "beneficiary": "", - "The amount that will be allocated from the treasury pot": "", - "Approved": "", - "Proposals": "", - "payment": "", - "bond": "", - "No approved proposals": "", - "No pending proposals": "", - "Acceptance proposal to council": "", - "Rejection proposal to council": "", - "To council": "", - "Select the council account you wish to use to make the proposal.": "", "submit with council account": "", - "The type of council proposal to submit.": "", - "council proposal type": "", - "Send to council": "", - "approved": "", - "spend period": "", - "Endorsements ({{count}})": "", - "Tip": "", - "Submit tip request": "", - "Select the account you wish to submit the tip from.": "", - "The account to which the tip will be transferred if approved": "", - "The reason why this tip should be paid.": "", + "sudo key": "", + "suri (seed & derivation)": "", + "swap to id": "", + "syncing": "", + "system events": "", + "tags": "", + "target": "", + "term progress": "", + "the account to make recoverable": "", + "the account to recover to": "", + "the era to cancel for": "", + "the language to display translations for": "", + "the module to display strings for": "", + "the resulting hash is": "", + "the supplied signature": "", + "threshold": "", + "tip": "", "tip reason": "", - "The suggested value for this tip": "", "tip value": "", - "Propose tip": "", - "Endorse": "", - "Submit tip endorsement": "", - "The tip amount that should be allocated": "", - "Submit tip": "", "tips": "", - "finder": "", - "fee": "", - "reason": "", - "No open tips": "", - "The council proposal to make the vote on": "", - "council proposal": "", - "The hash for the proposal this vote applies to": "", + "total": "", + "total issuance": "", + "total peers": "", + "total stake": "", + "total staked": "", + "transactions": "", + "transfer received": "", + "transferrable": "", + "trusted social recovery helpers": "", + "twitter": "", + "type": "", + "unbond amount": "", + "unbonding": "", + "unlock account with password": "", "unstake threshold": "", - "via Democracy/Vote": "", + "update on #{{index}}": "", + "upgradable extensions": "", + "use on any network": "", + "using my account": "", + "using the following data": "", + "using the selected account": "", + "validator to query": "", + "validators": "", + "validators/nominators": "", + "value": "", + "value bonded": "", + "verify using address": "", + "version {{version}}": "", + "vested": "", "via Council/Vote": "", + "via Democracy/Vote": "", "via Staking/Bond": "", "via Vesting": "", - "vested": "", - "everything": "", - "reserved": "", - "redeemable": "", - "unbonding": "", - "session keys": "", - "session next": "", - "or": "", - "Cancel": "", - "extrinsic hash": "", - "lifetime": "", - "tip": "", - "No items": "", - "only this network": "", - "use on any network": "", - "clipboard": "", - "address copied": "", - "Uncaught error. Something went wrong with the query and rendering of this component. {{message}}": "", - "Details": "", - "You are about to remove this account from your list of available accounts. Once completed, should you need to access it again, you will have to re-create the account either via seed or via a backup file.": "", - "This operation does not remove the history of the account from the chain, nor any associated funds from the account. The forget operation only limits your access to the account on this browser.": "", - "You are about to remove this address from your address book. Once completed, should you need to access it again, you will have to re-add the address.": "", - "This operation does not remove the history of the account from the chain, nor any associated funds from the account. The forget operation only limits your access to the address on this browser.": "", - "You are about to remove this contract from your list of available contracts. Once completed, should you need to access it again, you will have to manually add the contract's address in the Instantiate tab.": "", - "This operation does not remove the history of the contract from the chain, nor any associated funds from its account. The forget operation only limits your access to the contract on this browser.": "", - "Confirm account removal": "", - "Confirm address removal": "", - "Confirm contract removal": "", - "Confirm code removal": "", - "Forget": "", - "filter by name, address, or account index": "", - "click to select or drag and drop the file here": "", - "{{name}} ({{size}} bytes)": "", - "Positive number": "", - "Max": "", - "View this externally": "", - "Retrieving data": "", - "Withdraw these unbonded funds": "", - "Unbonding {{value}}, ": "", - "Dismiss all notifications": "", - "proposed by": "", - "Submit": "", - "Select the account to use for this action.": "", - "using my account": "", - "Submit signed extrinsic": "", - "Select the account you wish to vote with. You can approve \"aye\" or deny \"nay\" the proposal.": "", - "vote with account": "", - "Vote Aye": "", - "Vote Nay": "", - "The amount that is associated with this vote. This value is is locked for the duration of the vote.": "", + "vote for andidate": "", + "vote for defender": "", + "vote from account": "", "vote value": "", + "vote with account": "", + "votes": "", + "voting account": "", "voting balance": "", - "details": "", + "voting end": "", + "voting period": "", + "voting round": "", + "waiting": "", + "web": "", + "website": "", + "with an index of": "", + "wrong password supplied": "", + "yes": "", + "your current password": "", + "your new password": "", + "{{blocks}} blocks": "", "{{count}} key/value pairs encoded for submission": "", - "include option": "", - "exclude option": "", - "": "", - "Add item": "", - "Remove item": "", - "Nay": "", - "Aye": "", - "None": "", - "Locked1x": "", - "Locked2x": "", - "Locked3x": "", - "Locked4x": "", - "Locked5x": "", - "Locked6x": "", - "aye: bool": "", - "conviction: Conviction": "", + "{{count}} stakers": "", + "{{currency}} average": "", + "{{currency}} clipped": "", + "{{currency}} rewards": "", + "{{currency}} slashed": "", + "{{currency}} total": "", + "{{done}}/{{total}}, {{progress}}% done": "", "{{d}} days": "", - "1 day": "", "{{h}} hrs": "", - "1 hr": "", "{{m}} mins": "", - "1 min": "", + "{{name}} ({{size}} bytes)": "", + "{{p}}% done": "", + "{{relayDispatchQueueSize}} dispatch messages pending": "", "{{s}} s": "", - "1 s": "", - "The deposit is below the {{minimum}} minimum required for the proposal to be evaluated": "", - "The deposit of {{deposit}} will be reserved until the proposal is completed": "", - "The final recipient balance is less or equal to {{existentialDeposit}} (the existential amount) and will not be reflected": "", - "A fee of {{creationFee}} will be deducted from the sender since the destination account does not exist": "", - "Authorize transaction": "", - "Scan Signature Qr": "", - "Submit (no signature)": "", - "Sign via {{hardwareType}}": "", - "Sign for multisig": "", - "Sign via Qr": "", - "Sign and Submit": "", - "Sign (no submission)": "", - "The multisig signatory for this transaction.": "", - "Include an optional tip for faster processing": "", - "Do not include a tip for the block author": "", - "Add a tip to this extrinsic, paying the block author for greater priority": "", - "Tip (optional)": "", - "Nonce": "", - "Current account nonce: {{accountNonce}}": "", - "Lifetime (# of blocks)": "", - "Set to 0 to make transaction immortal": "", - "Signed transaction": "", - "sending from my account": "", - "Sending transaction": "", - "unlock account with password": "", - "wrong password supplied": "" -} + "{{threshold}}, not passing": "", + "{{threshold}}, passing": "", + "{{value}}x voting balance, locked for {{lock}}x enactment ({{period}} days)": "" +} \ No newline at end of file diff --git a/packages/apps/public/locales/index.json b/packages/apps/public/locales/index.json new file mode 100644 index 000000000000..af08bdb7011c --- /dev/null +++ b/packages/apps/public/locales/index.json @@ -0,0 +1,5 @@ +[ + "en", + "ja", + "zh" +] \ No newline at end of file diff --git a/packages/apps/public/locales/ja/apps-config.json b/packages/apps/public/locales/ja/apps-config.json deleted file mode 100644 index 3d717273f474..000000000000 --- a/packages/apps/public/locales/ja/apps-config.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "lng.detect": "ブラウザー設定言語(自動反映)" -} diff --git a/packages/apps/public/locales/ja/index.json b/packages/apps/public/locales/ja/index.json new file mode 100644 index 000000000000..0637a088a01e --- /dev/null +++ b/packages/apps/public/locales/ja/index.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/packages/apps/public/locales/ja/app-settings.json b/packages/apps/public/locales/ja/translation.json similarity index 61% rename from packages/apps/public/locales/ja/app-settings.json rename to packages/apps/public/locales/ja/translation.json index 8787534df0db..a4bbe07fedf6 100644 --- a/packages/apps/public/locales/ja/app-settings.json +++ b/packages/apps/public/locales/ja/translation.json @@ -1,36 +1,24 @@ { - "This is not a valid JSON object.": "無効なJSONオブジェクトです。", - "Your custom types have been added": "カスタムタイプが追加されました", - "Save the type definitions for your custom structures as key-value pairs in a valid JSON file. The key should be the name of your custom structure and the value an object containing your type definitions.": "カスタム構造体のための型定義をキー・値の対となるように有効なJSONファイルに保存します。キーにはカスタム構造体の名前を、値には型定義が入ったオブジェクトを設定してください。", "Additional types as a JSON file (or edit below)": "追加の型が定義されたJSONファイル (もしくは下で編集してください)", + "Adjust the mode from basic (with a limited number of beginner-user-friendly apps) to full (with all basic & advanced apps available)": "通常モード(初心者向け機能のみ)か全機能モード(初心者向け+上級者向け機能)かを設定します", + "Developer": "ディベロッパー", + "General": "一般", + "Manage your connection to Ledger S": "Ledger Sへの接続を管理します", + "Override the default identity icon display with a specific theme": "アイコンのテーマを設定します", + "Override the default ss58 prefix for address generation": "ss58を基準とするアドレスを生成するときに使われる接頭辞の値を上書きします", "Reset": "リセット", "Save": "保存", - "Override the default ss58 prefix for address generation": "ss58を基準とするアドレスを生成するときに使われる接頭辞の値を上書きします", + "Save & Reload": "保存して更新", + "Save the type definitions for your custom structures as key-value pairs in a valid JSON file. The key should be the name of your custom structure and the value an object containing your type definitions.": "カスタム構造体のための型定義をキー・値の対となるように有効なJSONファイルに保存します。キーにはカスタム構造体の名前を、値には型定義が入ったオブジェクトを設定してください。", + "Select the remote endpoint, either from the dropdown on manual entered via the custom toggle": "ドロップダウンの中からリモートノードを選択するかカスタムエンドポイントをオンにして記入します", + "This is not a valid JSON object.": "無効なJSONオブジェクトです。", + "Your custom types have been added": "カスタムタイプが追加されました", "address prefix": "アドレス接頭辞", - "Override the default identity icon display with a specific theme": "アイコンのテーマを設定します", + "custom endpoint": "カスタムエンドポイント", "default icon theme": "アイコンテーマ", - "Adjust the mode from basic (with a limited number of beginner-user-friendly apps) to full (with all basic & advanced apps available)": "通常モード(初心者向け機能のみ)か全機能モード(初心者向け+上級者向け機能)かを設定します", + "default interface language": "言語", "interface operation mode": "機能モード", - "Manage your connection to Ledger S": "Ledger Sへの接続を管理します", + "lng.detect": "ブラウザー設定言語(自動反映)", "manage hardware connections": "ハードウェアへの接続を管理します", - "default interface language": "言語", - "Save & Reload": "保存して更新", - "General": "一般", - "Developer": "ディベロッパー", - "Select the remote endpoint, either from the dropdown on manual entered via the custom toggle": "ドロップダウンの中からリモートノードを選択するかカスタムエンドポイントをオンにして記入します", - "remote node/endpoint to connect to": "リモートノード・エンドポイント", - "custom endpoint": "カスタムエンドポイント", - "Update metadata": "Update metadata", - "Network Name": "Network Name", - "Name of the network. It only for display purpose.": "Name of the network. It only for display purpose.", - "Color": "Color", - "The color used to distinguish this network with others, use color code with 3 or 6 digits, like \"#FFF\" or \"#111111\"": "The color used to distinguish this network with others, use color code with 3 or 6 digits, like \"#FFF\" or \"#111111\"", - "Genesis Hash": "Genesis Hash", - "Genesis Hash refers to initial state of the chain, it cannot be changed once the chain is launched": "Genesis Hash refers to initial state of the chain, it cannot be changed once the chain is launched", - "Unit": "Unit", - "Unit decides the name of 1 unit token, e.g. \"DOT\" for Polkadot": "Unit decides the name of 1 unit token, e.g. \"DOT\" for Polkadot", - "Address Prefix": "Address Prefix", - "Prefix indicates the ss58 address format in this network, it is a number between 0 ~ 255 that describes the precise format of the bytes of the address": "Prefix indicates the ss58 address format in this network, it is a number between 0 ~ 255 that describes the precise format of the bytes of the address", - "Decimals": "Decimals", - "Decimals decides the smallest unit of the token, which is 1/10^decimals": "Decimals decides the smallest unit of the token, which is 1/10^decimals" -} + "remote node/endpoint to connect to": "リモートノード・エンドポイント" +} \ No newline at end of file diff --git a/packages/apps/public/locales/zh/app-123code.json b/packages/apps/public/locales/zh/app-123code.json deleted file mode 100644 index 0967ef424bce..000000000000 --- a/packages/apps/public/locales/zh/app-123code.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/packages/apps/public/locales/zh/app-accounts.json b/packages/apps/public/locales/zh/app-accounts.json deleted file mode 100644 index 28e7c67ac716..000000000000 --- a/packages/apps/public/locales/zh/app-accounts.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "account forgotten": "账号忘记了", - "Forget this account": "删除这个账号", - "Create a backup file for this account": "给这个账号创建一个备份文件", - "Change this account's password": "更改账户密码", - "send": "发送", - "Send funds from this account": "从这个账号里面发送资金", - "It is recommended that you create/store your accounts securely and externally from the app. On {{yourBrowser}} the following browser extensions are available for use -": "强烈建议你安全的创建/存储你的账户并且放在应用外部. 在 {{yourBrowser}} 下面的的浏览器扩展可用 -", - "Accounts injected from any of these extensions will appear in this application and be available for use. The above list is updated as more extensions with external signing capability become available.": "从这些扩展程序中的任何一个注入的帐户都将出现在此应用程序中并可供使用。 随着更多具有外部签名功能的扩展可用,上面列表将会自动更新.", - "Learn more...": "了解更多...", - "My accounts": "我的账户", - "Vanity generator": "地址美化", - "Backup account": "备份账户", - "Download": "下载", - "An encrypted backup file will be created once you have pressed the \"Download\" button. This can be used to re-import your account on any other machine.": "一个加密的备份文件将会被创建 一旦你按下 \"下载\" 按钮. 这将会在你用另外一台设备重新导入账户时使用", - "Save this backup file in a secure location. Additionally, the password associated with this account is needed together with this backup file in order to restore your account.": "把这个安全文件保存到一个安全的位置. 另外, 与此帐户关联的密码以及此备份文件需要一起才能还原您的帐户.", - "The account password as specified when creating the account. This is used to encrypt the backup file and subsequently decrypt it when restoring the account.": "创建账户的时候密码需要被指定 用来加密备份文件并且恢复账户的时候用来解密.", - "password": "密码", - "Change account password": "更改账户密码", - "Change": "更改", - "This will apply to any future use of this account as stored on this browser. Ensure that you securely store this new password and that it is strong and unique to the account.": "此帐户在浏览器中存储以供将来使用。 确保您安全地存储了新密码,该密码是该帐户的唯一密码.", - "The existing account password as specified when this account was created or when it was last changed.": "当账户被创建或者最后一个被修改的时候需要给已存在的账号指定密码.", - "your current password": "你当前的密码", - "The new account password. Once set, all future account unlocks will be performed with this new password.": "新账户的密码. 一旦设置, 后面所有账号解锁都将使用新的密码.", - "your new password": "你的新密码", - "created account": "账号已创建", - "Add an account via seed": "使用种子创建账号", - "Name given to this account. You can edit it. To use the account to validate or nominate, it is a good practice to append the function of the account in the name, e.g \"name_you_want - stash\".": "给该账户命名,你可以随时编辑,使用帐户进行验证或提名, 最好的做法是在该账户名后面附加上账户的功能, 例如 \"账户名 - 暂存\".", - "name": "名称", - "The private key for your account is derived from this seed. This seed must be kept secret as anyone in its possession has access to the funds of this account. If you validate, use the seed of the session account as the \"--key\" parameter of your node.": "你的账户的私钥是从这个种子派生出来的. 该种子必须保密,因为其拥有的任何人都可以使用此帐户的资金. 如果你验证过了, 你的节点使用会话账户的种子作为 \"--key\" 参数.", - "mnemonic seed": "助记词", - "development seed": "开发种子", - "seed (hex or string)": "发送 (16进制 或 字符串)", - "Development": "开发", - "Mnemonic": "助记词", - "Raw seed": "原始种子", - "This password is used to encrypt your private key. It must be strong and unique! You will need it to sign transactions with this account. You can recover this account using this password together with the backup file (generated in the next step).": "这个秘密用来加密你的私钥. 必须健壮唯一! 你将会和你的账号一起用来签名交易. 你可以用你的密码和你的备份账号一起来恢复你账户 (下一步生成的).", - "Advanced creation options": "高级创建选项", - "Determines what cryptography will be used to create this account. Note that to validate on Polkadot, the session account must use \"ed25519\".": "确定将使用哪种加密方法创建此帐户. 注意,要在Polkadot上进行验证, 会话账户必须使用 \"ed25519\".", - "keypair crypto type": "密钥对加密类型", - "secret derivation path": "加密派生路径", - "Save": "保存", - "Important notice": "重要提示", - "We will provide you with a generated backup file after your account is created. As long as you have access to your account you can always download this file later by clicking on \"Backup\" button from the Accounts section.": "创建帐户后,我们将为您提供一个生成的备份文件。 只要您有权访问帐户,以后就可以通过单击\"帐户\"中的\"备份\"按钮来下载此文件.", - "Please make sure to save this file in a secure location as it is required, together with your password, to restore your account.": "请确保将此文件和你的秘密保存在安全的位置,因为它是必需的, 恢复账户使用.", - "Create and backup account": "创建并且备份账户", - "account restored": "账户已恢复", - "Add via backup file": "通过备份文件添加", - "Restore": "恢复", - "Select the JSON key file that was downloaded when you created the account. This JSON file contains your private key encrypted with your password.": "选择创建帐户时下载的JSON密钥文件。 此JSON文件包含使用密码加密的私钥.", - "backup file": "备份文件", - "Type the password chosen at the account creation. It was used to encrypt your account's private key in the backup file.": "输入在创建帐户时选择的密码。 它用于加密备份文件中帐户的私钥。", - "Add account via Qr": "通过二维码添加账户", - "Name given to this account. You can change it at any point in the future.": "给该账户命名. 将来你可以随时更改.", - "Create": "创建", - "Send funds": "发送资金", - "The account you will send funds from.": "从哪个账户发送资金.", - "send from account": "发送地址", - "Select a contact or paste the address you want to send funds to.": "选择一个联系人或者粘贴一个你想要发送资金的地址.", - "send to address": "发送到的地址", - "Type the amount you want to transfer. Note that you can select the unit on the right e.g sending 1 milli is equivalent to sending 0.001.": "输入你要发送的总量. 注意 你可以从右边选择单位 例如 发送 1 milli 相当于发送 0.001.", - "amount": "总量", - "Make Transfer": "添加交易", - "Add account": "添加账号", - "Restore JSON": "使用JSON恢复", - "Add via Qr": "二维码添加", - "Query Ledger": "查询账本", - "Stop generation": "停止生成", - "Start generation": "开始生成", - "Type here what you would like your address to contain. This tool will generate the keys and show the associated addresses that best match your search. You can use \"?\" as a wildcard for a character.": "在此处输入您希望包含的地址。 该工具将生成密钥并显示与您的搜索最匹配的关联地址. 你可以使用 \"?\" 最为通配符.", - "Search for": "搜索", - "Should the search be case sensitive, e.g if you select \"no\" your search for \"Some\" may return addresses containing \"somE\" or \"sOme\"...": "搜索是否大小写敏感, 例如: 如果你选择 \"否\" 你搜索 \"Dsy\" 返回的地址可能包括 \"dsY\" 或者 \"DSy\"...", - "case sensitive": "大小写敏感", - "Evaluated {{count}} keys in {{elapsed}}s ({{avg}} keys/s)": "在 {{elapsed}}秒, 生成 {{count}} 个 key (平均{{avg}} keys/秒)", - "You can set a custom derivation path for this account using the following syntax \"//////\". The \"/\" and \"//\" may be repeated and mixed`. The \"///password\" is optional and should only occur once.": "你可以对该账户自定义派生路径根据下面的语法 \"//////<密码>\". \"/\" 和 \"//\" 可以重复和混合`. \"///密码\" 是可选的只能出现一次.", - "//hard/soft///password": "//硬/软///密码", - "new account": "新建账户", - "The selected account to perform the derivation on.": "选择的账号正在执行派生.", - "derive root account": "获取跟账户", - "The password to unlock the selected account.": "密码用来解锁当前选择的账户.", - "derivation path": "派生路径", - "//hard/soft": "//硬/软", - "Unlock": "解锁", - "transferrable": "可交易", - "no tags": "没有标签", - "no accounts yet, create or import an existing": "还没有账户, 创建或者导入一个已经存在的账户", - "address forgotten": "地址忘记了", - "Forget this address": "忘记这个地址", - "deposit": "存入", - "Send funds to this address": "发送资金到这个地址", - "My contacts": "我的账户", - "address edited": "地址被编辑了", - "address created": "地址被创建了", - "Add an address": "添加一个地址", - "Paste here the address of the contact you want to add to your address book.": "把你想要添加到地址簿的联系人地址粘贴到这里.", - "address": "地址", - "Type the name of your contact. This name will be used across all the apps. It can be edited later on.": "输入联系人的名字. 这个名字在整个app内可用. 稍后课编辑.", - "Add contact": "添加联系人", - "new address": "新建地址" -} diff --git a/packages/apps/public/locales/zh/app-claims.json b/packages/apps/public/locales/zh/app-claims.json deleted file mode 100644 index 479bb9c9d0d3..000000000000 --- a/packages/apps/public/locales/zh/app-claims.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "Your Ethereum account": "你的以太坊账户", - "has a valid claim for": "有一个有效的声明", - "does not appear to have a valid claim. Please double check that you have signed the transaction correctly on the correct ETH account.": "一个合法的认领没有出现. 请再次确认你签名的交易是否在正确的以太坊账户上.", - "Redeem": "赎回", - "1. Select your {{chain}} account": "1. 选择你的 {{chain}} 账户", - "The account you want to claim to.": "你想要认领的账户.", - "claim to account": "认领到账户", - "Continue": "继续", - "2. Sign ETH transaction": "2. 签名 ETH 交易", - "copied": "已经复制", - "click to copy": "点击复制", - "Copy the above string and sign an Ethereum transaction with the account you used during the pre-sale in the wallet of your choice, using the string as the payload, and then paste the transaction signature object below": "在钱包中选择预售阶段你使用的以太坊账户,复制上面的字符串,并且使用你的以太坊账户把字符串作为内容签名交易, 并且粘贴交易签名对象到下面", - "Confirm claim": "确定认领" -} diff --git a/packages/apps/public/locales/zh/app-contracts.json b/packages/apps/public/locales/zh/app-contracts.json deleted file mode 100644 index 22fa5153f182..000000000000 --- a/packages/apps/public/locales/zh/app-contracts.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "You are using an ABI with an outdated format. Please generate a new one.": "你正在使用的ABI格式已过期. 请生成一个新的.", - "invalid ABI file selected": "非法 ABI 文件被选择", - "click to select or drag and drop a JSON ABI file": "点击选择或者拖拽一个JSON格式的ABI文件", - "The code hash for the on-chain deployed code.": "链上部署代码的哈希.", - "code hash": "代码哈希", - "Save": "保存", - "Add an existing code hash": "添加一个已经存在的代码哈希", - "ABI": "ABI", - "Forget this code hash": "忘记这个代码哈希", - "deploy": "部署", - "Deploy this code hash as a smart contract": "将此代码哈希部署为智能合约", - "No code hashes available": "没有代码哈希可用", - "Upload WASM": "上传 WASM", - "The compiled WASM for the contract that you wish to deploy. Each unique code blob will be attached with a code hash that can be used to create new instances.": "您希望部署的合约已编译为WASM. 每个唯一的代码blob都将附加一个代码哈希,可用于创建新实例", - "compiled contract WASM": "编译过的合约 WASM", - "The code is not recognized as being in valid WASM format": "该代码未被识别为有效的WASM格式", - "Upload": "上传", - "Unable to find on-chain WASM code for the supplied codeHash": "找不到所提供codeHash的链上WASM代码 ", - "The codeHash is not a valid hex hash": "codeHash不是有效的十六进制哈希", - "The address for the deployed contract instance.": "部署合同实例的地址.", - "contract address": "合约地址", - "Add an existing contract": "添加一个已存在的合约", - "Call a contract": "调用一个合约", - "Specify the user account to use for this contract call. And fees will be deducted from this account.": "指定用于此合约调用的用户帐户。费用将从该帐户中扣除.", - "call from account": "从账户调用", - "A deployed contract that has either been deployed or attached. The address and ABI are used to construct the parameters.": "已经部署的合约要么是附加的要么是部署的. 地址和ABI用于构造参数.", - "contract to use": "要使用的合约", - "The message to send to this contract. Parameters are adjusted based on the ABI provided.": "发送给合约的消息. 根据提供的ABI调整参数.", - "message to send": "要发送的消息", - "The allotted value for this contract, i.e. the amount transferred to the contract as part of this call.": "此合约的分配值,即转移给合约的总量作为调用的一部分.", - "value": "值", - "The maximum amount of gas that can be used by this deployment, if the code requires more, the deployment will fail.": "此部署可以使用gas的最大量,如果代码需要更多gas,部署将失败.", - "maximum gas allowed": "允许的最大gas", - "Call": "调用", - "address forgotten": "地址忘记了", - "Messages": "消息", - "Forget this contract": "忘记该合约", - "execute": "执行", - "Call a method on this contract": "在合约上调用一个方法", - "No contracts available": "没有合约可用", - "Deploy a code hash": "部署一个代码哈希", - "Unable to find deployed contract code at the specified address": "在指定的地址找不到部署的合约代码", - "The value is not in a valid address format": "该值的地址格式无效", - "The contract WASM previously deployed. Internally this is identified by the hash of the code, as either created or attached.": "The contract WASM previously deployed. Internally this is identified by the hash of the code, as either created or attached.", - "code for this contract": "该合约的代码", - "The deployment constructor information for this contract, as provided by the ABI.": "由ABI提供的此合约的部署构造函数信息.", - "The allotted endowment for this contract, i.e. the amount transferred to the contract upon instantiation.": "分配给这个合约的捐赠, 即 the amount transferred to the contract upon instantiation.", - "endowment": "捐赠", - "Deploy": "部署", - "Specify the user account to use for this deployment. And fees will be deducted from this account.": "指定用于部署的用户帐户。 费用将从该帐户中扣除.", - "deployment account": "部署账户", - "Confirm ABI removal": "确认 ABI 清除", - "You are about to remove this code's ABI. Once completed, should you need to access it again, you will have to manually re-upload it.": "You are about to remove this code's ABI. Once completed, should you need to access it again, you will have to manually re-upload it.", - "This operation does not impact the associated on-chain code or any of its contracts.": "This operation does not impact the associated on-chain code or any of its contracts.", - "Remove": "移除", - "The maximum amount of gas that can be used by this call. If the code requires more, the call will fail.": "用于调用使用gas的最大量. 如果超过这个量将会调用失败.", - "Call results": "调用结果", - "send as RPC call": "作为RPC调用发送", - "send as transaction": "作为交易发送", - "Clear all": "清空所有" -} diff --git a/packages/apps/public/locales/zh/app-council.json b/packages/apps/public/locales/zh/app-council.json deleted file mode 100644 index edc49a0e88c6..000000000000 --- a/packages/apps/public/locales/zh/app-council.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "Council overview": "议会概览", - "No council motions": "没有议会议案", - "Propose a council motion": "提出一个一会议案", - "threshold": "阀值", - "The minimum number of council votes required to approve this motion": "The minimum number of council votes required to approve this motion", - "Positive number between 1 and {{memberCount}}": "整数在1和{{memberCount}}之间", - "proposal": "提案", - "No members found": "没有成员", - "members": "成员", - "candidates": "候选人", - "Submit your council candidacy": "提交你的一会候选人", - "Submit candidacy": "提交候选人", - "seats": "座位", - "voting round": "投票轮次", - "Vote for current candidates": "给当前候选人投票", - "Vote": "投票", - "No candidates found": "没有候选人", - "term progress": "term progress", - "runners up": "runners up", - "backing": "backing", - "No runners up found": "No runners up found", - "Motions ({{count}})": "Motions ({{count}})" -} diff --git a/packages/apps/public/locales/zh/app-dashboard.json b/packages/apps/public/locales/zh/app-dashboard.json deleted file mode 100644 index 0967ef424bce..000000000000 --- a/packages/apps/public/locales/zh/app-dashboard.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/packages/apps/public/locales/zh/app-democracy.json b/packages/apps/public/locales/zh/app-democracy.json deleted file mode 100644 index 7bc0e7ce213a..000000000000 --- a/packages/apps/public/locales/zh/app-democracy.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "Democracy overview": "Democracy overview", - "proposals": "proposals", - "Submit proposal": "Submit proposal", - "propose": "propose", - "Second proposal": "Second proposal", - "Select the account you wish to second with. This will lock your funds until the proposal is either approved or rejected": "Select the account you wish to second with. This will lock your funds until the proposal is either approved or rejected", - "second with account": "second with account", - "Second": "Second", - "referenda": "referenda", - "launch period": "launch period", - "Vote on proposal": "Vote on proposal", - "Vote": "Vote", - "Submit preimage": "Submit preimage", - "The account you want to register the preimage from": "The account you want to register the preimage from", - "send from account": "send from account", - "transferrable": "transferrable", - "The hash of the selected proposal, use it for submitting the proposal": "The hash of the selected proposal, use it for submitting the proposal", - "preimage hash": "preimage hash", - "proposer": "proposer", - "No active proposals": "No active proposals", - "The account you want to register the proposal from": "The account you want to register the proposal from", - "The preimage hash of the proposal": "The preimage hash of the proposal", - "The locked value for this proposal": "The locked value for this proposal", - "locked balance": "locked balance", - "No active referendums": "No active referendums", - "total": "total", - "locked": "locked", - "remaining": "remaining", - "proposal hash": "proposal hash", - "imminent preimage (proposal already passed)": "imminent preimage (proposal already passed)", - "dispatch queue": "dispatch queue", - "Seconds ({{count}})": "Seconds ({{count}})" -} diff --git a/packages/apps/public/locales/zh/app-explorer.json b/packages/apps/public/locales/zh/app-explorer.json deleted file mode 100644 index 2e1b66f0a973..000000000000 --- a/packages/apps/public/locales/zh/app-explorer.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "events": "事件", - "index": "索引", - "mortal, valid from #{{startAt}} to #{{endsAt}}": "mortal, valid from #{{startAt}} to #{{endsAt}}", - "immortal": "immortal", - "No pending extrinsics are in the queue": "队列中没有等待的交易", - "extrinsics": "交易", - "logs": "日志", - "No events available": "没有事件可用", - "blocks": "区块", - "forks": "(forks)分叉", - "Chain info": "链信息", - "Block details": "区块详情", - "Forks": "(Forks)分叉", - "Node info": "节点信息", - "recent blocks": "最新区块", - "recent events": "最新事件", - "pending extrinsics": "等待的交易", - "connected peers": "连接的节点", - "role": "角色", - "best #": "最好 #", - "best hash": "最好哈希", - "no peers connected": "没有节点连接", - "refresh in": "刷新", - "total peers": "节点总数", - "syncing": "同步中", - "yes": "是", - "no": "否", - "queued tx": "队列中的交易", - "peer best": "最好节点", - "our best": "我们最好的", - "block hash or number to query": "区块哈希或查询号", - "last block": "最后的区块", - "target": "目标", - "total issuance": "总发行量", - "finalized": "最终确定", - "best": "最好", - "epoch": "时期", - "session": "session", - "era": "时代" -} diff --git a/packages/apps/public/locales/zh/app-extrinsics.json b/packages/apps/public/locales/zh/app-extrinsics.json deleted file mode 100644 index 1df87e96a6d2..000000000000 --- a/packages/apps/public/locales/zh/app-extrinsics.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "Extrinsic submission": "Extrinsic submission", - "using the selected account": "using the selected account", - "submit the following extrinsic": "submit the following extrinsic", - "Submit Unsigned": "Submit Unsigned", - "Submit Transaction": "Submit Transaction", - "free balance": "free balance" -} diff --git a/packages/apps/public/locales/zh/app-generic-asset.json b/packages/apps/public/locales/zh/app-generic-asset.json deleted file mode 100644 index 9f183171566e..000000000000 --- a/packages/apps/public/locales/zh/app-generic-asset.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "Forget this asset": "Forget this asset", - "Asset ID": "Asset ID", - "Register Asset": "Register Asset", - "No assets found.": "No assets found.", - "Assets": "Assets", - "Transfer": "Transfer", - "Register an Asset": "Register an Asset", - "Enter the Asset ID of the token you want to manage.": "Enter the Asset ID of the token you want to manage.", - "asset id": "asset id", - "Type the name of this Asset. This name will be used across all the apps. It can be edited later on.": "Type the name of this Asset. This name will be used across all the apps. It can be edited later on.", - "name": "name", - "Register": "Register", - "The account you will send funds from.": "The account you will send funds from.", - "send from account": "send from account", - "Select a contact or paste the address you want to send funds to.": "Select a contact or paste the address you want to send funds to.", - "send to address": "send to address", - "Enter the Asset ID of the token you want to transfer.": "Enter the Asset ID of the token you want to transfer.", - "Type the amount you want to transfer. Note that you can select the unit on the right e.g sending 1 milli is equivalent to sending 0.001.": "Type the amount you want to transfer. Note that you can select the unit on the right e.g sending 1 milli is equivalent to sending 0.001.", - "amount": "amount", - "Make Transfer": "Make Transfer", - "transferrable": "transferrable" -} diff --git a/packages/apps/public/locales/zh/app-js.json b/packages/apps/public/locales/zh/app-js.json deleted file mode 100644 index 40388da02fe4..000000000000 --- a/packages/apps/public/locales/zh/app-js.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "Delete this custom example": "Delete this custom example", - "Name your example": "Name your example", - "Save snippet to local storage": "Save snippet to local storage", - "Select example": "选择实例" -} diff --git a/packages/apps/public/locales/zh/app-parachains.json b/packages/apps/public/locales/zh/app-parachains.json deleted file mode 100644 index be11e478e9f9..000000000000 --- a/packages/apps/public/locales/zh/app-parachains.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "Parachains overview": "Parachains overview", - "heads": "heads", - "": "", - "parachains": "parachains", - "next id": "next id" -} diff --git a/packages/apps/public/locales/zh/app-settings.json b/packages/apps/public/locales/zh/app-settings.json deleted file mode 100644 index 821e50e20046..000000000000 --- a/packages/apps/public/locales/zh/app-settings.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "This is not a valid JSON object.": "不是一个有效的JSON对象.", - "Your custom types have been added": "你的自定义类型被添加了", - "Save the type definitions for your custom structures as key-value pairs in a valid JSON file. The key should be the name of your custom structure and the value an object containing your type definitions.": "Save the type definitions for your custom structures as key-value pairs in a valid JSON file. The key should be the name of your custom structure and the value an object containing your type definitions.", - "Additional types as a JSON file (or edit below)": "附加类型为一个JSON文件(或者在下面编辑)", - "Reset": "重置", - "Save": "保存", - "Override the default ss58 prefix for address generation": "生成地址时重载 ss58 前缀", - "address prefix": "地址前缀", - "Override the default identity icon display with a specific theme": "用一个指定主题重来载默认的身份图标显示", - "default icon theme": "默认图标主题", - "Adjust the mode from basic (with a limited number of beginner-user-friendly apps) to full (with all basic & advanced apps available)": "Adjust the mode from basic (with a limited number of beginner-user-friendly apps) to full (with all basic & advanced apps available)", - "interface operation mode": "接口操作模式", - "Manage your connection to Ledger S": "管理你的连接到 Ledger S", - "manage hardware connections": "管理硬件连接", - "default interface language": "默认接口语言", - "Save & Reload": "保存并重载", - "General": "通用", - "Developer": "开发者", - "Select the remote endpoint, either from the dropdown on manual entered via the custom toggle": "选择远程终端,或者通过自定义切换输入的手动下拉菜单中的任意一个", - "remote node/endpoint to connect to": "远程节点/终端连接到", - "custom endpoint": "自定义终端", - "No upgradable extensions found": "没有需要升级的浏览器插件", - "upgradable extensions": "升级浏览器插件", - "Update metadata": "升级Metadata", - "Extensions": "浏览器插件", - "Chain specifications": "生成含网络参数的二维码", - "Random": "随机生成颜色", - "Network Name": "网络名称", - "Name of the network. It only for display purpose.": "网络名称,仅作为显示用", - "Color": "颜色", - "The color used to distinguish this network with others, use color code with 3 or 6 digits, like \"#FFF\" or \"#111111\"": "颜色用来和其他网络相区别,用3位或者6位的16进制码表示,比如#FFF或#111111", - "Genesis Hash": "创世区块哈希", - "Genesis Hash refers to initial state of the chain, it cannot be changed once the chain is launched": "创世区块哈希代表网络的初始状态,在网络启动后不可改变", - "Unit": "单位", - "Unit decides the name of 1 unit token, e.g. \"DOT\" for Polkadot": "每一个token的单位,比如Polkadot的单位是DOT", - "Address Prefix": "地址前缀", - "Prefix indicates the ss58 address format in this network, it is a number between 0 ~ 255 that describes the precise format of the bytes of the address": "地址前缀用0~255的数来来表示SS58地址的编码格式", - "Decimals": "小数", - "Decimals decides the smallest unit of the token, which is 1/10^decimals": "小数代表每一单位token最小可以精确到多少位小数" -} diff --git a/packages/apps/public/locales/zh/app-society.json b/packages/apps/public/locales/zh/app-society.json deleted file mode 100644 index ec52d554500b..000000000000 --- a/packages/apps/public/locales/zh/app-society.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "members": "成员", - "candidates": "候选人" -} diff --git a/packages/apps/public/locales/zh/app-staking.json b/packages/apps/public/locales/zh/app-staking.json deleted file mode 100644 index 0883526e2948..000000000000 --- a/packages/apps/public/locales/zh/app-staking.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "Bond more": "抵押更多", - "Bond more funds": "抵押更多资金", - "stash account": "储值账户", - "Amount to add to the currently bonded funds. This is adjusted using the available funds on the account.": "当前抵押金额的总量. 使用帐户中的可用资金进行调整.", - "additional bonded funds": "附加抵押更多资金", - "controller": "控制器", - "Stop": "停止", - "Set Session Key": "设置会话key", - "Validate": "验证", - "Nominate": "提名", - "Unbond funds": "解除抵押资金", - "Change controller account": "更改控制账户", - "Change reward destination": "Change reward destination", - "Change validator preferences": "Change validator preferences", - "Inject session keys (advanced)": "Inject session keys (advanced)", - "ed25519, Edwards": "ed25519, Edwards", - "sr15519, Schnorrkel": "sr15519, Schnorrkel", - "Inject Keys": "Inject Keys", - "suri (seed & derivation)": "suri (seed & derivation)", - "key type to set": "设置key类型", - "Aura": "Aura", - "Babe": "Babe", - "Grandpa": "Grandpa", - "I'm Online": "我在线", - "Parachains": "平行链", - "crypto type to use": "使用的加密类型", - "generated public key": "生成的公钥", - "This operation will submit the seed via an RPC call. Do not perform this operation on a public RPC node, but ensure that the node is local, connected to your validator and secure.": "This operation will submit the seed via an RPC call. Do not perform this operation on a public RPC node, but ensure that the node is local, connected to your validator and secure.", - "Submit key": "提交key", - "A controller account should not map to another stash. This selected controller is a stash, controlled by {{bondedId}}": "A controller account should not map to another stash. This selected controller is a stash, controlled by {{bondedId}}", - "A controller account should not be set to manages multiple stashes. The selected controller is already controlling {{stashId}}": "A controller account should not be set to manages multiple stashes. The selected controller is already controlling {{stashId}}", - "For fund security, your session key should not match your stash key.": "For fund security, your session key should not match your stash key.", - "The Threshold must be a positive number": "The Threshold must be a positive number", - "The Threshold must lower than 11": "The Threshold must lower than 11", - "Nominate Validators": "Nominate Validators", - "controller account": "controller account", - "nominate the following addresses": "nominate the following addresses", - "The controller is the account that will be used to control any nominating or validating actions. Should not match another stash or controller.": "The controller is the account that will be used to control any nominating or validating actions. Should not match another stash or controller.", - "Set controller": "Set controller", - "Set reward destination": "Set reward destination", - "Bonding Preferences": "Bonding Preferences", - "The controller is the account that is be used to control any nominating or validating actions. I will sign this transaction.": "The controller is the account that is be used to control any nominating or validating actions. I will sign this transaction.", - "The destination account for any payments as either a nominator or validator": "The destination account for any payments as either a nominator or validator", - "payment destination": "payment destination", - "Keys from rotateKeys": "Keys from rotateKeys", - "Changing the key only takes effect at the start of the next session. If validating, it must be an ed25519 key.": "Changing the key only takes effect at the start of the next session. If validating, it must be an ed25519 key.", - "Unbond": "解除抵押", - "The amount of funds to unbond, this is adjusted using the bonded funds on the stash account.": "The amount of funds to unbond, this is adjusted using the bonded funds on the stash account.", - "unbond amount": "unbond amount", - "Set validator preferences": "Set validator preferences", - "automatic unstake threshold": "automatic unstake threshold", - "New stake": "New stake", - "The total amount of the stash balance that will be at stake in any forthcoming rounds (should be less than the total amount available)": "The total amount of the stash balance that will be at stake in any forthcoming rounds (should be less than the total amount available)", - "value bonded": "value bonded", - "Bond": "Bond", - "Staking overview": "Staking overview", - "Account actions": "Account actions", - "validators": "validators", - "waiting": "waiting", - "last block": "last block", - "era points": "era points", - "The specified value is greater than your free balance. The node will bond the maximum amount available.": "The specified value is greater than your free balance. The node will bond the maximum amount available.", - "Change session keys": "Change session keys", - "transferrable": "transferrable", - "Validator stats": "Validator stats", - "Display overview information for the selected validator, including blocks produced.": "Display overview information for the selected validator, including blocks produced.", - "validator to query": "validator to query", - "average": "average", - "elected stake": "elected stake", - "rewards & slashes": "rewards & slashes", - "{{currency}} slashed": "{{currency}} slashed", - "{{currency}} average": "{{currency}} average", - "{{currency}} total": "{{currency}} total", - "The amount that will be used on a per-validator basis to calculate rewards for that validator.": "The amount that will be used on a per-validator basis to calculate rewards for that validator.", - "amount to use for estimation": "amount to use for estimation", - "total staked": "total staked", - "total issuance": "total issuance", - "staked": "staked", - "last reward": "last reward", - "The percentage reward (0-100) that should be applied for the validator": "The percentage reward (0-100) that should be applied for the validator", - "reward commission percentage": "reward commission percentage", - "validator payment": "validator payment", - "Waiting": "Waiting", - "own stake": "own stake", - "other stake": "other stake", - "commission": "commission", - "points": "points", - "last #": "last #", - "total stake": "total stake" -} diff --git a/packages/apps/public/locales/zh/app-storage.json b/packages/apps/public/locales/zh/app-storage.json deleted file mode 100644 index 74e1bdf568ca..000000000000 --- a/packages/apps/public/locales/zh/app-storage.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "selected constant query": "selected constant query", - "Storage": "Storage", - "Constants": "Constants", - "Raw storage": "Raw storage", - "selected state query": "selected state query", - "hex-encoded storage key": "hex-encoded storage key" -} diff --git a/packages/apps/public/locales/zh/app-sudo.json b/packages/apps/public/locales/zh/app-sudo.json deleted file mode 100644 index f7c244784a09..000000000000 --- a/packages/apps/public/locales/zh/app-sudo.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "Sudo access": "Sudo access", - "Set sudo key": "Set sudo key", - "You do not have access to the current sudo key": "You do not have access to the current sudo key", - "sudo key": "sudo key", - "Reassign": "Reassign", - "You will no longer have sudo access": "You will no longer have sudo access", - "submit the following change": "submit the following change", - "Submit Sudo": "Submit Sudo" -} diff --git a/packages/apps/public/locales/zh/app-tech-comm.json b/packages/apps/public/locales/zh/app-tech-comm.json deleted file mode 100644 index 9e26dfeeb6e6..000000000000 --- a/packages/apps/public/locales/zh/app-tech-comm.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/packages/apps/public/locales/zh/app-toolbox.json b/packages/apps/public/locales/zh/app-toolbox.json deleted file mode 100644 index cd2280cbdd1c..000000000000 --- a/packages/apps/public/locales/zh/app-toolbox.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "The input data to hash. This can be either specified as a hex value (0x-prefix) or as a string.": "The input data to hash. This can be either specified as a hex value (0x-prefix) or as a string.", - "from the following data": "from the following data", - "Detection on the input string to determine if it is hex or non-hex.": "Detection on the input string to determine if it is hex or non-hex.", - "hex input data": "hex input data", - "Yes": "Yes", - "No": "No", - "The blake2b 256-bit hash of the actual input data.": "The blake2b 256-bit hash of the actual input data.", - "the resulting hash is": "the resulting hash is", - "RPC calls": "RPC calls", - "Hash data": "Hash data", - "Sign message": "Sign message", - "Verify signature": "Verify signature", - "sign data from account": "sign data from account", - "with an index of": "with an index of", - "The actual JSONRPC module and function to make a call to.": "The actual JSONRPC module and function to make a call to.", - "call the selected endpoint": "call the selected endpoint", - "Submit RPC call": "Submit RPC call", - "select the account you wish to sign data with": "select the account you wish to sign data with", - "account": "account", - "The input data to sign. This can be either specified as a hex value (0x-prefix) or as a string.": "The input data to sign. This can be either specified as a hex value (0x-prefix) or as a string.", - "sign the following data": "sign the following data", - "The resulting signature of the input data, as done with the crypto algorithm from the account. (This could be non-deterministic for some types such as sr25519).": "The resulting signature of the input data, as done with the crypto algorithm from the account. (This could be non-deterministic for some types such as sr25519).", - "signature of supplied data": "signature of supplied data", - "You need to unlock this account to be able to sign data.": "You need to unlock this account to be able to sign data.", - "Unlock account": "Unlock account", - "Unlock": "Unlock", - "You are about to unlock your account to allow for the signing of messages. Once active the signature will be generated based on the content provided.": "You are about to unlock your account to allow for the signing of messages. Once active the signature will be generated based on the content provided.", - "The account's password specified at the creation of this account.": "The account's password specified at the creation of this account.", - "password": "password", - "Crypto not detected": "Crypto not detected", - "The account that signed the input": "The account that signed the input", - "verify using address": "verify using address", - "The data that was signed. This is used in combination with the signature for the verification. It can either be hex or a string.": "The data that was signed. This is used in combination with the signature for the verification. It can either be hex or a string.", - "using the following data": "using the following data", - "The signature as by the account being checked, supplied as a hex-formatted string.": "The signature as by the account being checked, supplied as a hex-formatted string.", - "the supplied signature": "the supplied signature", - "Cryptography used to create this signature. It is auto-detected on valid signatures.": "Cryptography used to create this signature. It is auto-detected on valid signatures.", - "signature crypto type": "signature crypto type", - "This injected account cannot be used to sign data since the extension does not support raw signing.": "This injected account cannot be used to sign data since the extension does not support raw signing.", - "This external account cannot be used to sign data. Only Limited support is currently available for signing from any non-internal accounts.": "This external account cannot be used to sign data. Only Limited support is currently available for signing from any non-internal accounts." -} diff --git a/packages/apps/public/locales/zh/app-treasury.json b/packages/apps/public/locales/zh/app-treasury.json deleted file mode 100644 index 9985a5dfd3bb..000000000000 --- a/packages/apps/public/locales/zh/app-treasury.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Treasury overview": "财政概览", - "Approved": "赞成", - "No approved proposals": "没有赞成的提案", - "No pending proposals": "没有进行中的提案", - "Proposals": "提案", - "beneficiary": "beneficiary", - "The account to which the proposed balance will be transferred if approved": "The account to which the proposed balance will be transferred if approved", - "The amount that will be allocated from the treasury pot": "The amount that will be allocated from the treasury pot", - "value": "value", - "proposals": "提案", - "approved": "赞成", - "spend period": "spend period", - "available": "available", - "bond": "bond" -} diff --git a/packages/apps/public/locales/zh/apps-config.json b/packages/apps/public/locales/zh/apps-config.json deleted file mode 100644 index daaccbde764b..000000000000 --- a/packages/apps/public/locales/zh/apps-config.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "lng.detect": "默认浏览器语言 (自动检测)" -} diff --git a/packages/apps/public/locales/zh/apps-routing.json b/packages/apps/public/locales/zh/apps-routing.json deleted file mode 100644 index 28728dd7d8f5..000000000000 --- a/packages/apps/public/locales/zh/apps-routing.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "nav.accounts": "账户", - "nav.claims": "认领", - "nav.contracts": "合约", - "nav.council": "议会", - "nav.dashboard": "仪表盘", - "nav.democracy": "民主权利", - "nav.explorer": "浏览", - "nav.extrinsics": "交易", - "nav.generic-asset": "通用资产", - "nav.js": "javascript", - "nav.parachains": "平行链", - "nav.settings": "设置", - "nav.staking": "质押", - "nav.storage": "链状态", - "nav.sudo": "撤销", - "nav.tech-comm": "技术委员会", - "nav.toolbox": "工具箱", - "nav.transfer": "转账", - "nav.treasury": "财政" -} diff --git a/packages/apps/public/locales/zh/apps.json b/packages/apps/public/locales/zh/apps.json deleted file mode 100644 index 6cc58c355d5d..000000000000 --- a/packages/apps/public/locales/zh/apps.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "Waiting for API to be connected and ready.": "等待API连接成功。", - "transfer received": "转账接收成功", - "update on #{{index}}": "更新 #{{index}}", - "Select Network": "选择网络", - "You don't have any accounts. Some features are currently hidden and will only become available once you have accounts.": "你还没有账户. 很多功能对你隐藏了,赶紧添加一个账号试试.", - "Create an account now.": "马上创建账户.", - "Waiting for authorization from the extension. Please open the installed extension and approve or reject access.": "扩展等待认证. 打开已经安装的扩展同意或者拒绝他.", - "You are not connected to a node. Ensure that your node is running and that the Websocket endpoint is reachable.": "没有连接任何节点. 确保你的节点正在运行并且保证websocket终端可访问.", - "With the Firefox browser connecting to insecure WebSockets ({{wsUrl}}) will fail due to the browser not allowing localhost access from a secure site.": "用Firefox连接不安全的 WebSockets ({{wsUrl}}) 由于浏览器不允许从一个安全的站点访问本地服务, 可能访问失败.", - "You are connecting from a secure location to an insecure WebSocket ({{wsUrl}}). Due to browser mixed-content security policies this connection type is not allowed. Change the RPC service to a secure 'wss' endpoint.": "你正在从一个安全的连接访问不安全的 WebSocket ({{wsUrl}}). 由于浏览器最大安全策略这个连接将不被允许访问. 更改RPC服务到一个安全的 'wss' 终端.", - "Initializing connection": "正在初始化连接" -} diff --git a/packages/apps/public/locales/zh/index.json b/packages/apps/public/locales/zh/index.json new file mode 100644 index 000000000000..0637a088a01e --- /dev/null +++ b/packages/apps/public/locales/zh/index.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/packages/apps/public/locales/zh/react-api.json b/packages/apps/public/locales/zh/react-api.json deleted file mode 100644 index 0967ef424bce..000000000000 --- a/packages/apps/public/locales/zh/react-api.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/packages/apps/public/locales/zh/react-components.json b/packages/apps/public/locales/zh/react-components.json deleted file mode 100644 index cb8fd9d38ecf..000000000000 --- a/packages/apps/public/locales/zh/react-components.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "bonded": "抵押", - "transactions": "交易", - "type": "类型", - "unstake threshold": "取消抵押阈值", - "commission": "委员会", - "total": "总共", - "redeemable": "可赎回", - "unbonding": "解除抵押", - "session keys": "会话key", - "or": "或", - "extrinsic hash": "交易哈希", - "lifetime": "生命周期", - "tip": "提示", - "No items": "没有选项", - "only this network": "仅在这个网络", - "use on any network": "在任何网络使用", - "clipboard": "剪贴板", - "address copied": "地址已经复制", - "This operation does not remove the history of the account from the chain, nor any associated funds from the account. The forget operation only limits your access to the account on this browser.": "This operation does not remove the history of the account from the chain, nor any associated funds from the account. The forget operation only limits your access to the account on this browser.", - "You are about to remove this address from your address book. Once completed, should you need to access it again, you will have to re-add the address.": "You are about to remove this address from your address book. Once completed, should you need to access it again, you will have to re-add the address.", - "This operation does not remove the history of the account from the chain, nor any associated funds from the account. The forget operation only limits your access to the address on this browser.": "This operation does not remove the history of the account from the chain, nor any associated funds from the account. The forget operation only limits your access to the address on this browser.", - "You are about to remove this contract from your list of available contracts. Once completed, should you need to access it again, you will have to manually add the contract's address in the Instantiate tab.": "You are about to remove this contract from your list of available contracts. Once completed, should you need to access it again, you will have to manually add the contract's address in the Instantiate tab.", - "This operation does not remove the history of the contract from the chain, nor any associated funds from its account. The forget operation only limits your access to the contract on this browser.": "This operation does not remove the history of the contract from the chain, nor any associated funds from its account. The forget operation only limits your access to the contract on this browser.", - "Confirm account removal": "确定账户被移除", - "Confirm address removal": "确定地址被移除", - "Confirm contract removal": "确定合约被移除", - "Confirm code removal": "确定代码被移除", - "Cancel": "取消", - "Forget": "忘记", - "click to select or drag and drop the file here": "click to select or drag and drop the file here", - "{{name}} ({{size}} bytes)": "{{name}} ({{size}} bytes)", - "Positive number": "正数", - "Dismiss all notifications": "禁用所有通知", - "proposed by": "proposed by", - "beneficiary": "受益者", - "value": "值", - "bond": "抵押", - "Select the account to use for this action.": "Select the account to use for this action.", - "using my account": "正在使用我的账户", - "Submit": "提交", - "Select the account you wish to vote with. You can approve \"aye\" or deny \"nay\" the proposal.": "Select the account you wish to vote with. You can approve \"aye\" or deny \"nay\" the proposal.", - "Aye, I approve": "是, 我赞成", - "Nay, I do not approve": "否, 我反对", - "reserved": "保留", - "locked": "锁定", - "transferrable": "可转移", - "vested": "vested", - "session next": "session next", - "Submit signed extrinsic": "提交签名交易" -} diff --git a/packages/apps/public/locales/zh/react-hooks.json b/packages/apps/public/locales/zh/react-hooks.json deleted file mode 100644 index 0967ef424bce..000000000000 --- a/packages/apps/public/locales/zh/react-hooks.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/packages/apps/public/locales/zh/react-params.json b/packages/apps/public/locales/zh/react-params.json deleted file mode 100644 index 63bf806a666b..000000000000 --- a/packages/apps/public/locales/zh/react-params.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "{{count}} key/value pairs encoded for submission": "{{count}} key/value pairs encoded for submission", - "include option": "include option", - "exclude option": "exclude option", - "": "", - "Add item": "Add item", - "Remove item": "Remove item" -} diff --git a/packages/apps/public/locales/zh/react-query.json b/packages/apps/public/locales/zh/react-query.json deleted file mode 100644 index 0967ef424bce..000000000000 --- a/packages/apps/public/locales/zh/react-query.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/packages/apps/public/locales/zh/react-signer.json b/packages/apps/public/locales/zh/react-signer.json deleted file mode 100644 index abff3fab9120..000000000000 --- a/packages/apps/public/locales/zh/react-signer.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "The deposit is below the {{minimum}} minimum required for the proposal to be evaluated": "The deposit is below the {{minimum}} minimum required for the proposal to be evaluated", - "The deposit of {{deposit}} will be reserved until the proposal is completed": "The deposit of {{deposit}} will be reserved until the proposal is completed", - "The final recipient balance is less or equal to {{existentialDeposit}} (the existential amount) and will not be reflected": "The final recipient balance is less or equal to {{existentialDeposit}} (the existential amount) and will not be reflected", - "A fee of {{creationFee}} will be deducted from the sender since the destination account does not exist": "A fee of {{creationFee}} will be deducted from the sender since the destination account does not exist", - "Scan Signature Qr": "Scan Signature Qr", - "Submit (no signature)": "Submit (no signature)", - "Sign via {{hardwareType}}": "Sign via {{hardwareType}}", - "Sign via Qr": "Sign via Qr", - "Sign and Submit": "Sign and Submit", - "Add a tip to this extrinsic, paying the block author for greater priority": "Add a tip to this extrinsic, paying the block author for greater priority", - "Tip (optional)": "Tip (optional)", - "sending from my account": "sending from my account", - "unlock account with password": "unlock account with password", - "Include an optional tip for faster processing": "Include an optional tip for faster processing", - "Do not include a tip for the block author": "Do not include a tip for the block author" -} diff --git a/packages/apps/public/locales/zh/translation.json b/packages/apps/public/locales/zh/translation.json new file mode 100644 index 000000000000..f119657ea757 --- /dev/null +++ b/packages/apps/public/locales/zh/translation.json @@ -0,0 +1,361 @@ +{ + "//hard/soft": "//硬/软", + "//hard/soft///password": "//硬/软///密码", + "1. Select your {{chain}} account": "1. 选择你的 {{chain}} 账户", + "2. Sign ETH transaction": "2. 签名 ETH 交易", + "A deployed contract that has either been deployed or attached. The address and ABI are used to construct the parameters.": "已经部署的合约要么是附加的要么是部署的. 地址和ABI用于构造参数.", + "ABI": "ABI", + "Accounts injected from any of these extensions will appear in this application and be available for use. The above list is updated as more extensions with external signing capability become available.": "从这些扩展程序中的任何一个注入的帐户都将出现在此应用程序中并可供使用。 随着更多具有外部签名功能的扩展可用,上面列表将会自动更新.", + "Add account": "添加账号", + "Add account via Qr": "通过二维码添加账户", + "Add an account via seed": "使用种子创建账号", + "Add an address": "添加一个地址", + "Add an existing code hash": "添加一个已经存在的代码哈希", + "Add an existing contract": "添加一个已存在的合约", + "Add contact": "添加联系人", + "Add via Qr": "二维码添加", + "Add via backup file": "通过备份文件添加", + "Additional types as a JSON file (or edit below)": "附加类型为一个JSON文件(或者在下面编辑)", + "Address Prefix": "地址前缀", + "Advanced creation options": "高级创建选项", + "Amount to add to the currently bonded funds. This is adjusted using the available funds on the account.": "当前抵押金额的总量. 使用帐户中的可用资金进行调整.", + "An encrypted backup file will be created once you have pressed the \"Download\" button. This can be used to re-import your account on any other machine.": "一个加密的备份文件将会被创建 一旦你按下 \"下载\" 按钮. 这将会在你用另外一台设备重新导入账户时使用", + "Approved": "赞成", + "Aura": "Aura", + "Aye, I approve": "是, 我赞成", + "Babe": "Babe", + "Backup account": "备份账户", + "Block details": "区块详情", + "Bond": "Bond", + "Bond more": "抵押更多", + "Bond more funds": "抵押更多资金", + "Call": "调用", + "Call a contract": "调用一个合约", + "Call a method on this contract": "在合约上调用一个方法", + "Call results": "调用结果", + "Cancel": "取消", + "Chain info": "链信息", + "Chain specifications": "生成含网络参数的二维码", + "Change": "更改", + "Change account password": "更改账户密码", + "Change controller account": "更改控制账户", + "Change this account's password": "更改账户密码", + "Clear all": "清空所有", + "Color": "颜色", + "Confirm ABI removal": "确认 ABI 清除", + "Confirm account removal": "确定账户被移除", + "Confirm address removal": "确定地址被移除", + "Confirm claim": "确定认领", + "Confirm code removal": "确定代码被移除", + "Confirm contract removal": "确定合约被移除", + "Continue": "继续", + "Copy the above string and sign an Ethereum transaction with the account you used during the pre-sale in the wallet of your choice, using the string as the payload, and then paste the transaction signature object below": "在钱包中选择预售阶段你使用的以太坊账户,复制上面的字符串,并且使用你的以太坊账户把字符串作为内容签名交易, 并且粘贴交易签名对象到下面", + "Council overview": "议会概览", + "Create": "创建", + "Create a backup file for this account": "给这个账号创建一个备份文件", + "Create an account now.": "马上创建账户.", + "Create and backup account": "创建并且备份账户", + "Decimals": "小数", + "Decimals decides the smallest unit of the token, which is 1/10^decimals": "小数代表每一单位token最小可以精确到多少位小数", + "Deploy": "部署", + "Deploy a code hash": "部署一个代码哈希", + "Deploy this code hash as a smart contract": "将此代码哈希部署为智能合约", + "Determines what cryptography will be used to create this account. Note that to validate on Polkadot, the session account must use \"ed25519\".": "确定将使用哪种加密方法创建此帐户. 注意,要在Polkadot上进行验证, 会话账户必须使用 \"ed25519\".", + "Developer": "开发者", + "Development": "开发", + "Dismiss all notifications": "禁用所有通知", + "Download": "下载", + "Evaluated {{count}} keys in {{elapsed}}s ({{avg}} keys/s)": "在 {{elapsed}}秒, 生成 {{count}} 个 key (平均{{avg}} keys/秒)", + "Extensions": "浏览器插件", + "Forget": "忘记", + "Forget this account": "删除这个账号", + "Forget this address": "忘记这个地址", + "Forget this code hash": "忘记这个代码哈希", + "Forget this contract": "忘记该合约", + "Forks": "(Forks)分叉", + "General": "通用", + "Genesis Hash": "创世区块哈希", + "Genesis Hash refers to initial state of the chain, it cannot be changed once the chain is launched": "创世区块哈希代表网络的初始状态,在网络启动后不可改变", + "Grandpa": "Grandpa", + "I'm Online": "我在线", + "Important notice": "重要提示", + "Initializing connection": "正在初始化连接", + "It is recommended that you create/store your accounts securely and externally from the app. On {{yourBrowser}} the following browser extensions are available for use -": "强烈建议你安全的创建/存储你的账户并且放在应用外部. 在 {{yourBrowser}} 下面的的浏览器扩展可用 -", + "Learn more...": "了解更多...", + "Make Transfer": "添加交易", + "Manage your connection to Ledger S": "管理你的连接到 Ledger S", + "Messages": "消息", + "Mnemonic": "助记词", + "Motions ({{count}})": "Motions ({{count}})", + "My accounts": "我的账户", + "My contacts": "我的账户", + "Name given to this account. You can change it at any point in the future.": "给该账户命名. 将来你可以随时更改.", + "Name given to this account. You can edit it. To use the account to validate or nominate, it is a good practice to append the function of the account in the name, e.g \"name_you_want - stash\".": "给该账户命名,你可以随时编辑,使用帐户进行验证或提名, 最好的做法是在该账户名后面附加上账户的功能, 例如 \"账户名 - 暂存\".", + "Name of the network. It only for display purpose.": "网络名称,仅作为显示用", + "Nay, I do not approve": "否, 我反对", + "Network Name": "网络名称", + "No approved proposals": "没有赞成的提案", + "No candidates found": "没有候选人", + "No code hashes available": "没有代码哈希可用", + "No contracts available": "没有合约可用", + "No council motions": "没有议会议案", + "No events available": "没有事件可用", + "No items": "没有选项", + "No members found": "没有成员", + "No pending extrinsics are in the queue": "队列中没有等待的交易", + "No pending proposals": "没有进行中的提案", + "No runners up found": "No runners up found", + "No upgradable extensions found": "没有需要升级的浏览器插件", + "Node info": "节点信息", + "Nominate": "提名", + "Override the default identity icon display with a specific theme": "用一个指定主题重来载默认的身份图标显示", + "Override the default ss58 prefix for address generation": "生成地址时重载 ss58 前缀", + "Parachains": "平行链", + "Paste here the address of the contact you want to add to your address book.": "把你想要添加到地址簿的联系人地址粘贴到这里.", + "Please make sure to save this file in a secure location as it is required, together with your password, to restore your account.": "请确保将此文件和你的秘密保存在安全的位置,因为它是必需的, 恢复账户使用.", + "Positive number": "正数", + "Positive number between 1 and {{memberCount}}": "整数在1和{{memberCount}}之间", + "Prefix indicates the ss58 address format in this network, it is a number between 0 ~ 255 that describes the precise format of the bytes of the address": "地址前缀用0~255的数来来表示SS58地址的编码格式", + "Proposals": "提案", + "Propose a council motion": "提出一个一会议案", + "Query Ledger": "查询账本", + "Random": "随机生成颜色", + "Raw seed": "原始种子", + "Redeem": "赎回", + "Remove": "移除", + "Reset": "重置", + "Restore": "恢复", + "Restore JSON": "使用JSON恢复", + "Save": "保存", + "Save & Reload": "保存并重载", + "Save this backup file in a secure location. Additionally, the password associated with this account is needed together with this backup file in order to restore your account.": "把这个安全文件保存到一个安全的位置. 另外, 与此帐户关联的密码以及此备份文件需要一起才能还原您的帐户.", + "Search for": "搜索", + "Select Network": "选择网络", + "Select a contact or paste the address you want to send funds to.": "选择一个联系人或者粘贴一个你想要发送资金的地址.", + "Select example": "选择实例", + "Select the JSON key file that was downloaded when you created the account. This JSON file contains your private key encrypted with your password.": "选择创建帐户时下载的JSON密钥文件。 此JSON文件包含使用密码加密的私钥.", + "Select the remote endpoint, either from the dropdown on manual entered via the custom toggle": "选择远程终端,或者通过自定义切换输入的手动下拉菜单中的任意一个", + "Send funds": "发送资金", + "Send funds from this account": "从这个账号里面发送资金", + "Send funds to this address": "发送资金到这个地址", + "Set Session Key": "设置会话key", + "Should the search be case sensitive, e.g if you select \"no\" your search for \"Some\" may return addresses containing \"somE\" or \"sOme\"...": "搜索是否大小写敏感, 例如: 如果你选择 \"否\" 你搜索 \"Dsy\" 返回的地址可能包括 \"dsY\" 或者 \"DSy\"...", + "Specify the user account to use for this contract call. And fees will be deducted from this account.": "指定用于此合约调用的用户帐户。费用将从该帐户中扣除.", + "Specify the user account to use for this deployment. And fees will be deducted from this account.": "指定用于部署的用户帐户。 费用将从该帐户中扣除.", + "Start generation": "开始生成", + "Stop": "停止", + "Stop generation": "停止生成", + "Submit": "提交", + "Submit candidacy": "提交候选人", + "Submit key": "提交key", + "Submit signed extrinsic": "提交签名交易", + "Submit your council candidacy": "提交你的一会候选人", + "The account password as specified when creating the account. This is used to encrypt the backup file and subsequently decrypt it when restoring the account.": "创建账户的时候密码需要被指定 用来加密备份文件并且恢复账户的时候用来解密.", + "The account you want to claim to.": "你想要认领的账户.", + "The account you will send funds from.": "从哪个账户发送资金.", + "The address for the deployed contract instance.": "部署合同实例的地址.", + "The allotted endowment for this contract, i.e. the amount transferred to the contract upon instantiation.": "分配给这个合约的捐赠, 即 the amount transferred to the contract upon instantiation.", + "The allotted value for this contract, i.e. the amount transferred to the contract as part of this call.": "此合约的分配值,即转移给合约的总量作为调用的一部分.", + "The code hash for the on-chain deployed code.": "链上部署代码的哈希.", + "The code is not recognized as being in valid WASM format": "该代码未被识别为有效的WASM格式", + "The codeHash is not a valid hex hash": "codeHash不是有效的十六进制哈希", + "The color used to distinguish this network with others, use color code with 3 or 6 digits, like \"#FFF\" or \"#111111\"": "颜色用来和其他网络相区别,用3位或者6位的16进制码表示,比如#FFF或#111111", + "The compiled WASM for the contract that you wish to deploy. Each unique code blob will be attached with a code hash that can be used to create new instances.": "您希望部署的合约已编译为WASM. 每个唯一的代码blob都将附加一个代码哈希,可用于创建新实例", + "The deployment constructor information for this contract, as provided by the ABI.": "由ABI提供的此合约的部署构造函数信息.", + "The existing account password as specified when this account was created or when it was last changed.": "当账户被创建或者最后一个被修改的时候需要给已存在的账号指定密码.", + "The maximum amount of gas that can be used by this call. If the code requires more, the call will fail.": "用于调用使用gas的最大量. 如果超过这个量将会调用失败.", + "The maximum amount of gas that can be used by this deployment, if the code requires more, the deployment will fail.": "此部署可以使用gas的最大量,如果代码需要更多gas,部署将失败.", + "The message to send to this contract. Parameters are adjusted based on the ABI provided.": "发送给合约的消息. 根据提供的ABI调整参数.", + "The minimum number of council votes required to approve this motion": "The minimum number of council votes required to approve this motion", + "The new account password. Once set, all future account unlocks will be performed with this new password.": "新账户的密码. 一旦设置, 后面所有账号解锁都将使用新的密码.", + "The password to unlock the selected account.": "密码用来解锁当前选择的账户.", + "The private key for your account is derived from this seed. This seed must be kept secret as anyone in its possession has access to the funds of this account. If you validate, use the seed of the session account as the \"--key\" parameter of your node.": "你的账户的私钥是从这个种子派生出来的. 该种子必须保密,因为其拥有的任何人都可以使用此帐户的资金. 如果你验证过了, 你的节点使用会话账户的种子作为 \"--key\" 参数.", + "The selected account to perform the derivation on.": "选择的账号正在执行派生.", + "The value is not in a valid address format": "该值的地址格式无效", + "This is not a valid JSON object.": "不是一个有效的JSON对象.", + "This operation does not impact the associated on-chain code or any of its contracts.": "This operation does not impact the associated on-chain code or any of its contracts.", + "This password is used to encrypt your private key. It must be strong and unique! You will need it to sign transactions with this account. You can recover this account using this password together with the backup file (generated in the next step).": "这个秘密用来加密你的私钥. 必须健壮唯一! 你将会和你的账号一起用来签名交易. 你可以用你的密码和你的备份账号一起来恢复你账户 (下一步生成的).", + "This will apply to any future use of this account as stored on this browser. Ensure that you securely store this new password and that it is strong and unique to the account.": "此帐户在浏览器中存储以供将来使用。 确保您安全地存储了新密码,该密码是该帐户的唯一密码.", + "Treasury overview": "财政概览", + "Type here what you would like your address to contain. This tool will generate the keys and show the associated addresses that best match your search. You can use \"?\" as a wildcard for a character.": "在此处输入您希望包含的地址。 该工具将生成密钥并显示与您的搜索最匹配的关联地址. 你可以使用 \"?\" 最为通配符.", + "Type the amount you want to transfer. Note that you can select the unit on the right e.g sending 1 milli is equivalent to sending 0.001.": "输入你要发送的总量. 注意 你可以从右边选择单位 例如 发送 1 milli 相当于发送 0.001.", + "Type the name of your contact. This name will be used across all the apps. It can be edited later on.": "输入联系人的名字. 这个名字在整个app内可用. 稍后课编辑.", + "Type the password chosen at the account creation. It was used to encrypt your account's private key in the backup file.": "输入在创建帐户时选择的密码。 它用于加密备份文件中帐户的私钥。", + "Unable to find deployed contract code at the specified address": "在指定的地址找不到部署的合约代码", + "Unable to find on-chain WASM code for the supplied codeHash": "找不到所提供codeHash的链上WASM代码 ", + "Unbond": "解除抵押", + "Unbond funds": "解除抵押资金", + "Unit": "单位", + "Unit decides the name of 1 unit token, e.g. \"DOT\" for Polkadot": "每一个token的单位,比如Polkadot的单位是DOT", + "Unlock": "解锁", + "Update metadata": "升级Metadata", + "Upload": "上传", + "Upload WASM": "上传 WASM", + "Validate": "验证", + "Vanity generator": "地址美化", + "Vote": "投票", + "Vote for current candidates": "给当前候选人投票", + "Waiting for API to be connected and ready.": "等待API连接成功。", + "Waiting for authorization from the extension. Please open the installed extension and approve or reject access.": "扩展等待认证. 打开已经安装的扩展同意或者拒绝他.", + "We will provide you with a generated backup file after your account is created. As long as you have access to your account you can always download this file later by clicking on \"Backup\" button from the Accounts section.": "创建帐户后,我们将为您提供一个生成的备份文件。 只要您有权访问帐户,以后就可以通过单击\"帐户\"中的\"备份\"按钮来下载此文件.", + "With the Firefox browser connecting to insecure WebSockets ({{wsUrl}}) will fail due to the browser not allowing localhost access from a secure site.": "用Firefox连接不安全的 WebSockets ({{wsUrl}}) 由于浏览器不允许从一个安全的站点访问本地服务, 可能访问失败.", + "You are connecting from a secure location to an insecure WebSocket ({{wsUrl}}). Due to browser mixed-content security policies this connection type is not allowed. Change the RPC service to a secure 'wss' endpoint.": "你正在从一个安全的连接访问不安全的 WebSocket ({{wsUrl}}). 由于浏览器最大安全策略这个连接将不被允许访问. 更改RPC服务到一个安全的 'wss' 终端.", + "You are not connected to a node. Ensure that your node is running and that the Websocket endpoint is reachable.": "没有连接任何节点. 确保你的节点正在运行并且保证websocket终端可访问.", + "You are using an ABI with an outdated format. Please generate a new one.": "你正在使用的ABI格式已过期. 请生成一个新的.", + "You can set a custom derivation path for this account using the following syntax \"//////\". The \"/\" and \"//\" may be repeated and mixed`. The \"///password\" is optional and should only occur once.": "你可以对该账户自定义派生路径根据下面的语法 \"//////<密码>\". \"/\" 和 \"//\" 可以重复和混合`. \"///密码\" 是可选的只能出现一次.", + "You don't have any accounts. Some features are currently hidden and will only become available once you have accounts.": "你还没有账户. 很多功能对你隐藏了,赶紧添加一个账号试试.", + "Your Ethereum account": "你的以太坊账户", + "Your custom types have been added": "你的自定义类型被添加了", + "account forgotten": "账号忘记了", + "account restored": "账户已恢复", + "additional bonded funds": "附加抵押更多资金", + "address": "地址", + "address copied": "地址已经复制", + "address created": "地址被创建了", + "address edited": "地址被编辑了", + "address forgotten": "地址忘记了", + "address prefix": "地址前缀", + "amount": "总量", + "approved": "赞成", + "backing": "backing", + "backup file": "备份文件", + "beneficiary": "受益者", + "best": "最好", + "best #": "最好 #", + "best hash": "最好哈希", + "block hash or number to query": "区块哈希或查询号", + "blocks": "区块", + "bond": "抵押", + "bonded": "抵押", + "call from account": "从账户调用", + "candidates": "候选人", + "case sensitive": "大小写敏感", + "claim to account": "认领到账户", + "click to copy": "点击复制", + "click to select or drag and drop a JSON ABI file": "点击选择或者拖拽一个JSON格式的ABI文件", + "clipboard": "剪贴板", + "code for this contract": "该合约的代码", + "code hash": "代码哈希", + "commission": "委员会", + "compiled contract WASM": "编译过的合约 WASM", + "connected peers": "连接的节点", + "contract address": "合约地址", + "contract to use": "要使用的合约", + "controller": "控制器", + "copied": "已经复制", + "created account": "账号已创建", + "crypto type to use": "使用的加密类型", + "custom endpoint": "自定义终端", + "default icon theme": "默认图标主题", + "default interface language": "默认接口语言", + "deploy": "部署", + "deployment account": "部署账户", + "deposit": "存入", + "derivation path": "派生路径", + "derive root account": "获取跟账户", + "development seed": "开发种子", + "does not appear to have a valid claim. Please double check that you have signed the transaction correctly on the correct ETH account.": "一个合法的认领没有出现. 请再次确认你签名的交易是否在正确的以太坊账户上.", + "endowment": "捐赠", + "epoch": "时期", + "era": "时代", + "events": "事件", + "execute": "执行", + "extrinsic hash": "交易哈希", + "extrinsics": "交易", + "finalized": "最终确定", + "forks": "(forks)分叉", + "generated public key": "生成的公钥", + "has a valid claim for": "有一个有效的声明", + "index": "索引", + "interface operation mode": "接口操作模式", + "invalid ABI file selected": "非法 ABI 文件被选择", + "key type to set": "设置key类型", + "keypair crypto type": "密钥对加密类型", + "last block": "最后的区块", + "lifetime": "生命周期", + "lng.detect": "默认浏览器语言 (自动检测)", + "locked": "锁定", + "logs": "日志", + "manage hardware connections": "管理硬件连接", + "maximum gas allowed": "允许的最大gas", + "members": "成员", + "message to send": "要发送的消息", + "mnemonic seed": "助记词", + "name": "名称", + "nav.accounts": "账户", + "nav.claims": "认领", + "nav.contracts": "合约", + "nav.council": "议会", + "nav.dashboard": "仪表盘", + "nav.democracy": "民主权利", + "nav.explorer": "浏览", + "nav.extrinsics": "交易", + "nav.generic-asset": "通用资产", + "nav.js": "javascript", + "nav.parachains": "平行链", + "nav.settings": "设置", + "nav.staking": "质押", + "nav.storage": "链状态", + "nav.sudo": "撤销", + "nav.tech-comm": "技术委员会", + "nav.toolbox": "工具箱", + "nav.transfer": "转账", + "nav.treasury": "财政", + "new account": "新建账户", + "new address": "新建地址", + "no": "否", + "no accounts yet, create or import an existing": "还没有账户, 创建或者导入一个已经存在的账户", + "no peers connected": "没有节点连接", + "no tags": "没有标签", + "only this network": "仅在这个网络", + "or": "或", + "our best": "我们最好的", + "password": "密码", + "peer best": "最好节点", + "pending extrinsics": "等待的交易", + "proposal": "提案", + "proposals": "提案", + "queued tx": "队列中的交易", + "recent blocks": "最新区块", + "recent events": "最新事件", + "redeemable": "可赎回", + "refresh in": "刷新", + "remote node/endpoint to connect to": "远程节点/终端连接到", + "reserved": "保留", + "role": "角色", + "runners up": "runners up", + "seats": "座位", + "secret derivation path": "加密派生路径", + "seed (hex or string)": "发送 (16进制 或 字符串)", + "send": "发送", + "send as RPC call": "作为RPC调用发送", + "send as transaction": "作为交易发送", + "send from account": "发送地址", + "send to address": "发送到的地址", + "session": "session", + "session keys": "会话key", + "stash account": "储值账户", + "syncing": "同步中", + "target": "目标", + "term progress": "term progress", + "threshold": "阀值", + "tip": "提示", + "total": "总共", + "total issuance": "总发行量", + "total peers": "节点总数", + "transactions": "交易", + "transfer received": "转账接收成功", + "transferrable": "可转移", + "type": "类型", + "unbonding": "解除抵押", + "unstake threshold": "取消抵押阈值", + "update on #{{index}}": "更新 #{{index}}", + "upgradable extensions": "升级浏览器插件", + "use on any network": "在任何网络使用", + "using my account": "正在使用我的账户", + "value": "值", + "voting round": "投票轮次", + "yes": "是", + "your current password": "你当前的密码", + "your new password": "你的新密码" +} \ No newline at end of file diff --git a/packages/apps/public/locales/zh/ui.json b/packages/apps/public/locales/zh/ui.json deleted file mode 100644 index f6182e308fb5..000000000000 --- a/packages/apps/public/locales/zh/ui.json +++ /dev/null @@ -1,714 +0,0 @@ -{ - "any text": "随便写", - "account forgotten": "", - "Forget this account": "", - "Create a backup file for this account": "", - "Change this account's password": "", - "send": "发送", - "Send funds from this account": "", - "It is recommended that you create/store your accounts securely and externally from the app. On {{yourBrowser}} the following browser extensions are available for use -": "", - "Accounts injected from any of these extensions will appear in this application and be available for use. The above list is updated as more extensions with external signing capability become available.": "", - "Learn more...": "", - "My accounts": "", - "Vanity address": "", - "Backup account": "", - "Cancel": "", - "Download": "", - "An encrypted backup file will be created once you have pressed the \"Download\" button. This can be used to re-import your account on any other machine.": "", - "Save this backup file in a secure location. Additionally, the password associated with this account is needed together with this backup file in order to restore your account.": "", - "The account password as specified when creating the account. This is used to encrypt the backup file and subsequently decrypt it when restoring the account.": "", - "password": "", - "account backed up": "", - "Change account password": "", - "Change": "", - "This will apply to any future use of this account as stored on this browser. Ensure that you securely store this new password and that it is strong and unique to the account.": "", - "The existing account password as specified when this account was created or when it was last changed.": "", - "your current password": "", - "The new account password. Once set, all future account unlocks will be performed with this new password.": "", - "your new password": "", - "password changed": "", - "created account": "", - "Add an account via seed": "", - "Name given to this account. You can edit it. To use the account to validate or nominate, it is a good practice to append the function of the account in the name, e.g \"name_you_want - stash\".": "", - "name": "", - "The private key for your account is derived from this seed. This seed must be kept secret as anyone in its possession has access to the funds of this account. If you validate, use the seed of the session account as the \"--key\" parameter of your node.": "", - "mnemonic seed": "", - "development seed": "", - "seed (hex or string)": "", - "Development": "", - "Mnemonic": "", - "Raw seed": "", - "This password is used to encrypt your private key. It must be strong and unique! You will need it to sign transactions with this account. You can recover this account using this password together with the backup file (generated in the next step).": "", - "Advanced creation options": "", - "Determines what cryptography will be used to create this account. Note that to validate on Polkadot, the session account must use \"ed25519\".": "", - "keypair crypto type": "", - "You can set a custom derivation path for this account using the following syntax \"///\". The \"/\" and \"//\" may be repeated and mixed`.": "", - "secret derivation path": "", - "Save": "", - "Important notice": "", - "We will provide you with a generated backup file after your account is created. As long as you have access to your account you can always download this file later by clicking on \"Backup\" button from the Accounts section.": "", - "Please make sure to save this file in a secure location as it is required, together with your password, to restore your account.": "", - "Create and backup account": "", - "Add via backup file": "", - "Restore": "", - "Select the JSON key file that was downloaded when you created the account. This JSON file contains your private key encrypted with your password.": "", - "backup file": "", - "Type the password chosen at the account creation. It was used to encrypt your account's private key in the backup file.": "", - "account restored": "", - "Add account via Qr": "", - "Name given to this account. You can change it at any point in the future.": "", - "Create": "", - "available ": "", - "Send funds": "", - "The account you will send funds from.": "", - "send from account": "", - "Select a contact or paste the address you want to send funds to.": "", - "send to address": "", - "Type the amount you want to transfer. Note that you can select the unit on the right e.g sending 1 milli is equivalent to sending 0.001.": "", - "amount": "", - "Make Transfer": "", - "Add account": "", - "Restore JSON": "", - "Add via Qr": "", - "Query Ledger": "", - "No account yet?": "", - "Stop generation": "", - "Start generation": "", - "Type here what you would like your address to contain. This tool will generate the keys and show the associated addresses that best match your search. You can use \"?\" as a wildcard for a character.": "", - "Search for": "", - "Should the search be case sensitive, e.g if you select \"no\" your search for \"Some\" may return addresses containing \"somE\" or \"sOme\"...": "", - "case sensitive": "", - "Evaluated {{count}} keys in {{elapsed}}s ({{avg}} keys/s)": "", - "address forgotten": "", - "Forget this address": "", - "deposit": "", - "Send funds to this address": "", - "My contacts": "", - "address edited": "", - "address created": "", - "Add an address": "", - "Paste here the address of the contact you want to add to your address book.": "", - "address": "", - "Type the name of your contact. This name will be used across all the apps. It can be edited later on.": "", - "Add contact": "", - "No contacts found.": "", - "Your Ethereum account": "", - "has a valid claim for": "", - "does not appear to have a valid claim. Please double check that you have signed the transaction correctly on the correct ETH account.": "", - "1. Select your {{chain}} account": "", - "The account you want to claim to.": "", - "claim to account": "", - "Continue": "", - "2. Sign ETH transaction": "", - "copied": "", - "click to copy": "", - "Copy the above string and sign an Ethereum transaction with the account you used during the pre-sale in the wallet of your choice, using the string as the payload, and then paste the transaction signature object below": "", - "Confirm claim": "", - "Redeem": "", - "invalid ABI file selected": "", - "click to select or drag and drop a JSON ABI file": "", - "You are using an ABI with an outdated format. Please generate a new one.": "", - "Add an existing code hash": "", - "The code hash for the on-chain deployed code.": "", - "code hash": "", - "ABI": "", - "Forget this code hash": "", - "deploy": "", - "Deploy this code hash as a smart contract": "", - "No code hashes available": "", - "Upload WASM": "", - "The compiled WASM for the contract that you wish to deploy. Each unique code blob will be attached with a code hash that can be used to create new instances.": "", - "compiled contract WASM": "", - "The code is not recognized as being in valid WASM format": "", - "Upload": "", - "Unable to find on-chain WASM code for the supplied codeHash": "", - "The codeHash is not a valid hex hash": "", - "Add an existing contract": "", - "The address for the deployed contract instance.": "", - "contract address": "", - "Call a contract": "", - "Specify the user account to use for this contract call. And fees will be deducted from this account.": "", - "call from account": "", - "A deployed contract that has either been deployed or attached. The address and ABI are used to construct the parameters.": "", - "contract to use": "", - "The message to send to this contract. Parameters are adjusted based on the ABI provided.": "", - "message to send": "", - "The allotted value for this contract, i.e. the amount transferred to the contract as part of this call.": "", - "value": "", - "The maximum amount of gas that can be used by this deployment, if the code requires more, the deployment will fail.": "", - "maximum gas allowed": "", - "Call": "", - "Messages": "", - "Forget this contract": "", - "execute": "", - "Call a method on this contract": "", - "No contracts available": "", - "Deploy a code hash": "", - "Unable to find deployed contract code at the specified address": "", - "The value is not in a valid address format": "", - "The contract WASM previously deployed. Internally this is identified by the hash of the code, as either created or attached.": "", - "code for this contract": "", - "The deployment constructor information for this contract, as provided by the ABI.": "", - "The allotted endowment for this contract, i.e. the amount transferred to the contract upon instantiation.": "", - "endowment": "", - "Deploy": "", - "Specify the user account to use for this deployment. And fees will be deducted from this account.": "", - "deployment account": "", - "Confirm ABI removal": "", - "You are about to remove this code's ABI. Once completed, should you need to access it again, you will have to manually re-upload it.": "", - "This operation does not impact the associated on-chain code or any of its contracts.": "", - "Remove": "", - "Council overview": "", - "Motions": "", - "No council motions": "", - "ayes ({{ayes}}/{{threshold}} to approve)": "", - "Aye": "", - "nays ({{nays}})": "", - "Nay": "", - "Propose a council motion": "", - "threshold": "", - "The minimum number of council votes required to approve this motion": "", - "Positive number between 1 and {{memberCount}}": "", - "proposal": "", - "candidate": "", - "active until": "", - "council member": "", - "No members found": "", - "members": "", - "candidates": "", - "Submit your council candidacy": "", - "Candidate account": "", - "This account will be nominated to fill the council slot you specify.": "", - "Submit candidacy": "", - "seats": "", - "voting round": "", - "term duration": "", - "Vote for current candidates": "", - "Voting account": "", - "This account will be use to approve or disapprove each candidate.": "", - "Vote": "", - "You have already voted in this round": "", - "Retract vote": "", - "No vote": "", - "Democracy overview": "", - "depositors": "", - "balance": "", - "No available proposals": "", - "proposals": "", - "Submit proposal": "", - "propose": "", - "The amount that will be bonded to submit the proposal": "", - "ending at": "", - "block #{{blockNumber}}, {{remaining}} blocks remaining": "", - "activate at (if passed)": "", - "block #{{blockNumber}}": "", - "vote threshold": "", - "No available referendums": "", - "referendum": "", - "Second proposal": "", - "Select the account you wish to second with. This will lock your funds until the proposal is either approved or rejected": "", - "second with account": "", - "Second": "", - "referenda": "", - "active": "", - "launch period": "", - "Vote on proposal": "", - "Select the account you wish to vote with. You can approve \"aye\" or deny \"nay\" the proposal.": "", - "vote with account": "", - "Select your vote preferences for this proposal, either to approve or disapprove": "", - "record my vote as": "", - "Aye, I approve": "", - "Nay, I do not approve": "", - "events": "", - "index": "", - "Details": "", - "mortal, valid from #{{startAt}} to #{{endsAt}}": "", - "mortal": "", - "immortal": "", - "No pending extrinsics are in the queue": "", - "extrinsics": "", - "logs": "", - "no events available": "", - "blocks": "", - "forks": "", - "Chain info": "", - "Block details": "", - "Forks": "", - "Node info": "", - "recent blocks": "", - "recent events": "", - "pending extrinsics": "", - "connected peers": "", - "role": "", - "peer id": "", - "best #": "", - "best hash": "", - "no peers connected": "", - "refresh in": "", - "total peers": "", - "syncing": "", - "yes": "", - "no": "", - "queued tx": "", - "peer best": "", - "our best": "", - "block hash or number to query": "", - "last block": "", - "target": "", - "total issuance": "", - "finalized": "", - "best": "", - "epoch": "", - "session": "", - "era": "", - "Extrinsic submission": "", - "using the selected account": "", - "with an account balance": "", - "with a transaction nonce": "", - "submit the following extrinsic": "", - "Submit Unsigned": "", - "Submit Transaction": "", - "Forget this asset": "", - "Asset ID": "", - "Register Asset": "", - "No assets found.": "", - "Assets": "", - "Transfer": "", - "Register an Asset": "", - "Enter the Asset ID of the token you want to manage.": "", - "asset id": "", - "Type the name of this Asset. This name will be used across all the apps. It can be edited later on.": "", - "Register": "", - "Enter the Asset ID of the token you want to transfer.": "", - "Generate link to share code example": "", - "Copied to clipboard": "", - "Delete this custom example": "", - "Name your example": "", - "Save snippet to local storage": "", - "Select example": "", - "Parachains overview": "", - "the last heads of this parachain": "", - "heads": "", - "": "", - "the relay dispatch queue size": "", - "relay queue": "", - "no deployed parachains": "", - "parachains": "", - "next id": "", - "This is not a valid JSON object.": "", - "Your custom types have been added": "", - "Save the type definitions for your custom structures as key-value pairs in a valid JSON file. The key should be the name of your custom structure and the value an object containing your type definitions.": "", - "Additional types as a JSON file (or edit below)": "", - "Reset": "", - "Override the default ss58 prefix for address generation": "", - "address prefix": "", - "Override the default identity icon display with a specific theme": "", - "default icon theme": "", - "Adjust the mode from basic (with a limited number of beginner-user-friendly apps) to full (with all basic & advanced apps available)": "", - "interface operation mode": "", - "Manage your connection to Ledger S": "", - "manage hardware connections": "", - "default interface language": "", - "Save & Reload": "", - "General": "", - "Developer": "", - "Select the remote endpoint, either from the dropdown on manual entered via the custom toggle": "", - "remote node/endpoint to connect to": "", - "custom endpoint": "", - "Bond more": "", - "Bond more funds": "", - "stash account": "", - "Amount to add to the currently bonded funds. This is adjusted using the available funds on the account.": "", - "additional bonded funds": "", - "stash": "", - "nominating": "", - "controller": "", - "Stop Nominating": "", - "Stop Validating": "", - "Set Session Key": "", - "Validate": "", - "Nominate": "", - "Unbond funds": "", - "Change controller account": "", - "Change reward destination": "", - "Change validator preferences": "", - "Rotate session keys": "", - "Change session account": "", - "Change nominee(s)": "", - "Inject session keys (advanced)": "", - "ed25519, Edwards": "", - "sr15519, Schnorrkel": "", - "Inject Keys": "", - "suri (seed & derivation)": "", - "key type to set": "", - "Aura": "", - "Babe": "", - "Grandpa": "", - "I'm Online": "", - "Parachains": "", - "crypto type to use": "", - "generated public key": "", - "This operation will submit the seed via an RPC call. Do not perform this operation on a public RPC node, but ensure that the node is local, connected to your validator and secure.": "", - "Submit key": "", - "A controller account should not map to another stash. This selected controller is a stash, controlled by {{bondedId}}": "", - "A controller account should not be set to manages multiple stashes. The selected controller is already controlling {{stashId}}": "", - "For fund security, your session key should not match your stash key.": "", - "The Threshold must be a positive number": "", - "The Threshold must lower than 11": "", - "Nominate Validators": "", - "controller account": "", - "Stash accounts that are to be nominated. Block rewards are split between validators and nominators. Only 16 nominees will be taken into account.": "", - "nominate the following addresses": "", - "select accounts(s) nominate": "", - "Warning - Changing the controller while validating will modify the associated session account. It is advised to stop validating before changing the controller account.": "", - "The controller is the account that will be used to control any nominating or validating actions. Should not match another stash or controller.": "", - "Set controller": "", - "Set reward destination": "", - "Bonding Preferences": "", - "The controller is the account that is be used to control any nominating or validating actions. I will sign this transaction.": "", - "The destination account for any payments as either a nominator or validator": "", - "payment destination": "", - "Changing the key only takes effect at the start of the next session. The input here is generates from the author_rotateKeys command": "", - "Keys from rotateKeys": "", - "Changing the key only takes effect at the start of the next session. If validating, it must be an ed25519 key.": "", - "Session key (ed25519)": "", - "Unbond": "", - "The amount of funds to unbond, this is adjusted using the bonded funds on the stash account.": "", - "unbond amount": "", - "Set validator preferences": "", - "The number of time this validator can get slashed before being automatically unstaked (maximum of 10 allowed)": "", - "automatic unstake threshold": "", - "Amount taken up-front from the reward by the validator before splitting the remainder between themselves and the nominators": "", - "reward commission": "", - "New stake": "", - "No funds staked yet.": "", - "The total amount of the stash balance that will be at stake in any forthcoming rounds (should be less than the total amount available)": "", - "value bonded": "", - "Bond": "", - "Staking overview": "", - "Account actions": "", - "Nominators ({{count}})": "", - "Show all validators and intentions": "", - "Show only my nominations": "", - "Show only with nominators": "", - "Show only without nominators": "", - "Show only with warnings": "", - "Show only without warnings": "", - "No addresses found": "", - "validators": "", - "validator": "", - "next up": "", - "intention": "", - "waiting": "", - "selected constant query": "", - "Storage": "", - "Constants": "", - "Raw storage": "", - "selected state query": "", - "hex-encoded storage key": "", - "Sudo access": "", - "Set sudo key": "", - "You do not have access to the current sudo key": "", - "sudo key": "", - "Reassign": "", - "You will no longer have sudo access": "", - "submit the following change": "", - "Submit Sudo": "", - "The input data to hash. This can be either specified as a hex value (0x-prefix) or as a string.": "", - "from the following data": "", - "Detection on the input string to determine if it is hex or non-hex.": "", - "hex input data": "", - "Yes": "", - "No": "", - "The blake2b 256-bit hash of the actual input data.": "", - "the resulting hash is": "", - "RPC calls": "", - "Hash data": "", - "Sign message": "", - "Verify signature": "", - "sign data from account": "", - "with an index of": "", - "The actual JSONRPC module and function to make a call to.": "", - "call the selected endpoint": "", - "Submit RPC call": "", - "select the account you wish to sign data with": "", - "account": "", - "The input data to sign. This can be either specified as a hex value (0x-prefix) or as a string.": "", - "sign the following data": "", - "The resulting signature of the input data, as done with the crypto algorithm from the account. (This could be non-deterministic for some types such as sr25519).": "", - "signature of supplied data": "", - "You need to unlock this account to be able to sign data.": "", - "Unlock account": "", - "Unlock": "", - "You are about to unlock your account to allow for the signing of messages. Once active the signature will be generated based on the content provided.": "", - "The account's password specified at the creation of this account.": "", - "Crypto not detected": "", - "The account that signed the input": "", - "verify using address": "", - "The data that was signed. This is used in combination with the signature for the verification. It can either be hex or a string.": "", - "using the following data": "", - "The signature as by the account being checked, supplied as a hex-formatted string.": "", - "the supplied signature": "", - "Cryptography used to create this signature. It is auto-detected on valid signatures.": "", - "signature crypto type": "", - "Treasury overview": "", - "Edit settings": "", - "Approve or reject proposal": "", - "Respond": "", - "Propose a majority council motion to either approve or reject this spend proposal": "", - "proposed council action": "", - "Approved": "", - "No approved proposals": "", - "No pending proposals": "", - "Proposals": "", - "Submit a spend proposal": "", - "beneficiary": "", - "The account to which the proposed balance will be transferred if approved": "", - "The amount that will be allocated from the treasury pot": "", - "approved": "", - "pot": "", - "using my account": "", - "The account used to change your settings": "", - "configuration": "", - "Proposal bond": "", - "proposal bond": "", - "Proposal bond minimum": "", - "proposal bond minimum": "", - "Spend period": "", - "spend period": "", - "Burn percentage": "", - "burn percentage": "", - "Submit": "", - "Pot": "", - "pot size": "", - "Waiting for API to be connected and ready.": "", - "transfer received": "", - "update on #{{index}}": "", - "Select Network": "", - "You don't have any accounts. Some features are currently hidden and will only become available once you have accounts.": "", - "Create an account now.": "", - "Waiting for authorization from the extension. Please open the installed extension and approve or reject access.": "", - "You are not connected to a node. Ensure that your node is running and that the Websocket endpoint is reachable.": "", - "With the Firefox browser connecting to insecure WebSockets ({{wsUrl}}) will fail due to the browser not allowing localhost access from a secure site.": "", - "You are connecting from a secure location to an insecure WebSocket ({{wsUrl}}). Due to browser mixed-content security policies this connection type is not allowed. Change the RPC service to a secure 'wss' endpoint.": "", - "bonded": "", - "transactions": "", - "type": "", - "{{value}}, {{remaining}} blocks left": "", - "unstake threshold": "", - "commission": "", - "total": "", - "available": "", - "redeemable": "", - "Redeem these funds": "", - "unbonding": "", - "session keys": "", - "reward destination": "", - "or": "", - "extrinsic hash": "", - "lifetime": "", - "tip": "", - "No items": "", - "only this network": "", - "use on any network": "", - "clipboard": "", - "address copied": "", - "You are about to remove this account from your list of available accounts. Once completed, should you need to access it again, you will have to re-create the account either via seed or via a backup file.": "", - "This operation does not remove the history of the account from the chain, nor any associated funds from the account. The forget operation only limits your access to the account on this browser.": "", - "You are about to remove this address from your address book. Once completed, should you need to access it again, you will have to re-add the address.": "", - "This operation does not remove the history of the account from the chain, nor any associated funds from the account. The forget operation only limits your access to the address on this browser.": "", - "You are about to remove this contract from your list of available contracts. Once completed, should you need to access it again, you will have to manually add the contract's address in the Instantiate tab.": "", - "This operation does not remove the history of the contract from the chain, nor any associated funds from its account. The forget operation only limits your access to the contract on this browser.": "", - "You are about to remove this code from your list of available code hashes. Once completed, should you need to access it again, you will have to manually add the code hash again.": "", - "This operation does not remove the uploaded code WASM and ABI from the chain, nor any deployed contracts. The forget operation only limits your access to the code on this browser.": "", - "Confirm account removal": "", - "Confirm address removal": "", - "Confirm contract removal": "", - "Confirm code removal": "", - "Forget": "", - "click to select or drag and drop the file here": "", - "{{name}} ({{size}} bytes)": "", - "Positive number": "", - "View this {{type}} on Polkascan.io": "", - "Mutates contract state": "", - "Call this message": "", - "Deploy with this constructor": "", - "Reported offline {{count}} times, last at {{blockNumber}}": "", - "Reported online at #{{blockNumber}}": "", - "Reported online in the current session": "", - "Dismiss all notifications": "", - "proposed by": "", - "bond": "", - "Select the account to use for this action.": "", - "Vote on council proposal": "", - "Vote with account": "", - "{{count}} key/value pairs encoded for submission": "", - "include option": "", - "exclude option": "", - "": "", - "Add item": "", - "Remove item": "", - "The selected account does not exist on your keyring": "", - "The selected account does not have the required balance available for this transaction": "", - "Submitting this transaction will drop the account balance to below the existential amount ({{existentialDeposit}}), which can result in the account being removed from the chain state and its associated funds burned.": "", - "This account does have a reserved/locked balance, not taken into account": "", - "Fees includes the transaction fee and the per-byte fee": "", - "Fees totalling {{fees}} will be applied to the submission": "", - "{{total}} estimated total amount (fees + value)": "", - "Estimation does not account for the transaction weight": "", - "The deposit is below the {{minimum}} minimum required for the proposal to be evaluated": "", - "The deposit of {{deposit}} will be reserved until the proposal is completed": "", - "The final recipient balance is less or equal to {{existentialDeposit}} (the existential amount) and will not be reflected": "", - "A fee of {{creationFee}} will be deducted from the sender since the destination account does not exist": "", - "Scan Signature Qr": "", - "Submit (no signature)": "", - "Sign via {{hardwareType}}": "", - "Sign via Qr": "", - "Sign and Submit": "", - "Add a tip to this extrinsic, paying the block author for greater priority": "", - "Tip (optional)": "", - "wrong password": "", - "sending from my account": "", - "unlock account with password": "", - "You can set a custom derivation path for this account using the following syntax \"//////\". The \"/\" and \"//\" may be repeated and mixed`. The \"///password\" is optional and should only occur once.": "", - "//hard/soft///password": "", - "The maximum amount of gas that can be used by this call. If the code requires more, the call will fail.": "", - "Call results": "", - "constructor ": "", - "new account": "", - "new address": "", - "No candidates found": "", - "member": "", - "term progress": "", - "reserved": "", - "locked": "", - "Voters ({{count}})": "", - "era points": "", - "Selected for the next session": "", - "Show only elected for next session": "", - "send as RPC call": "", - "send as transaction": "", - "Clear all": "", - "Active with {{blocks}} blocks authored{{hasMessage}} heartbeat message": "", - "Remove ABI": "", - "transferrable ": "", - "transferrable": "", - "Include an optional tip for faster processing": "", - "Do not include a tip for the block author": "", - "The specified value is greater than your free balance. The node will bond the maximum amount available.": "", - "The amount that is associated with this vote. This value is is locked for the duration of the vote.": "", - "vote value": "", - "voting balance ": "", - "Change session keys": "", - "No documentation provided": "", - "Derive account from source": "", - "Change on-chain nickname": "", - "The selected account to perform the derivation on.": "", - "derive root account": "", - "Derive account from pair": "", - "The password to unlock the selected account.": "", - "derivation path": "", - "//hard/soft": "", - "runner up": "", - "Runner up": "", - "Current member": "", - "runners up": "", - "blocks per session": "", - "voting balance": "", - "Max": "", - "Validator stats": "", - "Display overview information for the selected validator, including blocks produced.": "", - "validator to query": "", - "average": "", - "Loading data": "", - "elected stake": "", - "own": "", - "other": "", - "free balance": "", - "Loading block data": "", - "Loading staker data": "", - "staker percentages": "", - "vested": "", - "slashed per session": "", - "slashed": "", - "rewarded": "", - "blocks produced": "", - "rewards & slashes": "", - "rewards (est.)": "", - "{{currency}} slashed": "", - "{{currency}} rewards (est.)": "", - "{{currency}} average": "", - "{{currency}} total": "", - "{{currency}} own": "", - "{{currency}} other": "", - "session rotate": "", - "session next": "", - "This injected account cannot be used to sign data since the extension does not support raw signing.": "", - "This external account cannot be used to sign data. Only Limited support is currently available for signing from any non-internal accounts.": "", - "Returns": "", - "The amount that will be used on a per-validator basis to calculate rewards for that validator.": "", - "amount to use for estimation": "", - "Ranking is done of the estimated best return, taking the commission and total bonded amount into account. It does not incorporate validator liveliness according to length of operation nor number of blocks produced.": "", - "total staked": "", - "staked": "", - "last reward": "", - "The percentage reward (0-100) that should be applied for the validator": "", - "reward commission percentage": "", - "validator payment": "", - "Validator info not available": "", - "Waiting": "", - "own stake": "", - "other stake": "", - "points": "", - "last #": "", - "nominators": "", - "total stake": "", - "payout (est.)": "", - "Submit preimage": "", - "The account you want to register the preimage from": "", - "The hash of the selected proposal, use it for submitting the proposal": "", - "preimage hash": "", - "proposer": "", - "depositor {{count}}": "", - "No active proposals": "", - "The account you want to register the proposal from": "", - "The preimage hash of the proposal": "", - "The locked value for this proposal": "", - "locked balance": "", - "No active referendums": "", - "seconds": "", - "remaining": "", - "activate at": "", - "Aye ({{count}})": "", - "Nay ({{count}})": "", - "Candidates": "", - "backing": "", - "No runners up found": "", - "Tech. committee": "技术委员会", - "Proposals ({{count}})": "", - "No committee proposals": "", - "Motions ({{count}})": "", - "proposal hash": "", - "Submit signed extrinsic": "", - "imminent preimage (proposal already passed)": "", - "The blocknumber for the proposal to be enacted at": "", - "block number to be enacted at": "", - "The proposal to which this image applies": "", - "proposal id": "", - "externals": "", - "Nominating {{count}}": "", - "Propose a committee motion": "", - "The minimum number of committee votes required to approve this motion": "", - "enact at": "", - "dispatch queue": "", - "nothing queued to be executed": "", - "Seconds ({{count}})": "", - "no tags": "", - "filter by tags": "", - "no accounts yet, create or import and existing": "", - "no addresses yet add and existring contact": "", - "balances": "", - "Nominating ({{count}})": "", - "no accounts yet, create or import an existing": "", - "no contracts yet, add an existing contact": "" -} diff --git a/packages/page-i18n/.skip-build b/packages/page-i18n/.skip-build new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/page-i18n/.skip-npm b/packages/page-i18n/.skip-npm new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/packages/page-i18n/LICENSE b/packages/page-i18n/LICENSE new file mode 100644 index 000000000000..0d381b2e97dc --- /dev/null +++ b/packages/page-i18n/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/packages/page-i18n/README.md b/packages/page-i18n/README.md new file mode 100644 index 000000000000..5e04077fe616 --- /dev/null +++ b/packages/page-i18n/README.md @@ -0,0 +1,2 @@ +# @polkadot/app-i18n + diff --git a/packages/page-i18n/package.json b/packages/page-i18n/package.json new file mode 100644 index 000000000000..25c71e3b3029 --- /dev/null +++ b/packages/page-i18n/package.json @@ -0,0 +1,17 @@ +{ + "name": "@polkadot/app-i18n", + "private": true, + "version": "0.42.0-beta.33", + "description": "A basic string translayor", + "main": "index.js", + "scripts": {}, + "author": "Jaco Greeff ", + "maintainers": [ + "Jaco Greeff " + ], + "license": "Apache-2.0", + "dependencies": { + "@babel/runtime": "^7.9.2", + "@polkadot/react-components": "0.42.0-beta.33" + } +} diff --git a/packages/page-i18n/src/StringInput.tsx b/packages/page-i18n/src/StringInput.tsx new file mode 100644 index 000000000000..612d8db46a8e --- /dev/null +++ b/packages/page-i18n/src/StringInput.tsx @@ -0,0 +1,44 @@ +// Copyright 2017-2020 @polkadot/app-i18n authors & contributors +// This software may be modified and distributed under the terms +// of the Apache-2.0 license. See the LICENSE file for details. + +import React, { useCallback } from 'react'; +import styled from 'styled-components'; +import { Input } from '@polkadot/react-components'; + +interface Props { + className?: string; + onChange: (key: string, val: string) => void; + original: string; + tkey: string; + tval: string; +} + +function StringInput ({ className, onChange, original, tkey, tval }: Props): React.ReactElement { + const _onChange = useCallback( + (value: string) => onChange(tkey, value), + [onChange, tkey] + ); + + return ( +
+
{original}
+ +
+ ); +} + +export default React.memo(styled(StringInput)` + .label { + font-style: italic; + margin-top: 0.5rem; + + +div { + margin-left: 1rem; + } + } +`); diff --git a/packages/page-i18n/src/index.tsx b/packages/page-i18n/src/index.tsx new file mode 100644 index 000000000000..1e5bb2eaacac --- /dev/null +++ b/packages/page-i18n/src/index.tsx @@ -0,0 +1,232 @@ +// Copyright 2017-2020 @polkadot/app-i18n authors & contributors +// This software may be modified and distributed under the terms +// of the Apache-2.0 license. See the LICENSE file for details. + +import { AppProps as Props } from '@polkadot/react-components/types'; + +import FileSaver from 'file-saver'; +import React, { useCallback, useEffect, useState } from 'react'; +import { Button, Columar, Column, Dropdown, Spinner } from '@polkadot/react-components'; + +import { useTranslation } from './translate'; +import StringInput from './StringInput'; + +interface Option { + text: string; + value: string; +} + +interface Defaults { + english: StringsMod; + keys: Option[]; + languages: Languages; + modules: Option[]; +} + +type Progress = [[number, number], Record]; +type Strings = Record; +type StringsMod = Record; +type Languages = Record; + +async function retrieveJson (url: string): Promise { + const response = await fetch(url); + + return response.json(); +} + +async function retrieveEnglish (): Promise { + const paths: Array = await retrieveJson('locales/en/index.json'); + const strings: Strings[] = await Promise.all(paths.map((path) => retrieveJson(`locales/en/${path}`))); + + return strings.reduce((language: StringsMod, strings, index): StringsMod => { + language[paths[index]] = strings; + + return language; + }, {}); +} + +async function retrieveLanguage (lng: string): Promise { + const paths: Array = await retrieveJson(`locales/${lng}/index.json`); + const translation: Strings = await retrieveJson(`locales/${lng}/translation.json`).catch(() => ({})); + const modules: Strings[] = await Promise.all(paths.map((path) => retrieveJson(`locales/${lng}/${path}`))); + + modules.forEach((strings): void => { + Object.keys(strings).forEach((key): void => { + if (strings[key]) { + translation[key] = strings[key]; + } + }); + }); + + return translation; +} + +async function retrieveAll (): Promise { + const _keys: string[] = await retrieveJson('locales/index.json'); + const keys = _keys.filter((key) => key !== 'en'); + const english = await retrieveEnglish(); + const languages = await Promise.all(keys.map(retrieveLanguage)); + + return { + english, + keys: keys.map((text) => ({ text, value: text })), + languages: languages.reduce((languages: Languages, strings, index): Languages => { + languages[keys[index]] = strings; + + return languages; + }, {}), + modules: Object + .keys(english) + .map((text) => ({ text: text.replace('.json', '').replace('app-', 'page-'), value: text })) + .sort((a, b) => a.text.localeCompare(b.text)) + }; +} + +function calcProgress (english: StringsMod, language: Strings): Progress { + const breakdown: Record = {}; + let done = 0; + let total = 0; + + Object.keys(english).forEach((record): void => { + const mod = english[record]; + const mtotal = Object.keys(mod).length; + let mdone = 0; + + Object.keys(mod).forEach((key): void => { + if (language[key]) { + mdone++; + } + }); + + done += mdone; + total += mtotal; + + breakdown[record] = [mdone, mtotal]; + }); + + return [[done, total], breakdown]; +} + +function TranslateApp ({ className }: Props): React.ReactElement { + const { t } = useTranslation(); + const [{ english, keys, languages, modules }, setDefaults] = useState({ english: {}, keys: [], languages: {}, modules: [] }); + const [lng, setLng] = useState('zh'); + const [[progressOverall, progressRecord], setProgress] = useState([[0, 0], {}]); + const [record, setRecord] = useState('app-accounts.json'); + const [strings, setStrings] = useState(null); + + useEffect((): void => { + retrieveAll().then(setDefaults); + }, []); + + useEffect((): void => { + if (lng) { + setStrings(languages[lng]); + setProgress(calcProgress(english, languages[lng])); + } + }, [english, languages, lng]); + + const _setString = useCallback( + (key: string, value: string): void => { + let hasChanged = false; + + if (lng) { + const hasPrevVal = !!languages[lng][key]; + const sanitized = value.trim(); + + languages[lng][key] = sanitized; + hasChanged = hasPrevVal !== !!sanitized; + } + + setStrings((strings: Strings | null): Strings | null => + strings + ? { ...strings, [key]: value } + : null + ); + + hasChanged && setProgress( + calcProgress(english, languages[lng]) + ); + }, + [english, languages, lng] + ); + + const _onDownload = useCallback( + (): void => { + const sanitized = Object.keys(strings || {}).reduce((result: Strings, key): Strings => { + const sanitized = (strings || {})[key].trim(); + + if (sanitized) { + result[key] = sanitized; + } + + return result; + }, {}); + + FileSaver.saveAs( + new Blob([JSON.stringify(sanitized, null, 2)], { type: 'application/json; charset=utf-8' }), + 'translation.json' + ); + }, + [strings] + ); + + if (!keys.length) { + return ; + } + + return ( +
+
+ + + +  {t('{{done}}/{{total}}, {{progress}}% done', { replace: { + done: progressOverall[0], + progress: (progressOverall[1] ? (progressOverall[0] * 100 / progressOverall[1]) : 100).toFixed(2), + total: progressOverall[1] + } })} + + + +  {t('{{done}}/{{total}}, {{progress}}% done', { replace: { + done: (progressRecord && progressRecord[record] && progressRecord[record][0]) || 0, + progress: (progressRecord && progressRecord[record] && progressRecord[record][1] ? (progressRecord[record][0] * 100 / progressRecord[record][1]) : 100).toFixed(2), + total: (progressRecord && progressRecord[record] && progressRecord[record][1]) || 0 + } })} + + +
+ +
+ ); +} + +export default React.memo(TranslateApp); diff --git a/packages/page-i18n/src/translate.ts b/packages/page-i18n/src/translate.ts new file mode 100644 index 000000000000..b0bc7fd7e7b6 --- /dev/null +++ b/packages/page-i18n/src/translate.ts @@ -0,0 +1,9 @@ +// Copyright 2017-2020 @polkadot/app-i18n authors & contributors +// This software may be modified and distributed under the terms +// of the Apache-2.0 license. See the LICENSE file for details. + +import { useTranslation as useTranslationBase, UseTranslationResponse } from 'react-i18next'; + +export function useTranslation (): UseTranslationResponse { + return useTranslationBase('app-i18n'); +} diff --git a/scripts/i18nLint.js b/scripts/i18nLint.js index 8465d3c9e405..b46008a7843e 100644 --- a/scripts/i18nLint.js +++ b/scripts/i18nLint.js @@ -15,7 +15,7 @@ function getEntries (langRoot) { !['.', '..'].includes(entry) && fs.lstatSync(path.join(langRoot, entry)).isFile() && entry.endsWith('.json') && - !entry.startsWith('ui') + !['app-i18n.json', 'index.json', 'translation.json'].includes(entry) ) .sort(); } @@ -38,7 +38,7 @@ function checkLanguage (lang) { const root = defaults[entry]; if (!root) { - console.log(`\t> ${entry} not in default found, not checking`); + console.log(`\t> ${entry} not found in default, not checking`); return; } @@ -69,7 +69,7 @@ function checkLanguages () { .readdirSync(i18nRoot) .filter((entry) => !['.', '..'].includes(entry) && - fs.lstatSync(i18nRoot).isDirectory() && + fs.lstatSync(path.join(i18nRoot, entry)).isDirectory() && entry !== 'en' ) .sort() @@ -83,9 +83,9 @@ function initDefault () { const json = require(path.join(enRoot, entry)); const keys = Object.keys(json); - if (keys.length > 0) { - // console.log(`${entry} ${keys.length} keys`); - } + // if (keys.length > 0) { + // console.log(`${entry} ${keys.length} keys`); + // } defaults[entry] = keys; }); diff --git a/scripts/i18nSort.js b/scripts/i18nSort.js new file mode 100644 index 000000000000..0d82c8ce4b4f --- /dev/null +++ b/scripts/i18nSort.js @@ -0,0 +1,58 @@ +// Copyright 2017-2020 @polkadot/apps authors & contributors +// This software may be modified and distributed under the terms +// of the Apache-2.0 license. See the LICENSE file for details. + +const fs = require('fs'); +const path = require('path'); + +const i18nRoot = path.join(__dirname, '../packages/apps/public/locales'); + +function getEntries (langRoot) { + return fs + .readdirSync(langRoot) + .filter((entry) => + !['.', '..'].includes(entry) && + fs.lstatSync(path.join(langRoot, entry)).isFile() && + entry.endsWith('.json') && + !['app-i18n.json', 'index.json'].includes(entry) + ) + .sort(); +} + +function sortLanguage (lang) { + const langRoot = path.join(i18nRoot, lang); + const entries = getEntries(langRoot); + + entries.forEach((entry) => { + const filename = path.join(langRoot, entry); + const json = require(filename); + const sorted = Object.keys(json).sort().reduce((result, key) => { + result[key] = json[key]; + + return result; + }, {}); + + fs.writeFileSync(filename, JSON.stringify(sorted, null, 2)); + }); + + fs.writeFileSync( + path.join(langRoot, 'index.json'), + JSON.stringify(entries.filter((entry) => !['translation.json'].includes(entry)), null, 2) + ); +} + +function checkLanguages () { + const languages = fs + .readdirSync(i18nRoot) + .filter((entry) => + !['.', '..'].includes(entry) && + fs.lstatSync(path.join(i18nRoot, entry)).isDirectory() + ) + .sort(); + + languages.forEach(sortLanguage); + + fs.writeFileSync(path.join(i18nRoot, 'index.json'), JSON.stringify(languages, null, 2)); +} + +checkLanguages(); diff --git a/tsconfig.json b/tsconfig.json index 13d15da9fef3..da56f83e634b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -30,6 +30,8 @@ "@polkadot/app-explorer/*": [ "packages/page-explorer/src/*" ], "@polkadot/app-generic-asset": [ "packages/page-generic-asset/src" ], "@polkadot/app-generic-asset/*": [ "packages/page-generic-asset/src/*" ], + "@polkadot/app-i18n": [ "packages/page-i18n/src" ], + "@polkadot/app-i18n/*": [ "packages/page-i18n/src/*" ], "@polkadot/app-js": [ "packages/page-js/src" ], "@polkadot/app-js/*": [ "packages/page-js/src/*" ], "@polkadot/app-parachains": [ "packages/page-parachains/src" ], diff --git a/yarn.lock b/yarn.lock index 9918ee609273..ef85b34ce0c6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2991,6 +2991,15 @@ __metadata: languageName: unknown linkType: soft +"@polkadot/app-i18n@workspace:packages/page-i18n": + version: 0.0.0-use.local + resolution: "@polkadot/app-i18n@workspace:packages/page-i18n" + dependencies: + "@babel/runtime": ^7.9.2 + "@polkadot/react-components": 0.42.0-beta.33 + languageName: unknown + linkType: soft + "@polkadot/app-js@workspace:packages/page-js": version: 0.0.0-use.local resolution: "@polkadot/app-js@workspace:packages/page-js"