С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
 Аватар для akk
44 / 44 / 17
Регистрация: 28.01.2012
Сообщений: 341

Консольное приложение на нескольких языках

23.03.2013, 21:36. Показов 4569. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно, интересно, как можно сделать свое приложение мультиязычным?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.03.2013, 21:36
Ответы с готовыми решениями:

консольное приложение (при запуске приложение открывалось на весь экран)
Как сделать, чтобы при запуске приложение открывалось на весь экран?

Написание программ на нескольких языках программирования
Написание программ на нескольких языках программирования - слышал, что так можно делать. А как? (Просто для интереса спросил.)

Как писать программу на нескольких языках программирования?
Что за прикол? Я в Википедии смотрю там разные популярные проги, а там написано по несколько языков программирования на которых они...

20
CEO SOVAZ Corp.
 Аватар для sovaz1997
386 / 232 / 51
Регистрация: 17.12.2011
Сообщений: 822
Записей в блоге: 1
23.03.2013, 21:52
Дай код твоего приложения (если оно у тебя есть)
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
23.03.2013, 22:07
akk, написать длл.
Цитата Сообщение от akk Посмотреть сообщение
мультиязычным?
Как это понять?
1
 Аватар для akk
44 / 44 / 17
Регистрация: 28.01.2012
Сообщений: 341
23.03.2013, 22:15  [ТС]
Цитата Сообщение от go Посмотреть сообщение
Как это понять?
При запуске приложение спрашивает на каком языке взаимодействовать с пользователем, т е к примеру на русском введите 1 или на английском введите 2.
0
CEO SOVAZ Corp.
 Аватар для sovaz1997
386 / 232 / 51
Регистрация: 17.12.2011
Сообщений: 822
Записей в блоге: 1
23.03.2013, 22:21
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
#include <iostream>
#include <string>
 
using namespace std;
 
int main() {
    setlocale(0,""); //русский язык в консоли
    string a;
    int n = 0;
    cout << "Выберите язык (0 - Русский) (1 - Английский): ";
    cin >> n;
    if(n == 0) {
        cout << "Введите ваше имя: ";
        cin >> a;
        cout << "Привет, " << a;
    }
 
    else if(n == 1) {
        cout << "Enter your name: ";
        cin >> a;
        cout << "Hello, " << a;
    }
 
    else {
        return 0;
    }
}
Как-то так
1
 Аватар для akk
44 / 44 / 17
Регистрация: 28.01.2012
Сообщений: 341
23.03.2013, 22:28  [ТС]
Спасибо, но так делать не вариант, это для каждого языка, свою ветку вести надо, если бы как то через файл сделать.
0
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
23.03.2013, 22:39
везде пихаю Qt))) тут он как нельзя подойдёт - есть функция tr в которую передаются выражения требующие перевода, потом нужно подключить файлы с переводами этих выражений и можно переключать языки
2
 Аватар для akk
44 / 44 / 17
Регистрация: 28.01.2012
Сообщений: 341
23.03.2013, 22:43  [ТС]
А без qt ни как?
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
23.03.2013, 23:05
сам создай файл, сам его и читай
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
23.03.2013, 23:06
Можно в текстовых файлах хранить языки. В коде будут переменные, считывающие слова из определенного файла.

Добавлено через 22 секунды

Не по теме:

поздно)

1
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
23.03.2013, 23:09
как я понял ты хочешь иметь txt файлы с фразами на разных языках?
нужен контейнер в который загружаются строки, соответственно при выборе языка - выбирается файл строки которого будут загружаться в контейнер, а в необходимых местах в программе выводятся ячейки контейнера
2
 Аватар для akk
44 / 44 / 17
Регистрация: 28.01.2012
Сообщений: 341
23.03.2013, 23:12  [ТС]
BumerangSP, Кудаив, можно пример кода, пожалуйста.
0
CEO SOVAZ Corp.
 Аватар для sovaz1997
