1 | package mk.ukim.finki.eglas.services;
|
---|
2 |
|
---|
3 | import org.springframework.stereotype.Service;
|
---|
4 |
|
---|
5 | import java.util.HashMap;
|
---|
6 | import java.util.Map;
|
---|
7 | import java.util.stream.Collectors;
|
---|
8 |
|
---|
9 | @Service
|
---|
10 | public class UtilService {
|
---|
11 | Map<Character, String> cyrillicToLatinMap;
|
---|
12 |
|
---|
13 | public UtilService() {
|
---|
14 | cyrillicToLatinMap = new HashMap<>();
|
---|
15 | cyrillicToLatinMap.put('а', "a");
|
---|
16 | cyrillicToLatinMap.put('б', "b");
|
---|
17 | cyrillicToLatinMap.put('в', "v");
|
---|
18 | cyrillicToLatinMap.put('г', "g");
|
---|
19 | cyrillicToLatinMap.put('д', "d");
|
---|
20 | cyrillicToLatinMap.put('ѓ', "gj");
|
---|
21 | cyrillicToLatinMap.put('е', "e");
|
---|
22 | cyrillicToLatinMap.put('ж', "zh");
|
---|
23 | cyrillicToLatinMap.put('з', "z");
|
---|
24 | cyrillicToLatinMap.put('ѕ', "dz");
|
---|
25 | cyrillicToLatinMap.put('и', "i");
|
---|
26 | cyrillicToLatinMap.put('ј', "j");
|
---|
27 | cyrillicToLatinMap.put('к', "k");
|
---|
28 | cyrillicToLatinMap.put('л', "l");
|
---|
29 | cyrillicToLatinMap.put('љ', "lj");
|
---|
30 | cyrillicToLatinMap.put('м', "m");
|
---|
31 | cyrillicToLatinMap.put('н', "n");
|
---|
32 | cyrillicToLatinMap.put('њ', "nj");
|
---|
33 | cyrillicToLatinMap.put('о', "o");
|
---|
34 | cyrillicToLatinMap.put('п', "p");
|
---|
35 | cyrillicToLatinMap.put('р', "r");
|
---|
36 | cyrillicToLatinMap.put('с', "s");
|
---|
37 | cyrillicToLatinMap.put('т', "t");
|
---|
38 | cyrillicToLatinMap.put('ќ', "kj");
|
---|
39 | cyrillicToLatinMap.put('у', "u");
|
---|
40 | cyrillicToLatinMap.put('ф', "f");
|
---|
41 | cyrillicToLatinMap.put('х', "h");
|
---|
42 | cyrillicToLatinMap.put('ц', "c");
|
---|
43 | cyrillicToLatinMap.put('ч', "ch");
|
---|
44 | cyrillicToLatinMap.put('џ', "dz");
|
---|
45 | cyrillicToLatinMap.put('ш', "sh");
|
---|
46 | }
|
---|
47 |
|
---|
48 | public String cyrillicToLatinTransliteration(String cyrillic) {
|
---|
49 | StringBuilder sb = new StringBuilder();
|
---|
50 | return cyrillic.chars().mapToObj(x -> {
|
---|
51 | String transl = cyrillicToLatinMap.get(Character.toLowerCase((char) x));
|
---|
52 | if(transl == null) {
|
---|
53 | return String.valueOf((char) x);
|
---|
54 | }
|
---|
55 | return transl;
|
---|
56 | }).collect(Collectors.joining());
|
---|
57 | }
|
---|
58 | }
|
---|