Go: создать gotext с подпакетами

Я следую этому уроку Алекса Эдвардса, чтобы включить переводы в мой проект 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/...

Я также пробовал передавать ./../... и подобные вещи в виде пакета, но ничего из этого не работает. Я буквально застрял здесь.

Есть идеи?

Пробовали ли вы обратиться к документации gotext, поскольку это программа, которую вы выполняете?

Volker 24.06.2024 13:29

@Volker да, это не помогает. Он просто использует заполнители <package> или <package>*.

maradev21 24.06.2024 13:54
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
0
2
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

gotext использует loader#Config.FromArgs , который не поддерживает подстановочные знаки.

Так что нет, либо перечислите их все, либо исправьте gotext.

Вы можете сделать //go:generate go run Anything.go и программно создать любой список, который вам нужен. Исходник довольно легко скопировать и адаптировать.

Другие вопросы по теме