|
|
""" |
|
|
国际化消息配置文件 |
|
|
包含所有错误消息、成功消息、状态消息和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", |
|
|
}, |
|
|
} |
|
|
|
|
|
|
|
|
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()) |
|
|
|