Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
5 / 5 / 0
Регистрация: 14.02.2018
Сообщений: 60
1

Переводчик, словарь

20.04.2018, 20:47. Просмотров 927. Ответов 4
Метки нет (Все метки)

Нужно сделать переводчик с одного языка на другой и наоборот. На форме 2 radioButton (выбор направления перевода) и 2 richtextBox, в первый вводится текст во второй перевод. Вот что я сделал, только оно переводит слова которые есть в словаре.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
        public Dictionary<string, string> rus = new Dictionary<string, string>();
 
        public Dictionary<string, string> eng = new Dictionary<string, string>();
        public string result;
 
        private void FormMain_Load(object sender, EventArgs e)
        {
            rus.Add("привет", "hi");
            rus.Add("кот", "cat");
            rus.Add("собака", "dog");
            rus.Add("птица", "bird");
            rus.Add("стол", "table");
            rus.Add("кнопка", "button");
            rus.Add("стоп", "stop");
 
            eng.Add("hi", "привет");
            eng.Add("cat", "кот");
            eng.Add("dog", "собака");
            eng.Add("bird", "птица");
            eng.Add("table", "стол");
            eng.Add("button", "кнопка");
            eng.Add("stop", "стоп");
        }
 
        private void buttonTranslate_Click(object sender, EventArgs e)
        {
            if(radioButton1.Checked || radioButton2.Checked)
            {
                if (richTextBox1.Text == "")
                    MessageBox.Show("Введите слово");
                else if (rus.ContainsKey(richTextBox1.Text))
                {
                    rus.TryGetValue(richTextBox1.Text, out result);
                    richTextBox2.Text = result;
                }
                else if (eng.ContainsKey(richTextBox1.Text))
                {
                    eng.TryGetValue(richTextBox1.Text, out result);
                    richTextBox2.Text = result;
                }
            } else
            {
                MessageBox.Show("Направление не выбрано");
            }    
        }
Как сделать что бы при наборе текста, оно переводило те слова которые есть в словаре.

Пример:

what is the name of harry's cat ---> what is the name of harry's кошка

или

Собака и кот не дружелюбны ---> dog и cat не дружелюблны
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2018, 20:47
Ответы с готовыми решениями:

Словарь переводчик (dictionary)
Нужно сделать переводчик с одного языка на другой и наоборот(через Dictionary). В моем коде если...

Переводчик белеберды
Подскажите пожалуйста, надо сделать приложение, чтобы автоматически при написании слов забыв...

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

Переводчик систем счисления
Препод попросил сделать программу для перевода чисел в системы счисления, без использования...

4
1026 / 675 / 458
Регистрация: 21.01.2014
Сообщений: 1,785
20.04.2018, 21:12 2
Цитата Сообщение от Deaadfox Посмотреть сообщение
Вот что я сделал, только оно переводит слова которые есть в словаре.
Цитата Сообщение от Deaadfox Посмотреть сообщение
Как сделать что бы при наборе текста, оно переводило те слова которые есть в словаре.
Эм, а в чем разница?
Если надо переводить предложения, то разбивайте строку с помощью метода Split() на слова и переводите их.
0
5 / 5 / 0
Регистрация: 14.02.2018
Сообщений: 60
20.04.2018, 21:16  [ТС] 3
Lexeq, Я имел ввиду что оно переводит слова которые есть в словаре. Ну вот "привет --> hi", а если напишу "привет привет", то оно уже не переведёт.
0
2382 / 1754 / 915
Регистрация: 14.08.2016
Сообщений: 6,040
20.04.2018, 21:23 4
C#
1
resultString = string.Join(" ",inputString.Split().Select(x=>rus.ContainsKey(x) ? rus[x] : x));
0
5 / 5 / 0
Регистрация: 14.02.2018
Сообщений: 60
20.04.2018, 21:58  [ТС] 5
Diamante, Я или его не туда впихнул или оно не переводит текст, но слово переводит.
C#
1
2
3
4
5
6
7
8
else if (rus.ContainsKey(richTextBox1.Text))
                {
                    // rus.TryGetValue(richTextBox1.Text, out result);
                    // richTextBox2.Text = result;
                   string inputString = richTextBox1.Text;
                   string  resultString = string.Join(" ", inputString.Split().Select(x => rus.ContainsKey(x) ? rus[x] : x));
                   richTextBox2.Text = resultString;
                }
Добавлено через 8 минут
Diamante, Всё работает спасибо, не туда впихнул
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2018, 21:58

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Отобразить Google переводчик на форме
Нужно сделать окно доспута к гугл переводчику с переводом рус-англ и англ-рус: 1)Какие ссылки...

Программа переводчик. Правильный метод чтения текстовых файлов
Добрый день Столкнулся с проблемой в программе в чтении текстовых файлов. Программа собственно...

Переводчик
using System; using System.Collections.Generic; using System.Linq; using System.Text; using...

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

Приложение переводчик
Здравствуйте, есть приложение, которое переводит текст с русского на англ. и обратно, есть словарь...

Приложение переводчик
Здравствуйте, есть приложение, переводящее текст с русского на английский и обратно, нужно сделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.