localeutil

package module
v0.14.3 Latest Latest
Warning

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

Go to latest
Published: Apr 13, 2023 License: MIT Imports: 7 Imported by: 32

README

localeutil Go license codecov PkgGoDev Go version

提供了一些常用的本地化相关功能,依赖于 golang.org/x/text

  • DetectUserLanguage 检测当前用户的本地化信息
  • LoadMessage 从 yaml、json 等格式中加载本地化的信息内容

安装

go get github.com/issue9/localeutil

版权

本项目采用 MIT 开源授权许可证,完整的授权说明可在 LICENSE 文件中找到。

Documentation

Overview

Package localeutil 提供一些本地化的工具

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DetectUserLanguage added in v0.13.0

func DetectUserLanguage() string

DetectUserLanguage 检测当前用户的本地化信息

按以下顺序读取本地化信息:

  • 环境变量 LANGUAGE;
  • 平台相关,比如 windows 下调用 GetUserDefaultLocaleName 等;
  • 按顺序读取 LC_ALL、LC_MESSAGES 和 LANG 环境变量;

所有的环境变量遵守 tag.encoding 的格式,比如 zh_CN.UTF-8,其中的 encoding 可以省略。

func DetectUserLanguageTag added in v0.7.0

func DetectUserLanguageTag() (language.Tag, error)

DetectUserLanguageTag 检测当前用户的本地化信息

文档说明参考 DetectUserLanguage

func Error added in v0.6.0

func Error(key Key, val ...interface{}) error

Error 返回未翻译的错误对象

该对象同时实现了 LocaleStringer 接口。

func LoadMessage added in v0.12.4

func LoadMessage(b *catalog.Builder, data []byte, unmarshal UnmarshalFunc) error

LoadMessage 解析 data 并写入 b

func LoadMessageFromFS added in v0.2.0

func LoadMessageFromFS(b *catalog.Builder, fsys fs.FS, path string, unmarshal UnmarshalFunc) error

LoadMessageFromFS 从文件系统中加载文件并写入 b

unmarshal 用于解析从 path 加载的文件;

func LoadMessageFromFSGlob added in v0.9.0

func LoadMessageFromFSGlob(b *catalog.Builder, fsys fs.FS, glob string, unmarshal UnmarshalFunc) error

LoadMessageFromFSGlob 从文件系统中加载多个文件并写入 b

func Width added in v0.14.0

func Width(s string) int

Width 计算字符串的宽度

采用 defaultWidthOptions 作为配置, 如果有特殊要求,可以使用 WidthOptions.Width 自定义各类字符的宽度。

Types

type Key added in v0.12.8

type Key = message.Reference

type LocaleStringer added in v0.5.0

type LocaleStringer interface {
	// LocaleString 返回当前对象的本地化字符串
	LocaleString(*Printer) string
}

LocaleStringer 本地化字符串的接口中

func Phrase added in v0.4.0

func Phrase(key Key, val ...interface{}) LocaleStringer

Phrase 返回一段未翻译的语言片段

key 和 val 参数与 [message.Printer.Sprintf] 的参数相同。 如果 val 也实现了 LocaleStringer 接口,则会先调用 val 的 LocaleString 方法。

type Printer added in v0.12.8

type Printer = message.Printer

type UnmarshalFunc added in v0.9.0

type UnmarshalFunc = message.UnmarshalFunc

UnmarshalFunc 解析文本内容至对象的方法

type WidthOptions added in v0.14.0

type WidthOptions map[width.Kind]int

WidthOptions 用于指定各类字符的宽度

NOTE: 对于 EastAsianAmbiguous 不同的字体可能有不同的设置。

func (WidthOptions) Width added in v0.14.0

func (wo WidthOptions) Width(s string) (w int)

Width 计算字符串的宽度

Directories

Path Synopsis
internal
message
Package message 从文件中加载本地化信息
Package message 从文件中加载本地化信息
syslocale
Package syslocale 获取所在系统的本地化语言信息
Package syslocale 获取所在系统的本地化语言信息

Jump to

Keyboard shortcuts

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