[agent/codex:gpt-5.4-mini] Read ~/spec/code/core/go/i18n/RFC.md fully. Find ONE feature... #78
3 changed files with 50 additions and 7 deletions
|
|
@ -132,9 +132,6 @@ func flattenWithGrammar(prefix string, data map[string]any, out map[string]Messa
|
|||
if gerund, ok := v["gerund"].(string); ok {
|
||||
forms.Gerund = gerund
|
||||
}
|
||||
if forms.Past == "" || forms.Gerund == "" {
|
||||
continue
|
||||
}
|
||||
grammar.Verbs[core.Lower(verbName)] = forms
|
||||
continue
|
||||
}
|
||||
|
|
|
|||
|
|
@ -208,11 +208,15 @@ func TestFlattenWithGrammar(t *testing.T) {
|
|||
if _, ok := grammar.Verbs["publish_draft"]; ok {
|
||||
t.Error("verb should be stored under explicit base, not JSON key")
|
||||
}
|
||||
if _, ok := grammar.Verbs["partial_past"]; ok {
|
||||
t.Error("incomplete verb entry with only past should be skipped")
|
||||
if v, ok := grammar.Verbs["partial_past"]; !ok {
|
||||
t.Error("incomplete verb entry with only past should be extracted")
|
||||
} else if v.Past != "partialed" || v.Gerund != "" {
|
||||
t.Errorf("partial_past forms = %+v, want Past only", v)
|
||||
}
|
||||
if _, ok := grammar.Verbs["partial_gerund"]; ok {
|
||||
t.Error("incomplete verb entry with only gerund should be skipped")
|
||||
if v, ok := grammar.Verbs["partial_gerund"]; !ok {
|
||||
t.Error("incomplete verb entry with only gerund should be extracted")
|
||||
} else if v.Past != "" || v.Gerund != "partialing" {
|
||||
t.Errorf("partial_gerund forms = %+v, want Gerund only", v)
|
||||
}
|
||||
if _, ok := messages["gram.verb.partial_past"]; ok {
|
||||
t.Error("gram.verb.partial_past should not be flattened into messages")
|
||||
|
|
|
|||
|
|
@ -348,6 +348,48 @@ func TestServiceSubjectCountPlurals(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestServiceLoadJSONPartialVerbForms(t *testing.T) {
|
||||
svc, err := New()
|
||||
if err != nil {
|
||||
t.Fatalf("New() failed: %v", err)
|
||||
}
|
||||
|
||||
const lang = "zz"
|
||||
prevDefault := Default()
|
||||
prevGrammar := GetGrammarData(lang)
|
||||
SetDefault(svc)
|
||||
t.Cleanup(func() {
|
||||
SetDefault(prevDefault)
|
||||
SetGrammarData(lang, prevGrammar)
|
||||
})
|
||||
|
||||
svc.currentLang = lang
|
||||
|
||||
if err := svc.loadJSON(lang, []byte(`{
|
||||
"gram": {
|
||||
"verb": {
|
||||
"render": { "past": "rendered" },
|
||||
"stream": { "gerund": "streaming" }
|
||||
}
|
||||
}
|
||||
}`)); err != nil {
|
||||
t.Fatalf("loadJSON() failed: %v", err)
|
||||
}
|
||||
|
||||
if v, ok := GetGrammarData(lang).Verbs["render"]; !ok || v.Past != "rendered" || v.Gerund != "" {
|
||||
t.Fatalf("partial past verb not loaded correctly: %+v", v)
|
||||
}
|
||||
if v, ok := GetGrammarData(lang).Verbs["stream"]; !ok || v.Past != "" || v.Gerund != "streaming" {
|
||||
t.Fatalf("partial gerund verb not loaded correctly: %+v", v)
|
||||
}
|
||||
if got := PastTense("render"); got != "rendered" {
|
||||
t.Fatalf("PastTense(render) = %q, want %q", got, "rendered")
|
||||
}
|
||||
if got := Gerund("stream"); got != "streaming" {
|
||||
t.Fatalf("Gerund(stream) = %q, want %q", got, "streaming")
|
||||
}
|
||||
}
|
||||
|
||||
func TestServiceTemplatesSupportGrammarFuncs(t *testing.T) {
|
||||
svc, err := New()
|
||||
if err != nil {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue