[ac151d1] | 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 | }
|
---|