Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια

Μετατροπή ελληνικών strings σε λατινικά (greenglish)

Ο παρακάτω κώδικας μετατρέπει ελληνικό κείμενο σε λατινικούς χαρακτήρες. Χρησιμοποιεί διάφορους κανονισμούς που βρήκα από δω και από κει στο web ώστε να κάνει σωστή απόδοση της μετάφρασης, πχ. όπως γίνεται όταν τα ελληνικά ονόματα βγαίνουν με λατινικούς χαρακτήρες στα διαβατήρια.

Public Function GetGreenglish(ByVal Text As String) As String

Dim ResultString As String = LCase(Text)

ResultString = ResultString.Replace("@", "")

ResultString = ResultString.Replace("ά", "α")

ResultString = ResultString.Replace("έ", "ε")

ResultString = ResultString.Replace("ί", "ι")

ResultString = ResultString.Replace("ύ", "υ")

ResultString = ResultString.Replace("ή", "η")

ResultString = ResultString.Replace("ό", "ο")

ResultString = ResultString.Replace("ώ", "ω")

ResultString = ResultString.Replace("ϊ", "ι")

ResultString = ResultString.Replace("ϋ", "υ")

ResultString = ResultString.Replace("ς", "σ")

Dim ELDipthongs As String() = New String() {"αυ", "ευ", "ηυ", "γγ", "γκ", "γχ", "μπ", "ντ", "σλ", "τζ", "τθ"}

Dim ENDipthongs As String() = New String() {"af", "ef", "if", "ng", "ng", "nh", "b", "d", "zl", "tj", "tth"}

Dim Consonants As String() = New String() {"θ", "κ", "ξ", "π", "σ", "τ", "φ", "χ", "ψ"}

For DipthongCounter As Integer = 0 To ELDipthongs.Length - 1

For Each Consonant As String In Consonants

ResultString = ResultString.Replace(ELDipthongs(DipthongCounter) & Consonant, ENDipthongs(DipthongCounter) & Consonant)

Next

Next

ResultString = ResultString.Replace("αι", "e")

ResultString = ResultString.Replace("ει", "i")

ResultString = ResultString.Replace("οι", "i")

ResultString = ResultString.Replace("υι", "i")

ResultString = ResultString.Replace("ου", "u")

ResultString = ResultString.Replace("αυ", "av")

ResultString = ResultString.Replace("ευ", "ev")

ResultString = ResultString.Replace("ηυ", "iv")

ResultString = ResultString.Replace("α", "a")

ResultString = ResultString.Replace("β", "v")

ResultString = ResultString.Replace("γ", "g")

ResultString = ResultString.Replace("δ", "d")

ResultString = ResultString.Replace("ε", "e")

ResultString = ResultString.Replace("ζ", "@z@")

ResultString = ResultString.Replace("η", "i")

ResultString = ResultString.Replace("θ", "th")

ResultString = ResultString.Replace("ι", "i")

ResultString = ResultString.Replace("κ", "k")

ResultString = ResultString.Replace("λ", "l")

ResultString = ResultString.Replace("μ", "m")

ResultString = ResultString.Replace("ν", "n")

ResultString = ResultString.Replace("ξ", "x")

ResultString = ResultString.Replace("ο", "o")

ResultString = ResultString.Replace("π", "p")

ResultString = ResultString.Replace("ρ", "r")

ResultString = ResultString.Replace("σ", "@s@")

ResultString = ResultString.Replace("τ", "t")

ResultString = ResultString.Replace("υ", "i")

ResultString = ResultString.Replace("φ", "f")

ResultString = ResultString.Replace("χ", "ch")

ResultString = ResultString.Replace("ψ", "ps")

ResultString = ResultString.Replace("ω", "o")

'---

ResultString = ResultString.Replace("a@z@a", "asa")

ResultString = ResultString.Replace("a@z@e", "ase")

ResultString = ResultString.Replace("a@z@i", "asi")

ResultString = ResultString.Replace("a@z@u", "asu")

ResultString = ResultString.Replace("a@z@o", "aso")

ResultString = ResultString.Replace("a@z@y", "asy")

ResultString = ResultString.Replace("e@z@a", "asa")

ResultString = ResultString.Replace("e@z@e", "ase")

ResultString = ResultString.Replace("e@z@i", "asi")

ResultString = ResultString.Replace("e@z@u", "asu")

