Versions in this module Expand all Collapse all v1 v1.0.1 Jun 30, 2026 v1.0.0 Jun 30, 2026 Changes in this version + const MaxRegisteredLocales + var ErrRegistryFull = errors.New("locale registry is full (MaxRegisteredLocales reached)") + func DetectLocale() string + func DiscoverLocales(fs embed.FS, basePath string) []string + func EncodeBinary(translations map[string]string) ([]byte, error) + func FlattenKeys(nested map[string]interface{}) map[string]string + func GetLogger() core.Logger + func GetParser(ext string) (core.TranslationParser, error) + func GetSupportedLocales(loader core.TranslationLoader, locales ...string) []string + func NormalizeLocale(locale string) string + func RegisterParser(ext string, p core.TranslationParser) error + func RegisteredFormats() []string + func RegisteredLocales() []string + func SetLogger(l core.Logger) + type AcceptLanguageDetector struct + func NewAcceptLanguageDetector(header string) *AcceptLanguageDetector + func (d *AcceptLanguageDetector) Detect() string + func (d *AcceptLanguageDetector) Normalize(locale string) string + type BinaryParser struct + func NewBinaryParser() *BinaryParser + func (p *BinaryParser) Parse(data []byte) (map[string]interface{}, error) + type BrowserDetector struct + func NewBrowserDetector() *BrowserDetector + func (d *BrowserDetector) Detect() string + func (d *BrowserDetector) Normalize(locale string) string + type ChainDetector struct + func NewChainDetector(detectors ...core.LocaleDetector) *ChainDetector + func (c *ChainDetector) Detect() string + func (c *ChainDetector) Normalize(locale string) string + type ContextTranslator struct + func (ct *ContextTranslator) GetLocale() string + func (ct *ContextTranslator) HasKey(key string) bool + func (ct *ContextTranslator) SetLocale(locale string) + func (ct *ContextTranslator) Translate(key string) string + func (ct *ContextTranslator) TranslateGender(key string, gender core.GenderCategory) string + func (ct *ContextTranslator) TranslatePlural(key string, count interface{}) string + func (ct *ContextTranslator) TranslateWithArgs(key string, args ...interface{}) string + type DefaultFallbackChainer struct + func NewDefaultFallbackChainer() *DefaultFallbackChainer + func (c *DefaultFallbackChainer) GetChain(locale string) []string + type DefaultKeyResolver struct + func NewDefaultKeyResolver() *DefaultKeyResolver + func (r *DefaultKeyResolver) Resolve(translations map[string]interface{}, key string) (string, error) + type DefaultLocaleDetector struct + func NewDefaultLocaleDetector(env core.EnvProvider) *DefaultLocaleDetector + func (d *DefaultLocaleDetector) Detect() string + func (d *DefaultLocaleDetector) Normalize(locale string) string + type DefaultPluralResolver struct + func NewDefaultPluralResolver() *DefaultPluralResolver + func (r *DefaultPluralResolver) Resolve(locale string, count interface{}) core.PluralCategory + type EmbedFSLoader struct + func NewEmbedFSLoader(fs embed.FS, basePath string, opts ...LoaderOption) *EmbedFSLoader + func (l *EmbedFSLoader) Load(locale string) ([]byte, error) + type FileSystemLoader struct + func NewFileSystemLoader(baseDir string, opts ...LoaderOption) *FileSystemLoader + func (l *FileSystemLoader) Load(_ string) ([]byte, error) + func (l *FileSystemLoader) Load(locale string) ([]byte, error) + type JSONParser struct + func NewJSONParser() *JSONParser + func (p *JSONParser) Parse(data []byte) (map[string]interface{}, error) + type LoaderOption func(*loaderConfig) + func WithExtension(ext string) LoaderOption + type LocaleSet struct + func NewLocaleSet[T any](fallbackCode string, fallback *T) *LocaleSet[T] + func (ls *LocaleSet[T]) Add(code string, data *T) + func (ls *LocaleSet[T]) Codes() []string + func (ls *LocaleSet[T]) Get(code string) *T + func (ls *LocaleSet[T]) SetLocale(st *StructTranslator[T], code string) bool + type MapCache struct + func NewMapCache() *MapCache + func NewMapCacheWithLimit(maxEntries int) *MapCache + func (c *MapCache) Get(key string) (string, bool) + func (c *MapCache) Invalidate() + func (c *MapCache) Set(key, value string) + type Namespace struct + func NewNamespace(prefix string, t core.TranslatorProvider) (*Namespace, error) + func (ns *Namespace) Has(key string) bool + func (ns *Namespace) Key(key string) string + func (ns *Namespace) T(key string) string + func (ns *Namespace) TD(key, defaultValue string) string + func (ns *Namespace) TF(key string, args ...interface{}) string + type NopLogger struct + func (NopLogger) Debug(string, ...any) + func (NopLogger) Enabled(core.LogLevel) bool + func (NopLogger) Error(string, ...any) + func (NopLogger) Fatal(string, ...any) + func (NopLogger) Info(string, ...any) + func (NopLogger) Warn(string, ...any) + func (n NopLogger) WithContext(context.Context) core.Logger + func (n NopLogger) WithFields(...any) core.Logger + func (n NopLogger) WithLevel(core.LogLevel) core.Logger + type OSEnvProvider struct — darwin/amd64, linux/amd64, windows/amd64 + func (p *OSEnvProvider) Getenv(key string) string + type Option func(*Translator) error + func WithCache(cache core.Cacher) Option + func WithDefaultLocale(locale string) Option + func WithFallbackChainer(chainer core.FallbackChainer) Option + func WithFileSystemLoader(baseDir string) Option + func WithLoader(loader core.TranslationLoader) Option + func WithLocaleDetector(detector core.LocaleDetector) Option + func WithLogger(l core.Logger) Option + func WithParser(parser core.TranslationParser) Option + func WithPluralResolver(resolver core.PluralResolver) Option + func WithRegisteredParser(ext string) Option + func WithRegistryLoader() Option + func WithResolver(resolver core.KeyResolver) Option + type PackageOption func(*PackageTranslator) + func WithDefaults(defaults map[string]string) PackageOption + func WithTranslator(t core.TranslatorProvider) PackageOption + type PackageTranslator struct + func NewPackageTranslator(namespace string, opts ...PackageOption) *PackageTranslator + func NewPackageTranslatorWithFS(namespace string, fs embed.FS, basePath string, opts ...PackageOption) *PackageTranslator + func (pt *PackageTranslator) GetLocale() string + func (pt *PackageTranslator) GetTranslator() core.TranslatorProvider + func (pt *PackageTranslator) Has(key string) bool + func (pt *PackageTranslator) HasKey(key string) bool + func (pt *PackageTranslator) SetLocale(locale string) + func (pt *PackageTranslator) SetTranslator(t core.TranslatorProvider) + func (pt *PackageTranslator) T(key string) string + func (pt *PackageTranslator) TF(key string, args ...interface{}) string + func (pt *PackageTranslator) Translate(key string) string + func (pt *PackageTranslator) TranslateGender(key string, gender core.GenderCategory) string + func (pt *PackageTranslator) TranslatePlural(key string, count interface{}) string + func (pt *PackageTranslator) TranslateWithArgs(key string, args ...interface{}) string + type Registry struct + func NewRegistry() *Registry + func (r *Registry) GetParser(ext string) (core.TranslationParser, error) + func (r *Registry) RegisterParser(ext string, p core.TranslationParser) error + func (r *Registry) RegisteredFormats() []string + type RegistryLoader struct + func NewRegistryLoader() *RegistryLoader + func (l *RegistryLoader) Load(locale string) ([]byte, error) + type StaticDetector struct + func NewStaticDetector(locale string) *StaticDetector + func (s *StaticDetector) Detect() string + func (s *StaticDetector) Normalize(locale string) string + type StructTranslator struct + func NewStructTranslator[T any](initial *T) *StructTranslator[T] + func (st *StructTranslator[T]) Get() *T + func (st *StructTranslator[T]) Set(locale *T) + type Translator struct + func New(opts ...Option) (*Translator, error) + func NewWithFS(baseDir, defaultLocale string, opts ...Option) (*Translator, error) + func NewWithRegistry(defaultLocale string, opts ...Option) (*Translator, error) + func (t *Translator) GetLocale() string + func (t *Translator) HasKey(key string) bool + func (t *Translator) ReloadLocale(locale string) error + func (t *Translator) SetLocale(locale string) + func (t *Translator) Translate(key string) string + func (t *Translator) TranslateGender(key string, gender core.GenderCategory) string + func (t *Translator) TranslatePlural(key string, count interface{}) string + func (t *Translator) TranslatePluralWithArgs(key string, count interface{}, args ...interface{}) string + func (t *Translator) TranslateWithArgs(key string, args ...interface{}) string + func (t *Translator) TranslateWithMessage(key string, args map[string]interface{}) string + func (t *Translator) WithContext(ctx context.Context) *ContextTranslator + func (t *Translator) WithLocaleContext(ctx context.Context, locale string) *ContextTranslator + type WASMEnvProvider struct — js/wasm + func (p *WASMEnvProvider) Getenv(_ string) string