Documentation
¶
Index ¶
- Variables
- func AllLanguageCodes() []string
- func DefaultSupportedLanguages() []string
- func IsValidLanguageCode(code string) bool
- func LocalesFS() embed.FS
- func RTLLanguages() []string
- func SetLanguageCookie(w http.ResponseWriter, lang string)
- type Language
- type Manager
- func (m *Manager) DefaultLanguage() string
- func (m *Manager) DetectLanguage(r *http.Request) string
- func (m *Manager) IsRTL(lang string) bool
- func (m *Manager) IsSupported(lang string) bool
- func (m *Manager) LoadFromFS(fs embed.FS, dir string) error
- func (m *Manager) LoadFromMap(lang string, translations map[string]string)
- func (m *Manager) NewTranslator(lang string) *Translator
- func (m *Manager) SupportedLanguageCodes() []string
- func (m *Manager) SupportedLanguages() []Language
- func (m *Manager) T(lang, key string, args ...interface{}) string
- func (m *Manager) TemplateFuncs(lang string) template.FuncMap
- type Translator
Constants ¶
This section is empty.
Variables ¶
var Languages = map[string]Language{ "en": { Code: "en", Name: "English", NativeName: "English", RTL: false, }, "de": { Code: "de", Name: "German", NativeName: "Deutsch", RTL: false, }, "fr": { Code: "fr", Name: "French", NativeName: "Français", RTL: false, }, "es": { Code: "es", Name: "Spanish", NativeName: "Español", RTL: false, }, "it": { Code: "it", Name: "Italian", NativeName: "Italiano", RTL: false, }, "pt": { Code: "pt", Name: "Portuguese", NativeName: "Português", RTL: false, }, "nl": { Code: "nl", Name: "Dutch", NativeName: "Nederlands", RTL: false, }, "pl": { Code: "pl", Name: "Polish", NativeName: "Polski", RTL: false, }, "ru": { Code: "ru", Name: "Russian", NativeName: "Русский", RTL: false, }, "ja": { Code: "ja", Name: "Japanese", NativeName: "日本語", RTL: false, }, "zh": { Code: "zh", Name: "Chinese", NativeName: "中文", RTL: false, }, "ko": { Code: "ko", Name: "Korean", NativeName: "한국어", RTL: false, }, "ar": { Code: "ar", Name: "Arabic", NativeName: "العربية", RTL: true, }, "he": { Code: "he", Name: "Hebrew", NativeName: "עברית", RTL: true, }, "fa": { Code: "fa", Name: "Persian", NativeName: "فارسی", RTL: true, }, "ur": { Code: "ur", Name: "Urdu", NativeName: "اردو", RTL: true, }, "tr": { Code: "tr", Name: "Turkish", NativeName: "Türkçe", RTL: false, }, "vi": { Code: "vi", Name: "Vietnamese", NativeName: "Tiếng Việt", RTL: false, }, "th": { Code: "th", Name: "Thai", NativeName: "ไทย", RTL: false, }, "id": { Code: "id", Name: "Indonesian", NativeName: "Bahasa Indonesia", RTL: false, }, "uk": { Code: "uk", Name: "Ukrainian", NativeName: "Українська", RTL: false, }, "cs": { Code: "cs", Name: "Czech", NativeName: "Čeština", RTL: false, }, "sv": { Code: "sv", Name: "Swedish", NativeName: "Svenska", RTL: false, }, "da": { Code: "da", Name: "Danish", NativeName: "Dansk", RTL: false, }, "fi": { Code: "fi", Name: "Finnish", NativeName: "Suomi", RTL: false, }, "no": { Code: "no", Name: "Norwegian", NativeName: "Norsk", RTL: false, }, "hu": { Code: "hu", Name: "Hungarian", NativeName: "Magyar", RTL: false, }, "el": { Code: "el", Name: "Greek", NativeName: "Ελληνικά", RTL: false, }, "ro": { Code: "ro", Name: "Romanian", NativeName: "Română", RTL: false, }, "bg": { Code: "bg", Name: "Bulgarian", NativeName: "Български", RTL: false, }, "sk": { Code: "sk", Name: "Slovak", NativeName: "Slovenčina", RTL: false, }, "hr": { Code: "hr", Name: "Croatian", NativeName: "Hrvatski", RTL: false, }, "sr": { Code: "sr", Name: "Serbian", NativeName: "Српски", RTL: false, }, "sl": { Code: "sl", Name: "Slovenian", NativeName: "Slovenščina", RTL: false, }, "et": { Code: "et", Name: "Estonian", NativeName: "Eesti", RTL: false, }, "lv": { Code: "lv", Name: "Latvian", NativeName: "Latviešu", RTL: false, }, "lt": { Code: "lt", Name: "Lithuanian", NativeName: "Lietuvių", RTL: false, }, }
Languages is the map of all supported languages
Functions ¶
func AllLanguageCodes ¶
func AllLanguageCodes() []string
AllLanguageCodes returns all available language codes
func DefaultSupportedLanguages ¶
func DefaultSupportedLanguages() []string
DefaultSupportedLanguages returns the default list of supported languages
func IsValidLanguageCode ¶
IsValidLanguageCode checks if a language code is valid
func RTLLanguages ¶
func RTLLanguages() []string
RTLLanguages returns the list of RTL language codes
func SetLanguageCookie ¶
func SetLanguageCookie(w http.ResponseWriter, lang string)
SetLanguageCookie sets the language preference cookie
Types ¶
type Language ¶
type Language struct {
Code string // BCP 47 language code (e.g., "en", "de")
Name string // English name (e.g., "English", "German")
NativeName string // Native name (e.g., "English", "Deutsch")
RTL bool // Right-to-left language
}
Language represents a supported language
func GetLanguage ¶
GetLanguage returns language info by code
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager handles translations and language detection
func DefaultManager ¶
DefaultManager creates a new i18n manager with embedded translations Uses the default supported languages and loads from embedded locales
func NewManager ¶
NewManager creates a new i18n manager
func (*Manager) DefaultLanguage ¶
DefaultLanguage returns the default language code
func (*Manager) DetectLanguage ¶
DetectLanguage detects the preferred language from the request Priority: 1. Cookie 2. Accept-Language header 3. Default
func (*Manager) IsSupported ¶
IsSupported checks if a language is supported
func (*Manager) LoadFromFS ¶
LoadFromFS loads translations from an embedded filesystem Supports both flat and nested JSON structures Nested keys are flattened with dot notation: {"auth": {"login": "Log In"}} -> "auth.login" = "Log In"
func (*Manager) LoadFromMap ¶
LoadFromMap loads translations from a map (useful for testing)
func (*Manager) NewTranslator ¶
func (m *Manager) NewTranslator(lang string) *Translator
NewTranslator creates a translator for a specific language
func (*Manager) SupportedLanguageCodes ¶
SupportedLanguageCodes returns the list of supported language codes Used for security.txt Preferred-Languages field per RFC 9116
func (*Manager) SupportedLanguages ¶
SupportedLanguages returns the list of supported languages
type Translator ¶
type Translator struct {
// contains filtered or unexported fields
}
Translator is a language-specific translator for use in templates
func (*Translator) Dir ¶
func (t *Translator) Dir() string
Dir returns "rtl" or "ltr" based on language direction
func (*Translator) IsRTL ¶
func (t *Translator) IsRTL() bool
IsRTL returns true if the current language is right-to-left
func (*Translator) Languages ¶
func (t *Translator) Languages() []Language
Languages returns all supported languages
func (*Translator) T ¶
func (t *Translator) T(key string, args ...interface{}) string
T translates a key