Одним из простых вариантов будет воссоздание пользовательского интерфейса с нуля - без перезапуска приложения.
Например, вы можете скрыть старую оболочку, а затем показать новую с тем же состоянием, но с другим языком.
Если это тоже не принято ... Я размышляю здесь ... возможно, вы могли бы сохранить ключ локализации для каждого виджета с помощью Widget.setData (String, Object), а затем при переключении языков обходить дерево виджетов с помощью Composite. getChildren () - начиная с оболочки - и используйте Widget.getData (String) для получения ключей ресурсов для каждого виджета. Однако с одним виджетом может быть связано несколько локализуемых строк.