Compare commits

..

3 Commits

Author SHA1 Message Date
Jean-Baptiste
da5c98831c [doc] Improve some docs
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2026-01-18 18:08:10 +01:00
Jean-Baptiste
6bff1bb3dd [doc] Update files about Android CI
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2026-01-18 16:07:41 +01:00
Codeberg Translate
3c075516b9 [strings] Update from Codeberg Translate
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: Edgarsons <edgarsons@noreply.codeberg.org>
Co-authored-by: JanezPavelZebovec <janezpavelzebovec@noreply.codeberg.org>
Co-authored-by: Linus_W_Frische <linus_w_frische@noreply.codeberg.org>
Co-authored-by: Mickael81 <mickael81@noreply.codeberg.org>
Co-authored-by: N4ta <codeberg@n4ta.anonaddy.me>
Co-authored-by: Prefill add-on <noreply-addon-prefill@weblate.org>
Co-authored-by: Priit Jõerüüt <jrtcdbrg@noreply.codeberg.org>
Co-authored-by: Stephan-P <stephan-p@noreply.codeberg.org>
Co-authored-by: Weblate <noreply-mt-weblate@weblate.org>
Co-authored-by: Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>
Co-authored-by: ZeljkoBG <zeljkobg@noreply.codeberg.org>
Co-authored-by: cirilla <cirilla@noreply.codeberg.org>
Co-authored-by: codebergian42 <codebergian42@noreply.codeberg.org>
Co-authored-by: cyberchrime <cyberchrime@noreply.codeberg.org>
Co-authored-by: hiiiha <hiiiha@noreply.codeberg.org>
Co-authored-by: patepelo <patepelo@noreply.codeberg.org>
Co-authored-by: rimas <rimas@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/comaps/android-typestrings/
Translate-URL: https://translate.codeberg.org/projects/comaps/ios-typestrings/
Translation: CoMaps/Android - Map Feature Types
Translation: CoMaps/Android UI Strings
Translation: CoMaps/Countries and regions names
Translation: CoMaps/Voice announcements for navigation (TTS)
Translation: CoMaps/iOS - Map Feature Types
Translation: CoMaps/iOS Plurals
Translation: CoMaps/iOS UI Strings
2026-01-18 11:21:25 +00:00
77 changed files with 347 additions and 330 deletions

View File

@@ -1,9 +1,6 @@
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://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 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>
<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

@@ -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">Agas Tyller</string>
<string name="p2p_your_location">Dha 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">Agas istori golegyans</string>
<string name="editor_osm_notes">Agas notennow mappow</string>
<string name="editor_osm_history">Dha istori golegyans</string>
<string name="editor_osm_notes">Dha 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">Ya</string>
<string name="yes">Ea</string>
<string name="no">Na</string>
<string name="yes_available">Ya</string>
<string name="yes_available">Ea</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">Surgiu uma falha ao enviar os favoritos. O ficheiro pode estar corrompido ou com defeito.</string>
<string name="load_kmz_failed">Impossível carregar 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</string>
<string name="bookmark_lists">Listas de Favoritos</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 e trajetos</string>
<string name="bookmarks_import">Importar favoritos</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 em Favoritos e Trajetos?</string>
<string name="track_recording_alert_title">Guardar nos Favoritos?</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 marcador</string>
<string name="bookmark_color">Cor do Favorito</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 marcadores e trajetos</string>
<string name="pref_backup_title">Backup dos Favoritos</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,4 +914,5 @@
<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">Obnovi</string>
<string name="restore">Povrni</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

@@ -1 +0,0 @@
../../../../../data/countries_meta.txt

View File

