i18n

package module
v0.8.7 Latest Latest
Warning

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

Go to latest
Published: Mar 7, 2026 License: MIT Imports: 6 Imported by: 16

README

i18n

Documentation

Index

Constants

View Source
const (
	LocaleCodeArEG = "ar-EG" // Arabic Egypt
	LocaleCodeDeDE = "de-DE" // German
	LocaleCodeEnUK = "en-UK" // English UK
	LocaleCodeEnUS = "en-US" // English US
	LocaleCodeEsES = "es-ES" // Spanish
	LocaleCodeFaIR = "fa-IR" // Farsi
	LocaleCodeFrFR = "fr-FR" // French
	LocaleCodeIdID = "id-ID" // Indonesian
	LocaleCodeItIT = "it-IT" // Italian
	LocaleCodeJaJP = "ja-JP" // Japanese
	LocaleCodeKoKR = "ko-KR" // Korean
	LocaleCodePlPL = "pl-PL" // Polish
	LocaleCodePtBR = "pt-BR" // Portuguese Brazil
	LocaleCodePtPT = "pt-PT" // Portuguese Portugal
	LocaleCodeRuRU = "ru-RU" // Russian
	LocaleCodeTrTR = "tr-TR" // Turkish
	LocaleCodeUkUA = "uk-UA" // Ukrainian
	LocaleCodeUzUZ = "uz-UZ" // Uzbek
	LocaleCodeZhCN = "zh-CN" // Chinese
)
View Source
const LocaleCodeUndefined = "UNDEFINED"

LocaleCodeUndefined is undefined locale code

Variables

View Source
var (
	LocaleArEG = Locale{Code5: LocaleCodeArEG, NativeTitle: "العربية المصرية", EnglishTitle: "Arabic Egypt", FlagIcon: "🇪🇬"}
	LocaleDeDE = Locale{Code5: LocaleCodeDeDE, NativeTitle: "Deutsch", EnglishTitle: "German", FlagIcon: "🇩🇪"}
	LocaleEnUK = Locale{Code5: LocaleCodeEnUK, NativeTitle: "English", EnglishTitle: "English", FlagIcon: "🇬🇧"}
	LocaleEnUS = Locale{Code5: LocaleCodeEnUS, NativeTitle: "English", EnglishTitle: "English", FlagIcon: "🇺🇸"}
	LocaleEsES = Locale{Code5: LocaleCodeEsES, NativeTitle: "Español", EnglishTitle: "Spanish", FlagIcon: "🇪🇸"}
	LocaleFaIR = Locale{Code5: LocaleCodeFaIR, IsRtl: true, NativeTitle: "فارسی", EnglishTitle: "Farsi", FlagIcon: "🇮🇷"}
	LocaleFrFR = Locale{Code5: LocaleCodeFrFR, NativeTitle: "Français", EnglishTitle: "French", FlagIcon: "🇫🇷"}
	LocaleIdID = Locale{Code5: LocaleCodeIdID, NativeTitle: "Bahasa Indonesia", EnglishTitle: "Indonesian", FlagIcon: "🇮🇩"}
	LocaleItIT = Locale{Code5: LocaleCodeItIT, NativeTitle: "Italiano", EnglishTitle: "Italian", FlagIcon: "🇮🇹"}
	LocaleJaJP = Locale{Code5: LocaleCodeJaJP, NativeTitle: "日本語", EnglishTitle: "Japanese", FlagIcon: "🇯🇵"}
	LocaleKoKR = Locale{Code5: LocaleCodeKoKR, NativeTitle: "한국어", EnglishTitle: "Korean", FlagIcon: "🇰🇷"}
	LocalePlPl = Locale{Code5: LocaleCodePlPL, NativeTitle: "Polszczyzna", EnglishTitle: "Polish", FlagIcon: "🇵🇱"}
	LocalePtBR = Locale{Code5: LocaleCodePtBR, NativeTitle: "Português (BR)", EnglishTitle: "Portuguese (BR)", FlagIcon: "🇧🇷"}
	LocalePtPT = Locale{Code5: LocaleCodePtPT, NativeTitle: "Português (PT)", EnglishTitle: "Portuguese (PT)", FlagIcon: "🇵🇹"}
	LocaleRuRU = Locale{Code5: LocaleCodeRuRU, NativeTitle: "Русский", EnglishTitle: "Russian", FlagIcon: "🇷🇺"}
	LocaleTrTR = Locale{Code5: LocaleCodeTrTR, NativeTitle: "Türkçe", EnglishTitle: "Turkish", FlagIcon: "🇹🇷"}
	LocaleUkUA = Locale{Code5: LocaleCodeUkUA, NativeTitle: "Українська", EnglishTitle: "Ukrainian", FlagIcon: "🇺🇦"}
	LocaleUzUZ = Locale{Code5: LocaleCodeUzUZ, NativeTitle: "Oʻzbek tili", EnglishTitle: "Uzbek", FlagIcon: "🇨🇳"}
	LocaleZhCN = Locale{Code5: LocaleCodeZhCN, NativeTitle: "中文", EnglishTitle: "Chinese", FlagIcon: "🇨🇳"}
)
View Source
var LocaleUndefined = Locale{Code5: LocaleCodeUndefined, NativeTitle: "Undefined", EnglishTitle: "Undefined"}
View Source
var LocalesByCode5 = map[string]Locale{
	LocaleCodeArEG: LocaleArEG,
	LocaleCodeDeDE: LocaleDeDE,
	LocaleCodeEnUK: LocaleEnUK,
	LocaleCodeEnUS: LocaleEnUS,
	LocaleCodeEsES: LocaleEsES,
	LocaleCodeFaIR: LocaleFaIR,
	LocaleCodeFrFR: LocaleFrFR,
	LocaleCodeIdID: LocaleIdID,
	LocaleCodeItIT: LocaleItIT,
	LocaleCodeJaJP: LocaleJaJP,
	LocaleCodeKoKR: LocaleKoKR,
	LocaleCodePlPL: LocalePlPl,
	LocaleCodePtBR: LocalePtBR,
	LocaleCodePtPT: LocalePtPT,
	LocaleCodeRuRU: LocaleRuRU,
	LocaleCodeTrTR: LocaleTrTR,
	LocaleCodeUkUA: LocaleUkUA,
	LocaleCodeUzUZ: LocaleUzUZ,
	LocaleCodeZhCN: LocaleZhCN,
}

