Compare commits

..

1 Commits

Author SHA1 Message Date
Yannik Bloscheck
1cf88f1429 Display subtypes in search results
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2026-01-17 13:33:50 +01:00
66 changed files with 242 additions and 627 deletions

View File

@@ -34,63 +34,19 @@ on:
- track_generator/**
- xcode/**
env:
SUBMODULE_CACHE_PATHS: |
.git/modules
3party/CMake-MetalShaderSupport
3party/Vulkan-Headers
3party/boost
3party/expat
3party/fast_double_parser
3party/fast_obj
3party/freetype/freetype
3party/gflags
3party/glaze
3party/glfw
3party/glm
3party/googletest
3party/harfbuzz/harfbuzz
3party/icu/icu
3party/imgui/imgui
3party/jansson/jansson
3party/just_gtfs
3party/protobuf/protobuf
3party/pugixml/pugixml
3party/utfcpp
tools/kothic
tools/osmctools
jobs:
lint:
name: Android Lint
runs-on: ubuntu-latest
container:
image: codeberg.org/comaps/docker-android-sdk:ubuntu-standalone-zy-docker
options: --user root
steps:
- name: Checkout sources
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Cache world map
uses: actions/cache@v4
with:
path: data/world_mwm
key: world-mwm
- uses: actions/cache@v4
with:
path: ${{ env.SUBMODULE_CACHE_PATHS }}
key: submodules-${{ hashFiles('.gitmodules') }}
restore-keys: |
submodules-
- name: Sync and update submodules
- name: Parallel submodules checkout
shell: bash
run: |
git submodule sync --recursive
git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
- name: Lint
shell: bash
@@ -100,9 +56,6 @@ jobs:
android-check:
name: Build Android Debug
runs-on: ubuntu-latest
container:
image: codeberg.org/comaps/docker-android-sdk:ubuntu-standalone-zy-docker
options: --user root
strategy:
fail-fast: false
matrix:
@@ -118,32 +71,23 @@ jobs:
cancel-in-progress: true
steps:
- name: Install build tools and dependencies
shell: bash
run: |
sudo apt-get update -y
sudo apt-get install -y ninja-build
- name: Checkout sources
uses: actions/checkout@v4
with:
fetch-depth: 200 # enough to get all commits for the current day
- name: Cache world map
uses: actions/cache@v4
with:
path: data/world_mwm
key: world-mwm
- uses: actions/cache@v4
with:
path: ${{ env.SUBMODULE_CACHE_PATHS }}
key: submodules-${{ hashFiles('.gitmodules') }}
restore-keys: |
submodules-
- name: Sync and update submodules
- name: Parallel submodules checkout
shell: bash
run: |
git submodule sync --recursive
git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
- name: Configure ccache
uses: https://github.com/hendrikmuhs/ccache-action@v1.2
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ github.workflow }}-${{ matrix.flavor }}
@@ -153,11 +97,14 @@ jobs:
env:
CMAKE_C_COMPILER_LAUNCHER: ccache
CMAKE_CXX_COMPILER_LAUNCHER: ccache
run: ./gradlew -P${{ matrix.arch }} assemble${{ matrix.flavor }}
run: |
cmake --version
ninja --version
./gradlew -P${{ matrix.arch }} assemble${{ matrix.flavor }}
- name: Upload ${{ matrix.flavor }} apk
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: android-${{ matrix.flavor }}
path: android/app/build/outputs/apk/**/*.apk
path: android/app/build/outputs/apk/**/OrganicMaps-*.apk
if-no-files-found: error

View File

@@ -1,6 +1,9 @@
name: Android Check
on:
workflow_dispatch: # Manual trigger
push:
branches:
- main
env:
JAVA_HOME: /usr/lib/jvm/temurin-21-jdk-amd64 # Java 21 is required for Android Gradle 8 plugin

View File

@@ -22,8 +22,8 @@
<a href="https://codeberg.org/comaps/comaps/src/branch/main/LICENSE">
<img src="https://img.shields.io/github/license/comaps/comaps?style=for-the-badge&logo=opensourceinitiative&logoColor=white&color=588157" alt="License"/>
</a>
<a href="https://codeberg.org/comaps/comaps/actions?workflow=android-check.yaml">
<img src="https://codeberg.org/comaps/comaps/badges/workflows/android-check.yaml/badge.svg?label=Android%20Build&logo=android&logoColor=white&style=for-the-badge" alt="Android Build Status"/>
<a href="https://github.com/comaps/comaps/actions/workflows/android-check.yaml">
<img src="https://img.shields.io/github/actions/workflow/status/comaps/comaps/.github/workflows/android-check.yaml?label=Android%20Build&logo=android&logoColor=white&style=for-the-badge" alt="Android Build Status"/>
</a>
<a href="https://github.com/comaps/comaps/actions/workflows/ios-check.yaml">
<img src="https://img.shields.io/github/actions/workflow/status/comaps/comaps/.github/workflows/ios-check.yaml?label=iOS%20Build&logo=apple&logoColor=white&style=for-the-badge" alt="iOS Build Status"/>

View File

@@ -5,6 +5,45 @@
android:viewportWidth="74"
android:viewportHeight="57">
<path
android:pathData="m67.3,21.772 l-28.103,11.757 11.772,5.095 5.463,11.606z"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#757575"
android:pathData="m26.278,8.137c3.695,-3.729 9.719,-3.761 13.453,-0.073 3.736,3.687 3.769,9.699 0.074,13.425l-14.597,14.726c-2.353,2.373 -2.331,6.197 0.046,8.544 2.379,2.345 6.209,2.326 8.562,-0.048l14.303,-14.428c-0.155,-0.32 -0.286,-0.647 -0.394,-0.978l-4.006,0.001c-2.787,0 -3.659,-3.825 -1.045,-5.042l7.813,-3.604c0.879,-0.652 1.87,-1.098 2.9,-1.333l11.936,-5.495c2.091,-0.869 4.357,1.392 3.486,3.478l-10.454,22.603c-1.219,2.607 -5.053,1.736 -5.053,-1.044v-4.418c-0.506,-0.122 -1.006,-0.296 -1.494,-0.525l-14.303,14.428c-4.368,4.406 -11.485,4.444 -15.901,0.086 -4.413,-4.358 -4.452,-11.461 -0.084,-15.867l14.597,-14.726c1.68,-1.693 1.665,-4.426 -0.033,-6.102 -1.7,-1.677 -4.437,-1.662 -6.117,0.033l-9.43,9.516c0.436,0.994 0.679,2.091 0.679,3.244 0,4.464 -3.634,8.091 -8.108,8.091 -4.475,0 -8.108,-3.627 -8.108,-8.091 0,-4.466 3.633,-8.091 8.108,-8.091 1.424,0 2.764,0.367 3.928,1.012z" />
android:strokeColor="#757575" />
<path
android:pathData="M45.042,44.7m-4.5,0a4.5,4.5 0,1 1,9 0a4.5,4.5 0,1 1,-9 0"
android:fillColor="#757575" />
<path
android:pathData="M37.942,51.6m-4.5,0a4.5,4.5 0,1 1,9 0a4.5,4.5 0,1 1,-9 0"
android:fillColor="#757575" />
<path
android:pathData="M27.842,52m-4.5,0a4.5,4.5 0,1 1,9 0a4.5,4.5 0,1 1,-9 0"
android:fillColor="#757575" />
<path
android:pathData="m26.942,43.5c0,2.485 -2.015,4.5 -4.5,4.5 -2.485,0 -4.5,-2.015 -4.5,-4.5 0,-2.485 2.015,-4.5 4.5,-4.5 2.485,0 4.5,2.015 4.5,4.5z"
android:fillColor="#757575" />
<path
android:pathData="M26.642,34.5m-4.5,0a4.5,4.5 0,1 1,9 0a4.5,4.5 0,1 1,-9 0"
android:fillColor="#757575" />
<path
android:pathData="M34.042,27.5m-4.5,0a4.5,4.5 0,1 1,9 0a4.5,4.5 0,1 1,-9 0"
android:fillColor="#757575" />
<path
android:pathData="M40.842,20.5m-4.5,0a4.5,4.5 0,1 1,9 0a4.5,4.5 0,1 1,-9 0"
android:fillColor="#757575" />
<path
android:pathData="M41.842,10.5m-4.5,0a4.5,4.5 0,1 1,9 0a4.5,4.5 0,1 1,-9 0"
android:fillColor="#757575" />
<path
android:pathData="M32.842,4.5m-4.5,0a4.5,4.5 0,1 1,9 0a4.5,4.5 0,1 1,-9 0"
android:fillColor="#757575" />
<path
android:pathData="M23.842,9.5m-4.5,0a4.5,4.5 0,1 1,9 0a4.5,4.5 0,1 1,-9 0"
android:fillColor="#757575" />
<path
android:pathData="M16.842,16.5m-4.5,0a4.5,4.5 0,1 1,9 0a4.5,4.5 0,1 1,-9 0"
android:fillColor="#757575" />
<path
android:pathData="M9.842,23.5m-4.5,0a4.5,4.5 0,1 1,9 0a4.5,4.5 0,1 1,-9 0"
android:fillColor="#757575" />
</vector>

View File

@@ -9,6 +9,45 @@
android:fillColor="@color/active_track_recording"
android:fillAlpha="0.78" />
<path
android:pathData="m33.024,19.508c3.955,-3.981 10.402,-4.015 14.399,-0.078 3.999,3.937 4.034,10.355 0.079,14.333l-15.623,15.722c-2.518,2.534 -2.495,6.616 0.049,9.122 2.546,2.504 6.646,2.483 9.164,-0.051l15.309,-15.404c-0.166,-0.342 -0.306,-0.691 -0.422,-1.044l-4.288,0.001c-2.983,0 -3.916,-4.084 -1.118,-5.383l8.362,-3.848c0.941,-0.696 2.001,-1.172 3.104,-1.423l12.775,-5.867c2.238,-0.928 4.663,1.486 3.731,3.713l-11.189,24.132c-1.305,2.783 -5.408,1.854 -5.408,-1.115l-0,-4.717c-0.542,-0.13 -1.077,-0.316 -1.599,-0.561l-15.309,15.404c-4.675,4.704 -12.293,4.745 -17.019,0.092 -4.723,-4.653 -4.765,-12.237 -0.09,-16.941l15.623,-15.722c1.798,-1.808 1.782,-4.725 -0.035,-6.515 -1.819,-1.79 -4.749,-1.774 -6.547,0.035l-10.093,10.16c0.467,1.061 0.727,2.232 0.727,3.464 0,4.766 -3.89,8.638 -8.678,8.638 -4.79,0 -8.678,-3.872 -8.678,-8.638 0,-4.768 3.888,-8.638 8.678,-8.638 1.524,0 2.958,0.392 4.204,1.081z"
android:fillColor="#ffffff"/>
android:pathData="m78.907,32.87 l-31.833,13.318 13.335,5.772 6.188,13.147z"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#ffffff"
android:strokeColor="#ffffff" />
<path
android:pathData="M49.731,57.709a5.097,5.097 0,1 0,10.195 0a5.097,5.097 0,1 0,-10.195 0z"
android:fillColor="#ffffff" />
<path
android:pathData="M41.688,65.525a5.097,5.097 0,1 0,10.195 0a5.097,5.097 0,1 0,-10.195 0z"
android:fillColor="#ffffff" />
<path
android:pathData="M30.247,65.978a5.097,5.097 0,1 0,10.195 0a5.097,5.097 0,1 0,-10.195 0z"
android:fillColor="#ffffff" />
<path
android:pathData="m34.324,56.35c0,2.815 -2.282,5.097 -5.097,5.097 -2.815,0 -5.097,-2.282 -5.097,-5.097 0,-2.815 2.282,-5.097 5.097,-5.097 2.815,0 5.097,2.282 5.097,5.097z"
android:fillColor="#ffffff" />
<path
android:pathData="M28.888,46.155a5.097,5.097 0,1 0,10.195 0a5.097,5.097 0,1 0,-10.195 0z"
android:fillColor="#ffffff" />
<path
android:pathData="M37.27,38.226a5.097,5.097 0,1 0,10.195 0a5.097,5.097 0,1 0,-10.195 0z"
android:fillColor="#ffffff" />
<path
android:pathData="M44.974,30.297a5.097,5.097 0,1 0,10.195 0a5.097,5.097 0,1 0,-10.195 0z"
android:fillColor="#ffffff" />
<path
android:pathData="M46.106,18.969a5.097,5.097 0,1 0,10.195 0a5.097,5.097 0,1 0,-10.195 0z"
android:fillColor="#ffffff" />
<path
android:pathData="M35.911,12.173a5.097,5.097 0,1 0,10.195 0a5.097,5.097 0,1 0,-10.195 0z"
android:fillColor="#ffffff" />
<path
android:pathData="M25.718,17.837a5.097,5.097 0,1 0,10.195 0a5.097,5.097 0,1 0,-10.195 0z"
android:fillColor="#ffffff" />
<path
android:pathData="M17.788,25.766a5.097,5.097 0,1 0,10.195 0a5.097,5.097 0,1 0,-10.195 0z"
android:fillColor="#ffffff" />
<path
android:pathData="M9.858,33.695a5.097,5.097 0,1 0,10.195 0a5.097,5.097 0,1 0,-10.195 0z"
android:fillColor="#ffffff" />
</vector>

View File

