crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Локализация QCalendarWidget в QDateTimeEdit
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
proton Дата 14.12.2008, 21:04
 
Цитата(Litkevich Yuriy @ 14.12.2008, 18:37) *
proton, что за ОСь у тебя, и версия Qt?

Gentoo, 4.4.2

Цитата(molchanoviv @ 14.12.2008, 18:57) *
Все таки попробуй запустить с флагом LOCALE=ru_RU.UTF8

Наверно LC_ALL="ru_RU.UTF-8"?
Запускал, тот же эффект
molchanoviv Дата 14.12.2008, 18:57
 
Цитата(Litkevich Yuriy @ 14.12.2008, 17:48) *
Цитата(molchanoviv @ 14.12.2008, 20:26) *
Так и у меня в сусе на русском.
и всплывающий календарь?

Да.

Цитата(proton @ 14.12.2008, 18:13) *
Цитата(molchanoviv @ 14.12.2008, 17:26) *
Так и у меня в сусе на русском. Потому и говорю чтоб покопался с системными настройками. А в винловозе эта фигня находится в панели управления/язык и региональные настройки(или что-то в этом роде).

У меня на английском =(
Хотя локаль русская, да и в центре кдешном выбран Русский

Все таки попробуй запустить с флагом LOCALE=ru_RU.UTF8
Litkevich Yuriy Дата 14.12.2008, 18:37
  proton, что за ОСь у тебя, и версия Qt?

Настройки врятли помогут, ведь сам виджет (автономно) QCalendarWidget имеет локализацию.
proton Дата 14.12.2008, 18:13
 
Цитата(molchanoviv @ 14.12.2008, 17:26) *
Так и у меня в сусе на русском. Потому и говорю чтоб покопался с системными настройками. А в винловозе эта фигня находится в панели управления/язык и региональные настройки(или что-то в этом роде).

У меня на английском =(
Хотя локаль русская, да и в центре кдешном выбран Русский
Litkevich Yuriy Дата 14.12.2008, 17:48
 
Цитата(molchanoviv @ 14.12.2008, 20:26) *
Так и у меня в сусе на русском.
и всплывающий календарь?
molchanoviv Дата 14.12.2008, 17:26
  Так и у меня в сусе на русском. Потому и говорю чтоб покопался с системными настройками. А в винловозе эта фигня находится в панели управления/язык и региональные настройки(или что-то в этом роде).
Litkevich Yuriy Дата 14.12.2008, 17:16
 
Цитата(molchanoviv @ 14.12.2008, 19:38) *
Я так подозреваю что это правится либо в контрол-центре КДЕ либо системной командой locale
а в виндовозе?

proton, проведи еще один эксперимент, открой в дизайнере этот файл:
<ui version="4.0" >
<class>Form</class>
<widget class="QWidget" name="Form" >
  <property name="geometry" >
   <rect>
    <x>0</x>
    <y>0</y>
    <width>218</width>
    <height>192</height>
   </rect>
  </property>
  <property name="windowTitle" >
   <string>Form</string>
  </property>
  <layout class="QVBoxLayout" >
   <item>
    <widget class="QCalendarWidget" name="calendarWidget" />
   </item>
   <item>
    <widget class="QDateTimeEdit" name="dateTimeEdit" >
     <property name="calendarPopup" >
      <bool>true</bool>
     </property>
    </widget>
   </item>
  </layout>
</widget>
<resources/>
<connections/>
</ui>

у меня, в виндовозе, при предпросмотре формы в Дизайнере всегда отображается на русском.
molchanoviv Дата 14.12.2008, 16:38
  Я так подозреваю что это правится либо в контрол-центре КДЕ либо системной командой locale
Litkevich Yuriy Дата 14.12.2008, 16:08
 
Цитата(proton @ 14.12.2008, 18:35) *
qttr->load(QString("qt_") + locale); // загрузка файла qt_*.qm
такая форма записи работает только в виндовозе, т.к. не указан путь.

Интересно, скомпилил с использованием Qt 4.4.3 qm-файл переименовал до не узноваемости (и тот, что в каталоге с бинарем и тот, что в каталоге translations) все равно все переведено :huh:
Значит перевод еще откуда-то подхыватывается, может из системы (локализация дней недели и месяцев)

закоментировал в своем пример кусок кода с загрузкой переводчика, все равно виджеты локализованые получаются!
proton Дата 14.12.2008, 15:35
 
Цитата(Litkevich Yuriy @ 14.12.2008, 15:25) *
proton, где у тебя лежит файл *.qm ? (полный путь напиши) и покажи как ты его подгружаешь?

#include <QApplication>
#include <QCalendarWidget>
#include <QDateTimeEdit>
#include <QVBoxLayout>
#include <QTranslator>
#include <QLocale>
#include <QString>

int main(int argc, char **argv)
{
    QApplication     app(argc, argv);
    QTranslator    *qttr;        // переводчик программы
    QCalendarWidget *clnd;
    QDateTimeEdit *dte;
    QVBoxLayout  *lay;
    QWidget wgt;

     // Устанавливаем превод библиотек Qt
    QString locale = QLocale::system().name();    // запрос языка (например: "ru")
    qttr = new QTranslator;
    qttr->load(QString("qt_") + locale); // загрузка файла qt_*.qm
    app.installTranslator(qttr);         // устанока переводчика  

    clnd = new QCalendarWidget();
    dte = new QDateTimeEdit();
    lay = new QVBoxLayout();
    dte->setCalendarPopup(true);
    lay->addWidget(clnd);
    lay->addWidget(dte);
    wgt.setLayout(lay);
    wgt.setLocale(QLocale(QLocale::Russian, QLocale::RussianFederation));\
    wgt.show();
    return app.exec();
}


путь к .qm - /usr/share/qt4/translations/qt_ru.qm
раньше подгружал через qttr->load(QString("/usr/share/qt4/translations/qt_ru")); - эффект тот тот же
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 10:12