lotus/cmd/curio/internal/translations/locales/zh/messages.gotext.json
Andrew Jackson (Ajax) 81ba6ab6f0
feat: Curio - Easy Migration (#11617)
* feat: lp mig - first few steps

* lp mig: default tasks

* code comments

* docs

* lp-mig-progress

* shared

* comments and todos

* fix: curio: rename lotus-provider to curio (#11645)

* rename provider to curio

* install gotext

* fix lint errors, mod tidy

* fix typo

* fix API_INFO and add gotext to circleCI

* add back gotext

* add gotext after remerge

* lp: channels doc

* finish easy-migration TODOs

* out generate

* merging and more renames

* avoid make-all

* minor doc stuff

* cu: make gen

* make gen fix

* make gen

* tryfix

* go mod tidy

* minor ez migration fixes

* ez setup - ui cleanups

* better error message

* guided setup colors

* better path to saveconfigtolayer

* loadconfigwithupgrades fix

* readMiner oops

* guided - homedir

* err if miner is running

* prompt error should exit

* process already running, miner_id sectors in migration

* dont prompt for language a second time

* check miner stopped

* unlock repo

* render and sql oops

* curio easyMig - some fixes

* easyMigration runs successfully

* lint

* review fixes

* fix backup path

* fixes1

* fixes2

* fixes 3

---------

Co-authored-by: LexLuthr <88259624+LexLuthr@users.noreply.github.com>
Co-authored-by: LexLuthr <lexluthr@protocol.ai>
2024-03-15 16:38:13 -05:00

704 lines
26 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"language": "zh",
"messages": [
{
"id": "This interactive tool will walk you through migration of Curio.\nPress Ctrl+C to exit at any time.",
"message": "This interactive tool will walk you through migration of Curio.\nPress Ctrl+C to exit at any time.",
"translation": "此互动工具将引导您完成Curio的迁移。\n随时按Ctrl+C退出。"
},
{
"id": "This tool confirms each action it does.",
"message": "This tool confirms each action it does.",
"translation": "此工具确认其执行的每个操作。"
},
{
"id": "Ctrl+C pressed in Terminal",
"message": "Ctrl+C pressed in Terminal",
"translation": "在终端中按下Ctrl+C"
},
{
"id": "Verifying Sectors exist in Yugabyte.",
"message": "Verifying Sectors exist in Yugabyte.",
"translation": "正在验证Yugabyte中的扇区是否存在。"
},
{
"id": "Error verifying sectors: {Error}",
"message": "Error verifying sectors: {Error}",
"translation": "验证扇区时出错:{Error}",
"placeholders": [
{
"id": "Error",
"string": "%[1]s",
"type": "string",
"underlyingType": "string",
"argNum": 1,
"expr": "err.Error()"
}
]
},
{
"id": "Sectors verified. {I} sectors found.",
"message": "Sectors verified. {I} sectors found.",
"translation": "已验证扇区。找到了{I}个扇区。",
"placeholders": [
{
"id": "I",
"string": "%[1]d",
"type": "[]int",
"underlyingType": "[]int",
"argNum": 1,
"expr": "i"
}
]
},
{
"id": "Never remove the database info from the config.toml for lotus-miner as it avoids double PoSt.",
"message": "Never remove the database info from the config.toml for lotus-miner as it avoids double PoSt.",
"translation": "从config.toml中永远不要删除lotus-miner的数据库信息因为它避免了双PoSt。"
},
{
"id": "Enter the info to connect to your Yugabyte database installation (https://download.yugabyte.com/)",
"message": "Enter the info to connect to your Yugabyte database installation (https://download.yugabyte.com/)",
"translation": "输入连接到您的Yugabyte数据库安装的信息https://download.yugabyte.com/"
},
{
"id": "Host: {Hosts_}",
"message": "Host: {Hosts_}",
"translation": "主机:{Hosts_}",
"placeholders": [
{
"id": "Hosts_",
"string": "%[1]s",
"type": "string",
"underlyingType": "string",
"argNum": 1,
"expr": "strings.Join(harmonycfg.Hosts, \",\")"
}
]
},
{
"id": "Port: {Port}",
"message": "Port: {Port}",
"translation": "端口:{Port}",
"placeholders": [
{
"id": "Port",
"string": "%[1]s",
"type": "string",
"underlyingType": "string",
"argNum": 1,
"expr": "harmonycfg.Port"
}
]
},
{
"id": "Username: {Username}",
"message": "Username: {Username}",
"translation": "用户名:{Username}",
"placeholders": [
{
"id": "Username",
"string": "%[1]s",
"type": "string",
"underlyingType": "string",
"argNum": 1,
"expr": "harmonycfg.Username"
}
]
},
{
"id": "Password: {Password}",
"message": "Password: {Password}",
"translation": "密码:{Password}",
"placeholders": [
{
"id": "Password",
"string": "%[1]s",
"type": "string",
"underlyingType": "string",
"argNum": 1,
"expr": "harmonycfg.Password"
}
]
},
{
"id": "Database: {Database}",
"message": "Database: {Database}",
"translation": "数据库:{Database}",
"placeholders": [
{
"id": "Database",
"string": "%[1]s",
"type": "string",
"underlyingType": "string",
"argNum": 1,
"expr": "harmonycfg.Database"
}
]
},
{
"id": "Continue to connect and update schema.",
"message": "Continue to connect and update schema.",
"translation": "继续连接和更新架构。"
},
{
"id": "Database config error occurred, abandoning migration: {Error}",
"message": "Database config error occurred, abandoning migration: {Error}",
"translation": "发生数据库配置错误,放弃迁移:{Error}",
"placeholders": [
{
"id": "Error",
"string": "%[1]s",
"type": "string",
"underlyingType": "string",
"argNum": 1,
"expr": "err.Error()"
}
]
},
{
"id": "Enter the Yugabyte database host(s)",
"message": "Enter the Yugabyte database host(s)",
"translation": "输入Yugabyte数据库主机S"
},
{
"id": "No host provided",
"message": "No host provided",
"translation": "未提供主机"
},
{
"id": "Enter the Yugabyte database {Stringport_username_password_databasei_1}",
"message": "Enter the Yugabyte database {Stringport_username_password_databasei_1}",
"translation": "输入Yugabyte数据库 {Stringport_username_password_databasei_1}",
"placeholders": [
{
"id": "Stringport_username_password_databasei_1",
"string": "%[1]s",
"type": "string",
"underlyingType": "string",
"argNum": 1,
"expr": "[]string{\"port\", \"username\", \"password\", \"database\"}[i-1]"
}
]
},
{
"id": "No value provided",
"message": "No value provided",
"translation": "未提供值"
},
{
"id": "Error connecting to Yugabyte database: {Error}",
"message": "Error connecting to Yugabyte database: {Error}",
"translation": "连接到Yugabyte数据库时出错{Error}",
"placeholders": [
{
"id": "Error",
"string": "%[1]s",
"type": "string",
"underlyingType": "string",
"argNum": 1,
"expr": "err.Error()"
}
]
},
{
"id": "Connected to Yugabyte. Schema is current.",
"message": "Connected to Yugabyte. Schema is current.",
"translation": "已连接到Yugabyte。模式是当前的。"
},
{
"id": "Error encoding config.toml: {Error}",
"message": "Error encoding config.toml: {Error}",
"translation": "编码config.toml时出错{Error}",
"placeholders": [
{
"id": "Error",
"string": "%[1]s",
"type": "string",
"underlyingType": "string",
"argNum": 1,
"expr": "err.Error()"
}
]
},
{
"id": "Error reading filemode of config.toml: {Error}",
"message": "Error reading filemode of config.toml: {Error}",
"translation": "读取config.toml文件模式时出错{Error}",
"placeholders": [
{
"id": "Error",
"string": "%[1]s",
"type": "string",
"underlyingType": "string",
"argNum": 1,
"expr": "err.Error()"
}
]
},
{
"id": "Error writing config.toml: {Error}",
"message": "Error writing config.toml: {Error}",
"translation": "写入config.toml时出错{Error}",
"placeholders": [
{
"id": "Error",
"string": "%[1]s",
"type": "string",
"underlyingType": "string",
"argNum": 1,
"expr": "err.Error()"
}
]
},
{
"id": "Restart Lotus Miner.",
"message": "Restart Lotus Miner.",
"translation": "重新启动Lotus Miner。"
},
{
"id": "Connected to Yugabyte",
"message": "Connected to Yugabyte",
"translation": "已连接到Yugabyte"
},
{
"id": "Select the location of your lotus-miner config directory?",
"message": "Select the location of your lotus-miner config directory?",
"translation": "选择您的lotus-miner配置目录的位置"
},
{
"id": "Other",
"message": "Other",
"translation": "其他"
},
{
"id": "Enter the path to the configuration directory used by lotus-miner",
"message": "Enter the path to the configuration directory used by lotus-miner",
"translation": "输入lotus-miner使用的配置目录的路径"
},
{
"id": "No path provided, abandoning migration",
"message": "No path provided, abandoning migration",
"translation": "未提供路径,放弃迁移"
},
{
"id": "Cannot read the config.toml file in the provided directory, Error: {Error}",
"message": "Cannot read the config.toml file in the provided directory, Error: {Error}",
"translation": "无法读取提供的目录中的config.toml文件错误{Error}",
"placeholders": [
{
"id": "Error",
"string": "%[1]s",
"type": "string",
"underlyingType": "string",
"argNum": 1,
"expr": "err.Error()"
}
]
},
{
"id": "Read Miner Config",
"message": "Read Miner Config",
"translation": "读取矿工配置"
},
{
"id": "Completed Step: {Step}",
"message": "Completed Step: {Step}",
"translation": "完成步骤:{Step}",
"placeholders": [
{
"id": "Step",
"string": "%[1]s",
"type": "string",
"underlyingType": "string",
"argNum": 1,
"expr": "step"
}
]
},
{
"id": "This interactive tool migrates lotus-miner to Curio in 5 minutes.",
"translation": "这个交互式工具可以在5分钟内将lotus-miner迁移到Curio。",
"message": "This interactive tool migrates lotus-miner to Curio in 5 minutes.",
"placeholder": null
},
{
"id": "Each step needs your confirmation and can be reversed. Press Ctrl+C to exit at any time.",
"translation": "每一步都需要您的确认并且可以撤销。随时按Ctrl+C退出。",
"message": "Each step needs your confirmation and can be reversed. Press Ctrl+C to exit at any time.",
"placeholder": null
},
{
"id": "Use the arrow keys to navigate: ↓ ↑ → ←",
"translation": "使用箭头键进行导航:↓ ↑ → ←",
"message": "Use the arrow keys to navigate: ↓ ↑ → ←",
"placeholder": null
},
{
"id": "Lotus-Miner to Curio Migration.",
"translation": "Lotus-Miner到Curio迁移。",
"message": "Lotus-Miner to Curio Migration.",
"placeholder": null
},
{
"id": "Try the web interface with for further guided improvements.",
"translation": "尝试使用网页界面进行进一步的指导改进。",
"message": "Try the web interface with for further guided improvements.",
"placeholder": null
},
{
"id": "You can now migrate your market node ({Boost}), if applicable.",
"translation": "如果适用,您现在可以迁移您的市场节点({Boost})。",
"message": "You can now migrate your market node ({Boost}), if applicable.",
"placeholder": null
},
{
"id": "Migrating config.toml to database.",
"translation": "正在将config.toml迁移到数据库。",
"message": "Migrating config.toml to database.",
"placeholder": null
},
{
"id": "Error reading from database: {Error}. Aborting Migration.",
"translation": "读取数据库时出错:{Error}。正在中止迁移。",
"message": "Error reading from database: {Error}. Aborting Migration.",
"placeholder": null
},
{
"id": "cannot read API: {Error}. Aborting Migration",
"translation": "无法读取API{Error}。正在中止迁移",
"message": "cannot read API: {Error}. Aborting Migration",
"placeholder": null
},
{
"id": "Error saving config to layer: {Error}. Aborting Migration",
"translation": "保存配置到层时出错:{Error}。正在中止迁移",
"message": "Error saving config to layer: {Error}. Aborting Migration",
"placeholder": null
},
{
"id": "Protocol Labs wants to improve the software you use. Tell the team you're using Curio.",
"translation": "Protocol Labs希望改进您使用的软件。告诉团队您正在使用Curio。",
"message": "Protocol Labs wants to improve the software you use. Tell the team you're using Curio.",
"placeholder": null
},
{
"id": "Select what you want to share with the Curio team.",
"translation": "选择您想与Curio团队分享的内容。",
"message": "Select what you want to share with the Curio team.",
"placeholder": null
},
{
"id": "Individual Data: Miner ID, Curio version, net ({Mainnet} or {Testnet}). Signed.",
"translation": "个人数据矿工ID、Curio版本、网络({Mainnet}或{Testnet})。已签名。",
"message": "Individual Data: Miner ID, Curio version, net ({Mainnet} or {Testnet}). Signed.",
"placeholder": null
},
{
"id": "Aggregate-Anonymous: version, net, and Miner power (bucketed).",
"translation": "聚合-匿名:版本、网络和矿工功率(分桶)。",
"message": "Aggregate-Anonymous: version, net, and Miner power (bucketed).",
"placeholder": null
},
{
"id": "Hint: I am someone running Curio on net.",
"translation": "提示我是在网络上运行Curio的人。",
"message": "Hint: I am someone running Curio on net.",
"placeholder": null
},
{
"id": "Nothing.",
"translation": "没有。",
"message": "Nothing.",
"placeholder": null
},
{
"id": "Aborting remaining steps.",
"translation": "中止剩余步骤。",
"message": "Aborting remaining steps.",
"placeholder": null
},
{
"id": "Error connecting to lotus node: {Error}",
"translation": "连接到莲花节点时出错:{Error}",
"message": "Error connecting to lotus node: {Error}",
"placeholder": null
},
{
"id": "Error getting miner power: {Error}",
"translation": "获取矿工功率时出错:{Error}",
"message": "Error getting miner power: {Error}",
"placeholder": null
},
{
"id": "Error marshalling message: {Error}",
"translation": "整理消息时出错:{Error}",
"message": "Error marshalling message: {Error}",
"placeholder": null
},
{
"id": "Error getting miner info: {Error}",
"translation": "获取矿工信息时出错:{Error}",
"message": "Error getting miner info: {Error}",
"placeholder": null
},
{
"id": "Error signing message: {Error}",
"translation": "签署消息时出错:{Error}",
"message": "Error signing message: {Error}",
"placeholder": null
},
{
"id": "Error sending message: {Error}",
"translation": "发送消息时出错:{Error}",
"message": "Error sending message: {Error}",
"placeholder": null
},
{
"id": "Error sending message: Status {Status}, Message:",
"translation": "发送消息时出错:状态{Status},消息:",
"message": "Error sending message: Status {Status}, Message:",
"placeholder": null
},
{
"id": "Message sent.",
"translation": "消息已发送。",
"message": "Message sent.",
"placeholder": null
},
{
"id": "Documentation:",
"translation": "文档:",
"message": "Documentation:",
"placeholder": null
},
{
"id": "The '{Base}' layer stores common configuration. All curio instances can include it in their {__layers} argument.",
"translation": "'{Base}'层存储通用配置。所有Curio实例都可以在其{__layers}参数中包含它。",
"message": "The '{Base}' layer stores common configuration. All curio instances can include it in their {__layers} argument.",
"placeholder": null
},
{
"id": "You can add other layers for per-machine configuration changes.",
"translation": "您可以添加其他层进行每台机器的配置更改。",
"message": "You can add other layers for per-machine configuration changes.",
"placeholder": null
},
{
"id": "Join {Fil_curio_help} in Filecoin {Slack} for help.",
"translation": "加入Filecoin {Slack}中的{Fil_curio_help}寻求帮助。",
"message": "Join {Fil_curio_help} in Filecoin {Slack} for help.",
"placeholder": null
},
{
"id": "Join {Fil_curio_dev} in Filecoin {Slack} to follow development and feedback!",
"translation": "加入Filecoin {Slack}中的{Fil_curio_dev}来跟踪开发和反馈!",
"message": "Join {Fil_curio_dev} in Filecoin {Slack} to follow development and feedback!",
"placeholder": null
},
{
"id": "Want PoST redundancy? Run many Curio instances with the '{Post}' layer.",
"translation": "需要PoST冗余使用'{Post}'层运行多个Curio实例。",
"message": "Want PoST redundancy? Run many Curio instances with the '{Post}' layer.",
"placeholder": null
},
{
"id": "Point your browser to your web GUI to complete setup with {Boost} and advanced featues.",
"translation": "将您的浏览器指向您的网络GUI以使用{Boost}和高级功能完成设置。",
"message": "Point your browser to your web GUI to complete setup with {Boost} and advanced featues.",
"placeholder": null
},
{
"id": "For SPs with multiple Miner IDs, run 1 migration per lotus-miner all to the same 1 database. The cluster will serve all Miner IDs.",
"translation": "对于具有多个矿工ID的SP针对所有lotus-miner运行1次迁移到同一个数据库。集群将服务所有矿工ID。",
"message": "For SPs with multiple Miner IDs, run 1 migration per lotus-miner all to the same 1 database. The cluster will serve all Miner IDs.",
"placeholder": null
},
{
"id": "Please start {Lotus_miner} now that database credentials are in {Toml}.",
"translation": "现在数据库凭证在{Toml}中,请启动{Lotus_miner}。",
"message": "Please start {Lotus_miner} now that database credentials are in {Toml}.",
"placeholder": null
},
{
"id": "Waiting for {Lotus_miner} to write sectors into Yugabyte.",
"translation": "等待{Lotus_miner}将扇区写入Yugabyte。",
"message": "Waiting for {Lotus_miner} to write sectors into Yugabyte.",
"placeholder": null
},
{
"id": "The sectors are in the database. The database is ready for {Curio}.",
"translation": "扇区在数据库中。数据库已准备好用于{Curio}。",
"message": "The sectors are in the database. The database is ready for {Curio}.",
"placeholder": null
},
{
"id": "Now shut down lotus-miner and move the systems to {Curio}.",
"translation": "现在关闭lotus-miner并将系统移至{Curio}。",
"message": "Now shut down lotus-miner and move the systems to {Curio}.",
"placeholder": null
},
{
"id": "Press return to continue",
"translation": "按回车继续",
"message": "Press return to continue",
"placeholder": null
},
{
"id": "Aborting migration.",
"translation": "中止迁移。",
"message": "Aborting migration.",
"placeholder": null
},
{
"id": "Sectors verified. {I} sector locations found.",
"translation": "扇区已验证。发现了{I}个扇区位置。",
"message": "Sectors verified. {I} sector locations found.",
"placeholder": null
},
{
"id": "Press return to update {Toml} with Yugabyte info. Backup the file now.",
"translation": "按回车更新{Toml}以获取Yugabyte信息。现在备份文件。",
"message": "Press return to update {Toml} with Yugabyte info. Backup the file now.",
"placeholder": null
},
{
"id": "To start, ensure your sealing pipeline is drained and shut-down lotus-miner.",
"translation": "开始之前请确保您的密封管道已排空并关闭lotus-miner。",
"message": "To start, ensure your sealing pipeline is drained and shut-down lotus-miner.",
"placeholder": null
},
{
"id": "Enter the path to the configuration directory used by {Lotus_miner}",
"translation": "输入{Lotus_miner}使用的配置目录的路径",
"message": "Enter the path to the configuration directory used by {Lotus_miner}",
"placeholder": null
},
{
"id": "Step Complete: {Step}",
"translation": "步骤完成:{Step}",
"message": "Step Complete: {Step}",
"placeholder": null
},
{
"id": "Configuration 'base' was updated to include this miner's address and its wallet setup.",
"translation": "配置'base'已更新,包含了这个矿工的地址和其钱包设置。",
"message": "Configuration 'base' was updated to include this miner's address and its wallet setup.",
"placeholder": null
},
{
"id": "Compare the configurations {Base} to {MinerAddresses0}. Changes between the miner IDs other than wallet addreses should be a new, minimal layer for runners that need it.",
"translation": "比较配置{Base}和{MinerAddresses0}。矿工ID之间除了钱包地址的变化应该是需要的运行者的一个新的、最小的层。",
"message": "Compare the configurations {Base} to {MinerAddresses0}. Changes between the miner IDs other than wallet addreses should be a new, minimal layer for runners that need it.",
"placeholder": null
},
{
"id": "Configuration 'base' was created to include this miner's address and its wallet setup.",
"translation": "配置'base'已创建,包括了这个矿工的地址和其钱包设置。",
"message": "Configuration 'base' was created to include this miner's address and its wallet setup.",
"placeholder": null
},
{
"id": "Layer {LayerName} created.",
"translation": "层{LayerName}已创建。",
"message": "Layer {LayerName} created.",
"placeholder": null
},
{
"id": "To work with the config: \\n",
"translation": "要使用配置:\\n",
"message": "To work with the config: \\n",
"placeholder": null
},
{
"id": "To run Curio: With machine or cgroup isolation, use the command (with example layer selection):",
"translation": "运行Curio使用机器或cgroup隔离使用命令附带示例层选择",
"message": "To run Curio: With machine or cgroup isolation, use the command (with example layer selection):",
"placeholder": null
},
{
"id": "Try the web interface with {__layersgui} for further guided improvements.",
"translation": "尝试使用{__layersgui}的Web界面进行进一步引导式改进。",
"message": "Try the web interface with {__layersgui} for further guided improvements.",
"placeholder": null
},
{
"id": "Error connecting to lotus node: {Error} {Error_1}",
"translation": "连接到lotus节点时出错{Error} {Error_1}",
"message": "Error connecting to lotus node: {Error} {Error_1}",
"placeholder": null
},
{
"id": "could not get API info for FullNode: {Err}",
"translation": "无法获取FullNode的API信息{Err}",
"message": "could not get API info for FullNode: {Err}",
"placeholder": null
},
{
"id": "Error getting token: {Error}",
"translation": "获取令牌时出错:{Error}",
"message": "Error getting token: {Error}",
"placeholder": null
},
{
"id": "Filecoin {Slack} channels: {Fil_curio_help} and {Fil_curio_dev}",
"translation": "Filecoin {Slack} 频道:{Fil_curio_help} 和 {Fil_curio_dev}",
"message": "Filecoin {Slack} channels: {Fil_curio_help} and {Fil_curio_dev}",
"placeholder": null
},
{
"id": "Start multiple Curio instances with the '{Post}' layer to redundancy.",
"translation": "使用'{Post}'层启动多个Curio实例以实现冗余。",
"message": "Start multiple Curio instances with the '{Post}' layer to redundancy.",
"placeholder": null
},
{
"id": "One database can serve multiple miner IDs: Run a migration for each lotus-miner.",
"translation": "一个数据库可以服务多个矿工ID为每个lotus-miner运行迁移。",
"message": "One database can serve multiple miner IDs: Run a migration for each lotus-miner.",
"placeholder": null
},
{
"id": "Please start (or restart) {Lotus_miner} now that database credentials are in {Toml}.",
"translation": "请立即启动(或重新启动){Lotus_miner},因为数据库凭据已在{Toml}中。",
"message": "Please start (or restart) {Lotus_miner} now that database credentials are in {Toml}.",
"placeholder": null
},
{
"id": "Error interpreting miner ID: {Error}: ID: {String}",
"translation": "解释矿工ID时出错{Error}ID{String}",
"message": "Error interpreting miner ID: {Error}: ID: {String}",
"placeholder": null
},
{
"id": "Enabling Sector Indexing in the database.",
"translation": "在数据库中启用扇区索引。",
"message": "Enabling Sector Indexing in the database.",
"placeholder": null
},
{
"id": "Error expanding path: {Error}",
"translation": "扩展路径时出错:{Error}",
"message": "Error expanding path: {Error}",
"placeholder": null
},
{
"id": "Could not create repo from directory: {Error}. Aborting migration",
"translation": "无法从目录创建repo{Error}。 中止迁移",
"message": "Could not create repo from directory: {Error}. Aborting migration",
"placeholder": null
},
{
"id": "Could not lock miner repo. Your miner must be stopped: {Error}\n Aborting migration",
"translation": "无法锁定矿工repo。 您的矿工必须停止:{Error}\n 中止迁移",
"message": "Could not lock miner repo. Your miner must be stopped: {Error}\n Aborting migration",
"placeholder": null
},
{
"id": "To work with the config:",
"translation": "要使用配置:",
"message": "To work with the config:",
"placeholder": null
}
]
}