mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[feature] Allow full BCP 47 in language inputs (#2067)
* Allow full BCP 47 in language inputs Fixes #2066 * Fuse validation and normalization for languages * Remove outdated comment line * Move post language canonicalization test
This commit is contained in:
@ -99,14 +99,19 @@ func Email(email string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// Language checks that the given language string is a 2- or 3-letter ISO 639 code.
|
||||
// Returns an error if the language cannot be parsed. See: https://pkg.go.dev/golang.org/x/text/language
|
||||
func Language(lang string) error {
|
||||
// Language checks that the given language string is a valid, if not necessarily canonical, BCP 47 language tag.
|
||||
// Returns a canonicalized version of the tag if the language can be parsed.
|
||||
// Returns an error if the language cannot be parsed.
|
||||
// See: https://pkg.go.dev/golang.org/x/text/language
|
||||
func Language(lang string) (string, error) {
|
||||
if lang == "" {
|
||||
return errors.New("no language provided")
|
||||
return "", errors.New("no language provided")
|
||||
}
|
||||
_, err := language.ParseBase(lang)
|
||||
return err
|
||||
parsed, err := language.Parse(lang)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return parsed.String(), err
|
||||
}
|
||||
|
||||
// SignUpReason checks that a sufficient reason is given for a server signup request
|
||||
|
Reference in New Issue
Block a user