Documentation
¶
Index ¶
- Constants
- Variables
- type Locale
- type LocalesProvider
- type Logger
- type SingleLocaleTranslator
- type SingleLocaleTranslatorWithBackup
- func (t SingleLocaleTranslatorWithBackup) Locale() Locale
- func (t SingleLocaleTranslatorWithBackup) Translate(key string, args ...any) string
- func (t SingleLocaleTranslatorWithBackup) TranslateNoWarning(key string, args ...any) string
- func (t SingleLocaleTranslatorWithBackup) TranslateWithMap(key string, args map[string]string) string
- type TranslationContext
- type Translator
- type TranslatorProvider
Constants ¶
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 )
const LocaleCodeUndefined = "UNDEFINED"
LocaleCodeUndefined is undefined locale code
Variables ¶
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: "🇨🇳"} )
var LocaleUndefined = Locale{Code5: LocaleCodeUndefined, NativeTitle: "Undefined", EnglishTitle: "Undefined"}
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
GetLocaleByCode5 returns locale by 5-character code
func (Locale) TitleWithIcon ¶
TitleWithIcon returns name of the language and flag emoji
func (Locale) TitleWithIconAndNumber ¶
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 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 ¶
func (t SingleLocaleTranslatorWithBackup) Locale() 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