Skip to content

Commit 7ef9024

Browse files
Merge pull request #1 from nekoedges/meester
feat: Added Russian substitution
2 parents f742333 + 5068416 commit 7ef9024

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

slugify_test.v

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ fn test_slugify_make_lang() {
1212
assert slugifier.make('Har du røykt sokka dine?') == 'har-du-roeykt-sokka-dine'
1313
slugifier.lang = Language.it
1414
assert slugifier.make('Un € o un $') == 'un-eur-o-un'
15+
slugifier.lang = Language.ru
16+
assert slugifier.make('любя съешь щипцы вздохнёт мэр кайф жгуч') == 'lyubya-sesh-schiptsi-vzdohnyot-mer-kayf-zhguch'
1517
}
1618

1719
fn test_max_length() {

substitutions.v

+49
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ pub enum Language {
88
it
99
nl
1010
no
11+
ru
1112
}
1213

1314
const (
@@ -18,6 +19,7 @@ const (
1819
Language.it: it_sub
1920
Language.nl: nl_sub
2021
Language.no: no_sub
22+
Language.ru: ru_sub
2123
}
2224
// en_sub are the default and fallback substitution mappings.
2325
// When passing a different language to `make_lang`, any mapping found in the passed language will
@@ -97,4 +99,51 @@ const (
9799
'Ø': 'Oe'
98100
'Å': 'Aa'
99101
}
102+
ru_sub = {
103+
'а': 'a'
104+
'б': 'b'
105+
'в': 'v'
106+
'г': 'g'
107+
'д': 'd'
108+
'е': 'e'
109+
'ё': 'yo'
110+
'ж': 'zh'
111+
'з': 'z'
112+
'дж': 'j'
113+
'и': 'i'
114+
'й': 'y'
115+
'к': 'k'
116+
'л': 'l'
117+
'м': 'm'
118+
'н': 'n'
119+
'о': 'o'
120+
'п': 'p'
121+
'р': 'r'
122+
'с': 's'
123+
'т': 't'
124+
'у': 'u'
125+
'ф': 'f'
126+
'х': 'h'
127+
'ц': 'ts'
128+
'ч': 'ch'
129+
'ш': 'sh'
130+
'щ': 'sch'
131+
'ъ': ''
132+
'ы': 'i'
133+
'ь': ''
134+
'э': 'e'
135+
'ю': 'yu'
136+
'я': 'ya'
137+
'%': 'procent'
138+
'♥': 'serdtse'
139+
'&': 'i'
140+
'@': 'sobaka'
141+
'#': 'reshyotka'
142+
'=': 'ravno'
143+
'~': 'tilda'
144+
'<': 'menshe'
145+
'>': 'bolshe'
146+
'|': 'ili'
147+
'∞': 'beskonechnost'
148+
}
100149
)

0 commit comments

Comments
 (0)