Перейти к публикации
GPS навигатор СитиГИД
IШIN

FAQ по редактированию LangPack-ов

Рекомендованные сообщения

Раз начали меряться "кто что знает", то еще один хинт - в ТоталКоммандере есть групповое переименование.

Тоже классная весчь. Например, чтоб не портить штатные картинки, а сделать копии со своим именем - копируем их в отдельную папку, потом выделяем и нажимаем Ctrl+M.

В итоге можно например к именам всех файлов в начале приписать некий текст, т.е. сделать типа ish_menu.bmp, ish_navpanel_ico_dpoi.bmp и т.д.

Или наоборот в конце, вместо _day вставить _night, получив картинки для ночного режима (и уже править их).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ЗЫ - а щас еще /DiOs проснется, и скажет, что только FAR, только хардкор. :D

1. Что за наезды -- проснётся в 11 часов дня?!

2. Хардкор -- это CLI. FAR -- паллиатив.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1. Что за наезды -- проснётся в 11 часов дня?!

-...зевнул /DiOs в 12:40...

:D

Знаюзнаю. ГадЪ

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Раз начали меряться "кто что знает", то еще один хинт - в ТоталКоммандере есть групповое переименование.

Тоже классная весчь. Например, чтоб не портить штатные картинки, а сделать копии со своим именем - копируем их в отдельную папку, потом выделяем и нажимаем Ctrl+M.

В итоге можно например к именам всех файлов в начале приписать некий текст, т.е. сделать типа ish_menu.bmp, ish_navpanel_ico_dpoi.bmp и т.д.

Или наоборот в конце, вместо _day вставить _night, получив картинки для ночного режима (и уже править их).

Сколько пользовался тоталом - но это тоже в копилку знаний. Век живи - век учись

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Почистил, нашёл несколько ошибок и продолжил рихтовку. Не исключено теперь, что будет работать также и на других разрешениях. Ссылка та же. Перекачивайте.

А как можно затемнить (как в Вашем меню) кнопки "мое меню", "события", "масштаб" и другие, но только для дневного скина?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А как можно затемнить (как в Вашем меню) кнопки "мое меню", "события", "масштаб" и другие, но только для дневного скина?

Давайте перейдём в соответствующую тему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну, а вообще вопрос "как сделать элемент разным в дневном и ночном режиме" описан в самом первом посте этой же темы - там пример с картинками

compas_d, compas_n и "виртуальной" палитрозависимой картинкой compas, которая на самом деле она из вышеупомянутых.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Давайте перейдём в соответствующую тему.

Не знал про эту тему. Буду теперь там изучать

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Знатоки, подскажите, как убрать эту надпись?

1.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Знатоки, подскажите, как убрать эту надпись?

1.thumb.jpg.037f9b23cf5aea888c97f92e2ea58b7e.jpg

Это же номер трассы. Он разве не в карту вшит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, номер трассы. Я не знаю. Выходит если вшит, значит никак...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Он однозначно в карте. И однозначно лангпаком его не убрать.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

)) часто езжу по трассе, зачем мне в трех местах упоминание о номере трассы... вот и захотелось сократить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И вот мы снова в рубрике "уроки начинающего СИНОПСИСа (©Erik956)" :D

Рассмотрим простую задачу: убрать из скина какой-то элемент. (скажем, индикатор батарейки, который неинформативен на стационарныхГУ).

Уверенной рукой берем лангпак и лезем конечно же в Layouts.XML (ведь в первых постах этой темы мы уже выяснили, что все, что раскидано по экрану, именно там). Я возьму свой собственный скин и его-то и буду мучать.

Если мы знаем английский, то можем сразу попробовать искать интуитивное battery (или batt, мы ведь не знаем, как названы картинки, вдруг авторы сократили слово). Если английского не знаем, то лезем в папку с картинками (скажем, day6x) и ищем картинку с батарейкой. Смотрим ее название и понимаем, что не ошиблись, ищем правильное слово (а то вдруг надо было искать power или еще что-то)

