package arn // CharacterName ... type CharacterName struct { Canonical string `json:"canonical" editable:"true"` English string `json:"english" editable:"true"` Japanese string `json:"japanese" editable:"true"` Synonyms []string `json:"synonyms" editable:"true"` } // ByUser returns the preferred name for the given user. func (name *CharacterName) ByUser(user *User) string { if user == nil { return name.Canonical } switch user.Settings().TitleLanguage { case "canonical", "romaji": return name.Canonical case "english": if name.English == "" { return name.Canonical } return name.English case "japanese": if name.Japanese == "" { return name.Canonical } return name.Japanese default: panic("Invalid name language") } }