ResultString = ResultString.Replace("e@z@o", "aso")

ResultString = ResultString.Replace("e@z@y", "asy")

ResultString = ResultString.Replace("i@z@a", "asa")

ResultString = ResultString.Replace("i@z@e", "ase")

ResultString = ResultString.Replace("i@z@i", "asi")

ResultString = ResultString.Replace("i@z@u", "asu")

ResultString = ResultString.Replace("i@z@o", "aso")

ResultString = ResultString.Replace("i@z@y", "asy")

ResultString = ResultString.Replace("u@z@a", "asa")

ResultString = ResultString.Replace("u@z@e", "ase")

ResultString = ResultString.Replace("u@z@i", "asi")

ResultString = ResultString.Replace("u@z@u", "asu")

ResultString = ResultString.Replace("u@z@o", "aso")

ResultString = ResultString.Replace("u@z@y", "asy")

ResultString = ResultString.Replace("o@z@a", "asa")

ResultString = ResultString.Replace("o@z@e", "ase")

ResultString = ResultString.Replace("o@z@i", "asi")

ResultString = ResultString.Replace("o@z@u", "asu")

ResultString = ResultString.Replace("o@z@o", "aso")

ResultString = ResultString.Replace("o@z@y", "asy")

ResultString = ResultString.Replace("y@z@a", "asa")

ResultString = ResultString.Replace("y@z@e", "ase")

ResultString = ResultString.Replace("y@z@i", "asi")

ResultString = ResultString.Replace("y@z@u", "asu")

ResultString = ResultString.Replace("y@z@o", "aso")

ResultString = ResultString.Replace("y@z@y", "asy")

 

'---

ResultString = ResultString.Replace("a@s@a", "aza")

ResultString = ResultString.Replace("a@s@e", "aze")

ResultString = ResultString.Replace("a@s@i", "azi")

ResultString = ResultString.Replace("a@s@u", "azu")

ResultString = ResultString.Replace("a@s@o", "azo")

ResultString = ResultString.Replace("a@s@y", "azy")

ResultString = ResultString.Replace("e@s@a", "aza")

ResultString = ResultString.Replace("e@s@e", "aze")

ResultString = ResultString.Replace("e@s@i", "azi")

ResultString = ResultString.Replace("e@s@u", "azu")

ResultString = ResultString.Replace("e@s@o", "azo")

ResultString = ResultString.Replace("e@s@y", "azy")

ResultString = ResultString.Replace("i@s@a", "aza")

ResultString = ResultString.Replace("i@s@e", "aze")

ResultString = ResultString.Replace("i@s@i", "azi")

ResultString = ResultString.Replace("i@s@u", "azu")

ResultString = ResultString.Replace("i@s@o", "azo")

ResultString = ResultString.Replace("i@s@y", "azy")

ResultString = ResultString.Replace("u@s@a", "aza")

ResultString = ResultString.Replace("u@s@e", "aze")

ResultString = ResultString.Replace("u@s@i", "azi")

ResultString = ResultString.Replace("u@s@u", "azu")

ResultString = ResultString.Replace("u@s@o", "azo")

ResultString = ResultString.Replace("u@s@y", "azy")

ResultString = ResultString.Replace("o@s@a", "aza")

ResultString = ResultString.Replace("o@s@e", "aze")

ResultString = ResultString.Replace("o@s@i", "azi")

ResultString = ResultString.Replace("o@s@u", "azu")

ResultString = ResultString.Replace("o@s@o", "azo")

ResultString = ResultString.Replace("o@s@y", "azy")

ResultString = ResultString.Replace("y@s@a", "aza")

ResultString = ResultString.Replace("y@s@e", "aze")

ResultString = ResultString.Replace("y@s@i", "azi")

ResultString = ResultString.Replace("y@s@u", "azu")

ResultString = ResultString.Replace("y@s@o", "azo")

ResultString = ResultString.Replace("y@s@y", "azy")

ResultString = ResultString.Replace("@", "")

Return ResultString

End Function

Έχουν δημοσιευτεί Πέμπτη, 18 Αυγούστου 2005 8:30 πμ από το μέλος Χρήστος Γεωργακόπουλος
Δημοσίευση στην κατηγορία:

Σχόλια:

Έχει απενεργοποιηθεί η προσθήκη σχολίων από ανώνυμα μέλη