123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- package ut
- import (
- "errors"
- "fmt"
- "github.com/go-playground/locales"
- )
- var (
- // ErrUnknowTranslation indicates the translation could not be found
- ErrUnknowTranslation = errors.New("Unknown Translation")
- )
- var _ error = new(ErrConflictingTranslation)
- var _ error = new(ErrRangeTranslation)
- var _ error = new(ErrOrdinalTranslation)
- var _ error = new(ErrCardinalTranslation)
- var _ error = new(ErrMissingPluralTranslation)
- var _ error = new(ErrExistingTranslator)
- // ErrExistingTranslator is the error representing a conflicting translator
- type ErrExistingTranslator struct {
- locale string
- }
- // Error returns ErrExistingTranslator's internal error text
- func (e *ErrExistingTranslator) Error() string {
- return fmt.Sprintf("error: conflicting translator for locale '%s'", e.locale)
- }
- // ErrConflictingTranslation is the error representing a conflicting translation
- type ErrConflictingTranslation struct {
- locale string
- key interface{}
- rule locales.PluralRule
- text string
- }
- // Error returns ErrConflictingTranslation's internal error text
- func (e *ErrConflictingTranslation) Error() string {
- if _, ok := e.key.(string); !ok {
- return fmt.Sprintf("error: conflicting key '%#v' rule '%s' with text '%s' for locale '%s', value being ignored", e.key, e.rule, e.text, e.locale)
- }
- return fmt.Sprintf("error: conflicting key '%s' rule '%s' with text '%s' for locale '%s', value being ignored", e.key, e.rule, e.text, e.locale)
- }
- // ErrRangeTranslation is the error representing a range translation error
- type ErrRangeTranslation struct {
- text string
- }
- // Error returns ErrRangeTranslation's internal error text
- func (e *ErrRangeTranslation) Error() string {
- return e.text
- }
- // ErrOrdinalTranslation is the error representing an ordinal translation error
- type ErrOrdinalTranslation struct {
- text string
- }
- // Error returns ErrOrdinalTranslation's internal error text
- func (e *ErrOrdinalTranslation) Error() string {
- return e.text
- }
- // ErrCardinalTranslation is the error representing a cardinal translation error
- type ErrCardinalTranslation struct {
- text string
- }
- // Error returns ErrCardinalTranslation's internal error text
- func (e *ErrCardinalTranslation) Error() string {
- return e.text
- }
- // ErrMissingPluralTranslation is the error signifying a missing translation given
- // the locales plural rules.
- type ErrMissingPluralTranslation struct {
- locale string
- key interface{}
- rule locales.PluralRule
- translationType string
- }
- // Error returns ErrMissingPluralTranslation's internal error text
- func (e *ErrMissingPluralTranslation) Error() string {
- if _, ok := e.key.(string); !ok {
- return fmt.Sprintf("error: missing '%s' plural rule '%s' for translation with key '%#v' and locale '%s'", e.translationType, e.rule, e.key, e.locale)
- }
- return fmt.Sprintf("error: missing '%s' plural rule '%s' for translation with key '%s' and locale '%s'", e.translationType, e.rule, e.key, e.locale)
- }
- // ErrMissingBracket is the error representing a missing bracket in a translation
- // eg. This is a {0 <-- missing ending '}'
- type ErrMissingBracket struct {
- locale string
- key interface{}
- text string
- }
- // Error returns ErrMissingBracket error message
- func (e *ErrMissingBracket) Error() string {
- return fmt.Sprintf("error: missing bracket '{}', in translation. locale: '%s' key: '%v' text: '%s'", e.locale, e.key, e.text)
- }
- // ErrBadParamSyntax is the error representing a bad parameter definition in a translation
- // eg. This is a {must-be-int}
- type ErrBadParamSyntax struct {
- locale string
- param string
- key interface{}
- text string
- }
- // Error returns ErrBadParamSyntax error message
- func (e *ErrBadParamSyntax) Error() string {
- return fmt.Sprintf("error: bad parameter syntax, missing parameter '%s' in translation. locale: '%s' key: '%v' text: '%s'", e.param, e.locale, e.key, e.text)
- }
- // import/export errors
- // ErrMissingLocale is the error representing an expected locale that could
- // not be found aka locale not registered with the UniversalTranslator Instance
- type ErrMissingLocale struct {
- locale string
- }
- // Error returns ErrMissingLocale's internal error text
- func (e *ErrMissingLocale) Error() string {
- return fmt.Sprintf("error: locale '%s' not registered.", e.locale)
- }
- // ErrBadPluralDefinition is the error representing an incorrect plural definition
- // usually found within translations defined within files during the import process.
- type ErrBadPluralDefinition struct {
- tl translation
- }
- // Error returns ErrBadPluralDefinition's internal error text
- func (e *ErrBadPluralDefinition) Error() string {
- return fmt.Sprintf("error: bad plural definition '%#v'", e.tl)
- }
|