текущий язык интерфейса AutoCAD

Автор Тема: текущий язык интерфейса AutoCAD  (Прочитано 36677 раз)

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

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: текущий язык интерфейса AutoCAD
« Ответ #15 : 16-10-2015, 13:37:29 »
так что, сугубо моё мнение, для одной команды нет смысла заморачиваться с переключением языка во время её работы.
Для одной не стоит. Я и не говорил, что использую это для одной команды. Это общие настройки, которые считываются всеми моими плагинами. Обозначенный подход не является руководством к действию, но был обозначен лишь для того, чтобы упомянуть о том, что порой локализация акада и предпочитаемая пользователем локализация интерфейса могут не совпадать.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: текущий язык интерфейса AutoCAD
« Ответ #16 : 16-10-2015, 13:56:49 »
Я вижу три варианта:
1) Приложение одноязычное и не зависит от языка AutoCAD.
2) Приложение многоязычное и подстраивается под язык AutoCAD (не обязательно под все).
3) Приложение многоязычное и его язык настраивается независимо от языка AutoCAD.
В App Exchange есть приложения как минимум первого и второго типов.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Николай ГорловАвтор темы

  • ADN
  • *
  • Сообщений: 238
  • Карма: 34
Re: текущий язык интерфейса AutoCAD
« Ответ #17 : 16-10-2015, 14:38:43 »
Цитировать
Я вижу три варианта:
1) Приложение одноязычное и не зависит от языка AutoCAD.
2) Приложение многоязычное и подстраивается под язык AutoCAD (не обязательно под все).
3) Приложение многоязычное и его язык настраивается независимо от языка AutoCAD.
В App Exchange есть приложения как минимум первого и второго типов.
так оно и есть. а теперь с точки зрения денежки.
первый тип - теряется часть потенциальных клиентов. ну и "достоинства" можно дальше не рассматривать
второй тип - это то что я и делаю. собственно с локализацией минут 15 назад закончил ))). всё держится на текстовых файлах. подгрузка языковой карты проходит из одного из них во время загрузки ARX. легко добавить неограниченное количество языков или перевести текст в языковом файле на то, что тебе лично нравится (да хоть с ненормативной лексикой )))).
третий тип - это по сути расширенный второй, но т.к. размер приложения невелик, то заморачиваться особо нет смысла.
так что варианты 2 и 3 дают максимальный охват аудитории. а для маленьких проектов вариант 2 можно превратить в вариант 3 просто поменяв имена у файлов локализации, если на английском автокаде хочется видеть русский текст в моей команде.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: текущий язык интерфейса AutoCAD
« Ответ #18 : 16-10-2015, 18:12:19 »
первый тип - теряется часть потенциальных клиентов.
Вообще-то понятие первого более широкое. Т.е., например, одно приложение выкладывается в магазине приложений и на русском, и на английском, и на французском с соответствующей локализацией. Возможно даже отличается функционал. И даже стоимость. Autodesk ведь не стесняется ставить разные цены в разных регионах :)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: текущий язык интерфейса AutoCAD
« Ответ #19 : 16-10-2015, 18:26:37 »
Сколько людей, столько и мнений. Я, как уже сообщал, за 3-й вариант.

По поводу локализованных ресурсов приложения, вынесенных в отдельные текстовые файлы - мне такой вариант не нравится по той причине, что обезьяны могут их повредить или умышленно | непреднамеренно исказить содержимое. Использовать для этого родные механизмы WinAPI или .NET Framework - для меня более предпочительный вариант хотя бы по той причине, что это "стандартный", обкатанный способ, с которым знакомы все (ну или почти все) программеры. Я не хочу, чтобы мои ресурсные файлы правили обезьянки или вредоносный | написанный через зад код. Замучаешься потом доказывать, что это не ты так написал...
Цитата: Николай Горлов
да хоть с ненормативной лексикой )))
ну, это явно не мои клиенты... Такая аудитория мне не интересна.

Цитата: Николай Горлов
а для маленьких проектов вариант 2 можно превратить в вариант 3 просто поменяв имена у файлов локализации, если на английском автокаде хочется видеть русский текст в моей команде.
Переименовывать имена файлов из ru в en для того, чтобы получить эффект варианта 3 считаю грязным способом аля "на это не смотри, здесь нужно читать справа налево, а вот в это я вообще рыбу заворачивал...". Тем более, что для реализации варианта 3 не требуется никаких особых усилий.

Цитата: Александр Ривилис
одно приложение выкладывается в магазине приложений и на русском, и на английском, и на французском с соответствующей локализацией. Возможно даже отличается функционал. И даже стоимость. Autodesk ведь не стесняется ставить разные цены в разных регионах :)
Формирование отдельных локализованных версий с последующей их продажей по разным ценам несомненно имеет целесообразность с точки зрения зарабатывания денег. Всё зависит от приоритетов: либо деньги, либо универсальность конечного ПО, поставляемого клиенту.

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 822
  • Карма: 166
    • Мои плагины к Автокаду
