国际化
大约 1 分钟
项目支持国际化多语言,主要分为前端国际化和后端国际化
前端国际化
前端国际化文件位于
src/locales/*
中,前端静态文本翻译由前端进行国际化
在 vue 或 ts 文件中调用
const { t } = useI18n();
// 使用方法
const name = t("sys.dictionary.dictionaryList");
后端国际化
国际化文件位于 i18n 文件夹,后端国际化用于翻译所有来自后端的动态数据,core 中的目录结构为
├── locale
│ ├── en.json
│ └── zh.json
├── translator.go
├── translator_test.go
└── var.go
只需在 en.json 和 zh.json 中添加翻译即可, 也可以自己添加其他语言,只需要添加对应的 json 文件如 ja.json
初始化方法
v1.7.7 版本之后, goctls 自动生成以下配置
在 config 文件中添加 i18n 配置
config.go
package config
import (
"github.com/suyuan32/simple-admin-common/config"
"github.com/suyuan32/simple-admin-common/i18n"
"github.com/suyuan32/simple-admin-common/plugins/casbin"
"github.com/zeromicro/go-zero/rest"
"github.com/zeromicro/go-zero/zrpc"
)
type Config struct {
rest.RestConf
Auth rest.AuthConf
DatabaseConf config.DatabaseConf
CasbinDatabaseConf config.DatabaseConf
RedisConf config.RedisConf
CasbinConf casbin.CasbinConf
CoreRpc zrpc.RpcClientConf
CROSConf config.CROSConf
I18nConf i18n.Conf // 添加这个配置
}
xxx.yaml
I18nConf:
Dir: # 如果为空则读取 embeded 内的文件,如果不为空则读取指定路径文件
trans := i18n.NewTranslator(c.I18nConf, i18n2.LocaleFS)
使用方法
l.svcCtx.Trans.Trans(l.ctx, "common.success")