[agent/codex:gpt-5.4-mini] Read ~/spec/code/core/go/i18n/RFC.md fully. Find ONE feature... #97
2 changed files with 39 additions and 0 deletions
|
|
@ -104,6 +104,35 @@ func TestRegisterLocales_Good_WithInitializedDefaultService(t *testing.T) {
|
|||
assert.Equal(t, "loaded immediately", got)
|
||||
}
|
||||
|
||||
func TestSetDefault_Good_LoadsQueuedRegisteredLocales(t *testing.T) {
|
||||
registeredLocalesMu.Lock()
|
||||
savedLocales := registeredLocales
|
||||
savedLoaded := localesLoaded
|
||||
registeredLocales = nil
|
||||
localesLoaded = false
|
||||
registeredLocalesMu.Unlock()
|
||||
defer func() {
|
||||
registeredLocalesMu.Lock()
|
||||
registeredLocales = savedLocales
|
||||
localesLoaded = savedLoaded
|
||||
registeredLocalesMu.Unlock()
|
||||
}()
|
||||
|
||||
fs := fstest.MapFS{
|
||||
"locales/en.json": &fstest.MapFile{
|
||||
Data: []byte(`{"queued.registration": "loaded via setdefault"}`),
|
||||
},
|
||||
}
|
||||
RegisterLocales(fs, "locales")
|
||||
|
||||
svc, err := New()
|
||||
require.NoError(t, err)
|
||||
SetDefault(svc)
|
||||
|
||||
got := svc.T("queued.registration")
|
||||
assert.Equal(t, "loaded via setdefault", got)
|
||||
}
|
||||
|
||||
func TestInit_LoadsRegisteredLocales(t *testing.T) {
|
||||
// Save and restore global service state.
|
||||
registeredLocalesMu.Lock()
|
||||
|
|
|
|||
10
service.go
10
service.go
|
|
@ -184,6 +184,16 @@ func Default() *Service {
|
|||
// Passing nil clears the default service.
|
||||
func SetDefault(s *Service) {
|
||||
defaultService.Store(s)
|
||||
if s == nil {
|
||||
return
|
||||
}
|
||||
registeredLocalesMu.Lock()
|
||||
loaded := localesLoaded
|
||||
hasRegistrations := len(registeredLocales) > 0
|
||||
registeredLocalesMu.Unlock()
|
||||
if !loaded && hasRegistrations {
|
||||
loadRegisteredLocales(s)
|
||||
}
|
||||
}
|
||||
|
||||
// AddLoader loads translations from a Loader into the default service.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue