Требуется решение по переводу латиницы в русские буквы - C#
Формулировка задачи:
Всем привет.
Задание, возможно, крайне "нубское", но помогите, пожалуйста.
Я только учусь
Задача:
Есть два listbox'a - lstRus, lstEng.
В одном (lstRus) - Русские буквы - а, б, в, г, д, и т.д
В другом (lstEng) - такое содержание - a, b, v, g, d и т.д.
Т.е. английскими русские буквы.
** Отступление **
У меня есть приятель из другого города, у него нет русской раскладки, и он всё время пишет мне вот так:
Privet, kak tvoi dela? - и всё в этом роде.
** Конец отступления*
Так вот, задача - по индексу букв, вписывать русский текст в txt1, нажимать кнопку, и получать уже англ. текст.
--- Пример: ---
Привет, меня зовут Артур. Откуда ты? - ввод в txt1.
*нажатие кнопки btnRus*
И в txt2 выводиться:
Privet, menya zovut Artur. Otkuda ti?
--- И наоборот: ---
Privet, menya zovut Artur. Otkuda ti? - ввод в txt3.
*нажатие кнопки btnEng*
И в txt4 выводиться:
Привет, меня зовут Артур. Откуда ты?
---------------------------------------------------------
Вот и вся задача.
Скриншоты списков в приложении.
Заранее благодарен за помощь.
P.S. Уважаемый модератор, я знаю, Вы исправляете сообщения, чтобы было понятней.
Посмотрите, и исправьте, если я что-то не корректно написал.
Решение задачи: «Требуется решение по переводу латиницы в русские буквы»
textual
Листинг программы
namespace Tr
{
public partial class Form1 : Form
{
public class Translation
{
// символы
char[,] massChar ={
{'a','а'},
{'b','б'},
{'c','с'},
{'d','д'},
{'e','е'},
{'f','ф'},
{'g','г'},
{'h','х'},
{'i','и'},
{'j','j'}, // скорее всего не используется
{'k','к'},
{'l','л'},
{'m','м'},
{'n','н'},
{'o','о'},
{'p','п'},
{'q','q'}, // скорее всего не используется
{'r','р'},
{'s','с'},
{'t','т'},
{'u','у'},
{'v','в'},
{'w','w'}, // скорее всего не используется
{'x','х'},
{'y','у'},
{'z','з'}
};
// буквосочетания
string[,] massDiph = {
{"ya", "я"},
{"Ya", "Я"},
{"ph", "ф"},
{"Ph", "Ф"}
// и т.д.
};
// замена слов целиком
string[,] massWords = {
{"ti", "ты"},
{"Ti", "Tы"},
{"mi", "мы"},
{"Mi", "Мы"},
};
// для строчных букв
private void transLowerLetters(ref string text)
{
for (int i = 0; i < massChar.Length / 2; i++)
text = text.Replace(massChar[i, 0], massChar[i, 1]);
}
// для прописных букв
private void transUpperLetters(ref string text)
{
for (int i = 0; i < massChar.Length / 2; i++)
text = text.Replace(char.ToUpper(massChar[i, 0]), char.ToUpper(massChar[i, 1]));
}
// для буквосочетаний
private void transDiphthongs(ref string text)
{
for (int i = 0; i < massDiph.Length / 2; i++)
text = text.Replace(massDiph[i, 0], massDiph[i, 1]);
}
// для слов целиком
private void transWords(ref string text)
{
string[] words = text.Split();
for (int i = 0; i < words.Length; i++)
{
string word = words[i].Split(new[] { ' ', '"', '.', ',', '!', '?', '(', ')', '№' })[0]; // очищаем слово в words[i] от знаков препинания (если они есть) и кладем в переменную
for (int j = 0; j < massWords.Length / 2; j++)
{
if (word == massWords[j,0])
{ words[i] = words[i].Replace(massWords[j, 0], massWords[j, 1]);}
}
}
text = string.Empty;
foreach (string word in words)
{
text += word + " ";
}
}
public string Text(string text)
{
transDiphthongs(ref text);
transWords(ref text);
transLowerLetters(ref text);
transUpperLetters(ref text);
return text;
}
}
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Translation translation = new Translation();
richTextBox2.Text = translation.Text(richTextBox1.Text);
}
}
}