LocalesByCode5 map of locales by 5-character code

Functions

This section is empty.

Types

type Locale

type Locale struct {
	Code5        string
	NativeTitle  string
	EnglishTitle string
	FlagIcon     string
	IsRtl        bool
}

Locale describes language

func GetLocaleByCode5 added in v0.0.2

func GetLocaleByCode5(code5 string) Locale

GetLocaleByCode5 returns locale by 5-character code

func (Locale) SiteCode

func (l Locale) SiteCode() string

SiteCode returns code for using in website URLs

func (Locale) String

func (l Locale) String() string

String represents locale information as string

func (Locale) TitleWithIcon

func (l Locale) TitleWithIcon() string

TitleWithIcon returns name of the language and flag emoji

func (Locale) TitleWithIconAndNumber

func (l Locale) TitleWithIconAndNumber(i int) string

TitleWithIconAndNumber returns name, flag emoji and a number // TODO: should bot be here

type LocalesProvider

type LocalesProvider interface {
	SupportedLocales() []Locale
	GetLocaleByCode5(code5 string) (Locale, error)
}

LocalesProvider provides locale by code

func NewSupportedLocales added in v0.0.4

func NewSupportedLocales(code5s []string) LocalesProvider

type Logger

type Logger interface {
	Debugf(c context.Context, format string, args ...any)
	Errorf(c context.Context, format string, args ...any)
	Warningf(c context.Context, format string, args ...any)
}

type SingleLocaleTranslator

type SingleLocaleTranslator interface {
	Locale() Locale
	Translate(key string, args ...any) string
	TranslateWithMap(key string, args map[string]string) string
	TranslateNoWarning(key string, args ...any) string
}

SingleLocaleTranslator should be implemente by translators to a single language

func NewSingleMapTranslator

func NewSingleMapTranslator(locale Locale, translator Translator) SingleLocaleTranslator

NewSingleMapTranslator creates new single map translator

type SingleLocaleTranslatorWithBackup

type SingleLocaleTranslatorWithBackup struct {
	PrimaryTranslator SingleLocaleTranslator
	BackupTranslator  SingleLocaleTranslator
}

SingleLocaleTranslatorWithBackup should be implemente by translators to a single language with backup to another one.

func NewSingleLocaleTranslatorWithBackup

func NewSingleLocaleTranslatorWithBackup(primary, backup SingleLocaleTranslator) SingleLocaleTranslatorWithBackup

NewSingleLocaleTranslatorWithBackup creates SingleLocaleTranslatorWithBackup

func (SingleLocaleTranslatorWithBackup) Locale

Locale returns local of the translator

func (SingleLocaleTranslatorWithBackup) Translate

func (t SingleLocaleTranslatorWithBackup) Translate(key string, args ...any) string

Translate translates

func (SingleLocaleTranslatorWithBackup) TranslateNoWarning

func (t SingleLocaleTranslatorWithBackup) TranslateNoWarning(key string, args ...any) string

TranslateNoWarning translates and does not log warning if translation not found

func (SingleLocaleTranslatorWithBackup) TranslateWithMap added in v0.7.1

func (t SingleLocaleTranslatorWithBackup) TranslateWithMap(key string, args map[string]string) string

type TranslationContext added in v0.0.3

type TranslationContext interface {
	LocalesProvider
	GetTranslator(c context.Context) Translator
	SetLocale(code5 string) error
}

TranslationContext is an i18n context (internationalization)

func NewContext added in v0.0.3

func NewContext(c context.Context, supportedLocales LocalesProvider) TranslationContext

type Translator

type Translator interface {
	Translate(key, locale string, args ...any) string
	TranslateWithMap(key, locale string, args map[string]string) string
	TranslateNoWarning(key, locale string, args ...any) string
}

Translator provides translations by key and locale

func NewMapTranslator

func NewMapTranslator(c context.Context, defaultLocale string, translations map[string]map[string]string) Translator

NewMapTranslator creates new map translator

type TranslatorProvider added in v0.0.3

type TranslatorProvider = func(locale string) Translator

Directories

Path Synopsis
Package mock_i18n is a generated GoMock package.
Package mock_i18n is a generated GoMock package.

Jump to

Keyboard shortcuts

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