aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/gosimple/slug/languages_substitution.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/gosimple/slug/languages_substitution.go')
-rw-r--r--vendor/github.com/gosimple/slug/languages_substitution.go293
1 files changed, 293 insertions, 0 deletions
diff --git a/vendor/github.com/gosimple/slug/languages_substitution.go b/vendor/github.com/gosimple/slug/languages_substitution.go
new file mode 100644
index 0000000..e2e0ae3
--- /dev/null
+++ b/vendor/github.com/gosimple/slug/languages_substitution.go
@@ -0,0 +1,293 @@
1// Copyright 2013 by Dobrosław Żybort. All rights reserved.
2// This Source Code Form is subject to the terms of the Mozilla Public
3// License, v. 2.0. If a copy of the MPL was not distributed with this
4// file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
6package slug
7
8func init() {
9 // Merge language subs with the default one.
10 // TODO: Find better way so all langs are merged automatically and better
11 // tested.
12 for _, sub := range []*map[rune]string{
13 &bgSub,
14 &csSub,
15 &deSub,
16 &enSub,
17 &esSub,
18 &fiSub,
19 &frSub,
20 &grSub,
21 &huSub,
22 &idSub,
23 &itSub,
24 &kkSub,
25 &nbSub,
26 &nlSub,
27 &nnSub,
28 &plSub,
29 &roSub,
30 &slSub,
31 &svSub,
32 &trSub,
33 } {
34 for key, value := range defaultSub {
35 (*sub)[key] = value
36 }
37 }
38}
39
40var defaultSub = map[rune]string{
41 '"': "",
42 '\'': "",
43 '’': "",
44 '‒': "-", // figure dash
45 '–': "-", // en dash
46 '—': "-", // em dash
47 '―': "-", // horizontal bar
48}
49
50var csSub = map[rune]string{
51 '&': "a",
52 '@': "zavinac",
53}
54
55var deSub = map[rune]string{
56 '&': "und",
57 '@': "an",
58 'ä': "ae",
59 'Ä': "Ae",
60 'ö': "oe",
61 'Ö': "Oe",
62 'ü': "ue",
63 'Ü': "Ue",
64}
65
66var enSub = map[rune]string{
67 '&': "and",
68 '@': "at",
69}
70
71var esSub = map[rune]string{
72 '&': "y",
73 '@': "en",
74}
75
76var fiSub = map[rune]string{
77 '&': "ja",
78 '@': "at",
79}
80
81var frSub = map[rune]string{
82 '&': "et",
83 '@': "arobase",
84}
85
86var grSub = map[rune]string{
87 '&': "kai",
88 'β': "v",
89 'Β': "V",
90 'η': "i",
91 'Η': "I",
92 'ή': "i",
93 'Ή': "I",
94 'ι': "i",
95 'Ι': "I",
96 'ί': "i",
97 'Ί': "I",
98 'ϊ': "i",
99 'Ϊ': "I",
100 'ΐ': "i",
101 'ξ': "x",
102 'Ξ': "X",
103 'υ': "y",
104 'Υ': "Y",
105 'ύ': "y",
106 'Ύ': "Y",
107 'ϋ': "y",
108 'Ϋ': "Y",
109 'ΰ': "y",
110 'φ': "f",
111 'Φ': "F",
112 'χ': "ch",
113 'Χ': "Ch",
114 'ω': "o",
115 'Ω': "O",
116 'ώ': "o",
117 'Ώ': "O",
118}
119
120var huSub = map[rune]string{
121 'á': "a",
122 'Á': "A",
123 'é': "e",
124 'É': "E",
125 'í': "i",
126 'Í': "I",
127 'ó': "o",
128 'Ó': "O",
129 'ö': "o",
130 'Ö': "O",
131 'ő': "o",
132 'Ő': "O",
133 'ú': "u",
134 'Ú': "U",
135 'ü': "u",
136 'Ü': "U",
137 'ű': "u",
138 'Ű': "U",
139}
140
141var idSub = map[rune]string{
142 '&': "dan",
143}
144
145var itSub = map[rune]string{
146 '&': "e",
147 '@': "chiocciola",
148}
149
150var kkSub = map[rune]string{
151 '&': "jane",
152 'ә': "a",
153 'ғ': "g",
154 'қ': "q",
155 'ң': "n",
156 'ө': "o",
157 'ұ': "u",
158 'Ә': "A",
159 'Ғ': "G",
160 'Қ': "Q",
161 'Ң': "N",
162 'Ө': "O",
163 'Ұ': "U",
164}
165
166var nbSub = map[rune]string{
167 '&': "og",
168 '@': "at",
169 'æ': "ae",
170 'ø': "oe",
171 'å': "aa",
172 'Æ': "Ae",
173 'Ø': "Oe",
174 'Å': "Aa",
175}
176
177// Norwegian Nynorsk has the same rules
178var nnSub = nbSub
179
180var nlSub = map[rune]string{
181 '&': "en",
182 '@': "at",
183}
184
185var plSub = map[rune]string{
186 '&': "i",
187 '@': "na",
188}
189
190var roSub = map[rune]string{
191 '&': "si",
192 'Ă': "A",
193 'ă': "a",
194 'Â': "A",
195 'â': "a",
196 'Î': "I",
197 'î': "i",
198 'Ș': "S",
199 'ș': "s",
200 'Ț': "T",
201 'ț': "t",
202}
203
204var slSub = map[rune]string{
205 '&': "in",
206 'Đ': "DZ",
207 'đ': "dz",
208}
209
210var svSub = map[rune]string{
211 '&': "och",
212 '@': "snabel a",
213}
214
215var trSub = map[rune]string{
216 '&': "ve",
217 '@': "et",
218 'ş': "s",
219 'Ş': "S",
220 'ü': "u",
221 'Ü': "U",
222 'ö': "o",
223 'Ö': "O",
224 'İ': "I",
225 'ı': "i",
226 'ğ': "g",
227 'Ğ': "G",
228 'ç': "c",
229 'Ç': "C",
230}
231
232var bgSub = map[rune]string{
233 'А': "A",
234 'Б': "B",
235 'В': "V",
236 'Г': "G",
237 'Д': "D",
238 'Е': "E",
239 'Ж': "Zh",
240 'З': "Z",
241 'И': "I",
242 'Й': "Y",
243 'К': "K",
244 'Л': "L",
245 'М': "M",
246 'Н': "N",
247 'О': "O",
248 'П': "P",
249 'Р': "R",
250 'С': "S",
251 'Т': "T",
252 'У': "U",
253 'Ф': "F",
254 'Х': "H",
255 'Ц': "Ts",
256 'Ч': "Ch",
257 'Ш': "Sh",
258 'Щ': "Sh",
259 'Ъ': "A",
260 'Ь': "Y",
261 'Ю': "Yu",
262 'Я': "Ya",
263 'а': "a",
264 'б': "b",
265 'в': "v",
266 'г': "g",
267 'д': "d",
268 'е': "e",
269 'ж': "zh",
270 'з': "z",
271 'и': "i",
272 'й': "y",
273 'к': "k",
274 'л': "l",
275 'м': "m",
276 'н': "n",
277 'о': "o",
278 'п': "p",
279 'р': "r",
280 'с': "s",
281 'т': "t",
282 'у': "u",
283 'ф': "f",
284 'х': "h",
285 'ц': "ts",
286 'ч': "ch",
287 'ш': "sh",
288 'щ': "sht",
289 'ъ': "a",
290 'ь': "y",
291 'ю': "yu",
292 'я': "ya",
293}