forked from gobuffalo/flect
/
singular_rules.go
122 lines (118 loc) · 3.14 KB
/
singular_rules.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package flect
var singularRules = []rule{}
// AddSingular adds a rule that will replace the given suffix with the replacement suffix.
func AddSingular(ext string, repl string) {
singularMoot.Lock()
defer singularMoot.Unlock()
singularRules = append(singularRules, rule{
suffix: ext,
fn: func(s string) string {
s = s[:len(s)-len(ext)]
return s + repl
},
})
singularRules = append(singularRules, rule{
suffix: repl,
fn: func(s string) string {
return s
},
})
}
func init() {
AddSingular("ria", "rion")
AddSingular("news", "news")
AddSingular("halves", "half")
AddSingular("appendix", "appendix")
AddSingular("zzes", "zz")
AddSingular("ulas", "ula")
AddSingular("psis", "pse")
AddSingular("genus", "genera")
AddSingular("phyla", "phylum")
AddSingular("odice", "odex")
AddSingular("oxen", "ox")
AddSingular("ianos", "iano")
AddSingular("ulus", "uli")
AddSingular("mice", "mouse")
AddSingular("ouses", "ouse")
AddSingular("mni", "mnus")
AddSingular("ocus", "oci")
AddSingular("shoes", "shoe")
AddSingular("oasis", "oasis")
AddSingular("lice", "louse")
AddSingular("men", "man")
AddSingular("ta", "tum")
AddSingular("ia", "ium")
AddSingular("tives", "tive")
AddSingular("ldren", "ld")
AddSingular("people", "person")
AddSingular("aves", "afe")
AddSingular("uses", "us")
AddSingular("bves", "bfe")
AddSingular("cves", "cfe")
AddSingular("dves", "dfe")
AddSingular("eves", "efe")
AddSingular("gves", "gfe")
AddSingular("hves", "hfe")
AddSingular("chives", "chive")
AddSingular("ives", "ife")
AddSingular("movies", "movie")
AddSingular("jeans", "jeans")
AddSingular("cesses", "cess")
AddSingular("cess", "cess")
AddSingular("acti", "actus")
AddSingular("itzes", "itz")
AddSingular("usses", "uss")
AddSingular("uss", "uss")
AddSingular("jves", "jfe")
AddSingular("kves", "kfe")
AddSingular("mves", "mfe")
AddSingular("nves", "nfe")
AddSingular("moves", "move")
AddSingular("oves", "ofe")
AddSingular("pves", "pfe")
AddSingular("qves", "qfe")
AddSingular("sves", "sfe")
AddSingular("tves", "tfe")
AddSingular("uves", "ufe")
AddSingular("vves", "vfe")
AddSingular("wves", "wfe")
AddSingular("xves", "xfe")
AddSingular("yves", "yfe")
AddSingular("zves", "zfe")
AddSingular("hives", "hive")
AddSingular("lves", "lf")
AddSingular("rves", "rf")
AddSingular("quies", "quy")
AddSingular("bies", "by")
AddSingular("cies", "cy")
AddSingular("dies", "dy")
AddSingular("fies", "fy")
AddSingular("gies", "gy")
AddSingular("hies", "hy")
AddSingular("jies", "jy")
AddSingular("kies", "ky")
AddSingular("lies", "ly")
AddSingular("mies", "my")
AddSingular("nies", "ny")
AddSingular("pies", "py")
AddSingular("qies", "qy")
AddSingular("ries", "ry")
AddSingular("sies", "sy")
AddSingular("ties", "ty")
AddSingular("vies", "vy")
AddSingular("wies", "wy")
AddSingular("xies", "xy")
AddSingular("zies", "zy")
AddSingular("xes", "x")
AddSingular("ches", "ch")
AddSingular("sses", "ss")
AddSingular("shes", "sh")
AddSingular("oes", "o")
AddSingular("ress", "ress")
AddSingular("iri", "irus")
AddSingular("irus", "irus")
AddSingular("tuses", "tus")
AddSingular("tus", "tus")
AddSingular("s", "")
AddSingular("ss", "ss")
}