Локализация интерфейса

Started by kozlov_ao, May 10, 2013, 04:57:28 PM

Previous topic - Next topic

kozlov_ao

Приветствую!
Вопрос ну совсем не обычный :)
У заказчика появилось требование - интерфейс системы на русском языке... интересует именно WEB интерфейс. Реально ли как-то осуществить перевод?
Мы готовы сделать это сами, но нужен пинок в нужном направлении...

Victor Kirhenshtein

Работа по локализации начата вообщем-то, надо продолжать :) Локализация для десктоп и веб интерфейсов общая. Уже сейчас веб можно переключить на русский, добавив ?lang=ru к URL'у. На русском правда будет только несколько пунктов меню. Самый правильный вариант думаю будет такой - я подготовлю новые message-файлы, и пришлю вам для перевода. На форуме есть ветка, посвященная локализации консоли: https://www.netxms.org/forum/general/about-the-language/ .

kozlov_ao


kozlov_ao

Нашел это: https://www.netxms.org/forum/general/about-the-language/?action=dlattach;attach=863
Можно их переводить? или будут другие сообщения?
Еще кто-то перевод делает на русский, чтобы с ним договориться....

Victor Kirhenshtein

С тех пор сообщения менялись, я лучше соберу новый архив. Был человек, который начал перевод на русский, но от него давно ничего не слышно...

glebofff

Я тоже готов принять участие.

kozlov_ao

Ок, как появится архив - переведем ))
2glebofff: договоримся о последовательности и очередности...

kozlov_ao


Victor Kirhenshtein

Вот сижу, занимаюсь подготовкой. Для затравки можете перевести сообщения он ошибках из клиентской библиотеки:

      "Request completed successfully",
      "Component locked",
      "Access denied",
      "Invalid request",
      "Request timed out",
      "Request is out of state",
      "Database failure",
      "Invalid object ID",
      "Object already exist",
      "Communication failure",
      "System failure",
      "Invalid user ID",
      "Invalid argument",
      "Duplicate DCI",
      "Invalid DCI ID",
      "Out of memory",
      "Input/Output error",
      "Incompatible operation",
      "Object creation failed",
      "Loop in object relationship detected",
      "Invalid object name",
      "Invalid alarm ID",
      "Invalid action ID",
      "Operation in progress",
      "Copy operation failed for one or more DCI(s)",
      "Invalid or unknown event code",
      "No interfaces suitable for sending magic packet",
      "No MAC address on interface",
      "Command not implemented",
      "Invalid trap configuration record ID",
      "Requested data collection item is not supported by agent",
      "Client and server versions mismatch",
      "Error parsing package information file",
      "Package with specified properties already installed on server",
      "Package file already exist on server",
      "Server resource busy",
      "Invalid package ID",
      "Invalid IP address",
      "Action is used in event processing policy",
      "Variable not found",
      "Server uses incompatible version of communication protocol",
      "Address already in use",
      "Unable to select cipher",
      "Invalid public key",
      "Invalid session key",
      "Encryption is not supported by peer",
      "Server internal error",
      "Execution of external command failed",
      "Invalid object tool ID",
      "SNMP protocol error",
      "Incorrect regular expression",
      "Parameter is not supported by agent",
      "File I/O operation failed",
      "MIB file is corrupted",
      "File transfer operation already in progress",
      "Invalid job ID",
      "Invalid script ID",
      "Invalid script name",
      "Unknown map name",
      "Invalid map ID",
      "Account disabled",
      "No more grace logins",
      "Server connection broken",
      "Invalid agent configuration ID",
      "Server has lost connection with backend database",
      "Alarm is still open in helpdesk system",
      "Alarm is not in \"outstanding\" state",
      "DCI data source is not a push agent",
      "Error parsing configuration import file",
      "Configuration cannot be imported because of validation errors",
      "Invalid graph ID",
      "Local cryptographic provider failure",
      "Unsupported authentication type",
      "Bad certificate",
      "Invalid certificate ID",
      "SNMP failure",
      "Node has no support for layer 2 topology discovery",
      "Invalid situation ID",
      "Named instance not found",
      "Invalid event ID",
      "Operation cannot be completed due to agent error",
      "Unknown variable",
      "Requested resource not available",
      "Job cannot be cancelled",
      "Invalid policy ID",
      "Unknown log name",
      "Invalid log handle",
      "New password is too weak",
      "Password was used before",
      "Invalid session handle",
      "Node already is a member of a cluster",
      "Job cannot be put on hold",
      "Job on hold cannot be resumed",
      "Zone ID is already in use",
      "Invalid zone ID",
      "Cannot delete non-empty zone object",
      "No physical component data",
      "Invalid alarm note ID",
      "Encryption error",
      "Invalid mapping table ID",
      "No software package data",
      "Invalid DCI summary table ID",
      "User is logged in",
      "XML parse error",
      "High query cost",
      "License violation",
      "Number of available client licenses exceeded"

      "Bad MIB file header",
      "Bad MIB file data"

