Russian Qt Forum
Ноябрь 22, 2024, 21:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: Как вывести русский текст в нужной кодировке на Linux  (Прочитано 23137 раз)
Vladimir
Крякер
****
Offline Offline

Сообщений: 305



Просмотр профиля
« : Декабрь 08, 2011, 12:39 »

Доброго дня) подскажите пожалуйста как в Linux установить программно русский текст в различных элементах: кнопках, статик тексте и т.д.
Код:
QStringList lst;
      lst << QObject::tr( "Общие" )
          << QObject::tr( "Карта" )
          << QObject::tr( "Палитра" );
Какую кодировку и как применить к тексту!
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Декабрь 08, 2011, 12:41 »

Ну, сколько же можно задавать один и тот же вопрос по несколько раз в неделю? Читай мою подпись или воспользуйся поиском.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Vladimir
Крякер
****
Offline Offline

Сообщений: 305



Просмотр профиля
« Ответ #2 : Декабрь 08, 2011, 12:48 »


Согласен, вопрос уже наверное приелся) нашел как..

Код:
QStringList lst;
      lst << QObject::trUtf8("Общие")
          << QObject::trUtf8("Карта")
          << QObject::trUtf8("Палитра")

Повторение - мать учения !!! =)))
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Декабрь 08, 2011, 12:50 »

Это не решение - это костыль.
Записан

Qt 5.11/4.8.7 (X11/Win)
Vladimir
Крякер
****
Offline Offline

Сообщений: 305



Просмотр профиля
« Ответ #4 : Декабрь 08, 2011, 12:56 »

Это не решение - это костыль.

В смысле?! Так работает, а что в этом методе хромого?))
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Декабрь 08, 2011, 12:57 »

В смысле?! Так работает, а что в этом методе хромого?))
Всё.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #6 : Декабрь 08, 2011, 13:03 »

В смысле?! Так работает, а что в этом методе хромого?))
В исходниках нет возможности указать кодировку.
Другой юзер отредактирует этот код в другом редакторе или в другой кодировке и всё - поплывёт твой русский.
Поэтому все строковые "неродные" константы в коде нужно прописывать на английском или в isoLatin1 в tr() и уже потом переводить на русский и какой ещё язык. И это должно быть правилом.
Записан

Qt 5.11/4.8.7 (X11/Win)
andrew.k
Гость
« Ответ #7 : Декабрь 08, 2011, 19:43 »

В смысле?! Так работает, а что в этом методе хромого?))
В исходниках нет возможности указать кодировку.
Другой юзер отредактирует этот код в другом редакторе или в другой кодировке и всё - поплывёт твой русский.
Поэтому все строковые "неродные" константы в коде нужно прописывать на английском или в isoLatin1 в tr() и уже потом переводить на русский и какой ещё язык. И это должно быть правилом.
Если править файл в его кодировке, то проблем не будет.
А если в выставлен кодек для си строк, то дважды не будет.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #8 : Декабрь 08, 2011, 19:52 »

Если править файл в его кодировке, то проблем не будет.
А если в выставлен кодек для си строк, то дважды не будет.
"в его кодировке" - эта инфа где-то прописывается? Нет, поэтому чушь несёшь.
Записан

Qt 5.11/4.8.7 (X11/Win)
andrew.k
Гость
« Ответ #9 : Декабрь 08, 2011, 20:53 »

Если править файл в его кодировке, то проблем не будет.
А если в выставлен кодек для си строк, то дважды не будет.
"в его кодировке" - эта инфа где-то прописывается? Нет, поэтому чушь несёшь.

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

у меня на работе все проекты в кои. и под виндой компилятся и проблем с русским нет. и tr нигде не юзатся. потому что никогда не нужно будет. проекты закрытые.
я не агитирую конечно, это просто в качестве исключения. я к тому, что иногда если нет необходимости можно и не заморачиваться.
зато я в коде пишу QString s = "блабла";
и этот код нормально компилится под виндой.
Записан
andrew.k
Гость
« Ответ #10 : Декабрь 08, 2011, 20:54 »

плюс современные редакторы практически со 100% вероятностью определяют кодировку файла.
Записан
thechicho
Гость
« Ответ #11 : Февраль 20, 2012, 19:37 »

andrew.k
если бы в мануале написали, перед тем как переводить через лингвист, сделайте сальто назад. они б сделали Веселый -зачем? - все по мануалу! как доктор прописал Веселый
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #12 : Февраль 21, 2012, 18:34 »

В смысле?! Так работает, а что в этом методе хромого?))

Никогда не пиши программы по принципу "раз работает, значит пойдёт". То что пытаешься сделать описано в 1) стандарте С++ 2) документации Qt. Правильный способ - использовать английский текст и переводить его через tr():

Код
C++ (Qt)
QStringList lst;
     lst << QObject::tr( "Common" )
         << QObject::tr( "Map" )
         << QObject::tr( "Palette" );
 
Записан
andrew.k
Гость
« Ответ #13 : Февраль 21, 2012, 19:22 »

Никогда не пиши программы по принципу "раз работает, значит пойдёт". То что пытаешься сделать описано в 1) стандарте С++ 2) документации Qt. Правильный способ - использовать английский текст и переводить его через tr():
Так и написано "Единственно правильный способ"?
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #14 : Февраль 21, 2012, 19:28 »

Никогда не пиши программы по принципу "раз работает, значит пойдёт". То что пытаешься сделать описано в 1) стандарте С++ 2) документации Qt. Правильный способ - использовать английский текст и переводить его через tr():
Так и написано "Единственно правильный способ"?

Правильный - да. Возможный - нет.
Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.116 секунд. Запросов: 23.