43 lines
920 B
Go
43 lines
920 B
Go
package provider
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"git.solsynth.dev/hypernet/nexus/pkg/nex/localize"
|
|
"git.solsynth.dev/hypernet/pusher/pkg/pushkit"
|
|
)
|
|
|
|
func TranslateNotify(nty pushkit.Notification, lang string) pushkit.Notification {
|
|
if nty.TranslateKey == nil {
|
|
return nty
|
|
}
|
|
|
|
localizeKeys := map[string]string{
|
|
"title": fmt.Sprintf("%s.%s", *nty.TranslateKey, "subject"),
|
|
"subtitle": fmt.Sprintf("%s.%s", *nty.TranslateKey, "subtitle"),
|
|
"body": fmt.Sprintf("%s.%s", *nty.TranslateKey, "body"),
|
|
}
|
|
|
|
for k, v := range localizeKeys {
|
|
tmpl := localize.L.GetLocalizedString(v, lang)
|
|
if args, ok := nty.TranslateArgs[k]; ok {
|
|
anySlice := make([]any, len(args))
|
|
for i, s := range args {
|
|
anySlice[i] = s
|
|
}
|
|
str := fmt.Sprintf(tmpl, anySlice...)
|
|
switch k {
|
|
case "title":
|
|
nty.Title = str
|
|
case "subtitle":
|
|
nty.Subtitle = str
|
|
case "body":
|
|
nty.Body = str
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
return nty
|
|
}
|