Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Переключение интерфейса моей GTK программы на лету  (Прочитано 949 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн qub

  • Автор темы
  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Здравствуйте,

Если посмотреть на такую программу как Virtual Box или на аудио плеер Sayonara, то у них есть возможность менять язык интерфейса на лету, не перезапуская программу, т.е. выбров соответствующий язык, русский или англиский, из настроек программы. Обе программы написаны с использованием библиютеки Qt. Интересует такая же реализация переключения языка интерфейса программы с использованием библиотеки GTK. Поиск в интернете выдает страницы с иформацией по инструменту GNU gettext, который позволяет менять язык интерфейса только, как я понял, после перезапуска программы, т.е. закрытия и повторного ее открытия. Прошу вас поделиться простым примером или ссылкой на страницу, где описана данная возможность.

Оффлайн Grigory Smirnov

  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
Наверное все слова заключены в переменные/файл перевода и при переключении идет команда использовать другие?

Оффлайн qub

  • Автор темы
  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Наверное все слова заключены в переменные/файл перевода и при переключении идет команда использовать другие?

Под переменными вы имеете в виду использование строковых массивов, в которых содержится перевод виджетов главного окна программы, и при выборе одного из языков, использовать соответствующие массивы со строками для изменения названия виджетов?

Под файлами вы имеете в виду, например xml - файлы, в которых содержится текст перевода виджетов, и взависемости от выбранного языка подгружать, тот или иной файл перевода?

Можете подсказать примеры таких GTK программ с открытым кодом, использующие подобные механизмы?
« Последнее редактирование: 12 Октября 2013, 20:59:47 от qub »

Оффлайн Grigory Smirnov

  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
Зачем так сложно? Да, примерно как вы и описали. А программ я таких не знаю - есть по-любому, просто я не осведомлен.

Оффлайн qub

  • Автор темы
  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Зачем так сложно? Да, примерно как вы и описали. А программ я таких не знаю - есть по-любому, просто я не осведомлен.

Как проще всего можно организовать и реализовать храненее перевода для переменных и для файлов? Можете привести пару примеров?

Оффлайн Grigory Smirnov

  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
qub, sql таблица, xml, txt...

Оффлайн qub

  • Автор темы
  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
qub, sql таблица, xml, txt...


Спасибо за наводку. Буду искать GTK приложения с открытым кодом, которые используют данные решения.

Оффлайн quiet_readonly

  • Участник
  • *
  • Сообщений: 133
    • Просмотр профиля
Вообще-то тут проблема не в способе хранения переводов, а в обновлении View, когда приложение построено по принципам Model-View-Controller. Для GTK gettext уже делает всё, связанное с получением перевода строки - но надо ещё обновить переводы для всех элементов на экране, и это скорее всего придётся делать вручную. Условно говоря, при изменении языка рассылается пользовательское событие и все виджеты должны уметь обрабатывать это событие, обновляя видимые строки.

 

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