Добрый день. Сейчас пробую написать мелкую софтину, которая из подобной каши букв на латинце "ghbdtn", переведет по клику на "Привет".
Понимаю, что можно через string replace каждую кнопку клавиатуры пропустить, но много кода. Нашел еще вот такое решение.
public static String Avtoconvert(string text)
{
string s="";
for (int i = 0; i < text.Length; i++)
{
switch (text[i])
{
case ('q'): s += "й"; break;
case ('w'): s += "ц"; break;
case ('e'): s += "у"; break;
case ('r'): s += "к"; break;
case ('t'): s += "е"; break;
case ('y'): s += "н"; break;
case ('u'): s += "г"; break;
case ('i'): s += "ш"; break;
case ('o'): s += "щ"; break;
case ('p'): s += "з"; break;
case ('['): s += "х"; break;
case (']'): s += "ъ"; break;
case ('a'): s += "ф"; break;
case ('s'): s += "ы"; break;
case ('d'): s += "в"; break;
case ('f'): s += "а"; break;
case ('g'): s += "п"; break;
case ('h'): s += "р"; break;
case ('j'): s += "о"; break;
case ('k'): s += "л"; break;
case ('l'): s += "д"; break;
case (';'): s += "ж"; break;
case ('\''): s += "э"; break;
case ('z'): s += "я"; break;
case ('x'): s += "ч"; break;
case ('c'): s += "с"; break;
case ('v'): s += "м"; break;
case ('b'): s += "и"; break;
case ('n'): s += "т"; break;
case ('m'): s += "ь"; break;
case (','): s += "б"; break;
case ('/'): s += "."; break;
case (' '): s += " "; break;
case ('`'): s += "ё"; break;
case ('\\'): s += "\\"; break;
case ('@'): s += "\""; break;
case ('#'): s += "№"; break;
case ('$'): s += ";"; break;
case ('^'): s += ":"; break;
case ('&'): s += "?"; break;
case ('|'): s += "/"; break;
case ('Q'): s += "Й"; break;
case ('W'): s += "Ц"; break;
case ('E'): s += "У"; break;
case ('R'): s += "К"; break;
case ('T'): s += "Е"; break;
case ('Y'): s += "Н"; break;
case ('U'): s += "Г"; break;
case ('I'): s += "Ш"; break;
case ('O'): s += "Щ"; break;
case ('P'): s += "З"; break;
case ('{'): s += "Х"; break;
case ('}'): s += "Ъ"; break;
case ('A'): s += "Ф"; break;
case ('S'): s += "Ы"; break;
case ('D'): s += "В"; break;
case ('F'): s += "А"; break;
case ('G'): s += "П"; break;
case ('H'): s += "Р"; break;
case ('J'): s += "О"; break;
case ('K'): s += "Л"; break;
case ('L'): s += "Д"; break;
case (':'): s += "Ж"; break;
case ('"'): s += "Э"; break;
case ('Z'): s += "Я"; break;
case ('X'): s += "Ч"; break;
case ('C'): s += "С"; break;
case ('V'): s += "М"; break;
case ('B'): s += "И"; break;
case ('N'): s += "Т"; break;
case ('M'): s += "Ь"; break;
case ('<'): s += "Б"; break;
case ('>'): s += "Ю"; break;
case ('й'): s += "q"; break;
case ('ц'): s += "w"; break;
case ('у'): s += "e"; break;
case ('к'): s += "r"; break;
case ('е'): s += "t"; break;
case ('н'): s += "y"; break;
case ('г'): s += "u"; break;
case ('ш'): s += "i"; break;
case ('щ'): s += "o"; break;
case ('з'): s += "p"; break;
case ('х'): s += "["; break;
case ('ъ'): s += "]"; break;
case ('ф'): s += "a"; break;
case ('ы'): s += "s"; break;
case ('в'): s += "d"; break;
case ('а'): s += "f"; break;
case ('п'): s += "g"; break;
case ('р'): s += "h"; break;
case ('о'): s += "j"; break;
case ('л'): s += "k"; break;
case ('д'): s += "l"; break;
case ('ж'): s += ";"; break;
case ('э'): s += "'"; break;
case ('я'): s += "z"; break;
case ('ч'): s += "x"; break;
case ('с'): s += "c"; break;
case ('м'): s += "v"; break;
case ('и'): s += "b"; break;
case ('т'): s += "n"; break;
case ('ь'): s += "m"; break;
case ('б'): s += ","; break;
case ('ю'): s += "."; break;
case ('.'): s += "."; break;
case ('ё'): s += "`"; break;
case ('№'): s += "#"; break;
case ('?'): s += ","; break;
case ('Й'): s += "Q"; break;
case ('Ц'): s += "W"; break;
case ('У'): s += "E"; break;
case ('К'): s += "R"; break;
case ('Е'): s += "T"; break;
case ('Н'): s += "Y"; break;
case ('Г'): s += "U"; break;
case ('Ш'): s += "I"; break;
case ('Щ'): s += "O"; break;
case ('З'): s += "P"; break;
case ('Х'): s += "{"; break;
case ('Ъ'): s += "}"; break;
case ('Ф'): s += "A"; break;
case ('Ы'): s += "S"; break;
case ('В'): s += "D"; break;
case ('А'): s += "F"; break;
case ('П'): s += "G"; break;
case ('Р'): s += "H"; break;
case ('О'): s += "J"; break;
case ('Л'): s += "K"; break;
case ('Д'): s += "L"; break;
case ('Ж'): s += ":"; break;
case ('Э'): s += "\""; break;
case ('Я'): s += "Z"; break;
case ('Ч'): s += "X"; break;
case ('С'): s += "C"; break;
case ('М'): s += "V"; break;
case ('И'): s += "B"; break;
case ('Т'): s += "N"; break;
case ('Ь'): s += "M"; break;
case ('Б'): s += "<"; break;
case ('Ю'): s += ">"; break;
default: s += text[i]; break;
}
}
return s;
}
Опять же целая портянка. Какие еще могут быть варианты решения такой задачи?