Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Konvertovanje latinice u ćirilicu

[es] :: .NET :: Konvertovanje latinice u ćirilicu

[ Pregleda: 10885 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dc43
Dragoljub Ćurčić
programer, Chinook Software
Subotica, Serbia

Član broj: 19134
Poruke: 50
*.ADSL.neobee.net.

Sajt: bogiwoye.info


+2 Profil

icon Konvertovanje latinice u ćirilicu18.09.2005. u 22:23 - pre 226 meseci
Napisao sam funkciju u C#-u koja konvertuje string napisan na latinici u string napisan na ćirilici. Dajem dozvolu svima da koriste ovu funkciju u svojim programima. Jedino tražim da mi javite o tome, ali nije obavezno. Bilo bi mi drago da čujem gde je bila od koristi.

Fajl u kom se nalazi ova funkcija mora biti snimljen sa encodingom Unicode (UTF-8).

Funkcija je osetljiva na veličinu slova (letter case). Kada su u pitanju slova "lj", "nj" i "dž", jedino oba mala slova se prevode u malo ćirilično slovo (lj -> lj, Lj -> Lj, lJ -> Lj, LJ -> Lj).

Karakteri koji ne spadaju u latinicu se prenose neizmenjeni.

Pošto poruke na forumu automatski bivaju konvertovane u latinicu, nisam stavio code u poruku, jer ne bi imalo smisla.

Prikačio sam zip fajl sa primer projektom. Sama funkcija se nalazi u fajlu ConvertLatinToCyrillic.cs.

JavaScript verzija funkcije je prvo nastala. http://www.elitesecurity.org/tema/135980

Potom ova C# verzija.

A zatim Transact-SQL verzija. Prilikom pisanja i testiranja Transact-SQL sam najviše naučio, jer ranije nisam pisao u tom jeziku. http://www.elitesecurity.org/tema/135994
Prikačeni fajlovi
 
Odgovor na temu

aXi

Član broj: 9661
Poruke: 20
195.252.86.*



Profil

icon Re: Konvertovanje latinice u ćirilicu23.09.2005. u 03:37 - pre 226 meseci
Svaka cast matori
.NET expert wanna-be
Ne citam PM :( => saljite mail
 
Odgovor na temu

ivanivan94
Ivan Janković

Član broj: 303008
Poruke: 51
*.teol.net.



+1 Profil

icon Re: Konvertovanje latinice u ćirilicu02.09.2014. u 11:54 - pre 117 meseci
Jeste da je tema starija ali ovaj code (funkcija) mi se sviđa, pa sam hteo pitati dali je moguće napisati u C# code. ćirilica u latinicu, pošto se ovaj odnosi na konvertovanje isključivo latinice u ćirilicu.Hvala.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Konvertovanje latinice u ćirilicu02.09.2014. u 12:56 - pre 117 meseci
U fajlu ConvertLatinToCyrillic.cs imaš zamenu svakog latiničnog slova u ćirilično. Ako bi duplirao tu funkciju, preimenovao je u ConvertCyrillicToLatin, i zamenio ove parove slova, dobio bi manje-više to što tražiš. Pretvaranje ćiriličnih LJ, NJ, i DŽ je mali problem, jer algoritam teško može da zaključi da li veliko ćirilično DŽ treba da se translira u latinično DŽ ili Dž. To bi možda moglo da se reši sa dodatnim bool parametrom te nove funkcije, bool useTitleCase, pa ako je false onda DŽ, a ako je true onda Dž. Neka korisnik funkcije sam kaže kakva mu konverzija treba.
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
195.159.169.*

Sajt: www.dcaric.com


+26 Profil

icon Re: Konvertovanje latinice u ćirilicu02.09.2014. u 14:13 - pre 117 meseci
Code:

public class Util
{
    private static readonly Dictionary<char, string> Mappings = new Dictionary<char, string>
    {
        { 'A', "A" }, { 'B', "B" }, { 'V', "V" }, { 'G', "G" }, { 'D', "D" },
        { 'Đ', "Đ" }, { 'E', "E" }, { 'Ž', "Ž" }, { 'Z', "Z" }, { 'I', "I" },
        { 'J', "J" }, { 'K', "K" }, { 'L', "L" }, { 'Lj', "Lj" }, { 'M', "M" },
        { 'N', "N" }, { 'Nj', "Nj" }, { 'O', "O" }, { 'P', "P" }, { 'R', "R" },
        { 'S', "S" }, { 'T', "T" }, { 'Ć', "Ć" }, { 'U', "U" }, { 'F', "F" },
        { 'H', "H" }, { 'C', "C" }, { 'Č', "Č" }, { 'Dž', "Dž" }, { 'Š', "Š" },
        { 'a', "a" }, { 'b', "b" }, { 'v', "v" }, { 'g', "g" }, { 'd', "d" },
        { 'đ', "đ" }, { 'e', "e" }, { 'ž', "ž" }, { 'z', "z" }, { 'i', "i" },
        { 'j', "j" }, { 'k', "k" }, { 'l', "l" }, { 'lj', "lj" }, { 'm', "m" },
        { 'n', "n" }, { 'nj', "nj" }, { 'o', "o" }, { 'p', "p" }, { 'r', "r" },
        { 's', "s" }, { 't', "t" }, { 'ć', "ć" }, { 'u', "u" }, { 'f', "f" },
        { 'h', "h" }, { 'c', "c" }, { 'č', "č" }, { 'dž', "dž" }, { 'š', "š" }
    };

    public static string CyrillicToLatin(string text)
    {
        if (string.IsNullOrWhiteSpace(text))
        {
            return text;
        }

        var sb = new StringBuilder(text.Length);
        foreach (var character in text)
        {
            if (Mappings.ContainsKey(character))
            {
                sb.Append(Mappings[character]);
            }
            else
            {
                sb.Append(character);
            }
        }

        return sb.ToString();
    }
}


edit:

Forum konvertuje cirilicu u latinicu. Kod mozes preuzeti sa ovog linka: http://www.dcaric.com/ew-images/20140902/cirilica_u_latinicu.zip
 
Odgovor na temu

ivanivan94
Ivan Janković

Član broj: 303008
Poruke: 51
*.teol.net.



+1 Profil

icon Re: Konvertovanje latinice u ćirilicu03.09.2014. u 10:39 - pre 117 meseci
Hvala na postovima iznad. Probao sam da u okviru istog fajla ConvertLatinToCyrillic.cs imam konverziju i latinice u ćirilicu i ćirilice u latinicu (to bi mi najviše odgovaralo), i sve lepo radi (kada u text box1 kucam latinicu u text box 2 imam ćirilicu i obratno), sem naravno kada su u pitanju ćirilična slova:Lj,Nj,Dž, tj. kada konvertujem ćirilicu u latinicu i kucam (ili kopiram) pojedinačno neko od ova tri ćirilična slova sve je ok, ali ako ih kucam u sklopu neke reči onda se ona prvobitno konvertuju pravilno u latinicu ali čim dodam sledeće slovo pored njega ono se odma vraća ponovno u ćirilično.
Probao sam da menjam funkciju ali neuspešno. Ovako izgleda ConvertLatinToCyrillic.cs kod mene pa ako neko ima eventualno neku ideju i voljan je, kako rešiti ova tri ćirilična slova Lj,Nj,Dž, u okviru ove funkcije neka se javi.Hvala.

Code:
using System;

namespace Tools
{
    public class Utils
    {
        public static string ConvertLatinToCyrillic(string latin)
        {
            string c = "";
            string par = "";
            string slovo = "";
            int i;
            for (i=0; i<latin.Length; i++)
            {
                if (i<latin.Length-1)
                {
                    par = latin.Substring(i, 2);
                }
                else
                {
                    par = latin.Substring(i, 1);
                }
                switch (par)
                {
                    case "lj": c += "lj"; i++; break;    // lj
                                        case "lj": c += "lj"; i++; break;
                                        case "Lj": c += "Lj"; i++; break;
                    case "Lj": c += "Lj"; i++; break;
                    case "LJ": c += "Lj"; i++; break;
                    case "lJ": c += "Lj"; i++; break;
                    case "nj": c += "nj"; i++; break;    // nj
                                        case "nj": c += "nj"; i++; break;    
                    case "Nj": c += "Nj"; i++; break;
                    case "NJ": c += "Nj"; i++; break;
                                        case "Nj": c += "NJ"; i++; break;
                    case "nJ": c += "Nj"; i++; break;
                    case "dž": c += "dž"; i++; break;    // dž
                                        case "dž": c += "dž"; i++; break;    
                    case "Dž": c += "Dž"; i++; break;
                                        case "Dž": c += "DŽ"; i++; break;
                    case "DŽ": c += "Dž"; i++; break;
                    case "dŽ": c += "Dž"; i++; break;
                    default:
                        slovo = par.Substring(0,1);
                    switch (slovo)
                    {
                        case "a": c += "a"; break;
                        case "A": c += "A"; break;
                                                case "b": c += "b"; break;
                                                case "b": c += "b"; break;
                                                case "B": c += "B"; break;
                                                case "B": c += "B"; break;
                                                case "c": c += "c"; break;
                                                case "c": c += "c"; break;
                        case "C": c += "C"; break;
                                                case "C": c += "C"; break;
                        case "č": c += "č"; break;
                                                case "č": c += "č"; break;
                        case "Č": c += "Č"; break;
                                                case "Č": c += "Č"; break;
                        case "ć": c += "ć"; break;
                                                case "ć": c += "ć"; break;
                        case "Ć": c += "Ć"; break;
                                                case "Ć": c += "Ć"; break;
                        case "d": c += "d"; break;
                                                case "d": c += "d"; break;
                        case "D": c += "D"; break;
                                                case "D": c += "D"; break;
                        case "đ": c += "đ"; break;
                                                case "đ": c += "đ"; break;
                        case "Đ": c += "Đ"; break;
                                                case "Đ": c += "Đ"; break;
                        case "e": c += "e"; break;
                        case "E": c += "E"; break;
                        case "f": c += "f"; break;
                                                case "f": c += "f"; break;
                        case "F": c += "F"; break;
                                                case "F": c += "F"; break;
                        case "g": c += "g"; break;
                                                case "g": c += "g"; break;
                        case "G": c += "G"; break;
                                                case "G": c += "G"; break;
                        case "h": c += "h"; break;
                                                case "h": c += "h"; break;
                        case "H": c += "H"; break;
                                                case "H": c += "H"; break;
                         case "i": c += "i"; break;
                                                case "i": c += "i"; break;
                        case "I": c += "I"; break;
                                                case "I": c += "I"; break;
                        case "j": c += "j"; break;
                                                case "j": c += "j"; break;
                        case "J": c += "J"; break;
                                                case "J": c += "J"; break;
                        case "k": c += "k"; break;
                                                case "k": c += "k"; break;
                        case "K": c += "K"; break;
                                                case "K": c += "K"; break;
                        case "l": c += "l"; break;
                                                case "l": c += "l"; break;
                        case "L": c += "L"; break;
                                                case "L": c += "L"; break;
                        case "m": c += "m"; break;
                                                case "m": c += "m"; break;
                        case "M": c += "M"; break;
                                                case "M": c += "M"; break;
                        case "n": c += "n"; break;
                                                case "n": c += "n"; break;
                        case "N": c += "N"; break;
                                                case "N": c += "N"; break;
                        case "o": c += "o"; break;
                        case "O": c += "O"; break;
                        case "p": c += "p"; break;
                                                case "p": c += "p"; break;
                        case "P": c += "P"; break;
                                                case "P": c += "P"; break;
                        case "r": c += "r"; break;
                                                case "r": c += "r"; break;
                        case "R": c += "R"; break;
                                                case "R": c += "R"; break;
                        case "s": c += "s"; break;
                                                case "s": c += "s"; break;
                        case "S": c += "S"; break;
                                                case "S": c += "S"; break;
                        case "š": c += "š"; break;
                                                case "š": c += "š"; break;
                        case "Š": c += "Š"; break;
                                                case "Š": c += "Š"; break;
                        case "t": c += "t"; break;
                                                case "t": c += "t"; break;
                        case "T": c += "T"; break;
                                                case "T": c += "T"; break;
                        case "u": c += "u"; break;
                                                case "u": c += "u"; break;
                        case "U": c += "U"; break;
                                                case "U": c += "U"; break;
                        case "v": c += "v"; break;
                                                case "v": c += "v"; break;
                        case "V": c += "V"; break;
                                                case "V": c += "V"; break;
                        case "z": c += "z"; break;
                                                case "z": c += "z"; break;
                        case "Z": c += "Z"; break;
                                                case "Z": c += "Z"; break;
                        case "ž": c += "ž"; break;
                                                case "ž": c += "ž"; break;
                        case "Ž": c += "Ž"; break;
                                                case "Ž": c += "Ž"; break;
                        default:
                            c += slovo;
                            break;
                    }
                        break;
                }
            }
            return c;
        }
    }
}

 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Konvertovanje latinice u ćirilicu03.09.2014. u 13:11 - pre 117 meseci
Možda si primetio da se ovde sva ćirilica konvertuje u latinicu, čak i u kodu. Ako kod ima ćirilicu u sebi onda ga bolje postavi na http://pastebin.com/ a ovde samo stavi link.
 
Odgovor na temu

Dejan Vesic
Dejan Vesic
CEO
IGT Ogranak Beograd
Beograd

Član broj: 84929
Poruke: 217
80.240.144.*

Sajt: www.vesic.org


+1 Profil

icon Re: Konvertovanje latinice u ćirilicu03.09.2014. u 13:41 - pre 117 meseci
Svakako preporučujem da pogledate i ovo:

http://www.vesic.org/english/blog/c-sharp/transliteration-easy-way-microsoft-transliteration-utility/

Jako zgodno, koristio u gomili komercijalnih projekata.

Pozdrav,
Dejan
 
Odgovor na temu

ivanivan94
Ivan Janković

Član broj: 303008
Poruke: 51
*.teol.net.



+1 Profil

icon Re: Konvertovanje latinice u ćirilicu03.09.2014. u 16:01 - pre 117 meseci
O tek sam sada primetio.Hvala.Evo link od koda sa mog posta iznad:
http://pastebin.com/4rJHMEXt

Edit:
Hvala vam Dejane, ovo jeste korisno,nego ja sam čisto hteo iz edukativnih razloga ovu postojeću funkciju eventualno prilagoditi istovremeno i konvertovanju ćirilice u latinicu kao i latinice u ćirilicu naravno ako je moguće.Pozdrav.
 
Odgovor na temu

Cyberghost
Aleksandar Jovanović
Programer
S U M A D I J A

Član broj: 14674
Poruke: 813
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Konvertovanje latinice u ćirilicu04.10.2014. u 13:30 - pre 116 meseci
Evo ga link sa funkcijom CyrilicToLatin

http://pastebin.com/N8riK6zD


Every program is either trivial or it contains at least one bug.
 
Odgovor na temu

ivanivan94
Ivan Janković

Član broj: 303008
Poruke: 51
89.111.241.*



+1 Profil

icon Re: Konvertovanje latinice u ćirilicu27.10.2014. u 14:00 - pre 115 meseci
Sa zakašnjenjem bravo za Cyberghost-a, Ovaj kod konvertovanja ćirilice u latinicu radi bez greške.Hvala.
 
Odgovor na temu

[es] :: .NET :: Konvertovanje latinice u ćirilicu

[ Pregleda: 10885 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.