Documentation
¶
Overview ¶
Package i18n provides internationalization (i18n) for Go projects and various template engines.
Index ¶
- Variables
- func IsNullTranslation(t Translation) bool
- type Formatter
- type Internationalization
- func (i *Internationalization) Accept(accept string) Translation
- func (i *Internationalization) Add(t Translation)
- func (i *Internationalization) Default() language.Tag
- func (i *Internationalization) Languages() []string
- func (i *Internationalization) Supported() []language.Tag
- func (i *Internationalization) TemplateFuncs() template.FuncMap
- func (i *Internationalization) TemplateInject(f map[string]interface{})
- func (i *Internationalization) TemplateNew(name string) *template.Template
- func (i *Internationalization) Translate(lang, key string) string
- type NullTranslation
- type Translater
- type Translation
- type TranslationMap
- func NewMap(lang language.Tag, keys map[string]string) TranslationMap
- func NewTranslationFile(lang language.Tag, name string) (t TranslationMap, err error)
- func ParseJSON(lang language.Tag, b []byte) (t TranslationMap, err error)
- func ParseTOML(lang language.Tag, b []byte) (t TranslationMap, err error)
- func ParseYAML(lang language.Tag, b []byte) (t TranslationMap, err error)
- func (t TranslationMap) Fprint(w io.Writer, a ...interface{}) (int, error)
- func (t TranslationMap) Fprintf(w io.Writer, key string, a ...interface{}) (int, error)
- func (t TranslationMap) Fprintln(w io.Writer, a ...interface{}) (int, error)
- func (t TranslationMap) Get(key string) string
- func (t TranslationMap) Has(key string) bool
- func (t TranslationMap) Len() int
- func (t TranslationMap) Sprint(a ...interface{}) string
- func (t TranslationMap) Sprintf(key string, a ...interface{}) string
- func (t TranslationMap) Sprintln(a ...interface{}) string
- func (t TranslationMap) Tag() language.Tag
Constants ¶
This section is empty.
Variables ¶
var (
ErrUnknownFormat = errors.New("i18n: unknown file format")
)
Functions ¶
func IsNullTranslation ¶
func IsNullTranslation(t Translation) bool
IsNullTranslation checks if the translation is a NullTranslation or NullTranslation pointer
Types ¶
type Formatter ¶
type Formatter interface { Fprint(io.Writer, ...interface{}) (int, error) Fprintf(io.Writer, string, ...interface{}) (int, error) Fprintln(io.Writer, ...interface{}) (int, error) Sprint(...interface{}) string Sprintf(string, ...interface{}) string Sprintln(...interface{}) string }
Formatter partially implements the fmt package.
type Internationalization ¶
type Internationalization struct {
// contains filtered or unexported fields
}
func New ¶
func New(fallback language.Tag) (*Internationalization, error)
New starts a new internationalization instance.
func (*Internationalization) Accept ¶
func (i *Internationalization) Accept(accept string) Translation
Accept parses a HTTP Accept-Language header and returns a matching translation. May return a NullTranslation if there is no matching language and the fallback language is also not available.
func (*Internationalization) Add ¶
func (i *Internationalization) Add(t Translation)
Add a translation
func (*Internationalization) Default ¶
func (i *Internationalization) Default() language.Tag
Default returns the default (fallback) tag.
func (*Internationalization) Languages ¶
func (i *Internationalization) Languages() []string
Languages returns a slice of supported languages, in their native translation.
func (*Internationalization) Supported ¶
func (i *Internationalization) Supported() []language.Tag
Supported returns a slice of supported language tags.
func (*Internationalization) TemplateFuncs ¶
func (i *Internationalization) TemplateFuncs() template.FuncMap
TemplateFuncs generates a new template function map.
func (*Internationalization) TemplateInject ¶
func (i *Internationalization) TemplateInject(f map[string]interface{})
TemplateInject injects Internationalization template functions into the passed template function map.
func (*Internationalization) TemplateNew ¶
func (i *Internationalization) TemplateNew(name string) *template.Template
TemplateNew is a wrapper for template.New that injects the Internationalization template functions.
func (*Internationalization) Translate ¶
func (i *Internationalization) Translate(lang, key string) string
Translate a phrase based on the selected language.
type NullTranslation ¶
type NullTranslation struct {
TranslationMap
}
func (NullTranslation) Tag ¶
func (t NullTranslation) Tag() language.Tag
type Translater ¶
type Translation ¶
type Translation interface { Translater Formatter }
type TranslationMap ¶
type TranslationMap struct {
// contains filtered or unexported fields
}
func NewTranslationFile ¶
func NewTranslationFile(lang language.Tag, name string) (t TranslationMap, err error)
func ParseJSON ¶
func ParseJSON(lang language.Tag, b []byte) (t TranslationMap, err error)
ParseJSON takes a JSON blob and tries to decode it as a TranslationMap.
func ParseTOML ¶
func ParseTOML(lang language.Tag, b []byte) (t TranslationMap, err error)
ParseTOML takes a TOML blob and tries to decode it as a TranslationMap.
func ParseYAML ¶
func ParseYAML(lang language.Tag, b []byte) (t TranslationMap, err error)
Parse Ruby compatible i18n translations file, which is a (tree based) key-value structure with the root keys as the language, see http://guides.rubyonrails.org/i18n.html
func (TranslationMap) Fprint ¶
func (t TranslationMap) Fprint(w io.Writer, a ...interface{}) (int, error)
func (TranslationMap) Fprintln ¶
func (t TranslationMap) Fprintln(w io.Writer, a ...interface{}) (int, error)
func (TranslationMap) Get ¶
func (t TranslationMap) Get(key string) string
func (TranslationMap) Has ¶
func (t TranslationMap) Has(key string) bool
func (TranslationMap) Len ¶
func (t TranslationMap) Len() int
func (TranslationMap) Sprint ¶
func (t TranslationMap) Sprint(a ...interface{}) string
func (TranslationMap) Sprintf ¶
func (t TranslationMap) Sprintf(key string, a ...interface{}) string
func (TranslationMap) Sprintln ¶
func (t TranslationMap) Sprintln(a ...interface{}) string
func (TranslationMap) Tag ¶
func (t TranslationMap) Tag() language.Tag