[agent/codex:gpt-5.4-mini] Read ~/spec/code/core/go/i18n/RFC.md fully. Find ONE feature... #37

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

View file

@ -452,6 +452,9 @@ func articleForCurrentLanguage(lowerWord, originalWord string) (string, bool) {
return "", false
}
if article, ok := articleForPluralForm(data, lowerWord, lang); ok {
return article, true
}
if article, ok := articleByGender(data, lowerWord, originalWord, lang); ok {
return article, true
}
@ -476,6 +479,32 @@ func articleByGender(data *GrammarData, lowerWord, originalWord, lang string) (s
return maybeElideArticle(article, originalWord, lang), true
}
func articleForPluralForm(data *GrammarData, lowerWord, lang string) (string, bool) {
if !isFrenchLanguage(lang) {
return "", false
}
if !isKnownPluralNoun(data, lowerWord) {
return "", false
}
return "les", true
}
func isKnownPluralNoun(data *GrammarData, lowerWord string) bool {
if data == nil || len(data.Nouns) == 0 {
return false
}
for _, forms := range data.Nouns {
if forms.Other == "" || core.Lower(forms.Other) != lowerWord {
continue
}
if forms.One != "" && core.Lower(forms.One) == lowerWord {
continue
}
return true
}
return false
}
func articleFromGrammarForms(data *GrammarData, word string) (string, bool) {
if data.Articles.IndefiniteDefault == "" && data.Articles.IndefiniteVowel == "" {
return "", false

View file

@ -334,6 +334,7 @@ func TestArticleFrenchLocale(t *testing.T) {
want string
}{
{"branche", "la"},
{"branches", "les"},
{"enfant", "l'"},
{"fichier", "le"},
{"inconnu", "un"},
@ -510,6 +511,7 @@ func TestArticlePhraseFrenchLocale(t *testing.T) {
want string
}{
{"branche", "la branche"},
{"branches", "les branches"},
{"enfant", "l'enfant"},
{"fichier", "le fichier"},
}