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

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


Recommended Posts

2 часа назад, IШIN сказал:

Сделать "с маневрами" и "без маневров"

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

Link to post
Share on other sites
  • Replies 1.7k
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Во исполнение идеи, кинутой PsevDANImом, закладываю первый камень в фундамент FAQа. Предлагаю в этой теме обсуждений/споров не вести. Если знаете полезную информацию - размещайте (желательно в форма

В рубрике "уроки самопальщика" или "сделай сам себе лангпак" рассмотрим, как немного доработать чужой скин на примере конкретной задачи. Задача - добавить кнопку "скриншот" на основной экран в скин

Как изменить цвет и ширину дорог? Как изменить цвет и размер дельтаплана? Как изменить цвет и ширину линии маршрута? Никак. То есть, лангпаком - никак. Цвета дорог и маршрутной линии можно

Posted Images

5 минут назад, rwww сказал:

так как это реализовать в штатном скине

Начнем-с...

1. General.xml

В самом начале есть блок panel controller. В штатном там что-то закомментировано, я приведу уже свой, измененный вариант:

  <panelcontroller name="nav_screen">
    <panellist name="panels_main">
      <panel type="RollPanel" name="RollPanel"/>
      <panel type="ContextMenu" name="ContextMenu"/>
      <panel type="JunctionView" name="JunctionView"/>
       <panel type="ButtonsWithRoute" name="ButtonsPanel2" prefix="square_"/>
      <panel type="ButtonsNoRoute" name="ButtonsPanelDrive2" prefix="square_"/>
      <panel type="NavWithRoute" name="NavPanel2" prefix="square_"/>
      <panel type="NavNoRoute" name="NavPanelDrive2" prefix="square_"/>
   </panellist>
    <panellist name="panels_square">
      <panel type="RollPanel" name="RollPanel"/>
      <panel type="ContextMenu" name="ContextMenu"/>
      <panel type="JunctionView" name="JunctionView"/>
      <panel type="ButtonsWithRoute" name="ButtonsPanel3" prefix="square_"/>
      <panel type="ButtonsNoRoute" name="ButtonsPanelDrive3" prefix="square_"/>
      <panel type="NavWithRoute" name="NavPanel3" prefix="square_"/>
      <panel type="NavNoRoute" name="NavPanelDrive3" prefix="square_"/>
   </panellist>

</panelcontroller>

В штатном (и у Фотолома) был еще один panellist - с именем "classic"

У меня не получилось его запустить, глючил. В итоге я забил, оставил два - с ними у меня работает.

Еще обнаружил хитрость (приставал к Фотолому с вопросом) - оказывается, имена панел-листов менять нельзя. (panels_main и panels_square).

Я пробовал давать им свои имена - не работает (выбор не сохраняется при выходе). Так что имена оставляем как есть. (можете этот блок целиком использовать из данного примера)

В каждом панель-листе кроме всего прочего описаны, как видим 4 варианта панели - с маршрутом и без+кнопки.

2. Дальше, если поискать по файлу (например по ButtonsPanel), найдем блоки типа:

  <menu name="NavPanelDrive2" rows="3" cols="2">
    <props layout="template_np_drive"/>
    <items>
    </items>
  </menu>

  <menu name="ButtonsPanelDrive2" rows="5" cols="2">
    <props layout="template_buttons_drive"/>
    <items>
    </items>
  </menu>  
.......................

всего их будет 4, соответствуют тем, что были в первом блоке.

Надо по аналогии добавить свои, для второго режима (без маневров)

У меня это все выглядит так:

<!--Панели основного экрана, зум слева -->
  <menu name="NavPanelDrive2" rows="3" cols="2">
    <props layout="template_np_drive"/>
    <items>
    </items>
  </menu>

  <menu name="ButtonsPanelDrive2" rows="5" cols="2">
    <props layout="template_buttons_drive"/>
    <items>
    </items>
  </menu>  
    
  <menu name="NavPanel2" rows="3" cols="2">
    <props layout="template_np"/>
    <items>
    </items>
  </menu>
   
  <menu name="ButtonsPanel2" rows="5" cols="2">
    <props layout="template_buttons"/>
    <items>
    </items>
  </menu>

<!--Панели основного экрана, зум справа -->
  <menu name="NavPanelDrive3" rows="3" cols="2">
    <props layout="template_np_drive_mirror"/>
    <items>
    </items>
  </menu>

  <menu name="ButtonsPanelDrive3" rows="5" cols="2">
    <props layout="template_buttons_drive_mirror"/>
    <items>
    </items>
  </menu>  
    
  <menu name="NavPanel3" rows="3" cols="2">
    <props layout="template_np_mirror"/>
    <items>
    </items>
  </menu>
   
  <menu name="ButtonsPanel3" rows="5" cols="2">
    <props layout="template_buttons_mirror"/>
    <items>
    </items>
  </menu>

В моем примере для одного режима будут использоваться раскладки типа template_np_hor, template_np_vert и т.д., для другого - template_np_mirror_hor и т.п.

Можете просто mirror везде заменить например на NoManevr, и этот блок Вам подойдет как родной.

 

3. Все перечисленные меню должны быть упомянуты в том же файле (general.xml) еще в одном месте:

Ищем itemlist name="allmenu"

Попадем на список всех менюшек, там будут и наши navpaneldrive, но только для одного режима.

Добавим свои:

 <itemlist name="allmenu">
    <item name="StartMenu"/>

.........................

    <item name="NavPanelDrive2"/>
    <item name="ButtonsPanelDrive2"/>
    <item name="NavPanel2"/>
    <item name="ButtonsPanel2"/>
    <item name="NavPanelDrive3"/>
    <item name="ButtonsPanelDrive3"/>
    <item name="NavPanel3"/>
    <item name="ButtonsPanel3"/>

..........................

</itemlist>

4. Чтоб вернуть в меню выкушенную разработчиками команду смены вида, ищем блок settings_ui, вставляем в него строку

<subseting name="subset_navPanels"/>
 (естественно - в ту позицию, где в менюшке нам нужна будет эта строка) 

Получим что-то вроде (у меня эта шпала будет второй сверху, сразу после настройки Ёменю)

      <setting name="settings_ui" menu="SubOptionsDlg">
        <subseting name="settings_mymenu" info="@settings_mymenu_info" layout="Action_info"/>
        <subseting name="subset_navPanels"/>
        <subseting name="subset_GUI_size"/>
    <subseting name="subset_cm_mode"/>
        <subseting name="s_view"/>
        <subseting name="subset_viewOnScreen"/>
        <subseting name="subset_route_street_name_mode"/>
        <subseting name="subset_info"/>
        <subseting name="subset_startmenu"/>
        <subseting name="subset_animate_menu"/>
      </setting>

Все, с General-ом покончено.

5. Теперь открываем Layouts.xml.

В нем копируем все 4 блока template_np_hor, template_np_drive_hor, template_buttons_hor, template_buttons_drive_hor, (сразу же следом за исходными, чтоб долго не искать) и естественно копии переименовываем - добавляем в название перед "hor" например NoManevr (ну разумеется должно быть то же, что писали в Генерале).

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

6. Повторяем пункт 5 для блоков с окончанием "_vert"

7. Сохраняем, проверяем.

8. Расстраиваемся что не сделали бэкап, т.к. где-то не закрыли скобку, и теперь на экране карта без кнопок. Ищем ошибку. :)

 

