package arn // PersonName represents the name of a person. type PersonName struct { English Name `json:"english" editable:"true"` Japanese Name `json:"japanese" editable:"true"` } // String returns the default visualization of the name. func (name *PersonName) String() string { return name.ByUser(nil) } // ByUser returns the preferred name for the given user. func (name *PersonName) ByUser(user *User) string { if user == nil { return name.English.String() } switch user.Settings().TitleLanguage { case "japanese": if name.Japanese.String() == "" { return name.English.String() } return name.Japanese.String() default: return name.English.String() } }