locstrs

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 25, 2022 License: MIT Imports: 4 Imported by: 0

README

Locstrs

Strings localisation library in Go.

Uses text/template and html/template for placing variable parts in strings.

Supports fallback settings (see examplae below)

Documentation: https://pkg.go.dev/github.com/nickname76/locstrs

Example usage

package main

import (
	"time"

	"github.com/nickname76/locstrs"
)

func main() {
	locstrsParams := &locstrs.Parameters{
		// Default fallback language
		FallbackLanguageCode: "en",
		SpecificFallbackLanguageCodes: map[string]string{
			// Fallback belarussian to russian
			"be": "ru",
		},
	}

	welcomePatterns := map[string]string{
		"en": `Welcome!`,
		"ru": `Добро пожаловать!`,
	}

	locWelcome := locstrs.MustLocText[*struct{}](locstrsParams, welcomePatterns)

	curTimePatterns := map[string]string{
		"en": `<p>Current time is {{.}}</p>`,
		"ru": `<p>Текущее время: {{.}}</p>`,
	}

	locCurTime := locstrs.MustLocHTML[time.Time](locstrsParams, curTimePatterns)

	println(locWelcome.String("be"))
	println(locCurTime.MustExecute("en", time.Now()))
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type LocHTML

type LocHTML[ExecData any] struct {
	// contains filtered or unexported fields
}

Stores html string patterns by language codes

func MustLocHTML

func MustLocHTML[ExecData any](params *Parameters, patterns map[string]string) *LocHTML[ExecData]

Works as NewLocHTML, but panic in case of errors

func NewLocHTML

func NewLocHTML[ExecData any](params *Parameters, patterns map[string]string) (*LocHTML[ExecData], error)

Creates new LocHTML, with paramters and patters mapped by language codes

func (*LocHTML[ExecData]) Execute

func (lh *LocHTML[ExecData]) Execute(languageCode string, data ExecData) (string, error)

Executes passed in NewLocHTML pattern by languageCode with passed data

func (*LocHTML[ExecData]) MustExecute

func (lh *LocHTML[ExecData]) MustExecute(languageCode string, data ExecData) string

Works as Execute, but panics if error occures

func (*LocHTML[ExecData]) String

func (lh *LocHTML[ExecData]) String(languageCode string) string

Returns raw string passed in NewLocHTML by languageCode

type LocText

type LocText[ExecData any] struct {
	// contains filtered or unexported fields
}

Stores text string patterns by language codes

func MustLocText

func MustLocText[ExecData any](params *Parameters, patterns map[string]string) *LocText[ExecData]

Works as NewLocText, but panic in case of errors

func NewLocText

func NewLocText[ExecData any](params *Parameters, patterns map[string]string) (*LocText[ExecData], error)

Creates new LocText, with paramters and patters mapped by language codes

func (*LocText[ExecData]) Execute

func (lt *LocText[ExecData]) Execute(languageCode string, data ExecData) (string, error)

Executes passed in NewLocText pattern by languageCode with passed data

func (*LocText[ExecData]) MustExecute

func (lt *LocText[ExecData]) MustExecute(languageCode string, data ExecData) string

Works as Execute, but panics if error occures

func (*LocText[ExecData]) String

func (lt *LocText[ExecData]) String(languageCode string) string

Returns raw string passed in NewLocText by languageCode

type Parameters

type Parameters struct {
	FallbackLanguageCode          string
	SpecificFallbackLanguageCodes map[string]string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL