SASGIS - SAS.Планета
View Issue Details
0003615SAS.Планета[All Projects] Хотелкаpublic10-02-2020 06:4120-02-2020 18:54
zed 
 
normalminorhave not tried
newopen 
191221 
 
0003615: Добавить в zmp гибкую настройку языка в url и папки в кэше
1) Сейчас для формирования url у которого в качестве параметра используется язык, есть переменная Language, которая принимает значения вида en, ru, uk и т.д. в зависимости от выбранного языка SAS.

Но часто, эти фиксированные значения нельзя напрямую подставить в url, поскольку каждый сервис принимает этот параметр в своём формате (например: eng, rus или en_US, ru_RU).

Предлагаю добавить в params.txt новую секцию, где прописать нужные сопоставления "язык=параметр_url":

[LangParam]
en=en_US
ru=ru_RU

Если для какого-то языка сопоставление не задано, то брать значение как для en. Если значение для en не задано, то подставлять строку "en". Если секции нет вообще, то отдавать значения как сейчас, без сопоставлений.

2) Поскольку url может меняться автоматически, при смене языка, нужно предусмотреть возможность такой же автоматической смены имени папки в кэше для тайлов, которые будут загружены по этим url.

Предлагаю добавить в params.txt новый булевый параметр "NameInCachePerLang" и если он установлен, то к имени папки в кэше (параметр NameInCache) автоматически добавлять в конец код языка через подчёркивание: "_en", "_ru" и т.д. При этом, естественно, надо учитывать настройку LangParam из предложения выше, для случаев когда некоторые языки сопоставляются с дефолтным en (т.е. карта не локализована для выбранного языка).
No tags attached.
Issue History
10-02-2020 06:41zedNew Issue
10-02-2020 06:44zedDescription Updatedbug_revision_view_page.php?rev_id=7617#r7617
20-02-2020 17:34vdemidovNote Added: 0019659
20-02-2020 17:56zedNote Added: 0019662
20-02-2020 18:15vdemidovNote Added: 0019665
20-02-2020 18:43zedNote Added: 0019666
20-02-2020 18:54vdemidovNote Added: 0019667

Notes
(0019659)
vdemidov   
20-02-2020 17:34   
По поводу словаря в для языка в параметрах карты - очень правильная идея.
А вот с языком в пути к тайлохранилищу ИМХО нужно хорошо подумать. В любом случае, это в разные хотелки разнести надо.
(0019662)
zed   
20-02-2020 17:56   
> А вот с языком в пути к тайлохранилищу ИМХО нужно хорошо подумать.
Подумай, мне вроде бы ничего криминального на ум не приходит.

> В любом случае, это в разные хотелки разнести надо.
Можно разнести, но связаны они очень тесно и вторую можно будет реализовывать только после первой.
(0019665)
vdemidov   
20-02-2020 18:15   
>Подумай, мне вроде бы ничего криминального на ум не приходит
Ну, например тайлохранилище в базе данных. К какой части пути прибавлять язык?
По хорошему, само тайлохранилище должно предоставлять возможность языко-зависимого хранения тайлов. Или не предоставлять. А еще таблица LangParam для сохранения тайлов, совершенно не обязана совпадать с таблицей при скачивании.

>Можно разнести, но связаны они очень тесно и вторую можно будет реализовывать только после первой.
Ну так это отобажается, связью parent_of от первой. То есть пока первая не сделана, вторую делать нельзя.
(0019666)
zed   
20-02-2020 18:43   
Для сохранения тайлов таблица LangParam вообще не используется. Предлагается добавлять стандартные "_en", "_ru" в конец имени. Если кэш в СУБД, то будут просто отдельные таблицы для разных языков, т.е. это будут полностью независимые кэши. Скажем, если раньше там была таблица map, для карт гугла, то теперь будут таблицы map_ru, map_en и проч. Чтобы не потерять старый кэш, нужно будет руками переименовать таблицу map -> map_ru.

И никаких языко-зависимых тайлохранилищ не нужно, вполне хватает функционала тех что есть.
(0019667)
vdemidov   
20-02-2020 18:54   
Ну смотри. Но я бы все равно разделил эти хотелки.