Итак, очень быстро находим строки типа

        </HorizontalPanel>
          <!-- Строка - датавремя, индикаторы -->
        <HorizontalPanel height="32">
            <ImageLabel width="92"/>
            <ImageLabel width="82" type="text" class="ish_navPanel_cur_time" text="@navPanel_txt_time" invoke="settings_time"/>
            <ImageLabel width="110" type="text" class="ish_navPanel_cur_date" text="@navPanel_txt_date" invoke="settings_time"/>
            <ImageLabel width="-1"/>
            <ImageLabel width="90" bgimage="@pan_navPanel_GPS" align="center" valign="middle" invoke="s_gps"/>
            <ImageLabel width="40" bgimage="@pan_navPanel_jams" align="center" valign="middle" invoke="rs_refresh"/>
            <ImageLabel width="70" bgimage="@pan_navPanel_battery" align="center" valign="middle" invoke="rs_refresh"/>
            <ImageLabel width="70" bgimage="@pan_navPanel_routetype" align="center" valign="middle" invoke="set_route"/>
            <ImageLabel width="92"/>
        </HorizontalPanel>
    </VerticalPanel>

В приведенном куске очевидно, строка высотой 32 пикселя.

В ней - пустое место шириной 92 пикселя (я-то знаю, что это под кнопку место, но когда скин делал кто-то другой, мы можем только догадываться, зачем место оставлено. Ну или запустить программу и посмотреть, что в этом месте выводится).

Затем идет ячейка шириной 82, в которой cur_time и шириной 110, в которой cur_date. Мы сразу понимаем, что это время и дата (и если нам нравится другой порядок, сразу понимаем, как поменять их местами)

Дальше пустая резиновая ячейка - распорка шириной -1, то есть все остальное получается прижато к правому краю.

Это:

GPS - индикатор шириной 90,

Jams - индикатор пробок шириной 40

БАТАРЕЙКА - шириной 70

Тип маршрута шириной 70 

и еще одно пустое место под кнопку - шириной 92.

Самое простое решение - тупо удалить строку

 <ImageLabel width="70" bgimage="@pan_navPanel_battery" align="center" valign="middle" invoke="rs_refresh"/>

Учитывая, что в середине у нас есть ячейка <ImageLabel width="-1"/>,

понимаем, что левая часть (кнопка, время, дата) останется на месте, а остальное (ГПС, пробки, тип маршрута, кнопка) прижмется вправо (т.е. пустого пространства на месте батарейки не будет).

Ну, раз у нас освобождается лишнее место, значит можно даже расширить пространство под индикатором пробок, например вот так:

<ImageLabel width="80" bgimage="@pan_navPanel_jams" align="center" valign="middle" invoke="rs_refresh"/>
Теперь у нас невидимая клетка, на которую надо нажать для обновления пробок, стала шире в два раза (сама картинка осталась прежней, просто зазоры вокруг нее тоже реагируют на нажимание)

Разобравшись в одном месте, продолжаем поиск.

Аналогичных фрагментов мы найдем как минимум 4 (горизонталь и вертикаль с маршрутом и без).

И во всех повторяем операцию.

Еще мы найдем несколько упоминаний слова battery в ссылках на подгрузку картинок, например:

    <item name="pan_navPanel_battery_1" val="battery_1_d"/>
    <item name="pan_navPanel_battery_2" val="battery_2_d"/>

или (в зависимости от скина могут быть)

    <image name="battery_1_d"/>
    <image name="battery_2_d"/>

Эти строки можно удалить, а можно и не трогать. Они только обеспечивают загрузку картинок в память, а на экран их не показывают.

Но кто не приемлет компромиссов - может спокойно эти строки удалить, а затем влезть в папки day4x, day6x ... и там поудалять файлы, имеющие в названии слово battery, чтоб уменьшить размер лангпака.


 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это находится не в ленгпаке, а в файле autoscale.xml. Меняйте параметр MinScale="30000".

Больше, чем 60м не делает, даже если ставить значения выше (например, 80000).

1. Есть возможность увеличить это значение (чтобы масштаб был мельче при простое)?

2. Меняя это значение, меняется ли характер всей работы автомасштаба на каждой скорости? как его можно изменить?

