Documentation ¶
Index ¶
- func CookieLanguageExtractor(o LanguageExtractorOptions, c buffalo.Context) []string
- func HeaderLanguageExtractor(o LanguageExtractorOptions, c buffalo.Context) []string
- func SessionLanguageExtractor(o LanguageExtractorOptions, c buffalo.Context) []string
- func URLPrefixLanguageExtractor(o LanguageExtractorOptions, c buffalo.Context) []string
- type LanguageExtractor
- type LanguageExtractorOptions
- type Translator
- func (t *Translator) AddTranslation(lang *language.Language, translations ...translation.Translation)
- func (t *Translator) AvailableLanguages() []string
- func (t *Translator) Load() error
- func (t *Translator) Middleware() buffalo.MiddlewareFunc
- func (t *Translator) Refresh(c buffalo.Context, newLang string)
- func (t *Translator) Translate(c buffalo.Context, translationID string, args ...interface{}) string
- func (t *Translator) TranslateWithLang(lang, translationID string, args ...interface{}) (string, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CookieLanguageExtractor ¶
func CookieLanguageExtractor(o LanguageExtractorOptions, c buffalo.Context) []string
CookieLanguageExtractor is a LanguageExtractor implementation, using a cookie.
func HeaderLanguageExtractor ¶
func HeaderLanguageExtractor(o LanguageExtractorOptions, c buffalo.Context) []string
HeaderLanguageExtractor is a LanguageExtractor implementation, using a HTTP Accept-Language header.
func SessionLanguageExtractor ¶
func SessionLanguageExtractor(o LanguageExtractorOptions, c buffalo.Context) []string
SessionLanguageExtractor is a LanguageExtractor implementation, using a session.
func URLPrefixLanguageExtractor ¶
func URLPrefixLanguageExtractor(o LanguageExtractorOptions, c buffalo.Context) []string
URLPrefixLanguageExtractor is a LanguageExtractor implementation, using a prefix in the URL.
Types ¶
type LanguageExtractor ¶
type LanguageExtractor func(LanguageExtractorOptions, buffalo.Context) []string
LanguageExtractor can be implemented for custom finding of search languages. This can be useful if you want to load a user's language from something like a database. See Middleware() for more information on how the default implementation searches for languages.
type LanguageExtractorOptions ¶
type LanguageExtractorOptions map[string]interface{}
LanguageExtractorOptions is a map of options for a LanguageExtractor.
type Translator ¶
type Translator struct { // FS that contains the files FS fs.FS // DefaultLanguage - default is passed as a parameter on New. DefaultLanguage string // HelperName - name of the view helper. default is "t" HelperName string // LanguageExtractors - a sorted list of user language extractors. LanguageExtractors []LanguageExtractor // LanguageExtractorOptions - a map with options to give to LanguageExtractors. LanguageExtractorOptions LanguageExtractorOptions }
Translator for handling all your i18n needs.
func New ¶
func New(fsys fs.FS, language string) (*Translator, error)
New Translator. Requires a fs.FS that points to the location of the translation files, as well as a default language. This will also call t.Load() and load the translations from disk.
func (*Translator) AddTranslation ¶
func (t *Translator) AddTranslation(lang *language.Language, translations ...translation.Translation)
AddTranslation directly, without using a file. This is useful if you wish to load translations from a database, instead of disk.
func (*Translator) AvailableLanguages ¶
func (t *Translator) AvailableLanguages() []string
AvailableLanguages gets the list of languages provided by the app.
func (*Translator) Middleware ¶
func (t *Translator) Middleware() buffalo.MiddlewareFunc
Middleware for loading the translations for the language(s) selected. By default languages are loaded in the following order:
Cookie - "lang" Session - "lang" Header - "Accept-Language" Default - "en-US"
These values can be changed on the Translator itself. In development model the translation files will be reloaded on each request.
func (*Translator) Refresh ¶
func (t *Translator) Refresh(c buffalo.Context, newLang string)
Refresh updates the context, reloading translation functions. It can be used after language change, to be able to use translation functions in the new language (for a flash message, for instance).
func (*Translator) Translate ¶
func (t *Translator) Translate(c buffalo.Context, translationID string, args ...interface{}) string
Translate returns the translation of the string identified by translationID.
See https://github.com/gobuffalo/i18n-mw/internal/go-i18n
If there is no translation for translationID, then the translationID itself is returned. This makes it easy to identify missing translations in your app.
If translationID is a non-plural form, then the first variadic argument may be a map[string]interface{} or struct that contains template data.
If translationID is a plural form, the function accepts two parameter signatures 1. T(count int, data struct{}) The first variadic argument must be an integer type (int, int8, int16, int32, int64) or a float formatted as a string (e.g. "123.45"). The second variadic argument may be a map[string]interface{} or struct{} that contains template data. 2. T(data struct{}) data must be a struct{} or map[string]interface{} that contains a Count field and the template data, Count field must be an integer type (int, int8, int16, int32, int64) or a float formatted as a string (e.g. "123.45").
func (*Translator) TranslateWithLang ¶
func (t *Translator) TranslateWithLang(lang, translationID string, args ...interface{}) (string, error)
TranslateWithLang returns the translation of the string identified by translationID, for the given language. See Translate for further details.