x/text/cmd/gotext: gotext提取失败,原因是类型不兼容问题,

prdp8dxp  于 6个月前  发布在  Go
关注(0)|答案(1)|浏览(49)

你正在使用哪个版本的Go( go version )?

$ go version
go version go1.11.2 darwin/amd64

这个问题在最新版本中是否会重现?

这是今天最新的发布版本。

你正在使用什么操作系统和处理器架构( go env )?

go env 输出

$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/fgm/Library/Caches/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/fgm/src/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/Cellar/go/1.11.2/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.11.2/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/fgm/src/OSInet/net/plusvite/kurz/src/code.osinet.fr/fgm/kurz/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/0g/p780bc554njc4qj110_8rmbr0000gn/T/go-build677218822=/tmp/go-build -gno-record-gcc-switches -fno-common"

你做了什么?

你期望看到什么?

  • 输出上没有任何内容
  • 在每个目录中创建一个 locales/fr 文件,理想情况下,该文件应包含NoError和Unimplemented字符串的消息定义。

你实际上看到了什么?

  • 在第一次调用时:
  • 输出上的错误:
/Users/fgm/src/go/src/golang.org/x/text/internal/number/number.go:150:42: cannot convert t (variable of type golang.org/x/text/language.Tag) to golang.org/x/text/internal/language/compact.Tag
/Users/fgm/src/go/src/golang.org/x/text/feature/plural/plural.go:259:42: cannot convert t (variable of type golang.org/x/text/language.Tag) to golang.org/x/text/internal/language/compact.Tag
gotext: extract failed: : : couldn't load packages due to errors: golang.org/x/text/feature/plural, golang.org/x/text/internal/number
  • 用一个 out.gotext.json 文件创建了一个 locales/en-US 目录,其中只包含这个:
{
    "language": "en-US",
    "messages": null
}
  • 在后续调用中:
  • 输出上没有任何内容
  • 与之前相同的locale/en-US目录,里面有相同的文件
os8fio9y

os8fio9y1#

请注意,在x/text的本地构建版本17bcc04(当前主HEAD)上,错误不会出现,并创建了3个目录:两个预期的目录,再加上意外的en-US目录。消息文件也同样为空。
奇怪的是,在本地构建的gotext中,尽管在main.go第39行定义了-srclang属性,但它不受支持。更新命令也是如此。

相关问题