kozlov_ao

Ок. Но в итоге, нужны будут файлы...

ArtKZ

#10
Позволю себе предложить свой вариант перевода. Конструктивная критика и предложения приветствуются.


"Request completed successfully","Запрос выполнен успешно"
"Component locked","Компонент заблокирован"
"Access denied","Отказано в доступе"
"Invalid request","Неверный запрос"
"Request timed out","Превышено время ожидания ответа на запрос"
"Request is out of state","Недопустимый запрос"
"Database failure","Ошибка базы данных"
"Invalid object ID","Неверный код объекта"
"Object already exist","Объект уже существует"
"Communication failure","Сбой связи"
"System failure","Сбой системы"
"Invalid user ID","Неверный код пользователя"
"Invalid argument","Неверный аргумент"
"Duplicate DCI","Дублирование метрики"
"Invalid DCI ID","Неверный код метрики"
"Out of memory","Переполнение памяти"
"Input/Output error","Ошибка ввода/вывода"
"Incompatible operation","Несовместимая операция"
"Object creation failed","Сбой создания объекта"
"Loop in object relationship detected","Обнаружена петля в связях объекта"
"Invalid object name","Неверное имя объекта"
"Invalid alarm ID","Неверный код тревоги"
"Invalid action ID","Неверный код действия"
"Operation in progress","Операция выполняется"
"Copy operation failed for one or more DCI(s)","Сбой операции копирование одной или более метрик"
"Invalid or unknown event code","Неверный или неизвестный код события"
"No interfaces suitable for sending magic packet","Отсутствуют подходящие интерфейсы для отправки специального (magic) пакета"
"No MAC address on interface","Отсутствует физический (MAC) адрес интерфейса"
"Command not implemented","Команда не реализована"
"Invalid trap configuration record ID","Неверный идентификатор записи конфигурации ловушки SNMP"
"Requested data collection item is not supported by agent","Запрашиваемая метрика не поддерживается агентом"
"Client and server versions mismatch","Не совпадают версии клиента и сервера"
"Error parsing package information file","Ошибка анализа файла информации пакета"
"Package with specified properties already installed on server","Пакет с заданными свойствами уже установлена ​​на сервере"
"Package file already exist on server","Файл пакета уже установлен на сервере"
"Server resource busy","Ресурс на сервере занят"
"Invalid package ID","Неверный код пакета"
"Invalid IP address","Неверный адрес IP"
"Action is used in event processing policy","Действие используется в политике обработки событий"
"Variable not found","Переменная не найдена"
"Server uses incompatible version of communication protocol","Несовместимая версия протокола обмена с сервером"
"Address already in use","Адрес используется"
"Unable to select cipher","Невозможно выбрать шифр"
"Invalid public key","Неверный открытый ключ"
"Invalid session key","Неверный ключ сеанса"
"Encryption is not supported by peer","Удаленная сторона не поддерживает шифрование"
"Server internal error","Внутренняя ошибка сервера"
"Execution of external command failed","Сбой при выполнении внешней команды"
"Invalid object tool ID","Неверный код объекта инструментария"
"SNMP protocol error","Ошибка протокола SNMP"
"Incorrect regular expression","Некорректное регулярное выражение"
"Parameter is not supported by agent","Параметр не поддерживается агентом"
"File I/O operation failed","Сбой операции чтения/записи файла"
"MIB file is corrupted","Испорченный файл MIB"
"File transfer operation already in progress","Файл в процессе передачи"
"Invalid job ID","Неверный код задания"
"Invalid script ID","Неверный код сценария"
"Invalid script name","Неверное имя сценария"
"Unknown map name","Неизвестное имя карты"
"Invalid map ID","Неверный код карты"
"Account disabled","Учетная запись отключена"
"No more grace logins","Превышено количество доступных подключений"
"Server connection broken","Соединение с сервером прервано"
"Invalid agent configuration ID","Неверный код конфигурации агента"
"Server has lost connection with backend database","Потеря соединения сервера с базой данных"
"Alarm is still open in helpdesk system","Тревога до сих пор открыта в системе поддержки"
"Alarm is not in «outstanding» state","Тревога находится не в «нерешенном» состоянии"
"DCI data source is not a push agent","Источник метрики не является агентом «push»"
"Error parsing configuration import file","Ошибка анализа импортируемого файла конфигурации"
"Configuration cannot be imported because of validation errors","Конфигурация не может быть импортирована из-за ошибок при проверке"
"Invalid graph ID","Неверный код диаграммы"
"Local cryptographic provider failure","Локальный сбой поставщика криптографических услуг"
"Unsupported authentication type","Неподдерживаемый метод проверки подлинности"
"Bad certificate","Неверное цифровое удостоверение"
"Invalid certificate ID","Неверный код цифрового удостоверения"
"SNMP failure","Сбой протокола SNMP"
"Node has no support for layer 2 topology discovery","Узел не поддерживает обнаружение топологии L2"
"Invalid situation ID","Неверный код ситуации"
"Named instance not found","Именованная сущность не найдена"
"Invalid event ID","Неверный код события"
"Operation cannot be completed due to agent error","Операция не может быть завершена из-за ошибки агента"
"Unknown variable","Неизвестная переменная"
"Requested resource not available","Запрошенный ресурс недоступен"
"Job cannot be cancelled","Задание не может быть прервано"
"Invalid policy ID","Неверный код политики"
"Unknown log name","Неизвестное имя журнала"
"Invalid log handle","Неверный дескриптор журнала"
"New password is too weak","Новый пароль очень простой"
"Password was used before","Пароль использовался ранее"
"Invalid session handle","Неверный дескриптор сеанса"
"Node already is a member of a cluster","Узел уже является участником кластера"
"Job cannot be put on hold","Задание не может быть приостановлено"
"Job on hold cannot be resumed","Приостановленное задание не может быть продолжено"
"Zone ID is already in use","Код зоны уже используется"
"Invalid zone ID","Неверный код зоны"
"Cannot delete non-empty zone object","Невозможно удалить непустую зону"
"No physical component data","Отсутствуют данные о физическом компоненте"
"Invalid alarm note ID","Неверный код узла-источника тревоги"
"Encryption error","Ошибка шифрования"
"Invalid mapping table ID","Неверный код таблицы сопоставления"
"No software package data","Нет данных программного пакета"
"Invalid DCI summary table ID","Неверный код сводной таблицы метрик"
"User is logged in","Пользователь подключился к серверу"
"XML parse error","Ошибка анализа XML"
"High query cost","Высокая стоимость запроса"
"License violation","Нарушение лицензии"
"Number of available client licenses exceeded","Превышено количество лицензированных подключений"
"Bad MIB file header","Неверный заголовок файла MIB"
"Bad MIB file data","Неверное содержимое файла MIB"

