По русификации интерфейса

Started by Дым, May 03, 2017, 05:18:26 AM

Previous topic - Next topic

Дым

Текущие условия: версия NetXMS - 2.0.8, СУБД - PostgreSQL, база NetXMS создана с локалью ru_RU в кодировке UTF-8, однако с русским беда.
1) При автосоздании метрик на интерфейсы имена метрикам изначально назначаются русские (Входящий/Исходящий трафик на <ifName>), при этом созданные таким манером метрики вместо имени имеют пустоту и в списке метрик отображаются как "no name" - приходится именовать по-английски после создания или заменять русские элементы имени на английские сразу при создании.
2) Похожая картина с сохранением преднастроенных графиков: предлагается называть их "<hostname>: данные истории", но при использовании кириллицы у созданных таким образом графиков в поле имени также пусто, а в списке инфопанелей они фигурируют как "без имени".
3) Вместо открытия инфопанели с ярлыком, в котором есть кириллица, выскакивает "Внутренняя ошибка: отсутствует адаптер для элемента панели" - да, практически, при всех попытках использовать кириллицу.
4) Выражение "по умолчанию" пишется БЕЗ дефиса, а не как в интерфейсе NetXMS. Хватает и иных ошибок - как орфографических, так и синтаксических, и стилистических, в связи с чем я бы посоучаствовал в локализации. Как присоединиться к процессу?

Alex Kirhenshtein

1 и 2) убедитесь, что сервер собран с поддержкой UNICODE (--with-unicode в configure). До ветки 2.1, по умолчанию сборка была не уникодная.

Я проверил у себя локально – всё хорошо (скриншот в аттаче)

❯ netxmsd -v
NetXMS Server Version 2.1-M3 Build 9008 (2.1-M3-13-g3d9a40b) (UNICODE)
NXCP: 4.48.1.8 (AES-256, Blowfish-256, IDEA, 3DES, AES-128, Blowfish-128)
Built with: Apple LLVM version 8.0.0 (clang-800.0.42.1)


База:

alk=# \l netxms
                             List of databases
  Name  | Owner  | Encoding |   Collate   |    Ctype    | Access privileges
--------+--------+----------+-------------+-------------+-------------------
netxms | netxms | UTF8     | en_US.UTF-8 | en_US.UTF-8 |



3) пришлите пожалуйста лог nxmc ($HOME/.nxmc/data/.metadata/.log)

4) мы сами не пользуемся русской локализацией, поэтому не заметили :)
Перевод лежит в файлах messages_ru.properties и bundle_ru.properties – отдельно для каждого компонента.

Исходники – https://git.netxms.org/public/netxms.git/tree/refs/heads/develop:/src/java/netxms-eclipse

Самый простой метод – прислать нам diff.

Важный момент – русский текст в файлах должны быть в таком формате:

category.Views=\u0412\u0438\u0434\u044b

Если туда прописывать уникод – Eclipse ломается (потому что в стандарте прописана кодировка ISO-8859-1).

Я рекомендую использовать какой-либо редактор (например http://essiembre.github.io/eclipse-rbe/).

Ручной путь:

❯ native2ascii -reverse UserManager/OSGI-INF/l10n/bundle_ru.properties
action.CertificateManager.label=Менеджер сертификатов
action.CertificateManager.tooltip=Открыть менеджер сертификатов
...

❯ native2ascii -reverse UserManager/OSGI-INF/l10n/bundle_ru.properties temp.properties

❯ vim temp.properties

❯ native2ascii temp.properties
action.CertificateManager.label=\u041c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432
action.CertificateManager.tooltip=\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432
...

❯ native2ascii temp.properties UserManager/OSGI-INF/l10n/bundle_ru.properties


Дым

#2
По п.п. 1-3: рекомпиляция пакета с опцией --with-unicode, добавленной в секцию %configure спек-файла, ожидаемого результата не принесла - переустановленный пакет всё равно показывал (NON-UNICODE). Оказалось, помимо --with-unicode следовало ещё и --enable-unicode сделать; после пересборки русский пока работает без нареканий, спасибо.
По п. 4: буду разбираться.
PS: Логи nxmc всё ещё актуальны, или не нужно высылать?