feat(i18n): katalog id/en — semua string UI via T()/Tf(), fallback en, TIA_LANG sementara + e2e English
CI / test (push) Successful in 24s

This commit is contained in:
oxpoe committed 2026-10-15 09:47:42 +07:00
1 parent 76cdb0b5bb
commit 19ae0d1c29
13 files changed
+540 -76

No files matched your search

+9 -9
View File
@@ -13,13 +13,11 @@ import (
"gitea.oxpoe.qzz.io/oxpoe/tia-love/internal/audio"
"gitea.oxpoe.qzz.io/oxpoe/tia-love/internal/docker"
"gitea.oxpoe.qzz.io/oxpoe/tia-love/internal/i18n"
)
// Doctor memeriksa kesehatan sistem dan menulis laporan ke w.
// Kode keluar: 0 = sehat (warning boleh), 1 = ada kegagalan fatal.
//
// shortcut: teks masih hardcode Bahasa Indonesia — pindah ke katalog i18n
// saat F-023 masuk (Phase 1).
func Doctor(w io.Writer) int {
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
@@ -29,18 +27,20 @@ func Doctor(w io.Writer) int {
// Docker — dependency inti.
switch cl, err := docker.New(); {
case err != nil:
fmt.Fprintf(w, "docker : GAGAL %v\n", err)
fmt.Fprintf(w, "docker : %s %v\n", i18n.T("error.fail"), err)
fail++
default:
defer cl.Close()
if err := cl.Ping(ctx); err != nil {
fmt.Fprintf(w, "docker : GAGAL daemon tidak merespons: %v\n", err)
fmt.Fprintf(w, "docker : %s %s\n", i18n.T("error.fail"),
i18n.Tf("doctor.dockerDaemonUnreachable", err))
fail++
} else if info, err := cl.Info(ctx); err != nil {
fmt.Fprintf(w, "docker : PERINGATAN %v\n", err)
fmt.Fprintf(w, "docker : %s %v\n", i18n.T("error.warn"), err)
} else {
fmt.Fprintf(w, "docker : OK engine %s (API %s) · %d/%d kontainer berjalan · %d image\n",
info.ServerVersion, info.APIVersion, info.Running, info.Containers, info.Images)
fmt.Fprintf(w, "docker : %s %s\n", i18n.T("error.ok"),
i18n.Tf("doctor.dockerOk", info.ServerVersion, info.APIVersion,
info.Running, info.Containers, info.Images))
}
}
@@ -56,7 +56,7 @@ func Doctor(w io.Writer) int {
if st, err := os.Stat(stacks); err == nil && st.IsDir() {
fmt.Fprintf(w, "stacks : %s\n", stacks)
} else {
fmt.Fprintf(w, "stacks : %s (belum ada — dibuat saat onboarding)\n", stacks)
fmt.Fprintf(w, "stacks : %s\n", i18n.Tf("doctor.stacksMissing", stacks))
}
if fail > 0 {