kozlov_ao

Я бы заменил фразу "элемент сбора данных" на "метрика".
А вообще - неплохо :)
Но я для себя пришел к выводу что нужно не просто переводить, а смотреть как этот перевод работает. Может получиться так, что на бумаге это выглядит одним образом, а на деле - другим (например, если тут только часть фразы...). Так что ждем ланг-файлы, переводим и тестим.
Виктор, может быть, чтобы не ждать, просто укажете, где они в SVN лежат? мы уж сами как нибудь их найдем ))

ArtKZ

#12
Спасибо за высокую оценку моих потуг :)

Quote from: kozlov_ao on October 31, 2013, 11:20:56 AM
Я бы заменил фразу "элемент сбора данных" на "метрика".
Да, наверное это будет более подходящее определение... вернее - может быть и менее понятное, но зато более короткое и емкое.

Quote from: kozlov_ao on October 31, 2013, 11:20:56 AM
Но я для себя пришел к выводу что нужно не просто переводить, а смотреть как этот перевод работает. Может получиться так, что на бумаге это выглядит одним образом, а на деле - другим (например, если тут только часть фразы...).
Вы правы, мне тоже приходилось сталкиваться с подобной проблемой. В особенности, когда один строковый элемент используется в разный местах и в разном контексте. Но будем надеяться, что в NetXMS это не так :)

