An exception subclass, which should be used as a mix-in.
It is intended to be used for exceptions which may be user-facing, such as connection errors, value validation issues and the like.
localizable_string must be a i18n.LocalizableString instance. The args and kwargs will be passed to LocalizableString.localize when either str() is called on the UserError or localize() is called.
The str() is created using the default LocalizingFormatter and a gettext.NullTranslations instance. The point in time at which the default localizing formatter is created is unspecified.
This is a ValueError with UserError mixed in.