Re: текущий язык интерфейса AutoCAD
« Ответ #20 : 30-03-2016, 15:49:31 »
Если я что-то в чем-то понимаю, то функции acrxProductLCID и ::getRegistryProductLCID исчезли в ObjectARX 2017. Так? Хотя в документации есть. А в rxregsvc.h нет. Есть правда acrxProductLocale, но он хитрый тип возвращает.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: текущий язык интерфейса AutoCAD
« Ответ #21 : 30-03-2016, 18:19:16 »
Код - C++ [Выбрать]
  1. unsigned long lcid = 0;
  2. // AutoCAD 2017 и новее
  3. #if !defined(ACADR21)
  4.           lcid = acrxProductLCID();
  5. #else
  6.           lcid = acrxProductLocale();
  7. #endif
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: текущий язык интерфейса AutoCAD
« Ответ #22 : 31-03-2016, 14:25:03 »
Есть правда acrxProductLocale, но он хитрый тип возвращает.
Этот хитрый тип (AcLocale) автоматически преобразуется в long, если принудительно не установлен AC_ALLOW_CROSSPLATFORM_ONLY.
Так что при портировании в ObjectARX 2017 из предыдущих версий обычно достаточно заменить acrxProductLCID на acrxProductLocale.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Debalance

  • ADN Club
  • ****
  • Сообщений: 421
  • Карма: 16
    • Advanced software for AutoCAD
  • Skype: Debalance
Re: текущий язык интерфейса AutoCAD
« Ответ #23 : 29-04-2016, 14:47:33 »
"C:\Program Files\Autodesk\AutoCAD 2015\acad.exe" /product ACAD /language "ru-RU" - это запускает 2015 автокад с русским языковым пакетом.
"C:\Program Files\Autodesk\AutoCAD 2015\acad.exe" /product ACAD /language "en-US" - запускает 2015 автокад с английским пакетом.
Я решил тоже поиграться с локализацией. На свой англоязычный ACAD-2016 поставил русскоязычный пакет:
1. Запускаю "C:\Program Files\Autodesk\AutoCAD 2016\acad.exe" /product ACAD /language "ru-RU" - стартует русскоязычный интерфейс.
2. Запускаю "C:\Program Files\Autodesk\AutoCAD 2016\acad.exe" /product ACAD /language "en-EN" - стартует по-прежнему русскоязычный интерфейс.
Объясните, чтобы сменить язык интерфейса - надо всё время переустанавливать языковой пакет?

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: текущий язык интерфейса AutoCAD
« Ответ #24 : 29-04-2016, 14:48:58 »
Объясните, чтобы сменить язык интерфейса - надо всё время переустанавливать языковой пакет?
нет.

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: текущий язык интерфейса AutoCAD
« Ответ #25 : 29-04-2016, 14:51:55 »
"en-EN"
не "en-EN", но "en-US". Внимательней будь.

Оффлайн Николай ГорловАвтор темы

  • ADN
  • *
  • Сообщений: 238
  • Карма: 34
Re: текущий язык интерфейса AutoCAD
« Ответ #26 : 29-04-2016, 15:02:48 »
в дополнение к теме. начиная с 2014 автокада и по сей день, есть системная переменная "UILOCALE". так что если нет поддержки ранних версий, то можно и не городить огород, а пользоватся этой переменной

Оффлайн Debalance

  • ADN Club
  • ****
  • Сообщений: 421
  • Карма: 16
    • Advanced software for AutoCAD
  • Skype: Debalance
Re: текущий язык интерфейса AutoCAD
« Ответ #27 : 29-04-2016, 22:35:41 »
нет.
+1 к карме за всеобемлющую лаконичность в объяснении сути.

в дополнение к теме. начиная с 2014 автокада и по сей день, есть системная переменная "UILOCALE".
Я всё-таки придерживаюсь решения обведённого в зелёную рамочку - оно универсально и в духе ObjectARX, за что очередное спасибо Александру Ривилису.

И в заключение (чтобы не создавать тему в соседнем разделе), интересно на сколько универсален .NET метод (Autodesk.AutoCAD.Runtime.SystemObjects.DynamicLinker.ProductLcid)? Ответ интересует в диапазоне ACAD2007-2017.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: текущий язык интерфейса AutoCAD
« Ответ #28 : 29-04-2016, 23:24:03 »
И в заключение (чтобы не создавать тему в соседнем разделе), интересно на сколько универсален .NET метод (Autodesk.AutoCAD.Runtime.SystemObjects.DynamicLinker.ProductLcid)? Ответ интересует в диапазоне ACAD2007-2017.
Документация говорит, что во всей этой линейке этот метод есть, но работоспособность во всей линейке не проверял.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение