diff --git a/packages/app-settings/src/General.tsx b/packages/app-settings/src/General.tsx index 320bb188fcc..49c298b1893 100644 --- a/packages/app-settings/src/General.tsx +++ b/packages/app-settings/src/General.tsx @@ -31,6 +31,10 @@ const availableLanguages: SetOption[] = [ text: 'English', value: 'en' }, + { + text: '汉语', + value: 'zh' + }, { text: '日本語', value: 'ja' diff --git a/packages/apps/public/locales/en/app-tech-comm.json b/packages/apps/public/locales/en/app-tech-comm.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/packages/apps/public/locales/en/app-tech-comm.json @@ -0,0 +1 @@ +{} diff --git a/packages/apps/public/locales/zh/app-123code.json b/packages/apps/public/locales/zh/app-123code.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/packages/apps/public/locales/zh/app-123code.json @@ -0,0 +1 @@ +{} diff --git a/packages/apps/public/locales/zh/app-accounts.json b/packages/apps/public/locales/zh/app-accounts.json new file mode 100644 index 00000000000..a1be58f8009 --- /dev/null +++ b/packages/apps/public/locales/zh/app-accounts.json @@ -0,0 +1,99 @@ +{ + "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 address": "地址美化", + "account backed up": "账号已备份", + "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": "密码", + "password changed": "密码已更新", + "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": "密钥对加密类型", + "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": "创建并且备份账户", + "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": "创建", + "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.": "输入你要发送的总量. 注意 你可以从右边选择单位 例如 发送 1 milli 相当于发送 0.001.", + "amount": "总量", + "Make Transfer": "添加交易", + "Add account": "添加账号", + "Restore JSON": "使用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\"...": "搜索是否大小写敏感, 例如: 如果你选择 \"否\" 你搜索 \"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": "新建账户", + "transferrable ": "是否可交易 ", + "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": "//硬/软", + "Unlock": "解锁", + "transferrable": "可交易", + "no tags": "没有标签", + "filter by tags": "根据标签过滤", + "no accounts yet, create or import and existing": "还没有账户, 创建或者导入存在的", + "no accounts yet, create or import an existing": "还没有账户, 创建或者导入一个已经存在的账户" +} diff --git a/packages/apps/public/locales/zh/app-address-book.json b/packages/apps/public/locales/zh/app-address-book.json new file mode 100644 index 00000000000..bd52325b8e1 --- /dev/null +++ b/packages/apps/public/locales/zh/app-address-book.json @@ -0,0 +1,23 @@ +{ + "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内可用. 稍后课编辑.", + "name": "名称", + "Cancel": "取消", + "Save": "保存", + "Add contact": "添加联系人", + "No contacts found.": "没有联系人被找到.", + "new address": "新建地址", + "no tags": "没有标签", + "filter by tags": "使用标签过滤", + "no addresses yet add and existring contact": "没有地址被添加并且存在联系人", + "no contracts yet, add an existing contact": "没有地址,添加一个存在的联系人" +} diff --git a/packages/apps/public/locales/zh/app-claims.json b/packages/apps/public/locales/zh/app-claims.json new file mode 100644 index 00000000000..479bb9c9d0d --- /dev/null +++ b/packages/apps/public/locales/zh/app-claims.json @@ -0,0 +1,15 @@ +{ + "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 new file mode 100644 index 00000000000..9e8aede8500 --- /dev/null +++ b/packages/apps/public/locales/zh/app-contracts.json @@ -0,0 +1,64 @@ +{ + "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", + "Cancel": "取消", + "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": "调用结果", + "constructor ": "构造器", + "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 new file mode 100644 index 00000000000..452e542cf68 --- /dev/null +++ b/packages/apps/public/locales/zh/app-council.json @@ -0,0 +1,52 @@ +{ + "Tech. committee": "技术委员会", + "Council overview": "议会概览", + "Motions": "议案", + "No council motions": "没有议会议案", + "ayes ({{ayes}}/{{threshold}} to approve)": "赞成 ({{ayes}}/{{threshold}} 需要赞成)", + "Aye": "赞成", + "nays ({{nays}})": "反对 ({{nays}})", + "Nay": "反对", + "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": "提案", + "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.": "This account will be nominated to fill the council slot you specify.", + "Submit candidacy": "提交候选人", + "seats": "座位", + "voting round": "投票轮次", + "term duration": "term duration", + "Vote for current candidates": "给当前候选人投票", + "Voting account": "投票账户", + "This account will be use to approve or disapprove each candidate.": "This account will be use to approve or disapprove each candidate.", + "Vote": "投票", + "You have already voted in this round": "该轮你已经投票", + "Retract vote": "撤回投票", + "No vote": "没有投票", + "No candidates found": "没有候选人", + "value": "值", + "member": "成员", + "term progress": "term progress", + "Voters ({{count}})": "投票人数 ({{count}})", + "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.", + "vote value": "vote value", + "voting balance ": "voting balance ", + "runner up": "runner up", + "Runner up": "Runner up", + "Current member": "当前成员", + "runners up": "runners up", + "voting balance": "voting balance", + "Candidates": "候选人", + "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 new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/packages/apps/public/locales/zh/app-dashboard.json @@ -0,0 +1 @@ +{} diff --git a/packages/apps/public/locales/zh/app-democracy.json b/packages/apps/public/locales/zh/app-democracy.json new file mode 100644 index 00000000000..83f5bc6978f --- /dev/null +++ b/packages/apps/public/locales/zh/app-democracy.json @@ -0,0 +1,67 @@ +{ + "Democracy overview": "Democracy overview", + "depositors": "depositors", + "balance": "balance", + "No available proposals": "No available proposals", + "proposals": "proposals", + "Submit proposal": "Submit proposal", + "propose": "propose", + "The amount that will be bonded to submit the proposal": "The amount that will be bonded to submit the proposal", + "value": "value", + "ending at": "ending at", + "block #{{blockNumber}}, {{remaining}} blocks remaining": "block #{{blockNumber}}, {{remaining}} blocks remaining", + "activate at (if passed)": "activate at (if passed)", + "block #{{blockNumber}}": "block #{{blockNumber}}", + "vote threshold": "vote threshold", + "No available referendums": "No available referendums", + "referendum": "referendum", + "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", + "Cancel": "Cancel", + "Second": "Second", + "referenda": "referenda", + "active": "active", + "launch period": "launch period", + "Vote on proposal": "Vote on proposal", + "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", + "Select your vote preferences for this proposal, either to approve or disapprove": "Select your vote preferences for this proposal, either to approve or disapprove", + "record my vote as": "record my vote as", + "Aye, I approve": "Aye, I approve", + "Nay, I do not approve": "Nay, I do not approve", + "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", + "depositor {{count}}": "depositor {{count}}", + "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", + "seconds": "seconds", + "Details": "Details", + "remaining": "remaining", + "activate at": "activate at", + "Aye ({{count}})": "Aye ({{count}})", + "Nay ({{count}})": "Nay ({{count}})", + "proposal hash": "proposal hash", + "imminent preimage (proposal already passed)": "imminent preimage (proposal already passed)", + "The blocknumber for the proposal to be enacted at": "The blocknumber for the proposal to be enacted at", + "block number to be enacted at": "block number to be enacted at", + "The proposal to which this image applies": "The proposal to which this image applies", + "proposal id": "proposal id", + "externals": "externals", + "enact at": "enact at", + "dispatch queue": "dispatch queue", + "nothing queued to be executed": "nothing queued to be executed", + "Seconds ({{count}})": "Seconds ({{count}})" +} diff --git a/packages/apps/public/locales/zh/app-explorer.json b/packages/apps/public/locales/zh/app-explorer.json new file mode 100644 index 00000000000..4657f570d4b --- /dev/null +++ b/packages/apps/public/locales/zh/app-explorer.json @@ -0,0 +1,44 @@ +{ + "events": "事件", + "index": "索引", + "Details": "详情", + "mortal, valid from #{{startAt}} to #{{endsAt}}": "mortal, valid from #{{startAt}} to #{{endsAt}}", + "mortal": "mortal", + "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": "角色", + "peer id": "节点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": "session", + "era": "时代" +} diff --git a/packages/apps/public/locales/zh/app-extrinsics.json b/packages/apps/public/locales/zh/app-extrinsics.json new file mode 100644 index 00000000000..0dd8b2ceeb8 --- /dev/null +++ b/packages/apps/public/locales/zh/app-extrinsics.json @@ -0,0 +1,10 @@ +{ + "Extrinsic submission": "Extrinsic submission", + "using the selected account": "using the selected account", + "with an account balance": "with an account balance", + "with a transaction nonce": "with a transaction nonce", + "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 new file mode 100644 index 00000000000..73d3caecfaf --- /dev/null +++ b/packages/apps/public/locales/zh/app-generic-asset.json @@ -0,0 +1,26 @@ +{ + "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", + "Cancel": "Cancel", + "Register": "Register", + "available ": "available ", + "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 ", + "transferrable": "transferrable" +} diff --git a/packages/apps/public/locales/zh/app-js.json b/packages/apps/public/locales/zh/app-js.json new file mode 100644 index 00000000000..0a08e9f277b --- /dev/null +++ b/packages/apps/public/locales/zh/app-js.json @@ -0,0 +1,8 @@ +{ + "Generate link to share code example": "Generate link to share code example", + "Copied to clipboard": "Copied to clipboard", + "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 new file mode 100644 index 00000000000..0205b02d8b3 --- /dev/null +++ b/packages/apps/public/locales/zh/app-parachains.json @@ -0,0 +1,11 @@ +{ + "Parachains overview": "Parachains overview", + "the last heads of this parachain": "the last heads of this parachain", + "heads": "heads", + "": "", + "the relay dispatch queue size": "the relay dispatch queue size", + "relay queue": "relay queue", + "no deployed parachains": "no deployed parachains", + "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 new file mode 100644 index 00000000000..78556de6598 --- /dev/null +++ b/packages/apps/public/locales/zh/app-settings.json @@ -0,0 +1,25 @@ +{ + "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": "默认接口语言", + "Cancel": "取消", + "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": "自定义终端", + "Default browser language (auto-detect)": "默认浏览器语言 (自动检测)" +} diff --git a/packages/apps/public/locales/zh/app-staking.json b/packages/apps/public/locales/zh/app-staking.json new file mode 100644 index 00000000000..90ed80c48c8 --- /dev/null +++ b/packages/apps/public/locales/zh/app-staking.json @@ -0,0 +1,150 @@ +{ + "Cancel": "取消", + "Bond more": "抵押更多", + "available ": "可用 ", + "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": "储值", + "session": "会话", + "nominating": "提名", + "controller": "控制器", + "Stop Nominating": "停止提名", + "Stop Validating": "停止验证", + "Set Session Key": "设置会话key", + "Validate": "验证", + "Nominate": "提名", + "Unbond funds": "解除抵押资金", + "Change controller account": "更改控制账户", + "Change reward destination": "Change reward destination", + "Change validator preferences": "Change validator preferences", + "Rotate session keys": "Rotate session keys", + "Change session account": "Change session account", + "Change nominee(s)": "Change nominee(s)", + "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", + "Stash accounts that are to be nominated. Block rewards are split between validators and nominators. Only 16 nominees will be taken into 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": "nominate the following addresses", + "select accounts(s) nominate": "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.": "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.": "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", + "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", + "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.", + "Session key (ed25519)": "Session key (ed25519)", + "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", + "The number of time this validator can get slashed before being automatically unstaked (maximum of 10 allowed)": "The number of time this validator can get slashed before being automatically unstaked (maximum of 10 allowed)", + "automatic unstake threshold": "automatic unstake threshold", + "Amount taken up-front from the reward by the validator before splitting the remainder between themselves and the nominators": "Amount taken up-front from the reward by the validator before splitting the remainder between themselves and the nominators", + "reward commission": "reward commission", + "New stake": "New stake", + "No funds staked yet.": "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)": "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", + "Nominators ({{count}})": "Nominators ({{count}})", + "Show all validators and intentions": "Show all validators and intentions", + "Show only my nominations": "Show only my nominations", + "Show only with nominators": "Show only with nominators", + "Show only without nominators": "Show only without nominators", + "Show only with warnings": "Show only with warnings", + "Show only without warnings": "Show only without warnings", + "No addresses found": "No addresses found", + "validators": "validators", + "validator": "validator", + "next up": "next up", + "intention": "intention", + "waiting": "waiting", + "last block": "last block", + "era points": "era points", + "Selected for the next session": "Selected for the next session", + "Show only elected for next session": "Show only elected for next session", + "Active with {{blocks}} blocks authored{{hasMessage}} heartbeat message": "Active with {{blocks}} blocks authored{{hasMessage}} heartbeat message", + "transferrable ": "transferrable ", + "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", + "Aye": "Aye", + "Nay": "Nay", + "blocks per session": "blocks per session", + "transferrable": "transferrable", + "Validator stats": "Validator stats", + "block hash or number to query": "block hash or number to query", + "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", + "blocks": "blocks", + "average": "average", + "Loading data": "Loading data", + "elected stake": "elected stake", + "total": "total", + "own": "own", + "other": "other", + "Loading block data": "Loading block data", + "Loading staker data": "Loading staker data", + "staker percentages": "staker percentages", + "slashed per session": "slashed per session", + "slashed": "slashed", + "rewarded": "rewarded", + "blocks produced": "blocks produced", + "rewards & slashes": "rewards & slashes", + "rewards (est.)": "rewards (est.)", + "{{currency}} slashed": "{{currency}} slashed", + "{{currency}} rewards (est.)": "{{currency}} rewards (est.)", + "{{currency}} average": "{{currency}} average", + "{{currency}} total": "{{currency}} total", + "{{currency}} own": "{{currency}} own", + "{{currency}} other": "{{currency}} other", + "Returns": "Returns", + "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", + "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.": "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": "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", + "Validator info not available": "Validator info not available", + "Waiting": "Waiting", + "own stake": "own stake", + "other stake": "other stake", + "commission": "commission", + "points": "points", + "last #": "last #", + "total stake": "total stake", + "payout (est.)": "payout (est.)", + "Nominating {{count}}": "Nominating {{count}}", + "Nominating ({{count}})": "Nominating ({{count}})" +} diff --git a/packages/apps/public/locales/zh/app-storage.json b/packages/apps/public/locales/zh/app-storage.json new file mode 100644 index 00000000000..74e1bdf568c --- /dev/null +++ b/packages/apps/public/locales/zh/app-storage.json @@ -0,0 +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" +} diff --git a/packages/apps/public/locales/zh/app-sudo.json b/packages/apps/public/locales/zh/app-sudo.json new file mode 100644 index 00000000000..f7c244784a0 --- /dev/null +++ b/packages/apps/public/locales/zh/app-sudo.json @@ -0,0 +1,10 @@ +{ + "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 new file mode 100644 index 00000000000..9e26dfeeb6e --- /dev/null +++ b/packages/apps/public/locales/zh/app-tech-comm.json @@ -0,0 +1 @@ +{} \ 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 new file mode 100644 index 00000000000..c5afd803df0 --- /dev/null +++ b/packages/apps/public/locales/zh/app-toolbox.json @@ -0,0 +1,43 @@ +{ + "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", + "Cancel": "Cancel", + "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-transfer.json b/packages/apps/public/locales/zh/app-transfer.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/packages/apps/public/locales/zh/app-transfer.json @@ -0,0 +1 @@ +{} diff --git a/packages/apps/public/locales/zh/app-treasury.json b/packages/apps/public/locales/zh/app-treasury.json new file mode 100644 index 00000000000..a119ff3f5e1 --- /dev/null +++ b/packages/apps/public/locales/zh/app-treasury.json @@ -0,0 +1,38 @@ +{ + "Treasury overview": "财政概览", + "Edit settings": "编辑设置", + "Aye, I approve": "是的,我赞成", + "Nay, I do not approve": "不,我反对", + "Approve or reject proposal": "赞成或者反对提案", + "Respond": "Respond", + "Propose a majority council motion to either approve or reject this spend proposal": "Propose a majority council motion to either approve or reject this spend proposal", + "proposed council action": "proposed council action", + "Approved": "赞成", + "No approved proposals": "没有赞成的提案", + "No pending proposals": "没有进行中的提案", + "Proposals": "提案", + "Submit a spend proposal": "Submit a spend proposal", + "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": "赞成", + "pot": "pot", + "using my account": "using my account", + "The account used to change your settings": "The account used to change your settings", + "configuration": "configuration", + "Proposal bond": "Proposal bond", + "proposal bond": "proposal bond", + "Proposal bond minimum": "Proposal bond minimum", + "proposal bond minimum": "proposal bond minimum", + "Spend period": "Spend period", + "spend period": "spend period", + "Burn percentage": "Burn percentage", + "burn percentage": "burn percentage", + "Submit": "Submit", + "Pot": "Pot", + "pot size": "pot size", + "available": "available", + "bond": "bond" +} diff --git a/packages/apps/public/locales/zh/apps-routing.json b/packages/apps/public/locales/zh/apps-routing.json new file mode 100644 index 00000000000..490167ef7a7 --- /dev/null +++ b/packages/apps/public/locales/zh/apps-routing.json @@ -0,0 +1,3 @@ +{ + "explorer": "管理器" +} diff --git a/packages/apps/public/locales/zh/apps.json b/packages/apps/public/locales/zh/apps.json new file mode 100644 index 00000000000..b83a5f175e5 --- /dev/null +++ b/packages/apps/public/locales/zh/apps.json @@ -0,0 +1,32 @@ +{ + "sidebar.explorer": "浏览", + "sidebar.settings": "设置", + "sidebar.accounts": "账户", + "sidebar.addressbook": "地址簿", + "sidebar.claims": "认领", + "sidebar.contracts": "合约", + "sidebar.council": "议会", + "sidebar.dashboard": "仪表盘", + "sidebar.democracy": "民主权利", + "sidebar.generic-asset": "通用资产", + "sidebar.parachains": "平行链", + "sidebar.staking": "质押", + "sidebar.chainstate": "链状态", + "sidebar.sudo": "撤销", + "sidebar.techcomm": "技术委员会", + "sidebar.toolbox": "工具箱", + "sidebar.transfer": "转账", + "sidebar.treasury": "财政", + "sidebar.extrinsics": "交易", + "sidebar.js": "javascript", + "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' 终端." +} diff --git a/packages/apps/public/locales/zh/react-api.json b/packages/apps/public/locales/zh/react-api.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/packages/apps/public/locales/zh/react-api.json @@ -0,0 +1 @@ +{} diff --git a/packages/apps/public/locales/zh/react-components.json b/packages/apps/public/locales/zh/react-components.json new file mode 100644 index 00000000000..0fed4e7ae69 --- /dev/null +++ b/packages/apps/public/locales/zh/react-components.json @@ -0,0 +1,75 @@ +{ + "bonded": "抵押", + "transactions": "交易", + "type": "类型", + "{{value}}, {{remaining}} blocks left": "{{value}}, {{remaining}} 区块剩下", + "unstake threshold": "取消抵押阈值", + "commission": "委员会", + "total": "总共", + "available": "可用", + "redeemable": "可赎回", + "Redeem these funds": "赎回资金", + "unbonding": "解除抵押", + "session keys": "会话key", + "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.": "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.", + "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.", + "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": "正数", + "View this {{type}} on Polkascan.io": "View this {{type}} on Polkascan.io", + "Mutates contract state": "Mutates contract state", + "Call this message": "调用这个消息", + "Deploy with this constructor": "用这个构造器部署", + "Reported offline {{count}} times, last at {{blockNumber}}": "Reported offline {{count}} times, last at {{blockNumber}}", + "Reported online at #{{blockNumber}}": "Reported online at #{{blockNumber}}", + "Reported online in the current session": "Reported online in the current session", + "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": "提交", + "Vote on council proposal": "给议会提案投票", + "Vote on proposal": "投票提案", + "Vote with account": "用账户投票", + "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.", + "Select your vote preferences for this proposal, either to approve or disapprove": "Select your vote preferences for this proposal, either to approve or disapprove", + "record my vote as": "记录我的投票为", + "Vote": "投票", + "Aye, I approve": "是, 我赞成", + "Nay, I do not approve": "否, 我反对", + "reserved": "保留", + "locked": "锁定", + "Remove ABI": "Remove ABI", + "transferrable": "可转移", + "No documentation provided": "没有文档提供", + "vested": "vested", + "session rotate": "session rotate", + "session next": "session next", + "Submit signed extrinsic": "提交签名交易", + "balances": "余额" +} diff --git a/packages/apps/public/locales/zh/react-params.json b/packages/apps/public/locales/zh/react-params.json new file mode 100644 index 00000000000..63bf806a666 --- /dev/null +++ b/packages/apps/public/locales/zh/react-params.json @@ -0,0 +1,8 @@ +{ + "{{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 new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/packages/apps/public/locales/zh/react-query.json @@ -0,0 +1 @@ +{} diff --git a/packages/apps/public/locales/zh/react-signer.json b/packages/apps/public/locales/zh/react-signer.json new file mode 100644 index 00000000000..966ee7061fc --- /dev/null +++ b/packages/apps/public/locales/zh/react-signer.json @@ -0,0 +1,27 @@ +{ + "The selected account does not exist on your keyring": "The selected account does not exist on your keyring", + "The selected account does not have the required balance available for this transaction": "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.": "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": "This account does have a reserved/locked balance, not taken into account", + "Fees includes the transaction fee and the per-byte fee": "Fees includes the transaction fee and the per-byte fee", + "Fees totalling {{fees}} will be applied to the submission": "Fees totalling {{fees}} will be applied to the submission", + "{{total}} estimated total amount (fees + value)": "{{total}} estimated total amount (fees + value)", + "Estimation does not account for the transaction weight": "Estimation does not account for the transaction weight", + "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", + "Cancel": "Cancel", + "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)", + "wrong password": "wrong password", + "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/ui.json b/packages/apps/public/locales/zh/ui.json new file mode 100644 index 00000000000..f6182e308fb --- /dev/null +++ b/packages/apps/public/locales/zh/ui.json @@ -0,0 +1,714 @@ +{ + "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/apps/src/SideBar/index.tsx b/packages/apps/src/SideBar/index.tsx index 9d8d1ccd564..cb42939187b 100644 --- a/packages/apps/src/SideBar/index.tsx +++ b/packages/apps/src/SideBar/index.tsx @@ -85,7 +85,7 @@ function SideBar ({ className, collapse, handleResize, isCollapsed, toggleMenu,
{runtimeVersion && ( -
version {runtimeVersion.specVersion.toNumber()}
+
版本 {runtimeVersion.specVersion.toNumber()}
)}