Skip to content

feat: localize DMS operation record messages for login/logout/OAuth2 - #661

Open
LordofAvernus wants to merge 1 commit into
mainfrom
dev-dms-i18n-en-completion
Open

feat: localize DMS operation record messages for login/logout/OAuth2#661
LordofAvernus wants to merge 1 commit into
mainfrom
dev-dms-i18n-en-completion

Conversation

@LordofAvernus

@LordofAvernus LordofAvernus commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

User description

关联的 issue

actiontech/sqle#3342

描述你的变更

  • 登录/登出/OAuth2 操作记录内容改为 Bundle.LocalizeAllWithArgs,写入双语 I18nStr
  • 同步 message 与 active en/zh toml

确认项(pr提交后操作)

Tip

请在指定复审人之前,确认并完成以下事项,完成后✅


  • 我已完成自测
  • 我已记录完整日志方便进行诊断
  • 我已在关联的issue里补充了实现方案
  • 我已在关联的issue里补充了测试影响面
  • 我已确认了变更的兼容性,如果不兼容则在issue里标记 not_compatible
  • 我已确认了是否要更新文档,如果要更新则在issue里标记 need_update_doc


Description

  • 使用 locale.Bundle.LocalizeAllWithArgs 替换旧的 i18nPkg 方法

  • 为登录、登出和 OAuth2 操作记录更新国际化消息

  • 更新中文与英文本地化配置文件,保证消息同步

  • 调整部分系统提示及权限描述文本


Diagram Walkthrough

flowchart LR
  A["dms_controller.go: 更新操作记录调用"] --> B["message_zh.go: 新增本地化消息常量"]
  A --> C["active.en.toml: 同步更新英文消息"]
  C --> D["active.zh.toml: 更新中文消息和权限描述"]
Loading

File Walkthrough

Relevant files
Enhancement
dms_controller.go
更新操作记录消息国际化调用方式                                                                                   

internal/apiserver/service/dms_controller.go

  • 调整用户登录、登出及 OAuth2 操作记录的国际化调用
  • 替换 i18nPkg.ConvertStr2I18nAsDefaultLang 为
    locale.Bundle.LocalizeAllWithArgs
+4/-5     
message_zh.go
增加本地化消息模板定义常量                                                                                       

internal/pkg/locale/message_zh.go

  • 添加用于登录、登出和 OAuth2 操作的本地化消息常量
  • 定义新常量以支持多语言消息输出
+4/-0     
active.en.toml
更新英文本地化消息配置                                                                                           

internal/pkg/locale/active.en.toml

  • 同步更新英文本地化消息字符串
  • 调整重复条目及顺序,确保消息一致性
+15/-11 
active.zh.toml
更新中文本地化消息与权限提示                                                                                     

internal/pkg/locale/active.zh.toml

  • 增加新的操作权限描述及国际化消息
  • 更新中文本地化消息,完善权限与错误提示文本
+37/-12 

Use goi18n Bundle LocalizeAllWithArgs for user-visible operation content so English profiles get bilingual I18nStr. refs #3342
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

PR Reviewer Guide 🔍

⏱️ Estimated effort to review: 3 🔵🔵🔵⚪⚪
🧪 PR contains tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

命名错误

在新增的权限描述相关本地化标识符中,部分变量命名存在拼写问题(例如 "DescOpPermissionManageRoleMange" 以及 "DescOpPermissionManageSQLMangeWhiteList" 和 "DescOpPermissionMangeAuditSQLWhiteList"),建议检查并统一命名,以避免未来使用时可能引起混淆。