3. Как можно сузить полосу маршрута (которая цветная)?

Если уже объяснялось (скорее всего), подскажите, пжлст, где можно об этом прочитать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Больше, чем 60м не делает, даже если ставить значения выше (например, 80000).

1. Есть возможность увеличить это значение (чтобы масштаб был мельче при простое)?

2. Меняя это значение, меняется ли характер всей работы автомасштаба на каждой скорости? как его можно изменить?

3. Как можно сузить полосу маршрута (которая цветная)?

Если уже объяснялось (скорее всего), подскажите, пжлст, где можно об этом прочитать.

Не очень соответствует теме, по крайней мере про масштаб.

Не знаток autoscale.xml. Для себя скорректировал его так, что масштаб зависит только от расстояния до манёвра. Пользуюсь только 2d, хотя оказалось, что в "Девятке" вполне прилично заработал не только фиксированный наклон, но и автомасштаб 3d-2d (на мой взгляд). Попробовал так поездить, отторжения не вызвало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

3. Как можно сузить полосу маршрута (которая цветная)?

 

Resources.rsr - PresCGMap.xml

1. Находим поиском
<!-- Route track -->
2. В данном блоке изменяем значение Width. Я изменил 300 на 180. Карта с маршрутом стала выглядеть вполне пристойно.

 

 

Изменено пользователем evgenyK
  • Upvote 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хорошо, тогда спрошу по теме темы. В первых постах рассказана структура layouts.xml, но там всё просто, как в html таблицах - td и tr, высота в пикселях. В текущем синтаксисе по-другому.

Несколько вопросов, если позволите.

1. HorizontalPanel = tr, VerticalPanel =td  - так?

2. <HorizontalPanel height="-1"> высота минус один - это что значит?

3. height="13.33X", height="5X", width="40X" - это что значит? в каких единицах?

4. <VerticalPanel width="25%"/> - это в процентах от родительского блока? т.е. колонка занимает четверть ширины?

Буду благодарен за краткие ответы, а не посыл прочитать 30 страниц темы или учебник по html/xml :rolleyes:

Изменено пользователем ZeuseZ

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ага (примерно). ВертикалПанель - как бы столбец во всю высоту родительской ГоризонталПанели и с заданной шириной

ГоризонталПанель - строка во всю ширину родительской ВертикалПанели и с заданной высотой.

 

Еще внутри любой из них может быть ImageLabel - ячейка. По-моему, для нее можно задать и ширину и высоту.

Во вложенности панели должны чередоваться, то есть в Вертикал панели может быть 1 или более ГоризПанелей, а в каждой из них может быть ImageLabel или VerticalPanel. А в каждом VerticalPanel - может быть  ImageLabel или HorizontalPanel и т.д.

В принципе, могут использоватьсся и старые структры (table, tr,  td), и в штатном ЛП они местами идут вообще вперемешку (table внутри ГоризонталПанели...)

Большинство (подозреваю, что любые) элементы (картинки, тексты и т.д.) могут стоять как в ImageLabele, так и  в VerticalPanel или в HorizontalPanel.

Т.е. мне кажется, что использование ImageLabel-ов вообще необязательно. Но не уверен.

Высота "-1" - "растянуть на свободное пространство". Например, чтобы прижать ячейки к краям экрана - делаем три ГоризонталПанели с разной шириной:

1я - например шириной с указатель маневра, послдняя (3я) - поле для скорости. А между ними - пустая шириной -1.

Если среди например 6 строк будут 2 заданной ширины, а остальные 4 - "-1", то все свободное пространство делится на эти 4 поровну.

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

Размеры могут задаваться:

1. в пикселях (просто цифры width="40"). К сожалению, полноценно применимо в скинах для одного разрешения экрана.