@@ -149,7 +149,6 @@
<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,7 +587,6 @@
<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">Døgnbutik</string>
<string name="type.shop.convenience">Nærbutik</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,7 +131,6 @@
<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>
@@ -1398,7 +1397,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">Banco sin respaldo</string>
<string name="type.amenity.bench.backless">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>
@@ -1509,4 +1508,5 @@
<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 pink</string>
<string name="type.amenity.bench.backless">Ilma seljatoeta</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,4 +1507,5 @@
<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,7 +124,6 @@
<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>
@@ -1397,7 +1396,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">Banc sans dossier</string>
<string name="type.amenity.bench.backless">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,7 +151,6 @@
<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,7 +131,6 @@
<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,7 +130,6 @@
<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,7 +97,6 @@
<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">Suolas be atramos</string>
<string name="type.amenity.bench.backless">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">Elektrinių dviračių krovimo stotelė</string>
<string name="type.amenity.charging_station.motorcar">Elektromobilių 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.childcare">Lopšelis</string>
<string name="type.amenity.cinema">Kino teatras</string>
<string name="type.leisure.bowling_alley">Boulingo klubas</string>
@@ -225,7 +225,6 @@
<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>
@@ -1433,4 +1432,8 @@
<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">Sols bez atzveltnes</string>
<string name="type.amenity.bench.backless">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,7 +120,6 @@
<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">Bankje</string>
<string name="type.amenity.bench.backless">Zonder 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,7 +131,6 @@
<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>
@@ -1397,7 +1396,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">Banco sem Encosto</string>
<string name="type.amenity.bench.backless">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>
@@ -1508,4 +1507,6 @@
<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">Klop brez naslonjala</string>
<string name="type.amenity.bench.backless">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,7 +309,6 @@
<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>
@@ -1221,7 +1220,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 mešanim blagom</string>
<string name="type.shop.convenience">Trgovina z osnovnimi potrebščinami</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>
@@ -1321,7 +1320,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">Gostišče</string>
<string name="type.tourism.hostel">Hostel</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>
@@ -1331,6 +1330,88 @@
<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">Preproge</string>
<string name="type.aerialway.magic_carpet">Tekoči trak</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,7 +131,6 @@
<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,7 +269,6 @@
<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,7 +131,6 @@
<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>
@@ -355,7 +354,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>
@@ -1393,8 +1392,36 @@
<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":"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_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_Jihozapad_Plzensky kraj Description":"Plzeň (ehem. Pilsen), Klatovy, Rokycany",
"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_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_Praha Description":"Prag",
"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",
"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",
"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