@@ -129,7 +129,7 @@
<string name="clear_search">Dilea Istori Hwilas</string>
<string name="read_in_wikipedia">Wikipedya</string>
<string name="wikimedia_commons">Wikimedia Commons</string>
<string name="p2p_your_location">Dha Tyller</string>
<string name="p2p_your_location">Agas Tyller</string>
<string name="p2p_start">Dalleth</string>
<string name="next_button">Nessa</string>
<string name="editor_time_add">Addya Rol Vetyansow</string>
@@ -186,8 +186,8 @@
<string name="error_enter_correct_zip_code">Ynworra unn kod post ewn</string>
<string name="editor_other_info">Noten dhe bodhogyon OpenStreetMap (dre dhewis)</string>
<string name="editor_more_about_osm">Moy a-dro OpenStreetMap</string>
<string name="editor_osm_history">Dha istori golegyans</string>
<string name="editor_osm_notes">Dha notennow mappow</string>
<string name="editor_osm_history">Agas istori golegyans</string>
<string name="editor_osm_notes">Agas notennow mappow</string>
<string name="editor_operator">Oberador</string>
<string name="operator">Oberador: %s</string>
<string name="kilometers_per_hour">kdo</string>
@@ -266,9 +266,9 @@
<string name="toll_road">Tollfordh</string>
<string name="unpaved_road">Fordh dor</string>
<string name="ferry_crossing">Kowbalhyns</string>
<string name="yes">Ea</string>
<string name="yes">Ya</string>
<string name="no">Na</string>
<string name="yes_available">Ea</string>
<string name="yes_available">Ya</string>
<string name="no_available">Na</string>
<string name="capacity">Dalghuster: %s</string>
<string name="network">Rosweyth: %s</string>

View File

@@ -151,7 +151,7 @@
<!-- Kmz file successful loading -->
<string name="load_kmz_successful">Os favoritos foram carregados com sucesso! Pode encontrá-los no mapa ou no ecrã de gestão dos favoritos.</string>
<!-- Kml file loading failed -->
<string name="load_kmz_failed">Impossível carregar favoritos. O ficheiro pode estar corrompido ou com defeito.</string>
<string name="load_kmz_failed">Surgiu uma falha ao enviar os favoritos. O ficheiro pode estar corrompido ou com defeito.</string>
<!-- Failed to recognize the format of a bookmarks or tracks file. -->
<string name="unknown_file_type">O tipo de ficheiro não é reconhecido pela aplicação: \n%1$s</string>
<!-- Failed to open a bookmarks or tracks file in CoMaps. -->
@@ -549,7 +549,7 @@
<string name="dialog_error_storage_message">O armazenamento externo não está disponível. Provavelmente porque o cartão SD foi removido, danificado ou o sistema de ficheiros é apenas para leitura. Verifique e contacte-nos através do email support@comaps.app</string>
<string name="setting_emulate_bad_storage">Emular o armazenamento defeituoso</string>
<string name="error_enter_correct_name">Introduza um nome correto</string>
<string name="bookmark_lists">Listas de Favoritos</string>
<string name="bookmark_lists">Listas</string>
<!-- Do not display all bookmark lists on the map -->
<string name="bookmark_lists_hide_all">Ocultar tudo</string>
<string name="bookmark_lists_show_all">Mostrar tudo</string>
@@ -560,7 +560,7 @@
</plurals>
<string name="bookmarks_create_new_group">Criar nova lista</string>
<!-- Bookmark categories screen, button that opens folder selection dialog to import KML/KMZ/GPX/KMB files -->
<string name="bookmarks_import">Importar favoritos</string>
<string name="bookmarks_import">Importar favoritos e trajetos</string>
<string name="bookmarks_error_message_share_general">Não foi possível partilhar devido a um erro da aplicação</string>
<string name="bookmarks_error_title_share_empty">Erro ao partilhar</string>
<string name="bookmarks_error_message_share_empty">Não é possível partilhar uma lista vazia</string>
@@ -748,7 +748,7 @@
<string name="browser_not_available">O navegador de Internet não está disponível</string>
<string name="volume">Volume</string>
<!-- Bookmark categories screen, button that opens share dialog to export all bookmarks and tracks -->
<string name="bookmarks_export">Exportar todos os Favoritos e Trajetos</string>
<string name="bookmarks_export">Exportar todos os favoritos e trajetos</string>
<!-- button in (app) TTS settings, to open the system TTS settings. -->
<string name="pref_tts_open_system_settings">Definições do sistema de síntese de voz</string>
<!-- toast displayed when pressing the "Speech synthesis system settings" button, and the system settings aren't found. -->
@@ -780,7 +780,7 @@
<!-- Title for the "Stop Without Saving" action for the alert when saving a track recording. -->
<string name="continue_recording">Continuar gravação</string>
<!-- Title for the alert when saving a track recording. -->
<string name="track_recording_alert_title">Guardar nos Favoritos?</string>
<string name="track_recording_alert_title">Guardar em Favoritos e Trajetos?</string>
<!-- Message for the toast when saving the track recording is finished but nothing to save. -->
<string name="track_recording_toast_nothing_to_save">O trajeto está vazio - não há nada para guardar</string>
<!-- Error message when there are no File Manager apps installed to select a folder when importing Bookmarks and Tracks -->
@@ -847,10 +847,10 @@
<string name="backup_interval_every_day">Diariamente</string>
<string name="backup_interval_every_week">Semanalmente</string>
<string name="backup_interval_manual_only">Off (apenas manual)</string>
<string name="bookmark_color">Cor do Favorito</string>
<string name="bookmark_color">Cor do marcador</string>
<string name="pref_backup_now_summary_ok">Backup completado com sucesso</string>
<string name="pref_backup_location_summary_initial">Por favor selecione uma pasta primeiro e garanta permissão</string>
<string name="pref_backup_title">Backup dos Favoritos</string>
<string name="pref_backup_title">Backup dos marcadores e trajetos</string>
<string name="dialog_report_error_missing_folder">A localização de backup selecionada não está disponível ou não permite escrita. Selecione outra localização, por favor.</string>
<string name="dialog_report_error_with_logs">Por favor, envie-nos um reporte de erro:\n - \"Ativar o histórico\" nas definições\n - reproduza o problema\n - no ecrã de \"Acerca &amp; Ajuda\" pressione o botão para \"Reportar um problema\" e envie via email ou chat\n - desative o histórico</string>
<string name="open_now">Aberto agora</string>
@@ -914,5 +914,4 @@
<string name="download_resources_custom_url_message">Substitui o servidor de download de mapas normal. Deixe em branco para usar o servidor do CoMaps padrão.</string>
<string name="download_resources_custom_url_summary_none">Indefinido</string>
<string name="download_resources_custom_url_error_scheme">Por favor, insira um URL começando com http:// ou https://</string>
<string name="pref_maplanguage_local">Idioma Local</string>
</resources>

View File

@@ -412,7 +412,7 @@
<item quantity="few">%d datoteke najdene. Po pretvorbi si jih lahko ogledate.</item>
<item quantity="other">%d datotek najdenih. Po pretvorbi si jih lahko ogledate.</item>
</plurals>
<string name="restore">Povrni</string>
<string name="restore">Obnovi</string>
<plurals name="tracks">
<item quantity="one">%d pot</item>
<item quantity="two">%d poti</item>

View File

@@ -493,9 +493,9 @@
<string name="editor_more_about_osm">关于 OpenStreetMap 的更多信息</string>
<string name="editor_osm_history">您的编辑历史</string>
<string name="editor_osm_notes">您的地图数据注记</string>
<string name="editor_operator">运营方</string>
<string name="editor_operator">操作员</string>
<!-- To indicate the operator of ATMs, bicycle rentals, electric vehicle charging stations... -->
<string name="operator">运营方:%s</string>
<string name="operator">操作员: %s</string>
<string name="editor_category_unsuitable_title">找不到合适的类别?</string>
<string name="editor_category_unsuitable_text">CoMaps 只允许添加简单的点类别,即无法添加城镇、道路、湖泊、建筑轮廓等类别。请直接向 <a href="https://www.openstreetmap.org">OpenStreetMap.org</a> 添加此类类别。请查看我们的<a href="https://www.comaps.app/support/advanced-map-editing/">指南</a>,了解详细的步骤说明。</string>
<string name="downloader_no_downloaded_maps_title">您尚未下载任何地图</string>

View File