Link to post
Share on other sites

Спасибо, будем пробовать.

 В штатном скине            (и у Фотолома) был еще один panellist - с именем "classic",              тоже присутствует

Edited by rwww
Link to post
Share on other sites
1 час назад, IШIN сказал:

Сохраняем, проверяем

Блестяще!

Если позволите, добавлю только, что если хочется видеть в выборе скина свои названия, то правим rus.xml, дефолтные названия (это <panellist name="panels_main"> и, соответственно остальные) там уже есть, по ним и ищем.

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

    <item name="NavPanelDrive"/>
    <item name="ButtonsPanelDrive"/>
    <item name="NavPanel"/>
    <item name="ButtonsPanel"/> 
  

На

    <item name="NavPanel4"/>
    <item name="NavPanelDrive4"/>
    <item name="ButtonsPanel4"/>
    <item name="ButtonsPanelDrive4"/>

Возможно, были и другие пути преодоления, но не стал заморачиваться, заработало и ладно. Вот если захочется четвёртый вариант...

  • Upvote 1
Link to post
Share on other sites

+1000!

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

За ашипке прашю венить TapaTalk

  • Upvote 1
Link to post
Share on other sites
1 час назад, IШIN сказал:

В нем копируем все 4 блока template_np_hor, template_np_drive_hor, template_buttons_hor, template_buttons_drive_hor, (сразу же следом за исходными

с  General.xml разобрался а вот Layouts.xml. не совсем понятно, однако, можно по подробнее

Link to post
Share on other sites
Вот если захочется четвёртый вариант...

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

За ашипке прашю венить TapaTalk

2 минуты назад, rwww сказал:

вот Layouts.xml. не совсем понятно, однако, можно поподробнее

Щас, сформулирую.

А вообще-то что нужно - только убрать указатели маневров и расстояния до них?

Тогда можно в 4 раза упростить задачу. Щас надергаю примеров, покажу

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

Но пока растекался мысию по древу

Скрытый текст

Ай, порадовали!

 

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

А вообще-то что нужно - только убрать указатели маневров и расстояния до них?

Мысль вообще то была, сделать  пункт в меню убрать первый маневр , как сделано со вторым маневром в меню=настройки=интерфейс=панель навигации= первый маневр,                тк второй\показать-убрать\ уже есть в настройках

а не переброска по экрану вправо влево маневров

Edited by rwww
Link to post
Share on other sites
 <layout name="template_np_NoManevr_hor">

...мноооооого текста

...

</layout>

Итак. Если хотим только убрать указатели маневров, то получается, что режим "без маршрута" менять ваще не нужно (за него отвечают блоки c приставкой "_drive", более точно можно их имена посмотреть в General, то, о чем писал в п.1).

Кнопки, допустим, нас тоже устраивают, их двигать не хочем (это раскладки со словом buttons).

Тогда меняться у нас будет только раскладка template_np_hor и template_np_vert (это в моем примере, у Вас там может быть немного другое название).

В общем случае алгоритм такой.

В General все упрощается - 

В начале можно написать в таком стиле:

  <panelcontroller name="nav_screen">
    <panellist name="panels_main">
      <panel type="RollPanel" name="RollPanel"/>
      <panel type="ContextMenu" name="ContextMenu"/>
      <panel type="JunctionView" name="JunctionView"/>
       <panel type="ButtonsWithRoute" name="ButtonsPanel2" prefix="square_"/>
      <panel type="ButtonsNoRoute" name="ButtonsPanelDrive2" prefix="square_"/>
      <panel type="NavWithRoute" name="NavPanel2" prefix="square_"/>
      <panel type="NavNoRoute" name="NavPanelDrive2" prefix="square_"/>
   </panellist>
    <panellist name="panels_square">
      <panel type="RollPanel" name="RollPanel"/>
      <panel type="ContextMenu" name="ContextMenu"/>
      <panel type="JunctionView" name="JunctionView"/>
      <panel type="ButtonsWithRoute" name="ButtonsPanel2" prefix="square_"/>
      <panel type="ButtonsNoRoute" name="ButtonsPanelDrive2" prefix="square_"/>
      <panel type="NavWithRoute" name="NavPanel3" prefix="square_"/>
      <panel type="NavNoRoute" name="NavPanelDrive2" prefix="square_"/>
   </panellist>

Обратите внимание - второй панель-лист для ButtonsWithRoute, ButtonsNoRoute и NavNoRoute использует те же панели (".......2"), чтто и первый.

И только NavWithRoute  (панель в режиме с маршрутом)  использует свою схему - NavPanel3

Соответственно, везде далее в ГЕНЕРАЛе можно нужно лишние строки и блоки (по сравнению с предыдущим моим постом) убрать.

А вот теперь лезем руками в LAYOUTS.XML.

Допустим, что в ГЕНЕРАЛе мы для режима с маневрами и без использовали соответственно блоки 

 <menu name="NavPanel2" rows="3" cols="2">
    <props layout="template_np"/>
    <items>
    </items>
  </menu>
...   
...
  <menu name="NavPanel3" rows="3" cols="2">
    <props layout="template_np_NoManevr"/>
    <items>
    </items>
  </menu>

Тогда в Лэйаутсах ищем текст template_np

Найдем блок типа

 <layout name="template_np_hor">

...мноооооого текста

...

</layout>

Выделяем весь блок и копируем следом за самим собой.

И чуток меняем имя, чтоб было как в ГЕНЕРАЛе

 

 <layout name="template_np_NoManevr_hor">

...мноооооого текста

...

</layout>

В нем ищем - где у нас панель маневров.

Дальше все зависит от того, как в исходном ЛП сделано. У меня можно просто удалить весь блок маневров вместе с дистанциями до них - они плавающие, ничего не сползет. Если не уверены - лучше убирать содержимое, оставляя структуру. Найти маневры в структуре несложно - сочетания m1 и m2 приведут к ним.

Пример 

            <VerticalPanel width="66X" invoke="r_listing_auto">
                <HorizontalPanel height="58X">
                  <ImageLabel width="66X" bgimage="@square_navPanel_m1" bgmode="directdraw"/>
                </HorizontalPanel>
            </VerticalPanel>

Если в строке 

<ImageLabel width="66X" bgimage="@square_navPanel_m1" bgmode="directdraw"/>

убрать все лишнее (картинку и режим ее отрисовки), и оставтиь только

<ImageLabel width="66X"/>

то ячейка останется, но без маневра, то есть гарантированно ничего не сползет. (самая частая ошибка - случайное удаление слэша в конце перед угл.скобкой)

Но ячейка останется "кликабельной", то есть при тапе по пустому месту вызовется команда Легенда- invoke="r_listing_auto" 

Мы и ее вырежем - из строки <VerticalPanel width="66X" invoke="r_listing_auto">

оставим <VerticalPanel width="66X">

И так далее.

А затем повторяем в аналогичном блоке template_np_vert

(копируем и вырезаем лишнее)

17 минут назад, fotolom сказал:

Ай, порадовали!

Спасибо В.Ворошилову. Еще в школе видел вопрос про вещего Олега в "ЧтоГдеКогда". Засело в черепной коробке.

12 минуты назад, rwww сказал:

Мысль вообще то была, сделать  пункт в меню убрать первый маневр , как сделано со вторым маневром в меню=настройки=интерфейс=панель навигации= первый маневр,                тк второй\показать-убрать\ уже есть в настройках

а не переброска по экрану вправо влево маневров

Дык я и говорю - пункт такой не вставить. Но можно вставить (там же, в Настройки-Интерфейс) "Выбор экрана навигации" - и там будут "С маневрами" и "Без маневров" (как мы их назовем в Rus.xml).

А если эту настройку еще в ЁМеню добавть, вообще удобно будет.

Link to post
Share on other sites

да, только в штатном скине строка         <VerticalPanel bgimage="@square_navPanel_f1_bg" invoke="r_listing_auto"> 

сделал ее                                                <VerticalPanel width="44X">

осталось еще метры убрать

из этой строки 

<ImageLabel type="text" class="square_p1_dist2m1_val" text="@navPanel_txt_dist2m1"/>

делаем <ImageLabel width="44X"/>

и метров нету и левый угол свободный, ну а первый и  второй маневры  на малых повторителях видны, для 7" девайса и их вполне хватит

теперь подумать надо, двигать спидометр или нет, надо проехаться.

Screenshot_20160524-160632.jpg

Edited by rwww
Link to post
Share on other sites

пока сделал вот так 

оставил на экране кн выход

Screenshot_20160524-164356.jpg

Edited by rwww
Link to post
Share on other sites
56 минут назад, rwww сказал:

да, только в штатном скине строка         <VerticalPanel bgimage="@square_navPanel_f1_bg" invoke="r_listing_auto"> 

сделал ее                                                <VerticalPanel width="44X">

Да можно было и вовсе ее убрать. Раз она безразмерная, значит размер был задан где-то выше, в родительской ячейке.

57 минут назад, rwww сказал:

Теперь подумать надо, двигать спидометр или нет

ИМХО и думать нечего, конечно двигать.

Чего  он болтается, как фиалка в проруби.

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

Чего  он болтается, как фиалка в проруби.

Тоже так думаю.

в принципе кн ДРОИ ПОИСК и др можно в верхнее меню отправить

Screenshot_20160524-165920.jpg

Edited by rwww
Link to post
Share on other sites
  • 2 weeks later...

В новой тестовой версии 9.3.779 появилась кнопка обыкновенный  фотоаппарат, не путать  со снимком экрана, так же по моему и проигрыватель хотят встроить, посмотрим.

<layout name="template_ScriptPanel_hor">

Screenshot_20160602-102749.jpg

Link to post
Share on other sites
3 часа назад, rwww сказал:

В новой тестовой версии 9.3.779 появилась кнопка обыкновенный  фотоаппарат

Ужос. Еще кнопки СМС, Твитнуть, Пиднять-покласть слухавку, ...

И этих фото-кнопок две сделать! Вторая - селфи ж !

Link to post
Share on other sites
4 часа назад, rwww сказал:

появилась кнопка обыкновенный  фотоаппарат,

Есть подозрение, что не совсем обыкновенный. А интегрированный в отправку фото во всяческие чаты и путевые заметки. И не стоит говорить, что это никому не нужно. Загляните в Ленты и прочие чаты. Количество тусующихся там заметно превышает количество пишущих, что это на фиг не нужно.

Так что, будем реалистами.

Из замеченного ещё: лента новостей RSS, изменена Легенда, там теперь ещё и ПОИ в ключевых точках. И загадочная секция в layout.xml, благодаря которой справа от скорости (в дефолтном ленгпаке) появляются какие-то цифры (по виду - время), что значат, непонятно.

Секция такая:

    <VerticalPanel>
      <HorizontalPanel height="13.33X" name="toolbar"/>
      <HorizontalPanel height="23X"/>
      <HorizontalPanel height="28X">
        <VerticalPanel width="90X"/>
        <VerticalPanel width="35X" type="text" class="square_dpoi_txt_info" text="@warn_INFO1"/>
        <VerticalPanel width="35X" type="text" class="square_dpoi_txt_info" text="@warn_INFO2"/>
        <VerticalPanel width="35X" type="text" class="square_dpoi_txt_info" text="@warn_INFO3"/>
      </HorizontalPanel>
    </VerticalPanel>

Переделаны некоторые строки в меню, типа "расстояние до", "время до". Пустяки, одним словом. Зато очень облегчен за счёт этого rus.xml.

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

И загадочная секция в layout.xml, благодаря которой справа от скорости (в дефолтном ленгпаке) появляются какие-то цифры (по виду - время), что значат, непонятно.

А это разве не надписи расстояния под значками радаров, засад и неровных дорог? Они-то издавна были

Link to post
Share on other sites
9 часов назад, IШIN сказал:

А это разве не надписи расстояния под значками радаров, засад и неровных дорог? Они-то издавна были

Нет, это другое. Что, пока непонятно.

Link to post
Share on other sites
14 часа назад, rwww сказал:

В новой тестовой версии 9.3.779 появилась кнопка обыкновенный  фотоаппарат, не путать  со снимком экрана, так же по моему и проигрыватель хотят встроить, посмотрим.

<layout name="template_ScriptPanel_hor">

Screenshot_20160602-102749.jpg

просили селфи - получите.  Кнопку нужно побольше и посередине экрана сделать.

Edited by dkltd
Link to post
Share on other sites
В 02.06.2016 в 12:16, IШIN сказал:

разве не надписи расстояния под значками радаров, засад и неровных дорог?

 

В 02.06.2016 в 21:20, fotolom сказал:

Нет, это другое. Что, пока непонятно.

Разъяснилось, это относится к новому сервису "Пробки по маршруту":

screenshot_272.png

Треугольный значок, под ним - расстояние до пробки и время пребывания в ней.

Пришлось много чего исправлять, ошибки в дефолтном скине, особенно в таблет.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...