Add English localization (device-language based)

Add English as an overlay localization following the device language,
keeping Simplified Chinese as the base/development language. Untranslated
strings fall back to Chinese automatically.

- project.yml: set developmentLanguage zh-Hans and knownRegions (zh-Hans/en/Base)
- Resources/en.lproj/{Localizable,InfoPlist}.strings: ~230 English strings
- Resources/zh-Hans.lproj/InfoPlist.strings: Chinese permission prompts
- Restructure ternary Text/Label and String-typed UI messages so they
  localize (String(localized:), LocalizedStringKey helper params); replace
  a .contains("通过") success check with a dedicated flag
- Localize user-facing model/coordinator/error messages across App and Shared

Internal RuntimeLogger logs and diagnostic/report bodies remain in Chinese.
This commit is contained in:
Syntax-Error-1337
2026-09-10 01:05:45 +08:00
parent eadeca636d
commit 908ac8f734
17 changed files with 493 additions and 121 deletions
+4 -4
View File
@@ -36,7 +36,7 @@ final class SetupCoordinator: ObservableObject {
message = ""
return true
} catch {
message = "本地代理初始化失败:\(error.localizedDescription)"
message = String(localized: "本地代理初始化失败:\(error.localizedDescription)")
RuntimeLogger.error("APP", "Startup", "本地服务初始化失败", error: error)
return false
}
@@ -48,19 +48,19 @@ final class SetupCoordinator: ObservableObject {
case .success:
trustState = .trusted
needsSetup = false
message = "✓ 定位环境正常"
message = String(localized: "✓ 定位环境正常")
case .certNotTrusted:
trustState = .unavailable
setupStep = .cert
needsSetup = true
message = "CA 证书未安装或未信任"
message = String(localized: "CA 证书未安装或未信任")
case .verificationInProgress, .verificationSuperseded:
break
default:
trustState = .unavailable
setupStep = .proxy
needsSetup = true
message = "Wi-Fi 代理未正确设置,请检查 127.0.0.1:8888"
message = String(localized: "Wi-Fi 代理未正确设置,请检查 127.0.0.1:8888")
}
}