Недоработки механизма локализации (???)

Автор Тема: Недоработки механизма локализации (???)  (Прочитано 37669 раз)

0 Пользователей и 4 Гостей просматривают эту тему.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
В текущей реализации библиотеки NetExtension, локализация интерфейса команд и интерфейса справки определяется в таком порядке:

1. Если локализации указаны в конфигурационном файле плагина, то они применяются.
2. Если в конфиг. файле плагина локализации не указаны, то применяются те, которые являются текущими в AutoCAD.
3. Если в реализации плагина отсутствует локализация, соответствующая текущей локализации AutoCAD, то применяется локализация, которая в плагине обозначена как default (т.е. используемая по умолчанию).

Т.о. в текущей реализации NetExtension получается, что если у юзера плагинов много, то ему придётся ковырять конфиг. файл каждого плагина, дабы в них прописывать предпочитаемые локализации для интерфейса и справки. Это достаточно неудобно.

Я думаю добавить в реализацию ещё такой шаг: в реестре сохранять предпочитаемые пользователем  общие для всех плагинов локализации: интерфейса и справки (т.е. две записи). Вот только пока с приоритетом не определился: либо настройки конфиг. файлов должны иметь приоритет над общими настройками реестра, либо запись в реестре должна иметь приоритет над настройками конфиг.файла.

В первом случае получается, что конфиг. файлы всех плагинов должны по умолчанию содержать пустое значение локализации, а если это не так - придётся перелопатить конфиги, убрав эти значения (программно, либо вручную). В этом случае, если в конфигах локализация не будет указана, то она будет читаться из реестра, если не будет в реестре - то из AutoCAD и т.д. А если отдельные плагины должны использовать иную локализацию - вот тогда в их конфиг. файлы прописывать нужные значения индивидуально.

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

Я, пожалуй, склоняюсь к первому варианту -  так сказать "от частного к общему", но на всякий случай спрашиваю, у кого какие мысли по данному пункту?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Я бы задумался над тем есть ли необходимость иметь индивидуальные настройки локализации для разных плагинов. Я слабо себе представляю ситуацию когда для одного плагина предпочитают русскую локализацию, а для другого английскую.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
Я слабо себе представляю ситуацию когда для одного плагина предпочитают русскую локализацию, а для другого английскую.
Если один плагин имеет русскую и английскую локализацию, а второй английскую и китайскую.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Если один плагин имеет русскую и английскую, а второй английскую и китайскую.
Согласен. Теоретически такой вариант возможен.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Я слабо себе представляю ситуацию когда для одного плагина предпочитают русскую локализацию, а для другого английскую.
Если один плагин имеет русскую и английскую локализацию, а второй английскую и китайскую.
Я бы перефразировал так:
Цитировать
Если один плагин имеет французскую и английскую локализацию, а второй английскую и китайскую.
Причём в первом случае в качестве default первым программистом указана французская, а во втором - китайская (вторым программистом). :)
В этой ситуации, если пользователь укажет русскую локализацию в качестве предпочитаемой, то данные плагины будут отображаться на французском и китайском соответственно. Поэтому индивидуально для этих плагинов потребуется задать наименее страшный вариант - английскую.

Я так понял, что мыслей по обозначенному вопросу (о приоритетах настроек) нет :) Хотя... из логики выше обозначенного вытекает всё же первый вариант...

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Я так понял, что мыслей по обозначенному вопросу (о приоритетах настроек) нет :)
Так как менять эти значения в реестре вручную сложнее, чем в конфигурационном файле, то (IMHO) у конфигурационного файла приоритет выше.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
менять эти значения в реестре вручную сложнее
Да собственно это и не проблема: можно написать команду, которая будет это делать - либо в отдельном диалоговом окне юзер из списка существующих локализаций выберет предпочитаемые, либо просто добавить на свою вкладку в диалоговом окне Options два ComboBox с выбором локализаций.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
либо просто добавить на свою вкладку в диалоговом окне Options два ComboBox с выбором локализаций.
А на каком языке будет эта вкладка? :D
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
А на каком языке будет эта вкладка? :-D
Например на C#.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Например на C#.
Русский, английский, французский, китайский, язык AutoCAD, язык Windows???
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Русский, английский, французский, китайский, язык AutoCAD, язык Windows???
Если в реестре нет значений, то локализация вкладки будет та же, что и Windows. Если такая не будет найдена в плагине, то - локализация AutoCAD или же default, если искомые не будут найдены среди доступных локализаций плагина. Но если в реестре будет указана локализация, то в первую очередь будет пытаться примениться она. Мне кажется, что такая очерёдность будет более удобной.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Мне кажется, что такая очерёдность будет более удобной.
Я бы поменял между собой приоритеты между языком AutoCAD и Windows. Считаю более естественным если по-умолчанию язык этой вкладки не будет отличатся от языка соседних вкладок.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Я бы поменял между собой приоритеты между языком AutoCAD и Windows. Считаю более естественным если по-умолчанию язык этой вкладки не будет отличатся от языка соседних вкладок.
Ну тогда по такой логике и локализация плагинов и справочной системы должны быть английскими, чтобы выглядеть "более естественно". А ежели после сохранения в реестре пользовательских предпочтений, локализация вкладки будет читаться оттуда и при этом отличаться от локализации AutoCAD, то какой смысл равняться в первую очередь на локализацию AutoCAD (всё равно ведь затем локализация вкладки изменится)? Мне кажется, что локализация операционной системы с гораздо большей долей вероятности будет соответствовать предпочтениям пользователя. Английский AutoCAD предпочитают вовсе не из любви к английскому языку. :)