From e45db9bdd8704a10d3ada5395cfc6c1636337c65 Mon Sep 17 00:00:00 2001 From: dev-warrior777 <> Date: Tue, 12 Nov 2024 16:31:22 +0800 Subject: [PATCH 1/3] client/webserver: Update static chinese translations More correct tsatic chinese translations --- client/webserver/jsintl.go | 253 +++++++++++++++++++++++++++++++------ 1 file changed, 213 insertions(+), 40 deletions(-) diff --git a/client/webserver/jsintl.go b/client/webserver/jsintl.go index 22555a8e87..5fe4fd65aa 100644 --- a/client/webserver/jsintl.go +++ b/client/webserver/jsintl.go @@ -494,46 +494,219 @@ var ptBR = map[string]*intl.Translation{ } var zhCN = map[string]*intl.Translation{ - noPassErrMsgID: {T: "密码不能为空"}, - noAppPassErrMsgID: {T: "应用密码不能为空"}, - passwordNotMatchID: {T: "密码不相同"}, - setButtonBuyID: {T: "来自{{ asset }}的买入订单"}, - setButtonSellID: {T: "来自{{ asset }}的卖出订单"}, - offID: {T: "关闭"}, - readyID: {T: "准备就绪"}, - lockedID: {T: "锁"}, - noWalletID: {T: "未连接钱包"}, - walletSyncProgressID: {T: "钱包同步进度{{ syncProgress }}%"}, - hideAdditionalSettingsID: {T: "隐藏其它设置"}, - showAdditionalSettingsID: {T: "显示其它设置"}, - buyID: {T: "买入"}, - sellID: {T: "卖出"}, - notSupportedID: {T: "{{ asset }}不受支持"}, - connectionFailedID: {T: "连接到服务器 dex 失败。您可以关闭 bisonw 并稍后重试或等待尝试重新连接。"}, - orderPreviewID: {T: "总计: {{ total }} {{ asset }}"}, - calculatingID: {T: "计算中..."}, - estimateUnavailableID: {T: "估计不可用"}, - noZeroRateID: {T: "汇率不能为零"}, - noZeroQuantityID: {T: "数量不能为零"}, - tradeID: {T: "交易"}, - noAssetWalletID: {T: "没有钱包 {{ asset }}"}, - executedID: {T: "执行"}, - bookedID: {T: "保留"}, - cancelingID: {T: "取消"}, - acctUndefinedID: {T: "帐户未定义。"}, - keepWalletPassID: {T: "保留钱包密码"}, - newWalletPassID: {T: "设置新的钱包密码"}, - lotID: {T: "批处理"}, - lotsID: {T: "批"}, - epochID: {T: "时间"}, - apiErrorID: {T: "接口错误: {{ msg }}"}, - addID: {T: "添加"}, - createID: {T: "创建"}, - availableID: {T: "可用"}, - immatureID: {T: "不成"}, - limitOrderID: {T: "限价单"}, - marketOrderID: {T: "市价单"}, - cancelOrderID: {T: "取消单"}, + noPassErrMsgID: {T: "密码不能为空"}, + noAppPassErrMsgID: {T: "应用密码不能为空"}, + passwordNotMatchID: {T: "密码不相同"}, + setButtonBuyID: {T: "来自{{ asset }}的买入订单"}, + setButtonSellID: {T: "来自{{ asset }}的卖出订单"}, + orderBttnBuyBalErrID: {T: "买入资金不足"}, + orderBttnSellBalErrID: {T: "卖出资金不足"}, + orderBttnQtyErrID: {T: "必须指定购入数量"}, + orderBttnQtyRateErrID: {T: "必须指定购入数量和价格"}, + offID: {T: "关闭"}, + readyID: {T: "准备就绪"}, + lockedID: {T: "锁"}, + noWalletID: {T: "未连接钱包"}, + walletSyncProgressID: {T: "钱包同步进度{{ syncProgress }}%"}, + hideAdditionalSettingsID: {T: "隐藏其它设置"}, + showAdditionalSettingsID: {T: "显示其它设置"}, + buyID: {T: "买入"}, + sellID: {T: "卖出"}, + notSupportedID: {T: "{{ asset }}不受支持"}, + versionNotSupportedID: {T: "{{ asset }} (v{{version}}) 不支持"}, + connectionFailedID: {T: "连接到服务器 dex 失败。您可以关闭 bisonw 并稍后重试或等待尝试重新连接。"}, + orderPreviewID: {T: "总计: {{ total }} {{ asset }}"}, + calculatingID: {T: "计算中..."}, + estimateUnavailableID: {T: "估计不可用"}, + noZeroRateID: {T: "汇率不能为零"}, + noZeroQuantityID: {T: "数量不能为零"}, + tradeID: {T: "交易"}, + noAssetWalletID: {T: "没有钱包 {{ asset }}"}, + executedID: {T: "执行"}, + bookedID: {T: "保留"}, + cancelingID: {T: "取消"}, + acctUndefinedID: {T: "帐户未定义。"}, + keepWalletPassID: {T: "保留钱包密码"}, + newWalletPassID: {T: "设置新的钱包密码"}, + lotID: {T: "批处理"}, + lotsID: {T: "批"}, + unknownID: {T: "未知"}, + epochID: {T: "时间"}, + settlingID: {T: "结算"}, + noMatchID: {T: "无匹配"}, + canceledID: {T: "取消"}, + revokedID: {T: "撤销"}, + apiErrorID: {T: "api 错误: {{ msg }}"}, + waitingForConfsID: {T: "等待区块确认..."}, + noneSelectedID: {T: "未选择"}, + regFeeSuccessID: {Version: 1, T: "注册费支付成功!"}, + addID: {T: "添加"}, + createID: {T: "创建"}, + availableID: {T: "可用"}, + walletReadyID: {T: "已准备"}, + setupWalletID: {T: "设置钱包"}, + changeWalletTypeID: {T: "切换钱包类型"}, + keepWalletTypeID: {T: "不要切换钱包类型"}, + setupNeededID: {T: "需要设置"}, + walletPendingID: {T: "创建钱包"}, + sendSuccessID: {T: "{{ assetName }} 发送!"}, + reconfigSuccessID: {T: "钱包重置!"}, + rescanStartedID: {T: "钱包扫描运行中"}, + newWalletSuccessID: {T: "{{ assetName }}钱包创建完成!"}, + walletUnlockedID: {T: "钱包解锁"}, + sellingID: {T: "出售"}, + buyingID: {T: "购买"}, + walletEnabledID: {T: "{{ assetName }} 钱包启用"}, + walletDisabledID: {T: "{{ assetName }} 钱包禁用"}, + disabledMsgID: {T: "钱包已被禁用"}, + activeOrdersErrorID: {T: "{{ assetName }} 钱包正在处理交易中"}, + immatureID: {T: "未确认"}, + feeBalanceID: {T: "交易费余额"}, + candlesLoadingID: {T: "等待K线"}, + depthLoadingID: {T: "等待交易深度数据"}, + invalidAddrressMsgID: {T: "不合法地址: {{ address }}"}, + txFeeSupportedID: {T: "该钱包种类不支持区块交易费用估算"}, + txFeeErrorMsgID: {T: "区块交易费用估算失败: {{ err }}"}, + activeOrdersLogoutErrorID: {T: "活跃订单导致无法登出"}, + invalidDateErrorMsgID: {T: "错误: 无效的日期或时间"}, + noArchivedRecordsID: {T: "未找到归档记录"}, + deleteArchivedRecordsID: {T: "消息: {{ nRecords }} 归档记录已删除"}, + archivedRecordsPathID: {T: "文件位置: {{ path }}"}, + orderSubmittingID: {T: "提交中"}, + defaultID: {T: "默认"}, + addedID: {T: "已添加"}, + discoveredID: {T: "已发现"}, + unsupportedAssetInfoErrMsgID: {T: "没有该资产信息 id = {{ assetID }}, 没有交易所信息"}, + limitOrderID: {T: "限价单"}, + limitOrderImmediateTifID: {T: "限价 (i)", Notes: "i = 立刻"}, + marketOrderID: {T: "市价单"}, + cancelOrderID: {T: "取消单"}, + matchStatusNewlyMatchedID: {T: "新匹配"}, + matchStatusMakerSwapCastID: {T: "做市商交换已发送"}, + matchStatusTakerSwapCastID: {T: "接盘商交换已发送"}, + matchStatusMakerRedeemedID: {T: "做市商已赎回"}, + matchStatusRedemptionSentID: {T: "赎回已发送"}, + matchStatusRevokedID: {T: "已撤销 - {{ status }}"}, + matchStatusRefundPendingID: {T: "退款待处理"}, + matchStatusRefundedID: {T: "已退款"}, + matchStatusRedeemPendingID: {T: "赎回待处理"}, + matchStatusRedemptionConfirmedID: {T: "赎回已确认"}, + matchStatusCompleteID: {T: "完成"}, + openWalletErrMsgID: {T: "打开钱包时出错: {{ msg }}"}, + orderAccelerationFeeErrMsgID: {T: "估算加速费用时出错: {{ msg }}"}, + orderAccelerationErrMsgID: {T: "加速订单时出错: {{ msg }}"}, + connectedID: {T: "已连接"}, + disconnectedID: {T: "已断开"}, + invalidCertID: {T: "无效证书"}, + confirmationsID: {T: "确认"}, + takerID: {T: "接盘商"}, + makerID: {T: "做市商"}, + unavailableID: {T: "不可用"}, + emptyDexAddrID: {T: "DEX地址不能为空"}, + selectWalletForFeePaymentID: {T: "选择一个有效的钱包(链)来发布保证金"}, + walletSyncFinishingID: {T: "即将完成"}, + connectWalletErrMsgID: {T: "无法连接 {{ assetName }} 钱包: {{ errMsg }}"}, + takerFoundMakerRedemptionID: {T: "由{{ makerAddr }}赎回"}, + refundImminentID: {T: "将在接下来的几个区块内发生"}, + refundWillHappenAfterID: {T: "退款将在{{ refundAfterTime }}后发生"}, + availableTitleID: {T: "可用"}, + lockedTitleID: {T: "锁定"}, + immatureTitleID: {T: "未成熟"}, + swappingID: {T: "正在交换"}, + bondedID: {T: "已绑定"}, + lockedBalMsgID: {T: "所有资金暂时锁定,以覆盖您的保证金维护、实时订单、匹配和其他活动的费用"}, + immatureBalMsgID: {T: "到款等待确认"}, + lockedSwappingBalMsgID: {T: "资金锁定在结算中"}, + lockedBonBalMsgID: {T: "资金锁定在活动保证金中"}, + reservesDeficitID: {T: "储备赤字"}, + reservesDeficitMsgID: {T: "显示的钱包余额不足以维持保证金水平。如果这种情况持续,您可能需要添加资金以保持完全绑定"}, + bondReservesID: {T: "保证金储备"}, + bondReservesMsgID: {T: "储备资金用于覆盖保证金维护的费用"}, + shieldedID: {T: "隐私保护"}, + shieldedMsgID: {T: "所有资金已被隐私保护"}, + orderID: {T: "订单"}, + lockedOrderBalMsgID: {T: "锁定在未匹配的订单中的资金"}, + creatingWalletsID: {T: "正在创建钱包"}, + addingServersID: {T: "正在连接到服务器"}, + walletRecoverySupportMsgID: {T: "本地 {{ walletSymbol }} 钱包加载失败。请尝试点击下面的“恢复”按钮来修复它"}, + ticketsPurchasedID: {T: "购买 {{ n }} 张票!"}, + ticketStatusUnknownID: {T: "未知"}, + ticketStatusUnminedID: {T: "未进入区块"}, + ticketStatusImmatureID: {T: "未确认"}, + ticketStatusLiveID: {T: "投票中"}, + ticketStatusVotedID: {T: "投票完成"}, + ticketStatusMissedID: {T: "错过投票"}, + ticketStatusExpiredID: {T: "票过期"}, + ticketStatusUnspentID: {T: "票未花出"}, + ticketStatusRevokedID: {T: "撤销"}, + passwordResetSuccessMsgID: {T: "您的密码重置成功。您可以使用新密码登录"}, + browserNtfnEnabledID: {T: "已启用Bison钱包通知"}, + browserNtfnOrdersID: {T: "订单"}, + browserNtfnMatchesID: {T: "匹配"}, + browserNtfnBondsID: {T: "保证金"}, + browserNtfnConnectionsID: {T: "服务器连接"}, + createAssetWalletMsgID: {T: "创建一个{{ asset }}钱包以进行交易"}, + noWalletMsgID: {T: "创建{{ asset1 }}和{{ asset2 }}钱包以进行交易"}, + tradingTierUpdateddID: {T: "交易等级已更新"}, + invalidTierValueID: {T: "无效的等级值"}, + invalidCompsValueID: {T: "无效的竞价值"}, + txTypeUnknownID: {T: "未知"}, + txTypeSendID: {T: "发送"}, + txTypeReceiveID: {T: "接收"}, + txTypeSwapID: {T: "交换"}, + txTypeRedeemID: {T: "赎回"}, + txTypeRefundID: {T: "退款"}, + txTypeSplitID: {T: "拆分"}, + txTypeCreateBondID: {T: "创建保证金"}, + txTypeRedeemBondID: {T: "赎回保证金"}, + txTypeApproveTokenID: {T: "批准代币"}, + txTypeAccelerationID: {T: "加速"}, + txTypeSelfTransferID: {T: "自转账"}, + txTypeRevokeTokenApprovalID: {T: "撤销代币批准"}, + txTypeTicketPurchaseID: {T: "购票"}, + txTypeTicketVoteID: {T: "投票"}, + txTypeTicketRevokeID: {T: "撤销票"}, + txTypeSwapOrSendID: {T: "交换 / 发送"}, + txTypeMixID: {T: "混币"}, + swapOrSendTooltipID: {T: "钱包无法判断此交易是交换还是发送"}, + missingCexCredsID: {T: "同时指定密钥和秘密"}, + matchBufferID: {T: "匹配缓冲"}, + noPlacementsID: {T: "必须指定一个或多个选项"}, + invalidValueID: {T: "无效值"}, + noZeroID: {T: "不允许零值"}, + botTypeBasicMMID: {T: "做市商"}, + botTypeArbMMID: {T: "做市商 + 套利"}, + botTypeSimpleArbID: {Version: 1, T: "套利"}, + botTypeNoneID: {T: "选择一个机器人类型"}, + noCexID: {T: "选择一个交易所进行套利"}, + cexBalanceErrID: {T: "获取{{ cexName }}余额时出错:{{ err }}"}, + pendingID: {T: "待处理"}, + completeID: {T: "完成"}, + archivedSettingsID: {T: "已归档设置"}, + idTransparent: {T: "透明"}, + idNoCodeProvided: {T: "未提供代码"}, + enableAccount: {T: "启用账户"}, + disableAccount: {T: "禁用账户"}, + accountDisabledMsg: {T: "账户已禁用 - 重新启用以更新设置"}, + dexDisabledMsg: {T: "DEX服务器已禁用。访问设置页面以启用并连接到此服务器"}, + idWalletNotSynced: {T: "{{ assetSymbol }}钱包未同步"}, + idWalletNoPeers: {T: "{{ assetSymbol }}钱包没有同行节点"}, + idDepositError: {T: "上次尝试在{{ time }}存入{{ assetSymbol }}失败,错误信息:{{ error }}"}, + idWithdrawError: {T: "上次尝试在{{ time }}提取{{ assetSymbol }}失败,错误信息:{{ error }}"}, + idDEXUnderfunded: {T: "{{ assetSymbol }}钱包资金不足{{ amount }}"}, + idCEXUnderfunded: {T: "{{ cexName }} {{ assetSymbol }}钱包资金不足{{ amount }}"}, + idCEXTooShallow: {T: "{{ cexName }}市场的{{ side }}面深度不足,无法进行套利"}, + idAccountSuspended: {T: "您在{{ dexHost }}的账户已被暂停"}, + idUserLimitTooLow: {T: "您在{{ dexHost }}的账户限额太低,无法放置配置所需的所有订单"}, + idNoPriceSource: {T: "此市场没有可用的预言机或法币汇率源"}, + idCEXOrderbookUnsynced: {T: "{{ cexName }}的订单簿未同步"}, + idDeterminePlacementsError: {T: "下单时出错:{{ error }}"}, + idPlaceBuyOrdersError: {T: "下买单时出错:{{ error }}"}, + idPlaceSellOrdersError: {T: "下卖单时出错:{{ error }}"}, + idCEXTradeError: {T: "上次尝试在{{ time }}进行CEX交易失败,错误信息:{{ error }}"}, + idOrderReportTitle: {T: "{{ side }}订单报告,纪元 #{{ epochNum }}"}, + idCEXBalances: {T: "{{ cexName }}余额"}, + idCausesSelfMatch: {T: "此订单会导致自匹配"}, } var plPL = map[string]*intl.Translation{ From 24cb0a2cfa3cf0f14d2c290f41a61a784ec14044 Mon Sep 17 00:00:00 2001 From: dev-warrior777 <> Date: Sun, 22 Dec 2024 17:41:14 +0800 Subject: [PATCH 2/3] client: New Chinese translations for Login, Bonds, MM, Notifications. --- client/core/locale_ntfn.go | 114 +++++++- client/webserver/jsintl.go | 2 + client/webserver/locales/en-us.go | 2 +- client/webserver/locales/zh-cn.go | 450 ++++++++++++++++++++++++++++-- run_tests_no_bisonw-desktop.sh | 84 ++++++ 5 files changed, 624 insertions(+), 28 deletions(-) create mode 100755 run_tests_no_bisonw-desktop.sh diff --git a/client/core/locale_ntfn.go b/client/core/locale_ntfn.go index df6e4d695d..f4ac476804 100644 --- a/client/core/locale_ntfn.go +++ b/client/core/locale_ntfn.go @@ -640,7 +640,7 @@ var zhCN = map[Topic]*translation{ }, TopicSendSuccess: { subject: intl.Translation{T: "提款已发送"}, - template: intl.Translation{T: "%s %s (%s) 的提款已成功完成。硬币 ID = %s"}, + template: intl.Translation{T: "已成功发送 %s %s 到 %s。交易 ID = %s"}, // alt. %s %s (%s) 的提款已成功完成。硬币 ID = %s }, TopicOrderLoadFailure: { subject: intl.Translation{T: "请求加载失败"}, @@ -650,14 +650,14 @@ var zhCN = map[Topic]*translation{ subject: intl.Translation{T: "下达市价单"}, template: intl.Translation{T: "以市场价格 (%[3]s) 出售 %[1]s %[2]s"}, }, - // [qty, ticker, rate string, token], RETRANSLATE. + // [qty, ticker, rate string, token], RETRANSLATE -> Retranslated. TopicBuyOrderPlaced: { subject: intl.Translation{T: "已下订单"}, - template: intl.Translation{T: "Buying %s %s,值 = %s (%s)"}, + template: intl.Translation{T: "购买 %s %s,价格 = %s(%s)"}, }, TopicSellOrderPlaced: { subject: intl.Translation{T: "已下订单"}, - template: intl.Translation{T: "Selling %s %s,值 = %s (%s)"}, + template: intl.Translation{T: "卖出 %s %s,价格 = %s(%s)"}, // alt. Selling %s %s,值 = %s (%s) }, TopicMissingMatches: { subject: intl.Translation{T: "订单缺失匹配"}, @@ -693,23 +693,23 @@ var zhCN = map[Topic]*translation{ }, TopicBuyOrderCanceled: { subject: intl.Translation{T: "订单取消"}, - template: intl.Translation{T: "买入 %s-%s 的 %s 订单已被取消 (%s)"}, // alt. %s 上 %s-%s 上的 %s 请求已被取消 (%s) + template: intl.Translation{T: "在 %s-%s 上的买单 %s 已被取消(%s)"}, // alt. %s 上 %s-%s 上的 %s 请求已被取消 (%s) alt2. 买入 %s-%s 的 %s 订单已被取消 (%s) }, TopicSellOrderCanceled: { subject: intl.Translation{T: "订单取消"}, - template: intl.Translation{T: "卖出 %s-%s 的 %s 订单已被取消 (%s)"}, // alt. %s 上 %s-%s 上的 %s 请求已被取消 (%s) + template: intl.Translation{T: "在 %s-%s 上的卖单,价格为 %s,已被取消(%s)"}, // alt. %s 上 %s-%s 上的 %s 请求已被取消 (%s) alt2. 卖出 %s-%s 的 %s 订单已被取消 (%s) }, TopicBuyMatchesMade: { subject: intl.Translation{T: "匹配完成"}, - template: intl.Translation{T: "买入 %s-%s %.1f%% 的订单已完成 (%s)"}, // alt. %s 请求超过 %s-%s %.1f%% 已填充(%s) + template: intl.Translation{T: "在 %s-%s 上的买单已完成 %.1f%%(%s)"}, // alt. %s 请求超过 %s-%s %.1f%% 已填充(%s) }, TopicSellMatchesMade: { subject: intl.Translation{T: "匹配完成"}, - template: intl.Translation{T: "卖出 %s-%s %.1f%% 的订单已完成 (%s)"}, // alt. %s 请求超过 %s-%s %.1f%% 已填充(%s) + template: intl.Translation{T: "在 %s-%s 上的卖单已完成 %.1f%%(%s)"}, // alt. %s 请求超过 %s-%s %.1f%% 已填充(%s) alt 2. 卖出 %s-%s %.1f%% 的订单已完成 (%s) }, TopicSwapSendError: { subject: intl.Translation{T: "发送交换时出错"}, - template: intl.Translation{T: "在以 %[3]s 的顺序发送价值 %[1]s %[2]s 的输出的交换时遇到错误"}, // ? 在订单 %s 上发送价值 %.8f %s 的交换输出时遇到错误 + template: intl.Translation{T: "发送 %s 时遇到错误:%v"}, // ? 在订单 %s 上发送价值 %.8f %s 的交换输出时遇到错误 }, TopicInitError: { subject: intl.Translation{T: "交易错误"}, @@ -769,7 +769,7 @@ var zhCN = map[Topic]*translation{ }, TopicFailedCancel: { subject: intl.Translation{T: "取消失败"}, - template: intl.Translation{T: "取消订单 %s 的订单 %s 处于 Epoque 状态 2 个 epoques,现在已被删除。"}, + template: intl.Translation{T: "订单 %s 的取消请求失败,现已删除。订单 %s 的取消请求失败,现已删除。"}, // alt. 取消订单 %s 的订单 %s 处于 Epoque 状态 2 个 epoques,现在已被删除。 }, TopicAuditTrouble: { subject: intl.Translation{T: "审计时的问题"}, @@ -843,6 +843,100 @@ var zhCN = map[Topic]*translation{ subject: intl.Translation{T: "来自DEX的消息"}, template: intl.Translation{T: "%s: %s"}, }, + // Inserted + TopicDexConnectivity: { + subject: intl.Translation{T: "互联网连接"}, + template: intl.Translation{T: "您与 %s 的互联网连接不稳定,请检查您的网络连接", Notes: "args: [host]"}, + }, + TopicWalletPeersWarning: { + subject: intl.Translation{T: "钱包网络问题"}, + template: intl.Translation{T: "%v 钱包没有网络对等节点!", Notes: "args: [asset name]"}, + }, + TopicAsyncOrderFailure: { + subject: intl.Translation{T: "订单处理错误"}, + template: intl.Translation{T: "ID 为 %v 的正在处理订单失败:%v", Notes: "args: order ID, error]"}, + }, + TopicWalletCommsWarning: { + subject: intl.Translation{T: "钱包连接问题"}, + template: intl.Translation{T: "无法与 %v 钱包通信!原因:%v", Notes: "args: [asset name, error message]"}, + }, + TopicBondWalletNotConnected: { + subject: intl.Translation{T: "债券钱包未连接"}, + template: intl.Translation{T: "所选债券资产 %s 的钱包未连接"}, + }, + TopicOrderQuantityTooHigh: { + subject: intl.Translation{T: "超出交易限制"}, + template: intl.Translation{T: "订单数量超出 %s 当前的交易限制", Notes: "args: [host]"}, + }, + TopicWalletPeersRestored: { + subject: intl.Translation{T: "钱包连接已恢复"}, + template: intl.Translation{T: "%v 钱包已重新建立连接。", Notes: "args: [asset name]"}, + }, + // End Inserted + // START NEW + TopicQueuedCreationFailed: { + subject: intl.Translation{T: "创建代币钱包失败"}, + template: intl.Translation{T: "成功创建 %s 钱包后,创建 %s 钱包失败", Notes: "args: [parentSymbol, tokenSymbol]"}, + }, + TopicRedemptionResubmitted: { + subject: intl.Translation{T: "赎回请求已重新提交"}, + template: intl.Translation{T: "您在订单 %s 中的匹配 %s 赎回请求已重新提交"}, + }, + TopicSwapRefunded: { + subject: intl.Translation{T: "兑换已退款"}, + template: intl.Translation{T: "订单 %s 中的匹配 %s 已被对方退款"}, + }, + TopicRedemptionConfirmed: { + subject: intl.Translation{T: "赎回已确认"}, + template: intl.Translation{T: "您在订单 %s 中的匹配 %s 赎回请求已确认"}, + }, + TopicWalletTypeDeprecated: { + subject: intl.Translation{T: "钱包已禁用"}, + template: intl.Translation{T: "您的 %s 钱包类型不再受支持,请创建一个新钱包。"}, + }, + TopicOrderResumeFailure: { + subject: intl.Translation{T: "恢复订单失败"}, + template: intl.Translation{T: "恢复交易处理失败:%v"}, + }, + TopicBondConfirming: { + subject: intl.Translation{T: "正在确认债券"}, + template: intl.Translation{T: "正在等待 %d 个确认,以将债券 %v (%s) 发布到 %s", Notes: "args: [reqConfs, bondCoinStr, assetID, acct.host]"}, + }, + TopicBondConfirmed: { + subject: intl.Translation{T: "债券已确认"}, + template: intl.Translation{T: "新等级 = %d(目标等级 = %d)", Notes: "args: [effectiveTier, targetTier]"}, + }, + TopicBondExpired: { + subject: intl.Translation{T: "债券已过期"}, + template: intl.Translation{T: "新等级 = %d (目标 = %d)。", Notes: "args: [effectiveTier, targetTier]"}, + }, + TopicBondRefunded: { + subject: intl.Translation{T: "债券已退款"}, + template: intl.Translation{T: "债券 %v 为 %v 已退款,扣除交易费后追回 %v 的 %v", Notes: "args: [bondIDStr, acct.host, refundCoinStr, refundVal, Amount]"}, + }, + TopicBondPostError: { + subject: intl.Translation{T: "债券发布错误"}, + template: intl.Translation{T: "保税后 请求错误(将重试):%v (%T)", Notes: "args: [err, err]"}, + }, + TopicBondPostErrorConfirm: { + subject: intl.Translation{T: "债券发布错误"}, + template: intl.Translation{T: "在等待 %s 的债券确认时遇到错误:%v"}, + }, + TopicDexAuthErrorBond: { + subject: intl.Translation{T: "身份验证错误"}, + template: intl.Translation{T: "债券已确认,但连接验证失败:%v", Notes: "args: [err]"}, + }, + TopicAccountRegTier: { + subject: intl.Translation{T: "账户已注册"}, + template: intl.Translation{T: "新等级 = %d", Notes: "args: [effectiveTier]"}, + }, + TopicUnknownBondTierZero: { + subject: intl.Translation{T: "发现未知债券"}, + template: intl.Translation{ + T: "发现未知的 %s 债券并已添加到活跃债券中,但在 %s 的 DEX 上您的目标等级为零。请在设置中设置您的目标等级,以便保持债券并启用自动续期。", + Notes: "args: [bond asset, dex host]", + }, + }, } var plPL = map[Topic]*translation{ diff --git a/client/webserver/jsintl.go b/client/webserver/jsintl.go index 5fe4fd65aa..efedabdd75 100644 --- a/client/webserver/jsintl.go +++ b/client/webserver/jsintl.go @@ -707,6 +707,8 @@ var zhCN = map[string]*intl.Translation{ idOrderReportTitle: {T: "{{ side }}订单报告,纪元 #{{ epochNum }}"}, idCEXBalances: {T: "{{ cexName }}余额"}, idCausesSelfMatch: {T: "此订单会导致自匹配"}, + idCexNotConnected: {T: "{{ cexName }} 未连接"}, + idRemovingBotConfig: {T: "您确定要移除 {{ host }} 上 {{ baseSymbol }}-{{ quoteSymbol }} 市场的配置吗?"}, } var plPL = map[string]*intl.Translation{ diff --git a/client/webserver/locales/en-us.go b/client/webserver/locales/en-us.go index b8c996d1a1..85bfde88be 100644 --- a/client/webserver/locales/en-us.go +++ b/client/webserver/locales/en-us.go @@ -82,7 +82,7 @@ var EnUS = map[string]*intl.Translation{ "posting_bonds_shortly": {T: "Creating bonds..."}, "bond_creation_pending_msg": {T: `In order to trade at bond(s) will be created shortly.`}, "action_required_to_trade": {T: "ACTION REQUIRED TO TRADE"}, - "acct_tier_post_bond": {T: `You account tier is . You need to post new bonds to trade.`}, + "acct_tier_post_bond": {T: `Your account tier is . You need to post new bonds to trade.`}, "enable_bond_maintenance": {T: "Enable bond maintenance from DEX Settings page."}, "Buy": {T: "Buy"}, "Sell": {T: "Sell"}, diff --git a/client/webserver/locales/zh-cn.go b/client/webserver/locales/zh-cn.go index 0b68f012b7..0da298ba6e 100644 --- a/client/webserver/locales/zh-cn.go +++ b/client/webserver/locales/zh-cn.go @@ -27,9 +27,20 @@ var ZhCN = map[string]*intl.Translation{ "remove": {T: "删除"}, "add a file": {T: "添加文件"}, "Submit": {T: "提交"}, - "Confirm Registration": {T: "确认注册"}, - "app_pw_reg": {T: "输入应用程序密码以确认注册DEX。"}, - "reg_confirm_submit": {T: `当您提交此表单时,将从您的钱包中花费资金来支付注册费。`}, + "Skip Registration": {T: "没有账户(仅查看模式)"}, + "Confirm Registration": {Version: 1, T: "确认注册并担保"}, + "app_pw_reg": {Version: 1, T: "输入您的应用密码以确认 DEX 注册和债券创建。"}, + "reg_confirm_submit": {Version: 1, T: `当您提交此表单时,您的钱包资金将暂时锁定在一个保证金合约中,您可以在未来赎回该合约。`}, + "bond_strength": {T: "启用发布额外担保金来抵消惩罚性等级。"}, + "target_tier": {T: "目标等级"}, + "target_tier_tooltip": {T: "这是您希望保持的目标账户等级。如果希望禁用等级维护(不发布新债券),请设置为零。"}, + "compensation_tooltip": {T: "启用发布额外担保金来抵消惩罚性等级"}, + "Actual Tier": {T: "实际等级"}, + "Penalties": {T: "处罚"}, + "Change Tier": {T: "更改等级"}, + "Limit Bonus": {T: "限额奖金"}, + "Score": {T: "得分"}, + "Confirm Bond Options": {T: "确认债券选项"}, "provided_markets": {T: "DEX 提供以下市场:"}, "accepted_fee_assets": {T: "DEX 接受以下费用:"}, "base_header": {T: "基础"}, @@ -40,20 +51,23 @@ var ZhCN = map[string]*intl.Translation{ "Authorize Export": {T: "授权导出"}, "export_app_pw_msg": {T: "输入您的应用程序密码以确认帐户导出"}, "Disable Account": {T: "禁用帐户"}, - "disable_dex_server": {T: "DEX 服务器可在以后的任何时间重新启用(您无需支付费用),只需再次添加它即可。"}, + "disable_dex_server": {T: "此 DEX 服务器可以在未来的任何时间通过设置页面重新启用。"}, "Authorize Import": {T: "授权导入"}, "app_pw_import_msg": {T: "输入您的应用程序密码以确认账户导入"}, "Account File": {T: "账户档案"}, - "Change Application Password": {T: "更改应用程序密码"}, + "Change Application Password": {T: "更改密码"}, "Current Password": {T: "当前密码"}, "New Password": {T: "新密码"}, "Confirm New Password": {T: "确认新密码"}, "cancel_no_pw": {T: "取消剩余订单"}, "cancel_remain": {T: "在取消订单之前,剩余金额可能会发生变化。"}, - "Log In": {T: "登录"}, - "epoch": {T: "epoch"}, + "Log In": {T: "解锁"}, + "epoch": {T: "时代"}, "price": {T: "价格"}, "volume": {T: "交易量"}, + "volume_24": {T: "24小时交易量"}, + "High": {T: "高"}, + "Low": {T: "低"}, "buys": {T: "买入"}, "sells": {T: "卖出"}, "Buy Orders": {T: "买单"}, @@ -61,7 +75,15 @@ var ZhCN = map[string]*intl.Translation{ "Rate": {T: "汇率"}, "Limit Order": {T: "限价单"}, "Market Order": {T: "市价单"}, + "create_account_to_trade": {T: "创建账户以进行交易"}, + "need_to_register_msg": {T: `您需要在 创建账户才能进行交易。`}, + "Create Account": {T: "创建账户"}, "reg_status_msg": {T: `为了在进行交易,注册费支付需要确认。`}, + "posting_bonds_shortly": {T: "正在创建债券..."}, + "bond_creation_pending_msg": {T: `为了在 进行交易,保证金将很快创建。`}, + "action_required_to_trade": {T: "需要采取行动才能交易"}, + "acct_tier_post_bond": {T: `您的账户等级是 。您需要发布新的债券才能交易。`}, + "enable_bond_maintenance": {T: "在 DEX 设置页面启用债券维护"}, "Buy": {T: "买"}, "Sell": {T: "卖"}, "lot_size": {T: "手数"}, @@ -78,8 +100,11 @@ var ZhCN = map[string]*intl.Translation{ "add_a_wallet": {T: `添加一个 钱包`}, "locked": {T: "锁定"}, "immature": {T: "不成熟"}, + "fee balance": {T: "费用余额"}, "Sell Orders": {T: "卖单"}, "Your Orders": {T: "你的订单"}, + "sweep_orders": {T: "隐藏已完全执行的订单"}, + "sweep_order": {T: "隐藏此已完全执行的订单"}, "Recent Matches": {T: "最近的匹配"}, "Type": {T: "类型"}, "Side": {T: "侧面"}, @@ -91,15 +116,17 @@ var ZhCN = map[string]*intl.Translation{ "cancel_order": {T: "取消订单"}, "order details": {T: "订单详情"}, "verify_order": {T: `验证 订单`}, + "prevent_temporary_overlocking": {T: "防止资金的临时过度锁仓"}, "You are submitting an order to": {T: "您正在提交订单至"}, "at a rate of": {T: "汇率"}, "for a total of": {T: "共计"}, "verify_market": {T: "这是一个市价单,将匹配交易列表中的最佳限价单。根据当前市场的缺口率,您可能会收到大约"}, "auth_order_app_pw": {T: "输入您的应用程序密码授权此订单。"}, "lots": {T: "手数"}, - "order_disclaimer": {T: `请注意:交易需要时间结算,您不能关闭 DEX 客户端软件, - 以及 钱包软件,直到 - 结算完成。结算可能在几分钟内完成,也可能需要几个小时完成。`}, + "order_disclaimer": {T: `重要:交易需要时间结算,您不能关闭 DEX 客户端软件, + 以及 钱包软件,直到 结算完成。结算可能在几分钟内完成,也可能需要几个小时完成。`}, + "acknowledge_and_hide": {T: "确认并隐藏"}, + "show_disclaimer": {T: "查看警告"}, "Order": {T: "订单"}, "see all orders": {T: "查看所有订单"}, "Exchange": {T: "交易"}, @@ -107,7 +134,7 @@ var ZhCN = map[string]*intl.Translation{ "Offering": {T: "提供"}, "Asking": {T: "询问"}, "Fees": {T: "费用"}, - "order_fees_tooltip": {T: "链上交易费用,通常由矿工收取。Decred DEX 不收取任何交易费用。"}, + "order_fees_tooltip": {T: "链上交易费用,通常由矿工收取。DEX 不收取任何交易费用。"}, "Matches": {T: "匹配"}, "Match ID": {T: "匹配 ID"}, "Time": {T: "时间"}, @@ -123,23 +150,29 @@ var ZhCN = map[string]*intl.Translation{ "apply": {T: "申请"}, "Assets": {T: "资产"}, "Trade": {T: "交易"}, - "Set App Password": {T: "设置应用程序密码"}, - "reg_set_app_pw_msg": {T: "设置您的应用程序密码。此密码将保护您的 DEX 帐户密钥和连接的钱包。"}, + "Set App Password": {T: "新密码"}, + "reg_set_app_pw_msg": {T: `设置您的应用程序密码。此密码将保护您的 帐户密钥和连接的钱包。`}, "Password Again": {T: "再次输入密码"}, - "Add a DEX": {T: "添加 DEX"}, + "Add a DEX": {T: "添加 DCRDEX 服务器"}, "Pick a server": {T: "选择服务器"}, "reg_ssl_needed": {T: "看起来我们没有此 DEX 的 SSL 证书。添加服务器的证书以继续。"}, "Dark Mode": {T: "暗模式"}, "Show pop-up notifications": {T: "显示弹出通知"}, "Account ID": {T: "账户 ID"}, "Export Account": {T: "退出账户"}, - "simultaneous_servers_msg": {T: "Decred DEX 客户端支持同时使用任意数量的 DEX 服务器。"}, + "simultaneous_servers_msg": {T: `Decred 客户端支持同时使用任意数量的 服务器。`}, "Change App Password": {T: "更改应用程序密码"}, + "enable_browser_ntfn": {T: "启用桌面通知"}, + "browser_ntfn_blocked": {T: "浏览器通知目前被阻止。请在浏览器中解除对该站点的阻止,以接收通知。"}, + "enable_browser_ntfn_info": {T: "即使此窗口不活跃,桌面通知仍会出现。当您打开其他应用程序时,这会很有帮助,因为您将收到 DCRDEX 事件的通知。您可以在下方自定义您希望接收的通知类型。"}, + "Save Notifications": {T: "保存通知"}, "Build ID": {T: "构建 ID"}, "Connect": {T: "连接"}, "Send": {T: "发送"}, "Deposit": {T: "存款"}, + "Receive": {T: "接收"}, "Lock": {T: "锁"}, + "New Address": {T: "新地址"}, "New Deposit Address": {T: "新存款地址"}, "Address": {T: "地址"}, "Amount": {T: "金额"}, @@ -160,11 +193,13 @@ var ZhCN = map[string]*intl.Translation{ "Restore from seed": {T: "从种子中恢复"}, "Import Account": {T: "导入账户"}, "no_wallet": {T: "没有钱包"}, + "Token on": {T: "启用令牌"}, "create_a_x_wallet": {T: "创建 钱包"}, "dont_share": {T: "不要分享,不要丢失。"}, "Show Me": {T: "查看"}, "Wallet Settings": {T: "钱包设置"}, "add_a_x_wallet": {T: `添加一个 钱包`}, + "ready": {T: "准备好"}, "off": {T: "关"}, "Export Trades": {T: "退出交易"}, "change the wallet type": {T: "更改钱包类型"}, @@ -174,7 +209,30 @@ var ZhCN = map[string]*intl.Translation{ "1 Sync the Blockchain": {T: "1: 同步区块链"}, "Progress": {T: "进度"}, "remaining": {T: "剩余"}, + "2 Fund your Wallet": {T: "2:为您的钱包充值"}, + "bond_lock": {T: "担保金锁定"}, + "bond_definition": {T: "忠诚担保是临时锁定在链上合约中的资金。合同到期后,您的钱包将收回这些资金。在主网中,资金被锁定2个月。"}, + "bonds_can_be_revoked": {T: "如果账户持续从事破坏性行为(如违约),保证金可以被撤销。被撤销的保证金可以在继续正常交易的情况下重新激活。"}, + "bond_cost_breakdown": {T: `包括作为您的债券,以及作为交易费用`}, + "bigger_bonds_higher_limit": {T: "您可以创建更大的担保金来提高您的交易等级,允许一次性交易更多数量。更大的担保金还增加了您在交易特权被暂停之前的违规容忍度。"}, + "limits_reputation": {T: "通过参与正常的交易活动并成功完成交易,您将逐步建立声誉,并提高交易限额。"}, + "wallet_bond_reserves": {T: "您的钱包将自动保留所需资金,以保持您在所选交易等级的担保,并会广播新担保以替换即将到期的担保。您可以在交易所的设置面板中降低或提高交易等级。将交易等级设置为零将禁用您的帐户(当您现有的担保到期时)。"}, + "Got it": {T: "明白了"}, + "Trading Limits": {T: "交易限额"}, + "What is a fidelity bond": {T: "什么是忠诚债券"}, + "what_s_a_bond": {T: "什么是担保金?"}, + "order_form_remaining_limit": {T: ` 批次剩余,当前交易等级:`}, + "Parcel Size": {T: "包裹大小"}, + "Trading Limit": {T: "交易限额"}, + "Current Usage": {T: "当前使用情况"}, + "score_factors": {T: "通过成功完成交易来提高您的得分。未采取行动将降低您的得分。"}, + "Bond amount": {T: "债券金额"}, + "Reserves for tx fees": {T: "为交易费用保留的资金,以维持您的债券"}, + "Tx Fee Balance": {T: "交易手续费余额"}, "Your Deposit Address": {T: "您钱包的存款地址"}, + "Send enough for bonds": {T: `确保您发送足够的资金以涵盖网络费用。您可以随意向钱包充值,因为在下一步中只会使用保证金金额。充值需要确认才能继续。`}, + "Send enough with estimate": {T: `至少存入 XYZ 以覆盖您的保证金和费用。您可以向钱包充值任意金额,但只有所需金额会在下一步中使用。钱包可能需要确认新资金才能继续。`}, + "Send funds for token": {T: `存入至少 XYZ XYZ 以覆盖费用。您可以将任意数量的资金存入钱包,只有所需金额会用于下一步。存款必须确认才能继续。`}, "add a different server": {T: "添加不同的服务器"}, "Add a custom server": {T: "添加自定义服务器"}, "plus tx fees": {T: "+ 交易费"}, @@ -232,15 +290,20 @@ var ZhCN = map[string]*intl.Translation{ "Synchronizing": {T: "同步"}, "wallet_wait_synced": {T: "同步后会创建钱包"}, "Create a Wallet": {T: "创建钱包"}, - "Receive": {T: "接收"}, ":title:ready": {T: "准备就绪"}, - "ready": {T: "已准备"}, "Wallet Type": {T: "钱包类型"}, "Peer Count": {T: "节点数"}, "Sync Progress": {T: "同步进度"}, "Settings": {T: "设置"}, "asset_name Markets": {T: " 市场"}, "Host": {T: "主机"}, + "Trading Tier": {T: "交易等级"}, + "Bond Lock": {T: "债券锁定"}, + "Fee Reserves": {T: "费用储备"}, + "Select your bond asset": {T: "选择您的担保金资产"}, + "choose a different asset": {T: "选择其他资产"}, + "Choose your trading tier": {T: "选择您的交易等级"}, + "trading_tier_message": {T: "提高您的交易等级以启用更大金额的交易。交易限制也随着声誉增长。"}, "No Recent Activity": {T: "最近没有活动"}, "Recent asset_name Activity": {T: "最近的 活动"}, "other_actions": {T: "其它活动"}, @@ -258,9 +321,362 @@ var ZhCN = map[string]*intl.Translation{ "Maker Redemption": {T: "挂单赎回"}, "Taker Redemption": {T: "吃单赎回"}, "Pending": {T: "发送中"}, + "Mempool": {T: "内存池"}, "disable_wallet": {T: "禁用钱包"}, "enable_wallet": {T: "启用钱包"}, "disable_wallet_warning": {T: "注意:该钱包在你启动DEX客户端软件时是不会连接的,只有开启后才能使用。"}, "enable_wallet_message": {T: "钱包将恢复运行,可能需要一些时间来同步。"}, "Disabled": {T: "已禁用"}, + "txfee_not_available": {T: "当前无法获取交易费用"}, + "Fee unavailable": {T: "费用不可用"}, + "fiat_exchange_rate_msg": {T: "不同的资产子集可能提供法定货币汇率。您应该选择所有可以接受的来源,以便获得大多数资产的法定货币汇率。来自多个来源的资产法定货币汇率将使用这些来源的平均值。注意:dcrdata 仅为 BTC 和 DCR 提供法定货币汇率。"}, + "delete_archived_records": {T: "删除存档记录"}, + "date_time": {T: "日期和时间"}, + "delete_all_archived_records": {T: "保持未选中以删除所有存档记录"}, + "show_archived_date_msg": {T: "指定保留的最新记录日期"}, + "archived_date_tooltip": {T: "在您指定的日期和时间之前创建的已归档订单和匹配将从数据库中删除。"}, + "save_matches_to_file": {T: "保存匹配到 CSV 文件"}, + "save_orders_to_file": {T: "将订单保存为 CSV 文件"}, + "save_orders_to_file_msg": {T: "可选:是否将删除的订单保存到bisonw数据目录中的CSV文件。默认值为否。"}, + "save_matches_to_file_msg": {T: "可选:是否将已删除的匹配保存到 bisonw 数据目录的 CSV 文件中。默认值为 false。"}, + // Market maker bot + "Market Making": {T: "做市"}, + "Off": {T: "关闭"}, + "whats_a_market_maker": {T: "添加一个做市商机器人来创建市场。做市商通过在市场的订单簿两侧策略性地保持订单来创建市场。除了潜在的利润外,做市商还通过提供流动性和限制滑点来改善市场的健康状况。"}, + "Add a Market Maker Bot": {T: "添加市场做市机器人"}, + "Add another bot": {T: "添加另一个机器人"}, + "Market Maker Settings": {T: "做市商设置"}, + "strategy_percent_plus": {T: "差距从盈亏平衡点开始,即买卖组合产生利润的最小点差,然后加上指定的点差,计算方式为中间点价的百分比。"}, + "strategy_percent": {T: "差距设置为中间价的指定百分比。"}, + "strategy_absolute_plus": {T: "差距从盈亏平衡点开始,即买卖组合产生利润的最小点差,然后将指定的汇率差异添加到两侧。"}, + "strategy_absolute": {T: "差距设置为中间差距的左右指定值,总差距为指定值的两倍。"}, + "strategy_multiplier": {T: "差距设置为盈亏平衡点差的指定倍数,盈亏平衡点差是使买卖组合产生利润的最小差距。"}, + "Make a Market": {T: "创建市场"}, + "Editing Program": {T: "编辑程序"}, + "exit edit mode": {T: "退出编辑模式"}, + "per side": {T: "每方"}, + "Start_loudly": {T: "开始"}, + "Update": {T: "更新"}, + "Show other settings": {T: "显示其他设置"}, + "Hide settings": {T: "隐藏设置"}, + "lot_commit_bullet": {T: "总承诺为 2 x 批次"}, + "funds_split_bullet": {T: "起始资金可以放在一方或分开"}, + "target_maint_bullet": {T: "程序维护当前未完成的挂单"}, + "no_limit_bullet": {T: "结算批次数量没有限制"}, + "Your Programs": {T: "您的程序"}, + "No programs to display": {T: "没有程序可显示"}, + "Running": {T: "正在运行"}, + "Pause": {T: "暂停"}, + "Paused": {T: "已暂停"}, + "Start": {T: "开始"}, + "Drift tolerance": {T: "漂移容忍度"}, + "Order persistence": {T: "订单持久性"}, + "Oracle bias": {T: "预言机偏差"}, + "Multiplier": {T: "倍数"}, + "Oracle weight": {T: "预言机权重"}, + "Configure": {T: "配置"}, + "Retire": {T: "退休"}, + "Lots": {T: "批次"}, + "show advanced options": {T: "显示高级选项"}, + "hide advanced options": {T: "隐藏高级选项"}, + "manage_peers": {T: "管理对等节点"}, + "enter_peer_address": {T: "请输入对等地址"}, + "add_peer": {T: "添加对等节点"}, + "address": {T: "地址"}, + "source": {T: "来源"}, + "connected": {T: "已连接"}, + "Remove": {T: "移除"}, + "unready_wallets_msg": {T: "您的钱包必须连接并解锁才能处理交易。请尽快解决!"}, + "Error": {T: "错误"}, + "configuration guide": {T: "配置指南"}, + // Approve/Unapprove Tokens + "Approve": {T: "批准"}, + "approve_token_text": {Version: 1, T: `为了交易代币,您必须批准交换合约代表您处理代币。这是每个代币的一次性操作。

预计审批交易的费用为 `}, + "token_approval_tx_msg": {T: "您的代币授权已提交,交易 ID 为:"}, + "approval_required_buy": {T: "购买前需要进行令牌授权"}, + "approval_required_sell": {T: "卖出之前需要批准代币"}, + "approval_required_both": {T: "交易前需要进行代币授权"}, + "disallow_token": {T: `移除令牌授权`}, + "unapprove_token_for": {T: `移除对 的代币授权`}, + "unapprove_token_version": {T: `移除代币的授权,版本:`}, + "unapprove_token_text": {T: `如果您取消此版本交换合约的授权,您将无法进行交易,直到重新授权。

取消授权的预计交易费用为 `}, + "version": {T: "版本"}, + "used_by_dex": {T: "由 DEX 使用"}, + "no_token_allowances": {T: "您尚未为此代币授予任何交换合约的授权"}, + "token_unapproval_tx_msg": {T: `您的代币授权已被移除,交易 ID 为:`}, + "approval_change_pending": {T: "审批变更待处理"}, + // Init page + "Quick Placements": {Version: 1, T: "快速放置"}, + "quickconfig_server_header": {T: "我们可以连接到这些服务器"}, + "quickconfig_wallet_header": {T: "我们现在可以激活这些本地钱包。请在钱包视图中配置更多钱包。"}, + "quickconfig_server_error_header": {T: "连接以下服务器时遇到错误。您可以从设置界面重新尝试。"}, + "quickconfig_wallet_error_header": {T: "在创建以下钱包时遇到错误。您可以在钱包视图中配置钱包。"}, + "Continue": {T: "继续"}, + "Backup App Seed": {T: "备份应用种子"}, + "seed_backup_implore": {T: "强烈建议您现在备份应用种子。应用种子对于恢复您的忠诚债券和原生钱包至关重要。"}, + "Backup Now": {T: "立即备份"}, + "Skip this step for now": {T: "暂时跳过此步骤"}, + "save_seed_instructions": {T: "请将以下种子保存在安全的地方。不要与任何人分享。"}, + "Done": {T: "完成"}, + "gap_strategy_multiplier": {T: "倍数"}, + "gap_strategy_absolute": {T: "绝对值"}, + "gap_strategy_absolute_plus": {T: "绝对加成"}, + "gap_strategy_percent": {T: "百分比"}, + "gap_strategy_percent_plus": {T: "百分比加成"}, + "settings_updated": {T: "设置已更新!"}, + "add_a_bot": {T: "添加机器人"}, + "start_market_making": {T: "开始"}, + "stop_market_making": {T: "停止"}, + "enabled": {T: "已启用"}, + "running": {T: "运行中"}, + "bot_type": {T: "机器人类型"}, + "base_balance": {T: "基础余额"}, + "quote_balance": {T: "报价余额"}, + "enable_rebalance_tooltip": {T: "根据需要在钱包和 CEX 之间转移资金,无需提示"}, + "cex_alloc_tooltip": {T: "初始分配给此机器人的交易所余额数量"}, + "arb_minbal_tooltip": {T: "在发起存款或取款之前允许的最低余额"}, + "arb_transfer_tooltip": {T: "可转移的最小金额"}, + "Select a Market": {T: "选择一个市场"}, + "Arbitrage Rebalance": {T: "套利再平衡"}, + "Minimum Balance": {T: "最低余额"}, + "Minimum Transfer": {T: "最低转账"}, + "update_settings": {Version: 1, T: "保存设置"}, + "create_bot": {T: "创建机器人"}, + "reset_settings": {T: "重置设置"}, + "gap_strategy": {T: "差距策略"}, + "gap_strategy_tooltip": {T: "乘数:盈亏平衡差距的倍数,\n绝对值:设置一个绝对的卖买差价,\n绝对加:绝对值 + 增加盈亏平衡差距,\n百分比:差距设置为现货价格的百分比,\n百分比加:百分比 + 增加盈亏平衡差距"}, + "buy_placements": {T: "购买位置"}, + "buy_placements_tooltip": {T: "为机器人定义买入位置。如果余额不足以下所有订单,机器人将按优先级顺序下单。"}, + "sell_placements": {T: "卖单位置"}, + "sell_placements_tooltip": {T: "为机器人定义卖出位置。如果余额不足以下所有订单,机器人将按优先级顺序下单。"}, + "priority": {T: "优先级"}, + "use_oracles": {T: "使用预言机"}, + "use_oracles_tooltip": {T: "如果选中,机器人将结合 DEX 中间差距与其他交易所的汇率来确定订单下单汇率。"}, + "oracle_weighting_tooltip": {T: "在确定订单下单汇率时,给予预言机汇率的权重。DEX市场流动性较低时,使用更高的权重,以避免操纵。"}, + "oracle_bias_tooltip": {T: "在使用预言机汇率来确定订单价格之前,先按此数值调整预言机汇率。"}, + "empty_market_rate": {T: "空市场汇率"}, + "empty_market_rate_tooltip": {T: "如果 DEX 市场为空且没有预言机可用,可以选择性提供一个汇率。"}, + "quote_asset_balance_tooltip": {T: "为此机器人分配的报价资产数量。如果此范围的上限小于 100%,则意味着其余的余额已分配给其他机器人。"}, + "drift_tolerance_tooltip": {T: "订单可以偏离理想价格的最大范围,超过此范围后将被取消并重新预定。"}, + "order_persistence_tooltip": {T: "CEX 订单在没有立即匹配的情况下允许保留的时间"}, + "no_balance_available": {T: "没有可用余额"}, + "wallet_settings": {T: `钱包设置`}, + "cex_rebalance": {T: `再平衡设置`}, + "Oracles": {T: "预言机"}, + "loading_oracles": {T: "正在加载预言机..."}, + "no_oracles": {T: "此市场没有可用的预言机"}, + "fiat_rates": {T: "法定货币汇率"}, + "market_making_running": {T: "市场做市正在运行"}, + "cannot_manually_trade": {T: "在市场做市运行时,您不能手动下单"}, + "back": {T: "返回"}, + "current_tier_tooltip": {T: "当前等级由活动债券表示。提高您的目标等级以提升交易限额,并抵消可能的处罚。"}, + "Reset App Password": {T: "重置应用密码"}, + "reset_app_pw_msg": {T: "使用您的应用种子重置应用密码。如果您提供正确的应用种子,您可以使用新密码重新登录。"}, + "Forgot Password": {T: "忘记密码?"}, + "subtract_fees_from_amount": {T: "从发送的金额中扣除费用"}, + "Instructions:": {T: "说明:"}, + "URL": {T: "网址"}, + // Staking UI + "Price": {T: "价格"}, + "Ticket": {T: "票券"}, + "Staking": {T: "质押"}, + "Active tickets": {T: "活跃票券"}, + "Currently Queued": {T: "当前排队"}, + "Immature tickets": {T: "未成熟的票券"}, + "Queued tickets": {T: "排队中的票券"}, + "Tickets bought": {T: "已购买票券"}, + "Total rewards": {T: "总奖励"}, + "Votes cast": {T: "已投票"}, + "VSP": {T: "VSP"}, + "select_vsp_from_list": {T: "选择一个投票服务提供商"}, + "Or add custom VSP URL:": {T: "或添加自定义 VSP URL:"}, + "Custom VSP URL": {T: "自定义 VSP URL"}, + "Set Votes": {T: "设置投票"}, + "agendas": {T: "议程"}, + "Agendas": {T: "议程"}, + "treasury spends": {T: "财政支出"}, + "staking_unavailable_for_rpc": {T: "使用 SPV 的 RPC 钱包无法进行质押"}, + "Purchase Tickets": {T: "购买票券"}, + "Tickets": {T: "票券"}, + "Ticket Price": {T: "票价"}, + "Vote Reward": {T: "投票奖励"}, + "fee_rate_percent": {T: "费用率(%)"}, + "Live Tickets": {T: "实时票务"}, + "Current Price": {T: "当前价格"}, + "Available Balance": {T: "可用余额"}, + "ticket_qty_label": {T: "多少个?"}, + "Ticket History": {T: "票务历史"}, + "No tickets to show": {T: "没有票据显示"}, + "Treasury Spends": {T: "财政支出"}, + "No": {T: "否"}, + "Yes": {T: "是"}, + "Treasury Keys": {T: "财库密钥"}, + "bonds_pending_refund": {T: "待退款的债券"}, + "asset_name tx_history": {T: ` 交易历史`}, + "load_earlier_transactions": {T: "加载早期交易..."}, + "ID": {T: "ID"}, + "no_tx_history": {T: "没有交易记录"}, + "tx_details": {T: "交易详情"}, + "fee": {T: "费用"}, + "tx_id": {T: "交易 ID"}, + "bond_id": {T: "担保 ID"}, + "locktime": {T: "锁定时间"}, + "recipient": {T: "接收方"}, + "block": {T: "区块"}, + "timestamp": {T: "时间戳"}, + "nonce": {T: "随机数"}, + "Enable Privacy": {T: "启用隐私"}, + "Privacy": {T: "隐私"}, + "Enable": {T: "启用"}, + "Disable Privacy": {T: "禁用隐私"}, + "Configure Privacy": {T: "配置隐私"}, + "Privacy active": {T: "隐私已激活"}, + "Privacy off": {T: "隐私关闭"}, + "staking_disabled": {T: `购票功能已被 禁用。`}, + "loading privacy status": {T: "加载隐私状态"}, + "mixing_pw_prompt": {T: "输入您的密码以解锁钱包并开启隐私"}, + "cspp_addr": {T: "CSPP 服务器地址"}, + "cspp_how": {T: "StakeShuffle 创建的输出无法与之前的链上活动直接关联。虽然输出金额在这种隐私形式下仍然可见,但可追踪性的破坏意味着您的链上历史不能再从公开数据中推断出来。"}, + "privacy_intro": {T: "启用隐私时,您的所有资金将通过一个地址历史混淆服务,使用名为StakeShuffle的协议进行处理。"}, + "decred_privacy": {T: "Decred 的隐私形式非常强大,因为 Decred 钱包将隐私与质押集成,促进了一个始终较大的匿名集,这是隐私的关键特性。"}, + "privacy_optional": {T: "隐私是完全可选的,可以随时禁用。隐私相关的交易费用较高,但这些费用通常较低。"}, + "privacy_unlocked": {T: "在混币过程中,钱包必须保持解锁状态。"}, + "bots_running_view_only": {T: "机器人正在运行,您处于仅查看模式。"}, + "select_a_cex_prompt": {T: "选择一个交易所以启用套利功能"}, + "Market not available": {T: "市场不可用"}, + "bot_profit_title": {T: "选择您的利润阈值"}, + "bot_profit_explainer": {T: "套利机器人将仅尝试能够带来最低利润水平的交易"}, + "configure_cex_prompt": {T: "配置您的交易所 API 以启用套利功能。"}, + "API Key": {T: "API 密钥"}, + "API Secret": {T: "API 密钥"}, + "Available": {T: "可用"}, + "Locked": {T: "已锁定"}, + "profit_loss": {T: "利润 / 损失"}, + "base_change": {T: "基础变动"}, + "quote_change": {T: "报价变动"}, + "base_fees": {T: "基础费用"}, + "quote_fees": {T: "报价费用"}, + "run_logs": {T: "运行日志"}, + "previous_run_logs": {T: "查看先前运行日志"}, + "previous_mm_runs": {T: "之前的做市运行"}, + "start_time": {T: "开始时间"}, + "end_time": {T: "结束时间"}, + "logs": {T: "日志"}, + "logs_for": {T: "日志记录"}, + "view_logs": {T: "查看日志"}, + "swap_transaction": {T: "兑换交易"}, + "redeem_transaction": {T: "兑换交易"}, + "refund_transaction": {T: "退款交易"}, + "funding_transaction": {T: "资金交易"}, + "transaction_id": {T: "交易 ID"}, + "credited_amt": {T: "到账金额"}, + "amt_received": {T: "收到的金额"}, + "dex_order_details": {T: "DEX 订单详情"}, + "cex_order_details": {T: "CEX 订单详情"}, + "deposit_details": {T: "存款详情"}, + "withdrawal_details": {T: "提现详情"}, + "base_filled": {T: "基础已填充"}, + "quote_filled": {T: "报价已成交"}, + "Details": {T: "详情"}, + "Fee Allocation": {T: "费用分配"}, + "Booking reserves": {T: "预定储备"}, + "Swap funding": {T: "交换资金"}, + "swaps": {T: "兑换"}, + "register_to_enable_mm": {T: `在 注册以启用交易`}, + "No markets available": {T: "暂无市场"}, + "Arb": {T: "套利"}, + "Choose Your Bot": {T: "选择您的机器人"}, + "only_basic_mm_no_more_cexes": {T: "仅提供基本的做市机器人。如需启用套利选项,请配置您的交易所 API。"}, + "only_basic_mm_more_cexes": {T: "此市场仅提供基础做市机器人"}, + "configure_more_cexes": {T: "配置其他交易所以最大化您的选择。"}, + "Basic Market Maker": {T: "基础做市商"}, + "mm_plus_arb": {T: "市场做市 + 套利"}, + "Basic Arbitrage": {T: "基础套利"}, + "Fix errors": {T: "修复错误"}, + "Commited": {T: "已承诺"}, + "Required": {T: "必填"}, + "OK": {T: "确定"}, + "remote exchange gap": {T: "远程交易所差距", Notes: "spread on CEX order book"}, + "Match buffer": {T: "匹配缓冲区"}, + "Price increment": {T: "价格增量"}, + "Profit threshold": {T: "利润阈值"}, + "Lot Size USD": {T: "每单大小 (USD)"}, + "Lot Size": {T: "批量大小"}, + "Lots per side": {T: "每边批量"}, + "Lots per level": {T: "每级数量"}, + "Price levels per side": {T: "每边价格等级"}, + "Configure manually": {T: "手动配置"}, + "Loading market data": {T: "加载市场数据"}, + "on": {T: "开启"}, + "err_with_cex_creds": {T: "连接这些凭证时遇到错误"}, + "approve_token_wallet_addr": {T: ` address: 地址:`}, + "Available fee balance": {T: "可用费用余额"}, + "add_provider_tooltip": {T: "您正在使用默认的公共 RPC 提供商。这些提供商可能会过时或不可靠。请指定您信任的提供商。"}, + "add_custom_rpc_provider": {T: "添加自定义RPC提供商"}, + "Profit": {T: "利润"}, + "Inventory": {T: "库存"}, + "Booked orders": {T: "已预定订单"}, + "Fee reserves": {T: "费用储备"}, + "Pending deposits": {T: "待处理存款"}, + "Pending withdrawals": {T: "待处理的提现"}, + "Settled matches": {T: "已结算的匹配"}, + "Traded": {T: "已交易"}, + "Basis price": {T: "基准价格"}, + "Fee gap": {T: "费用差距"}, + "Remote gap": {T: "远程差距"}, + "Round_trip fees": {T: "往返费用"}, + "feegap_tooltip": {T: "为考虑链上交易费用所需的费率调整"}, + "remotegap_tooltip": {T: "链接的 CEX 市场上的买卖差价"}, + "max_zero_no_fees": {T: ` 余额 < 最小费用 ~`}, + "max_zero_no_bal": {T: `低 余额`}, + "Wallet Options": {T: "钱包选项"}, + "balance_diff": {T: "余额差异"}, + "usd_diff": {T: "美元差异"}, + "usd_rate": {T: "美元汇率"}, + "dex_sell": {T: "DEX 卖单"}, + "dex_buy": {T: "DEX 购买"}, + "cex_sell": {T: "CEX 卖单"}, + "cex_buy": {T: "CEX 中心化交易所购买"}, + "deposit": {T: "存款"}, + "withdrawal": {T: "提取"}, + "filters": {T: "筛选器"}, + "Apply": {T: "应用"}, + "Block Sync": {T: "区块同步"}, + "Balance Discovery": {T: "余额发现"}, + "Finding Addresses": {T: "正在查找地址"}, + "Hide Mixing Transactions": {T: "隐藏混合交易"}, + "Redeem game code": {T: "兑换游戏代码"}, + "Redeem Game Code": {T: "兑换游戏代码"}, + "Code": {T: "代码"}, + "Message_optional": {T: "消息(可选)"}, + "Game code redeemed": {T: "游戏码已兑换"}, + "Transaction": {T: "交易"}, + "Value": {T: "价值"}, + "Prepaid bond redeemed": {T: "预付担保金已兑换!"}, + "Enable Account": {T: "启用账户"}, + "Show trading tier info": {T: "显示交易等级信息"}, + "Hide trading tier info": {T: "隐藏交易等级信息"}, + "Show reputation": {T: "显示声誉"}, + "Hide reputation": {T: "隐藏声誉"}, + "buy_orders_success": {T: "所有买单已成功下单"}, + "sell_orders_success": {T: "所有卖单已成功下单"}, + "buy_orders_failed": {T: "无法下达所有买单"}, + "sell_orders_failed": {T: "无法下达所有卖单"}, + "Order report": {T: "订单报告"}, + "Remaining": {T: "剩余"}, + "Used": {T: "已使用"}, + "Deficiency": {T: "缺失"}, + "Deficiency with Pending": {T: "待处理的缺失"}, + "Standing Lots": {T: "持仓批次"}, + "Ordered Lots": {T: "已下单批次"}, + "Arb Rate": {T: "套利率"}, + "Required DEX": {T: "所需 DEX"}, + "Required CEX": {T: "所需 CEX"}, + "Used DEX": {T: "已使用 DEX"}, + "Used CEX": {T: "使用的 CEX"}, + "Causes Self Match": {T: "导致自成交"}, + "Priority": {T: "优先级"}, + "Wallet Balances": {T: "钱包余额"}, + "Placements": {T: "投放"}, + "removing_bot_config": {T: "正在删除机器人配置"}, } diff --git a/run_tests_no_bisonw-desktop.sh b/run_tests_no_bisonw-desktop.sh new file mode 100755 index 0000000000..72bd3d6305 --- /dev/null +++ b/run_tests_no_bisonw-desktop.sh @@ -0,0 +1,84 @@ +#!/usr/bin/env bash +set -ex + +dir=$(pwd) + +GV=$(go version | sed "s/^.*go\([0-9.]*\).*/\1/") +echo "Go version: $GV" + +# Ensure html templates pass localization. +go generate -x ./client/webserver/site # no -write + +# list of all modules to test +modules=". /dex/testing/loadbot /client/cmd/bisonw-desktop" + +# For each module, run go mod tidy, build and run test. +for m in $modules +do + if [ "$dir/$m" == "/home/dev/dex/dcrdex//client/cmd/bisonw-desktop" ] ; then + echo "skipping bisonw-desktop" + else + cd "$dir/$m" + + # Run `go mod tidy` and fail if the git status of go.mod and/or + # go.sum changes. Only do this for the latest Go version. + if [[ "$GV" =~ ^1.21 ]]; then + MOD_STATUS=$(git status --porcelain go.mod go.sum) + go mod tidy + UPDATED_MOD_STATUS=$(git status --porcelain go.mod go.sum) + if [ "$UPDATED_MOD_STATUS" != "$MOD_STATUS" ]; then + echo "$m: running 'go mod tidy' modified go.mod and/or go.sum" + git diff --unified=0 go.mod go.sum + exit 1 + fi + fi + + # run tests + env GORACE="halt_on_error=1" go test -race -short ./... + fi +done + +cd "$dir" + +# Print missing Core notification translations. +go run ./client/core/localetest/main.go + +# -race in go tests above requires cgo, but disable it for the compile tests below +export CGO_ENABLED=0 +go build ./... +go build -tags harness -o /dev/null ./client/cmd/simnet-trade-tests +go build -tags systray -o /dev/null ./client/cmd/bisonw + +go test -c -o /dev/null -tags live ./client/webserver +go test -c -o /dev/null -tags harness ./client/asset/dcr +go test -c -o /dev/null -tags electrumlive ./client/asset/btc +go test -c -o /dev/null -tags harness ./client/asset/btc/livetest +go test -c -o /dev/null -tags harness ./client/asset/ltc +go test -c -o /dev/null -tags harness ./client/asset/bch +go test -c -o /dev/null -tags harness ./client/asset/firo +go test -c -o /dev/null -tags harness ./client/asset/eth +go test -c -o /dev/null -tags rpclive ./client/asset/eth +go test -c -o /dev/null -tags harness ./client/asset/zec +go test -c -o /dev/null -tags harness ./client/asset/dash +go test -c -o /dev/null -tags harness ./client/asset/firo +go test -c -o /dev/null -tags rpclive ./client/asset/polygon +go test -c -o /dev/null -tags live ./dex/testing/firo/test +go test -c -o /dev/null -tags live ./server/noderelay +go test -c -o /dev/null -tags dcrlive ./server/asset/dcr +go test -c -o /dev/null -tags btclive ./server/asset/btc +go test -c -o /dev/null -tags ltclive ./server/asset/ltc +go test -c -o /dev/null -tags bchlive ./server/asset/bch +go test -c -o /dev/null -tags dogelive ./server/asset/doge +go test -c -o /dev/null -tags zeclive ./server/asset/zec +go test -c -o /dev/null -tags zcllive ./server/asset/zcl +go test -c -o /dev/null -tags firolive ./server/asset/firo +go test -c -o /dev/null -tags harness ./server/asset/eth +go test -c -o /dev/null -tags pgonline ./server/db/driver/pg + +# Return to initial directory. +cd "$dir" +# golangci-lint (github.com/golangci/golangci-lint) is used to run each +# static checker. + +# check linters +golangci-lint -c ./.golangci.yml run From 9b61ee2c26bd43dd4f6ee11b67e5c3a45fe8a9c5 Mon Sep 17 00:00:00 2001 From: dev-warrior777 <> Date: Sun, 22 Dec 2024 22:53:59 +0800 Subject: [PATCH 3/3] client: remove future translations --- client/webserver/jsintl.go | 2 - run_tests_no_bisonw-desktop.sh | 84 ---------------------------------- 2 files changed, 86 deletions(-) delete mode 100755 run_tests_no_bisonw-desktop.sh diff --git a/client/webserver/jsintl.go b/client/webserver/jsintl.go index efedabdd75..5fe4fd65aa 100644 --- a/client/webserver/jsintl.go +++ b/client/webserver/jsintl.go @@ -707,8 +707,6 @@ var zhCN = map[string]*intl.Translation{ idOrderReportTitle: {T: "{{ side }}订单报告,纪元 #{{ epochNum }}"}, idCEXBalances: {T: "{{ cexName }}余额"}, idCausesSelfMatch: {T: "此订单会导致自匹配"}, - idCexNotConnected: {T: "{{ cexName }} 未连接"}, - idRemovingBotConfig: {T: "您确定要移除 {{ host }} 上 {{ baseSymbol }}-{{ quoteSymbol }} 市场的配置吗?"}, } var plPL = map[string]*intl.Translation{ diff --git a/run_tests_no_bisonw-desktop.sh b/run_tests_no_bisonw-desktop.sh deleted file mode 100755 index 72bd3d6305..0000000000 --- a/run_tests_no_bisonw-desktop.sh +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env bash -set -ex - -dir=$(pwd) - -GV=$(go version | sed "s/^.*go\([0-9.]*\).*/\1/") -echo "Go version: $GV" - -# Ensure html templates pass localization. -go generate -x ./client/webserver/site # no -write - -# list of all modules to test -modules=". /dex/testing/loadbot /client/cmd/bisonw-desktop" - -# For each module, run go mod tidy, build and run test. -for m in $modules -do - if [ "$dir/$m" == "/home/dev/dex/dcrdex//client/cmd/bisonw-desktop" ] ; then - echo "skipping bisonw-desktop" - else - cd "$dir/$m" - - # Run `go mod tidy` and fail if the git status of go.mod and/or - # go.sum changes. Only do this for the latest Go version. - if [[ "$GV" =~ ^1.21 ]]; then - MOD_STATUS=$(git status --porcelain go.mod go.sum) - go mod tidy - UPDATED_MOD_STATUS=$(git status --porcelain go.mod go.sum) - if [ "$UPDATED_MOD_STATUS" != "$MOD_STATUS" ]; then - echo "$m: running 'go mod tidy' modified go.mod and/or go.sum" - git diff --unified=0 go.mod go.sum - exit 1 - fi - fi - - # run tests - env GORACE="halt_on_error=1" go test -race -short ./... - fi -done - -cd "$dir" - -# Print missing Core notification translations. -go run ./client/core/localetest/main.go - -# -race in go tests above requires cgo, but disable it for the compile tests below -export CGO_ENABLED=0 -go build ./... -go build -tags harness -o /dev/null ./client/cmd/simnet-trade-tests -go build -tags systray -o /dev/null ./client/cmd/bisonw - -go test -c -o /dev/null -tags live ./client/webserver -go test -c -o /dev/null -tags harness ./client/asset/dcr -go test -c -o /dev/null -tags electrumlive ./client/asset/btc -go test -c -o /dev/null -tags harness ./client/asset/btc/livetest -go test -c -o /dev/null -tags harness ./client/asset/ltc -go test -c -o /dev/null -tags harness ./client/asset/bch -go test -c -o /dev/null -tags harness ./client/asset/firo -go test -c -o /dev/null -tags harness ./client/asset/eth -go test -c -o /dev/null -tags rpclive ./client/asset/eth -go test -c -o /dev/null -tags harness ./client/asset/zec -go test -c -o /dev/null -tags harness ./client/asset/dash -go test -c -o /dev/null -tags harness ./client/asset/firo -go test -c -o /dev/null -tags rpclive ./client/asset/polygon -go test -c -o /dev/null -tags live ./dex/testing/firo/test -go test -c -o /dev/null -tags live ./server/noderelay -go test -c -o /dev/null -tags dcrlive ./server/asset/dcr -go test -c -o /dev/null -tags btclive ./server/asset/btc -go test -c -o /dev/null -tags ltclive ./server/asset/ltc -go test -c -o /dev/null -tags bchlive ./server/asset/bch -go test -c -o /dev/null -tags dogelive ./server/asset/doge -go test -c -o /dev/null -tags zeclive ./server/asset/zec -go test -c -o /dev/null -tags zcllive ./server/asset/zcl -go test -c -o /dev/null -tags firolive ./server/asset/firo -go test -c -o /dev/null -tags harness ./server/asset/eth -go test -c -o /dev/null -tags pgonline ./server/db/driver/pg - -# Return to initial directory. -cd "$dir" -# golangci-lint (github.com/golangci/golangci-lint) is used to run each -# static checker. - -# check linters -golangci-lint -c ./.golangci.yml run