2. В процентах (все верно, от родительского элемента.

3. И в относительных единицах. (с иксом)

Дело в том, что для определенных разрешений используются разые папки с картинками. Например, для экрана 320х240 - папка day имножитель равен 1. (на таких экранах Width="45X" будет 45 пикс.)

640х480 и 800х480 используют day_2x, и для них это будет 90 пикс.(множитель 2).

Границы (при каком произведении ширины на высоту какая папка используется) озвучивали давно (то ли vlego, то ли ERER), щас точно не вспомню.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
35 минуты назад, IШIN сказал:

1. в пикселях (просто цифры width="40"). К сожалению, полноценно применимо в скинах для одного разрешения экрана.

1. Т.е. если только для себя, то для простоты можно делать просто в пикселях, верно?

35 минуты назад, IШIN сказал:

Дело в том, что для определенных разрешений используются разые папки с картинками. Например, для экрана 320х240 - папка day имножитель равен 1. (на таких экранах Width="45X" будет 45 пикс.)

2. Т.е. для максимальных разрешений (fullhd, к примеру) множитель всегда 6 и чтобы мне понять, как у меня надо всегда просто на 6 умножать?

Спасибо за разъяснения, в голове сложилась картинка B)

Изменено пользователем ZeuseZ

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
31 минуты назад, ZeuseZ сказал:

1.Т.е. если только для себя, то для простоты можно делать просто в пикселях, верно?

2. Т.е. для максимальных разрешений (fullhd, к примеру) множитель всегда 6 и чтобы мне понять, как у меня надо всегда просто на 6 умножать?

1. Да, запросто. Ну, иногда удобно еще в процентах (например, кнопки в меню - чтоб 4 в ряд было, поставить 25% (а можно и -1, тогда если добавим еще ряд кнопок, не надо цифру менять.    

 2. Ну да. Второй вариант - найти какой-нибудь характерный элемент (например, индикатор маневра или еще что-то такое. Посмотреть в лангпаке, какое место под него выделено (например, там 35Х). Запускаем СГ, делаем скриншот и в файле смотрим размер этого элемента. Если он занимает 140 пикселей, значит у нас множитель 4.

Изменено пользователем IШIN

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
удобно еще в процентах (например, кнопки в меню - чтоб 4 в ряд было, поставить 25% (а можно и -1, тогда если добавим еще ряд кнопок, не надо цифру менять.  

Т.е. одинаково - у четырёх кнопок поставить по 25% или по -1?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, ZeuseZ сказал:

Т.е. одинаково - у четырёх кнопок поставить по 25% или по -1?

Да, но "-1" - более универсально.

1. добавление/убирание кнопки не требует изменения цифр (на 20% или 33%)

2. вставка понтовых зазоров между элементами не требует пересчета (захотелось между кнопками вставить зазоры по 2 пикселя, вписали imagelabel width="2"/ , и получилось что 4 по 25%+3 по 2 пикселя - больше 100% экрана - последняя кнопка будет урезана). А при кнопках с шириной "-1" можно вставить зазоры между ними или отступы от краев. - размеры кнопок сами уменьшатся одинаково.

Кстати, еще для чего нужна "-1" - чтоб поставить элемент в центр.

Например менюшка мессэдж-бокс или кнопка с дельтапланом.

Ставим ячейку с шириной "-1", потом ячейку с кнопкой (нужной фикс.ширины) и еще одну пустую "-1".

Имеем - с боков поровну, кнопка в центре.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А если, например, ширина VerticalPanelей не указана, то какая у них ширина?

<layout name="template_buttons_drive_2_hor">

    <VerticalPanel>

             <HorizontalPanel height="13.33X" ....

   </VerticalPanel>

   <!-- Динамические ПОИ -->

    <VerticalPanel>....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А вот не помню, но по-моему если не указано, считается "0". Что это дает? Внутри панели, которая размером "0" вполне могут находиться панели нормальных размеров (ненулевых).

А вот следующая панель (того же уровня) начинается, выходит, с той же точки, или, что то же самое - поверх.

Именно за счет этого в каждом лэйауте может быть несколько слоев. Например, один ВертикалПанель с названиями улиц, другой с компасом, третий с.....

Ширина у них не задана, и начинаются они следовательно все от левого верхнего угла.

И соответственно можно двигать один элемент, не сдвигая все остальное, и не вычисляя сложную структуру таблицы.


 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×