Сегодня решил написать об опыте русификации веб-интерфейса open source продукта от компании Esri – Geoportal Server. Решение опубликовать данную заметку возникло в связи с совсем нетривиальным процессом русификации. Общую информацию о Geoportal Server советую прочитать в статье моей коллеги. Так вот, если после установки этого продукта Вы решили, что стандартный интерфейс на английском языке не подходит, а требуется русская локализация, то это заметка как раз по теме.
Хочу также заметить, что нами уже проведена полная русификация интерфейса геопортала, обращайтесь за получением файла русификации. Мы предоставляем эту информацию на взаимовыгодной основе, в противном случае эта заметка вам в помощь.
Стандартный веб-интерфейс Geoportal Server выглядит следующим образом:
Локализация осуществляется путем замены английских слов на русские в файле gpt.properties, который в моем случае располагается по адресу: C:tomcatwebappsgeoportalWEB-INFclassesgptresources (я использую веб-сервер Apache Tomcat). Но если просто заменить русскими словами текст в данном файле, то на выходе получатся кракозябры.
Для решения этого вопроса потребовалось обратиться к гуру программирования. После непродолжительных поисков по их трудам, ответ был найден: «Для чтения файлов properties используются методы загрузки ресурсов, которые работают специфичным образом. Собственно для чтения используется метод Properties.load, который не использует file.encoding (там в исходниках жёстко указана кодировка ISO-8859-1), поэтому единственный способ указать русские буквы — использовать формат «uXXXX» и утилиту native2ascii.»
Теперь немного об утилите native2ascii. Она входит в составе JDK, т.е. обычного JRE (Java Runtime Environment) не хватит. Необходимо поставить JDK, где в директории bin можно проверить ее наличие. Утилита предназначена для преобразования исходных текстов к ASCII-виду. Она читает входной файл, используя указанную кодировку, а на выходе записывает символы в формате «uXXXX». Если запустить программу без параметров, то она не выведет подсказку по ключам, как это делают обычно остальные утилиты. Между тем этой утилите для правильной работы необходимо, как минимум, указать используемую кодировку (ключик -encoding). В нашем случае пример конвертации из UTF-8 выглядит следующим образом: native2ascii -encoding UTF-8 gpt.properties gpt_new.properties
Таким образом получаем следующую последовательность действий:
- Находим файл gpt.properties и заменяем необходимые англоязычные слова на русские (обратите внимание, чтобы кодировка была задана явно перед правкой текста, т.к. она нам потребуется при использовании утилиты native2ascii)
- Когда все слова заменены на русские, в командной строке запускаем программу native2ascii, где после ключа –encoding указываем кодировку файла gpt.properties. Путь к исходному файлу и новому задаем на свое усмотрение
- После получения нового файла gpt.properties все русские слова будут преобразованы к ASCII-виду. Например, слово Геопортал будет выглядеть так: u0413u0435u043eu043fu043eu0440u0442u0430u043b. Заменяем исходный файл gpt.properties новым.
Теперь страница нашего геопортала выглядит так: