перекодировка rus > lat

25region

Client
Регистрация
26.09.2013
Сообщения
182
Благодарностей
57
Баллы
28

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 25region какие-либо сделки.

Подскажите как затолкать в зено пострер )
Думаю многим пригодится


Код:
Использование:

string outt = Transliteration.Front("Транслитерация русских символов URL в английские");
Console.WriteLine(outt);
Console.ReadLine();
Вот, собственно, сам класс.

using System;
using System.Collections.Generic;
using System.Text;

namespace Transliteration
{
public enum TransliterationType
{
Gost,
ISO
}
public static class Transliteration
{
private static Dictionary gost = new Dictionary(); //ГОСТ 16876-71
private static Dictionary iso = new Dictionary(); //ISO 9-95

public static string Front(string text)
{
return Front(text, TransliterationType.ISO);
}
public static string Front(string text, TransliterationType type)
{
string output = text;
Dictionary tdict = GetDictionaryByType(type);

foreach (KeyValuePair key in tdict)
{
output = output.Replace(key.Key, key.Value);
}
return output;
}
public static string Back(string text)
{
return Back(text, TransliterationType.ISO);
}
public static string Back(string text, TransliterationType type)
{
string output = text;
Dictionary tdict = GetDictionaryByType(type);

foreach (KeyValuePair key in tdict)
{
output = output.Replace(key.Value, key.Key);
}
return output;
}

private static Dictionary GetDictionaryByType(TransliterationType type)
{
Dictionary tdict = iso;
if (type == TransliterationType.Gost) tdict = gost;
return tdict;
}

static Transliteration()
{
gost.Add("Є", "EH");
gost.Add("І", "I");
gost.Add("і", "i");
gost.Add("№", "#");
gost.Add("є", "eh");
gost.Add("А", "A");
gost.Add("Б", "B");
gost.Add("В", "V");
gost.Add("Г", "G");
gost.Add("Д", "D");
gost.Add("Е", "E");
gost.Add("Ё", "JO");
gost.Add("Ж", "ZH");
gost.Add("З", "Z");
gost.Add("И", "I");
gost.Add("Й", "JJ");
gost.Add("К", "K");
gost.Add("Л", "L");
gost.Add("М", "M");
gost.Add("Н", "N");
gost.Add("О", "O");
gost.Add("П", "P");
gost.Add("Р", "R");
gost.Add("С", "S");
gost.Add("Т", "T");
gost.Add("У", "U");
gost.Add("Ф", "F");
gost.Add("Х", "KH");
gost.Add("Ц", "C");
gost.Add("Ч", "CH");
gost.Add("Ш", "SH");
gost.Add("Щ", "SHH");
gost.Add("Ъ", "'");
gost.Add("Ы", "Y");
gost.Add("Ь", "");
gost.Add("Э", "EH");
gost.Add("Ю", "YU");
gost.Add("Я", "YA");
gost.Add("а", "a");
gost.Add("б", "b");
gost.Add("в", "v");
gost.Add("г", "g");
gost.Add("д", "d");
gost.Add("е", "e");
gost.Add("ё", "jo");
gost.Add("ж", "zh");
gost.Add("з", "z");
gost.Add("и", "i");
gost.Add("й", "jj");
gost.Add("к", "k");
gost.Add("л", "l");
gost.Add("м", "m");
gost.Add("н", "n");
gost.Add("о", "o");
gost.Add("п", "p");
gost.Add("р", "r");
gost.Add("с", "s");
gost.Add("т", "t");
gost.Add("у", "u");

gost.Add("ф", "f");
gost.Add("х", "kh");
gost.Add("ц", "c");
gost.Add("ч", "ch");
gost.Add("ш", "sh");
gost.Add("щ", "shh");
gost.Add("ъ", "");
gost.Add("ы", "y");
gost.Add("ь", "");
gost.Add("э", "eh");
gost.Add("ю", "yu");
gost.Add("я", "ya");
gost.Add("«", "");
gost.Add("»", "");
gost.Add("—", "-");

iso.Add("Є", "YE");
iso.Add("І", "I");
iso.Add("Ѓ", "G");
iso.Add("і", "i");
iso.Add("№", "#");
iso.Add("є", "ye");
iso.Add("ѓ", "g");
iso.Add("А", "A");
iso.Add("Б", "B");
iso.Add("В", "V");
iso.Add("Г", "G");
iso.Add("Д", "D");
iso.Add("Е", "E");
iso.Add("Ё", "YO");
iso.Add("Ж", "ZH");
iso.Add("З", "Z");
iso.Add("И", "I");
iso.Add("Й", "J");
iso.Add("К", "K");
iso.Add("Л", "L");
iso.Add("М", "M");
iso.Add("Н", "N");
iso.Add("О", "O");
iso.Add("П", "P");
iso.Add("Р", "R");
iso.Add("С", "S");
iso.Add("Т", "T");
iso.Add("У", "U");
iso.Add("Ф", "F");
iso.Add("Х", "X");
iso.Add("Ц", "C");
iso.Add("Ч", "CH");
iso.Add("Ш", "SH");
iso.Add("Щ", "SHH");
iso.Add("Ъ", "'");
iso.Add("Ы", "Y");
iso.Add("Ь", "");
iso.Add("Э", "E");
iso.Add("Ю", "YU");
iso.Add("Я", "YA");
iso.Add("а", "a");
iso.Add("б", "b");
iso.Add("в", "v");
iso.Add("г", "g");
iso.Add("д", "d");
iso.Add("е", "e");
iso.Add("ё", "yo");
iso.Add("ж", "zh");
iso.Add("з", "z");
iso.Add("и", "i");
iso.Add("й", "j");
iso.Add("к", "k");
iso.Add("л", "l");
iso.Add("м", "m");
iso.Add("н", "n");
iso.Add("о", "o");
iso.Add("п", "p");
iso.Add("р", "r");
iso.Add("с", "s");
iso.Add("т", "t");
iso.Add("у", "u");
iso.Add("ф", "f");
iso.Add("х", "x");
iso.Add("ц", "c");
iso.Add("ч", "ch");
iso.Add("ш", "sh");
iso.Add("щ", "shh");
iso.Add("ъ", "");
iso.Add("ы", "y");
iso.Add("ь", "");
iso.Add("э", "e");
iso.Add("ю", "yu");
iso.Add("я", "ya");
iso.Add("«", "");
iso.Add("»", "");
iso.Add("—", "-");
}
}
}
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
Пихнуть в dll-ку и все)
 

25region

Client
Регистрация
26.09.2013
Сообщения
182
Благодарностей
57
Баллы
28

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 25region какие-либо сделки.

ок )
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
а чем стандатный экшен транслитерации не мил?)
 

bedl0

Client
Регистрация
07.12.2012
Сообщения
244
Благодарностей
56
Баллы
28

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
ааааа) O:)
 

25region

Client
Регистрация
26.09.2013
Сообщения
182
Благодарностей
57
Баллы
28

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 25region какие-либо сделки.

Надоже когдато начинать снипетами пользоться, понять что и как, тем более повился наконец таки чел, сопособный адекватно разяснить что к чему )
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)