4 / 4 / 2
Регистрация: 17.10.2012
Сообщений: 176
|
|
1 | |
Двуязычие приложения11.05.2013, 14:19. Показов 1391. Ответов 16
Метки нет (Все метки)
Есть собственно С++ код работает все в консоли
Не пойму как сделать что бы пользователь мог выбрать на каком языке будет отображаться текст программы на русском или на английском.. Выбор между ними, как создавать код, какие файлы применять!
0
|
11.05.2013, 14:19 | |
Ответы с готовыми решениями:
16
Сворачивание и разворачивание приложения при обновлении || установка иконки приложения Установить для приложения текущую директорию, отличную от директории приложения Запустить параллельного приложения / Запуск приложения в новом консольном окне Windows sockets приложения с сокетами, написание приложения сервер-клиент |
11.05.2013, 14:29 | 2 |
flasher167,
C++ #include <iostream> #include <string> using namespace std; int main() { string language; cout << "Выберите язык: ru en ch:\n" << endl; cin >> language; if ( language == "ru") cout << "Выбран русский язык" << endl; else if ( language == "en") cout << "Выбран английский язык" << endl; else if ( language == "ch") cout << "Выбран китайский язык" << endl; else cout << "Вы будете гореть в аду :)" << endl; return 0; }
0
|
4 / 4 / 2
Регистрация: 17.10.2012
Сообщений: 176
|
|
11.05.2013, 14:36 [ТС] | 3 |
и когда я выберу язык английский то весь текст который есть в коде поменяется на английский?
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
11.05.2013, 14:49 | 4 | |||||
Нет конечно. Чтоб текст был английским, его надо и вывести по-английски.
0
|
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|
11.05.2013, 14:52 | 5 |
Смотрите, как это сделано в Qt:
1. Любая переводимая строка оборачивается в вызов глобальной функции: tr("Hello"). 2. Эта функция возвращает переведённую строку с учётом глобального установленного языка (или исходную, если не получилось перевести). 3. Перед началом работы программа считывает специальные файлики с переводами. В результате создаётся и устанавливается какой-то глобальный map<string, string> для каждого языка. 4. Есть специальная статическая приблуда, которая пробегается по всем исходникам, выдирает все вызовы tr() и позволяет удобно создавать файлики с переводами. Естессно, есть ещё вагон других тонкостей.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
11.05.2013, 14:53 | 6 |
Можно полностью продублировать вывод, можно выводить только переменные, а в зависимости от языка подгружать их из файла, из ресурсов приложения, из ресурсной библиотеки, или каждый раз запрашивать строку в библиотечной функции.
0
|
11.05.2013, 14:53 | 7 |
flasher167,
C++ #include <iostream> #include <string> using namespace std; int main() { string language; cout << "Выберите язык: ru en ch:\n" << endl; cin >> language; if ( language == "ru") { // здесь русский код } else if ( language == "en") { // здесь английский код } else if ( language == "ch") { // здесь китайский код } else { cout << "Моя твоя не понимать..." << endl; } return 0; }
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
11.05.2013, 14:55 | 8 |
Можно передавать строку в другую программу, или в статическую библиотеку на перевод, передавая язык параметром.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
11.05.2013, 15:01 | 10 |
Согласен. Переврав фактический тип на xml в utf8 без BOM с отрезанной декларацией и бессмысленно-кириллическими тегами.
0
|
4 / 4 / 2
Регистрация: 17.10.2012
Сообщений: 176
|
|
11.05.2013, 15:02 [ТС] | 11 |
у меня 800 строк кода...
и все пока что на русском везде писать строки по английском .... нельзя как то это автономно что ли сделать?
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
11.05.2013, 15:05 | 12 |
0
|
4 / 4 / 2
Регистрация: 17.10.2012
Сообщений: 176
|
||||||
11.05.2013, 15:11 [ТС] | 13 | |||||
ну мне сказали можно через массив как-то вызывать файл eng.txt или rus.txt и тогда будет все меня русское или английское
но я не могу понять... ничего из этого.. что то по проще типо Hello worda
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
11.05.2013, 15:25 | 14 |
Текстовые файлы не вызываются, надо грузить данные в переменные.
Добавлено через 57 секунд ты уж определись: по проще, или зашкаливающе сложно.
0
|
4 / 4 / 2
Регистрация: 17.10.2012
Сообщений: 176
|
|
11.05.2013, 15:26 [ТС] | 15 |
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
11.05.2013, 15:32 | 16 | |||||
0
|
4 / 4 / 2
Регистрация: 17.10.2012
Сообщений: 176
|
|
11.05.2013, 15:45 [ТС] | 17 |
не понятно....
у меня очень много прототипов функций... как сними то работать.. вы все описали в главной функции... и из за этого ничего не понятно
0
|
11.05.2013, 15:45 | |
11.05.2013, 15:45 | |
Помогаю со студенческими работами здесь
17
Не обновляются приложения на Смарт тв и приложения на смартфоне (Роутер d-link 300nru) Подскажите, как скрыть окно приложения из Диспетчер задач -> Приложения? Как использовать форму заполнения заявки одного приложения во views.py и templates другого приложения? Разработка web-приложения, приложения под ОС Android,Windows Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |