阿猫的博客

阿猫的博客

Golang i18n 之格式化千分位

Go
543
2023-07-23

背景

在做 i18n 和 l10n 的时候,不同国家的千分位表示是不同的,例如法国的千分位是空格。

实现

使用 text 包自带的方法可以解决。

package main

import (
	"golang.org/x/text/language"
	"golang.org/x/text/message"
)

func main() {
	number := 12345678.9012345678

	pEn := message.NewPrinter(language.English)
	pEn.Printf("en: %.2f\n", number)

	pAr := message.NewPrinter(language.ModernStandardArabic)
	pAr.Printf("ar: %.2f\n", number)

	pFr := message.NewPrinter(language.French)
	pFr.Printf("fr: %.2f\n", number)
}

Ref