SWT плавное изменение языка - PullRequest
1 голос
/ 19 июня 2011

У меня есть SWT-приложение, которое на данный момент довольно сложное. И я хочу, чтобы приложение могло переключать языки интерфейса без перезагрузки. Каков наилучший способ сделать это?

Ответы [ 2 ]

2 голосов
/ 19 июня 2011

Control API (который является суперклассом для всех компонентов SWT) имеет метод redraw (), который, я полагаю, снова вызывает метод создания содержимого, и должен предоставить результат, который вы ищете.

РЕДАКТИРОВАТЬ: я только что проверил это, сделав кнопку и устанавливая ее текст в случайное число после каждого нажатия, и это работает без каких-либо эстетических побочных эффектов.

0 голосов
/ 21 июня 2011

Типичное решение состоит из трех частей:

  • языковые файлы
  • статический текст для Controls
  • динамический текст.

Языковые файлы - это просто обычные файлы свойств Java - см. Пакет java.text. Когда вы меняете язык, вы просто открываете новую локаль.

Статический текст для элементов управления - например, Кнопка и метки - часто обрабатываются путем привязки ключа к каждому элементу управления, который должен иметь возможность менять язык. Когда вы хотите изменить язык, вы рекурсивно просматриваете элементы управления, ищите новый текст в текущей локали и устанавливаете новое значение ...

Динамический текст ... все остальное ... Обычно это обрабатывается с использованием строки формата - см. String.format (...) - снова извлекается из текущей локали.

И, конечно, существуют другие вещи, которые могут зависеть от текущего языка - например, значки, изображения, медиаклипы и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...