Jump to content
GPS навигатор СитиГИД
IШIN

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

Recommended Posts

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites
1. Что за наезды -- проснётся в 11 часов дня?!

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

:D

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

1.jpg

Share this post


Link to post
Share on other sites
Знатоки, подскажите, как убрать эту надпись?

1.thumb.jpg.037f9b23cf5aea888c97f92e2ea58b7e.jpg

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

И вот мы снова в рубрике "уроки начинающего СИНОПСИСа (©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, чтоб уменьшить размер лангпака.


 

 

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

 

Resources.rsr - PresCGMap.xml

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

 

 

Edited by evgenyK
  • Upvote 2

Share this post


Link to post
Share on other sites

Хорошо, тогда спрошу по теме темы. В первых постах рассказана структура 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:

Edited by ZeuseZ

Share this post


Link to post
Share on other sites

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

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

 

Еще внутри любой из них может быть 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), щас точно не вспомню.
 

Share this post


Link to post
Share on other sites
35 минуты назад, IШIN сказал:

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

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

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

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

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

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

Edited by ZeuseZ

Share this post


Link to post
Share on other sites
31 минуты назад, ZeuseZ сказал:

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

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

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

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

Edited by IШIN

Share this post


Link to post
Share on other sites
удобно еще в процентах (например, кнопки в меню - чтоб 4 в ряд было, поставить 25% (а можно и -1, тогда если добавим еще ряд кнопок, не надо цифру менять.  

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

Share this post


Link to post
Share on other sites
6 минут назад, ZeuseZ сказал:

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

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

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

<layout name="template_buttons_drive_2_hor">

    <VerticalPanel>

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

   </VerticalPanel>

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

    <VerticalPanel>....

Share this post


Link to post
Share on other sites

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

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

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

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

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


 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×