ADMP-LS / servers /Retrieve /utils /i18n_messages.py
jackkuo's picture
reinit repo
82bf89e
"""
国际化消息配置文件
包含所有错误消息、成功消息、状态消息和UI标签消息的中英文映射
"""
from utils.i18n_types import Language
# 错误消息国际化
ERROR_MESSAGES = {
Language.CHINESE: {
"invalid_request": "无效的请求参数",
"search_failed": "搜索失败",
"no_results": "未找到相关结果",
"service_unavailable": "服务暂时不可用",
"internal_error": "内部服务器错误",
"invalid_language": "不支持的语言设置",
"query_too_long": "查询内容过长",
"rate_limit_exceeded": "请求频率过高,请稍后重试",
"authentication_failed": "认证失败",
"permission_denied": "权限不足",
"resource_not_found": "资源未找到",
"network_error": "网络连接错误",
"timeout_error": "请求超时",
"invalid_format": "数据格式错误",
"missing_required_field": "缺少必需字段",
"invalid_user_id": "无效的用户ID",
"search_service_error": "搜索服务错误",
"llm_service_error": "语言模型服务错误",
"embedding_service_error": "向量化服务错误",
"database_error": "数据库错误",
},
Language.ENGLISH: {
"invalid_request": "Invalid request parameters",
"search_failed": "Search failed",
"no_results": "No relevant results found",
"service_unavailable": "Service temporarily unavailable",
"internal_error": "Internal server error",
"invalid_language": "Unsupported language setting",
"query_too_long": "Query content too long",
"rate_limit_exceeded": "Request rate exceeded, please try again later",
"authentication_failed": "Authentication failed",
"permission_denied": "Permission denied",
"resource_not_found": "Resource not found",
"network_error": "Network connection error",
"timeout_error": "Request timeout",
"invalid_format": "Invalid data format",
"missing_required_field": "Missing required field",
"invalid_user_id": "Invalid user ID",
"search_service_error": "Search service error",
"llm_service_error": "Language model service error",
"embedding_service_error": "Embedding service error",
"database_error": "Database error",
},
}
# 成功消息国际化
SUCCESS_MESSAGES = {
Language.CHINESE: {
"search_success": "搜索成功",
"chat_success": "聊天服务正常",
"health_check_ok": "服务运行正常",
"results_found": "找到相关结果",
"processing_complete": "处理完成",
},
Language.ENGLISH: {
"search_success": "Search successful",
"chat_success": "Chat service normal",
"health_check_ok": "Service running normally",
"results_found": "Relevant results found",
"processing_complete": "Processing complete",
},
}
# 状态消息国际化
STATUS_MESSAGES = {
Language.CHINESE: {
"processing": "正在处理",
"searching": "正在搜索",
"generating": "正在生成回答",
"completed": "已完成",
"failed": "处理失败",
},
Language.ENGLISH: {
"processing": "Processing",
"searching": "Searching",
"generating": "Generating answer",
"completed": "Completed",
"failed": "Processing failed",
},
}
# UI标签消息国际化
LABEL_MESSAGES = {
Language.CHINESE: {
"web_search_start": "正在调用 Browser 进行内容检索,所需时间较长,请等待...",
"web_search": "正在调用 Browser 进行内容检索",
"personal_search_start": "正在调用 个人知识库 进行内容检索,所需时间较长,请等待...",
"personal_search": "正在调用 个人知识库 进行内容检索",
"pubmed_search_start": "正在调用 PubMed 进行内容检索,所需时间较长,请等待...",
"pubmed_search": "正在调用 PubMed 进行内容检索",
"generating_answer": "正在生成回答",
"processing": "正在处理",
"personal_search_description": "片段 {index}",
},
Language.ENGLISH: {
"web_search_start": "Retrieving content from Browser, this may take a while, please wait...",
"web_search": "Retrieving content from Browser",
"personal_search_start": "Retrieving content from Personal Knowledge Base, this may take a while, please wait...",
"personal_search": "Retrieving content from Personal Knowledge Base",
"pubmed_search_start": "Retrieving content from PubMed, this may take a while, please wait...",
"pubmed_search": "Retrieving content from PubMed",
"generating_answer": "Generating answer",
"processing": "Processing",
"personal_search_description": "Chunk {index} from this reference.",
},
}
# 系统消息国际化
SYSTEM_MESSAGES = {
Language.CHINESE: {
"welcome": "欢迎使用生物医学RAG服务",
"service_start": "服务已启动",
"service_stop": "服务已停止",
"connection_established": "连接已建立",
"connection_lost": "连接已断开",
"maintenance_mode": "系统维护中",
"updating": "系统更新中",
"backup_restore": "备份恢复中",
},
Language.ENGLISH: {
"welcome": "Welcome to Biomedical RAG Service",
"service_start": "Service started",
"service_stop": "Service stopped",
"connection_established": "Connection established",
"connection_lost": "Connection lost",
"maintenance_mode": "System under maintenance",
"updating": "System updating",
"backup_restore": "Backup restoring",
},
}
# 业务消息国际化
BUSINESS_MESSAGES = {
Language.CHINESE: {
"search_started": "开始搜索...",
"search_completed": "搜索完成",
"no_search_results": "未找到搜索结果",
"processing_request": "正在处理请求...",
"request_completed": "请求处理完成",
"upload_success": "文件上传成功",
"upload_failed": "文件上传失败",
"download_started": "开始下载...",
"download_completed": "下载完成",
"operation_success": "操作成功",
"operation_failed": "操作失败",
"data_saved": "数据已保存",
"data_deleted": "数据已删除",
"data_updated": "数据已更新",
"connection_timeout": "连接超时",
"server_busy": "服务器繁忙",
"maintenance_notice": "系统维护通知",
},
Language.ENGLISH: {
"search_started": "Search started...",
"search_completed": "Search completed",
"no_search_results": "No search results found",
"processing_request": "Processing request...",
"request_completed": "Request completed",
"upload_success": "File uploaded successfully",
"upload_failed": "File upload failed",
"download_started": "Download started...",
"download_completed": "Download completed",
"operation_success": "Operation successful",
"operation_failed": "Operation failed",
"data_saved": "Data saved",
"data_deleted": "Data deleted",
"data_updated": "Data updated",
"connection_timeout": "Connection timeout",
"server_busy": "Server busy",
"maintenance_notice": "System maintenance notice",
},
}
# 所有消息类型的映射
ALL_MESSAGE_TYPES = {
"error": ERROR_MESSAGES,
"success": SUCCESS_MESSAGES,
"status": STATUS_MESSAGES,
"label": LABEL_MESSAGES,
"system": SYSTEM_MESSAGES,
"business": BUSINESS_MESSAGES,
}
def get_message(message_type: str, key: str, language: Language) -> str:
"""
获取指定类型的国际化消息
Args:
message_type: 消息类型 (error, success, status, label, system, business)
key: 消息键
language: 语言
Returns:
国际化消息字符串
"""
if message_type not in ALL_MESSAGE_TYPES:
return f"Unknown message type: {message_type}"
messages = ALL_MESSAGE_TYPES[message_type]
default_language = Language.CHINESE
return messages.get(language, messages[default_language]).get(
key,
messages[default_language].get(key, f"Unknown {message_type} message: {key}"),
)
def get_all_messages_for_language(language: Language) -> dict:
"""
获取指定语言的所有消息
Args:
language: 语言
Returns:
包含所有消息类型的字典
"""
result = {}
for message_type, messages in ALL_MESSAGE_TYPES.items():
result[message_type] = messages.get(language, messages[Language.CHINESE])
return result
def get_available_message_types() -> list:
"""
获取所有可用的消息类型
Returns:
消息类型列表
"""
return list(ALL_MESSAGE_TYPES.keys())
def get_available_keys_for_type(message_type: str) -> list:
"""
获取指定消息类型的所有可用键
Args:
message_type: 消息类型
Returns:
键列表
"""
if message_type not in ALL_MESSAGE_TYPES:
return []
messages = ALL_MESSAGE_TYPES[message_type]
# 使用中文作为默认语言来获取所有键
return list(messages[Language.CHINESE].keys())