386 / 232 / 51
Регистрация: 17.12.2011
Сообщений: 822
Записей в блоге: 1
23.03.2013, 23:25
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
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
 
using namespace std;
 
int main() {
    setlocale(0, ""); //русский язык в консоли
 
    string str;
    vector<string> v;
 
    int n = 0;
    cout << "Введите язык (1 - русский; 2 - английский): ";
    cin >> n;
 
    if(n == 1) {
        ifstream rus("Rus.txt");
        while(!rus.eof()) {
            getline(rus, str);
            v.push_back(str);
        }
    }
 
    if(n == 2) {
        ifstream en("En.txt");
        while(!en.eof()) {
            getline(en, str);
            v.push_back(str);
        }
    }
 
    for(int i = 0; i < v.size(); ++i) {
        cout << endl << v[i];
    }
}
Надо создать файлы "Rus.txt" и "En.txt" и прописать в них нужные строки. Думаю, реализация ясна
1
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
23.03.2013, 23:29
Выше уже писали про файлы, расжую по-подробней.
Я видел как люди делают так:
есть функция, определяющая дефолтный язык в ОС, назовем ее getLanguage(). Есть файлы, например ru.txt и en.txt, которые содержат нечто подобное
ru.txt
Code
1
hello: привет
en.txt
Code
1
hello: hello
в зависимости от того, что вернула getLanguage() открывается тот или иной файл, потом они парсятся (если файлы держать в каком-нибудь xml или json, то можно взять готовый парсер) и создаются строки
C++
1
std::string hello = getString ("hello"); // getString() функция абстрактного парсера
ну а потом просто
C++
1
std::cout << hello;
2
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
23.03.2013, 23:32
sovaz1997, тогда уж так как-то:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    int n = 0;
    const char* lng;
    cout << "Ââåäèòå ÿçûê (1 - ðóññêèé; 2 - àíãëèéñêèé): ";
    cin >> n;
    switch(n)
    {
    case 1: lng = "Rus.txt";
      break;
     case 2: lng = "Eng.txt";
       break;
     default: lng = "Eng.txt";    
     }
     
    ifstream lang(lng);    
   while(!lang.eof()) {
     getline(lang, str);
   v.push_back(str);
   }
2
 Аватар для akk
44 / 44 / 17
Регистрация: 28.01.2012
Сообщений: 341
23.03.2013, 23:37  [ТС]
Цитата Сообщение от BumerangSP Посмотреть сообщение
v.push_back(str);
Ну это тоже если в файле несколько десятков строк, а так, я понял, просто весь файл в память загоняется.
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
23.03.2013, 23:45
akk, можно сказать и так.
0
 Аватар для akk
44 / 44 / 17
Регистрация: 28.01.2012
Сообщений: 341
23.03.2013, 23:53  [ТС]
BumerangSP, а как тогда локализуются другие программы, например NotePad++, слова подгружаются через XML?
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
23.03.2013, 23:57
akk, может, как Kastaneda описал, может, через хеш-функцию какую-нибудь
1
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
24.03.2013, 09:35
akk, посмотрите в сторону gettext, boost::locale.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.03.2013, 09:35
Помогаю со студенческими работами здесь

Консольное приложение
как можно поставить обработчики на нажатие клавишь ctrl+c и того типа

Консольное приложение
хочу сделдать обычное консольное приложение в DEV c++ 5.11 (лицинзионный) вылезает вот это написал сокращенно так как форум не...

Консольное приложение
Приветствую. Решил вспомнить азы программирования на C++, путем создания простенькой игры в консоли. Первым шагом было вывести игровое поле...

Консольное приложение на С++
народ помогите плиз решить проблему написал игру под консоль. типа змейки как добавить функцию типа рестарт (если проиграл или выиграл)...

консольное приложение
Помогите разобраться с задачкой! Написать на С++ код консольного приложения, реализующий в главной функции ввод с клавиатуры в...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru