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

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

23.03.2013, 21:36. Показов 4598. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru