-
Notifications
You must be signed in to change notification settings - Fork 0
/
Translit_VI_LAT.bsl
124 lines (114 loc) · 3.09 KB
/
Translit_VI_LAT.bsl
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
123
124
// Transliteration from Vietnamese text to Latin chars only text
//
Function Translit_VN_LAT(VietText) Export
Mapinfo = New Map;
Mapinfo.Insert("A", "A");
Mapinfo.Insert("Ă", "A");
Mapinfo.Insert("Â", "A");
Mapinfo.Insert("Ạ", "A");
Mapinfo.Insert("Ặ", "A");
Mapinfo.Insert("Ậ", "A");
Mapinfo.Insert("À", "A");
Mapinfo.Insert("Ằ", "A");
Mapinfo.Insert("Ầ", "A");
Mapinfo.Insert("È", "E");
Mapinfo.Insert("Ề", "E");
Mapinfo.Insert("Ì", "I");
Mapinfo.Insert("Ò", "O");
Mapinfo.Insert("Ồ", "O");
Mapinfo.Insert("Ờ", "O");
Mapinfo.Insert("Ù", "U");
Mapinfo.Insert("Ừ", "U");
Mapinfo.Insert("Ỳ", "Y");
Mapinfo.Insert("Ỳ", "Y");
Mapinfo.Insert("Á", "A");
Mapinfo.Insert("Ắ", "A");
Mapinfo.Insert("Ấ", "A");
Mapinfo.Insert("É", "E");
Mapinfo.Insert("Ế", "E");
Mapinfo.Insert("Í", "I");
Mapinfo.Insert("Ó", "O");
Mapinfo.Insert("Ố", "O");
Mapinfo.Insert("Ớ", "O");
Mapinfo.Insert("Ú", "U");
Mapinfo.Insert("Ứ", "U");
Mapinfo.Insert("Ý", "Y");
Mapinfo.Insert("Ả", "A");
Mapinfo.Insert("Ẳ", "A");
Mapinfo.Insert("Ẩ", "A");
Mapinfo.Insert("Ẻ", "E");
Mapinfo.Insert("Ể", "E");
Mapinfo.Insert("Ỉ", "I");
Mapinfo.Insert("Ỏ", "O");
Mapinfo.Insert("Ổ", "O");
Mapinfo.Insert("Ở", "O");
Mapinfo.Insert("Ủ", "U");
Mapinfo.Insert("Ử", "U");
Mapinfo.Insert("Ỷ", "Y");
Mapinfo.Insert("Ã", "A");
Mapinfo.Insert("Ẵ", "A");
Mapinfo.Insert("Ẫ", "A");
Mapinfo.Insert("Ẽ", "E");
Mapinfo.Insert("Ễ", "E");
Mapinfo.Insert("Ĩ", "I");
Mapinfo.Insert("Õ", "O");
Mapinfo.Insert("Ỗ", "O");
Mapinfo.Insert("Ỡ", "O");
Mapinfo.Insert("Ỡ", "O");
Mapinfo.Insert("Ũ", "U");
Mapinfo.Insert("Ữ", "U");
Mapinfo.Insert("Ỹ", "Y");
Mapinfo.Insert("Ỹ", "Y");
Mapinfo.Insert("Ẹ", "E");
Mapinfo.Insert("Ệ", "E");
Mapinfo.Insert("Ị", "I");
Mapinfo.Insert("Ọ", "O");
Mapinfo.Insert("Ộ", "O");
Mapinfo.Insert("Ợ", "O");
Mapinfo.Insert("Ụ", "U");
Mapinfo.Insert("Ự", "U");
Mapinfo.Insert("Ỵ", "Y");
Mapinfo.Insert("B", "B");
Mapinfo.Insert("C", "C");
Mapinfo.Insert("D", "D");
Mapinfo.Insert("Đ", "D");
Mapinfo.Insert("E", "E");
Mapinfo.Insert("Ê", "E");
Mapinfo.Insert("G", "G");
Mapinfo.Insert("H", "H");
Mapinfo.Insert("I", "I");
Mapinfo.Insert("K", "K");
Mapinfo.Insert("L", "L");
Mapinfo.Insert("M", "M");
Mapinfo.Insert("N", "N");
Mapinfo.Insert("O", "O");
Mapinfo.Insert("Ô", "O");
Mapinfo.Insert("Ơ", "O");
Mapinfo.Insert("P", "P");
Mapinfo.Insert("Q", "Q");
Mapinfo.Insert("R", "R");
Mapinfo.Insert("S", "S");
Mapinfo.Insert("T", "T");
Mapinfo.Insert("U", "U");
Mapinfo.Insert("Ư", "U");
Mapinfo.Insert("V", "V");
Mapinfo.Insert("X", "X");
Mapinfo.Insert("Y", "Y");
Res = "";
Len = StrLen(VietText);
For i = 1 To Len Do
Char = Mid(VietText, i, 1);
ResChar = MapInfo.Get(Char);
If ResChar = Undefined AND Char <> Upper(Char) Then
ResChar = MapInfo.Get(Upper(Char));
If ResChar <> Undefined Then
ResChar = Lower(ResChar);
EndIf;
EndIf;
If ResChar = Undefined Then
ResChar = Char;
EndIf;
Res = Res + ResChar;
EndDo;
Return Res;
EndFunction