summaryrefslogtreecommitdiff
path: root/internal/language/language.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/language/language.go')
-rw-r--r--internal/language/language.go26
1 files changed, 25 insertions, 1 deletions
diff --git a/internal/language/language.go b/internal/language/language.go
index 233ae5a1d..376364a42 100644
--- a/internal/language/language.go
+++ b/internal/language/language.go
@@ -18,6 +18,8 @@
package language
import (
+ "errors"
+
"code.superseriousbusiness.org/gotosocial/internal/gtserror"
"golang.org/x/text/language"
"golang.org/x/text/language/display"
@@ -95,13 +97,35 @@ func (l *Language) UnmarshalText(text []byte) error {
if err != nil {
return err
}
-
*l = *lang
return nil
}
type Languages []*Language
+func (l *Languages) Set(in string) error {
+ if l == nil {
+ return errors.New("nil receiver")
+ }
+ prefix, err := Parse(in)
+ if err != nil {
+ return err
+ }
+ (*l) = append((*l), prefix)
+ return nil
+}
+
+func (l *Languages) Strings() []string {
+ if l == nil || len(*l) == 0 {
+ return nil
+ }
+ strs := make([]string, len(*l))
+ for i, lang := range *l {
+ strs[i] = lang.TagStr
+ }
+ return strs
+}
+
func (l Languages) Tags() []language.Tag {
tags := make([]language.Tag, len(l))
for i, lang := range l {