[agent/codex:gpt-5.4-mini] Read ~/spec/code/core/go/i18n/RFC.md fully. Find ONE feature... #71
2 changed files with 42 additions and 0 deletions
|
|
@ -129,6 +129,8 @@ func FormatOrdinal(n int) string {
|
|||
lang = lang[:idx]
|
||||
}
|
||||
switch lang {
|
||||
case "fr":
|
||||
return formatFrenchOrdinal(n)
|
||||
case "en":
|
||||
return formatEnglishOrdinal(n)
|
||||
default:
|
||||
|
|
@ -136,6 +138,13 @@ func FormatOrdinal(n int) string {
|
|||
}
|
||||
}
|
||||
|
||||
func formatFrenchOrdinal(n int) string {
|
||||
if n == 1 || n == -1 {
|
||||
return core.Sprintf("%der", n)
|
||||
}
|
||||
return core.Sprintf("%de", n)
|
||||
}
|
||||
|
||||
func formatEnglishOrdinal(n int) string {
|
||||
abs := n
|
||||
if abs < 0 {
|
||||
|
|
|
|||
|
|
@ -147,6 +147,39 @@ func TestFormatOrdinal(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestFormatOrdinalFromLocale(t *testing.T) {
|
||||
svc, err := New()
|
||||
if err != nil {
|
||||
t.Fatalf("New() failed: %v", err)
|
||||
}
|
||||
prev := Default()
|
||||
SetDefault(svc)
|
||||
t.Cleanup(func() {
|
||||
SetDefault(prev)
|
||||
})
|
||||
|
||||
if err := SetLanguage("fr"); err != nil {
|
||||
t.Fatalf("SetLanguage(fr) failed: %v", err)
|
||||
}
|
||||
|
||||
tests := []struct {
|
||||
n int
|
||||
want string
|
||||
}{
|
||||
{1, "1er"},
|
||||
{2, "2e"},
|
||||
{3, "3e"},
|
||||
{11, "11e"},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
got := FormatOrdinal(tt.n)
|
||||
if got != tt.want {
|
||||
t.Errorf("FormatOrdinal(fr, %d) = %q, want %q", tt.n, got, tt.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestFormatNumberFromLocale(t *testing.T) {
|
||||
svc, err := New()
|
||||
if err != nil {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue