5849898283
Unit tests functional and coverage back to 100% Add more routes to dictionary, add more credentials, add default port 5554, rename cameradar logs ENV variable, improve unit test readability, remove tmp file
149 lines
4.6 KiB
Go
149 lines
4.6 KiB
Go
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)
|
|
}
|