gpt4 book ai didi

http - Golang 网络应用程序本地化

转载 作者:数据小太阳 更新时间:2023-10-29 03:37:11 25 4
gpt4 key购买 nike

我有一个用 golang 编写的网络应用程序,我计划以多种语言提供它,我查看了多个可用的 l18n 包,但有些事情我不清楚。

哪些软件包最适合确定用户区域设置并相应地加载站点?比如浏览器偏好或位置?

最佳答案

您可以使用 https://github.com/nicksnyder/go-i18n/

然后在您的项目中,您必须创建一个名为 i18n/的文件夹并使用如下函数:

import (
"fmt"
"io/ioutil"

"github.com/nicksnyder/go-i18n/i18n"
)

func loadI18nFiles() {
files, _ := ioutil.ReadDir("i18n")
exists := false

for _, file := range files {
if err := i18n.LoadTranslationFile(fmt.Sprintf("i18n/%s", file.Name())); err != nil {
log.Errorf("i18n: error loading file %s. err: %s", file.Name(), err)
} else {
log.Infof("i18n: lang file %s loaded", file.Name())
}

# Check if you have a default language
if file.Name() == fmt.Sprintf("%s.json", "en-US") {
exists = true
}
}

if !exists {
panic(fmt.Sprintf("Hey! You can't use a default language (%s) that doesn't exists on i18n folder", props.DefaultLang))
}
}

然后使用,导入包并调用函数:

T, _ := i18n.Tfunc("es-AR", "en-US")

fmt.Printf(T("key"))

i18n 文件夹中的每个文件都是一个 .json

例子:

zh-CN.json

[
{
"id": "key",
"translation": "Hello World"
}
]

es-AR.json

[
{
"id": "key",
"translation": "Hola Mundo"
}
]

关于http - Golang 网络应用程序本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45887583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com