Сообщество программистов Autodesk в СНГ

ADN Club => Адаптация AutoCAD и вертикальных приложений => Тема начата: Балиев от 14-01-2016, 11:42:18

Название: Языковая локализация.
Отправлено: Балиев от 14-01-2016, 11:42:18
Написал приложение с русскоязычным интерфейсом. Как сделать так, чтобы оно грузилось только в русскоязычных версиях Автокада? Подозреваю, что нужно написать волшебное слово в packagecontents.xml, но какое и в каком месте не знаю.
Есть идеи?
Название: Re: Языковая локализация.
Отправлено: Александр Ривилис от 14-01-2016, 11:58:23
Не проверял, но SupportedLocales="Rus" внутри ApplicationPackage теоретически должно помочь.
И вообще по поводу локализации почитай: http://adndevblog.typepad.com/autocad/2013/01/autodesk-autoloader-white-paper.html
Название: Re: Языковая локализация.
Отправлено: Балиев от 14-01-2016, 12:29:50
SupportedLocales это указание для генерации инсталлятора MSI. На загрузку приложения, к сожалению, это никак не влияет...
Название: Re: Языковая локализация.
Отправлено: Александр Ривилис от 14-01-2016, 15:17:13
Ну значит тебе самому придётся проверять локализацию AutoCAD и не загружать своё приложение, если у AutoCAD неподходящая локализация. Хотя я не понимаю в каком случае это может быть нужно.
Название: Re: Языковая локализация.
Отправлено: Балиев от 14-01-2016, 16:46:15
Я тоже не очень понимаю... AutoDESK AppStore почему-то стало требовать... Правда, может индусы отсебятину гонят.
Название: Re: Языковая локализация.
Отправлено: Александр Ривилис от 14-01-2016, 16:52:09
Я тоже не очень понимаю... AutoDESK AppStore почему-то стало требовать... Правда, может индусы отсебятину гонят.
Ну если они требуют, то от них и спрашивай. Можно сделать чтобы в зависимости от языка AutoCAD грузились разные модули (ModuleNameRus), но вот как сделать чтобы не в русском AutoCAD вообще не грузился - не знаю. Разве что сделать какую-то заглушку на английский.
Название: Re: Языковая локализация.
Отправлено: Балиев от 14-01-2016, 16:57:24
но вот как сделать чтобы не в русском AutoCAD вообще не грузился - не знаю.
Да, в том то и дело... Не знаю, может индус английский плохо знает: вместо "run app" написал "load app"? Во всяком случае, я ему отписал и, как говорится, сказал все, что я об этом думаю. Вот жду ответа...
Название: Re: Языковая локализация.
Отправлено: BearDyugin от 15-01-2016, 21:16:39
Можно сделать чтобы в зависимости от языка AutoCAD грузились разные модули (ModuleNameRus), но вот как сделать чтобы не в русском AutoCAD вообще не грузился - не знаю.
удалить строку ModuleName оставить только ModuleNameRus, и для самого приложения и для файла адаптации.
Проверил, русские AutoCAD-ы загружают нормально, англицкие игнорируют.
Название: Re: Языковая локализация.
Отправлено: Александр Ривилис от 15-01-2016, 22:01:05
удалить строку ModuleName оставить только ModuleNameRus, и для самого приложения и для файла адаптации.
Интересно. Я проверял в AutoCAD 2013 English x86 и у меня было не так. Точнее если я ставил ModuleNameEng и удалял ModuleName, то приложение не грузилось, хотя теоретически должно было. А русской версии (как и более свежих) у меня под руками не было.
Название: Re: Языковая локализация.
Отправлено: BearDyugin от 15-01-2016, 22:15:23
Я проверял в AutoCAD 2013 English x86 и у меня было не так. Точнее если я ставил ModuleNameEng и удалял ModuleName, то приложение не грузилось
Походу в ModuleNameEng вообще нет смысла, её роль выполняет ModuleName, в моём приложении было только ModuleName и ModuleNameRus, приложение грузилось и в русские и в англицкие AutoCAD-ы
Название: Re: Языковая локализация.
Отправлено: Балиев от 16-01-2016, 12:13:16
Можно сделать чтобы в зависимости от языка AutoCAD грузились разные модули (ModuleNameRus), но вот как сделать чтобы не в русском AutoCAD вообще не грузился - не знаю.
удалить строку ModuleName оставить только ModuleNameRus, и для самого приложения и для файла адаптации.
Проверил, русские AutoCAD-ы загружают нормально, англицкие игнорируют.
Это работает, но, похоже, тоже паллиатив, поскольку файл адаптации грузится в обеих версиях, "хоть ты дерись!". Получается, иконки приложения есть, просто не работают. Криво это все как-то... Но, в любом случае, спасибо за предложенное решение!
Название: Re: Языковая локализация.
Отправлено: BearDyugin от 16-01-2016, 12:16:57
файл адаптации грузится
внимательно читай
удалить строку ModuleName оставить только ModuleNameRus, и для самого приложения и для файла адаптации.
Название: Re: Языковая локализация.
Отправлено: Балиев от 16-01-2016, 12:29:05
внимательно читай
Да читал я, читал. Все-равно грузится. Хотя, если у тебя не грузится, то, возможно, что я сделал что-то не так. Вот, посмотри кусок PackageContents.xml:
Код - XML [Выбрать]
  1. -<ComponentEntry LoadOnCommandInvocation="True" ModuleNameRus="./Contents/IDEaL-Spring_pro_v01.VLX" AppName="IDEaL-Spring_pro_v01">
  2. -<Commands>
  3. <Command Global="stp" Local="stp"/>
  4. </Commands>
  5. </ComponentEntry>
  6. <ComponentEntry ModuleNameRus="./Contents/calc1.VLX" AppName="IDEaL-Spring_pro_v01"/>
  7. <ComponentEntry ModuleNameRus="./Contents/calc2.VLX" AppName="IDEaL-Spring_pro_v01"/>
  8. <ComponentEntry ModuleNameRus="./Contents/SpringUtilities.VLX" AppName="IDEaL-Spring_pro_v01"/>
  9. <ComponentEntry ModuleNameRus="./Contents/IDEaL-Spring_pro_v01.cuix" AppName="IDEaL-Spring_pro_v01"/>
Название: Re: Языковая локализация.
Отправлено: BearDyugin от 16-01-2016, 13:16:54
Все-равно грузится
Он (файл адаптации) при первом запуске копируется из папки твоего приложения *.bundle в C:\Users\Имя_пользователя\AppData\Roaming\Autodesk\Версия_AutoCAD\Локализация\Support и грузится уже от туда, удали его от туда вручную, из обоих версий и англицких и русских. И у видишь что в русских он появится опять, а в англицких уже нет,
Название: Re: Языковая локализация.
Отправлено: Балиев от 16-01-2016, 13:24:09
Он (файл адаптации) при первом запуске копируется из папки твоего приложения *.bundle в C:\Users\Имя_пользователя\AppData\Roaming\Autodesk\Версия_AutoCAD\Локализация\Support и грузится уже от туда, удали его от туда вручную, из обоих версий и англицких и русских. И у видишь что в русских он появится опять, а в англицких уже нет,
А, ведь, точно! Ну, чтож, спасибо, еще раз!