DescOpPermissionDesensitization = "配置脱敏任务;拥有该权限的用户可以管理脱敏模板、脱敏发现任务和规则配置"
DescOpPermissionExecuteWorkflow = "上线工单;拥有该权限的用户可以上线工单"
DescOpPermissionExportApprovalReject = "审批/驳回数据导出工单;拥有该权限的用户可以执行审批导出数据工单或者驳回导出数据工单"
DescOpPermissionExportCreate = "创建数据导出任务;拥有该权限的用户可以创建数据导出任务或者工单"
DescOpPermissionGlobalManagement = "具备系统最高权限,可进行系统配置、用户管理等操作"
DescOpPermissionGlobalView = "负责系统操作审计、数据合规检查等工作"
DescOpPermissionManageApprovalTemplate = "管理审批流程模版;拥有该权限的用户可以管理审批流程模版"
DescOpPermissionManageAuditRuleTemplate = "管理审核规则模版;拥有该权限的用户可以管理审核规则模版"
DescOpPermissionManageMember = "管理成员与权限;拥有该权限的用户可以管理项目成员与权限"
DescOpPermissionManageProjectDataSource = "管理项目数据源;拥有该权限的用户可以管理项目下数据源"
DescOpPermissionManageRoleMange = "角色管理权限;拥有该权限的用户可以管理角色"
DescOpPermissionManageSQLMangeWhiteList = "管控SQL例外;拥有该权限的用户可以管理管控SQL例外"
DescOpPermissionMangeAuditSQLWhiteList = "审核SQL例外;拥有该权限的用户可以管理审核SQL例外"
DescOpPermissionMaskingAudit = "脱敏审核;拥有该权限的用户可以查看和处理脱敏审批请求"
DescOpPermissionOrdinaryUser = "基础功能操作权限,可进行日常业务操作"
DescOpPermissionProjectAdmin = "项目管理;拥有该权限的用户可以管理项目下的所有资源"
DescOpPermissionPushRule = "管理推送规则;拥有该权限的用户可以管理推送规则"
DescOpPermissionSQLQuery = "SQL工作台查询;拥有该权限的用户可以执行SQL工作台查询"

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
添加 nil 检查

在调用 locale.Bundle.LocalizeAllWithArgs 之前,请务必确认 locale.Bundle 已正确初始化,防止出现 nil
指针异常导致程序 panic。建议通过增加一个 inline 检查或在服务初始化时确保该实例非 nil。

internal/apiserver/service/dms_controller.go [746]

-OperationI18nContent: locale.Bundle.LocalizeAllWithArgs(locale.OpRecordUserLoginWithName, user.Name),
+OperationI18nContent: func() string {
+    if locale.Bundle != nil {
+        return locale.Bundle.LocalizeAllWithArgs(locale.OpRecordUserLoginWithName, user.Name)
+    }
+    return fmt.Sprintf("用户 %s 登入系统", user.Name)
+}(),
Suggestion importance[1-10]: 6

__

Why: 该建议在调用 locale.Bundle.LocalizeAllWithArgs 前加入 nil 检查,以防止 nil 指针异常导致 panic,虽然防御性编程有价值,但风险可能较低,故分值为6。

Low
General
去除重复定义

请确认本地化配置中没有重复定义 NotifyDataWorkflowBodyExportFailReason 键,以免造成加载覆盖或错误。建议只保留一个唯一的定义。

internal/pkg/locale/active.en.toml [136]

+NotifyDataWorkflowBodyExportFailReason = "❌ Failure Reason: %v"
 
-
Suggestion importance[1-10]: 5

__

Why: 此建议提醒确认 NotifyDataWorkflowBodyExportFailReason 是否重复定义,但 improved_code 与原代码相同,仅作为检查提示,影响较小,故分值为5。

Low
清理重复本地化键

请检查当前 TOML 文件中是否存在重复的 NotifyDataWorkflowBodyExportFailReason
键,重复定义可能导致本地化加载失败。建议保留唯一的键定义,移除冗余代码。

internal/pkg/locale/active.zh.toml [155]

+NotifyDataWorkflowBodyExportFailReason = "❌ 失败原因: %v"
 
-
Suggestion importance[1-10]: 5

__

Why: 同样,该建议用于检查是否存在重复定义的本地化键,且改善幅度不显著,由于 existing_codeimproved_code 未做修改,故分值为5。

Low

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant