fix(i18n): internationalize test script related error messages

Fixed 5 hardcoded Chinese error messages to support bilingual display:

Backend changes (services):
- provider.rs: Fixed 4 error messages:
  * Data format error when deserializing array (line 731)
  * Data format error when deserializing single object (line 738)
  * Regex initialization failure (line 1163)
  * App type not found (line 1191)
- speedtest.rs: Fixed 1 error message:
  * HTTP client creation failure (line 104)

All errors now use AppError::localized to provide both Chinese and English messages.

Impact:
- Users will now see properly localized error messages when testing usage scripts
- Error messages respect the application language setting
- Better user experience for English-speaking users
This commit is contained in:
Jason
2025-11-05 08:52:36 +08:00
parent 720c4d9774
commit f92dd4cc5a
2 changed files with 25 additions and 5 deletions

View File

@@ -728,10 +728,18 @@ impl ProviderService {
Ok(data) => {
let usage_list: Vec<UsageData> = if data.is_array() {
serde_json::from_value(data)
.map_err(|e| AppError::Message(format!("数据格式错误: {}", e)))?
.map_err(|e| AppError::localized(
"usage_script.data_format_error",
format!("数据格式错误: {}", e),
format!("Data format error: {}", e)
))?
} else {
let single: UsageData = serde_json::from_value(data)
.map_err(|e| AppError::Message(format!("数据格式错误: {}", e)))?;
.map_err(|e| AppError::localized(
"usage_script.data_format_error",
format!("数据格式错误: {}", e),
format!("Data format error: {}", e)
))?;
vec![single]
};
@@ -1152,7 +1160,11 @@ impl ProviderService {
let base_url = if config_toml.contains("base_url") {
let re = Regex::new(r#"base_url\s*=\s*["']([^"']+)["']"#)
.map_err(|e| AppError::Message(format!("正则初始化失败: {}", e)))?;
.map_err(|e| AppError::localized(
"provider.regex_init_failed",
format!("正则初始化失败: {}", e),
format!("Failed to initialize regex: {}", e)
))?;
re.captures(config_toml)
.and_then(|caps| caps.get(1))
.map(|m| m.as_str().to_string())
@@ -1177,7 +1189,11 @@ impl ProviderService {
}
fn app_not_found(app_type: &AppType) -> AppError {
AppError::Message(format!("应用类型不存在: {:?}", app_type))
AppError::localized(
"provider.app_not_found",
format!("应用类型不存在: {:?}", app_type),
format!("App type not found: {:?}", app_type)
)
}
fn now_millis() -> i64 {

View File

@@ -101,7 +101,11 @@ impl SpeedtestService {
.redirect(reqwest::redirect::Policy::limited(5))
.user_agent("cc-switch-speedtest/1.0")
.build()
.map_err(|e| AppError::Message(format!("创建 HTTP 客户端失败: {e}")))
.map_err(|e| AppError::localized(
"speedtest.client_create_failed",
format!("创建 HTTP 客户端失败: {e}"),
format!("Failed to create HTTP client: {e}")
))
}
fn sanitize_timeout(timeout_secs: Option<u64>) -> u64 {