У меня вообще существует некое непонимание того, как должен делаться перевод, в той части, которая касается определений. Как раз случай с "метрикой" является типовым примером проблемы. В идеальном варианте, при 100% переводе программы и документации, вроде как можно использовать любые определения в программе, которые в итоге будут хорошо описаны в документации и не будут вызывать недопонимания их сути. В этом плане, мне всегда нравилась локализация софта от Microsoft - достаточно сложные в понимании технологии они умудрялись описывать на правильном русском языке с минимальным использованием заимствованных английских слов. Но поскольку, как я предполагаю, перевод NetXMS будет далеко не полным, поэтому возникает вопрос - как вообще более правильно поступать с определениями? На мой взгляд, есть такие решения (возьмем для примера тот же DCI):

1. Используем, там, где переведено, "метрика", ну а где не переведено - пусть пользователь сам додумывается, что "метрика" - это и есть "DCI". Паршивый вариант, путаться народ будет :( Так можно поступить только при наличии полной документации на русском языке, использующей эти же самые определения.

2. Везде пишем "метрика (DCI)", в том числе и в различных диалогах... удлиняет перевод и опять-же непонятно, что делать с уже более устоявшимися "тревога, событие, политика"? Также дописывать везде английский термин в скобках? Переизбыточная информация... а где тогда грань? В каких случаях писать исходное определение в скобках а в каких случаях нет?

3. Используем вариант 1, + где-нибудь в Вики выкладываем словарь русскоязычных терминов... ну или может быть в консоли раздел "Помощь" с годами появится...

4. Пишем все определения по английски. В итоге - никакого разночтения с документацией, информацией на форуме, но перевод уже получается довольно куцый :( Да я не всегда английский термин вписывается в русское предложение. И опять же - где грань? "Alarm" - это непереводимое определение или все же православная "тревога"? :)

Ну вот как-то так... Хотелось бы услышать отзывы и предложения тех, кто решил для себя эту проблему.

kozlov_ao

#13
Прямо сочинение целое, скрещенное с криком души )))
История возникновения перевода, в моем случае, такова: Заказчик неприемлит наличия в софте языка, отличного от русского. Т.е. вывод сам собой напрашивается - переводить так переводить )) Аларм - тревога, DCI - метрика (ну или "мониторинговый параметр", "измеряемое значение"...) и т.д.
По поводу стилистики. Кто первый встал - того и тапки. Если мы говорим, что DCI - это метрика, значит он будет метрикой (например чувак, который создал тринитротолуол, почему то не назвал его просто - "взрывчатка", но это не мешает сувать его в различные боеприпасы... чем мы хуже? :) ). В конце концов, лет 5 назад, я не сразу воткнулся, что такое DCI :). Каюсь - расшифровку до сих пор не знаю )))
Резюмируя - мы начали, нам и заканчивать... нужно делать максимально емко, не стесняясь слов типа "метрика", но в разумных пределах и не в ущерб качеству.

PS: Масла в огонь подолью... Переведи Dashboard. Интересно узнать мнение других :)

ArtKZ

#14
Quote from: kozlov_ao on October 31, 2013, 01:00:57 PM
Переведи Dashboard. Интересно узнать мнение других :)

Я для себя решил, что это "Панель управления" или просто "Панель". А вот с "Business Services" до сих пор не определился - пока что ничего лучше, чем "Качество обслуживания" в голову не пришло... хотя "Качество обслуживания" - это вроде как SLA (Service Level Aggrement), но все же что-то близкое...

Quote from: kozlov_ao on October 31, 2013, 01:00:57 PM
Если мы говорим, что DCI - это метрика, значит он будет метрикой

Тогда страничку в Вики наверно все-таки будет создать не лишним... чтобы самим хотя бы не забывать  ;D