diff --git a/go.mod b/go.mod index e14d5bd000..3640683660 100644 --- a/go.mod +++ b/go.mod @@ -191,6 +191,7 @@ require ( github.com/gookit/goutil v0.6.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/schema v1.2.0 // indirect + github.com/gosexy/gettext v0.0.0-20160830220431-74466a0a0c4a // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect github.com/hashicorp/consul/api v1.15.2 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect @@ -207,6 +208,7 @@ require ( github.com/imdario/mergo v0.3.13 // indirect github.com/inconshreveable/mousetrap v1.0.1 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect + github.com/jessevdk/go-flags v1.5.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jonboulle/clockwork v0.2.2 // indirect github.com/json-iterator/go v1.1.12 // indirect diff --git a/go.sum b/go.sum index f3ec4dab07..84e91e9e0c 100644 --- a/go.sum +++ b/go.sum @@ -717,6 +717,8 @@ github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB7 github.com/gorilla/schema v1.2.0 h1:YufUaxZYCKGFuAq3c96BOhjgd5nmXiOY9NGzF247Tsc= github.com/gorilla/schema v1.2.0/go.mod h1:kgLaKoK1FELgZqMAVxx/5cbj0kT+57qxUrAlIO2eleU= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gosexy/gettext v0.0.0-20160830220431-74466a0a0c4a h1:N2b2mb4Gki1SlF3WuhR9P1YHOpl7oy/b+xxX4A3iM2E= +github.com/gosexy/gettext v0.0.0-20160830220431-74466a0a0c4a/go.mod h1:IEJaV4/6J0VpoQ33kFCUUP6umRjrcBVEbOva6XCub/Q= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= @@ -815,6 +817,7 @@ github.com/jellydator/ttlcache/v2 v2.11.1/go.mod h1:RtE5Snf0/57e+2cLWFYWCCsLas2H github.com/jellydator/ttlcache/v3 v3.0.1 h1:cHgCSMS7TdQcoprXnWUptJZzyFsqs18Lt8VVhRuZYVU= github.com/jellydator/ttlcache/v3 v3.0.1/go.mod h1:WwTaEmcXQ3MTjOm4bsZoDFiCu/hMvNWLO1w67RXz6h4= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jessevdk/go-flags v1.5.0 h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc= github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= github.com/jhump/protoreflect v1.6.0 h1:h5jfMVslIg6l29nsMs0D8Wj17RDVdNYti0vDN/PZZoE= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= diff --git a/services/userlog/Makefile b/services/userlog/Makefile index 12a1d0a7d6..1051c48792 100644 --- a/services/userlog/Makefile +++ b/services/userlog/Makefile @@ -30,6 +30,9 @@ ci-go-generate: $(MOCKERY) # CI runs ci-node-generate automatically before this .PHONY: ci-node-generate ci-node-generate: +############ translations ######## +include ../../.make/l10n.mk + ############ licenses ############ .PHONY: ci-node-check-licenses ci-node-check-licenses: diff --git a/services/userlog/pkg/service/templates.go b/services/userlog/pkg/service/templates.go index 47bb74de61..5d3983e9d5 100644 --- a/services/userlog/pkg/service/templates.go +++ b/services/userlog/pkg/service/templates.go @@ -1,45 +1,48 @@ package service +// Template marks the string as a translatable template +func Template(s string) string { return s } + // the available templates var ( SpaceShared = NotificationTemplate{ - Subject: "Space shared", - Message: "{{ .username }} added you to Space {{ .spacename }}", + Subject: Template("Space shared"), + Message: Template("{{ .username }} added you to Space {{ .spacename }}"), } SpaceUnshared = NotificationTemplate{ - Subject: "Removed from Space", - Message: "{{ .username }} removed you from Space {{ .spacename }}", + Subject: Template("Removed from Space"), + Message: Template("{{ .username }} removed you from Space {{ .spacename }}"), } SpaceDisabled = NotificationTemplate{ - Subject: "Space disabled", - Message: "{{ .username }} disabled Space {{ .spacename }}", + Subject: Template("Space disabled"), + Message: Template("{{ .username }} disabled Space {{ .spacename }}"), } SpaceDeleted = NotificationTemplate{ - Subject: "Space deleted", - Message: "{{ .username }} deleted Space {{ .spacename }}", + Subject: Template("Space deleted"), + Message: Template("{{ .username }} deleted Space {{ .spacename }}"), } SpaceMembershipExpired = NotificationTemplate{ - Subject: "Membership expired", - Message: "Access to Space {{ .spacename }} lost", + Subject: Template("Membership expired"), + Message: Template("Access to Space {{ .spacename }} lost"), } ShareCreated = NotificationTemplate{ - Subject: "Resource shared", - Message: "{{ .username }} shared {{ .resourcename }} with you", + Subject: Template("Resource shared"), + Message: Template("{{ .username }} shared {{ .resourcename }} with you"), } ShareRemoved = NotificationTemplate{ - Subject: "Resource unshared", - Message: "{{ .username }} unshared {{ .resourcename }} with you", + Subject: Template("Resource unshared"), + Message: Template("{{ .username }} unshared {{ .resourcename }} with you"), } ShareExpired = NotificationTemplate{ - Subject: "Share expired", - Message: "Access to {{ .resourcename }} expired", + Subject: Template("Share expired"), + Message: Template("Access to {{ .resourcename }} expired"), } )