localeutil

package module
v0.26.5 Latest Latest
Warning

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

Go to latest
Published: Mar 8, 2024 License: MIT Imports: 6 Imported by: 28

README

localeutil Go license codecov PkgGoDev Go version

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

  • DetectUserLanguage 检测当前用户的本地化信息
  • Width 计算字符的宽度
  • message 本地化消息
  • message/serialize 本地化消息的序列化
  • message/extract 本地化消息的提取

安装

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 string, val ...any) error

Error 返回未翻译的错误对象

该对象同时实现了 Stringer 接口。 如果 val 中包含 error 对象,可以用 errors.Is 进行检测。

func Width added in v0.14.0

func Width(s string) int

Width 采用 DefaultWidthOptions 计算字符串的宽度

如果有特殊要求,可以使用 WidthOptions 自定义各类字符的宽度。

Types

type Printer added in v0.12.8

type Printer = message.Printer

type StringPhrase added in v0.18.0

type StringPhrase string

StringPhrase 由字符串组成的 Stringer 实现

Phrase 不同,StringPhrase 是常量,且大部分情况下适用。

func (StringPhrase) LocaleString added in v0.18.0

func (sp StringPhrase) LocaleString(p *Printer) string

type Stringer added in v0.23.0

type Stringer interface {
	// LocaleString 返回当前对象的本地化字符串
	//
	// 如果 p 为 nil,可采用 [fmt.Sprintf] 的返回值。
	LocaleString(p *Printer) string
}

Stringer 本地化字符串

func Phrase added in v0.4.0

func Phrase(key string, val ...any) Stringer

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

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

如果 val 为空,将返回 StringPhrase(key)。

type WidthOptions added in v0.14.0

type WidthOptions map[width.Kind]int

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

拥有以下几个配置项:

对于 width.EastAsianAmbiguous 不同的字体可能有不同的设置。

func DefaultWidthOptions added in v0.18.0

func DefaultWidthOptions() WidthOptions

DefaultWidthOptions 返回默认的配置项的副本

如果要基于默认值作修改,可以采用此方法。

func (WidthOptions) Width added in v0.14.0

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

Width 计算字符串的宽度

Directories

Path Synopsis
Package apple 苹果部分系统下的专有接口
Package apple 苹果部分系统下的专有接口
internal
defaults
Package defaults 提供苹果系统功能
Package defaults 提供苹果系统功能
dll
Package dll windows 平台下一些 dll
Package dll windows 平台下一些 dll
syslocale
Package syslocale 获取所在系统的本地化语言信息
Package syslocale 获取所在系统的本地化语言信息
Package locales 本地化内容
Package locales 本地化内容
Package message 本地化信息的定义
Package message 本地化信息的定义
extract
Package extract 提供从 Go 源码中提取本地化内容的功能
Package extract 提供从 Go 源码中提取本地化内容的功能
serialize
Package serialize 提供对 message 包的序列化操作
Package serialize 提供对 message 包的序列化操作
Package windows 与 windows 系统相关的一些本地化操作函数
Package windows 与 windows 系统相关的一些本地化操作函数

Jump to

Keyboard shortcuts

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