Localize user-facing UI, agent output, and backend messages to Simplified Chinese
ci / go (push) Waiting to run
ci / go-db (agent) (push) Waiting to run
ci / go-db (config) (push) Waiting to run
ci / go-db (db) (push) Waiting to run
ci / go-db (evidence) (push) Waiting to run
ci / go-db (llmrec) (push) Waiting to run
ci / go-db (server) (push) Waiting to run
detections / detections (push) Waiting to run
docs / links (push) Waiting to run
web / web (push) Waiting to run

This commit is contained in:
dela
2026-10-09 14:08:31 +08:00
parent 8af63417c8
commit 97668dab7e
148 changed files with 1671 additions and 1672 deletions
+8 -8
View File
@@ -35,7 +35,7 @@ func TestSyncScopeSentryConstantsLocalized(t *testing.T) {
{"errSSParseServicePrefix", errSSParseServicePrefix},
}
for _, c := range cases {
assertKoreanError(t, c.label, c.msg)
assertChineseError(t, c.label, c.msg)
}
// dimension/targets validation keep their JSON field names and enum values.
@@ -49,37 +49,37 @@ func TestSyncScopeSentryConstantsLocalized(t *testing.T) {
// caught by running the real format operation (not just inspecting the constant).
func TestSyncScopeSentryFormattedLocalized(t *testing.T) {
ds := fmt.Errorf(errSSDataSourceMissingFmt, scopeSentryMCPName).Error()
assertKoreanError(t, "scopeSentryClient/missing", ds)
assertChineseError(t, "scopeSentryClient/missing", ds)
if !strings.Contains(ds, "ScopeSentry") {
t.Fatalf("데이터 소스 이름이 사라졌습니다: %q", ds)
}
noURL := fmt.Errorf(errSSDataSourceNoURLFmt, scopeSentryMCPName).Error()
assertKoreanError(t, "scopeSentryClient/noURL", noURL)
assertChineseError(t, "scopeSentryClient/noURL", noURL)
if !strings.Contains(noURL, "URL") {
t.Fatalf("URL 토큰이 사라졌습니다: %q", noURL)
}
meta := fmt.Sprintf(warnSSProjectMetaFmt, "proj-1", errors.New("boom"))
assertKoreanError(t, "warnSSProjectMetaFmt", meta)
assertChineseError(t, "warnSSProjectMetaFmt", meta)
if !strings.Contains(meta, "proj-1") || !strings.Contains(meta, "boom") {
t.Fatalf("프로젝트/원본 오류가 치환되지 않았습니다: %q", meta)
}
company := fmt.Sprintf(warnSSCompanyCreateFmt, "ACME", errors.New("boom"))
assertKoreanError(t, "warnSSCompanyCreateFmt", company)
assertChineseError(t, "warnSSCompanyCreateFmt", company)
if !strings.Contains(company, "ACME") {
t.Fatalf("회사 이름이 치환되지 않았습니다: %q", company)
}
fetch := fmt.Sprintf(errSSFetchFmt, "subdomain", "t1", errors.New("boom"))
assertKoreanError(t, "errSSFetchFmt", fetch)
assertChineseError(t, "errSSFetchFmt", fetch)
if !strings.Contains(fetch, "subdomain") || !strings.Contains(fetch, "t1") {
t.Fatalf("자산 유형/대상이 치환되지 않았습니다: %q", fetch)
}
truncated := fmt.Sprintf(warnSSTruncatedFmt, "app", "t1", syncMaxPerType)
assertKoreanError(t, "warnSSTruncatedFmt", truncated)
assertChineseError(t, "warnSSTruncatedFmt", truncated)
if !strings.Contains(truncated, "5000") {
t.Fatalf("상한 건수가 치환되지 않았습니다: %q", truncated)
}
@@ -97,7 +97,7 @@ func TestSyncScopeSentryIngestParseErrorsLocalized(t *testing.T) {
if got == "" {
t.Fatalf("%s: 깨진 JSON 인데 오류 문자열이 비었습니다", kind)
}
assertKoreanError(t, "ssIngest/"+kind, got)
assertChineseError(t, "ssIngest/"+kind, got)
if !strings.Contains(got, kind) {
t.Fatalf("%s: 자산 유형 접두가 사라졌습니다: %q", kind, got)
}