[agent/codex:gpt-5.4-mini] Read ~/spec/code/core/go/i18n/RFC.md fully. Find ONE feature... #73
2 changed files with 33 additions and 5 deletions
8
hooks.go
8
hooks.go
|
|
@ -35,11 +35,9 @@ func RegisterLocales(fsys fs.FS, dir string) {
|
|||
registeredLocalesMu.Lock()
|
||||
defer registeredLocalesMu.Unlock()
|
||||
registeredLocales = append(registeredLocales, localeRegistration{fsys: fsys, dir: dir})
|
||||
if localesLoaded {
|
||||
if svc := Default(); svc != nil {
|
||||
if err := svc.LoadFS(fsys, dir); err != nil {
|
||||
log.Printf("i18n: RegisterLocales failed to load %q: %v", dir, err)
|
||||
}
|
||||
if svc := defaultService.Load(); svc != nil {
|
||||
if err := svc.LoadFS(fsys, dir); err != nil {
|
||||
log.Printf("i18n: RegisterLocales failed to load %q: %v", dir, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,6 +74,36 @@ func TestRegisterLocales_Good_AfterLocalesLoaded(t *testing.T) {
|
|||
assert.Equal(t, "arrived late", got)
|
||||
}
|
||||
|
||||
func TestRegisterLocales_Good_WithInitializedDefaultService(t *testing.T) {
|
||||
svc, err := New()
|
||||
require.NoError(t, err)
|
||||
SetDefault(svc)
|
||||
|
||||
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(`{"eager.registration": "loaded immediately"}`),
|
||||
},
|
||||
}
|
||||
|
||||
RegisterLocales(fs, "locales")
|
||||
|
||||
got := svc.T("eager.registration")
|
||||
assert.Equal(t, "loaded immediately", got)
|
||||
}
|
||||
|
||||
func TestInit_LoadsRegisteredLocales(t *testing.T) {
|
||||
// Save and restore global service state.
|
||||
registeredLocalesMu.Lock()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue