From dd9d0832afe7d1c1320e5b4ebd79b3dc150a5c46 Mon Sep 17 00:00:00 2001 From: Virgil Date: Fri, 3 Apr 2026 07:43:40 +0000 Subject: [PATCH] refactor(i18n): centralise namespace lookups Co-Authored-By: Virgil --- default_service.go | 8 ++++++++ i18n.go | 8 ++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/default_service.go b/default_service.go index a813317..509e83f 100644 --- a/default_service.go +++ b/default_service.go @@ -15,3 +15,11 @@ func defaultServiceValue[T any](fallback T, fn func(*Service) T) T { } return fallback } + +// defaultServiceNamespaceValue resolves a namespace key against the default +// service when available, or returns the namespace-qualified key otherwise. +func defaultServiceNamespaceValue(namespace, key string, lookup func(*Service, string) string) string { + return defaultServiceValue(namespaceLookupKey(namespace, key), func(svc *Service) string { + return lookup(svc, key) + }) +} diff --git a/i18n.go b/i18n.go index cf01f37..c13b7e6 100644 --- a/i18n.go +++ b/i18n.go @@ -243,8 +243,8 @@ func N(format string, value any, args ...any) string { // Prompt("yes") // "y" // Prompt("confirm") // "Are you sure?" func Prompt(key string) string { - return defaultServiceValue("", func(svc *Service) string { - return svc.Prompt(key) + return defaultServiceNamespaceValue("prompt", key, func(svc *Service, resolved string) string { + return svc.Prompt(resolved) }) } @@ -265,8 +265,8 @@ func CurrentPrompt(key string) string { // // Lang("de") // "German" func Lang(key string) string { - return defaultServiceValue("", func(svc *Service) string { - return svc.Lang(key) + return defaultServiceNamespaceValue("lang", key, func(svc *Service, resolved string) string { + return svc.Lang(resolved) }) }