你正在使用哪个版本的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"
你做了什么?
- 将 https://play.golang.org/p/7y5rpr2MpL6 存储为main.go中的简单Go应用程序
- 运行
gotext -srclang=en extract -lang=fr,en .
你期望看到什么?
- 输出上没有任何内容
- 在每个目录中创建一个
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目录,里面有相同的文件
1条答案
按热度按时间os8fio9y1#
请注意,在x/text的本地构建版本17bcc04(当前主HEAD)上,错误不会出现,并创建了3个目录:两个预期的目录,再加上意外的en-US目录。消息文件也同样为空。
奇怪的是,在本地构建的gotext中,尽管在main.go第39行定义了-srclang属性,但它不受支持。更新命令也是如此。