Локализация плагинов Eclipse с помощью стандартного мастера локализации

в 4:02, , рубрики: eclipse, localization, метки: ,

Недавно я начал работать над Java-проектом, основанным на платформе Eclipse RCP и PDE. Для локализации проекта я использовал довольно удобный стандартный мастер локализации. Следует заметить, что мастеров существует два: для локализации java-кода и для локализации файла plugin.xml, куда входят названия меню, диалогов и прочее. Я рассмотрю оба.

Локализация кода

— выбираем любой класс, пакет или всю папку src

image

— выбираем в главном меню «Исходный код» — «Экспортировать строки» или жмем Alt+Shift+S и выбираем в контекстном меню «Экспортировать строки»

image

— выбираем класс двойным кликом или жмем кнопку «Экспортировать»

image

— далее в диалоге экспорта выделяем строки, которые не требуется локализовывать (с Ctrl или Shift можно выделить несколько строк), и справа нажимаем кнопку «Игнорировать», либо можно снять галочку слева, превратив ее в крестик.

image

— также желательно иметь один класс доступа, в который и сохранять все локализации. Первоначально класс нужно сгенерировать, а в дальнейшем его можно использовать для последующих локализаций, вводя его в специальном диалоге или выбирая из выпадающего списка.

image

— после отметки не требующих локализации строк и выбора класса доступа нажимаем кнопку «Далее». Диалог экспорта покажет diff изменений. Как видно, локализуемые строки заменяются на вызовы статической переменной из класса Messages, куда подставляются значения из properties-файла, а к не требующим локализации строкам в коде добавляется комментарий вида //$NON-NLS-1$, где цифра указывает номер фрагмента, не подлежащий локализации (т.к. их может быть несколько).

image

— жмем «Готово» и класс локализован, переходим к следующему.

Существует вероятность, что класс не будет локализован правильно, если в одной строке встретится требующий и не требующий локализации фрагмент. Для проверки этого закройте диалог экспорта полностью и откройте заново список требующих локализации классов. Правильно локализованные классы исчезнут из списка, а в оставшихся нужно поправить индексы в комментариях $NON-NLS — они должны начинаться с 1 в порядке возрастания и соответствовать количеству не требующих локализации фрагментов. Поправить это лучше, используя редактор кода Eclipse.

image

После завершения локализации кода нужно скопировать файл messages.properties в messages_ru.properties и перевести все строки на русский, он будет автоматически включен в дистрибутив.

Локализация plugin.xml

— выбираем файл plugin.xml
— нажимаем правую кнопку мыши и выбираем в контекстном меню «Инструменты PDE» — «Экспортировать строки»

image

— в появившемся диалоге снимаем галочку у строк, не требующих локализации

image

— нажимаем «Далее», смотрим diff

image

— жмем «Готово», копируем bundle.properties в bundle_ru.properties, переводим строки.

Нужно также включить bundle_ru.properties в build.properties, чтобы локализация попала в дистрибутив.

P.S. К сожалению, я не смог локализовать стандартные диалоги-мастера Search, Import, Export. Кто знает, как это сделать, напишите мне в личную почту.

Автор: andrew_answer


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js