@@ -1,9 +1,9 @@
{
"World": {
"languages": []
"languages": ["int_name", "en", "default"]
},
"WorldCoasts": {
"languages": []
"languages": ["int_name", "en", "default"]
},
"Abkhazia": {
"languages": ["ab", "ru"]

View File

@@ -23,7 +23,7 @@
"make_a_u_turn_street":"NULL",
"make_a_u_turn_street_verb":"NULL",
"go_straight":"Fahre geradeaus.",
"exit":"Beenden.",
"exit":"Nimm die Ausfahrt.",
"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

@@ -4,7 +4,6 @@ Thank you for your interest in contributing to CoMaps!
## How Can I Contribute?
- [Donate](https://opencollective.com/comaps/donate)
- [Submit a bug report or a feature request](#bug-reports-and-feature-requests)
There are things to do for everyone:
@@ -47,13 +46,11 @@ Check the [map styling instructions](STYLES.md) and work on adding new map featu
Please follow instructions in [INSTALL.md](INSTALL.md) to set up your development environment.
You will find a list of issues for new contributors [here](https://codeberg.org/comaps/comaps/issues?labels=393881) to help you get started with simple tasks.
**We do not assign issues to first-time contributors.** Any such request notifies our contributors and the development team, and creates unnecessary noise that distracts us from the work. Just make a PR - and it will be reviewed.
Sometimes it's better to discuss and confirm your vision of the fix or implementation before working on an issue. Our main focus is on simplicity and convenience for everyone, not only for geeks.
Please [learn how to use `git rebase`](https://git-scm.com/book/en/v2/Git-Branching-Rebasing) (or rebase via any git tool with a graphical interface, e.g. [Fork for Mac](https://git-fork.com/) is quite good) to amend your commits in the PR and maintain a clean logical commit history for your changes/branches.
We strive to help onboard new developers but we don't always have enough time to guide newcomers step-by-step and explain everything in detail. For that reason we might ask you to read lots of the documentation and study the existing code.
Before submitting a PR, be sure your changes follow these different guidelines:
- [Pull Request Guide](PR_GUIDE.md).
- [Directories structure](STRUCTURE.md)
@@ -71,7 +68,6 @@ Please help us:
- reproducing and triaging reported bugs
- [testing upcoming features and bug fixes for Android, iOS and desktop versions](TESTING.md)
- keeping [issues](https://codeberg.org/comaps/comaps/issues) in order (check for duplicates, organize, assign labels, link related issues, etc.)
- composing nice user-centric release notes and news items
- etc.
You can also contribute in [other ways](https://codeberg.org/comaps/Governance/src/branch/main/contribute.md).

View File

@@ -1,6 +1,3 @@
# Roadmap
## Milestones
Milestones define when an issue, pull request, and/or roadmap item is to be completed. Issues are the what, milestones are the when. Development is complex therefore roadmap items can move between milestones depending on the remaining development and testing required to release a change.
[View active milestones](https://codeberg.org/comaps/comaps/milestones).
We didn't have roadmap, but we are working on a mission document to help to understood our vision of the project. And we have an [App Priorities project](https://codeberg.org/comaps/comaps/projects/16883) on Codeberg to follow most important and asked features or changes.

View File

@@ -1,9 +1,9 @@
# How works CI?
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.
We use our own server to execute our CI on Codeberg.
- [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)
- [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.

View File

@@ -41,9 +41,6 @@ NS_SWIFT_NAME(SettingsBridge)
+ (NSString *)mapLanguageCode;
+ (void)setMapLanguageCode:(NSString *)mapLanguageCode;
+ (BOOL)mapLanguageLimitAlternativesToLocal;
+ (void)setMapLanguageLimitAlternativesToLocal:(BOOL)mapLanguageLimitAlternativesToLocal;
+ (BOOL)transliteration;
+ (void)setTransliteration:(BOOL)transliteration;

View File

@@ -234,20 +234,6 @@ NSString * const kUDFileLoggingEnabledKey = @"FileLoggingEnabledKey";
}
}
+ (BOOL)mapLanguageLimitAlternativesToLocal
{
bool enabled = true;
UNUSED_VALUE(settings::Get(settings::kMapLanguageLimitAlternativesToLocal, enabled));
return enabled;
}
+ (void)setMapLanguageLimitAlternativesToLocal:(BOOL)mapLanguageLimitAlternativesToLocal
{
settings::Set(settings::kMapLanguageLimitAlternativesToLocal, static_cast<bool>(mapLanguageLimitAlternativesToLocal));
auto & f = GetFramework();
f.InvalidateRect(f.GetCurrentViewport());
}
+ (BOOL)transliteration { return GetFramework().LoadTransliteration(); }
+ (void)setTransliteration:(BOOL)transliteration
{

View File

@@ -538,7 +538,6 @@
"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 Lists";
"bookmark_sets" = "বুকমার্ক তালিকার নাম";
"opens_in" = "Opens in %@";
"dialog_routing_check_gps" = "জিপিএস সিগন্যাল পরীক্ষা করুন";
"dialog_routing_download_cross_route" = "এই মানচিত্রের সীমানা অতিক্রম করে আরও ভালো রুট তৈরি করতে অতিরিক্ত মানচিত্র ডাউনলোড করুন।";

View File

@@ -44,7 +44,6 @@
"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,7 +269,6 @@
"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" = "Døgnbutik";
"type.shop.convenience" = "Nærbutik";
"type.shop.copyshop" = "Kopieringsbutik";
"type.shop.cosmetics" = "Kosmetiker";
"type.shop.curtain" = "Gardinhandel";

View File

@@ -1095,7 +1095,6 @@
"edit_track" = "Track bearbeiten";
"pref_mapappearance_title" = "Kartendarstellung";
"pref_maplanguage_title" = "Karten-Sprache";
"limit_map_language_alternatives_to_local" = "Nutzung alternativer Sprachen auf lokale Sprachen begrenzen";
"transliteration_title_disabled_summary" = "Bei der Nutzung der lokalen Sprache für die Karte ausgeschaltet";
"pref_maplanguage_local" = "Lokale Sprache";
"existence_confirmed_time_ago" = "Existenz bestätigt %@";

View File

@@ -766,7 +766,6 @@
"traffic_data_unavailable" = "Traffic data is not available";
"enable_logging" = "Enable logging";
"log_file_size" = "Log file size: %@";
"limit_map_language_alternatives_to_local" = "Limit use of alternative languages to local ones";
"transliteration_title" = "Transliterate into Latin alphabet";
"transliteration_title_disabled_summary" = "Disabled when always using the local language for the map";

View File

@@ -786,7 +786,6 @@
"traffic_data_unavailable" = "Traffic data is not available";
"enable_logging" = "Enable logging";
"log_file_size" = "Log file size: %@";
"limit_map_language_alternatives_to_local" = "Limit use of alternative languages to local ones";
"transliteration_title" = "Transliterate into Latin alphabet";
"transliteration_title_disabled_summary" = "Disabled when always using the local language for the map";

View File

@@ -236,7 +236,6 @@
"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,7 +232,6 @@
"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,7 +401,6 @@
"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,7 +428,6 @@
"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,7 +24,6 @@
"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,7 +880,6 @@
"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,7 +18,6 @@
"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" = "Obnovi";
"restore" = "Povrni";
"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,3 +581,20 @@
"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>bookmarks_places</string>
<string>%#@value@</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>bookmarks_detect_message</string>
<string>%#@value@</string>
</dict>
<key>tracks</key>
<dict>
@@ -66,7 +66,7 @@
<string>%d sledi</string>
</dict>
<key>NSStringLocalizedFormatKey</key>
<string>tracks</string>
<string>%#@value@</string>
</dict>
</dict>
</plist>

View File

@@ -308,7 +308,6 @@
"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";
@@ -1211,7 +1210,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 mešanim blagom";
"type.shop.convenience" = "Trgovina z osnovnimi potrebščinami";
"type.shop.copyshop" = "Kopirnica";
"type.shop.cosmetics" = "Kozmetična trgovina";
"type.shop.curtain" = "Trgovina z zavesami";
@@ -1309,7 +1308,7 @@
"type.shop.perfumery" = "Trgovina z dišavami";
"type.shop.sewing" = "Šiviljska trgovina";
"type.shop.storage_rental" = "Najem skladiščnih prostorov";
"type.tourism.hostel" = "Gostišče";
"type.tourism.hostel" = "Hostel";
"type.tourism.hotel" = "Hotel";
"type.tourism.information" = "Turistične informacije";
"type.tourism.information.board" = "Informacijska tabla";
@@ -1319,5 +1318,87 @@
"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" = "Preproge";
"type.aerialway.magic_carpet" = "Tekoči trak";
"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,7 +76,6 @@
"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,7 +135,6 @@
"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,3 +1486,26 @@
"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

@@ -12,7 +12,6 @@
165953942CB44B5600CFED7C /* symbols in Resources */ = {isa = PBXBuildFile; fileRef = 165953932CB44B3B00CFED7C /* symbols */; };
1DFA2F6A20D3B57400FB2C66 /* UIColor+PartnerColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DFA2F6920D3B57400FB2C66 /* UIColor+PartnerColor.m */; };
270C9C282E16AB6F00ABA688 /* Profile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 270C9C252E16AB6300ABA688 /* Profile.swift */; };
271186872F19467400FD7FF3 /* countries_meta.txt in Resources */ = {isa = PBXBuildFile; fileRef = 271186862F19467400FD7FF3 /* countries_meta.txt */; };
27176A862E65B0150015F25F /* Icon.icon in Resources */ = {isa = PBXBuildFile; fileRef = 27176A852E65B0150015F25F /* Icon.icon */; };
27176A8A2E65B01B0015F25F /* Debug Icon.icon in Resources */ = {isa = PBXBuildFile; fileRef = 27176A892E65B01B0015F25F /* Debug Icon.icon */; };
272CA4492F127221005A3F5B /* subtypes.csv in Resources */ = {isa = PBXBuildFile; fileRef = 272CA4482F127221005A3F5B /* subtypes.csv */; };
@@ -764,7 +763,6 @@
1DFA2F6920D3B57400FB2C66 /* UIColor+PartnerColor.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = "UIColor+PartnerColor.m"; sourceTree = "<group>"; tabWidth = 2; };
1DFA2F6E20D3CA9200FB2C66 /* UIColorRoutines.h */ = {isa = PBXFileReference; indentWidth = 2; lastKnownFileType = sourcecode.c.h; path = UIColorRoutines.h; sourceTree = "<group>"; tabWidth = 2; };
270C9C252E16AB6300ABA688 /* Profile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Profile.swift; sourceTree = "<group>"; };
271186862F19467400FD7FF3 /* countries_meta.txt */ = {isa = PBXFileReference; lastKnownFileType = text; name = countries_meta.txt; path = ../../data/countries_meta.txt; sourceTree = SOURCE_ROOT; };
27176A852E65B0150015F25F /* Icon.icon */ = {isa = PBXFileReference; lastKnownFileType = folder.iconcomposer.icon; path = Icon.icon; sourceTree = "<group>"; };
27176A892E65B01B0015F25F /* Debug Icon.icon */ = {isa = PBXFileReference; lastKnownFileType = folder.iconcomposer.icon; path = "Debug Icon.icon"; sourceTree = "<group>"; };
272CA4482F127221005A3F5B /* subtypes.csv */ = {isa = PBXFileReference; lastKnownFileType = text; name = subtypes.csv; path = ../../data/subtypes.csv; sourceTree = SOURCE_ROOT; };
@@ -3943,7 +3941,6 @@
452FCA3A1B6A3DF7007019AB /* colors.txt */,
97A5967E19B9CD47007A963F /* copyright.html */,
FA46DA2B12D4166E00968C36 /* countries.txt */,
271186862F19467400FD7FF3 /* countries_meta.txt */,
4A23D1561B8B4DD700D4EB6F /* drules_proto_default_light.bin */,
4A00DBDE1AB704C400113624 /* drules_proto_default_dark.bin */,
FA637ECC29A500BE00D8921A /* drules_proto_outdoors_light.bin */,
@@ -4182,7 +4179,6 @@
files = (
165953742CB1D85500CFED7C /* fonts in Resources */,
165953942CB44B5600CFED7C /* symbols in Resources */,
271186872F19467400FD7FF3 /* countries_meta.txt in Resources */,
47AEF8402231249E00D20538 /* categories_brands.txt in Resources */,
F6C3A1B221AC22810060EEC8 /* Alert 5.m4a in Resources */,
3404F49A2028A20D0090E401 /* BMCCategoryCell.xib in Resources */,

View File

@@ -167,17 +167,6 @@ import AVFoundation
}
/// If the alternative languages for the app only should be used when they are the local native language
static var shouldLimitMapLanguageAlternativesToLocal: Bool {
get {
return SettingsBridge.mapLanguageLimitAlternativesToLocal()
}
set {
SettingsBridge.setMapLanguageLimitAlternativesToLocal(newValue)
}
}
/// If the compass should be calibrated
@objc static var shouldCalibrateCompass: Bool {
get {

View File

@@ -36,10 +36,6 @@ struct SettingsView: View {
@State var selectedLanguageForMap: Settings.MapLanguage.ID? = nil
/// If the alternative languages for the app only should be used when they are the local native language
@State private var shouldLimitMapLanguageAlternativesToLocal: Bool = true
/// If names should be transliterated to Latin
@State private var shouldTransliterateToLatin: Bool = true
@@ -157,20 +153,6 @@ struct SettingsView: View {
Text("pref_maplanguage_title")
}
Toggle(isOn: $shouldLimitMapLanguageAlternativesToLocal) {
VStack(alignment: .leading) {
Text("limit_map_language_alternatives_to_local")
if selectedLanguageForMap == "default" {
Text("transliteration_title_disabled_summary")
.font(.footnote)
.foregroundStyle(.secondary)
}
}
}
.tint(.accent)
.disabled(selectedLanguageForMap == "default")
Toggle(isOn: $shouldTransliterateToLatin) {
VStack(alignment: .leading) {
Text("transliteration_title")
@@ -314,7 +296,6 @@ struct SettingsView: View {
hasAutomaticDownload = Settings.hasAutomaticDownload
hasIncreasedFontsize = Settings.hasIncreasedFontsize
selectedLanguageForMap = Settings.languageForMap
shouldLimitMapLanguageAlternativesToLocal = Settings.shouldLimitMapLanguageAlternativesToLocal
shouldTransliterateToLatin = Settings.shouldTransliterateToLatin
selectedMapAppearance = Settings.mapAppearance
selectedAppearance = Settings.appearance
@@ -347,9 +328,6 @@ struct SettingsView: View {
Settings.languageForMap = changedSelectedLanguageForMap
}
}
.onChange(of: shouldLimitMapLanguageAlternativesToLocal) { changedShouldLimitMapLanguageAlternativesToLocal in
Settings.shouldLimitMapLanguageAlternativesToLocal = changedShouldLimitMapLanguageAlternativesToLocal
}
.onChange(of: shouldTransliterateToLatin) { changedShouldTransliterateToLatin in
Settings.shouldTransliterateToLatin = changedShouldTransliterateToLatin
}

View File

@@ -72,8 +72,6 @@ set(SRC
feature_impl.hpp
feature_meta.cpp
feature_meta.hpp
feature_region_locator.cpp
feature_region_locator.hpp
feature_processor.hpp
feature_source.cpp
feature_source.hpp

View File

@@ -3,7 +3,6 @@
#include "indexer/classificator.hpp"
#include "indexer/feature_algo.hpp"
#include "indexer/feature_impl.hpp"
#include "indexer/feature_region_locator.hpp"
#include "indexer/feature_utils.hpp"
#include "indexer/map_object.hpp"
#include "indexer/shared_load_info.hpp"
@@ -826,16 +825,7 @@ void FeatureType::GetReadableName(bool allowTranslit, int8_t deviceLang, feature
ParseCommon();
auto regionData = mwmInfo->GetRegionData();
if (regionData.IsWorldLevel())
{
if (GetGeomType() == feature::GeomType::Point)
regionData.SetLanguages(RegionLocator::Instance().GetLocalLanguages(GetCenter()));
else
regionData.SetLanguages({"int_name", "en", "default"});
}
feature::GetReadableName({GetNames(), regionData, deviceLang, allowTranslit}, out);
feature::GetReadableName({GetNames(), mwmInfo->GetRegionData(), deviceLang, allowTranslit}, out);
}
string const & FeatureType::GetHouseNumber()

View File

@@ -216,11 +216,6 @@ void Metadata::ClearPOIAttribs()
++i;
}
bool RegionData::IsWorldLevel() const
{
return Get(RegionData::Type::RD_LANGUAGES).empty();
}
void RegionData::SetLanguages(vector<string> const & codes)
{
string value;

View File

@@ -224,7 +224,6 @@ public:
MetadataBase::Set(type, s);
}
bool IsWorldLevel() const;
void SetLanguages(std::vector<std::string> const & codes);
void GetLanguages(std::vector<int8_t> & langs) const;
bool HasLanguage(int8_t const lang) const;

View File

@@ -1,26 +0,0 @@
#include "indexer/feature_region_locator.hpp"
#include "defines.hpp"
#include "platform/platform.hpp"
namespace feature
{
/// Constructor
RegionLocator::RegionLocator()
{
auto & platform = GetPlatform();
m_infoGetter = storage::CountryInfoReader::CreateCountryInfoGetter(platform);
auto reader = platform.GetReader(COUNTRIES_META_FILE);
string buffer;
reader->ReadAsString(buffer);
m_jsonRoot = base::Json(buffer.data());
}
/// Static instance
RegionLocator const & RegionLocator::Instance()
{
static RegionLocator instance;
return instance;
}
} // namespace feature

View File

@@ -1,56 +0,0 @@
#pragma once
#include "coding/reader.hpp"
#include "cppjansson/cppjansson.hpp"
#include "storage/storage.hpp"
#include "storage/country_info_getter.hpp"
#include <vector>
namespace feature
{
using namespace std;
class RegionLocator
{
public:
/// Static instance
static RegionLocator const & Instance();
/**
* Find the local languages codes for a given point
* @param point The point to check
* @return The local language codes
*/
vector<string> GetLocalLanguages(m2::PointD const point) const
{
auto const regionId = m_infoGetter->GetRegionCountryId(point);
vector<string> regionIdParts;
for (auto const regionIdPart : strings::Tokenize(regionId, "_")) {
regionIdParts.push_back(string(regionIdPart));
}
json_t const * jsonData = nullptr;
vector<string> languages;
while (languages.empty() && !regionIdParts.empty()) {
string regionId = strings::JoinStrings(regionIdParts, "_");
FromJSONObjectOptionalField(m_jsonRoot.get(), regionId, jsonData);
if (jsonData)
FromJSONObjectOptionalField(jsonData, "languages", languages);
regionIdParts.pop_back();
}
return languages;
}
private:
/// Constructor
RegionLocator();
/// Country info getter
unique_ptr<storage::CountryInfoGetter> m_infoGetter;
/// JSON root
base::Json m_jsonRoot;
};
} // namespace feature

View File

@@ -9,7 +9,6 @@
#include "platform/distance.hpp"
#include "platform/localization.hpp"
#include "platform/preferred_languages.hpp"
#include "platform/settings.hpp"
#include "coding/string_utf8_multilang.hpp"
#include "coding/transliteration.hpp"
@@ -118,7 +117,7 @@ bool IsNativeLang(feature::RegionData const & regionData, int8_t deviceLang)
return false;
}
int8_t DefaultLanguageFromRegionData(feature::RegionData const & regionData, vector<int8_t> const & langs)
int8_t DefaultLanguage(feature::RegionData const & regionData, vector<int8_t> const & langs)
{
for (auto const lang : langs)
{
@@ -133,39 +132,18 @@ int8_t DefaultLanguageFromRegionData(feature::RegionData const & regionData, vec
return StrUtf8::kDefaultCode;
}
vector<int8_t> PrioritizedLanguages(optional<feature::RegionData> const & regionData = {})
vector<int8_t> PrioritizedLanguages(vector<int8_t> const & langs, int8_t defaultLang)
{
bool limitAlternativesToLocal = true;
UNUSED_VALUE(settings::Get(settings::kMapLanguageLimitAlternativesToLocal, limitAlternativesToLocal));
vector<int8_t> prioritizedLangs = {};
vector<int8_t> const langs = languages::GetPreferredLangIndexes();
int8_t defaultLang = StrUtf8::kUnsupportedLanguageCode;
if (regionData.has_value())
defaultLang = DefaultLanguageFromRegionData(regionData.value(), langs);
for (auto const lang : langs)
{
if (!limitAlternativesToLocal &&
find(prioritizedLangs.begin(), prioritizedLangs.end(), lang) == prioritizedLangs.end())
if (find(prioritizedLangs.begin(), prioritizedLangs.end(), lang) == prioritizedLangs.end())
prioritizedLangs.push_back(lang);
if (defaultLang != StrUtf8::kUnsupportedLanguageCode && defaultLang == lang)
prioritizedLangs.push_back(StrUtf8::kDefaultCode);
if (!limitAlternativesToLocal)
{
auto const similarLangs = GetSimilarLanguages(lang);
prioritizedLangs.insert(prioritizedLangs.cend(), similarLangs.cbegin(), similarLangs.cend());
}
}
if (limitAlternativesToLocal)
{
auto lang = langs.front();
prioritizedLangs.push_back(lang);
auto const similarLangs = GetSimilarLanguages(lang);
prioritizedLangs.insert(prioritizedLangs.cend(), similarLangs.cbegin(), similarLangs.cend());
}
@@ -179,7 +157,8 @@ vector<int8_t> PrioritizedLanguages(optional<feature::RegionData> const & region
void GetReadableNameImpl(NameParamsIn const & in, bool preferDefault, NameParamsOut & out)
{
auto const langPriority = PrioritizedLanguages(in.regionData);
auto const preferredLangs = languages::GetPreferredLangIndexes();
auto const langPriority = PrioritizedLanguages(preferredLangs, DefaultLanguage(in.regionData, preferredLangs));
if (GetBestName(in.src, langPriority, out.primary))
return;
@@ -382,7 +361,8 @@ void GetPreferredNames(NameParamsIn const & in, NameParamsOut & out)
if (in.IsNativeOrSimilarLang())
return GetReadableNameImpl(in, true /* preferDefault */, out);
auto const primaryCodes = PrioritizedLanguages(in.regionData);
auto const preferredLangs = languages::GetPreferredLangIndexes();
auto const primaryCodes = PrioritizedLanguages(preferredLangs, DefaultLanguage(in.regionData, preferredLangs));
if (!GetBestName(in.src, primaryCodes, out.primary) && in.allowTranslit)
GetTransliteratedName(in.regionData, in.src, out.transliterated);
@@ -447,14 +427,17 @@ int8_t GetNameForSearchOnBooking(RegionData const & regionData, StringUtf8Multil
}
*/
bool GetPreferredName(StringUtf8Multilang const & src, string_view & out)
bool GetPreferredName(StringUtf8Multilang const & src, int8_t deviceLang, string_view & out)
{
return GetBestName(src, PrioritizedLanguages(), out);
auto const preferredLangs = languages::GetPreferredLangIndexes();
auto const priorityList = PrioritizedLanguages(preferredLangs, StrUtf8::kUnsupportedLanguageCode);
return GetBestName(src, priorityList, out);
}
vector<int8_t> GetDescriptionLangPriority(RegionData const & regionData)
{
return PrioritizedLanguages(regionData);
auto const preferredLangs = languages::GetPreferredLangIndexes();
return PrioritizedLanguages(preferredLangs, DefaultLanguage(regionData, preferredLangs));
}
vector<string> GetCuisines(TypesHolder const & types)

View File

@@ -137,7 +137,7 @@ std::string const GetReadableAddress(std::string const & address);
// int8_t GetNameForSearchOnBooking(RegionData const & regionData, StringUtf8Multilang const & src, std::string & name);
/// Returns preferred name when only the device language is available.
bool GetPreferredName(StringUtf8Multilang const & src, std::string_view & out);
bool GetPreferredName(StringUtf8Multilang const & src, int8_t deviceLang, std::string_view & out);
/// Returns priority list of language codes for feature description,
/// the priority is the following:

View File

@@ -81,12 +81,10 @@ public:
MwmTypeT GetType() const;
// Switch to following simplified code after this pull request has been included in one release:
// feature::RegionData GetRegionData() const { return m_data; }
feature::RegionData GetRegionData() const {
auto regionData = m_data;
if (GetType() == MwmTypeT::WORLD || GetType() == MwmTypeT::COASTS) {
regionData.SetLanguages({});
regionData.SetLanguages({"int_name","en","default"});
}
return regionData;
}

View File

@@ -31,8 +31,10 @@ std::string GetPreferredBookmarkStr(LocalizableString const & name, std::string
for (auto const & pair : name)
nameMultilang.AddString(pair.first, pair.second);
auto const deviceLang = StringUtf8Multilang::GetLangIndex(languageNorm);
std::string_view preferredName;
if (feature::GetPreferredName(nameMultilang, preferredName))
if (feature::GetPreferredName(nameMultilang, deviceLang, preferredName))
return std::string(preferredName);
return {};

View File

@@ -22,7 +22,6 @@ using std::string;
std::string_view kMeasurementUnits = "Units";
std::string_view kMapLanguageCode = "MapLanguageCode";
std::string_view kMapLanguageLimitAlternativesToLocal = "MapLanguageLimitAlternativesToLocal";
std::string_view kDeveloperMode = "DeveloperMode";
std::string_view kDonateUrl = "DonateUrl";
std::string_view kNY = "NY";

View File

@@ -12,7 +12,6 @@ namespace settings
extern std::string_view kMeasurementUnits;
extern std::string_view kDeveloperMode;
extern std::string_view kMapLanguageCode;
extern std::string_view kMapLanguageLimitAlternativesToLocal;
// The following two settings are configured externally at the metaserver.
extern std::string_view kDonateUrl;
extern std::string_view kNY;

View File

@@ -115,7 +115,6 @@ copy_resources(
colors.txt
copyright.html
countries.txt
countries_meta.txt
drules_proto_default_light.bin
drules_proto_default_dark.bin
drules_proto_outdoors_light.bin

View File

@@ -20,7 +20,7 @@ MAIN_OUT_PATH: /mnt/4tbexternal/osm-maps
# Path to the data/ folder in the repository:
USER_RESOURCE_PATH: ${Developer:OMIM_PATH}/data
# Features stage only parallelism level. Set to 0 for auto detection.
THREADS_COUNT_FEATURES_STAGE: 52
THREADS_COUNT_FEATURES_STAGE: 0
# Do not change it. This is determined automatically.
NODE_STORAGE: mem
@@ -99,7 +99,7 @@ DIFF_VERSION_DEPTH: 2
[Common]
# Default parallelism level for the most of jobs. Set to 0 for auto detection.
THREADS_COUNT: 48
THREADS_COUNT: 0
[Stats]

View File

@@ -7,8 +7,6 @@
objects = {
/* Begin PBXBuildFile section */
2711868B2F194FF000FD7FF3 /* feature_region_locator.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 2711868A2F194FCF00FD7FF3 /* feature_region_locator.hpp */; };
2711868D2F194FF600FD7FF3 /* feature_region_locator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2711868C2F194FF400FD7FF3 /* feature_region_locator.cpp */; };
272CA4462F126795005A3F5B /* ftypes_subtypes.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 272CA4442F126795005A3F5B /* ftypes_subtypes.hpp */; };
272CA4472F126795005A3F5B /* ftypes_subtypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 272CA4452F126795005A3F5B /* ftypes_subtypes.cpp */; };
272CA44D2F12723B005A3F5B /* subtypes.csv in Resources */ = {isa = PBXBuildFile; fileRef = 272CA44C2F12723B005A3F5B /* subtypes.csv */; };
@@ -235,8 +233,6 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
2711868A2F194FCF00FD7FF3 /* feature_region_locator.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = feature_region_locator.hpp; sourceTree = "<group>"; };
2711868C2F194FF400FD7FF3 /* feature_region_locator.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = feature_region_locator.cpp; sourceTree = "<group>"; };
272CA4442F126795005A3F5B /* ftypes_subtypes.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = ftypes_subtypes.hpp; sourceTree = "<group>"; };
272CA4452F126795005A3F5B /* ftypes_subtypes.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ftypes_subtypes.cpp; sourceTree = "<group>"; };
272CA44C2F12723B005A3F5B /* subtypes.csv */ = {isa = PBXFileReference; lastKnownFileType = text; name = subtypes.csv; path = ../../data/subtypes.csv; sourceTree = "<group>"; };
@@ -681,8 +677,6 @@
675340C71A3F540F00A0A8C3 /* feature_impl.hpp */,
6726C1CF1A49DAAC005EEA39 /* feature_meta.cpp */,
6726C1D01A49DAAC005EEA39 /* feature_meta.hpp */,
2711868C2F194FF400FD7FF3 /* feature_region_locator.cpp */,
2711868A2F194FCF00FD7FF3 /* feature_region_locator.hpp */,
675340CC1A3F540F00A0A8C3 /* feature_processor.hpp */,
675B562120D25C9800A521D2 /* feature_source.cpp */,
675B562220D25C9800A521D2 /* feature_source.hpp */,
@@ -800,7 +794,6 @@
6753414C1A3F540F00A0A8C3 /* tree_structure.hpp in Headers */,
F6DF5F311CD0FD9A00A87154 /* categories_index.hpp in Headers */,
40662D32236059BF006A124D /* tree_node.hpp in Headers */,
2711868B2F194FF000FD7FF3 /* feature_region_locator.hpp in Headers */,
347F337D1C454242009758CC /* succinct_trie_builder.hpp in Headers */,
675341381A3F540F00A0A8C3 /* mwm_set.hpp in Headers */,
456E1B181F90E5B7009C32E1 /* cities_boundaries_serdes.hpp in Headers */,
@@ -952,7 +945,7 @@
3496ABA31DC1FA7200C5DDBA /* editor.config in Resources */,
3496AB9D1DC1FA5200C5DDBA /* drules_proto_clear.bin in Resources */,
3496AB9E1DC1FA5200C5DDBA /* drules_proto_dark.bin in Resources */,
272CA44D2F12723B005A3F5B /* subtypes.csv in Resources */,
272CA44D2F12723B005A3F5B /* subtypes.csv in Resources */,
FA67C84F26BB36D700B33DCA /* categories_brands.txt in Resources */,
FA67C84626BB356800B33DCA /* categories_cuisines.txt in Resources */,
3496ABA11DC1FA5200C5DDBA /* drules_proto.bin in Resources */,
@@ -1048,7 +1041,6 @@
272CA4472F126795005A3F5B /* ftypes_subtypes.cpp in Sources */,
BBB7060F23E46E0100A7F29A /* isolines_info.cpp in Sources */,
408FE47724FEB95600F5D06D /* metadata_serdes.cpp in Sources */,
2711868D2F194FF600FD7FF3 /* feature_region_locator.cpp in Sources */,
34583BCB1C88552100F94664 /* map_object.cpp in Sources */,
675B562320D25C9800A521D2 /* feature_source.cpp in Sources */,
6753412E1A3F540F00A0A8C3 /* index_builder.cpp in Sources */,