i18n

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Jun 29, 2022 License: GPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	SimplifiedChinese  = Lang{Name: "zh-Hans", Tag: language.SimplifiedChinese}
	TraditionalChinese = Lang{Name: "zh-Hant", Tag: language.TraditionalChinese}
	English            = Lang{Name: "en", Tag: language.English}
)
View Source
var (
	Localizer *goI18n.Localizer
	// Languages 语言集
	Languages []*Lang

	// Language 当前语言
	Language *Lang
	// DefaultLang 默认语言
	DefaultLang *Lang
)

Functions

func AddSwitchCallback

func AddSwitchCallback(data *CallbackData)

AddSwitchCallback 添加切换语言自动回调 (回调数据)

func AddSwitchCallbackDo

func AddSwitchCallbackDo(data *CallbackData)

AddSwitchCallbackDo 添加切换语言自动回调,并立即执行回调 (回调数据)

func GTF

func GTF(i18nConfig *I18nConfig) (formatted string)

GTF GetI18nFormatted别名 获取指定Id的本地化文本 (i18n配置)

func GetI18nFormatted

func GetI18nFormatted(i18nConfig *I18nConfig) (formatted string)

GetI18nFormatted 获取指定Id的本地化文本 (i18n配置)

func InitI18nWithAllFunc

func InitI18nWithAllFunc(lang *Lang,
	logInfoFunc func(format string, v ...interface{}),
	logErrorFunc func(format string, v ...interface{}),
	unmarshalFunc func(p []byte, v interface{}) error,
	packageListFunc func(options ...Option) ([]*Lang, error),
	defaultUseSystemLanguage bool) error

InitI18nWithAllFunc 初始化带所有方法 (语言, Info日志方法, Error日志方法, 反序列化方法, 列举语言包方法)

func InitI18nWithLogFunc

func InitI18nWithLogFunc(lang *Lang,
	logInfoFunc func(format string, v ...interface{}),
	logErrorFunc func(format string, v ...interface{})) error

InitI18nWithLogFunc 初始化带日志方法 (语言, Info日志方法, Error日志方法)

func InitI18nWithOptions

func InitI18nWithOptions(lang *Lang, options ...Option) error

InitI18nWithOptions 初始化 (语言, Info日志方法, Error日志方法, 语言包格式名, 语言包解码方法, 语言包路径模式)

func LoadLanguage

func LoadLanguage(lang *Lang) (err error)

func Localize

func Localize(defaultLocalized string, id string, data map[string]interface{}, pluralCount int) (localized string)

Localize *获取本地化文本,使用变量map和复数,未找到则使用默认文本 (默认值, id, 变量map, 复数)

func ReadLangLabel

func ReadLangLabel(topLine string) []string

func SwitchLanguage

func SwitchLanguage(lang *Lang) (err error)

SwitchLanguage 切换语言 (语言)

func T

func T(id string) (localize string)

T 获取指定Id的本地化文本 (默认文本)

func TC

func TC(defaultLocalized string, id string) (localize string)

TC 获取指定Id的本地化文本,未找到则使用默认文本 (默认文本, id)

func TCCallback

func TCCallback(defaultLocalized string, id string, callback func(localized string))

TCCallback 添加切换语言自动回调,未找到则使用默认文本 (默认值, id, 回调(本地化文本))

func TCData

func TCData(defaultLocalized string, id string, data *Data) (localize string)

TCData 获取指定Id的本地化文本,使用i18n数据,未找到则使用默认文本 (默认文本, id, i18n数据)

func TCDataCallback

func TCDataCallback(defaultLocalized string, id string, data *Data, callback func(localized string))

TCDataCallback 添加切换语言自动回调,使用i18n数据,未找到则使用默认文本 (默认值, id, i18n数据, 回调(本地化文本))

func TCallback

func TCallback(id string, callback func(localized string))

TCallback 添加切换语言自动回调 (id, 回调(本地化文本))

func TData

func TData(id string, data *Data) (localize string)

TData 获取指定Id的本地化文本,使用i18n数据 (id, i18n数据)

func TDataCallback

func TDataCallback(id string, data *Data, callback func(localized string))

TDataCallback 添加切换语言自动回调,使用i18n数据 (id, i18n数据, 回调(本地化文本))

func UseLanguage

func UseLanguage(lang *Lang) (err error)

Types

type CallbackData

type CallbackData struct {
	// 回调方法
	Callback func(params ...interface{})

	// 回调Id
	CallbackId uint32
	// contains filtered or unexported fields
}

CallbackData 回调数据

type Data

type Data struct {

	// Data 变量map
	Data map[string]interface{}

	// PluralCount 复数
	PluralCount int
}

Data i18n数据

type I18nConfig

type I18nConfig struct {

	// Id
	Id string

	// Format 可变格式
	Format string

	// Data i18n数据
	Data *Data
}

I18nConfig i18n配置

type Lang

type Lang struct {

	// Name 语言名称
	Name string

	// Tag 语言标记
	Tag language.Tag

	// FileName 语言包文件名
	FileName string

	// Data 数据
	Data *[]byte
}

Lang 语言

func PackageListByPatternFunc

func PackageListByPatternFunc(options ...Option) ([]*Lang, error)

func ReadLangFromBytes

func ReadLangFromBytes(data *[]byte, fileName string) *Lang

ReadLangFromBytes 从字节数组获取语言包 (字节数组引用, 文件名) MessageFile需要从文件名截取语言包格式,已匹配到适配对应格式的反序列化方法

func ReadLangFromFileName

func ReadLangFromFileName(fileName string) *Lang

func SetDefaultLang

func SetDefaultLang(lang Lang) Lang

SetDefaultLang 设置默认语言

func (Lang) FullName

func (l Lang) FullName() string

FullName 显示名

type Option

type Option struct {

	// OptionType 选项类型
	OptionType OptionType

	// Data 选项数据
	Data *interface{}

	// Callback 选项回调
	Callback func(v interface{}) interface{}
}

Option 选项

func NewOptionWithCallback

func NewOptionWithCallback(optionType OptionType, callback func(v interface{}) interface{}) Option

func NewOptionWithData

func NewOptionWithData(optionType OptionType, data interface{}) Option

type OptionType

type OptionType int8

OptionType 选项类型

const (

	// LogInfoFunc Info日志方法
	LogInfoFunc OptionType = iota + 1

	// LogErrorFunc Error日志方法
	LogErrorFunc

	// UnmarshalFunc 语言包解码方法
	UnmarshalFunc

	// PackageSuffix 语言包格式名
	PackageSuffix

	// PackagePath 语言包路径
	PackagePath

	// PackagePattern 语言包路径正则表达式
	PackagePattern

	// PackageListFunc 语言包列表方法
	PackageListFunc

	// DefaultUseSystemLanguage 未获取到语言配置时是否使用系统语言
	DefaultUseSystemLanguage
)

Jump to

Keyboard shortcuts

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