[agent/codex:gpt-5.4-mini] Read ~/spec/code/core/go/i18n/RFC.md fully. Find features de... #145
2 changed files with 34 additions and 0 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue