[agent/codex:gpt-5.4-mini] Read ~/spec/code/core/go/i18n/RFC.md fully. Find features de... #145

Merged
Virgil merged 1 commit from agent/read---spec-code-core-go-i18n-rfc-md-ful into dev 2026-04-02 07:01:15 +00:00
2 changed files with 34 additions and 0 deletions

View file

@ -33,6 +33,9 @@ func (l *FSLoader) Load(lang string) (map[string]Message, *GrammarData, error) {
core.Replace(lang, "-", "_") + ".json",
core.Replace(lang, "_", "-") + ".json",
}
if base := baseLanguageTag(lang); base != "" && base != lang {
variants = append(variants, base+".json")
}
var data []byte
var err error

View file

@ -132,6 +132,37 @@ func TestFSLoaderLoadMissing(t *testing.T) {
}
}
func TestFSLoaderLoadFallsBackToBaseLanguage(t *testing.T) {
fs := fstest.MapFS{
"locales/en.json": &fstest.MapFile{
Data: []byte(`{
"greeting": "hello",
"gram": {
"article": {
"indefinite": { "default": "a", "vowel": "an" },
"definite": "the"
}
}
}`),
},
}
loader := NewFSLoader(fs, "locales")
messages, grammar, err := loader.Load("en-GB")
if err != nil {
t.Fatalf("Load(en-GB) error: %v", err)
}
if got := messages["greeting"].Text; got != "hello" {
t.Fatalf("Load(en-GB) greeting = %q, want %q", got, "hello")
}
if grammar == nil {
t.Fatal("Load(en-GB) returned nil grammar")
}
if grammar.Articles.Definite != "the" {
t.Fatalf("Load(en-GB) grammar article = %q, want %q", grammar.Articles.Definite, "the")
}
}
func TestFlattenWithGrammar(t *testing.T) {
messages := make(map[string]Message)
grammar := &GrammarData{