fscan/Common/i18n.go
ZacharyZcR a850e141fc refactor: 封装i18n为独立包,优化国际化架构
- 新建Common/i18n/子包,提供专业的国际化管理
- i18n/manager.go: 线程安全的国际化管理器,支持动态语言切换
- i18n/messages.go: 完整的消息库,200+条国际化文本
- 重构Common/i18n.go为向后兼容层,引用新i18n包
- 支持多语言回退机制和消息格式化功能
- 提供统一的国际化接口,便于维护和扩展

架构优势:
- 模块化设计: 独立的i18n包,职责单一
- 线程安全: 支持并发访问的国际化管理器
- 灵活配置: 支持动态语言切换和消息管理
- 向后兼容: 100%兼容现有GetText()调用
- 易于扩展: 支持新语言和消息的动态添加

使项目国际化架构更加整洁和专业化
2025-08-05 21:13:23 +08:00

71 lines
2.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package Common
import "github.com/shadow1ng/fscan/Common/i18n"
/*
i18n.go - 国际化支持(向后兼容层)
此文件保持向后兼容实际国际化功能已迁移到Common/i18n包
建议新代码使用i18n.GetText()获取国际化文本
*/
// =============================================================================
// 向后兼容的语言常量
// =============================================================================
const (
LangZH = i18n.LangZH // 中文
LangEN = i18n.LangEN // 英文
)
// =============================================================================
// 向后兼容的全局函数
// =============================================================================
// GetText 获取国际化文本 - 引用i18n包的实现
func GetText(key string, args ...interface{}) string {
return i18n.GetText(key, args...)
}
// SetLanguage 设置语言 - 引用i18n包的实现
func SetLanguage(lang string) {
i18n.SetLanguage(lang)
}
// GetLanguage 获取当前语言 - 引用i18n包的实现
func GetLanguage() string {
return i18n.GetLanguage()
}
// AddMessage 添加消息 - 引用i18n包的实现
func AddMessage(key string, translations map[string]string) {
i18n.AddMessage(key, translations)
}
// AddMessages 批量添加消息 - 引用i18n包的实现
func AddMessages(messages map[string]map[string]string) {
i18n.AddMessages(messages)
}
// HasMessage 检查消息是否存在 - 引用i18n包的实现
func HasMessage(key string) bool {
return i18n.HasMessage(key)
}
// GetMessageCount 获取消息总数 - 引用i18n包的实现
func GetMessageCount() int {
return i18n.GetMessageCount()
}
// GetSupportedLanguages 获取支持的语言列表 - 引用i18n包的实现
func GetSupportedLanguages() []string {
return i18n.GetSupportedLanguages()
}
// =============================================================================
// 废弃的变量和函数 (保持向后兼容)
// =============================================================================
// coreMessages 已废弃消息定义已迁移到i18n包
// 保留空映射以防止编译错误
var coreMessages = map[string]map[string]string{}