Требуется решение по переводу латиницы в русские буквы - 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);
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5
Похожие ответы