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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Локализация pop-up меню у QPlainTextEdit  (Прочитано 8723 раз)
v1ctor
Гость
« : Сентябрь 05, 2011, 14:30 »

Подскажите, пожалуйста, как локализовать?

Pop-up меню QLineEdit перевел так:

Код:
<context>
    <name>QLineEdit</name>
    <message>
        <source>Cu&amp;t</source>
        <translation>切り取り(&amp;T)</translation>
    </message>
    <message>
        <source>&amp;Copy</source>
        <translation>コピー(&amp;C)</translation>
    </message>
    <message>
        <source>&amp;Redo</source>
        <translation>やり直す(&amp;R)</translation>
    </message>
    <message>
        <source>&amp;Undo</source>
        <translation>元に戻す(&amp;U)</translation>
    </message>
    <message>
        <source>&amp;Paste</source>
        <translation>貼り付け(&amp;P)</translation>
    </message>
    <message>
        <source>Delete</source>
        <translation>削除</translation>
    </message>
    <message>
        <source>Select All</source>
        <translation>すべてを選択</translation>
    </message>
</context>


все работает. А вот для QPlainTextEdit - не получается. И примера найти не могу...

Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Сентябрь 05, 2011, 16:15 »

по-моему достаточно просто загрузить файл переводов Qt в приложение - самому не нужно этого прописывать. например это будет QTDIR\translations\qt_ja.qm для японского языка.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
v1ctor
Гость
« Ответ #2 : Сентябрь 05, 2011, 17:00 »

Собственно я так и пытаюсь делать.
А где то можно взять готовый файл .qm с переводами? В том что я взял в директории Qt отсутствует перевод QPlainTextEdit
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Сентябрь 05, 2011, 18:43 »

>> В том что я взял в директории Qt отсутствует перевод QPlainTextEdit
ну возьми да переведи сам. (в ts-файле)
Записан

Юра.
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Сентябрь 05, 2011, 19:33 »

там сами строки для QPlainTextEdit отсутствуют, а не только их перевод (как собственно и для QTextEdit). скорее всего там используются стандартные из подлежащей ОС.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #5 : Сентябрь 06, 2011, 06:03 »

В файле %QTDIR%\src\gui\text\qtextcontrol.cpp
есть функция
QMenu *QTextControl::createStandardContextMenu(const QPointF &pos, QWidget *parent)
в ней создаётся контекстное меню для текстовых виджетов, все необходимые tr-ки присутсвуют.
Следовательно переводите контекст QTextControl
Записан

Юра.
v1ctor
Гость
« Ответ #6 : Сентябрь 06, 2011, 09:22 »

>> В том что я взял в директории Qt отсутствует перевод QPlainTextEdit
ну возьми да переведи сам. (в ts-файле)

Я и пытаюсь сам перевести.  Улыбающийся

там сами строки для QPlainTextEdit отсутствуют, а не только их перевод (как собственно и для QTextEdit). скорее всего там используются стандартные из подлежащей ОС.

Да, в этом то и проблема.

В файле %QTDIR%\src\gui\text\qtextcontrol.cpp
есть функция
QMenu *QTextControl::createStandardContextMenu(const QPointF &pos, QWidget *parent)
в ней создаётся контекстное меню для текстовых виджетов, все необходимые tr-ки присутсвуют.
Следовательно переводите контекст QTextControl

Спасибо! Сейчас попробую. Отпишусь о результатах.
Записан
v1ctor
Гость
« Ответ #7 : Сентябрь 06, 2011, 10:32 »

QPlainTextEdit не наследует QTextControl. Грустный

А вобще разработчики Qt в исходниках ясно написали: хотите юзать не стандартное контекстное меню у QPlainTextEdit - реализуйте сами.

Спасибо всем.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #8 : Сентябрь 06, 2011, 19:43 »

>>QPlainTextEdit не наследует QTextControl.
Я об этом и не говорил, я говорил, что QPlainTextEdit пользуется соответствующей функцией, чтобы создать меню.
Из асистента/исходников:
Цитировать
void QPlainTextEdit::contextMenuEvent(QContextMenuEvent *event)
Shows the standard context menu created with createStandardContextMenu().
...
смотрим QPlainTextEdit::createStandardContextMenu:
Код
C++ (Qt)
QMenu *QPlainTextEdit::createStandardContextMenu()
{
   Q_D(QPlainTextEdit);
   return d->control->createStandardContextMenu(QPointF(), this);
}
Где d->control - QTextControl

>> хотите юзать не стандартное контекстное меню у QPlainTextEdit
А при чём здесь не стандартное, речь ведь шла о переводе пунктов меню
« Последнее редактирование: Сентябрь 06, 2011, 19:48 от lit-uriy » Записан

Юра.
v1ctor
Гость
« Ответ #9 : Сентябрь 07, 2011, 16:50 »

Если все так как вы сказали то это очень странно. Проблему это не фиксит  Грустный
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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