From 4aa699d614b6f1bccc24b1dda69a1496ddce80a6 Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Thu, 30 Jul 2020 14:51:01 +0800 Subject: [PATCH] release/2.2.0: Update l10n and dependences (#318) * build(deps): bump gopkg.in/yaml.v2 from 2.2.8 to 2.3.0 Bumps [gopkg.in/yaml.v2](https://github.com/go-yaml/yaml) from 2.2.8 to 2.3.0. - [Release notes](https://github.com/go-yaml/yaml/releases) - [Commits](https://github.com/go-yaml/yaml/compare/v2.2.8...v2.3.0) Signed-off-by: dependabot-preview[bot] * build(deps): bump github.com/spf13/viper from 1.6.3 to 1.7.0 Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.6.3 to 1.7.0. - [Release notes](https://github.com/spf13/viper/releases) - [Commits](https://github.com/spf13/viper/compare/v1.6.3...v1.7.0) Signed-off-by: dependabot-preview[bot] * build(deps): bump github.com/stretchr/testify from 1.5.1 to 1.6.0 Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.5.1 to 1.6.0. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.5.1...v1.6.0) Signed-off-by: dependabot-preview[bot] * build(deps): bump github.com/stretchr/testify from 1.6.0 to 1.6.1 Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.6.0 to 1.6.1. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.6.0...v1.6.1) Signed-off-by: dependabot-preview[bot] * build(deps): bump golang.org/x/text from 0.3.2 to 0.3.3 (#299) Bumps [golang.org/x/text](https://github.com/golang/text) from 0.3.2 to 0.3.3. - [Release notes](https://github.com/golang/text/releases) - [Commits](https://github.com/golang/text/compare/v0.3.2...v0.3.3) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> * build(deps): bump github.com/AlecAivazis/survey/v2 from 2.0.7 to 2.0.8 Bumps [github.com/AlecAivazis/survey/v2](https://github.com/AlecAivazis/survey) from 2.0.7 to 2.0.8. - [Release notes](https://github.com/AlecAivazis/survey/releases) - [Commits](https://github.com/AlecAivazis/survey/compare/v2.0.7...v2.0.8) Signed-off-by: dependabot-preview[bot] * Bump to version 2.2.0 Signed-off-by: Xuanwo * Squashed commit of the following: commit 7909274a15f94b0a7b7f07571e58805b2f9e99d7 Author: QingStor Robot <52158288+qingstor-robot@users.noreply.github.com> Date: Thu Jul 30 14:33:02 2020 +0800 New Crowdin updates (#316) * [ci skip] i18n: Translate data.json to Chinese Simplified * [ci skip] i18n: Translate data.json to Chinese Simplified commit 0a80353e36fb6a17033426a2e7e2e38334d4dd4f Author: QingStor Robot <52158288+qingstor-robot@users.noreply.github.com> Date: Thu Jul 30 14:17:49 2020 +0800 New Crowdin updates (#315) * New Crowdin translations (#286) * New Crowdin translations * i18n: Translate data.json to Chinese Simplified Co-authored-by: Prnyself <281239768@qq.com> * [ci skip] i18n: Translate %original_file_name% to %language% * [ci skip] i18n: Translate data.json to Chinese Simplified * Update files Signed-off-by: Xuanwo Co-authored-by: Prnyself <281239768@qq.com> Co-authored-by: Xuanwo Signed-off-by: Xuanwo Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- go.mod | 10 ++-- go.sum | 93 ++++++++++++++++++++++-------------- pkg/i18n/generated.go | 87 +++++++++++++++++++++------------ translations/zh_CN/data.json | 50 ++++++++++++------- 4 files changed, 150 insertions(+), 90 deletions(-) diff --git a/go.mod b/go.mod index 8c7b8581..ffcf020a 100644 --- a/go.mod +++ b/go.mod @@ -1,10 +1,10 @@ module github.com/qingstor/qsctl/v2 -go 1.12 +go 1.14 require ( bou.ke/monkey v1.0.2 - github.com/AlecAivazis/survey/v2 v2.0.7 + github.com/AlecAivazis/survey/v2 v2.0.8 github.com/Xuanwo/go-locale v0.3.0 github.com/Xuanwo/navvy v0.0.0-20191010141320-12f3cfcb6a27 github.com/Xuanwo/storage v1.2.1 @@ -20,10 +20,10 @@ require ( github.com/sirupsen/logrus v1.6.0 github.com/spf13/cobra v0.0.7 github.com/spf13/pflag v1.0.3 - github.com/spf13/viper v1.6.3 + github.com/spf13/viper v1.7.0 github.com/stretchr/testify v1.6.1 github.com/vbauerster/mpb/v4 v4.12.2 golang.org/x/crypto v0.0.0-20200214034016-1d94cc7ab1c6 - golang.org/x/text v0.3.2 - gopkg.in/yaml.v2 v2.2.8 + golang.org/x/text v0.3.3 + gopkg.in/yaml.v2 v2.3.0 ) diff --git a/go.sum b/go.sum index ec9871d4..889b2f82 100644 --- a/go.sum +++ b/go.sum @@ -21,6 +21,7 @@ cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4g cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -31,8 +32,8 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/AlecAivazis/survey/v2 v2.0.7 h1:+f825XHLse/hWd2tE/V5df04WFGimk34Eyg/z35w/rc= -github.com/AlecAivazis/survey/v2 v2.0.7/go.mod h1:mlizQTaPjnR4jcpwRSaSlkbsRfYFEyKgLQvYTzxxiHA= +github.com/AlecAivazis/survey/v2 v2.0.8 h1:zVjWKN+JIAfmrq6nGWG3DfLS8ypEBhxYy0p7FM+riFk= +github.com/AlecAivazis/survey/v2 v2.0.8/go.mod h1:9FJRdMdDm8rnT+zHVbvQT2RTSTLq0Ttd6q3Vl2fahjk= github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4= github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc= github.com/Azure/azure-storage-blob-go v0.8.0/go.mod h1:lPI3aLPpuLTeUwh1sViKXFxwl2B6teiRqI0deQUvsw0= @@ -71,7 +72,10 @@ github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuy github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/aliyun/aliyun-oss-go-sdk v2.1.0+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= github.com/aliyun/aliyun-oss-go-sdk v2.1.2+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf h1:eg0MeVzsP1G42dRafH3vf+al2vQIJU0YHX+1Tw87oco= github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/aws/aws-sdk-go v1.31.1/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= @@ -79,6 +83,8 @@ github.com/aws/aws-sdk-go v1.32.12/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZve github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/c-bata/go-prompt v0.2.3 h1:jjCS+QhG/sULBhAaBdjb2PlMRVaKXQgn+4yzaauvs2s= github.com/c-bata/go-prompt v0.2.3/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34= github.com/c2h5oh/datasize v0.0.0-20171227191756-4eba002a5eae h1:2Zmk+8cNvAGuY8AyvZuWpUdpQUAXwfom4ReVMe/CTIo= @@ -94,6 +100,7 @@ github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkE github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosiner/argv v0.1.0 h1:BVDiEL32lwHukgJKP87btEPenzrrHUjajs/8yzaqcXg= @@ -109,6 +116,7 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -135,10 +143,8 @@ github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4er github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1 h1:G5FRp8JnTd7RQH5kemVNlMeyXQAztQ3mOWV95KxsXH8= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1 h1:qGJ6qTW+x6xX/my+8YUVl4WNpX9B7+/l2tRsHGZ7f2s= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= @@ -165,7 +171,6 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -181,13 +186,31 @@ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5m github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174 h1:WlZsjVhE8Af9IcZDGgJGQpNflI3+MJSBhsgT5PCtzBQ= github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -197,7 +220,7 @@ github.com/jedib0t/go-pretty v4.3.0+incompatible h1:CGs8AVhEKg/n9YbUenWmNStRW2PH github.com/jedib0t/go-pretty v4.3.0+incompatible/go.mod h1:XemHduiw8R651AF9Pt4FwCTKeG3oo7hrHJAoznj9nag= github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= -github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= @@ -207,7 +230,6 @@ github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNU github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -219,19 +241,18 @@ github.com/kr/pty v1.1.4 h1:5Myjjh3JY/NaAi4IsUbHADytDyl1VE1Y9PXDlL+P/VQ= github.com/kr/pty v1.1.4/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/magiconair/properties v1.8.0 h1:LLgXmsheXeRoUOBOjtwPQCWIYqM/LU1ayDtDePerRcY= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic= github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= -github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.10 h1:qxFzApOv4WsAL965uUPIsXzAKCZxN2p9UqdhFS4ZW10= github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= @@ -242,28 +263,34 @@ github.com/mattn/go-tty v0.0.3/go.mod h1:ihxohKRERHTVzN+aSVRwACLCeqIoZAWpoICkkvr github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= -github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mozillazg/go-httpheader v0.2.1/go.mod h1:jJ8xECTlalr6ValeXYdOF8fFUISeBAdw6E61aqQma60= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pengsrc/go-shared v0.2.1-0.20190131101655-1999055a4a14 h1:XeOYlK9W1uCmhjJSsY78Mcuh7MVkNjTzmHx1yBzizSU= github.com/pengsrc/go-shared v0.2.1-0.20190131101655-1999055a4a14/go.mod h1:jVblp62SafmidSkvWrXyxAme3gaTfEtWwRPGz5cpvHg= -github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/term v0.0.0-20200520122047-c3ffed290a03 h1:pd4YKIqCB0U7O2I4gWHgEUA2mCEOENmco0l/bM957bU= github.com/pkg/term v0.0.0-20200520122047-c3ffed290a03/go.mod h1:Z9+Ul5bCbBKnbCvdOWbLqTHhJiYV414CURZJba6L8qA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -284,10 +311,11 @@ github.com/qiniu/api.v7/v7 v7.5.0/go.mod h1:VE5oC5rkE1xul0u1S2N0b2Uxq9/6hZzhyqjg github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= @@ -307,20 +335,16 @@ github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9 github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/viper v1.4.0 h1:yXHLWeravcrgGyFSyCgdYpXQ9dR9c/WED3pg1RhxqEU= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= -github.com/spf13/viper v1.6.3 h1:pDDu1OyEDTKzpJwdq4TiuLyMsUgRa/BT5cn5O62NoHs= -github.com/spf13/viper v1.6.3/go.mod h1:jUMtyi0/lB5yZH/FjyGAoH7IMNrIhlBf6pXZmbMDvzw= +github.com/spf13/viper v1.7.0 h1:xVKxvI7ouOI5I+U9s2eeiUfMaWBVoXA3AWskkrqK0VM= +github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.3.1-0.20190311161405-34c6fa2dc709 h1:Ko2LQMrRU+Oy/+EDBwX7eZ2jp3C47eDBB8EIhKTun+I= github.com/stretchr/testify v1.3.1-0.20190311161405-34c6fa2dc709/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -345,14 +369,12 @@ go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5 h1:8dUaAV7K4uHsF56JQWkprecIQKdPHtR9jCHF5nB8uzc= golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413 h1:ULYEB3JvPRE/IfO+9uO7vKV/xzVTO7XPAwm8xbf4w2g= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200214034016-1d94cc7ab1c6 h1:Sy5bstxEqwwbYs6n0/pBuxKENqOeZUgD45Gp3Q3pqLg= golang.org/x/crypto v0.0.0-20200214034016-1d94cc7ab1c6/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -388,7 +410,9 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -423,20 +447,19 @@ golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/pU5OE2C0WrNTOYK1Uuc= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190530182044-ad28b68e88f1 h1:R4dVlxdmKenVdMRS/tTspEpSTRWINYrHD8ySIU9yCIU= golang.org/x/sys v0.0.0-20190530182044-ad28b68e88f1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -451,23 +474,21 @@ golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae h1:/WDfKMnPU+m5M4xB+6x4kaepxRw6jWvR5iDRdvjHgy8= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25 h1:OKbAoGs4fGM5cPLlVQLZGYkFC8OnOfgo6tt0Smf9XhM= golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121 h1:rITEj+UZHYC927n8GT97eC3zrpzXdb/voyeOuVKS46o= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -488,6 +509,7 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -512,7 +534,6 @@ golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= @@ -581,7 +602,6 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -591,11 +611,10 @@ gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/pkg/i18n/generated.go b/pkg/i18n/generated.go index b1d60265..2aea39e8 100644 --- a/pkg/i18n/generated.go +++ b/pkg/i18n/generated.go @@ -222,13 +222,14 @@ The valid format sequences for buckets: // initZhCN will init zh_CN support. func initZhCN(tag language.Tag) { _ = message.SetString(tag, "%s %s %s %s\n", "%s %s %s %s\n") + _ = message.SetString(tag, "%s\n", "%s\n") _ = message.SetString(tag, "-r is required to copy a directory", "复制目录必须要有 -r 参数") + _ = message.SetString(tag, "-r is required to move a directory", "删除目录必须要有 -r 参数") _ = message.SetString(tag, "-r is required to remove a directory", "删除目录必须要有 -r 参数") - _ = message.SetString(tag, "<%s> copied", "<%s> 已复制") - _ = message.SetString(tag, "<%s> moved", "<%s> 已移动") - _ = message.SetString(tag, "<%s> removed", "<%s> 已删除") - _ = message.SetString(tag, "<%s> synced", "<%s> 已同步") - _ = message.SetString(tag, "AccessKey and SecretKey not found. Please setup your config now, or exit and setup manually.", "AccessKey 和 SecretKey 未找到。现在请设置您的配置,或者退出以手动设置。") + _ = message.SetString(tag, "<%s> copied\n", "<%s> 已复制\n") + _ = message.SetString(tag, "<%s> moved\n", "<%s> 已移动\n") + _ = message.SetString(tag, "<%s> removed\n", "<%s> 已删除\n") + _ = message.SetString(tag, "<%s> synced\n", "<%s> 已同步\n") _ = message.SetString(tag, "Bucket <%s> created.\n", "Bucket <%s> 已创建。\n") _ = message.SetString(tag, "Bucket <%s> removed.\n", "Bucket <%s> 已删除。\n") _ = message.SetString(tag, "Cat object: qsctl cat qs://prefix/a", "输出一个文件的内容到标准输出: qsctl cat qs://prefix/a") @@ -236,27 +237,31 @@ func initZhCN(tag language.Tag) { _ = message.SetString(tag, "Copy all files in folder: qsctl cp /path/to/folder/ qs://prefix/a/ -r", "复制一个文件夹中的所有文件: qsctl cp /path/to/folder/ qs://prefix/a/ -r") _ = message.SetString(tag, "Copy file: qsctl cp /path/to/file qs://prefix/a", "复制文件: qsctl cp / path/to/file qs://prefix/a") _ = message.SetString(tag, "Copy folder: qsctl cp /path/to/folder qs://prefix/a/ -r", "复制文件夹: qsctl cp /path/to/folder qs://prefix/a/ -r") + _ = message.SetString(tag, "Count: %s", "数量: %s") _ = message.SetString(tag, "Delete an empty qingstor bucket or forcely delete nonempty qingstor bucket.", "删除空 Bucket 或强制删除非空 Bucket。") _ = message.SetString(tag, "Dir <%s> and <%s> synced.\n", "文件夹 <%s> and <%s> 已同步。\n") _ = message.SetString(tag, "Dir <%s> copied to <%s>.\n", "文件夹 <%s> 已复制到 <%s>.\n") _ = message.SetString(tag, "Dir <%s> moved to <%s>.\n", "文件夹 <%s> 已移动到 <%s>.\n") _ = message.SetString(tag, "Dir <%s> removed.\n", "文件夹 <%s> 已删除。\n") _ = message.SetString(tag, "ETag: %s", "ETag: %s") + _ = message.SetString(tag, "Execute %s command error: %s\n", "执行 %s 命令错误: %s\n") _ = message.SetString(tag, "File <%s> copied to <%s>.\n", "文件 <%s> 已复制到 <%s>.\n") _ = message.SetString(tag, "File <%s> moved to <%s>.\n", "文件 <%s> 已移动到 <%s>.\n") _ = message.SetString(tag, "File <%s> removed.\n", "文件 <%s> 已删除。\n") _ = message.SetString(tag, "Key: %s", "名称: %s") _ = message.SetString(tag, "List bucket's all objects: qsctl ls qs://bucket-name -R", "列出 Bucket 中的所有对象: qsctl ls qs://bucket-name -R") + _ = message.SetString(tag, "List buckets by long format: qsctl ls -l", "按详细格式列出桶: qsctl ls -l") _ = message.SetString(tag, "List buckets: qsctl ls", "列出 Bucket: qsctl ls") _ = message.SetString(tag, "List objects by long format: qsctl ls qs://bucket-name -l", "使用详细格式列出对象: qsctl ls qs://bucket-name -l") _ = message.SetString(tag, "List objects with prefix recursively: qsctl ls qs://bucket-name/prefix -R", "递归地列出带指定前缀的对象: qsctl ls qs://bucket-name/prefix -R") _ = message.SetString(tag, "List objects with prefix: qsctl ls qs://bucket-name/prefix", "列出带指定前缀的对象: qsctl ls qs://bucket-name/prefix") _ = message.SetString(tag, "Load config failed [%v]", "加载配置失败 [%v]") - _ = message.SetString(tag, "Make bucket: qsctl mb bucket-name", "创建一个 Bucket: qsctl mb bucket-name") + _ = message.SetString(tag, "Location: %s", "位置:%s") + _ = message.SetString(tag, "Make bucket: qsctl mb bucket-name --zone=zone-name", "创建桶: qsctl mb bucket-name --zone=zone-name") _ = message.SetString(tag, "Move all files in folder: qsctl mv /path/to/folder/ qs://prefix/a/ -r", "移动文件夹中的所有文件: qsctl mv /path/to/folder/ qs://prefix/a/ -r") _ = message.SetString(tag, "Move file: qsctl mv /path/to/file qs://prefix/a", "移动文件: qsctl mv /path/to/file qs://prefix/a") _ = message.SetString(tag, "Move folder: qsctl mv /path/to/folder qs://prefix/a/ -r", "移动文件夹: qsctl mv /path/to/folder qs://prefix/a/ -r") - _ = message.SetString(tag, "Not confirmed. Object <%s> not removed.", "未确认。对象<%s>未删除。") + _ = message.SetString(tag, "Name: %s", "名称: %s") _ = message.SetString(tag, "Only sync files that already exist on receiver: qsctl sync . qs://bucket-name/dir/ --existing", "仅同步那些已存在于目标路径中的文件: qsctl sync . qs://bucket-name/dir/ --existing") _ = message.SetString(tag, "Only sync files that newer than files on receiver: qsctl sync . qs://bucket-name/dir/ --update", "仅同步那些比目标路径中更加新的文件: qsctl sync . qs://bucket-name/dir/ --update") _ = message.SetString(tag, "Presign object: qsctl qs://bucket-name/object-name", "预签名对象: qsctl qs://bucket-name/object-name") @@ -265,6 +270,8 @@ func initZhCN(tag language.Tag) { _ = message.SetString(tag, "Remove objects with prefix: qsctl rm qs://bucket-name/prefix -r", "删除所有带指定前缀的对象: qsctl rm qs://bucket-name/prefix -r") _ = message.SetString(tag, "Show files that would sync (but not really do): qsctl sync . qs://bucket-name/dir/ --dry-run", "显示所有将会被同步的文件 (但并不真正执行同步操作): qsctl sync . qs://bucket-name/dir/ --dry-run") _ = message.SetString(tag, "Size: %s", "大小: %s") + _ = message.SetString(tag, "Start shell: qsctl shell", "启动 Shell: qsctl shell") + _ = message.SetString(tag, "Stat bucket: qsctl stat qs://bucket-name", "查看桶信息: qsctl stat qs://bucket-name") _ = message.SetString(tag, "Stat object: qsctl stat qs://prefix/a", "查看文件信息: qsctl stat qs://prefix/a") _ = message.SetString(tag, "Stdin copied to <%s>.\n", "复制标准输入到 <%s>.\n") _ = message.SetString(tag, "StorageClass: %s", "存储类型: %s") @@ -273,53 +280,66 @@ func initZhCN(tag language.Tag) { _ = message.SetString(tag, "Sync local directory to QS-Directory: qsctl sync . qs://bucket-name/dir/", "同步当前目录到 QS-Directory: qsctl sync . qs://bucket-name/dir/") _ = message.SetString(tag, "Sync skip updating files that already exist on receiver: qsctl sync . qs://bucket-name/dir/ --ignore-existing", "同步文件夹,但跳过目标路径中已经存在的文件: qsctl sync . qs://bucket-name/dir/ --ignore-existing") _ = message.SetString(tag, "Tee object: qsctl tee qs://prefix/a", "输出一个文件的内容到标准输出: qsctl tee qs://prefix/a") - _ = message.SetString(tag, "The bucket name you just input is not match. Bucket <%s> not removed.", "您输入的 bucket 名称不匹配。Bucket <%s> 未删除。") _ = message.SetString(tag, "Type: %s", "类型: %s") _ = message.SetString(tag, "UpdatedAt: %s", "更新于: %s") _ = message.SetString(tag, "Write to stdout: qsctl cp qs://prefix/b - > /path/to/file", "写入到标准输出: qsctl cp qs://prefix/b - > /path/to/file") - _ = message.SetString(tag, "Your config has been set to <%v>. You can still modify it manually.", "您的配置已设置为 <%v>。您仍然可以手动修改它。") _ = message.SetString(tag, "assign config path manually", "手动分配配置路径") + _ = message.SetString(tag, "both --existing and --ignore-existing are set, no files would be synced", "同时设定 --existing 和 --ignore-exist,则不会同步文件") + _ = message.SetString(tag, "both source and destination should be directories", "源和目标均应为目录") _ = message.SetString(tag, "cannot copy a directory to a non-directory dest", "无法将一个目录复制到非目录路径") _ = message.SetString(tag, "cannot move a directory to a non-directory dest", "无法将一个目录移动到非目录路径") _ = message.SetString(tag, "cat a remote object to stdout", "输出远程对象内容到标准输出") + _ = message.SetString(tag, "confirm to remove <%s>? [y/N] ", "确认删除 <%s>? [y/N] ") _ = message.SetString(tag, "copy directory recursively", "递归复制目录") _ = message.SetString(tag, "copy from/to qingstor", "复制从/到 QingStor 对象存储") _ = message.SetString(tag, "delete a bucket", "删除一个 Bucket") _ = message.SetString(tag, "delete an empty bucket: qsctl rb qs://bucket-name", "删除空 Bucket: qsctl rb qs://bucket-name") - _ = message.SetString(tag, "disable progress bar display or not", "是否禁用进度条显示") _ = message.SetString(tag, "enable benchmark or not", "启用性能测试与否") + _ = message.SetString(tag, "flag zone is required, but not found", "参数 zone 是必需的,但没有找到") _ = message.SetString(tag, "forcely delete a nonempty bucket: qsctl rb qs://bucket-name -f", "强制删除一个非空桶: qsctl rb qs://bucket-name -f") + _ = message.SetString(tag, "get args failed: %s\n", "获取参数失败: %s\n") + _ = message.SetString(tag, "get metadata failed: %v\n", "获取元数据失败: %v\n") _ = message.SetString(tag, "get the pre-signed URL by the object key", "通过对象键获取预签名的 URL") _ = message.SetString(tag, "help for this command", "帮助信息") _ = message.SetString(tag, "in which zone to do the operation", "在哪个区域执行操作") - _ = message.SetString(tag, "in which zone to make the bucket (required)", "在哪个区域创建 Bucket (必须参数)") + _ = message.SetString(tag, "input bucket name <%s> to confirm: ", "输入桶名称 <%s> 以确认: ") _ = message.SetString(tag, "list objects or buckets", "列出对象或 Bucket") _ = message.SetString(tag, "make a new bucket", "创建一个新的 Bucket") _ = message.SetString(tag, "move directory recursively", "递归移动目录") _ = message.SetString(tag, "move from/to qingstor", "移动从/到 QingStor 对象存储") + _ = message.SetString(tag, "not confirmed", "未确认") + _ = message.SetString(tag, "not interactive shell, cannot call shell", "非交互式 shell,无法调用 shell") + _ = message.SetString(tag, "parse size <%v> failed [%v], key: <%s>\n", "解析大小 <%v> 失败 [%v], 密钥: <%s>\n") + _ = message.SetString(tag, "parse size <%v> failed [%v]\n", "解析大小 <%v> 失败 [%v]\n") _ = message.SetString(tag, "path should be a directory while -r is set", "当 -r 参数设置时,路径需要是一个目录") + _ = message.SetString(tag, "pipe not supported in shell, input after %v would be abandoned", "shell 不支持管道, %v 之后的输入将被抛弃") _ = message.SetString(tag, "print logs for debug", "打印调试日志") _ = message.SetString(tag, "qsctl cat can cat a remote object to stdout", "qsctl cat 可以将远程对象内容输出到标准输出") _ = message.SetString(tag, "qsctl cp can copy file/folder/stdin to qingstor or copy qingstor objects to local/stdout", "qsctl cp 可以将文件/文件夹/stdin 复制到 QingStor 对象存储或复制对象到本地/stdout") _ = message.SetString(tag, "qsctl mv can move file/folder to qingstor or move qingstor objects to local", "qsctl mv 可以将文件/文件夹移动到 QingStor 对象存储或移动对象到本地") _ = message.SetString(tag, "qsctl rb delete a qingstor bucket", "qscl rb 将删除一个 Bucket") _ = message.SetString(tag, "qsctl rm remove the object with given object key", "qsctl rm 将删除给定 Object Key 的对象") + _ = message.SetString(tag, "qsctl shell can execute command interactively, input exit to quit", "qscl shell 可以交互执行命令,输入 exit 以退出") _ = message.SetString(tag, "qsctl stat show the detailed info of this object", "qsctl stat 将显示此对象的详细信息") _ = message.SetString(tag, "recursively delete keys under a specific prefix", "递归删除指定前缀下的对象") _ = message.SetString(tag, "recursively list subdirectories encountered", "递归列出遇到的子目录") _ = message.SetString(tag, "remove a remote object", "删除远程对象") - _ = message.SetString(tag, "segment id <%s>, path <%s> removed", "ID <%s>, 路径 <%s> 的分段已删除") + _ = message.SetString(tag, "segment id <%s>, path <%s> removed\n", "ID <%s>, 路径 <%s> 的分段已删除\n") _ = message.SetString(tag, "src should be a directory while -r is set", "当 -r 参数设置时,源路径需要是一个目录") + _ = message.SetString(tag, "start an interactive shell of qsctl", "启动一个 qsctl 的交互式 shell") _ = message.SetString(tag, "stat a remote object", "查看远程对象的信息") _ = message.SetString(tag, "sync between local directory and QS-Directory", "同步本地目录和对象存储目录") _ = message.SetString(tag, "tee a remote object from stdin", "从标准输入读取内容并上传") _ = message.SetString(tag, "the number of seconds until the pre-signed URL expires. Default is 300 seconds", "预签名URL到期前的秒数。默认值为300秒") - _ = message.SetString(tag, `This operation will delete <%s>, which cannot be recovered. -Confirm?:`, `此操作将删除 <%s>,无法恢复。 -是否确认?:`) - _ = message.SetString(tag, `This operation will delete all data (including segments) in your bucket <%s>, which cannot be recovered. -Please input the bucket name to confirm:`, `此操作将删除你的 bucket <%s> 中的所有数据(包括未完成的上传分段),无法恢复。 -请输入 bucket 名称以确认:`) + _ = message.SetString(tag, ` +To execute command, directly type command without "qsctl" at the beginning. +"Ctrl + D" to exit. +Version %s +`, ` +要执行命令,直接键入命令。 +输入组合键 "Ctrl + D" 退出。 +版本 %s +`) _ = message.SetString(tag, `expected size of the input file accept: 100MB, 1.8G (only used and required for input from stdin)`, `预计输入文件的大小 @@ -380,22 +400,29 @@ The valid format sequences for files: %s total size, in bytes %y time of last data modification, human-readable, e.g: 2006-01-02 15:04:05 +0000 UTC %Y time of last data modification, seconds since Epoch + +The valid format sequences for buckets: + + %n bucket name + %l bucket location + %s total size, in bytes + %c count of files in this bucket `, `使用指定的 格式化字符串 代替默认格式; 以下每一行列举一种 格式化字符串 的用法 可用的文件信息的格式化占位符有: - %F 文件类型 - %h 文件内容的 etag 信息 - %n 文件名 - %s 文件大小,单位为字节 - %y 最后一次数据修改的时间,显示为可读格式,例如:2006-01-02 15:04:05 +0000 UTC - %Y 最后一次数据修改的时间,显示为 Unix 时间戳,也就是从1970年1月1日起所经历的秒数 - `) - _ = message.SetString(tag, `{{with (or .Long .Short)}}{{. | trimTrailingWhitespaces}} - -{{end}}{{if or .Runnable .HasSubCommands}}{{.UsageString}}{{end}}`, `{{with (or .Long .Short)}}{{. | trimTrailingWhitespaces}} +%F 文件类型 +%h 文件内容的 etag 信息 +%n 文件名 +%s 文件大小,单位为字节 +%y 最后一次数据修改的时间,显示为可读格式,例如:2006-01-02 15:04:05 +0000 UTC +%Y 最后一次数据修改的时间,显示为 Unix 时间戳,也就是从1970年1月1日起所经历的秒数 -{{end}}{{if or .Runnable .HasSubCommands}}{{.UsageString}}{{end}}`) - _ = message.SetString(tag, `{{with .Name}}{{printf "%%s " .}}{{end}}{{printf "version %%s" .Version}}`, `{{with .Name}}{{printf "%%s " .}}{{end}}{{printf "版本 %%s" .Version}}`) +可用的桶格式占位符有: +%n 桶名称 +%l 桶位置 +%s 总大小 +%c 总文件数量 +`) } diff --git a/translations/zh_CN/data.json b/translations/zh_CN/data.json index 705f6fa2..612e3483 100644 --- a/translations/zh_CN/data.json +++ b/translations/zh_CN/data.json @@ -1,12 +1,13 @@ { "\"%s %s %s %s\\n\"": "\"%s %s %s %s\\n\"", + "\"%s\\n\"": "\"%s\\n\"", "\"-r is required to copy a directory\"": "\"复制目录必须要有 -r 参数\"", + "\"-r is required to move a directory\"": "\"删除目录必须要有 -r 参数\"", "\"-r is required to remove a directory\"": "\"删除目录必须要有 -r 参数\"", - "\"<%s> copied\"": "\"<%s> 已复制\"", - "\"<%s> moved\"": "\"<%s> 已移动\"", - "\"<%s> removed\"": "\"<%s> 已删除\"", - "\"<%s> synced\"": "\"<%s> 已同步\"", - "\"AccessKey and SecretKey not found. Please setup your config now, or exit and setup manually.\"": "\"AccessKey 和 SecretKey 未找到。现在请设置您的配置,或者退出以手动设置。\"", + "\"<%s> copied\\n\"": "\"<%s> 已复制\\n\"", + "\"<%s> moved\\n\"": "\"<%s> 已移动\\n\"", + "\"<%s> removed\\n\"": "\"<%s> 已删除\\n\"", + "\"<%s> synced\\n\"": "\"<%s> 已同步\\n\"", "\"Bucket <%s> created.\\n\"": "\"Bucket <%s> 已创建。\\n\"", "\"Bucket <%s> removed.\\n\"": "\"Bucket <%s> 已删除。\\n\"", "\"Cat object: qsctl cat qs://prefix/a\"": "\"输出一个文件的内容到标准输出: qsctl cat qs://prefix/a\"", @@ -14,27 +15,31 @@ "\"Copy all files in folder: qsctl cp /path/to/folder/ qs://prefix/a/ -r\"": "\"复制一个文件夹中的所有文件: qsctl cp /path/to/folder/ qs://prefix/a/ -r\"", "\"Copy file: qsctl cp /path/to/file qs://prefix/a\"": "\"复制文件: qsctl cp / path/to/file qs://prefix/a\"", "\"Copy folder: qsctl cp /path/to/folder qs://prefix/a/ -r\"": "\"复制文件夹: qsctl cp /path/to/folder qs://prefix/a/ -r\"", + "\"Count: %s\"": "\"数量: %s\"", "\"Delete an empty qingstor bucket or forcely delete nonempty qingstor bucket.\"": "\"删除空 Bucket 或强制删除非空 Bucket。\"", "\"Dir <%s> and <%s> synced.\\n\"": "\"文件夹 <%s> and <%s> 已同步。\\n\"", "\"Dir <%s> copied to <%s>.\\n\"": "\"文件夹 <%s> 已复制到 <%s>.\\n\"", "\"Dir <%s> moved to <%s>.\\n\"": "\"文件夹 <%s> 已移动到 <%s>.\\n\"", "\"Dir <%s> removed.\\n\"": "\"文件夹 <%s> 已删除。\\n\"", "\"ETag: %s\"": "\"ETag: %s\"", + "\"Execute %s command error: %s\\n\"": "\"执行 %s 命令错误: %s\\n\"", "\"File <%s> copied to <%s>.\\n\"": "\"文件 <%s> 已复制到 <%s>.\\n\"", "\"File <%s> moved to <%s>.\\n\"": "\"文件 <%s> 已移动到 <%s>.\\n\"", "\"File <%s> removed.\\n\"": "\"文件 <%s> 已删除。\\n\"", "\"Key: %s\"": "\"名称: %s\"", "\"List bucket's all objects: qsctl ls qs://bucket-name -R\"": "\"列出 Bucket 中的所有对象: qsctl ls qs://bucket-name -R\"", + "\"List buckets by long format: qsctl ls -l\"": "\"按详细格式列出桶: qsctl ls -l\"", "\"List buckets: qsctl ls\"": "\"列出 Bucket: qsctl ls\"", "\"List objects by long format: qsctl ls qs://bucket-name -l\"": "\"使用详细格式列出对象: qsctl ls qs://bucket-name -l\"", "\"List objects with prefix recursively: qsctl ls qs://bucket-name/prefix -R\"": "\"递归地列出带指定前缀的对象: qsctl ls qs://bucket-name/prefix -R\"", "\"List objects with prefix: qsctl ls qs://bucket-name/prefix\"": "\"列出带指定前缀的对象: qsctl ls qs://bucket-name/prefix\"", "\"Load config failed [%v]\"": "\"加载配置失败 [%v]\"", - "\"Make bucket: qsctl mb bucket-name\"": "\"创建一个 Bucket: qsctl mb bucket-name\"", + "\"Location: %s\"": "\"位置:%s\"", + "\"Make bucket: qsctl mb bucket-name --zone=zone-name\"": "\"创建桶: qsctl mb bucket-name --zone=zone-name\"", "\"Move all files in folder: qsctl mv /path/to/folder/ qs://prefix/a/ -r\"": "\"移动文件夹中的所有文件: qsctl mv /path/to/folder/ qs://prefix/a/ -r\"", "\"Move file: qsctl mv /path/to/file qs://prefix/a\"": "\"移动文件: qsctl mv /path/to/file qs://prefix/a\"", "\"Move folder: qsctl mv /path/to/folder qs://prefix/a/ -r\"": "\"移动文件夹: qsctl mv /path/to/folder qs://prefix/a/ -r\"", - "\"Not confirmed. Object <%s> not removed.\"": "\"未确认。对象<%s>未删除。\"", + "\"Name: %s\"": "\"名称: %s\"", "\"Only sync files that already exist on receiver: qsctl sync . qs://bucket-name/dir/ --existing\"": "\"仅同步那些已存在于目标路径中的文件: qsctl sync . qs://bucket-name/dir/ --existing\"", "\"Only sync files that newer than files on receiver: qsctl sync . qs://bucket-name/dir/ --update\"": "\"仅同步那些比目标路径中更加新的文件: qsctl sync . qs://bucket-name/dir/ --update\"", "\"Presign object: qsctl qs://bucket-name/object-name\"": "\"预签名对象: qsctl qs://bucket-name/object-name\"", @@ -43,6 +48,8 @@ "\"Remove objects with prefix: qsctl rm qs://bucket-name/prefix -r\"": "\"删除所有带指定前缀的对象: qsctl rm qs://bucket-name/prefix -r\"", "\"Show files that would sync (but not really do): qsctl sync . qs://bucket-name/dir/ --dry-run\"": "\"显示所有将会被同步的文件 (但并不真正执行同步操作): qsctl sync . qs://bucket-name/dir/ --dry-run\"", "\"Size: %s\"": "\"大小: %s\"", + "\"Start shell: qsctl shell\"": "\"启动 Shell: qsctl shell\"", + "\"Stat bucket: qsctl stat qs://bucket-name\"": "\"查看桶信息: qsctl stat qs://bucket-name\"", "\"Stat object: qsctl stat qs://prefix/a\"": "\"查看文件信息: qsctl stat qs://prefix/a\"", "\"Stdin copied to <%s>.\\n\"": "\"复制标准输入到 <%s>.\\n\"", "\"StorageClass: %s\"": "\"存储类型: %s\"", @@ -51,49 +58,58 @@ "\"Sync local directory to QS-Directory: qsctl sync . qs://bucket-name/dir/\"": "\"同步当前目录到 QS-Directory: qsctl sync . qs://bucket-name/dir/\"", "\"Sync skip updating files that already exist on receiver: qsctl sync . qs://bucket-name/dir/ --ignore-existing\"": "\"同步文件夹,但跳过目标路径中已经存在的文件: qsctl sync . qs://bucket-name/dir/ --ignore-existing\"", "\"Tee object: qsctl tee qs://prefix/a\"": "\"输出一个文件的内容到标准输出: qsctl tee qs://prefix/a\"", - "\"The bucket name you just input is not match. Bucket <%s> not removed.\"": "\"您输入的 bucket 名称不匹配。Bucket <%s> 未删除。\"", "\"Type: %s\"": "\"类型: %s\"", "\"UpdatedAt: %s\"": "\"更新于: %s\"", "\"Write to stdout: qsctl cp qs://prefix/b - > /path/to/file\"": "\"写入到标准输出: qsctl cp qs://prefix/b - > /path/to/file\"", - "\"Your config has been set to <%v>. You can still modify it manually.\"": "\"您的配置已设置为 <%v>。您仍然可以手动修改它。\"", "\"assign config path manually\"": "\"手动分配配置路径\"", + "\"both --existing and --ignore-existing are set, no files would be synced\"": "\"同时设定 --existing 和 --ignore-exist,则不会同步文件\"", + "\"both source and destination should be directories\"": "\"源和目标均应为目录\"", "\"cannot copy a directory to a non-directory dest\"": "\"无法将一个目录复制到非目录路径\"", "\"cannot move a directory to a non-directory dest\"": "\"无法将一个目录移动到非目录路径\"", "\"cat a remote object to stdout\"": "\"输出远程对象内容到标准输出\"", + "\"confirm to remove <%s>? [y/N] \"": "\"确认删除 <%s>? [y/N] \"", "\"copy directory recursively\"": "\"递归复制目录\"", "\"copy from/to qingstor\"": "\"复制从/到 QingStor 对象存储\"", "\"delete a bucket\"": "\"删除一个 Bucket\"", "\"delete an empty bucket: qsctl rb qs://bucket-name\"": "\"删除空 Bucket: qsctl rb qs://bucket-name\"", - "\"disable progress bar display or not\"": "\"是否禁用进度条显示\"", "\"enable benchmark or not\"": "\"启用性能测试与否\"", + "\"flag zone is required, but not found\"": "\"参数 zone 是必需的,但没有找到\"", "\"forcely delete a nonempty bucket: qsctl rb qs://bucket-name -f\"": "\"强制删除一个非空桶: qsctl rb qs://bucket-name -f\"", + "\"get args failed: %s\\n\"": "\"获取参数失败: %s\\n\"", + "\"get metadata failed: %v\\n\"": "\"获取元数据失败: %v\\n\"", "\"get the pre-signed URL by the object key\"": "\"通过对象键获取预签名的 URL\"", "\"help for this command\"": "\"帮助信息\"", "\"in which zone to do the operation\"": "\"在哪个区域执行操作\"", - "\"in which zone to make the bucket (required)\"": "\"在哪个区域创建 Bucket (必须参数)\"", + "\"input bucket name <%s> to confirm: \"": "\"输入桶名称 <%s> 以确认: \"", "\"list objects or buckets\"": "\"列出对象或 Bucket\"", "\"make a new bucket\"": "\"创建一个新的 Bucket\"", "\"move directory recursively\"": "\"递归移动目录\"", "\"move from/to qingstor\"": "\"移动从/到 QingStor 对象存储\"", + "\"not confirmed\"": "\"未确认\"", + "\"not interactive shell, cannot call shell\"": "\"非交互式 shell,无法调用 shell\"", + "\"parse size <%v> failed [%v], key: <%s>\\n\"": "\"解析大小 <%v> 失败 [%v], 密钥: <%s>\\n\"", + "\"parse size <%v> failed [%v]\\n\"": "\"解析大小 <%v> 失败 [%v]\\n\"", "\"path should be a directory while -r is set\"": "\"当 -r 参数设置时,路径需要是一个目录\"", + "\"pipe not supported in shell, input after %v would be abandoned\"": "\"shell 不支持管道, %v 之后的输入将被抛弃\"", "\"print logs for debug\"": "\"打印调试日志\"", "\"qsctl cat can cat a remote object to stdout\"": "\"qsctl cat 可以将远程对象内容输出到标准输出\"", "\"qsctl cp can copy file/folder/stdin to qingstor or copy qingstor objects to local/stdout\"": "\"qsctl cp 可以将文件/文件夹/stdin 复制到 QingStor 对象存储或复制对象到本地/stdout\"", "\"qsctl mv can move file/folder to qingstor or move qingstor objects to local\"": "\"qsctl mv 可以将文件/文件夹移动到 QingStor 对象存储或移动对象到本地\"", "\"qsctl rb delete a qingstor bucket\"": "\"qscl rb 将删除一个 Bucket\"", "\"qsctl rm remove the object with given object key\"": "\"qsctl rm 将删除给定 Object Key 的对象\"", + "\"qsctl shell can execute command interactively, input exit to quit\"": "\"qscl shell 可以交互执行命令,输入 exit 以退出\"", "\"qsctl stat show the detailed info of this object\"": "\"qsctl stat 将显示此对象的详细信息\"", "\"recursively delete keys under a specific prefix\"": "\"递归删除指定前缀下的对象\"", "\"recursively list subdirectories encountered\"": "\"递归列出遇到的子目录\"", "\"remove a remote object\"": "\"删除远程对象\"", - "\"segment id <%s>, path <%s> removed\"": "\"ID <%s>, 路径 <%s> 的分段已删除\"", + "\"segment id <%s>, path <%s> removed\\n\"": "\"ID <%s>, 路径 <%s> 的分段已删除\\n\"", "\"src should be a directory while -r is set\"": "\"当 -r 参数设置时,源路径需要是一个目录\"", + "\"start an interactive shell of qsctl\"": "\"启动一个 qsctl 的交互式 shell\"", "\"stat a remote object\"": "\"查看远程对象的信息\"", "\"sync between local directory and QS-Directory\"": "\"同步本地目录和对象存储目录\"", "\"tee a remote object from stdin\"": "\"从标准输入读取内容并上传\"", "\"the number of seconds until the pre-signed URL expires. Default is 300 seconds\"": "\"预签名URL到期前的秒数。默认值为300秒\"", - "`This operation will delete <%s>, which cannot be recovered.\nConfirm?:`": "`此操作将删除 <%s>,无法恢复。\n是否确认?:`", - "`This operation will delete all data (including segments) in your bucket <%s>, which cannot be recovered.\nPlease input the bucket name to confirm:`": "`此操作将删除你的 bucket <%s> 中的所有数据(包括未完成的上传分段),无法恢复。\n请输入 bucket 名称以确认:`", + "`\nTo execute command, directly type command without \"qsctl\" at the beginning.\n\"Ctrl + D\" to exit.\nVersion %s\n`": "`\n要执行命令,直接键入命令。\n输入组合键 \"Ctrl + D\" 退出。\n版本 %s\n`", "`expected size of the input file\naccept: 100MB, 1.8G\n(only used and required for input from stdin)`": "`预计输入文件的大小\n接受的大小形似: 100MB, 1.8G\n(仅用于标准输入) `", "`list in long format and a total sum for all the file sizes is\noutput on a line before the long listing`": "`输出长格式列表,并且长列表前一行输出所有文件大小的总和`", "`maximum content loaded in memory\n(only used for input from stdin)`": "`在内存中加载的最大内容\n(仅用于标准输入)`", @@ -108,7 +124,5 @@ "`skip creating new files in dest dirs`": "`并不在目标目录中创建新的文件`", "`skip files that are newer in dest dirs`": "`跳过同步那些在目标目录中 (比源目录) 更加新的文件`", "`skip updating files in dest dirs, only copy those not exist`": "`跳过在目标目录中执行更新已存在文件的操作,仅复制那些目标目录中不存在的文件`", - "`use the specified FORMAT instead of the default;\noutput a newline after each use of FORMAT\n\nThe valid format sequences for files:\n\n %F file type\n %h content etag of the file\n %n file name\n %s total size, in bytes\n %y time of last data modification, human-readable, e.g: 2006-01-02 15:04:05 +0000 UTC\n %Y time of last data modification, seconds since Epoch\n\t`": "`使用指定的 格式化字符串 代替默认格式;\n以下每一行列举一种 格式化字符串 的用法\n\n可用的文件信息的格式化占位符有:\n\n %F 文件类型\n %h 文件内容的 etag 信息\n %n 文件名\n %s 文件大小,单位为字节\n %y 最后一次数据修改的时间,显示为可读格式,例如:2006-01-02 15:04:05 +0000 UTC\n %Y 最后一次数据修改的时间,显示为 Unix 时间戳,也就是从1970年1月1日起所经历的秒数\n\t`", - "`{{with (or .Long .Short)}}{{. | trimTrailingWhitespaces}}\n\n{{end}}{{if or .Runnable .HasSubCommands}}{{.UsageString}}{{end}}`": "`{{with (or .Long .Short)}}{{. | trimTrailingWhitespaces}}\n\n{{end}}{{if or .Runnable .HasSubCommands}}{{.UsageString}}{{end}}`", - "`{{with .Name}}{{printf \"%%s \" .}}{{end}}{{printf \"version %%s\" .Version}}`": "`{{with .Name}}{{printf \"%%s \" .}}{{end}}{{printf \"版本 %%s\" .Version}}`" -} \ No newline at end of file + "`use the specified FORMAT instead of the default;\noutput a newline after each use of FORMAT\n\nThe valid format sequences for files:\n\n %F file type\n %h content etag of the file\n %n file name\n %s total size, in bytes\n %y time of last data modification, human-readable, e.g: 2006-01-02 15:04:05 +0000 UTC\n %Y time of last data modification, seconds since Epoch\n\nThe valid format sequences for buckets:\n\n %n bucket name\n %l bucket location\n %s total size, in bytes\n %c count of files in this bucket\n\t`": "`使用指定的 格式化字符串 代替默认格式;\n以下每一行列举一种 格式化字符串 的用法\n\n可用的文件信息的格式化占位符有:\n\n%F 文件类型\n%h 文件内容的 etag 信息\n%n 文件名\n%s 文件大小,单位为字节\n%y 最后一次数据修改的时间,显示为可读格式,例如:2006-01-02 15:04:05 +0000 UTC\n%Y 最后一次数据修改的时间,显示为 Unix 时间戳,也就是从1970年1月1日起所经历的秒数\n\n可用的桶格式占位符有:\n%n 桶名称\n%l 桶位置\n%s 总大小\n%c 总文件数量\n`" +}