Я следую этому уроку Алекса Эдвардса, чтобы включить переводы в мой проект Go 1.22. Это здорово, пока не дойдет до запуска этой команды:
package translations
//go:generate gotext -srclang=en-US update -out=catalog.go -lang=en-US,it-IT github.com/myCompany/myProject/package
Насколько я понял, если я хочу охватить больше пакетов, мне просто нужно добавить их в конце, вот так
package translations
//go:generate gotext -srclang=en-US update -out=catalog.go -lang=en-US,it-IT github.com/myCompany/myProject/package1 github.com/myCompany/myProject/package2 github.com/myCompany/myProject/package3
как сказано и в уроке
Наконец, у нас есть полный путь к модулю для пакетов, для которых вы хотите создать переводы (в данном случае bookstore.example.com/cmd/www). При необходимости вы можете перечислить несколько пакетов, разделив их пробелом.
Я думаю, это легко может стать некрасивым, поскольку количество пакетов легко вырастет.
Идеальным решением для меня могло бы быть что-то вроде этого, включая все подпакеты.
package translations
//go:generate gotext -srclang=en-US update -out=catalog.go -lang=en-US,it-IT github.com/myCompany/myProject/mainPackage/...
Я также пробовал передавать ./../...
и подобные вещи в виде пакета, но ничего из этого не работает. Я буквально застрял здесь.
Есть идеи?
@Volker да, это не помогает. Он просто использует заполнители <package>
или <package>*
.
gotext использует loader#Config.FromArgs , который не поддерживает подстановочные знаки.
Так что нет, либо перечислите их все, либо исправьте gotext
.
Вы можете сделать //go:generate go run Anything.go и программно создать любой список, который вам нужен. Исходник довольно легко скопировать и адаптировать.
Пробовали ли вы обратиться к документации gotext, поскольку это программа, которую вы выполняете?