feat: app所有竞品报告和数据报告接口title都增加翻译

This commit is contained in:
cjy 2026-04-10 11:03:54 +08:00
parent 013b6ecd8e
commit df005b3a7b
3 changed files with 34 additions and 36 deletions

View File

@ -457,6 +457,9 @@ func GetWorkAnalysis(ctx *gin.Context) {
service.Error(ctx, err)
return
}
if locale := utils.ParseLocaleHeader(ctx.GetHeader("Accept-Language")); locale != "" {
resp.Title = utils.ConvertTitleByLocale(resp.Title, locale)
}
service.Success(ctx, resp)
return
}
@ -546,26 +549,11 @@ func ListWorkAnalysisForApp(ctx *gin.Context) {
service.Error(ctx, err)
return
}
// Translate titles based on Accept-Language
locale := ctx.GetHeader("Accept-Language")
// zh-CN 不需要翻译,直接跳过
if locale != "zh-CN" && locale != "zh" && locale != "ZhCN" {
switch locale {
case "zh-TW", "ZhTW":
locale = "zh-TW"
case "en", "EN":
locale = "EN"
case "de-DE", "ja-JP":
// 直接使用
default:
locale = ""
}
if locale != "" {
if locale := utils.ParseLocaleHeader(ctx.GetHeader("Accept-Language")); locale != "" {
for _, item := range resp.Data {
item.Title = utils.ConvertTitleByLocale(item.Title, locale)
}
}
}
// RefreshWorkAnalysisApproval(ctx, resp.Data)
service.Success(ctx, resp)
return
@ -1125,6 +1113,11 @@ func TobeConfirmedList(ctx *gin.Context) {
service.Error(ctx, err)
return
}
if locale := utils.ParseLocaleHeader(ctx.GetHeader("Accept-Language")); locale != "" {
for _, item := range resp.Data {
item.Title = utils.ConvertTitleByLocale(item.Title, locale)
}
}
service.Success(ctx, resp)
return
}

View File

@ -784,6 +784,9 @@ func GetCompetitiveReportForApp(ctx *gin.Context) {
service.Error(ctx, err)
return
}
if locale := utils.ParseLocaleHeader(ctx.GetHeader("Accept-Language")); locale != "" {
resp.Title = utils.ConvertTitleByLocale(resp.Title, locale)
}
service.Success(ctx, resp)
return
}
@ -884,26 +887,11 @@ func ListReportByArtistUuidForApp(ctx *gin.Context) {
service.Error(ctx, err)
return
}
// Translate titles based on Accept-Language
locale := ctx.GetHeader("Accept-Language")
// zh-CN 不需要翻译,直接跳过
if locale != "zh-CN" && locale != "zh" && locale != "ZhCN" {
switch locale {
case "zh-TW", "ZhTW":
locale = "zh-TW"
case "en", "EN":
locale = "EN"
case "de-DE", "ja-JP":
// 直接使用
default:
locale = ""
}
if locale != "" {
if locale := utils.ParseLocaleHeader(ctx.GetHeader("Accept-Language")); locale != "" {
for _, item := range resp.Data {
item.Title = utils.ConvertTitleByLocale(item.Title, locale)
}
}
}
// RefreshCompetitiveReportApproval(ctx, resp.Data)
service.Success(ctx, resp)
return

View File

@ -175,3 +175,20 @@ func ConvertTitleByLocale(title, locale string) string {
return ConvertReportName(prefix, personName, reportType, locale)
}
// ParseLocaleHeader 解析 Accept-Language 请求头,返回规范化的 locale 字符串。
// zh-CN / zh / ZhCN 无需翻译,返回 "";其余值规范化后返回,不支持的语言同样返回 ""。
func ParseLocaleHeader(header string) string {
if header == "zh-CN" || header == "zh" || header == "ZhCN" {
return ""
}
switch header {
case "zh-TW", "ZhTW":
return "zh-TW"
case "en", "EN":
return "EN"
case "de-DE", "ja-JP":
return header
default:
return ""
}
}