@@ -153,7 +153,7 @@ project.afterEvaluate {
final taskName = gradle.startParameter.taskNames
if (['assemble', 'bundle', 'compile', 'install', 'lint', 'publish', 'run'].any{taskName.any{task->task.startsWith(it)}}) {
if (['assemble', 'bundle', 'compile', 'install', 'run', 'publish'].any{taskName.any{task->task.startsWith(it)}}) {
exec {
workingDir '../..'

View File

@@ -149,6 +149,7 @@
<string name="type.amenity.pub">Pab</string>
<string name="type.amenity.public_bookcase">Razmena knjiga</string>
<string name="type.amenity.recycling.centre">Centar za reciklažu</string>
<string name="type.amenity.recycling">Kontejner za reciklažu</string>
<string name="type.amenity.recycling.container">Kontejner za reciklažu</string>
<string name="type.recycling.batteries">Beterije</string>
<string name="type.recycling.clothes">Stara odeća</string>

View File

@@ -587,6 +587,7 @@
<string name="type.amenity.police">Полиция</string>
<string name="type.amenity.pub">Кръчма</string>
<string name="type.amenity.public_bookcase">Книжен обмен</string>
<string name="type.amenity.recycling">Кофи за преработваем отпадък</string>
<string name="type.amenity.recycling.container">Кофи за преработваем отпадък</string>
<string name="type.recycling.clothes">Дрехи</string>
<string name="type.recycling.glass_bottles">Стъклени бутилки</string>

View File

@@ -957,7 +957,7 @@
<string name="type.shop.coffee">Kaffehandel</string>
<string name="type.shop.computer">Computerforretning</string>
<string name="type.shop.confectionery">Slikbutik</string>
<string name="type.shop.convenience">Nærbutik</string>
<string name="type.shop.convenience">Døgnbutik</string>
<string name="type.shop.copyshop">Kopieringsbutik</string>
<string name="type.shop.cosmetics">Kosmetiker</string>
<string name="type.shop.curtain">Gardinhandel</string>

View File

@@ -131,6 +131,7 @@
<string name="type.amenity.public_bookcase">Intercambio de libros</string>
<!-- SECTION: Types: Recycling -->
<string name="type.amenity.recycling.centre">Centro de reciclaje</string>
<string name="type.amenity.recycling">Contenedor de reciclaje</string>
<string name="type.amenity.recycling.container">Contenedor de reciclaje</string>
<string name="type.recycling.batteries">Baterías</string>
<string name="type.recycling.clothes">Ropa</string>
@@ -1397,7 +1398,7 @@
<string name="type.building.guardhouse">Garita de seguridad</string>
<string name="type.power.portal">Torre de alta tensión</string>
<string name="type.shop.lighting">Tienda de iluminación</string>
<string name="type.amenity.bench.backless">Sin respaldo</string>
<string name="type.amenity.bench.backless">Banco sin respaldo</string>
<string name="type.leisure.bandstand">Templete</string>
<string name="type.leisure.sports_centre.sport.multi">Centro deportivo</string>
<string name="type.leisure.sports_centre.sport.american_football">Centro deportivo</string>
@@ -1508,5 +1509,4 @@
<string name="type.railway.turntable">Plataforma giratoria ferroviaria</string>
<string name="type.tourism.information.tactile_map">Mapa táctil</string>
<string name="type.emergency.disaster_help_point">Punto de ayuda para emergencias y desastres</string>
<string name="type.emergency.access_point.address">Dirección de Punto de Emergencia</string>
</resources>

View File

@@ -1395,7 +1395,7 @@
<string name="type.power.portal">Õhuliini värava-tüüpi mast</string>
<string name="type.office.security">Turvafirma kontor</string>
<string name="type.shop.lighting">Lambipood</string>
<string name="type.amenity.bench.backless">Ilma seljatoeta</string>
<string name="type.amenity.bench.backless">Ilma seljatoeta pink</string>
<string name="type.leisure.bandstand">Väike vabaõhulava</string>
<string name="type.leisure.sports_centre.sport.multi">Spordikeskus</string>
<string name="type.leisure.fitness_centre.sport.yoga">Joogastuudio</string>
@@ -1507,5 +1507,4 @@
<string name="type.amenity.charging_station.motorcycle">Mootorrattad</string>
<string name="type.amenity.charging_station.small">Väike laadimisjaam</string>
<string name="type.emergency.disaster_help_point">Katastroofiabi teenused</string>
<string name="type.emergency.access_point.address">Hädaolukorras asukohatuvastuspunkti aadress</string>
</resources>

View File

@@ -124,6 +124,7 @@
<string name="type.amenity.public_bookcase">Microbibliothèque</string>
<!-- SECTION: Types: Recycling -->
<string name="type.amenity.recycling.centre">Centre de recyclage</string>
<string name="type.amenity.recycling">Conteneur de recyclage</string>
<string name="type.amenity.recycling.container">Conteneur de recyclage</string>
<string name="type.recycling.batteries">Batteries</string>
<string name="type.recycling.clothes">Vêtements usagés</string>
@@ -1396,7 +1397,7 @@
<string name="type.building.guardhouse">Guérite de sécurité</string>
<string name="type.power.portal">Portique haute tension</string>
<string name="type.shop.lighting">Boutique de luminaires</string>
<string name="type.amenity.bench.backless">Sans dossier</string>
<string name="type.amenity.bench.backless">Banc sans dossier</string>
<string name="type.leisure.bandstand">Kiosque à musique</string>
<string name="type.leisure.sports_centre.sport.multi">Complexe sportif</string>
<string name="type.leisure.sports_centre.sport.american_football">Complexe sportif</string>

View File

@@ -151,6 +151,7 @@
<string name="type.amenity.pub">Pub</string>
<string name="type.amenity.public_bookcase">Razmjena knjiga</string>
<string name="type.amenity.recycling.centre">Centar za recikliranje</string>
<string name="type.amenity.recycling">Kontejner za recikliranje</string>
<string name="type.amenity.recycling.container">Kontejner za recikliranje</string>
<string name="type.recycling.batteries">Baterije</string>
<string name="type.recycling.clothes">Odjeća</string>

View File

@@ -131,6 +131,7 @@
<string name="type.amenity.public_bookcase">Biblioteca di strada</string>
<!-- SECTION: Types: Recycling -->
<string name="type.amenity.recycling.centre">Centro di riciclaggio</string>
<string name="type.amenity.recycling">Contenitore per materiali riciclabili</string>
<string name="type.amenity.recycling.container">Contenitore per materiali riciclabili</string>
<string name="type.recycling.batteries">Batterie</string>
<string name="type.recycling.clothes">Vestiti usati</string>

View File

@@ -130,6 +130,7 @@
<string name="type.amenity.public_bookcase">街角文庫</string>
<!-- SECTION: Types: Recycling -->
<string name="type.amenity.recycling.centre">リサイクルセンター</string>
<string name="type.amenity.recycling">リサイクルボックス</string>
<string name="type.amenity.recycling.container">リサイクルボックス</string>
<string name="type.recycling.batteries">バッテリー</string>
<string name="type.recycling.clothes">古着</string>

View File

@@ -97,6 +97,7 @@
<string name="type.amenity.pub">Barr</string>
<string name="type.amenity.public_bookcase">Keschanj Lyver</string>
<string name="type.amenity.recycling.centre">Kresen Eylgylghyans</string>
<string name="type.amenity.recycling">Kofen Eylgylghyans</string>
<string name="type.amenity.recycling.container">Kofen Eylgylghyans</string>
<string name="type.recycling.batteries">Batriow</string>
<string name="type.recycling.clothes">Dillas</string>

View File

@@ -110,7 +110,7 @@
<string name="type.amenity.bank">Bankas</string>
<string name="type.amenity.bar">Baras</string>
<string name="type.amenity.bench">Suolas</string>
<string name="type.amenity.bench.backless">Be atramos</string>
<string name="type.amenity.bench.backless">Suolas be atramos</string>
<string name="type.amenity.bicycle_parking">Dviračių stovėjimo aikštelė</string>
<string name="type.amenity.bicycle_parking.covered">Dengta dviračių stovėjimo aikštelė</string>
<string name="type.amenity.boat_rental">Valčių nuoma</string>
@@ -136,8 +136,8 @@
<string name="type.leisure.adult_gaming_centre">Lošimo automatų salonas</string>
<string name="type.leisure.amusement_arcade">Žaidimo automatų salonas</string>
<string name="type.amenity.charging_station">Krovimo stotelė</string>
<string name="type.amenity.charging_station.bicycle">Elektriniams dviračiams</string>
<string name="type.amenity.charging_station.motorcar">Elektromobiliams</string>
<string name="type.amenity.charging_station.bicycle">Elektrinių dviračių krovimo stotelė</string>
<string name="type.amenity.charging_station.motorcar">Elektromobilių krovimo stotelė</string>
<string name="type.amenity.childcare">Lopšelis</string>
<string name="type.amenity.cinema">Kino teatras</string>
<string name="type.leisure.bowling_alley">Boulingo klubas</string>
@@ -225,6 +225,7 @@
<string name="type.amenity.pub">Aludė</string>
<string name="type.amenity.public_bookcase">Knygų namelis</string>
<string name="type.amenity.recycling.centre">Antrinių žaliavų surinkimo aikštelė</string>
<string name="type.amenity.recycling">Antrinių žaliavų konteineris</string>
<string name="type.amenity.recycling.container">Antrinių žaliavų konteineris</string>
<string name="type.recycling.batteries">Baterijos</string>
<string name="type.recycling.clothes">Tekstilė</string>
@@ -1432,8 +1433,4 @@
<string name="type.tourism.information.tactile_map">Taktilinis žemėlapis</string>
<string name="type.railway.disused.bridge">Apleistas geležinkelio tiltas</string>
<string name="type.railway.disused.tunnel">Apleistas geležinkelio tunelis</string>
<string name="type.amenity.charging_station.motorcycle">Motociklams</string>
<string name="type.amenity.charging_station.small">Ribota galia</string>
<string name="type.emergency.access_point.address">Evakuacijos adresas</string>
<string name="type.emergency.disaster_help_point">Pagalbos stichinių nelaimių atvejais punktas</string>
</resources>

View File

@@ -123,7 +123,7 @@
<string name="type.leisure.common">Valsts zemes īpašums</string>
<string name="type.leisure.dog_park">Suņu parks</string>
<string name="type.disusedbusiness">Brīva uzņēmējdarbība</string>
<string name="type.amenity.bench.backless">Bez atzveltnes</string>
<string name="type.amenity.bench.backless">Sols bez atzveltnes</string>
<string name="type.shop.coffee">Kafijas mazumtirgotājs</string>
<string name="type.shop.computer">Datorveikals</string>
<string name="type.shop.confectionery">Saldumu veikals</string>

View File

@@ -120,6 +120,7 @@
<string name="type.amenity.public_bookcase">Bokhylle</string>
<!-- SECTION: Types: Recycling -->
<string name="type.amenity.recycling.centre">Resirkuleringssenter</string>
<string name="type.amenity.recycling">Gjenvinningsbeholder</string>
<string name="type.amenity.recycling.container">Gjenvinningsbeholder</string>
<string name="type.recycling.batteries">Batterier</string>
<string name="type.recycling.clothes">Gamle klær</string>

View File

@@ -1395,7 +1395,7 @@
<string name="type.building.guardhouse">Beveiligingsloket</string>
<string name="type.power.portal">Verdeelstation</string>
<string name="type.shop.lighting">Verlichtingswinkel</string>
<string name="type.amenity.bench.backless">Zonder bankje</string>
<string name="type.amenity.bench.backless">Bankje</string>
<string name="type.amenity.boat_rental">Bootverhuur</string>
<string name="type.man_made.telescope">Telescoop</string>
<string name="type.man_made.telescope.optical">Telescoop (optisch)</string>

View File

@@ -131,6 +131,7 @@
<string name="type.amenity.public_bookcase">Biblioteca livre</string>
<!-- SECTION: Types: Recycling -->
<string name="type.amenity.recycling.centre">Centro de reciclagem</string>
<string name="type.amenity.recycling">Contentor de reciclagem</string>
<string name="type.amenity.recycling.container">Contentor de reciclagem</string>
<string name="type.recycling.batteries">Baterias</string>
<string name="type.recycling.clothes">Roupas velhas</string>
@@ -1396,7 +1397,7 @@
<string name="type.building.guardhouse">Cabine de Segurança</string>
<string name="type.power.portal">Portal de Energia</string>
<string name="type.shop.lighting">Loja de Iluminação</string>
<string name="type.amenity.bench.backless">Sem Encosto</string>
<string name="type.amenity.bench.backless">Banco sem Encosto</string>
<string name="type.leisure.bandstand">Coreto</string>
<string name="type.leisure.sports_centre.sport.multi">Centro Desportivo</string>
<string name="type.leisure.sports_centre.sport.american_football">Centro Desportivo</string>
@@ -1507,6 +1508,4 @@
<string name="type.railway.miniature.tunnel">Túnel Ferroviário em Miniatura</string>
<string name="type.railway.turntable">Plataforma Giratória Ferroviária</string>
<string name="type.tourism.information.tactile_map">Mapa tátil</string>
<string name="type.emergency.access_point.address">Endereço de Resgate de Emergência</string>
<string name="type.emergency.disaster_help_point">Ponto de Ajuda de Emergências e Desastres</string>
</resources>

View File

@@ -28,7 +28,7 @@
<string name="type.amenity.bar">Lokal</string>
<string name="type.amenity.bbq">Žar na prostem</string>
<string name="type.amenity.bench">Klop</string>
<string name="type.amenity.bench.backless">Brez naslonjala</string>
<string name="type.amenity.bench.backless">Klop brez naslonjala</string>
<string name="type.amenity.bicycle_parking">Parkirišče za kolesa</string>
<string name="type.amenity.bicycle_parking.covered">Pokrito parkirišče za kolesa</string>
<string name="type.amenity.bicycle_rental">Izposoja koles</string>
@@ -309,6 +309,7 @@
<string name="type.amenity.prep_school">Inštrukcije</string>
<string name="type.amenity.mobile_money_agent">Posrednik mobilnega denarja</string>
<string name="type.amenity.recycling.centre">Zbirno mesto za ločene odpadke</string>
<string name="type.amenity.recycling">Zabojnik za ločene odpadke</string>
<string name="type.amenity.recycling.container">Zabojnik za ločene odpadke</string>
<string name="type.amenity.shelter.public_transport">Zavetje</string>
<string name="type.amenity.vending_machine.public_transport_tickets">Avtomat za vozovnice javnega prometa</string>
@@ -1220,7 +1221,7 @@
<string name="type.shop.coffee">Trgovina s kavo</string>
<string name="type.shop.computer">Računalniška trgovina</string>
<string name="type.shop.confectionery">Slaščičarna</string>
<string name="type.shop.convenience">Trgovina z osnovnimi potrebščinami</string>
<string name="type.shop.convenience">Trgovina z mešanim blagom</string>
<string name="type.shop.copyshop">Kopirnica</string>
<string name="type.shop.cosmetics">Kozmetična trgovina</string>
<string name="type.shop.curtain">Trgovina z zavesami</string>
@@ -1320,7 +1321,7 @@
<string name="type.shop.perfumery">Trgovina z dišavami</string>
<string name="type.shop.sewing">Šiviljska trgovina</string>
<string name="type.shop.storage_rental">Najem skladiščnih prostorov</string>
<string name="type.tourism.hostel">Hostel</string>
<string name="type.tourism.hostel">Gostišče</string>
<string name="type.tourism.hotel">Hotel</string>
<string name="type.tourism.information">Turistične informacije</string>
<string name="type.tourism.information.board">Informacijska tabla</string>
@@ -1330,88 +1331,6 @@
<string name="type.wheelchair.no">Nedostopno za invalidske vozičke</string>
<string name="type.wheelchair.yes">Polna dostopnost za invalidske vozičke</string>
<string name="type.aerialway.j.bar">Sidra</string>
<string name="type.aerialway.magic_carpet">Tekoči trak</string>
<string name="type.aerialway.magic_carpet">Preproge</string>
<string name="type.aerialway.platter">Krožniki</string>
<string name="type.emergency.access_point.address">Naslov za reševanja v sili</string>
<string name="type.natural.water.lock">Zaporna komora</string>
<string name="type.shop.doityourself">Trgovina za dom in vrt</string>
<string name="type.shop.houseware">Gospodinjska trgovina</string>
<string name="type.shop.beauty.day_spa">Lepotni in sprostitveni center</string>
<string name="type.shop.outdoor">Trgovina z opremo za aktivnosti na prostem</string>
<string name="type.shop.outpost">Prevzemna točka</string>
<string name="type.shop.pasta">Trgovina s testeninami</string>
<string name="type.shop.pastry">Prodajalna peciva</string>
<string name="type.shop.pawnbroker">Zastavljalnica</string>
<string name="type.shop.pet">Trgovina s hišnimi ljubljenčki</string>
<string name="type.shop.pet_grooming">Negovalni salon za hišne ljubljenčke</string>
<string name="type.shop.photo">Fotografska trgovina</string>
<string name="type.shop.rental">Izposojevalnica</string>
<string name="type.shop.rental.bicycle">Izposojevalnica koles</string>
<string name="type.shop.variety_store">Trgovina z mešanim blagom</string>
<string name="type.shop.video">Videotrgovina</string>
<string name="type.shop.appliance">Trgovina z gospodinjskimi aparati</string>
<string name="type.shop.charity">Dobrodelna trgovina</string>
<string name="type.shop.tobacco">Trgovina s tobačnimi izdelki</string>
<string name="type.shop.trade">Specializirana trgovina</string>
<string name="type.shop.wholesale">Trgovina na debelo</string>
<string name="type.sport.curling">Curling</string>
<string name="type.sport.field_hockey">Hokej na travi</string>
<string name="type.sport.futsal">Dvoranski nogomet</string>
<string name="type.sport.padel">Padel</string>
<string name="type.sport.pelota">Basque Pelota</string>
<string name="type.shop.craft">Trgovina z materiali za ustvarjanje</string>
<string name="type.attraction.amusement_ride">Zabaviščna vožnja</string>
<string name="type.attraction.bumper_car">Vožnja z avtomobilčki</string>
<string name="type.attraction.big_wheel">Panoramsko kolo</string>
<string name="type.attraction.carousel">Vrtiljak</string>
<string name="type.attraction.historic">Zgodovinska znamenitost</string>
<string name="type.attraction.maze">Labirint</string>
<string name="type.attraction.roller_coaster">Bobkart</string>
<string name="type.tourism.attraction.specified">Znamenitost</string>
<string name="type.tourism.camp_site">Taborni prostor</string>
<string name="type.tourism.caravan_site">Kamp za počitniške prikolice</string>
<string name="type.tourism.chalet">Počitniška hišica</string>
<string name="type.tourism.gallery">Umetnostna galerija</string>
<string name="type.tourism.guest_house">Gostišče</string>
<string name="type.tourism.information.tactile_map">Zemljevid za slepe in slabovidne</string>
<string name="type.tourism.zoo.petting">Otroški živalski vrt</string>
<string name="type.waterway.lock_gate">Plovna zapornica</string>
<string name="type.aerialway.rope_tow">Vrvna vlečnica</string>
<string name="type.aerialway.t.bar">Vlečnica na T</string>
<string name="type.piste_type.downhill">Smučarska proga</string>
<string name="type.piste_type.downhill.area">Spustna proga za tek na smučeh</string>
<string name="type.piste_type.downhill.advanced">Zahtevna smučarska proga</string>
<string name="type.piste_type.downhill.advanced.area">Zahtevna spustna proga za tek na smučeh</string>
<string name="type.piste_type.downhill.easy">Enostavna spustna proga za tek na smučeh</string>
<string name="type.piste_type.downhill.easy.area">Enostavna smučarska proga</string>
<string name="type.piste_type.downhill.expert">Zelo zahtevna spustna proga za tek na smučeh</string>
<string name="type.piste_type.downhill.expert.area">Zelo zahtevna smučarska proga</string>
<string name="type.piste_type.downhill.freeride">Proga za tek na smučeh prosti slog</string>
<string name="type.piste_type.downhill.intermediate">Srednje zahtevna proga za tek na smučeh</string>
<string name="type.piste_type.downhill.intermediate.area">Srednje zahtevna proga za tek na smučeh</string>
<string name="type.piste_type.downhill.novice">Začetniška spustna proga za tek na smučeh</string>
<string name="type.piste_type.downhill.novice.area">Začetniška smučarska proga</string>
<string name="type.piste_type.nordic">Proga za nordijsko smučanje</string>
<string name="type.piste_type.sled">Sankaška steza</string>
<string name="type.piste_type.sled.area">Sankaška steza</string>
<string name="type.piste_type.snow_park">Snežni park</string>
<string name="type.piste_type.hike">Zimska pohodniška pot</string>
<string name="type.piste_type.connection">Povezovalna proga</string>
<string name="type.piste_type.skitour">Proga za turno smučanje</string>
<string name="type.amenity.events_venue">Prireditveni prostor</string>
<string name="type.shop.auction">Dražba</string>
<string name="type.shop.collector">Trgovina s zbirateljskimi predmeti</string>
<string name="type.self_service.yes">Na voljo samopostrežba</string>
<string name="type.self_service.only">Samo samopostrežno</string>
<string name="type.self_service.partially">Delno samopostrežno</string>
<string name="type.self_service.no">Ni samopostrežno</string>
<string name="type.amenity.social_facility">Socialna ustanova</string>
<string name="type.social_facility.soup_kitchen">Kuhinja za brezdomce</string>
<string name="type.social_facility.food_bank">Brezplačna delilnica hrane</string>
<string name="type.amenity.food_sharing">Razdeljevalnica hrane</string>
<string name="type.amenity.give_box">Zaboj za darove</string>
<string name="type.emergency.emergency_ward_entrance">Vhod v urgentni oddelek</string>
<string name="type.amenity.dojo">Dojo (vadbeni prostor borilnih veščin)</string>
<string name="type.leisure.sports_hall">Športna dvorana</string>
<string name="type.xmas.tree">Božično drevo</string>
</resources>

View File

@@ -6,8 +6,8 @@
<string name="type.addr_interpolation.odd">Адреса/Блок</string>
<string name="type.aerialway">Жичара</string>
<string name="type.aerialway.cable_car">Жичара</string>
<string name="type.aerialway.chair_lift">Ски-лифт</string>
<string name="type.aerialway.drag_lift">Ски-лифт једносед</string>
<string name="type.aerialway.chair_lift">Седежница</string>
<string name="type.aerialway.drag_lift">Вучница</string>
<string name="type.aerialway.gondola">Гондола</string>
<string name="type.aerialway.mixed_lift">Комбинована жичара</string>
<string name="type.aerialway.station">Станица жичаре</string>

View File

@@ -131,6 +131,7 @@
<string name="type.amenity.public_bookcase">書架</string>
<!-- SECTION: Types: Recycling -->
<string name="type.amenity.recycling.centre">回收中心</string>
<string name="type.amenity.recycling">回收箱</string>
<string name="type.amenity.recycling.container">回收箱</string>
<string name="type.recycling.batteries">電池</string>
<string name="type.recycling.clothes">舊衣物</string>

View File

@@ -269,6 +269,7 @@
<string name="type.amenity.pub">酒吧</string>
<string name="type.amenity.public_bookcase">漂書站</string>
<string name="type.amenity.recycling.centre">回收中心</string>
<string name="type.amenity.recycling">回收箱</string>
<string name="type.amenity.recycling.container">回收箱</string>
<string name="type.recycling.batteries">電池</string>
<string name="type.recycling.clothes">衣服</string>

View File

@@ -131,6 +131,7 @@
<string name="type.amenity.public_bookcase">公共书架</string>
<!-- SECTION: Types: Recycling -->
<string name="type.amenity.recycling.centre">资源回收设施</string>
<string name="type.amenity.recycling">回收容器</string>
<string name="type.amenity.recycling.container">回收容器</string>
<string name="type.recycling.batteries">电池</string>
<string name="type.recycling.clothes">旧衣物</string>
@@ -354,7 +355,7 @@
<string name="type.entrance">入口</string>
<!-- This is for main/primary entrances, for secondary entrances see type.entrance -->
<string name="type.entrance.main">主要入口</string>
<string name="type.entrance.exit">单向出口</string>
<string name="type.entrance.exit">出口</string>
<string name="type.fee.yes">¥</string>
<string name="type.fee.no">免费</string>
<string name="type.healthcare.laboratory">医学实验室</string>
@@ -1392,36 +1393,8 @@
<string name="type.post_office.post_partner">邮政合作点</string>
<string name="type.barrier.wicket_gate">旁门</string>
<string name="type.amenity.animal_shelter">动物收容所</string>
<string name="type.amenity.bench.backless">无靠背长凳</string>
<string name="type.amenity.bench.backless">长凳</string>
<string name="type.office.security">保安室</string>
<string name="type.building.guardhouse">保安亭</string>
<string name="type.power.portal">能源站</string>
<string name="type.entrance.emergency">应急出口</string>
<string name="type.amenity.boat_rental">船只租赁</string>
<string name="type.man_made.telescope">望远镜</string>
<string name="type.man_made.telescope.optical">光学望远镜</string>
<string name="type.man_made.telescope.radio">射电望远镜</string>
<string name="type.man_made.telescope.gamma">伽玛射线望远镜</string>
<string name="type.man_made.observatory">观测台</string>
<string name="type.amenity.charging_station.motorcycle">摩托车</string>
<string name="type.amenity.car_pooling">拼车</string>
<string name="type.xmas.tree">圣诞树</string>
<string name="type.amenity.food_sharing">食物共享设施</string>
<string name="type.amenity.give_box">捐赠箱</string>
<string name="type.shop.beauty.nails">美甲店</string>
<string name="type.railway.turntable">铁路转车盘</string>
<string name="type.railway.disused.tunnel">废弃铁路隧道</string>
<string name="type.railway.miniature">小火车轨道</string>
<string name="type.railway.disused.bridge">废弃铁路桥</string>
<string name="type.natural.tree"></string>
<string name="type.natural.sand">沙子</string>
<string name="type.leisure.sports_centre.sport.volleyball">运动中心</string>
<string name="type.leisure.sports_centre.sport.swimming">游泳中心</string>
<string name="type.cardinal.south"></string>
<string name="type.cardinal.east"></string>
<string name="type.cardinal.west">西</string>
<string name="type.cardinal.north"></string>
<string name="type.entrance.garage">车库入口</string>
<string name="type.entrance.entry">单向入口</string>
<string name="type.emergency.access_point">紧急连络点</string>
</resources>

View File

@@ -1553,21 +1553,21 @@
"Croatia_West Description":"Opatija, Rijeka, Split",
"Cuba Description":"Cienfuegos, Havanna, Santiago de Cuba",
"Cyprus Description":"Nikosia, Limassol, Larnaca, Paphos",
"Czech_Jihovychod_Jihomoravsky kraj Description":"Brno (ehem. Brünn), Znojmo, Břeclav",
"Czech_Jihovychod_Kraj Vysocina Description":"Jihlava, Třebíč, Havlíčkův Brod",
"Czech_Jihozapad_Jihocesky kraj Description":"České Budějovice (ehem. Budweis), Tábor, Písek",
"Czech_Jihovychod_Jihomoravsky kraj Description":"Břeclav, Brno (ehem. Brünn), Znojmo",
"Czech_Jihovychod_Kraj Vysocina Description":"Havlíčkův Brod, Jihlava, Třebíč",
"Czech_Jihozapad_Jihocesky kraj Description":"České Budějovice (ehem. Budweis), Písek, Tábor",
"Czech_Jihozapad_Plzensky kraj Description":"Plzeň (ehem. Pilsen), Klatovy, Rokycany",
"Czech_Karlovasky kraj Description":"Karlovy Vary (ehem. Karlsbad), Cheb, Sokolov",
"Czech_Moravskoslezsko Description":"Ostrava (ehem. Ostrau), Havířov, Opava",
"Czech_Olomoucky kraj Description":"Olomouc (ehem. Olmütz), Prostějov, Přerov",
"Czech_Karlovasky kraj Description":"Cheb, Karlovy Vary (ehem. Karlsbad), Sokolov",
"Czech_Moravskoslezsko Description":"Havířov, Opava, Ostrava (ehem. Ostrau)",
"Czech_Olomoucky kraj Description":"Olomouc (ehem. Olmütz), Přerov, Prostějov",
"Czech_Praha Description":"Prag",
"Czech_Severovychod_Kralovehradecky kraj Description":"Hradec Králové (ehem. Königgrätz), Trutnov, Náchod",
"Czech_Severovychod_Liberecky kraj Description":"Liberec, Jablonec nad Nisou, Česká Lípa",
"Czech_Severovychod_Pardubicky kraj Description":"Pardubice, Chrudim, Svitavy",
"Czech_Stredni Cechy_East Description":"Kolín, Příbram, Kutná Hora",
"Czech_Stredni Cechy_West Description":"Kladno, Mladá Boleslav, Beroun",
"Czech_Ustecky kraj Description":"Ústí nad Labem, Most, Teplice",
"Czech_Zlinsky Kraj Description":"Zlín, Kroměříž, Vsetín",
"Czech_Severovychod_Kralovehradecky kraj Description":"Náchod, Hradec Králové (ehem. Königgrätz), Trutnov",
"Czech_Severovychod_Liberecky kraj Description":"Česká Lípa, Jablonec nad Nisou, Liberec",
"Czech_Severovychod_Pardubicky kraj Description":"Chrudim, Pardubice, Svitavy",
"Czech_Stredni Cechy_East Description":"Kolín, Kutná Hora, Příbram",
"Czech_Stredni Cechy_West Description":"Beroun, Kladno, Mladá Boleslav",
"Czech_Ustecky kraj Description":"Most, Teplice, Ústí nad Labem",
"Czech_Zlinsky Kraj Description":"Kroměříž, Vsetín, Zlín",
"Denmark_Capital Region of Denmark Description":"Kopenhagen, Skovlunde, Virum",
"Denmark_Central Denmark Region Description":"Aarhus, Brabrand, Juelsminde",
"Denmark_North Denmark Region Description":"Aalborg, Hjörring, Frederikshavn",

View File

@@ -15,11 +15,10 @@
# a "forbidden" selector like [!oneway] matches [oneway=no] only or absence of this tag.
# If first 2 (1 for short types like "building") components of pre-matched types are the same,
# then leave only the longest types (there could be a few of them). Equal arity types are kept.
# Types added to data/subtypes.csv are always kept, too.
# - highway-primary-bridge is left while highway-primary is removed;
# - building-garages is left while building is removed;
# - amenity-parking-underground-fee is left while amenity-parking and amenity-parking-fee are removed;
# - both highway-primary-bridge and highway-primary-tunnel are left;
# - both amenity-charging_station-motorcar and amenity-charging_station-bicycle are left;
#
# A shorter format for the above example:
# highway|bus_stop;22;
@@ -475,7 +474,6 @@ amenity|parking|multi-storey;[amenity=parking][parking=multi-storey];;name;int_n
# TODO: its being replaced by landuse-recreation_ground, merge in there.
leisure|recreation_ground;360;
deprecated:highway|footway|mountain_hiking:04.2024;[highway=footway][sac_scale=mountain_hiking];x;name;int_name;361;highway|path
# Workaround for (mis)uses of emergency access points to provide kind of an additional emergency address to each house, which without this would completely clutter the map. See https://codeberg.org/comaps/comaps/pulls/3220.
emergency|access_point|address;[emergency=access_point][operator=helpbidea];;name;;362;
amenity|parking|multi-storey|fee;[amenity=parking][parking=multi-storey][fee];;name;int_name;363;
sport|9pin;364;
Can't render this file because it contains an unexpected character in line 7 and column 16.

View File

@@ -23,7 +23,7 @@
"make_a_u_turn_street":"NULL",
"make_a_u_turn_street_verb":"NULL",
"go_straight":"Fahre geradeaus.",
"exit":"Nimm die Ausfahrt.",
"exit":"Beenden.",
"onto":"auf",
"take_exit_number":"Nehme die Ausfahrt auf",
"take_exit_number_street_verb":"NULL",

View File

@@ -49,37 +49,37 @@
"in_3_kilometers":"在三公里后",
"then":"然后",
"dist_direction_onto_street":"%1$s %2$s %3$s %4$s",
"take_the_1_exit":"从第一个出口驶出环岛。",
"take_the_1_exit":"从第一个出口驶出。",
"take_the_1_exit_street":"NULL",
"take_the_1_exit_street_verb":"NULL",
"take_the_2_exit":"从第二个出口驶出环岛。",
"take_the_2_exit":"从第二个出口驶出。",
"take_the_2_exit_street":"NULL",
"take_the_2_exit_street_verb":"NULL",
"take_the_3_exit":"从第三个出口驶出环岛。",
"take_the_3_exit":"从第三个出口驶出。",
"take_the_3_exit_street":"NULL",
"take_the_3_exit_street_verb":"NULL",
"take_the_4_exit":"从第四个出口驶出环岛。",
"take_the_4_exit":"从第四个出口驶出。",
"take_the_4_exit_street":"NULL",
"take_the_4_exit_street_verb":"NULL",
"take_the_5_exit":"从第五个出口驶出环岛。",
"take_the_5_exit":"从第五个出口驶出。",
"take_the_5_exit_street":"NULL",
"take_the_5_exit_street_verb":"NULL",
"take_the_6_exit":"从第六个出口驶出环岛。",
"take_the_6_exit":"从第六个出口驶出。",
"take_the_6_exit_street":"NULL",
"take_the_6_exit_street_verb":"NULL",
"take_the_7_exit":"从第七个出口驶出环岛。",
"take_the_7_exit":"从第七个出口驶出。",
"take_the_7_exit_street":"NULL",
"take_the_7_exit_street_verb":"NULL",
"take_the_8_exit":"从第八个出口驶出环岛。",
"take_the_8_exit":"从第八个出口驶出。",
"take_the_8_exit_street":"NULL",
"take_the_8_exit_street_verb":"NULL",
"take_the_9_exit":"从第九个出口驶出环岛。",
"take_the_9_exit":"从第九个出口驶出。",
"take_the_9_exit_street":"NULL",
"take_the_9_exit_street_verb":"NULL",
"take_the_10_exit":"从第十个出口驶出环岛。",
"take_the_10_exit":"从第十个出口驶出。",
"take_the_10_exit_street":"NULL",
"take_the_10_exit_street_verb":"NULL",
"take_the_11_exit":"从第十一个出口驶出环岛。",
"take_the_11_exit":"从第十一个出口驶出。",
"take_the_11_exit_street":"NULL",
"take_the_11_exit_street_verb":"NULL",
"in_50_feet":"在五十英尺后",

View File

@@ -1 +1 @@
<svg height="18" viewBox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><g fill="none"><rect fill="#000" height="18" opacity=".6" rx="1.875" width="18"/><rect fill="#2f6499" height="16.5" rx="1.5" width="16.5" x=".75" y=".75"/><path d="m6.41350421 14.75c-.95 0-1.674375-.676875-1.7444375-1.6019375l-.0055625-.1480625v-.0833333l.25-6.1666667c0-.91666667.75-1.66666667 1.66666667-1.58333333h1.58333333v-.75c-.5 0-.91666667.16666666-1.08333333.16666666-.41666667.08333334-.83333334-.16666666-.91666667-.58333333s.08333333-.83333333.41666667-1l.11922451-.02060859c.27673179-.05556686.98917837-.2057297 1.91374923-.22689803l.38536266-.00204645-.00000307.26264718.00249272-.26264718.1683364-.00044693c1.24999997 0 2.16666667.25 2.24999997.25.3333334.16666667.5.58333333.4166667 1s-.5.66666667-.9166667.58333333c-.1666666 0-.5833333-.16666666-1.0833333-.16666666v.75h1.5833333c.8708334-.07916667 1.59125.59374999 1.6611146 1.44716666l.2555521 6.30283337v.0833333l-.0055625.1480625c-.0700625.9250625-.7944375 1.6019375-1.7444375 1.6019375zm.08333333-2.6666667c-.41666666 0-.75.3333334-.75.75 0 .4166667.33333334.75.75.75.41666667 0 .75-.4166666.75-.8333333s-.33333333-.6666667-.75-.6666667zm5.00582916 0c-.4166667 0-.75.25-.75.6666667s.3333333.8333333.75.8333333c.4166666 0 .75-.3333333.75-.75 0-.4166666-.3333334-.75-.75-.75zm-4.58916249-5.66666663c-.46428571 0-.85671769.3592687-.9104106.87764213l-.00625607.12235787-.08333333 2.41666666c0 .58333337.41666667.99999997.91666667.99999997h4.33916242c.5 0 .9166667-.4166666.9166667-.99999997l-.0833333-2.41666666-.0062561-.12235787c-.0536929-.51837343-.4461249-.87764213-.9104106-.87764213z" fill="#000"/></g></svg>
<svg height="18" viewBox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><g fill="none"><rect fill="#000" height="18" opacity=".6" rx="1.875" width="18"/><rect fill="#2f6499" height="16.5" rx="1.5" width="16.5" x=".75" y=".75"/><path d="m12.9135042 6.75c-.0833333-1-.8333333-1.66666667-1.75-1.66666667h-1.49999999v-.75c.33333333 0 .74999999.08333334 1.16666669.16666667.3333333.08333333.6666667-.16666667.8333333-.58333333.0833334-.41666667-.1666666-.75-.5833333-.91666667-.75-.16666667-1.50000002-.25-2.16666669-.25h-.08333333c-1.25 0-2.16666667.25-2.25.25-.33333334.16666667-.5.58333333-.41666667 1s.5.66666667.91666667.58333333c.16666666 0 .58333333-.16666666 1.08333333-.16666666v.75h-1.58333333c-.91666667-.08333334-1.66666667.66666666-1.66666667 1.58333333l-.25 6.1666667v.0833333c0 1 .75 1.75 1.75 1.75h5.16666669.0833333c1-.0833333 1.75-.9166667 1.6666667-1.8333333zm-6.99999999 3.08333333.08333333-2.41666666c0-.58333334.41666667-1 .91666667-1h3.99999999c.5 0 .8333334.41666666.9166667 1l.0833333 2.41666666c0 .58333337-.3333333.99999997-.8333333.99999997h-.0833333-4.16666672c-.5 0-.91666667-.4166666-.91666667-.99999997zm.58333333 3.74999997c-.41666666 0-.75-.3333333-.75-.75 0-.4166666.33333334-.75.75-.75.41666667 0 .75.25.75.6666667s-.33333333.8333333-.75.8333333zm4.83333336 0c-.4166667 0-.75-.3333333-.75-.75 0-.4166666.3333333-.75.75-.75s.75.3333334.75.75c0 .3333334-.3333333.75-.75.75z" fill="#000"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1 +1 @@
<svg height="12" viewBox="0 0 12 12" width="12" xmlns="http://www.w3.org/2000/svg"><g fill="none"><rect fill="#000" height="12" opacity=".6" rx="1.875" width="12"/><rect fill="#2f6499" height="11.00025" rx="1.5" width="11.00025" x=".500003" y=".500003"/><path d="m5.99901368 2.00028841.27959242.00206521c.38744508.01070897.71530435.05601616.94321322.09555697l.34033345.06354774c.21527778.10763889.32291667.37673612.26909723.64583333-.04783951.23919754-.26577504.39334706-.50261012.38685034l-.14510611-.01607672-.26690051-.05931123c-.11014942-.02259475-.23865707-.04236516-.37704993-.04236516v.484375h1.02256944c.5525463-.05023148 1.01132716.3683642 1.07004218.90572943l.16780505 4.09947891v.05381944l-.00636265.12691821c-.05893828.58134568-.52106791 1.00329012-1.12384568 1.00329012h-3.34023687c-.60277777 0-1.0649074-.42194444-1.12384568-1.00329012l-.00636265-.12691821v-.05381944l.16145834-3.98263889c0-.59201389.484375-1.07638889 1.07638889-1.02256945h1.02256944v-.484375c-.27678572 0-.51403061.07908163-.64395044.10167639l-.05570234.0059625c-.26909722.05381945-.53819444-.10763889-.59201389-.37673612-.05381944-.26909721.05381945-.53819444.26909723-.64583333l.34033345-.06354774.25973069-.03996795c.19337167-.02593341.42518581-.04844971.68348253-.05558902zm-1.61563943 6.02748937c-.26909722 0-.484375.21527778-.484375.484375s.21527778.484375.484375.484375.484375-.26909722.484375-.53819445c0-.26909721-.21527778-.43055555-.484375-.43055555zm3.23259797 0c-.26909722 0-.484375.16145834-.484375.43055555 0 .26909723.21527778.53819445.484375.53819445s.484375-.21527778.484375-.484375-.21527778-.484375-.484375-.484375zm-.26909722-3.65972222h-2.69440353c-.29356061 0-.54264233.2223944-.58550379.54587716l-.00651009.09995617-.05381946 1.56076389c0 .37673611.26909723.64583334.59201389.64583334h2.80204243c.32291666 0 .59201389-.26909723.59201389-.64583334l-.05381946-1.56076389-.00651009-.09995617c-.04286146-.32348276-.29194318-.54587716-.58550379-.54587716z" fill="#000"/></g></svg>
<svg height="12" viewBox="0 0 12 12" width="12" xmlns="http://www.w3.org/2000/svg"><g fill="none"><rect fill="#000" height="12" opacity=".6" rx="1.875" width="12"/><rect fill="#2f6499" height="11.00025" rx="1.5" width="11.00025" x=".500003" y=".500003"/><path d="m8.52747147 4.58333334c-.05381944-.64583334-.53819445-1.07638889-1.13020833-1.07638889h-.96875v-.48437501c.21527777 0 .484375.05381945.75347222.10763889.21527778.05381945.43055555-.10763889.53819445-.37673611.05381944-.26909722-.1076389-.484375-.37673612-.59201389-.484375-.10763889-.96874999-.16145833-1.39930555-.16145833h-.05381945c-.80729166 0-1.39930555.16145833-1.45312499.16145833-.21527778.10763889-.32291667.37673612-.26909723.64583333.05381945.26909723.32291667.43055557.59201389.37673612.10763889 0 .37673611-.10763889.69965278-.10763889v.484375h-1.02256944c-.59201389-.05381944-1.07638889.43055556-1.07638889 1.02256945l-.16145834 3.98263889v.05381944c0 .64583333.484375 1.13020833 1.13020833 1.13020833h3.33680556.05381945c.64583333-.05381944 1.13020833-.59201389 1.07638889-1.18402777zm-4.52083334 1.99131944.05381946-1.56076389c0-.37673611.26909721-.64583333.59201388-.64583333h2.58333333c.32291667 0 .53819445.26909722.5920139.64583333l.05381944 1.56076389c0 .37673611-.21527778.64583334-.53819445.64583334h-.05381944-2.69097223c-.32291666 0-.59201389-.26909723-.59201389-.64583334zm.37673612 2.421875c-.26909722 0-.484375-.21527778-.484375-.48437499 0-.26909723.21527778-.48437501.484375-.48437501s.484375.16145834.484375.43055555c0 .26909723-.21527778.53819445-.484375.53819445zm3.12152778 0c-.26909723 0-.484375-.21527778-.484375-.48437499 0-.26909723.21527777-.48437501.484375-.48437501.26909722 0 .48437499.21527778.48437499.48437501 0 .21527777-.21527777.48437499-.48437499.48437499z" fill="#000"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1 +1 @@
<svg height="18" viewBox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><g fill="none"><rect fill="#fff" height="18" opacity=".6" rx="1.875" width="18"/><rect fill="#2f6499" height="16.5" rx="1.5" width="16.5" x=".75" y=".75"/><path d="m6.41350421 14.75c-.95 0-1.674375-.676875-1.7444375-1.6019375l-.0055625-.1480625v-.0833333l.25-6.1666667c0-.91666667.75-1.66666667 1.66666667-1.58333333h1.58333333v-.75c-.5 0-.91666667.16666666-1.08333333.16666666-.41666667.08333334-.83333334-.16666666-.91666667-.58333333s.08333333-.83333333.41666667-1l.11922451-.02060859c.27673179-.05556686.98917837-.2057297 1.91374923-.22689803l.38536266-.00204645-.00000307.26264718.00249272-.26264718.1683364-.00044693c1.24999997 0 2.16666667.25 2.24999997.25.3333334.16666667.5.58333333.4166667 1s-.5.66666667-.9166667.58333333c-.1666666 0-.5833333-.16666666-1.0833333-.16666666v.75h1.5833333c.8708334-.07916667 1.59125.59374999 1.6611146 1.44716666l.2555521 6.30283337v.0833333l-.0055625.1480625c-.0700625.9250625-.7944375 1.6019375-1.7444375 1.6019375zm.08333333-2.6666667c-.41666666 0-.75.3333334-.75.75 0 .4166667.33333334.75.75.75.41666667 0 .75-.4166666.75-.8333333s-.33333333-.6666667-.75-.6666667zm5.00582916 0c-.4166667 0-.75.25-.75.6666667s.3333333.8333333.75.8333333c.4166666 0 .75-.3333333.75-.75 0-.4166666-.3333334-.75-.75-.75zm-4.58916249-5.66666663c-.46428571 0-.85671769.3592687-.9104106.87764213l-.00625607.12235787-.08333333 2.41666666c0 .58333337.41666667.99999997.91666667.99999997h4.33916242c.5 0 .9166667-.4166666.9166667-.99999997l-.0833333-2.41666666-.0062561-.12235787c-.0536929-.51837343-.4461249-.87764213-.9104106-.87764213z" fill="#fff"/></g></svg>
<svg height="18" viewBox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><g fill="none"><rect fill="#fff" height="18" opacity=".6" rx="1.875" width="18"/><rect fill="#2f6499" height="16.5" rx="1.5" width="16.5" x=".75" y=".75"/><path d="m12.9135042 6.75c-.0833333-1-.8333333-1.66666667-1.75-1.66666667h-1.49999999v-.75c.33333333 0 .74999999.08333334 1.16666669.16666667.3333333.08333333.6666667-.16666667.8333333-.58333333.0833334-.41666667-.1666666-.75-.5833333-.91666667-.75-.16666667-1.50000002-.25-2.16666669-.25h-.08333333c-1.25 0-2.16666667.25-2.25.25-.33333334.16666667-.5.58333333-.41666667 1s.5.66666667.91666667.58333333c.16666666 0 .58333333-.16666666 1.08333333-.16666666v.75h-1.58333333c-.91666667-.08333334-1.66666667.66666666-1.66666667 1.58333333l-.25 6.1666667v.0833333c0 1 .75 1.75 1.75 1.75h5.16666669.0833333c1-.0833333 1.75-.9166667 1.6666667-1.8333333zm-6.99999999 3.08333333.08333333-2.41666666c0-.58333334.41666667-1 .91666667-1h3.99999999c.5 0 .8333334.41666666.9166667 1l.0833333 2.41666666c0 .58333337-.3333333.99999997-.8333333.99999997h-.0833333-4.16666672c-.5 0-.91666667-.4166666-.91666667-.99999997zm.58333333 3.74999997c-.41666666 0-.75-.3333333-.75-.75 0-.4166666.33333334-.75.75-.75.41666667 0 .75.25.75.6666667s-.33333333.8333333-.75.8333333zm4.83333336 0c-.4166667 0-.75-.3333333-.75-.75 0-.4166666.3333333-.75.75-.75s.75.3333334.75.75c0 .3333334-.3333333.75-.75.75z" fill="#fff"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1 +1 @@
<svg height="12" viewBox="0 0 12 12" width="12" xmlns="http://www.w3.org/2000/svg"><g fill="none"><rect fill="#fff" height="12" opacity=".6" rx="1.875" width="12"/><rect fill="#2f6499" height="11.00025" rx="1.5" width="11.00025" x=".500003" y=".500003"/><path d="m5.99901368 2.00028841.27959242.00206521c.38744508.01070897.71530435.05601616.94321322.09555697l.34033345.06354774c.21527778.10763889.32291667.37673612.26909723.64583333-.04783951.23919754-.26577504.39334706-.50261012.38685034l-.14510611-.01607672-.26690051-.05931123c-.11014942-.02259475-.23865707-.04236516-.37704993-.04236516v.484375h1.02256944c.5525463-.05023148 1.01132716.3683642 1.07004218.90572943l.16780505 4.09947891v.05381944l-.00636265.12691821c-.05893828.58134568-.52106791 1.00329012-1.12384568 1.00329012h-3.34023687c-.60277777 0-1.0649074-.42194444-1.12384568-1.00329012l-.00636265-.12691821v-.05381944l.16145834-3.98263889c0-.59201389.484375-1.07638889 1.07638889-1.02256945h1.02256944v-.484375c-.27678572 0-.51403061.07908163-.64395044.10167639l-.05570234.0059625c-.26909722.05381945-.53819444-.10763889-.59201389-.37673612-.05381944-.26909721.05381945-.53819444.26909723-.64583333l.34033345-.06354774.25973069-.03996795c.19337167-.02593341.42518581-.04844971.68348253-.05558902zm-1.61563943 6.02748937c-.26909722 0-.484375.21527778-.484375.484375s.21527778.484375.484375.484375.484375-.26909722.484375-.53819445c0-.26909721-.21527778-.43055555-.484375-.43055555zm3.23259797 0c-.26909722 0-.484375.16145834-.484375.43055555 0 .26909723.21527778.53819445.484375.53819445s.484375-.21527778.484375-.484375-.21527778-.484375-.484375-.484375zm-.26909722-3.65972222h-2.69440353c-.29356061 0-.54264233.2223944-.58550379.54587716l-.00651009.09995617-.05381946 1.56076389c0 .37673611.26909723.64583334.59201389.64583334h2.80204243c.32291666 0 .59201389-.26909723.59201389-.64583334l-.05381946-1.56076389-.00651009-.09995617c-.04286146-.32348276-.29194318-.54587716-.58550379-.54587716z" fill="#fff"/></g></svg>
<svg height="12" viewBox="0 0 12 12" width="12" xmlns="http://www.w3.org/2000/svg"><g fill="none"><rect fill="#fff" height="12" opacity=".6" rx="1.875" width="12"/><rect fill="#2f6499" height="11.00025" rx="1.5" width="11.00025" x=".500003" y=".500003"/><path d="m8.52747147 4.58333334c-.05381944-.64583334-.53819445-1.07638889-1.13020833-1.07638889h-.96875v-.48437501c.21527777 0 .484375.05381945.75347222.10763889.21527778.05381945.43055555-.10763889.53819445-.37673611.05381944-.26909722-.1076389-.484375-.37673612-.59201389-.484375-.10763889-.96874999-.16145833-1.39930555-.16145833h-.05381945c-.80729166 0-1.39930555.16145833-1.45312499.16145833-.21527778.10763889-.32291667.37673612-.26909723.64583333.05381945.26909723.32291667.43055557.59201389.37673612.10763889 0 .37673611-.10763889.69965278-.10763889v.484375h-1.02256944c-.59201389-.05381944-1.07638889.43055556-1.07638889 1.02256945l-.16145834 3.98263889v.05381944c0 .64583333.484375 1.13020833 1.13020833 1.13020833h3.33680556.05381945c.64583333-.05381944 1.13020833-.59201389 1.07638889-1.18402777zm-4.52083334 1.99131944.05381946-1.56076389c0-.37673611.26909721-.64583333.59201388-.64583333h2.58333333c.32291667 0 .53819445.26909722.5920139.64583333l.05381944 1.56076389c0 .37673611-.21527778.64583334-.53819445.64583334h-.05381944-2.69097223c-.32291666 0-.59201389-.26909723-.59201389-.64583334zm.37673612 2.421875c-.26909722 0-.484375-.21527778-.484375-.48437499 0-.26909723.21527778-.48437501.484375-.48437501s.484375.16145834.484375.43055555c0 .26909723-.21527778.53819445-.484375.53819445zm3.12152778 0c-.26909723 0-.484375-.21527778-.484375-.48437499 0-.26909723.21527777-.48437501.484375-.48437501.26909722 0 .48437499.21527778.48437499.48437501 0 .21527777-.21527777.48437499-.48437499.48437499z" fill="#fff"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -1,66 +0,0 @@
# Deploy your maps files server
This doc explain how to deploy your own instance of a CoMaps server with files from official CDNs (We are working to be able to download maps files without hardcoded countries.txt file embedded in the app)
We explain how to deploy with minimal config, but each tools have differents options to change server port or choose maps files that you want to download.
## Deploy the server
Our community has developped different tools to deploy easily an instance of a CoMaps server:
- [comaps-map-distributor](https://codeberg.org/gedankenstuecke/comaps-map-distributor)
- [comaps-server](https://github.com/myanesp/comaps-server)
### Deploy comaps-map-distributor
Prerequisites
- python3 and pip
- Launch your terminal
- Run `pip install comaps-map-distributor`
- Launch the tool with this command `comaps-map-distributor download-maps`
- Choose maps files you want to download from official CDNs
- Run `comaps-map-distributor serve-maps`
- Go to your mobile device -> CoMaps -> settings -> Advanced -> Custom Maps server
- Edit URL with your URL server and enjoy
### Deploy comaps-server
Prerequisites
- Docker
- Your server is accessible from your network
#### Docker
- Launch your terminal
- Run ``` docker run -d \
--name comaps-server \
--restart unless-stopped \
-e MAPS=all \
-e OUTPUT_DIR=/maps \
-p "80:80" \
ghcr.io/myanesp/comaps-server:latest```
- Go to your mobile device -> CoMaps -> settings -> Advanced -> Custom Maps server
- Edit URL with your URL server and enjoy
#### Docker compose
- Launch your terminal
- Create a `compose.yml` file with this config:
```services:
maps-server:
image: ghcr.io/myanesp/comaps-server
container_name: comaps-server
ports:
- "80:80"
environment:
- MAPS=World,WorldCoasts,Spain
- OUTPUT_DIR=/maps
volumes:
- ./maps:/maps
- TZ=Europe/Madrid```
- Execute `docker compose up`
- Go to your mobile device -> CoMaps -> settings -> Advanced -> Custom Maps server
- Edit URL with your URL server and enjoy
You can find more details in the [FAQ articles](https://www.comaps.app/support/how-can-i-host-a-custom-map-server-for-downloads/) to deploy your own HTTP maps server and find more details [here](https://www.comaps.app/support/how-can-i-set-a-custom-map-server-for-downloads/) about restrictions.

View File

@@ -1,150 +0,0 @@
# Eclipse
As mentioned in [Building](INSTALL.md), there are several IDEs which can be used for CoMaps development. With the refactoring of the code that happened in August 2025, Eclipse finally can be used to work with the CoMaps C++ and Java codebase. (Code in other languages is untested.)
Eclipse natively supports Java, thus it can be used to edit the entire Android codebase. However, although Eclipse was once the tool for Android development, the Android plug-ins (ADT and its fork, Andmore) are no longer being actively developed. Therefore, although you can edit Java code for Android in Eclipse, you will get warnings about missing Android-specific dependencies. Building and debugging the Android app is not possible (or will require a lot of tinkering to get it to work).
## Prerequisites
You need Eclipse with CDT (C/C++ developer tools).
## Import the code
**Do not** import the entire source directory the code indexer will choke on `3party`. Instead, import the following directories as individual projects:
* `libs` this should be the first dir to import
* `qt` if you want to work on the desktop app
* `tools` if you want to work on tools which are not part of the main app
If you want to work on the Android app from within Eclipse, you can also import `android`. We dont have instructions for that yet (feel free to contribute yours) but have been able to import that portion of the code into Eclipse. There are three main caveats:
* You need to import C++ and Java code separately
* In Java, Eclipse may not be able to find Android-specific dependencies which are not part of the standard Java API
* The code has been refactored since this was last tried successfully; Android code has been split into an app and an SDK portion; you may need to import each of these separately
## Import code dirs
Repeat these steps for each subdir you want to work with (`libs`, `qt`, `android`, tools` etc.).
From the menu, choose **File > Import**.
In the dialog that opens, select **C/C++ > Existing Code as Makefile Project** and click **Next**.
In the next dialog:
* Set the **Project Name** (we recommend using the name of the subdir)
* Set the path for the **Existing Code Location** (a subdir of the CoMaps code dir, such as `libs`, `qt` or `tools`)
* Ensure both C and C++ are selected under **Languages**
* Under **Toolchain for Indexer Settings**, select **CMake driven**.
* Click **Finish**.
After you have imported the code and open the first source files, Eclipse will flag lots of errors in the code, as it cannot find any of the included header files outside the project. We will rectify that in the next steps.
## Header files in project root
Some header files are located in the root dir of the source tree. You to import them into a location where Eclipse can find them.
Right-click the `libs` project and choose **Import** from the context menu.
In the dialog that opens, select **General > File System** and click **Next**.
In the **File System** dialog:
* In **From Directory**, enter (or browse to) the root dir of the CoMaps sources.
* In the list of files below, check all header files (at the time of this writing, `defines.hpp`, `omim_config.h`, `precompiled_headers.hpp` and `private.h`).
* Under **Options**, click **Advanced**.
* Check **Create links in workspace**.
* Click **Finish**.
The header files will now appear at the root of `libs`. These are links that point to the files in their original location.
Should any additional header files ever get added to the root dir, you will have to repeat this step.
## Dependencies
Right-click the project root in Package Explorer and select **Properties** from the context menu.
In the dialog that opens, select **C/C++ General > Paths and Symbols** from the tree on the left.
Click the **Includes** tab and add the following paths:
* The standard include paths of your system (these can be obtained by running `echo | g++ -v -x c++ -E -` and looking for the line which reads `#include <...> search starts here:`)
* The following subdirs of `3party` (in the CoMaps source dir):
* `boost`
* `pugixml/pugixml/src`
* For other dependencies, figure out where the header files are and how they are included for example, if one of the source files includes `<foo/foo_base.hpp>` and you find the file in `3party/libfoo/headers/foo/foo_base.hpp`, include `3party/libfo/headers`
* Qt6 headers on Ubuntu 24.04, they are found in `/usr/include/x86_64-linux-gnu/qt6`. (Only for needed for `qt`; also for `tools` if youre working on GUI tools.) You will also need at least the following subdirs:
* `QtCore`
* `QtGui`
* `QtOpenGL`
* `QtOpenGLWidgets`
* `QtWidgets`
* This list may be incomplete if you spot anything missing and know how to add it, please add it here
On the **References** tab, check `libs` (except in the `libs` project itself, where this is not available and not needed).
## Building
> [!NOTE]
> So far, we havent found a way to configure our toolchain as a builder in Eclipse (which would allow us to have Eclipse build the artifact as needed before running it) if you know how to do this, your input is appreciated. Until then, the workaround is to configure the build command as an external tool. The build command must then be launched manually after making changes to the code. After that you can launch the build artifact using Run.
Build and run configurations are relative to a project. Since the code is spread across multiple projects, the recommendation is to configure the build for the project where the frontend resides `qt` for the desktop app, `tools` for any tools.
### Configure the build command as an external command
From the menu, choose **Run > External Tools > External Tools Configurations...***
Right-click **Program** in the left pane and select **New configuration**. (One blank configuration may already have been created, which you can adapt to your needs.)
* Set a name for the external command (e.g. `Build`, followed by the artifact name and release or debug)
* On the **Main** tab:
* **Location**: `${workspace_loc:/tools/unix/build_omim.sh}`
* **Working Directory**: `${workspace_loc:/qt}/..` or `${workspace_loc:/tools}/..`
* **Arguments**: arguments to the build script (e.g. `-r desktop` for a desktop release build)
* On the **Refresh** tab, uncheck **Refresh resources upon completion**.
* On the **Build** tab, uncheck **Build before launch**.
### Configure a builder
> [!WARNING]
> **This currently does not work, see above.**
> * The prebuilt binary gets launched but no build happens, not even after changes.
> * When explicitly starting a build, it fails with an error.
> * Changes to the build config do not seem to take effect.
> The steps here are for reference only; any input on getting this to work is welcome.
Right-click the project root in Package Explorer and select **Properties** from the context menu.
In the dialog that opens, select **C/C++ Build** from the tree on the left.
* Click **Manage Configurations** and create a new build configuration.
* Make sure the new configuration is selected in the **Configuration** drop-down list.
* On the **Builder Settings** tab:
* Uncheck **Use default build command** and set the build command to `./tools/unix/build_omim.sh`.
* Set the build directory to `${workspace_loc:/qt}/..` or `${workspace_loc:/tools}/..`.
* On the **Behavior** tab:
* Select **Use custom build arguments** and supply the arguments to the build script (e.g. `-r desktop` for a desktop release build).
* Uncheck **Build (Incremental build)** and **Clean**
### Create a run configuration
To run the artifact, choose **Run > Run Configurations...** from the menu. In the dialog that opens, right-click **C/C++ Application** in the pane on the left and choose **New Configuration**. Make the following settings:
* In the **Main** tab:
* **Project**: one of the projects in the workspace, see recommendation above
* **C/C++ Application**: path where the build artifact (the finished binary) resides
* **Build Configuration**: choose the appropriate build configuration (see above)
* In the **Arguments** tab, you can choose the working directory from which to launch the binary, and specify command line arguments.
* In the **Environment** tab, you can set environment variables if you need this for your artifact.
### Building with CMake
The recommended toolchain is `build_omim.sh`. If nonetheless you need to build with CMake for some reason:
* Specify `cmake` (with full path, as returned by `which cmake`) as the build command in the build configuration
* Use the same build directory as you would for `build_omim.sh`, i.e. `${workspace_loc:/qt}/..` or `${workspace_loc:/tools}/..`.
* Specify the build arguments for CMake. This would also include the `--build` dir. You will also need `--target` to specify the build target.
### Building for Android
Although we have not tested it yet, triggering an Android build from within Eclipse should be possible in the same way if you specify the `gradlew` script as the build tool. This should be pretty straightforward with the external tool workaround described above.
Installing, launching and debugging the Android app from Eclipse might be more difficult or not even possible, as there is no longer an actively maintained toolchain for Android development with Eclipse.

View File

@@ -31,7 +31,6 @@ There are some other files not mentioned here.
### Map features / classificator
- `mapcss-mapping.csv` - mapping between OSM tags and CoMaps types.
- `subtypes.csv` - declaring CoMaps types as having subtypes or being one.
- `replaced_tags.txt` - merging similar OSM tags.
- `mixed_tags.txt` - pedestrian streets of high popularity.

View File

@@ -67,13 +67,13 @@ preferably look for icons in [collections CoMaps uses already](../data/copyright
2. If necessary merge similar tags in via `data/replaced_tags.txt`
3. Define a priority for the new feature type in e.g. [`priorities_4_overlays.prio.txt`](../data/styles/default/include/priorities_4_overlays.prio.txt) and/or other priorities files
4. Add a new icon (see [above](#how-to-add-a-new-icon)) and/or other styling (area, line..)
5. If a new POI is a subtype or has subtypes, add it accordingly to `data/subtypes.csv`
6. If a new POI should be OSM-addable/editable then add it to `data/editor.config`
7. Add the English string (and optionally translations e.g. for your native language) into iOS (`iphone/Maps/LocalizedStrings/en.lproj/LocalizableTypes.strings`) and Android (`android/sdk/src/main/res/values/types_strings.xml`) type strings
8. Add search keywords into `data/categories-strings/en.json/localize.json`
9. Add new or fix current classifier tests at `generator/generator_tests/osm_type_tests.cpp` if you can
10. [Test](#testing-your-changes) your changes
11. Relax and wait for the next maps update :)
5. If a new POI should be OSM-addable/editable then add it to `data/editor.config`
6. Add the English string (and optionally translations e.g. for your native language) into iOS and Android type strings
e strings
7. Add search keywords into `data/categories.txt`
8. Add new or fix current classifier tests at `generator/generator_tests/osm_type_tests.cpp` if you can
9. [Test](#testing-your-changes) your changes
10. Relax and wait for the next maps update :)
## Testing your changes

View File

@@ -1,9 +1,9 @@
# How works CI?
We use our own server to execute our CI on Codeberg.
CI Codeberg is limited and cannot be used for now to build regularly apps and executes tests.
To limit regressions, we have enabled temporary Github CI on the [Github Mirror](https://github.com/comaps/comaps) to build Android and IOS app and execute linter each time we sync the mirror.
We use our own server to execute maps generation with a CI Codeberg.
- [Android CI](https://codeberg.org/comaps/comaps/src/branch/main/.forgejo/workflows/android-check.yaml)
- [iOS CI](https://github.com/comaps/comaps/actions/workflows/ios-check.yaml)
- [Maps generation CI](https://codeberg.org/comaps/comaps/src/branch/main/.forgejo/workflows/map-generator.yml)
We are not able for now to execute iOS CI on our server, to limit regressions we have enabled Github CI on the [Github Mirror](https://github.com/comaps/comaps) to build the iOS app each time we sync the mirror.
- [Android CI](https://github.com/comaps/comaps/actions/workflows/android-check.yaml)
- [IOS CI](https://github.com/comaps/comaps/actions/workflows/ios-check.yaml)
- [Maps generation CI](.forgejo/workflows/map-generator.yml)

View File

@@ -538,6 +538,7 @@
"type.tourism.artwork.architecture" = "Architectural Artwork";
"type.leisure.common" = "Public Land";
"type.amenity.vending_machine.excrement_bags" = "Excrement Bags Dispenser";
"type.amenity.recycling" = "Recycling Container";
"type.shop.jewelry" = "Jewelry Store";
"type.railway.subway_entrance.montreal" = "Subway Entrance";
"type.amenity.courthouse" = "Courthouse";

View File

@@ -193,7 +193,7 @@
"dialog_routing_disclaimer_priority" = "— রাস্তার অবস্থা, ট্রাফিক আইন এবং রাস্তার চিহ্নগুলি সর্বদা নেভিগেশন ইঙ্গিতের চেয়ে অগ্রাধিকার পায়;";
"pref_tts_speedcams_always" = "Always warn";
"hide_from_map" = "Hide from map";
"bookmark_sets" = "বুকমার্ক তালিকার নাম";
"bookmark_sets" = "Bookmark Lists";
"opens_in" = "Opens in %@";
"dialog_routing_check_gps" = "জিপিএস সিগন্যাল পরীক্ষা করুন";
"dialog_routing_download_cross_route" = "এই মানচিত্রের সীমানা অতিক্রম করে আরও ভালো রুট তৈরি করতে অতিরিক্ত মানচিত্র ডাউনলোড করুন।";

View File

@@ -44,6 +44,7 @@
"type.amenity.place_of_worship.muslim" = "মসজিদ";
"type.amenity.place_of_worship.jewish" = "Synagogue";
"type.amenity.recycling.centre" = "Recycling Center";
"type.amenity.recycling" = "Recycling Container";
"type.recycling.plastic_bottles" = "প্লাস্টিক বোতল";
"type.recycling.cartons" = "কার্টন|কার্ডবোর্ডের বাক্স";
"type.amenity.restaurant" = "রেস্টুরেন্ট";

View File

@@ -269,6 +269,7 @@
"type.amenity.vending_machine.excrement_bags" = "Excrement Bags Dispenser";
"type.highway.secondary_link.tunnel" = "Tunnel";
"type.office.lawyer" = "Lawyer";
"type.amenity.recycling" = "Recycling Container";
"type.shop.jewelry" = "Jewelry Store";
"type.recycling.cartons" = "Cartons";
"type.railway.subway_entrance.montreal" = "Subway Entrance";

View File

@@ -1206,7 +1206,7 @@
"type.shop.coffee" = "Kaffehandel";
"type.shop.computer" = "Computerforretning";
"type.shop.confectionery" = "Slikbutik";
"type.shop.convenience" = "Nærbutik";
"type.shop.convenience" = "Døgnbutik";
"type.shop.copyshop" = "Kopieringsbutik";
"type.shop.cosmetics" = "Kosmetiker";
"type.shop.curtain" = "Gardinhandel";

View File

@@ -236,6 +236,7 @@
"type.amenity.pub" = "Pub";
"type.amenity.public_bookcase" = "Intercambio de libros";
"type.amenity.recycling.centre" = "Centro de reciclaxe";
"type.amenity.recycling" = "Contedora de reciclaxe";
"type.amenity.recycling.container" = "Contedora de reciclaxe";
"type.recycling.batteries" = "Baterías";
"type.recycling.clothes" = "Roupa";

View File

@@ -232,6 +232,7 @@
"type.amenity.pub" = "Beiz";
"type.amenity.public_bookcase" = "Büecherschrank";
"type.amenity.recycling.centre" = "Recyclinghof";
"type.amenity.recycling" = "Recyclingcontainer";
"type.amenity.recycling.container" = "Recyclingcontainer";
"type.recycling.batteries" = "Batterie";
"type.recycling.clothes" = "Altchleider";

View File

@@ -401,6 +401,7 @@
"type.amenity.vending_machine.excrement_bags" = "Vrećice za pseći izmet (dispenzer)";
"type.highway.secondary_link.tunnel" = "Tunnel";
"type.office.lawyer" = "Lawyer";
"type.amenity.recycling" = "Kontejner za recikliranje";
"type.shop.jewelry" = "Jewelry Store";
"type.recycling.cartons" = "Kartonska ambalaža";
"type.railway.subway_entrance.montreal" = "Subway Entrance";

View File

@@ -428,6 +428,7 @@
"type.tourism.artwork.architecture" = "Architectural Artwork";
"type.amenity.vending_machine.excrement_bags" = "Excrement Bags Dispenser";
"type.highway.secondary_link.tunnel" = "Tunnel";
"type.amenity.recycling" = "Recycling Container";
"type.shop.jewelry" = "Jewelry Store";
"type.railway.subway_entrance.montreal" = "Subway Entrance";
"type.highway.footway.bridge" = "Pedestrian Bridge";

View File

@@ -24,6 +24,7 @@
"type.amenity.pub" = "Krá";
"type.amenity.public_bookcase" = "Bókaskipti";
"type.amenity.recycling.centre" = "Endurvinnslustöð";
"type.amenity.recycling" = "Endurvinnslugámur";
"type.amenity.recycling.container" = "Endurvinnslugámur";
"type.recycling.batteries" = "Rafhlöður";
"type.recycling.clothes" = "Fatnaður";

View File

@@ -880,6 +880,7 @@
"type.leisure.common" = "Public Land";
"type.amenity.vending_machine.excrement_bags" = "Excrement Bags Dispenser";
"type.highway.secondary_link.tunnel" = "Tunnel";
"type.amenity.recycling" = "Recycling Container";
"type.recycling.cartons" = "Cartons";
"type.railway.subway_entrance.montreal" = "Subway Entrance";
"type.highway.footway.bridge" = "Pedestrian Bridge";

View File

@@ -18,6 +18,7 @@
"type.amenity.pub" = "Pub";
"type.amenity.recycling.centre" = "Recycling Center";
"type.recycling.paper" = "Paper";
"type.amenity.recycling" = "Recycling Container";
"type.recycling.clothes" = "Clothes";
"type.recycling.plastic_bottles" = "Plastic Bottles";
"type.recycling.scrap_metal" = "Scrap Metal";

View File

@@ -212,7 +212,7 @@
"hour" = "h";
"bookmarks_import" = "Uvozi zaznamke in poti";
"bookmark_lists_hide_all" = "Skrij vse";
"restore" = "Povrni";
"restore" = "Obnovi";
"power_managment_title" = "Način varčevanja z energijo";
"mobile_data_dialog" = "Naj pridobim podrobne informacije prek mobilnega interneta?";
"mobile_data_option_ask" = "Vedno vprašaj";
@@ -581,20 +581,3 @@
"track_title" = "Sled";
"change_color" = "Spremeni barvo";
"map" = "Zemljevid";
"translated_om_site_url" = "https://www.comaps.app/";
"bugreport_alert_message" = "Želite razvijalcem poslati poročilo o napaki?\nZanašamo se na svoje uporabnike, saj CoMaps samodejno ne zbira nobenih podatkovo napakah. Vnaprej se vam zahvaljujemo za podporo CoMaps!";
"icloud_sync" = "Usklajevanje iCloud (Beta)";
"enable_icloud_synchronization_title" = "Omogoči usklajevanje iCloud (Beta)";
"enable_icloud_synchronization_message" = "Usklajevanje iCloud je preizkusna zmogljivost, ki je še v razvoju. Prepričajte se, da ste naredili varnostno kopijo vseh zaznamkov in sledi.";
"icloud_disabled_title" = "iCloud je onemogočen";
"icloud_disabled_message" = "Za uporabo te zmogljivosti omogočite iCloud za CoMaps v nastavitvah vašega Applovega računa.";
"enable" = "Omogoči";
"backup" = "Ustvari varnostno kopijo";
"icloud_synchronization_error_alert_title" = "Napaka pri usklajevanju iCloud";
"icloud_synchronization_error_connection_error" = "Napaka: usklajevanje zaradi omrežne napake je spodletelo";
"icloud_synchronization_error_quota_exceeded" = "Napaka: usklajevanje je spodletelo zaradi presežene kvote iCloud";
"icloud_synchronization_error_cloud_is_unavailable" = "Napaka: iCloud ni na voljo";
"bookmarks_recently_deleted" = "Nedavno izbrisani seznami";
"delete_all" = "Izbriši vse";
"recover" = "Obnovi";
"recover_all" = "Obnovi vse";

View File

@@ -5,7 +5,7 @@
<key>bookmarks_places</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@value@</string>
<string>bookmarks_places</string>
<key>value</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
@@ -44,7 +44,7 @@
<string>Najdenih je bilo %d datotek. Ogledate si jih lahko po pretvorbi.</string>
</dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@value@</string>
<string>bookmarks_detect_message</string>
</dict>
<key>tracks</key>
<dict>
@@ -66,7 +66,7 @@
<string>%d sledi</string>
</dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@value@</string>
<string>tracks</string>
</dict>
</dict>
</plist>

View File

@@ -308,6 +308,7 @@
"type.amenity.prep_school" = "Inštrukcije";
"type.amenity.mobile_money_agent" = "Posrednik mobilnega denarja";
"type.amenity.recycling.centre" = "Zbirno mesto za ločene odpadke";
"type.amenity.recycling" = "Zabojnik za ločene odpadke";
"type.amenity.recycling.container" = "Zabojnik za ločene odpadke";
"type.amenity.shelter.public_transport" = "Zavetje";
"type.amenity.vending_machine.public_transport_tickets" = "Avtomat za vozovnice";
@@ -1210,7 +1211,7 @@
"type.shop.coffee" = "Trgovina s kavo";
"type.shop.computer" = "Računalniška trgovina";
"type.shop.confectionery" = "Slaščičarna";
"type.shop.convenience" = "Trgovina z osnovnimi potrebščinami";
"type.shop.convenience" = "Trgovina z mešanim blagom";
"type.shop.copyshop" = "Kopirnica";
"type.shop.cosmetics" = "Kozmetična trgovina";
"type.shop.curtain" = "Trgovina z zavesami";
@@ -1308,7 +1309,7 @@
"type.shop.perfumery" = "Trgovina z dišavami";
"type.shop.sewing" = "Šiviljska trgovina";
"type.shop.storage_rental" = "Najem skladiščnih prostorov";
"type.tourism.hostel" = "Hostel";
"type.tourism.hostel" = "Gostišče";
"type.tourism.hotel" = "Hotel";
"type.tourism.information" = "Turistične informacije";
"type.tourism.information.board" = "Informacijska tabla";
@@ -1318,87 +1319,5 @@
"type.wheelchair.no" = "Nedostopno za invalidske vozičke";
"type.wheelchair.yes" = "Polna dostopnost za invalidske vozičke";
"type.aerialway.j.bar" = "Sidra";
"type.aerialway.magic_carpet" = "Tekoči trak";
"type.aerialway.magic_carpet" = "Preproge";
"type.aerialway.platter" = "Krožniki";
"type.natural.water.lock" = "Zaporna komora";
"type.shop.doityourself" = "Trgovina za dom in vrt";
"type.shop.charity" = "Dobrodelna trgovina";
"type.shop.houseware" = "Gospodinjska trgovina";
"type.shop.beauty.day_spa" = "Lepotni in sprostitveni center";
"type.shop.outdoor" = "Trgovina z opremo za aktivnosti na prostem";
"type.shop.outpost" = "Prevzemna točka";
"type.shop.pasta" = "Trgovina s testeninami";
"type.shop.pastry" = "Prodajalna peciva";
"type.shop.pawnbroker" = "Zastavljalnica";
"type.shop.pet" = "Trgovina s hišnimi ljubljenčki";
"type.shop.pet_grooming" = "Negovalni salon za hišne ljubljenčke";
"type.shop.photo" = "Fotografska trgovina";
"type.shop.rental" = "Izposojevalnica";
"type.shop.rental.bicycle" = "Izposojevalnica koles";
"type.shop.variety_store" = "Trgovina z mešanim blagom";
"type.shop.video" = "Videotrgovina";
"type.shop.appliance" = "Trgovina z gospodinjskimi aparati";
"type.shop.tobacco" = "Trgovina s tobačnimi izdelki";
"type.shop.trade" = "Specializirana trgovina";
"type.shop.wholesale" = "Trgovina na debelo";
"type.sport.curling" = "Curling";
"type.sport.field_hockey" = "Hokej na travi";
"type.sport.futsal" = "Dvoranski nogomet";
"type.sport.padel" = "Padel";
"type.sport.pelota" = "Basque Pelota";
"type.shop.craft" = "Trgovina z materiali za ustvarjanje";
"type.attraction.amusement_ride" = "Zabaviščna vožnja";
"type.attraction.bumper_car" = "Vožnja z avtomobilčki";
"type.attraction.big_wheel" = "Panoramsko kolo";
"type.attraction.carousel" = "Vrtiljak";
"type.attraction.historic" = "Zgodovinska znamenitost";
"type.attraction.maze" = "Labirint";
"type.attraction.roller_coaster" = "Bobkart";
"type.tourism.attraction.specified" = "Znamenitost";
"type.tourism.camp_site" = "Taborni prostor";
"type.tourism.caravan_site" = "Kamp za počitniške prikolice";
"type.tourism.chalet" = "Počitniška hišica";
"type.tourism.gallery" = "Umetnostna galerija";
"type.tourism.guest_house" = "Gostišče";
"type.tourism.zoo.petting" = "Otroški živalski vrt";
"type.waterway.lock_gate" = "Plovna zapornica";
"type.aerialway.rope_tow" = "Vrvna vlečnica";
"type.aerialway.t.bar" = "Vlečnica na T";
"type.piste_type.downhill" = "Smučarska proga";
"type.piste_type.downhill.area" = "Spustna proga za tek na smučeh";
"type.piste_type.downhill.advanced" = "Zahtevna smučarska proga";
"type.piste_type.downhill.advanced.area" = "Zahtevna spustna proga za tek na smučeh";
"type.piste_type.downhill.easy" = "Enostavna spustna proga za tek na smučeh";
"type.piste_type.downhill.easy.area" = "Enostavna smučarska proga";
"type.piste_type.downhill.expert" = "Zelo zahtevna spustna proga za tek na smučeh";
"type.piste_type.downhill.expert.area" = "Zelo zahtevna smučarska proga";
"type.piste_type.downhill.freeride" = "Proga za tek na smučeh prosti slog";
"type.piste_type.downhill.intermediate" = "Srednje zahtevna proga za tek na smučeh";
"type.piste_type.downhill.intermediate.area" = "Srednje zahtevna proga za tek na smučeh";
"type.piste_type.downhill.novice" = "Začetniška spustna proga za tek na smučeh";
"type.piste_type.downhill.novice.area" = "Začetniška smučarska proga";
"type.piste_type.nordic" = "Proga za nordijsko smučanje";
"type.piste_type.sled" = "Sankaška steza";
"type.piste_type.sled.area" = "Sankaška steza";
"type.piste_type.snow_park" = "Snežni park";
"type.piste_type.hike" = "Zimska pohodniška pot";
"type.piste_type.connection" = "Povezovalna proga";
"type.piste_type.skitour" = "Proga za turno smučanje";
"type.amenity.events_venue" = "Prireditveni prostor";
"type.shop.auction" = "Dražba";
"type.shop.collector" = "Trgovina s zbirateljskimi predmeti";
"type.self_service.yes" = "Na voljo samopostrežba";
"type.self_service.only" = "Samo samopostrežno";
"type.self_service.partially" = "Delno samopostrežno";
"type.self_service.no" = "Ni samopostrežno";
"type.amenity.social_facility" = "Socialna ustanova";
"type.social_facility.soup_kitchen" = "Kuhinja za brezdomce";
"type.social_facility.food_bank" = "Brezplačna delilnica hrane";
"type.amenity.food_sharing" = "Razdeljevalnica hrane";
"type.amenity.give_box" = "Zaboj za darove";
"type.emergency.emergency_ward_entrance" = "Vhod v urgentni oddelek";
"type.amenity.dojo" = "Dojo (vadbeni prostor borilnih veščin)";
"type.leisure.sports_hall" = "Športna dvorana";
"type.xmas.tree" = "Božično drevo";
"type.landuse.field" = "Polje";
"type.leisure.sports_centre" = "Športno središče";

View File

@@ -76,6 +76,7 @@
"type.amenity.public_bath" = "Public Bath";
"type.recycling.paper" = "Paper";
"type.amenity.shower" = "Shower";
"type.amenity.recycling" = "Recycling Container";
"type.recycling.cartons" = "Cartons";
"type.amenity.shelter.public_transport" = "Shelter";
"type.recycling.cans" = "Cans";

View File

@@ -3,8 +3,8 @@
"type.addr_interpolation.odd" = "Адреса/Блок";
"type.aerialway" = "Жичара";
"type.aerialway.cable_car" = "Жичара";
"type.aerialway.chair_lift" = "Ски-лифт";
"type.aerialway.drag_lift" = "Ски-лифт једносед";
"type.aerialway.chair_lift" = "Седежница";
"type.aerialway.drag_lift" = "Вучница";
"type.aerialway.gondola" = "Гондола";
"type.aerialway.mixed_lift" = "Комбинована жичара";
"type.aerialway.station" = "Станица жичаре";

View File

@@ -135,6 +135,7 @@
"type.amenity.pub" = "பப்";
"type.amenity.public_bookcase" = "புத்தக பரிமாற்றம்";
"type.amenity.recycling.centre" = "மறுசுழற்சி நடுவண்";
"type.amenity.recycling" = "மறுசுழற்சி கொள்கலன்";
"type.amenity.recycling.container" = "மறுசுழற்சி கொள்கலன்";
"type.recycling.batteries" = "பேட்டரிகள்";
"type.recycling.clothes" = "ஆடைகள்";

View File

@@ -633,10 +633,10 @@
"editor_detailed_description_hint" = "详细备注";
"editor_detailed_description" = "您建议的更改将发送至 OpenStreetMap 社区。说明无法在 CoMaps 编辑的详情。";
"editor_more_about_osm" = "关于 OpenStreetMap 的更多信息";
"editor_operator" = "运营方";
"editor_operator" = "操作员";
/* To indicate the operator of ATMs, bicycle rentals, electric vehicle charging stations... */
"operator" = "运营方:%@";
"operator" = "操作员: %@";
"editor_category_unsuitable_title" = "找不到合适的类别?";
"editor_category_unsuitable_text" = "CoMaps 只允许添加简单的点类别,即无法添加城镇、道路、湖泊、建筑轮廓等类别。请直接向 <a href=\"https://www.openstreetmap.org\">OpenStreetMap.org</a> 添加此类类别。请查看我们的<a href=\"https://www.comaps.app/support/advanced-map-editing/\">指南</a>,了解详细的步骤说明。";
"downloader_no_downloaded_maps_title" = "您尚未下载任何地图";

View File

@@ -370,7 +370,7 @@
/* This is for main/primary entrances, for secondary entrances see type.entrance */
"type.entrance.main" = "主要入口";
"type.entrance.exit" = "单向出口";
"type.entrance.exit" = "出口";
"type.fee.yes" = "¥";
"type.fee.no" = "免费";
"type.healthcare.laboratory" = "医学实验室";
@@ -1486,26 +1486,3 @@
"type.power.portal" = "能源站";
"type.building.guardhouse" = "保安亭";
"type.amenity.bench.backless" = "长凳";
"type.entrance.emergency" = "应急出口";
"type.amenity.boat_rental" = "船只租赁";
"type.man_made.telescope" = "望远镜";
"type.man_made.telescope.optical" = "光学望远镜";
"type.man_made.telescope.radio" = "射电望远镜";
"type.man_made.telescope.gamma" = "伽玛射线望远镜";
"type.man_made.observatory" = "观测台";
"type.amenity.car_pooling" = "拼车";
"type.xmas.tree" = "圣诞树";
"type.amenity.food_sharing" = "食物共享设施";
"type.amenity.give_box" = "捐赠箱";
"type.shop.beauty.nails" = "美甲店";
"type.natural.tree" = "树";
"type.natural.sand" = "沙子";
"type.leisure.sports_centre.sport.volleyball" = "运动中心";
"type.leisure.sports_centre.sport.swimming" = "游泳中心";
"type.cardinal.south" = "南";
"type.cardinal.east" = "东";
"type.cardinal.west" = "西";
"type.cardinal.north" = "北";
"type.entrance.garage" = "车库入口";
"type.entrance.entry" = "单向入口";
"type.emergency.access_point" = "紧急连络点";

View File

@@ -4,6 +4,7 @@
#include "indexer/feature_data.hpp"
#include "indexer/feature_visibility.hpp"
#include "indexer/ftypes_matcher.hpp"
#include "indexer/ftypes_subtypes.hpp"
#include "indexer/scales.hpp"
#include "platform/distance.hpp"
@@ -440,6 +441,17 @@ vector<int8_t> GetDescriptionLangPriority(RegionData const & regionData)
return PrioritizedLanguages(preferredLangs, DefaultLanguage(regionData, preferredLangs));
}
vector<string> GetLocalizedSubtypes(TypesHolder const & types)
{
auto const & classificator = classif();
auto subtypes = ftypes::Subtypes::Instance();
vector<string> localizedSubtypes;
for (auto const & type : types)
if (subtypes.IsSubtype(type))
localizedSubtypes.push_back(platform::GetLocalizedTypeName(classificator.GetReadableObjectName(type)));
return localizedSubtypes;
}
vector<string> GetCuisines(TypesHolder const & types)
{
auto const & isCuisine = ftypes::IsCuisineChecker::Instance();

View File

@@ -149,6 +149,9 @@ bool GetPreferredName(StringUtf8Multilang const & src, int8_t deviceLang, std::s
/// - default language code;
std::vector<int8_t> GetDescriptionLangPriority(RegionData const & regionData);
// Returns vector of subtypes localized by platform.
std::vector<std::string> GetLocalizedSubtypes(TypesHolder const & types);
// Returns vector of cuisines readable names from classificator.
std::vector<std::string> GetCuisines(TypesHolder const & types);

View File

@@ -279,7 +279,8 @@ void FillDetails(FeatureType & ft, std::string const & name, Result::Details & d
}
}
feature::TypesHolder const typesHolder(ft);
feature::TypesHolder typesHolder(ft);
typesHolder.SortBySpec();
std::string stars;
uint8_t starsCount = 0;
@@ -287,6 +288,8 @@ void FillDetails(FeatureType & ft, std::string const & name, Result::Details & d
if (isHotel && strings::to_uint(ft.GetMetadata(feature::Metadata::FMD_STARS), starsCount))
stars = feature::FormatStars(starsCount);
auto const subtypes = strings::JoinStrings(feature::GetLocalizedSubtypes(typesHolder), feature::kFieldsSeparator);
auto const cuisines = feature::GetLocalizedCuisines(typesHolder);
auto const cuisine = strings::JoinStrings(cuisines, feature::kFieldsSeparator);
@@ -314,6 +317,7 @@ void FillDetails(FeatureType & ft, std::string const & name, Result::Details & d
append(brand);
append(elevation);
append(cuisine);
append(subtypes);
append(fee);
details.m_description = std::move(description);