Compare commits

..

8 Commits

Author SHA1 Message Date
Konstantin Pastbin
99591d1e54 [fdroid] Release version 2025.06.10-4
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-06-10 21:15:28 +07:00
Konstantin Pastbin
9d31c7f37f [planet] Update map data to 250602
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-06-10 16:13:03 +02:00
Mihail Mitrofanov
1f950d2c0b [android] Prevent crash when direction arrow view is missing in landscape mode
Signed-off-by: Mihail Mitrofanov <mitrofanov@bitrix.ru>
2025-06-10 14:15:23 +02:00
Konstantin Pastbin
111bb0b94c [fdroid] Release notes 2025.06.10
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-06-10 13:23:30 +02:00
Codeberg Translate
5567e011db [strings] Update from Codeberg Translate
Co-authored-by: AnanasSux <ananassux@noreply.codeberg.org>
Co-authored-by: Cayenne79 <cayenne79@noreply.codeberg.org>
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: Fjuro <git@alius.cz>
Co-authored-by: Priit Jõerüüt <jrtcdbrg@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: gedankenstuecke <gedankenstuecke@noreply.codeberg.org>
Co-authored-by: loscati <loscati@noreply.codeberg.org>
Co-authored-by: matheusgomesms <matheusgomesms@noreply.codeberg.org>
Co-authored-by: openfab <openfab@noreply.codeberg.org>
Co-authored-by: oxisol <oxisol@noreply.codeberg.org>
Co-authored-by: phama <phama@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/comaps/android-typestrings/
Translate-URL: https://translate.codeberg.org/projects/comaps/android-typestrings/de/
Translate-URL: https://translate.codeberg.org/projects/comaps/android-typestrings/fi/
Translate-URL: https://translate.codeberg.org/projects/comaps/android-typestrings/tr/
Translate-URL: https://translate.codeberg.org/projects/comaps/android-typestrings/zh_Hant/
Translate-URL: https://translate.codeberg.org/projects/comaps/android/cs/
Translate-URL: https://translate.codeberg.org/projects/comaps/android/de/
Translate-URL: https://translate.codeberg.org/projects/comaps/android/et/
Translate-URL: https://translate.codeberg.org/projects/comaps/android/fi/
Translate-URL: https://translate.codeberg.org/projects/comaps/android/fr/
Translate-URL: https://translate.codeberg.org/projects/comaps/android/it/
Translate-URL: https://translate.codeberg.org/projects/comaps/android/ja/
Translate-URL: https://translate.codeberg.org/projects/comaps/android/pt_BR/
Translate-URL: https://translate.codeberg.org/projects/comaps/android/tr/
Translate-URL: https://translate.codeberg.org/projects/comaps/android/zh_Hans/
Translate-URL: https://translate.codeberg.org/projects/comaps/android/zh_Hant/
Translate-URL: https://translate.codeberg.org/projects/comaps/appstore-descriptions/de/
Translate-URL: https://translate.codeberg.org/projects/comaps/fdroid-app-description/fi/
Translate-URL: https://translate.codeberg.org/projects/comaps/google-play-descriptions/fi/
Translate-URL: https://translate.codeberg.org/projects/comaps/google-play-descriptions/pt_BR/
Translate-URL: https://translate.codeberg.org/projects/comaps/ios-typestrings/
Translate-URL: https://translate.codeberg.org/projects/comaps/ios-typestrings/de/
Translate-URL: https://translate.codeberg.org/projects/comaps/ios-typestrings/fi/
Translate-URL: https://translate.codeberg.org/projects/comaps/ios-typestrings/tr/
Translation: CoMaps/Android - Map Feature Types
Translation: CoMaps/Android UI Strings
Translation: CoMaps/Apple AppStore description
Translation: CoMaps/F-Droid app description
Translation: CoMaps/Google Play and Huawei AppGallery descriptions
Translation: CoMaps/iOS - Map Feature Types
2025-06-09 21:22:16 +00:00
Codeberg Translate
6cafc1da75 [strings] Update from Codeberg Translate
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: Priit Jõerüüt <jrtcdbrg@noreply.codeberg.org>
Co-authored-by: gpesquero <gpesquero@noreply.codeberg.org>
Co-authored-by: jeanbaptisteC <jeanbaptistec@noreply.codeberg.org>
Co-authored-by: oxisol <oxisol@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/comaps/android-typestrings/es/
Translate-URL: https://translate.codeberg.org/projects/comaps/android-typestrings/ja/
Translate-URL: https://translate.codeberg.org/projects/comaps/android-typestrings/zh_Hans/
Translate-URL: https://translate.codeberg.org/projects/comaps/android-typestrings/zh_Hant/
Translate-URL: https://translate.codeberg.org/projects/comaps/android/es/
Translate-URL: https://translate.codeberg.org/projects/comaps/android/et/
Translate-URL: https://translate.codeberg.org/projects/comaps/android/fr/
Translate-URL: https://translate.codeberg.org/projects/comaps/android/ja/
Translate-URL: https://translate.codeberg.org/projects/comaps/android/zh_Hans/
Translate-URL: https://translate.codeberg.org/projects/comaps/android/zh_Hant/
Translate-URL: https://translate.codeberg.org/projects/comaps/ios-typestrings/
Translate-URL: https://translate.codeberg.org/projects/comaps/ios-typestrings/es/
Translate-URL: https://translate.codeberg.org/projects/comaps/ios-typestrings/ja/
Translate-URL: https://translate.codeberg.org/projects/comaps/ios-typestrings/zh_Hans/
Translate-URL: https://translate.codeberg.org/projects/comaps/ios-typestrings/zh_Hant/
Translation: CoMaps/Android - Map Feature Types
Translation: CoMaps/Android UI Strings
Translation: CoMaps/iOS - Map Feature Types
2025-06-09 09:47:00 +00:00
Mihail Mitrofanov
5eff4f56ca [android] Allow customization of the first (OM logo / About) button 2025-06-09 11:46:56 +02:00
Jean-Baptiste
d38ffe2fa8 [android] Migrate login screen to Material components
Signed-off-by: Jean-Baptiste Charron <jeanbaptiste.charron@outlook.fr>
2025-06-09 11:41:10 +02:00
67 changed files with 2931 additions and 2694 deletions

View File

@@ -1,10 +1,8 @@
Erster CoMaps Release!
Was ist neu im Vergleich zu Organic Maps:
OpenStreetMap-Daten vom 15. Mai
OSM Login jetzt über den Webbrowser
Der halbtransparente Hintergrund in der U-Bahn-Ansicht wurde entfernt
Größe der lokalen Karte beim ersten Karten download anzeigen
Der Metaserver wurde durch eine feste Liste an Kartenservern ersetzt
• Der Nachtmodus schaltet jetzt besser um, auch wenn kein GPS-Signal da ist
• OpenStreetMap Daten vom 2. Juni
• Neue Einstellungsoption zum Ändern oder Ausblenden der "Über CoMaps" Schaltfläche ganz links
Routen als GPS Track speichern
Qingdao Metro, Gärtnereien, Leitplanken, Leitern, Studios, Tanzsäle, Feuerstellen und Stundenhotels hinzugefügt
• transparente Navigationsleiste im Light Mode
Mastodon und Bluesky Kontaktoptionen für POIs und im OSM-Editor hinzugefügt
Anzeige der Kompassgradzahl in der Richtungspfeilansicht
• Übersetzungen aktualisiert
• Rebranding das Logo ist noch vorläufig

View File

@@ -1,11 +1,8 @@
Initial CoMaps release!
Changes from the Organic Maps upstream:
OpenStreetMap data as of May 15
login to OSM account via a web browser
removed semi-transparent background in Subway layer
replaced metaserver with a static map servers list
add local map size to the startup download screen
• improved auto night mode switch when there is no location fix
• fix incorrect map info when tapping on a not downloaded region
• OpenStreetMap data as of June 2
• add a setting to change the leftmost button or hide it
save built routes as tracks
add Qingdao metro, plant nurseries, highway guard rails, ladders, studios, dance venues, firepits, love hotels
transparent system navigation bar in the light mode
add Mastodon and Bluesky contact options to POIs and OSM editor
display Azimuth angle in direction arrow view
• update translations
• rebranding - the logo is provisional still

View File

@@ -1,12 +0,0 @@
Lanzamiento inicial de CoMaps
Cambios respecto a la versión de Organic Maps:
• Datos nuevos al 15 de mayo
• Inicio de sesión a OSM a través de navegador
• Eliminado fondo semitransparente en la capa de Metro
• Sustitución del metaserver por lista estática de servidores
• Añadido tamaño del mapa local al inicio
• Mejora del cambio automático al modo nocturno al no conocerse ubicación
• Correcciones de fallos
• Actualización de traducciones
• Cambio de branding con logo provisional

View File

@@ -0,0 +1 @@
Helppo karttanavigointi - Löydä lisää matkaltasi - Yhteisön voimin

View File

@@ -1 +1 @@
CoMaps - Vaella, pyöräile, autoile ilman verkkoyhteyttä yksityisesti
CoMaps - Patikoi, pyöräile, autoile ilman verkkoyhteyttä yksityisesti

View File

@@ -1,11 +1,8 @@
Première version de CoMaps!
Changements par rapport à Organic Maps:
Données OpenStreetMap du 15 mai
Connexion au compte OSM via le navigateur
Retrait du fond semi-transparent sur la couche Métro
Remplacement du metaserveur par une liste statique de serveurs
• Ajout de la taille de la carte locale au premier démarrage
• Amélioration du mode nuit automatique
• Correction de la suggestion de téléchargements de cartes
• Données OpenStreetMap du 02 juin
• Ajout d'une option pour personnaliser le bouton tout à gauche sur l'écran principal
Ajout de la possibilité d'enregistrer un itinéraire en tant que traces GPS
Ajout du métro de Qingdao, et divers objets sur la carte
Support de la barre de navigation transparent en mode clair
Ajout des tags Mastodon et Bluesky sur les lieux et dans l'éditeur
• Affichage de l'azimut
• Mise à jour des traductions
• Rebranding - le logo est encore provisoire

View File

@@ -0,0 +1,8 @@
• Data di OpenStreetmap fino a giugno 2°
• Nuova impostazione per cambiare o modificare la positione del tasto sinistra
• Salvare i percorsi costruiti come tracce
• È stato aggiunto: metropolitana di Qingdao, giardinaggi, guardrail, scale, studio,
sala da ballo, focolari, love hotel
• Barra di navigatione transparente di sisteme in moda luce
• Aggiungi le opzioni di contatto Mastodon e Bluesky ai POI e all'editor di OSM
• Visualizza l'angolo di azimut nella freccia di direzione

View File

@@ -1,11 +0,0 @@
Pierwsze wydanie CoMaps!
Zmiany w stosunku do Organic Maps:
• dane OSM z 15.05,
• logowanie do OSM przez przeglądarkę,
• usunięto półprzezroczyste tło w warstwie Metra,
• zastąpiono metaserver statyczną listą serwerów map,
• dodano rozmiar mapy do ekranu pobierania przy uruchamianiu,
• poprawiono przełączanie trybu nocnego bez lokalizacji,
• poprawiono niepoprawne informacje o mapie po dotknięciu niepobranego regionu,
• zaktualizowano tłumaczenia,
• rebranding - logo wciąż tymczasowe.

View File

@@ -1,9 +1,8 @@
Lançamento inicial do CoMaps!
Alterações em relação ao Organic Maps:
Dados do OSM de 15/05
Login na conta OSM por meio de autenticação no navegador
Remoção do fundo semitransparente na camada Metrô
Substituição do metaserver por uma lista estática de servidores de mapas
Melhoria na alternância automática do modo noturno quando não há localização
• Dados do OSM de 2/06
• Adicionada uma configuração para alterar ou ocultar o botão mais à esquerda
Salve rotas construídas como trilhas
Adicionado metrô de Qingdao, viveiros de plantas, guarda-corpos de rodovias, escadas, estúdios, casas de dança, fogueiras e motéis
Barra de navegação do sistema transparente no modo claro
Adicionadas opções de contato Mastodon e Bluesky aos POIs e ao editor OSM
Exibição de ângulo de azimute na visualização de seta de direção
• Novas traduções
• Rebranding - O logo ainda é provisório

View File

@@ -1,9 +0,0 @@
Lançamento inicial do CoMaps!
Alterações em relação ao Organic Maps:
• Dados do OSM de 15/05
• Login na conta OSM através de um navegador web auth
• Removido o fundo semi-transparente na camada do Metro
• Substituído o metaserver por uma lista estática de servidores de mapas
• Melhoria na mudança automática do modo noturno quando não há localização
• Novas traduções
• Rebranding - logótipo ainda provisório

View File

@@ -0,0 +1,7 @@
• карты OpenStreetMap от 2 июня
• настройка для изменения функции левой кнопки или её скрытия
• сохранение построенных маршрутов в виде треков
• добавлены: метро в Qingdao, питомники растений, отбойники на шоссе, постоянные лестницы-стремянки, студии, места для танцев, кострища, отели любви
• прозрачная полоска с системными кнопками (в светлом режиме)
• в объекты на карте (а также в их редактор) добавлены Mastodon и Bluesky контакты
• к стрелке направления на выбранный объект добавлен азимут

View File

@@ -1 +1 @@
version: 2025.03.02-7-FDroid+25030207
version: 2025.06.10-4-FDroid+25061004

View File

@@ -0,0 +1 @@
Helppo karttanavigointi - Löydä lisää matkaltasi - Yhteisön voimin

View File

@@ -0,0 +1,45 @@
Um aplicativo de mapas gratuito e de código aberto, liderado pela comunidade e baseado em dados do OpenStreetMap, reforçado pelo compromisso com a transparência, privacidade e sem fins lucrativos.
Junte-se à comunidade e ajude a criar o melhor aplicativo de mapas.
• Use o aplicativo e divulgue-o.
• Envie feedback e relate problemas.
• Atualize os dados do mapa no aplicativo ou no site do OpenStreetMap.
<i>Seu feedback e avaliações 5 estrelas são o nosso melhor suporte!</i>
‣ <b>Simples e refinado</b>: recursos essenciais e fáceis de usar que simplesmente funcionam.
‣ <b>Foco offline</b>: Planeje e navegue em sua viagem ao exterior sem a necessidade de sinal de celular, pesquise pontos de referência durante uma caminhada distante, etc. Todas as funções do aplicativo foram projetadas para funcionar offline.
‣ <b>Respeitando a privacidade</b>: O aplicativo foi projetado com a privacidade em mente - não identifica pessoas, não rastreia e não coleta informações pessoais. Livre de anúncios.
‣ <b>Economiza bateria e espaço</b>: Não esgota a bateria como outros aplicativos de navegação. Mapas compactos economizam espaço precioso no seu celular.
‣ <b>Gratuito e desenvolvido pela comunidade</b>: Pessoas como você ajudaram a desenvolver o aplicativo adicionando locais ao OpenStreetMap, testando e dando feedback sobre os recursos, além de contribuir com suas habilidades de desenvolvimento e recursos financeiros.
‣ <b>Tomada de decisões e finanças abertas e transparentes, sem fins lucrativos e totalmente de código aberto.</b>
‣ Simples e sofisticado: recursos essenciais e fáceis de usar que simplesmente funcionam.
‣ Foco offline: Planeje e navegue em sua viagem ao exterior sem a necessidade de sinal de celular, pesquise pontos de referência durante uma caminhada distante, etc. Todas as funções do aplicativo foram projetadas para funcionar offline.
‣ Respeito à privacidade: O aplicativo foi projetado com a privacidade em mente - não identifica pessoas, não rastreia e não coleta informações pessoais. Livre de anúncios.
‣ Economiza bateria e espaço: Não consome bateria como outros aplicativos de navegação. Mapas compactos economizam espaço precioso no seu celular.
‣ Gratuito e desenvolvido pela comunidade: Pessoas como você ajudaram a desenvolver o aplicativo adicionando lugares ao OpenStreetMap, testando e dando feedback sobre os recursos e contribuindo com dinheiro e habilidades de desenvolvimento.
‣ Tomada de decisões e finanças abertas e transparentes, sem fins lucrativos e totalmente de código aberto.
Principais recursos:
• Mapas detalhados para download com locais que não estão disponíveis em muitos mapas comerciais
• Modo ao ar livre com trilhas destacadas, acampamentos, fontes de água, picos, curvas de nível, etc.
• Trilhas para caminhada e ciclovias
• Pontos de interesse como restaurantes, postos de gasolina, hotéis, lojas, pontos turísticos e muito mais
• Pesquise por nome, endereço ou categoria de ponto de interesse
• Navegação com anúncios de voz para caminhada, ciclismo ou direção
• Marque seus lugares favoritos com um único toque
• Sincronização com iCloud para seus favoritos e trilhas
• Artigos offline da Wikipédia
• Camada e direções de transporte público de metrô
• Gravação de trilhas
• Exporte e importe favoritos e trilhas nos formatos KML, KMZ e GPX
• Modo escuro para usar à noite
• Aprimore os dados do mapa para todos usando um editor básico integrado
• Suporte para Android Auto
Por favor, reporte problemas com o aplicativo, sugira ideias e junte-se à nossa comunidade no site <b><i>comaps.app</i></b>.
<b>A Liberdade Chegou</b>
Descubra sua jornada, navegue pelo mundo com privacidade e comunidade em primeiro lugar!

View File

@@ -0,0 +1 @@
Fácil navegação - Descubra mais sobre sua jornada - Desenvolvido pela comunidade

View File

@@ -0,0 +1 @@
CoMaps - Navegue privadamente

View File

@@ -36,6 +36,7 @@ import androidx.annotation.StyleRes;
import androidx.annotation.UiThread;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.fragment.app.Fragment;
@@ -100,9 +101,9 @@ import app.organicmaps.settings.DrivingOptionsActivity;
import app.organicmaps.settings.RoadType;
import app.organicmaps.settings.SettingsActivity;
import app.organicmaps.settings.UnitLocale;
import app.organicmaps.universalbuttons.UniversalButton;
import app.organicmaps.universalbuttons.UniversalButtonsHolder;
import app.organicmaps.universalbuttons.UniversalToggleButton;
import app.organicmaps.leftbutton.LeftButton;
import app.organicmaps.leftbutton.LeftButtonsHolder;
import app.organicmaps.leftbutton.LeftToggleButton;
import app.organicmaps.util.Config;
import app.organicmaps.util.LocationUtils;
import app.organicmaps.util.PowerManagment;
@@ -132,9 +133,10 @@ import static android.content.pm.PackageManager.PERMISSION_GRANTED;
import static app.organicmaps.location.LocationState.FOLLOW;
import static app.organicmaps.location.LocationState.FOLLOW_AND_ROTATE;
import static app.organicmaps.location.LocationState.LOCATION_TAG;
import static app.organicmaps.universalbuttons.UniversalButtonsHolder.BUTTON_ADD_PLACE_CODE;
import static app.organicmaps.universalbuttons.UniversalButtonsHolder.BUTTON_RECORD_TRACK_CODE;
import static app.organicmaps.universalbuttons.UniversalButtonsHolder.BUTTON_SETTINGS_CODE;
import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_ADD_PLACE_CODE;
import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_HELP_CODE;
import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_RECORD_TRACK_CODE;
import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_SETTINGS_CODE;
import static app.organicmaps.util.PowerManagment.POWER_MANAGEMENT_TAG;
public class MwmActivity extends BaseMwmFragmentActivity
@@ -208,7 +210,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
private int mNavBarHeight;
private UniversalButtonsHolder buttonsHolder;
private LeftButtonsHolder buttonsHolder;
private PlacePageViewModel mPlacePageViewModel;
private MapButtonsViewModel mMapButtonsViewModel;
@@ -611,12 +613,12 @@ public class MwmActivity extends BaseMwmFragmentActivity
if (activityResult.getResultCode() == Activity.RESULT_OK)
{
Intent data = activityResult.getData();
if (data != null && data.hasExtra(UniversalButtonsHolder.KEY_PREF_UNIVERSAL_BUTTON))
if (data != null && data.hasExtra(MwmActivity.this.getString(R.string.pref_left_button)))
{
MapButtonsController mMapButtonsController = (MapButtonsController) getSupportFragmentManager().findFragmentById(R.id.map_buttons);
if (mMapButtonsController != null)
{
mMapButtonsController.reloadUniversalButton(buttonsHolder.getActiveButton());
mMapButtonsController.reloadLeftButton(buttonsHolder.getActiveButton());
}
}
}
@@ -823,9 +825,35 @@ public class MwmActivity extends BaseMwmFragmentActivity
private void prepareNavigationButtons()
{
buttonsHolder = UniversalButtonsHolder.getInstance(this);
buttonsHolder.registerDefaultUniversalButtons(this);
buttonsHolder.registerButton(new UniversalButton()
buttonsHolder = LeftButtonsHolder.getInstance(this);
buttonsHolder.registerButton(new LeftButton()
{
@Override
public String getCode()
{
return BUTTON_HELP_CODE;
}
@Override
public String getPrefsName()
{
return getString(R.string.help);
}
@Override
public void drawIcon(FloatingActionButton imageView)
{
imageView.setImageResource(R.drawable.ic_question_mark);
}
@Override
public void onClick(FloatingActionButton left)
{
Intent intent = new Intent(MwmActivity.this, HelpActivity.class);
MwmActivity.this.startActivity(intent);
}
});
buttonsHolder.registerButton(new LeftButton()
{
@Override
public String getCode()
@@ -846,12 +874,12 @@ public class MwmActivity extends BaseMwmFragmentActivity
}
@Override
public void onClick(FloatingActionButton universalButtonView)
public void onClick(FloatingActionButton left)
{
onAddPlace();
}
});
buttonsHolder.registerButton(new UniversalButton()
buttonsHolder.registerButton(new LeftButton()
{
@Override
public String getCode()
@@ -872,13 +900,13 @@ public class MwmActivity extends BaseMwmFragmentActivity
}
@Override
public void onClick(FloatingActionButton universalButtonView)
public void onClick(FloatingActionButton left)
{
onOpenSettings();
}
});
buttonsHolder.registerButton(new UniversalToggleButton()
buttonsHolder.registerButton(new LeftToggleButton()
{
private boolean isRecording = TrackRecorder.nativeIsTrackRecordingEnabled();
@@ -906,7 +934,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
imageView.setImageResource(R.drawable.ic_track_recording_off);
int color = isRecording
? Color.parseColor("#0057ff")
? ContextCompat.getColor(MwmActivity.this, R.color.active_track_recording)
: ThemeUtils.getColor(MwmActivity.this, R.attr.iconTint);
ColorStateList colorStateList = ColorStateList.valueOf(color);
@@ -914,10 +942,10 @@ public class MwmActivity extends BaseMwmFragmentActivity
}
@Override
public void onClick(FloatingActionButton universalButtonView)
public void onClick(FloatingActionButton left)
{
onTrackRecordingOptionSelected();
drawIcon(universalButtonView);
drawIcon(left);
}
});
}
@@ -928,7 +956,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
if (mPreviousMapLayoutMode != layoutMode)
{
MapButtonsController mapButtonsController = new MapButtonsController();
mapButtonsController.setUniversalButton(buttonsHolder.getActiveButton());
mapButtonsController.setLeftButton(buttonsHolder.getActiveButton());
FragmentTransaction transaction = getSupportFragmentManager()
.beginTransaction().replace(R.id.map_buttons, mapButtonsController);

View File

@@ -6,7 +6,6 @@ import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.ScrollView;
@@ -24,14 +23,16 @@ import app.organicmaps.util.Utils;
import app.organicmaps.util.WindowInsetUtils.ScrollableContentInsetsListener;
import app.organicmaps.util.concurrency.ThreadPool;
import app.organicmaps.util.concurrency.UiThread;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.textfield.TextInputEditText;
public class OsmLoginFragment extends BaseMwmToolbarFragment
{
private ProgressBar mProgress;
private Button mLoginButton;
private Button mLostPasswordButton;
private MaterialButton mLoginButton;
private MaterialButton mLostPasswordButton;
private TextInputEditText mLoginInput;
private TextInputEditText mPasswordInput;
@@ -51,7 +52,7 @@ public class OsmLoginFragment extends BaseMwmToolbarFragment
mPasswordInput = view.findViewById(R.id.osm_password);
mLoginButton = view.findViewById(R.id.login);
mLostPasswordButton = view.findViewById(R.id.lost_password);
Button registerButton = view.findViewById(R.id.register);
MaterialButton registerButton = view.findViewById(R.id.register);
registerButton.setOnClickListener((v) -> Utils.openUrl(requireActivity(), Constants.Url.OSM_REGISTER));
mProgress = view.findViewById(R.id.osm_login_progress);
final String dataVersion = DateUtils.getShortDateFormatter().format(Framework.getDataVersion());

View File

@@ -6,9 +6,7 @@ import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -22,15 +20,17 @@ import app.organicmaps.util.WindowInsetUtils;
import app.organicmaps.util.concurrency.ThreadPool;
import app.organicmaps.util.concurrency.UiThread;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.imageview.ShapeableImageView;
import com.google.android.material.textview.MaterialTextView;
import java.text.NumberFormat;
public class ProfileFragment extends BaseMwmToolbarFragment
{
private View mUserInfoBlock;
private TextView mEditsSent;
private TextView mProfileName;
private ImageView mProfileImage;
private MaterialTextView mEditsSent;
private MaterialTextView mProfileName;
private ShapeableImageView mProfileImage;
private ProgressBar mProfileInfoLoading;
@Nullable

View File

@@ -0,0 +1,14 @@
package app.organicmaps.leftbutton;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
public interface LeftButton
{
String getCode();
String getPrefsName();
default void drawIcon(FloatingActionButton imageView) {}
default void onClick(FloatingActionButton leftButtonView) {}
}

View File

@@ -0,0 +1,96 @@
package app.organicmaps.leftbutton;
import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;
import androidx.annotation.Nullable;
import androidx.preference.PreferenceManager;
import app.organicmaps.R;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
public class LeftButtonsHolder
{
private static volatile LeftButtonsHolder instance;
public static final String DISABLE_BUTTON_CODE = "disable";
public static final String BUTTON_HELP_CODE = "help";
public static final String BUTTON_SETTINGS_CODE = "settings";
public static final String BUTTON_ADD_PLACE_CODE = "add-place";
public static final String BUTTON_RECORD_TRACK_CODE = "record-track";
private static final String DEFAULT_BUTTON_CODE = BUTTON_HELP_CODE;
private final String leftButtonPreferenceKey;
private final SharedPreferences prefs;
private final Map<String, LeftButton> availableButtons = new LinkedHashMap<>();
private LeftButtonsHolder(Context context)
{
this.prefs = PreferenceManager.getDefaultSharedPreferences(context);
this.leftButtonPreferenceKey = context.getString(R.string.pref_left_button);
initDisableButton(context);
}
public void registerButton(LeftButton button)
{
availableButtons.put(button.getCode(), button);
}
@Nullable
public LeftButton getActiveButton()
{
String activeButtonCode = prefs.getString(leftButtonPreferenceKey, DEFAULT_BUTTON_CODE);
if (!TextUtils.isEmpty(activeButtonCode))
return availableButtons.get(activeButtonCode);
else
return null;
}
public Collection<LeftButton> getAllButtons()
{
return availableButtons.values();
}
public static LeftButtonsHolder getInstance(Context context)
{
LeftButtonsHolder localInstance = instance;
if (localInstance == null)
{
synchronized (LeftButtonsHolder.class)
{
localInstance = instance;
if (localInstance == null)
{
instance = localInstance = new LeftButtonsHolder(context);
}
}
}
return localInstance;
}
private void initDisableButton(Context context)
{
availableButtons.put(DISABLE_BUTTON_CODE, new LeftButton()
{
@Override
public String getCode()
{
return DISABLE_BUTTON_CODE;
}
@Override
public String getPrefsName()
{
return context.getString(R.string.pref_left_button_disable);
}
}
);
}
}

View File

@@ -0,0 +1,6 @@
package app.organicmaps.leftbutton;
public interface LeftToggleButton extends LeftButton
{
void setChecked(boolean checked);
}

View File

@@ -1,5 +1,8 @@
package app.organicmaps.maplayer;
import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_HELP_CODE;
import static app.organicmaps.leftbutton.LeftButtonsHolder.DISABLE_BUTTON_CODE;
import android.animation.ArgbEvaluator;
import android.animation.ObjectAnimator;
import android.content.Context;
@@ -33,8 +36,8 @@ import app.organicmaps.maplayer.isolines.IsolinesManager;
import app.organicmaps.maplayer.subway.SubwayManager;
import app.organicmaps.maplayer.traffic.TrafficManager;
import app.organicmaps.routing.RoutingController;
import app.organicmaps.universalbuttons.UniversalButton;
import app.organicmaps.universalbuttons.UniversalToggleButton;
import app.organicmaps.leftbutton.LeftButton;
import app.organicmaps.leftbutton.LeftToggleButton;
import app.organicmaps.util.Config;
import app.organicmaps.util.ThemeUtils;
import app.organicmaps.util.UiUtils;
@@ -81,11 +84,11 @@ public class MapButtonsController extends Fragment
private final Observer<Boolean> mTrackRecorderObserver = (enable) -> {
updateMenuBadge(enable);
showButton(enable, MapButtons.trackRecordingStatus);
updateUniversalButtonState(enable);
updateLeftButtonToggleState(enable);
};
private final Observer<Integer> mTopButtonMarginObserver = this::updateTopButtonsMargin;
private UniversalButton mUniversalButton;
private LeftButton mLeftButton;
@Nullable
@Override
@@ -153,7 +156,7 @@ public class MapButtonsController extends Fragment
private void initBottomButtons()
{
// universal button
applyUniversalButton();
applyLeftButton();
// bookmarks button
View bookmarksButton = mFrame.findViewById(R.id.btn_bookmarks);
@@ -190,32 +193,32 @@ public class MapButtonsController extends Fragment
}
}
private void applyUniversalButton()
private void applyLeftButton()
{
FloatingActionButton universalButtonView = mFrame.findViewById(R.id.universal_button);
if (universalButtonView != null && mUniversalButton != null)
FloatingActionButton leftButtonView = mFrame.findViewById(R.id.left_button);
if (leftButtonView != null && mLeftButton != null && !mLeftButton.getCode().equals(DISABLE_BUTTON_CODE))
{
UiUtils.show(universalButtonView);
UiUtils.show(leftButtonView);
Context context = getContext();
if (context == null)
return;
universalButtonView.setImageTintList(ColorStateList.valueOf(ThemeUtils.getColor(context, R.attr.iconTint)));
leftButtonView.setImageTintList(ColorStateList.valueOf(ThemeUtils.getColor(context, R.attr.iconTint)));
// Christmas tree with help button
if (Config.isNY() &&
mUniversalButton.getCode().equals("help") &&
mLeftButton.getCode().equals(BUTTON_HELP_CODE) &&
!TextUtils.isEmpty(Config.getDonateUrl(requireContext()))
)
{
universalButtonView.setImageResource(R.drawable.ic_christmas_tree);
universalButtonView.setOnClickListener((v) -> mMapButtonClickListener.onMapButtonClick(MapButtons.help));
leftButtonView.setImageResource(R.drawable.ic_christmas_tree);
leftButtonView.setOnClickListener((v) -> mMapButtonClickListener.onMapButtonClick(MapButtons.help));
}
else
{
mUniversalButton.drawIcon(universalButtonView);
universalButtonView.setOnClickListener((v) -> mUniversalButton.onClick(universalButtonView));
mLeftButton.drawIcon(leftButtonView);
leftButtonView.setOnClickListener((v) -> mLeftButton.onClick(leftButtonView));
}
// else
// {
@@ -225,9 +228,9 @@ public class MapButtonsController extends Fragment
// if (!ThemeUtils.isNightTheme(requireContext()))
// helpButton.getDrawable().setTintList(null);
}
else if (universalButtonView != null)
else if (leftButtonView != null)
{
UiUtils.hide(universalButtonView);
UiUtils.hide(leftButtonView);
}
}
@@ -504,24 +507,24 @@ public class MapButtonsController extends Fragment
mSearchWheel.reset();
}
public void setUniversalButton(UniversalButton universalButton)
public void setLeftButton(LeftButton leftButton)
{
this.mUniversalButton = universalButton;
this.mLeftButton = leftButton;
}
public void reloadUniversalButton(UniversalButton universalButton)
public void reloadLeftButton(LeftButton leftButton)
{
setUniversalButton(universalButton);
applyUniversalButton();
setLeftButton(leftButton);
applyLeftButton();
}
private void updateUniversalButtonState(boolean isEnabled)
private void updateLeftButtonToggleState(boolean isEnabled)
{
if (mUniversalButton instanceof UniversalToggleButton)
if (mLeftButton instanceof LeftToggleButton)
{
((UniversalToggleButton) mUniversalButton).setChecked(isEnabled);
((LeftToggleButton) mLeftButton).setChecked(isEnabled);
reloadUniversalButton(mUniversalButton);
reloadLeftButton(mLeftButton);
}
}

View File

@@ -1,5 +1,7 @@
package app.organicmaps.settings;
import static app.organicmaps.leftbutton.LeftButtonsHolder.DISABLE_BUTTON_CODE;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
@@ -25,8 +27,8 @@ import app.organicmaps.help.HelpActivity;
import app.organicmaps.location.LocationHelper;
import app.organicmaps.location.LocationProviderFactory;
import app.organicmaps.sdk.routing.RoutingOptions;
import app.organicmaps.universalbuttons.UniversalButton;
import app.organicmaps.universalbuttons.UniversalButtonsHolder;
import app.organicmaps.leftbutton.LeftButton;
import app.organicmaps.leftbutton.LeftButtonsHolder;
import app.organicmaps.util.Config;
import app.organicmaps.util.NetworkPolicy;
import app.organicmaps.util.PowerManagment;
@@ -39,6 +41,8 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
@@ -73,26 +77,22 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment implements La
initSearchPrivacyPrefsCallbacks();
initScreenSleepEnabledPrefsCallbacks();
initShowOnLockScreenPrefsCallbacks();
initUniversalButtonPrefs();
initLeftButtonPrefs();
}
private void initUniversalButtonPrefs()
private void initLeftButtonPrefs()
{
final ListPreference pref = getPreference(UniversalButtonsHolder.KEY_PREF_UNIVERSAL_BUTTON);
UniversalButtonsHolder holder = UniversalButtonsHolder.getInstance(requireContext());
final String leftButtonPreferenceKey = getString(R.string.pref_left_button);
final ListPreference pref = getPreference(leftButtonPreferenceKey);
LeftButtonsHolder holder = LeftButtonsHolder.getInstance(requireContext());
UniversalButton currentButton = holder.getActiveButton();
Collection<UniversalButton> buttons = holder.getAllButtons();
LeftButton currentButton = holder.getActiveButton();
Collection<LeftButton> buttons = holder.getAllButtons();
List<String> entryList = new ArrayList<>(buttons.size() + 1);
List<String> valueList = new ArrayList<>(buttons.size() + 1);
List<String> entryList = new ArrayList<>(buttons.size());
List<String> valueList = new ArrayList<>(buttons.size());
String notDisplayId = "not_display";
entryList.add(requireContext().getString(R.string.pref_universal_button_not_display));
valueList.add(notDisplayId);
for (UniversalButton button : buttons)
for (LeftButton button : buttons)
{
entryList.add(button.getPrefsName());
valueList.add(button.getCode());
@@ -108,8 +108,8 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment implements La
}
else
{
pref.setSummary(R.string.pref_universal_button_not_display);
pref.setValue(notDisplayId);
pref.setSummary(R.string.pref_left_button_disable);
pref.setValue(DISABLE_BUTTON_CODE);
}
pref.setOnPreferenceChangeListener((preference, newValue) -> {
@@ -120,7 +120,7 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment implements La
}
Intent intent = new Intent();
intent.putExtra(UniversalButtonsHolder.KEY_PREF_UNIVERSAL_BUTTON, newValue.toString());
intent.putExtra(leftButtonPreferenceKey, newValue.toString());
requireActivity().setResult(-1, intent);

View File

@@ -1,14 +0,0 @@
package app.organicmaps.universalbuttons;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
public interface UniversalButton
{
String getCode();
String getPrefsName();
void drawIcon(FloatingActionButton imageView);
void onClick(FloatingActionButton universalButtonView);
}

View File

@@ -1,109 +0,0 @@
package app.organicmaps.universalbuttons;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.text.TextUtils;
import androidx.annotation.Nullable;
import androidx.preference.PreferenceManager;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import app.organicmaps.MwmApplication;
import app.organicmaps.R;
import app.organicmaps.help.HelpActivity;
public class UniversalButtonsHolder
{
private static volatile UniversalButtonsHolder instance;
public static final String KEY_PREF_UNIVERSAL_BUTTON = "universal_button";
private static final String BUTTON_HELP_CODE = "help";
public static final String BUTTON_SETTINGS_CODE = "settings";
public static final String BUTTON_ADD_PLACE_CODE = "add-place";
public static final String BUTTON_RECORD_TRACK_CODE = "record-track";
private static final String DEFAULT_BUTTON_CODE = BUTTON_HELP_CODE;
private final Context context;
private final SharedPreferences prefs;
private final Map<String, UniversalButton> availableButtons = new HashMap<>();
private UniversalButtonsHolder(Context context)
{
this.context = context;
this.prefs = PreferenceManager.getDefaultSharedPreferences(context);
}
public void registerButton(UniversalButton button)
{
availableButtons.put(button.getCode(), button);
}
public void registerDefaultUniversalButtons(Context context)
{
registerButton(new UniversalButton()
{
@Override
public String getCode()
{
return BUTTON_HELP_CODE;
}
@Override
public String getPrefsName()
{
return context.getString(R.string.help);
}
@Override
public void drawIcon(FloatingActionButton imageView)
{
imageView.setImageResource(R.drawable.ic_question_mark);
}
@Override
public void onClick(FloatingActionButton universalButtonView)
{
Intent intent = new Intent(context, HelpActivity.class);
context.startActivity(intent);
}
});
}
@Nullable
public UniversalButton getActiveButton()
{
String activeButtonCode = prefs.getString(KEY_PREF_UNIVERSAL_BUTTON, DEFAULT_BUTTON_CODE);
if (!TextUtils.isEmpty(activeButtonCode))
return availableButtons.get(activeButtonCode);
else
return null;
}
public Collection<UniversalButton> getAllButtons()
{
return availableButtons.values();
}
public static UniversalButtonsHolder getInstance(Context context)
{
UniversalButtonsHolder localInstance = instance;
if (localInstance == null)
{
synchronized (UniversalButtonsHolder.class)
{
localInstance = instance;
if (localInstance == null)
{
instance = localInstance = new UniversalButtonsHolder(context);
}
}
}
return localInstance;
}
}

View File

@@ -1,8 +0,0 @@
package app.organicmaps.universalbuttons;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
public interface UniversalToggleButton extends UniversalButton
{
void setChecked(boolean checked);
}

View File

@@ -6,7 +6,7 @@
android:viewportHeight="80">
<path
android:pathData="m4.858,10.076c0,-5.523 4.477,-10 10,-10h60c5.523,0 10,4.477 10,10v60c0,5.523 -4.477,10 -10,10h-60c-5.523,0 -10,-4.477 -10,-10z"
android:fillColor="#0057ff"
android:fillColor="@color/active_track_recording"
android:fillAlpha="0.78" />
<path
android:pathData="m78.907,32.87 l-31.833,13.318 13.335,5.772 6.188,13.147z"

View File

@@ -3,5 +3,5 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="12dp" />
<solid android:color="#0057ff" />
<solid android:color="@color/active_track_recording" />
</shape>

View File

@@ -52,5 +52,15 @@
android:layout_marginTop="@dimen/margin_direction_mid"
android:textSize="@dimen/text_direction_dist"
tools:text="9000 km"/>
<TextView
android:id="@+id/tv__azimuth"
style="@style/MwmWidget.TextView.Direction"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_direction_small"
android:gravity="center_horizontal"
android:textSize="@dimen/text_direction_subtitle"
tools:text="123.4°" />
</LinearLayout>
</RelativeLayout>

View File

@@ -35,7 +35,7 @@
android:layout_weight="1"
android:orientation="vertical"
android:padding="@dimen/margin_base">
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -47,7 +47,7 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/imageView"
android:layout_width="@dimen/osm_logo"
android:layout_height="@dimen/osm_logo"
@@ -56,7 +56,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/osm_presentation"
android:layout_width="0dp"
android:layout_height="wrap_content"
@@ -108,7 +108,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_base">
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/login"
style="@style/MwmWidget.Button.Accent"
android:layout_width="match_parent"
@@ -123,7 +123,7 @@
android:elevation="@dimen/design_fab_elevation"
android:visibility="gone" />
</FrameLayout>
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/lost_password"
style="@style/MwmWidget.Button"
android:layout_width="match_parent"
@@ -138,14 +138,14 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_base"
android:layout_marginBottom="@dimen/margin_base" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@string/robotoRegular"
android:text="@string/no_osm_account"
android:textAppearance="@style/MwmTextAppearance.Body2"
android:textColor="?android:textColorPrimary" />
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/register"
style="@style/MwmWidget.Button.Accent"
android:layout_width="match_parent"

View File

@@ -9,7 +9,7 @@
android:clipChildren="false"
android:clipToPadding="false">
<include
android:id="@+id/universal_button"
android:id="@+id/left_button"
layout="@layout/map_buttons_help"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -25,7 +25,7 @@
android:layout_marginStart="@dimen/margin_base_plus"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_goneMarginStart="@dimen/margin_half_plus"
app:layout_constraintStart_toEndOf="@+id/universal_button" />
app:layout_constraintStart_toEndOf="@+id/left_button" />
<include
android:id="@+id/btn_bookmarks"
layout="@layout/map_buttons_bookmarks_square"

View File

@@ -26,7 +26,7 @@
android:orientation="vertical"
android:padding="@dimen/margin_base"
tools:ignore="ScrollViewSize">
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -39,7 +39,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_base">
<ImageView
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/osm_logo"
android:layout_width="@dimen/osm_logo"
android:layout_height="@dimen/osm_logo"
@@ -48,7 +48,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/osm_presentation"
android:layout_width="0dp"
android:layout_height="wrap_content"
@@ -92,7 +92,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_base">
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/login"
style="@style/MwmWidget.Button.Accent"
android:layout_width="match_parent"
@@ -107,7 +107,7 @@
android:elevation="@dimen/design_fab_elevation"
android:visibility="gone" />
</FrameLayout>
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/lost_password"
style="@style/MwmWidget.Button"
android:layout_width="wrap_content"
@@ -122,14 +122,14 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_base"
android:layout_marginBottom="@dimen/margin_base" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@string/robotoRegular"
android:text="@string/no_osm_account"
android:textAppearance="@style/MwmTextAppearance.Body2"
android:textColor="?android:textColorPrimary" />
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/register"
style="@style/MwmWidget.Button.Accent"
android:layout_width="match_parent"

View File

@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.appcompat.widget.Toolbar
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
style="@style/MwmWidget.ToolbarStyle"
android:layout_width="match_parent"
@@ -15,7 +15,7 @@
android:gravity="end|center_vertical"
android:theme="@style/MwmWidget.ToolbarTheme"
tools:ignore="UnusedAttribute">
<ImageView
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/logout"
android:layout_width="?actionBarSize"
android:layout_height="?actionBarSize"
@@ -24,7 +24,7 @@
android:scaleType="center"
app:srcCompat="@drawable/ic_logout"
android:contentDescription="@string/logout" />
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.MaterialToolbar>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -44,7 +44,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal">
<ImageView
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/user_profile_image"
android:layout_width="100dp"
android:layout_height="match_parent"
@@ -57,7 +57,7 @@
android:layout_weight="1"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/user_profile_name"
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -68,7 +68,7 @@
android:autoSizeTextType="uniform"
android:textSize="25sp"
tools:text="Long Username" />
<androidx.appcompat.widget.AppCompatTextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/user_sent_edits"
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -76,7 +76,7 @@
android:textSize="35sp"
android:textStyle="bold"
tools:text="2,000,000" />
<androidx.appcompat.widget.AppCompatTextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/verified_changes_text"
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -93,7 +93,7 @@
android:layout_height="0dp"
android:layout_weight="1">
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/osm_history"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -110,7 +110,7 @@
android:textColor="?colorAccent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/osm_notes"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -126,7 +126,7 @@
android:textColor="?colorAccent"
app:layout_constraintTop_toBottomOf="@id/osm_history" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/about_osm"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@@ -13,7 +13,7 @@
android:clipChildren="false"
android:clipToPadding="false">
<include
android:id="@+id/universal_button"
android:id="@+id/left_button"
layout="@layout/map_buttons_help"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -32,7 +32,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/btn_bookmarks"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/universal_button" />
app:layout_constraintStart_toEndOf="@+id/left_button" />
<include
android:id="@+id/btn_bookmarks"
layout="@layout/map_buttons_bookmarks_square"

View File

@@ -879,4 +879,7 @@
<string name="error_enter_correct_fediverse_page">Zadejte platné uživatelské jméno nebo webovou adresu Mastodonu</string>
<string name="bluesky">Bluesky</string>
<string name="error_enter_correct_bluesky_page">Zadejte platné uživatelské jméno nebo webovou adresu Bluesky</string>
<string name="saved">Uloženo</string>
<string name="pref_left_button_disable">Zakázat</string>
<string name="pref_left_button_title">Nastavení levého tlačítka</string>
</resources>

View File

@@ -11,7 +11,7 @@
<!-- Settings/Downloader - info for country when download fails -->
<string name="download_has_failed">Herunterladen fehlgeschlagen. Antippen für einen neuen Versuch.</string>
<!-- Settings/Downloader - info for country which started downloading -->
<string name="downloading">Wird heruntergeladen…</string>
<string name="downloading">Wird heruntergeladen </string>
<!-- Choose measurement on first launch alert - choose metric system button -->
<string name="kilometres">Kilometer</string>
<!-- Choose measurement on first launch alert - choose imperial system button -->
@@ -888,4 +888,7 @@
<string name="error_enter_correct_bluesky_page">Geben Sie einen gültigen Bluesky-Nutzernamen oder Webadresse ein</string>
<string name="bluesky">Bluesky</string>
<string name="error_enter_correct_fediverse_page">Geben Sie einen gültigen Mastodon-Nutzernamen oder Webadresse an</string>
<string name="pref_left_button_title">Einstellung linker Knopf</string>
<string name="saved">Gespeichert</string>
<string name="pref_left_button_disable">Deaktivieren</string>
</resources>

View File

@@ -1395,7 +1395,7 @@
<string name="type.sport.diving">Tauchen</string>
<string name="type.amenity.love_hotel">Stundenhotel</string>
<string name="type.landuse.plant_nursery">Gartenbau</string>
<string name="type.leisure.firepit">Feuerschale</string>
<string name="type.leisure.firepit">Feuerstelle</string>
<string name="type.barrier.guard_rail">Leitplanke</string>
<string name="type.highway.ladder">Leiter</string>
<string name="type.amenity.studio">Studio</string>

View File

@@ -38,15 +38,15 @@
<string name="try_again">Intentar otra vez</string>
<string name="about_menu_title">Acerca de CoMaps</string>
<!-- Text in About screen -->
<string name="about_headline">Gratis para todos, hecho con amor</string>
<string name="about_headline">Proyecto abierto impulsado por la comunidad</string>
<!-- Text in About screen -->
<string name="about_proposition_1">Sin anuncios, sin rastreo, sin recopilación de datos</string>
<string name="about_proposition_1">Fácil de utilizar y depurado</string>
<!-- Text in About screen -->
<string name="about_proposition_2">Consumo de batería mínimo, funciona sin conexión</string>
<string name="about_proposition_2">Enfocado a la privacidad y sin anuncios</string>
<!-- Text in About screen -->
<string name="about_proposition_3">Rápido, minimalista, desarrollado por la comunidad</string>
<string name="about_proposition_3">No necesita conexión a internet, rápido y compacto</string>
<!-- Text in About screen -->
<string name="about_developed_by_enthusiasts">Aplicación de código abierto creada por entusiastas y voluntarios.</string>
<string name="about_developed_by_enthusiasts">Completamente de código abierto, sin ánimo de lucro, y con procesos de toma de decisiones y finanzas transparentes.</string>
<!-- The button that opens system location settings -->
<string name="location_settings">Ajustes de ubicación</string>
<string name="close">Cerrar</string>
@@ -302,9 +302,9 @@
<!-- Item in context menu. -->
<string name="downloader_update_map">Actualizar mapa</string>
<!-- Preference title -->
<string name="google_play_services">Servicios de localización de Google Play</string>
<string name="google_play_services">Servicio de localización de Google Fused</string>
<!-- Preference text -->
<string name="pref_use_google_play">Determina rápidamente su ubicación aproximada mediante Bluetooth, WiFi o red móvil</string>
<string name="pref_use_google_play">Un servicio propietario que combina señal GPS, Wi-Fi, redes móviles, etc. para determinar tu ubicación con más precisión. Puede que se conecte a servidores de Google.</string>
<!-- Preference title -->
<!-- Preference description -->
<!-- Text for routing error dialog -->
@@ -886,4 +886,12 @@
<string name="comma_separated_pair">%1$s, %2$s</string>
<string name="level_value_generic">Nivel: %s</string>
<string name="editor_line_social_network">LINE</string>
<string name="saved">Guardado</string>
<string name="codeberg">Codeberg</string>
<string name="error_enter_correct_fediverse_page">Introduce un nombre de usuario o una dirección web de Mastodon válidos</string>
<string name="instagram_url">https://www.instagram.com/comapscommunity</string>
<string name="app_site_url">https://comaps.app/</string>
<string name="bluesky">Bluesky</string>
<string name="error_enter_correct_bluesky_page">Introduce un nombre de usuario o una dirección web de Bluesky válidos</string>
<string name="telegram_url">https://t.me/CoMapsApp/</string>
</resources>

View File

@@ -1395,4 +1395,11 @@
<string name="type.fee.yes">$</string>
<string name="type.railway.narrow_gauge.tunnel">Túnel de vía férrea estrecha</string>
<string name="type.railway.light_rail.bridge">Puente de tren ligero</string>
<string name="type.highway.ladder">Escalera</string>
<string name="type.amenity.studio">Estudio</string>
<string name="type.landuse.plant_nursery">Vivero de plantas</string>
<string name="type.barrier.guard_rail">Guardarraíl</string>
<string name="type.sport.diving">Buceo</string>
<string name="type.leisure.firepit">Fogón</string>
<string name="type.amenity.love_hotel">Hotel del amor</string>
</resources>

View File

@@ -883,4 +883,7 @@
<string name="error_enter_correct_fediverse_page">Sisesta korrektne Mastodoni kasutajanimi või veebiaadress</string>
<string name="bluesky">Bluesky</string>
<string name="error_enter_correct_bluesky_page">Sisesta korrektne Bluesky kasutajanimi või veebiaadress</string>
<string name="saved">Salvestatud</string>
<string name="pref_left_button_disable">Keela</string>
<string name="pref_left_button_title">Vasaku nupu seadistused</string>
</resources>

View File

@@ -49,7 +49,7 @@
<!-- Text in About screen -->
<string name="about_proposition_3">• Yhteydetön tila, nopea ja kompakti</string>
<!-- Text in About screen -->
<string name="about_developed_by_enthusiasts">Harrastajien ja vapaaehtoisten luoma avoimen lähdekoodin sovellus.</string>
<string name="about_developed_by_enthusiasts">Täysin avoimeen lähdekoodiin perustuva, voittoa tavoittelematon sekä läpinäkyvä päätöksenteko ja talous.</string>
<!-- The button that opens system location settings -->
<string name="location_settings">Sijaintiasetukset</string>
<string name="close">Sulje</string>
@@ -304,9 +304,9 @@
<!-- Item in context menu. -->
<string name="downloader_update_map">Päivitä kartta</string>
<!-- Preference title -->
<string name="google_play_services">Google Play Sijaintipalvelut</string>
<string name="google_play_services">Google Fused Sijaintipalvelu</string>
<!-- Preference text -->
<string name="pref_use_google_play">Määritä nopeasti likimääräinen sijaintisi Bluetoothin, WiFin tai matkapuhelinverkon kautta</string>
<string name="pref_use_google_play">Suljetun lähdekoodin palvelu, joka yhdistää GPS:n, Wi-Fi:n ja mobiiliverkot yms. löytääksesi sijaintisi tarkemmin. Se voi ottaa yhteyttä Googlen palvelimiin.</string>
<!-- Preference title -->
<!-- Preference description -->
<!-- Text for routing error dialog -->
@@ -492,7 +492,7 @@
<string name="placepage_add_business_button">Lisää organisaatio</string>
<string name="message_invalid_feature_position">Kohdetta ei voida asettaa tänne</string>
<!-- Text in About and OSM Login screens. First %@ is replaced by a local, human readable date. -->
<string name="osm_presentation">Yhteisön luomat OpenStreetMap-tiedot %s:sta alkaen. Lisätietoja kartan muokkaamisesta ja päivittämisestä osoitteessa OpenStreetMap.org.</string>
<string name="osm_presentation">Yhteisön luomat OpenStreetMap-tiedot %s:sta alkaen. Lisätietoja kartan muokkaamisesta ja päivittämisestä osoitteessa OpenStreetMap.org</string>
<!-- OSM explanation on Android login screen -->
<string name="login_osm_presentation">OpenStreetMap.org (OSM) on yhteisöprojekti, jonka tarkoituksena on rakentaa ilmainen ja avoin kartta. Se on CoMapsin tärkein karttatietojen lähde ja toimii samalla tavalla kuin Wikipedia. Voit lisätä tai muokata paikkoja, ja ne tulevat miljoonien käyttäjien saataville kaikkialla maailmassa. \nLiity yhteisöön ja auta tekemään parempi kartta kaikille!</string>
<string name="login_to_make_edits_visible">Luo OpenStreetMap-tili tai kirjaudu sisään, jotta voit julkaista karttamuokkauksesi maailmalle.</string>
@@ -511,7 +511,7 @@
<!-- Title for OSM note section in the editor -->
<string name="editor_other_info">Huomautus OpenStreetMapin vapaaehtoisille (valinnainen)</string>
<!-- Hint of the input field in the OSM note section of the editor -->
<string name="editor_note_hint">Kuvaile kartassa olevia virheitä tai asioita, joita ei voi muokata CoMapsilla.</string>
<string name="editor_note_hint">Kuvaile kartassa olevia virheitä tai asioita, joita ei voi muokata CoMapsilla</string>
<!-- Information about OSM at the top of the editing page -->
<string name="editor_about_osm">Muokkauksesi ladataan julkiseen <a href="https://wiki.openstreetmap.org/wiki/About_OpenStreetMap">OpenStreetMap</a>-tietokantaan. Älä lisää henkilökohtaisia tai tekijänoikeudella suojattuja tietoja.</string>
<string name="editor_more_about_osm">Lisätietoja OpenStreetMap:sta</string>
@@ -685,7 +685,7 @@
<string name="avoid_ferry">Vältä lautan käyttöä</string>
<string name="avoid_motorways">Vältä moottoritietä</string>
<string name="unable_to_calc_alert_title">Reittiä ei voi luoda</string>
<string name="unable_to_calc_alert_subtitle">Valitettavasti emme voineet luoda reittiä valituilla vaihtoehdoilla. Vaihda asetuksia ja yritä uudelleen</string>
<string name="unable_to_calc_alert_subtitle">Valitettavasti emme voineet luoda reittiä valituilla vaihtoehdoilla. Tämä voi johtua reittiasetuksista tai OpenStreetMap:n puuttuvista tiedoista. Vaihda reititysasetuksia ja yritä uudelleen.</string>
<string name="define_to_avoid_btn">Määritä vältettävät tiet</string>
<string name="change_driving_options_btn">Reititysvalinnat ovat päällä</string>
<string name="toll_road">Maksullinen tie</string>
@@ -799,7 +799,7 @@
<!-- App tip #09 -->
<string name="app_tip_09">Päätavoitteemme on rakentaa nopeita, yksityisyyteen keskittyviä, helppokäyttöisiä karttoja, joista pidät.</string>
<!-- Text on the Android Auto or CarPlay placeholder screen that maps are displayed on the phone screen -->
<string name="car_used_on_the_phone_screen">Käytät nyt puhelimen näytöllä CoMaps -palvelua.</string>
<string name="car_used_on_the_phone_screen">Käytät nyt CoMapsia puhelimen näytöllä</string>
<!-- Text on the phone placeholder screen that maps are displayed on the car screen -->
<string name="car_used_on_the_car_screen">Käytät nyt CoMaps auton näytöllä</string>
<!-- Displayed on the phone screen. Android Auto connected -->
@@ -858,7 +858,7 @@
<!-- Message for the toast when saving the track recording is finished but nothing to save. -->
<string name="track_recording_toast_nothing_to_save">Reitti on tyhjä - ei mitään tallennettavaa</string>
<!-- Error message when there are no File Manager apps installed to select a folder when importing Bookmarks and Tracks -->
<string name="error_no_file_manager_app">Kansiovalintaikkunaa ei voida näyttää, koska laitteeseen ei ole asennettu sopivaa sovellusta. Asenna tiedostonhallintasovellus ja yritä uudelleen</string>
<string name="error_no_file_manager_app">Kansiovalintaikkunaa ei voida näyttää, koska laitteeseen ei ole asennettu sopivaa sovellusta. Asenna tiedostonhallintasovellus ja yritä uudelleen.</string>
<string name="choose_color">Valitse väri</string>
<string name="edit_track">Muokkaa reittiä</string>
<string name="uri_open_location_failed">Ei asennettua sovellusta, joka voi avata sijainnin</string>
@@ -888,4 +888,7 @@
<string name="error_enter_correct_bluesky_page">Kirjoita kelvollinen Bluesky-käyttäjänimi tai verkko-osoite</string>
<string name="instagram_url">https://www.instagram.com/comapscommunity</string>
<string name="app_site_url">https://comaps.app/</string>
<string name="pref_left_button_title">Vasemman painikkeen asettelu</string>
<string name="pref_left_button_disable">Poista käytöstä</string>
<string name="saved">Tallennettu</string>
</resources>

View File

@@ -1312,4 +1312,30 @@
<string name="type.route">Reitti</string>
<string name="type.boundary.administrative.3">Alueellinen raja</string>
<string name="type.boundary.administrative.4">Alueellinen raja</string>
<string name="type.aeroway">Airspace Infrastructure</string>
<string name="type.aeroway.apron">Apron</string>
<string name="type.amenity.vending_machine.excrement_bags">Koirankakkapussiautomaatti</string>
<string name="type.hwtag.yescar">hwtag-yescar</string>
<string name="type.amenity.biergarten">Olutpuutarha</string>
<string name="type.highway.ladder">Tikapuut</string>
<string name="type.hwtag.yesfoot">hwtag-yesfoot</string>
<string name="type.landuse.plant_nursery">Kasvitarha</string>
<string name="type.highway.world_towns_level">highway-world_towns_level</string>
<string name="type.cuisine.fish_and_chips">Fish and Chips</string>
<string name="type.highway.world_level">highway-world_level</string>
<string name="type.hwtag.bidir_bicycle">hwtag-bidir_bicycle</string>
<string name="type.hwtag.private">hwtag-private</string>
<string name="type.hwtag">hwtag</string>
<string name="type.amenity.studio">Studio</string>
<string name="type.barrier.guard_rail">Tiekaide</string>
<string name="type.hwtag.onedir_bicycle">hwtag-onedir_bicycle</string>
<string name="type.hwtag.lit">hwtag-lit</string>
<string name="type.hwtag.nobicycle">hwtag-nobicycle</string>
<string name="type.hwtag.nocar">hwtag-nocar</string>
<string name="type.hwtag.nofoot">hwtag-nofoot</string>
<string name="type.hwtag.oneway">hwtag-oneway</string>
<string name="type.hwtag.toll">hwtag-toll</string>
<string name="type.hwtag.yesbicycle">hwtag-yesbicycle</string>
<string name="type.leisure.firepit">Tulentekopaikka</string>
<string name="type.leisure">Leisure</string>
</resources>

View File

@@ -126,7 +126,7 @@
<!-- Search category for parking lots; any changes should be duplicated in categories.txt @category_parking! -->
<string name="category_parking">Stationnement</string>
<!-- Search category for malls/clothes/shoes/gifts/jewellery/sport shops; any changes should be duplicated in categories.txt @category_shopping! -->
<string name="category_shopping">Shopping</string>
<string name="category_shopping">Magasins</string>
<!-- Search category for second_hand/charity/antique/auction shops; any changes should be duplicated in categories.txt @category_secondhand! -->
<string name="category_secondhand">D\'occasion</string>
<!-- Search category for places to stay; any changes should be duplicated in categories.txt @category_hotel! -->
@@ -619,7 +619,7 @@
<string name="bookmark_lists_show_all">Tout afficher</string>
<plurals name="bookmarks_places">
<item quantity="one">%d signet</item>
<item quantity="many"/>
<item quantity="many">%d signets</item>
<item quantity="other">%d signets</item>
</plurals>
<string name="bookmarks_create_new_group">Créer une nouvelle liste</string>
@@ -638,13 +638,13 @@
<string name="profile">Profil OpenStreetMap</string>
<plurals name="bookmarks_detect_message">
<item quantity="one">%d fichier a été trouvé. Vous le verrez après la conversion.</item>
<item quantity="many"/>
<item quantity="many">%d fichiers ont été trouvés. Vous les verrez après la conversion.</item>
<item quantity="other">%d fichiers ont été trouvés. Vous les verrez après la conversion.</item>
</plurals>
<string name="restore">Restaurer</string>
<plurals name="tracks">
<item quantity="one">%d piste</item>
<item quantity="many"/>
<item quantity="many">%d pistes</item>
<item quantity="other">%d pistes</item>
</plurals>
<!-- Settings privacy group in settings screen -->
@@ -894,4 +894,7 @@
<string name="bluesky">Bluesky</string>
<string name="error_enter_correct_bluesky_page">Entrez un nom d\'utilisateur ou une adresse web Bluesky correct</string>
<string name="error_enter_correct_fediverse_page">Entrez un nom d\'utilisateur ou une adresse web Mastodon correct</string>
<string name="saved">Enregistré</string>
<string name="pref_left_button_title">Configuration du bouton en bas à gauche</string>
<string name="pref_left_button_disable">Désactiver</string>
</resources>

View File

@@ -883,4 +883,5 @@
<string name="error_enter_correct_bluesky_page">Inserisci un nome utente o un indirizzo web Bluesky valido</string>
<string name="instagram_url">https://www.instagram.com/comapscommunity/</string>
<string name="telegram_url">https://t.me/CoMapsApp/</string>
<string name="saved">Salvato</string>
</resources>

View File

@@ -461,7 +461,7 @@
<!-- Text field to enter non-existing street name, below list of known streets around -->
<string name="add_street">通りを追加</string>
<!-- Error to display when a new street name is not entered in the New street dialog -->
<string name="empty_street_name_error">通りの名前を入力してください</string>
<string name="empty_street_name_error">通りの名前を入力してください</string>
<string name="choose_language">言語を選択</string>
<string name="choose_street">通りを選択</string>
<string name="postal_code">郵便番号</string>
@@ -485,7 +485,7 @@
<string name="editor_add_place_title">追加中</string>
<string name="editor_edit_place_name_hint">場所の名前</string>
<!-- The second part of the editor_edit_place_name_hint to explain that name should be entered in a local language, see https://wiki.openstreetmap.org/wiki/Key:name -->
<string name="editor_default_language_hint">現地の言葉でこう書かれている</string>
<string name="editor_default_language_hint">現地の言葉でこう書かれている</string>
<string name="editor_edit_place_category_title">カテゴリ</string>
<string name="detailed_problem_description">問題の詳細な説明</string>
<string name="editor_report_problem_other_title">異なる問題</string>
@@ -494,7 +494,7 @@
<!-- Text in About and OSM Login screens. First %@ is replaced by a local, human readable date. -->
<string name="osm_presentation">コミュニティが作成した%s時点の OpenStreetMap のデータ。地図の編集や更新の方法については、OpenStreetMap.org を参照してください</string>
<!-- OSM explanation on Android login screen -->
<string name="login_osm_presentation">OpenStreetMap.org(OSM)は、フリーでオープンな地図を構築するコミュニティ・プロジェクトです。OSMは、CoMapsの地図データの主要なソースであり、ウィキペディアと同じように機能します。あなたが場所を追加したり編集したりすると、世界中の何百万人ものユーザーがその場所を利用できるようになります</string>
<string name="login_osm_presentation">OpenStreetMap.org(OSM)は、フリーでオープンな地図を構築するコミュニティ・プロジェクトです。OSMは、CoMapsの地図データの主要なソースであり、ウィキペディアと同じように機能します。あなたが場所を追加したり編集したりすると、世界中の何百万人ものユーザーがその場所を利用できるようになります</string>
<string name="login_to_make_edits_visible">OpenStreetMapのアカウントを作成するかログインして、あなたの地図編集を世界中に公開しましょう。</string>
<!-- Downloaded 10 **of** 20 <- it is that "of" -->
<string name="downloader_of">%2$dのうち%1$d</string>
@@ -511,7 +511,7 @@
<!-- Title for OSM note section in the editor -->
<string name="editor_other_info">OpenStreetMapボランティアへの注意オプション</string>
<!-- Hint of the input field in the OSM note section of the editor -->
<string name="editor_note_hint">地図上のエラーやCoMapsで編集できないものについて説明します</string>
<string name="editor_note_hint">地図上のエラーやCoMapsで編集できないものについて説明します</string>
<!-- Information about OSM at the top of the editing page -->
<string name="editor_about_osm">あなたの編集は公開されている<a href="https://wiki.openstreetmap.org/wiki/JA:参加する">OpenStreetMap</a>データベースにアップロードされます。個人情報や著作権のある情報は追加しないでください。</string>
<string name="editor_more_about_osm">OpenStreetMapについての詳細</string>
@@ -589,7 +589,7 @@
<string name="enable_logging">ログを有効化</string>
<!-- Settings: "Send general feedback" button -->
<string name="feedback_general">一般的なフィードバック</string>
<string name="prefs_languages_information">音声案内にはシステムの TTS を使用します。多くの Android 端末が Google の TTS を使用しており、Google Play (https://play.google.com/store/apps/details?id=com.google.android.tts) からダウンロードや更新を行うことができます</string>
<string name="prefs_languages_information">音声案内にはシステムの TTS を使用します。多くの Android 端末が Google の TTS を使用しており、Google Play (https://play.google.com/store/apps/details?id=com.google.android.tts) からダウンロードや更新を行うことができます</string>
<string name="prefs_languages_information_off">いくつかの言語では、アプリストア(Google Play、Galaxy Store 、App Gallery、FDroid)から音声合成または追加の言語パックをインストールする必要があります。\nお使いのデバイスで [設定] → [言語と入力] → [音声] → [音声出力] を開いてください。\nここで音声合成の設定 (たとえば、オフラインで使用する言語パックのダウンロードなど) を管理し、別の音声合成エンジンを選択できます。</string>
<string name="prefs_languages_information_off_link">詳細については、このガイドをご確認ください。</string>
<string name="transliteration_title">ラテン文字への翻字</string>
@@ -607,7 +607,7 @@
<!-- Alert to ask user relogin to OpenStreetMap with OAuth2 flow after OAuth1 authentication is deprecated. -->
<string name="alert_reauth_message">すべてのマップ編集を自動的にアップロードするには、OpenStreetMapにログインしてください。詳しくは <a href="https://github.com/organicmaps/organicmaps/issues/6144">こちら</a>.</string>
<string name="dialog_error_storage_title">ストレージアクセスの問題</string>
<string name="dialog_error_storage_message">外部ストレージは使用できません。おそらく SD カードが取り外されたか、破損しているか、あるいはファイルシステムが読み取り専用になっています。SD カードを確認するか、support@comaps.app までご連絡ください</string>
<string name="dialog_error_storage_message">外部ストレージは使用できません。おそらく SD カードが取り外されたか、破損しているか、あるいはファイルシステムが読み取り専用になっています。SD カードを確認するか、support@comaps.app までご連絡ください</string>
<string name="setting_emulate_bad_storage">壊れたストレージをシミュレートする</string>
<string name="core_entrance">入口</string>
<string name="error_enter_correct_name">正しい名前を入力してください</string>
@@ -648,7 +648,7 @@
<string name="layers_title">マップのスタイルとレイヤー</string>
<string name="subway_data_unavailable">地下鉄路線図はご利用いただけません</string>
<string name="bookmarks_empty_list_title">このリストは空です</string>
<string name="bookmarks_empty_list_message">ブックマークを追加するには、地図上の場所をタップし、星のアイコンをタップしてください</string>
<string name="bookmarks_empty_list_message">ブックマークを追加するには、地図上の場所をタップし、星のアイコンをタップしてください</string>
<string name="category_desc_more">詳細</string>
<string name="export_file">KMZをエクスポートする</string>
<string name="export_file_gpx">GPXをエクスポートする</string>
@@ -887,4 +887,6 @@
<string name="tts_info_link">https://www.comaps.app/support/tts-configuration-guide-for-android/</string>
<string name="app_site_url">https://comaps.app/</string>
<string name="bluesky">Bluesky</string>
<string name="pref_left_button_title">左ボタンの設定</string>
<string name="pref_left_button_disable">無効にする</string>
</resources>

View File

@@ -1328,4 +1328,8 @@
<string name="type.highway.ladder">階子</string>
<string name="type.attraction.bumper_car">バンパーカー</string>
<string name="type.sport.diving">飛込</string>
<string name="type.recycling.cartons">紙箱</string>
<string name="type.organic.only">有機</string>
<string name="type.organic.yes">有機</string>
<string name="type.power.pole">電柱</string>
</resources>

View File

@@ -36,11 +36,11 @@
<string name="try_again">Tentar novamente</string>
<string name="about_menu_title">Sobre o CoMaps</string>
<!-- Text in About screen -->
<string name="about_headline">Grátis para todos, feito com amor</string>
<string name="about_headline">Projeto aberto impulsionado pela comunidade</string>
<!-- Text in About screen -->
<string name="about_proposition_1">Sem anúncios, rastreamento ou coleta de dados</string>
<string name="about_proposition_1">Fácil de usar e elegante</string>
<!-- Text in About screen -->
<string name="about_proposition_2">Sem consumo de bateria, funciona off-line</string>
<string name="about_proposition_2">Focado na privacidade e sem anúncios</string>
<!-- The button that opens system location settings -->
<string name="location_settings">Configurações de localização</string>
<string name="close">Fechar</string>
@@ -82,7 +82,7 @@
<!-- Header of settings activity where user defines storage path -->
<string name="maps_storage">Salvar mapas para</string>
<!-- Detailed description of Maps Storage settings button -->
<string name="maps_storage_summary">Selecione o local para onde os mapas devem ser baixados</string>
<string name="maps_storage_summary">Selecione o local para onde os mapas devem ser baixados.</string>
<!-- E.g. "Downloaded maps: 500Mb" in Maps Storage settings -->
<string name="maps_storage_downloaded">Mapas</string>
<!-- Internal storage type in Maps Storage settings (not accessible by the user) -->
@@ -275,7 +275,7 @@
<!-- Item in context menu. -->
<string name="downloader_update_map">Atualizar mapa</string>
<!-- Preference text -->
<string name="pref_use_google_play">Determine rapidamente sua localização aproximada via Bluetooth, WiFi ou rede móvel</string>
<string name="pref_use_google_play">Um serviço proprietário que combina GPS, Wi-Fi, redes móveis etc. para determinar sua localização com mais precisão. Ele pode se conectar aos servidores do Google.</string>
<!-- Preference title -->
<!-- Preference description -->
<!-- Text for routing error dialog -->
@@ -367,8 +367,8 @@
<string name="read_in_wikipedia">Wikipédia</string>
<string name="p2p_your_location">Localização atual</string>
<string name="p2p_start">Iniciar</string>
<string name="p2p_from_here">De</string>
<string name="p2p_to_here">Para</string>
<string name="p2p_from_here">Rota de</string>
<string name="p2p_to_here">Rota para</string>
<string name="p2p_only_from_current">Só é possível navegar a partir da sua localização atual.</string>
<string name="p2p_reroute_from_current">Deseja planejar uma rota a partir da sua localização atual?</string>
<!-- Edit open hours/set time and minutes dialog -->
@@ -548,7 +548,7 @@
<string name="bookmark_lists_show_all">Exibir tudo</string>
<plurals name="bookmarks_places">
<item quantity="one">%d favorito</item>
<item quantity="many"/>
<item quantity="many">%d favoritos</item>
<item quantity="other">%d favoritos</item>
</plurals>
<string name="bookmarks_create_new_group">Criar nova lista</string>
@@ -567,13 +567,13 @@
<string name="profile">Perfil do OpenStreetMap</string>
<plurals name="bookmarks_detect_message">
<item quantity="one">%d arquivo foi encontrado. Você vai ver depois da conversão.</item>
<item quantity="many"/>
<item quantity="many">%d arquivos foram encontrados. Você os verá depois da conversão.</item>
<item quantity="other">%d arquivos foram encontrados. Você os verá depois da conversão.</item>
</plurals>
<string name="restore">Restaurar</string>
<plurals name="tracks">
<item quantity="one">%d trilha</item>
<item quantity="many"/>
<item quantity="many">%d trilhas</item>
<item quantity="other">%d trilhas</item>
</plurals>
<string name="privacy_policy">Política de privacidade</string>
@@ -691,7 +691,7 @@
<!-- A preference title; keep short! -->
<string name="enable_show_on_lock_screen">Mostrar na tela de bloqueio</string>
<!-- Description in preferences -->
<string name="enable_show_on_lock_screen_description">Quando ativado, você não precisará debloquear seu dispositivo toda vez que o aplicativo estiver funcionando</string>
<string name="enable_show_on_lock_screen_description">Quando ativado, você não precisará desbloquear seu dispositivo toda vez que o aplicativo estiver funcionando.</string>
<!-- Current language of the map! -->
<string name="change_map_locale">Idioma do mapa</string>
<!-- OpenStreetMap text on splash screen -->
@@ -771,16 +771,100 @@
<!-- Message for the toast when saving the track recording is finished but nothing to save. -->
<string name="track_recording_toast_nothing_to_save">A trilha está vazia - não há nada para salvar</string>
<!-- Error message when there are no File Manager apps installed to select a folder when importing Bookmarks and Tracks -->
<string name="error_no_file_manager_app">Não é possível exibir a caixa de diálogo de seleção de pastas porque nenhum aplicativo adequado está instalado no seu dispositivo. Instale um aplicativo gerenciador de arquivos e tente novamente</string>
<string name="error_no_file_manager_app">Não é possível exibir a caixa de diálogo de seleção de pastas porque nenhum aplicativo adequado está instalado no seu dispositivo. Instale um aplicativo gerenciador de arquivos e tente novamente.</string>
<string name="choose_color">Escolher cor</string>
<string name="edit_track">Editar trilha</string>
<string name="uri_open_location_failed">Nenhum aplicativo instalado que possa abrir o local</string>
<!-- preference string for using auto theme only in navigation mode -->
<string name="nav_auto">Automático na navegação</string>
<string name="wikimedia_commons">Wikimedia Commons</string>
<string name="about_proposition_3">Rápido, minimalista, desenvolvido pela comunidade</string>
<string name="about_proposition_3">Não precisa de conexão à internet, rápido e leve</string>
<string name="drive_through">Drive-through</string>
<string name="editor_operator">Operador</string>
<string name="mb">MB</string>
<string name="gb">GB</string>
<string name="editor_line_social_network">LINE</string>
<string name="pref_map_style_title">Modo noturno</string>
<string name="off">Desativado</string>
<string name="on">Ativado</string>
<string name="menu">Menu</string>
<string name="news">Notícias</string>
<string name="github">GitHub</string>
<string name="telegram">Telegram</string>
<string name="matrix">[Matrix]</string>
<string name="about_developed_by_enthusiasts">Totalmente de código aberto, sem fins lucrativos, com processos de tomada de decisões e finanças transparentes.</string>
<string name="limited_accuracy">Precisão limitada</string>
<string name="pref_tts_street_names_title">Anunciar nomes de ruas</string>
<string name="faq">Perguntas frequentes</string>
<string name="bluesky">Bluesky</string>
<string name="openstreetmap">OpenStreetMap</string>
<string name="already_donated">Já doei</string>
<string name="remind_me_later">Lembre-me mais tarde</string>
<string name="mastodon">Mastodon</string>
<string name="facebook">Facebook</string>
<string name="twitter">X (Twitter)</string>
<string name="instagram">Instagram</string>
<string name="vk">VK</string>
<string name="app_site_url">https://comaps.app/pt-BR/</string>
<string name="dialog_routing_change_intermediate">Não foi possível localizar o ponto intermediário.</string>
<string name="editor_time_from">De</string>
<string name="how_to_support_us">Apoie o projeto</string>
<string name="google_play_services">Serviço de localização integrada do Google</string>
<string name="editor_time_title">Horário de funcionamento</string>
<string name="support_organic_maps">Apoie o CoMaps</string>
<string name="long_tap_toast">Dê um toque longo no mapa novamente para ver a interface</string>
<string name="editor_time_add">Adicionar horário</string>
<string name="editor_time_open">Aberto</string>
<string name="editor_time_close">Fechado</string>
<string name="editor_time_advanced">Modo avançado</string>
<string name="editor_time_simple">Modo simples</string>
<string name="editor_hours_closed">Horas sem funcionamento</string>
<string name="editor_example_values">Valores de exemplo</string>
<string name="editor_time_to">Para</string>
<string name="layers_title">Estilos e camadas de mapas</string>
<string name="export_file">Exportar KMZ</string>
<string name="export_file_gpx">Exportar GPX</string>
<string name="elevation_profile_descent">Descida</string>
<string name="elevation_profile_difficulty">Dificuldade</string>
<string name="osm_wiki_about_url">https://wiki.openstreetmap.org/wiki/Pt:Sobre_o_OpenStreetMap</string>
<string name="editor_focus_map_on_location">Mova o mapa para colocar a cruz na localização da empresa ou do local.</string>
<string name="pref_left_button_disable">Desabilitar</string>
<string name="saved">Salvo</string>
<string name="privacy">Privacidade</string>
<string name="pref_tts_speedcams_auto">Avisar se exceder limite de velocidade</string>
<string name="telegram_url">https://t.me/CoMapsApp/</string>
<string name="elevation_profile_ascent">Subida</string>
<string name="editor_other_info">Nota para os voluntários do OpenStreetMap (opcional)</string>
<string name="building">Edifício</string>
<string name="level">Andar</string>
<string name="editor_default_language_hint">Como escrito na língua local</string>
<string name="navigation_stop_button">Parar</string>
<string name="network">Rede: %s</string>
<string name="by_name">Por nome</string>
<string name="comma_separated_pair">%1$s, %2$s</string>
<string name="clear_the_search">Limpar a pesquisa</string>
<string name="zoom_out">Diminuir o zoom</string>
<string name="volume">Volume</string>
<string name="pref_left_button_title">Configuração do botão esquerdo</string>
<string name="error_enter_correct_facebook_page">Insira um endereço da web, conta ou nome de página válidos do Facebook</string>
<string name="error_enter_correct_line_page">Insira um ID de LINE ou endereço da web válido</string>
<string name="social_media">Redes sociais</string>
<string name="tts_info_link">https://www.comaps.app/support/tts-configuration-guide-for-android/</string>
<string name="editor_add_phone">Adicionar telefone</string>
<string name="outdoor_seating">Assentos ao ar livre</string>
<string name="capacity">Capacidade: %s</string>
<string name="editor_correct_mistake">Corrigir erro</string>
<string name="editor_add_select_location">Selecione a localização</string>
<string name="not_signed_in">Não conectado</string>
<string name="level_value_generic">Andar: %s</string>
<string name="editor_note_hint">Descreva erros no mapa ou coisas que não podem ser editadas com CoMaps</string>
<string name="operator">Operador: %s</string>
<string name="error_enter_correct_instagram_page">Insira um nome de usuário válido do Instagram ou endereço da web</string>
<string name="error_enter_correct_twitter_page">Digite um nome de usuário válido do Twitter ou endereço da web</string>
<string name="error_enter_correct_vk_page">Digite um nome de usuário ou endereço da web válido do VK</string>
<string name="error_enter_correct_fediverse_page">Digite um nome de usuário ou endereço da web válido do Mastodon</string>
<string name="error_enter_correct_bluesky_page">Digite um nome de usuário ou endereço da web válido do Bluesky</string>
<string name="prefs_languages_information_off">Para alguns idiomas, você precisará instalar um sintetizador de voz ou um pacote de idiomas adicional da loja de aplicativos (Google Play, Galaxy Store, App Gallery, FDroid).\nAbra as configurações do seu dispositivo → Idioma e entrada → Fala → Saída de texto para fala.\nAqui, você pode gerenciar as configurações de síntese de voz (por exemplo, baixar o pacote de idiomas para uso offline) e selecionar outro mecanismo de conversão de texto para fala.</string>
<string name="codeberg">Codeberg</string>
<string name="instagram_url">https://www.instagram.com/comapscommunity/</string>
</resources>

View File

@@ -887,4 +887,10 @@
<string name="instagram_url">https://www.instagram.com/comapscommunity</string>
<string name="codeberg">Codeberg</string>
<string name="telegram_url">https://t.me/CoMapsApp/</string>
<string name="pref_left_button_title">Sol alt tuş ataması</string>
<string name="pref_left_button_disable">Devre dışı</string>
<string name="error_enter_correct_fediverse_page">Gireceğiniz Mastodon kullanıcı adı ve adresi halihazırda mevcut olmalı</string>
<string name="saved">Kaydedildi</string>
<string name="bluesky">Bluesky</string>
<string name="error_enter_correct_bluesky_page">Gireceğiniz Bluesky kullanıcı adı ve adresi halihazırda mevcut olmalı</string>
</resources>

View File

@@ -1367,4 +1367,7 @@
<string name="type.fee.yes"></string>
<string name="type.power.pole">Elektrik Direği</string>
<string name="type.man_made.utility_pole">Hizmet Direği</string>
<string name="type.amenity.studio">Stüdyo</string>
<string name="type.sport.diving">Dalış Sporu</string>
<string name="type.man_made.survey_point">Anket Noktası</string>
</resources>

View File

@@ -503,7 +503,7 @@
<!-- Text in About and OSM Login screens. First %@ is replaced by a local, human readable date. -->
<string name="osm_presentation">截至 %s 的社群創建的 OpenStreetMap 資料。請訪問 OpenStreetMap.org 以了解有關如何編輯和更新地圖的更多資訊</string>
<!-- OSM explanation on Android login screen -->
<string name="login_osm_presentation">OpenStreetMap.orgOSM是一個建立免費開放地圖的社群專案。 它是CoMaps中地圖資料的主要來源其工作原理類似於維基百科。 您可以新增或編輯地點,可供全世界數以百萬計的使用者使用並受益。\n 加入OSM讓我們共繪更優質的地圖吧</string>
<string name="login_osm_presentation">OpenStreetMap.orgOSM是一個建立免費開放地圖的社群專案。 它是 CoMaps 中地圖資料的主要來源,其工作原理類似於維基百科。 您可以新增或編輯地點,可供全世界數以百萬計的使用者使用並受益。\n 加入OSM讓我們共繪更優質的地圖吧</string>
<string name="login_to_make_edits_visible">建立 OpenStreetMap 帳戶或登入以向全世界發布您的地圖編輯。</string>
<!-- Downloaded 10 **of** 20 <- it is that "of" -->
<string name="downloader_of">%1$d / %2$d</string>
@@ -892,4 +892,6 @@
<string name="error_enter_correct_fediverse_page">請輸入有效的 Mastodon 使用者名稱或網址</string>
<string name="error_enter_correct_bluesky_page">請輸入有效的 Bluesky 使用者名稱或網址</string>
<string name="bluesky">Bluesky</string>
<string name="pref_left_button_disable">停用</string>
<string name="pref_left_button_title">左側按鈕設定</string>
</resources>

View File

@@ -20,4 +20,16 @@
<string name="type.tourism.information.visitor_centre">旅遊服務中心</string>
<string name="type.man_made.silo">筒倉</string>
<string name="type.tourism.viewpoint">觀光景點</string>
<string name="type.highway.world_level">高速公路—世界級</string>
<string name="type.organic.only">有機</string>
<string name="type.recycling.cardboard">硬紙板</string>
<string name="type.recycling.cans">金屬罐</string>
<string name="type.recycling.shoes">鞋子</string>
<string name="type.recycling.green_waste">綠色垃圾/有機廢棄物</string>
<string name="type.recycling.cartons">紙盒</string>
<string name="type.highway.world_towns_level">高速公路—鎮級</string>
<string name="type.leisure.track.area">賽道</string>
<string name="type.organic.yes">有機</string>
<string name="type.power.pole">電線桿</string>
<string name="type.amenity.shelter.lean_to">三面避難所</string>
</resources>

View File

@@ -503,7 +503,7 @@
<!-- Text in About and OSM Login screens. First %@ is replaced by a local, human readable date. -->
<string name="osm_presentation">截至 %s 的社区创建的 OpenStreetMap 数据。请访问 OpenStreetMap.org 以了解有关如何编辑和更新地图的信息</string>
<!-- OSM explanation on Android login screen -->
<string name="login_osm_presentation">OpenStreetMap.orgOSM是一个构建免费开放地图的社区项目。它是CoMaps中地图数据的主要来源其工作原理类似于维基百科。您可以添加或编辑地点可供全世界数以百万计的用户使用并受益。\n加入OSM让我们共绘更优质的地图吧</string>
<string name="login_osm_presentation">OpenStreetMap.orgOSM是一个构建免费开放地图的社区项目。它是 CoMaps 中地图数据的主要来源,其工作原理类似于维基百科。您可以添加或编辑地点,可供全世界数以百万计的用户使用并受益。\n加入OSM让我们共绘更优质的地图吧</string>
<string name="login_to_make_edits_visible">创建 OpenStreetMap 账号或登录,向全世界发布您编辑的地图。</string>
<!-- Downloaded 10 **of** 20 <- it is that "of" -->
<string name="downloader_of">%1$d / %2$d</string>
@@ -892,4 +892,6 @@
<string name="bluesky">Bluesky</string>
<string name="error_enter_correct_bluesky_page">请输入有效的 Bluesky 用户名或网址</string>
<string name="saved">已保存</string>
<string name="pref_left_button_disable">禁用</string>
<string name="pref_left_button_title">左侧按钮设置</string>
</resources>

View File

@@ -652,7 +652,7 @@
<string name="type.leisure.swimming_pool">游泳池</string>
<string name="type.leisure.swimming_pool.private">游泳池</string>
<string name="type.leisure.track">賽道</string>
<string name="type.leisure.track.area"></string>
<string name="type.leisure.track.area"></string>
<string name="type.leisure.water_park">水上乐园</string>
<string name="type.leisure.beach_resort">海滨度假区</string>
<string name="type.man_made">人造要素</string>

View File

@@ -138,6 +138,8 @@
<color name="elevation_profile">#1E96F0</color>
<color name="elevation_profile_dark">#4BB9E6</color>
<color name="active_track_recording">#0057ff</color>
<color name="material_calendar_surface_dark">#929292</color>
<color name="notification_warning">#FFC22219</color>
</resources>

View File

@@ -41,6 +41,7 @@
<string name="pref_keep_screen_on" translatable="false">KeepScreenOn</string>
<string name="pref_show_on_lock_screen" translatable="false">ShowOnLockScreen</string>
<string name="pref_map_locale" translatable="false">MapLanguage</string>
<string name="pref_left_button" translatable="false">LeftButton</string>
<string name="notification_ticker_ltr" translatable="false">%1$s: %2$s</string>
<string name="notification_ticker_rtl" translatable="false">%2$s :%1$s</string>

View File

@@ -930,6 +930,6 @@
<!-- preference string for using auto theme only in navigation mode -->
<string name="nav_auto">Auto in navigation</string>
<string name="codeberg">Codeberg</string>
<string name="pref_universal_button">Universal button setup</string>
<string name="pref_universal_button_not_display">Do not display</string>
<string name="pref_left_button_title">Left button setup</string>
<string name="pref_left_button_disable">Disable</string>
</resources>

View File

@@ -28,16 +28,22 @@
app:singleLineTitle="false"
android:summary="@string/pref_zoom_summary"
android:order="2"/>
<ListPreference
android:key="@string/pref_left_button"
android:title="@string/pref_left_button_title"
app:singleLineTitle="false"
android:persistent="true"
android:order="3"/>
<SwitchPreferenceCompat
android:key="@string/pref_3d_buildings"
android:title="@string/pref_map_3d_buildings_title"
app:singleLineTitle="false"
android:order="3"/>
android:order="4"/>
<SwitchPreferenceCompat
android:key="@string/pref_autodownload"
android:title="@string/autodownload"
app:singleLineTitle="false"
android:order="4"/>
android:order="5"/>
<SwitchPreferenceCompat
android:key="@string/pref_large_fonts_size"
android:title="@string/big_font"
@@ -106,12 +112,6 @@
app:singleLineTitle="false"
android:persistent="false"
android:order="18"/>
<ListPreference
android:key="universal_button"
android:title="@string/pref_universal_button"
app:singleLineTitle="false"
android:persistent="true"
android:order="20"/>
</androidx.preference.PreferenceCategory>
<androidx.preference.PreferenceCategory

File diff suppressed because it is too large Load Diff

View File

@@ -1488,6 +1488,6 @@
"type.barrier.guard_rail" = "Leitplanke";
"type.highway.ladder" = "Leiter";
"type.landuse.plant_nursery" = "Gartenbau";
"type.leisure.firepit" = "Feuerschale";
"type.leisure.firepit" = "Feuerstelle";
"type.amenity.studio" = "Studio";
"type.sport.diving" = "Tauchen";

View File

@@ -1484,3 +1484,10 @@
/* https://wiki.openstreetmap.org/wiki/Tag:leisure=sports_hall */
"type.leisure.sports_hall" = "Pabellón deportivo";
"type.amenity.studio" = "Estudio";
"type.leisure.firepit" = "Fogón";
"type.amenity.love_hotel" = "Hotel del amor";
"type.barrier.guard_rail" = "Guardarraíl";
"type.highway.ladder" = "Escalera";
"type.landuse.plant_nursery" = "Vivero de plantas";
"type.sport.diving" = "Buceo";

View File

@@ -27,7 +27,7 @@
"type.amenity.bicycle_parking" = "Polkupyöräpysäköinti";
"type.amenity.bicycle_rental" = "Polkupyöränvuokraus";
"type.amenity.bicycle_repair_station" = "Polkupyörän korjausasema";
"type.amenity.biergarten" = "Biergarten";
"type.amenity.biergarten" = "Olutpuutarha";
"type.amenity.brothel" = "Bordelli";
"type.amenity.bureau_de_change" = "Rahanvaihto";
"type.amenity.bus_station" = "Linja-autoasema";
@@ -179,7 +179,7 @@
"type.amenity.vending_machine.parking_tickets" = "Pysäköintimaksuautomaatti";
"type.amenity.vending_machine.public_transport_tickets" = "Julkisen liikenteen lippuautomaatti";
"type.amenity.vending_machine.sweets" = "Makeisautomaatti";
"type.amenity.vending_machine.excrement_bags" = "Excrement Bags Dispenser";
"type.amenity.vending_machine.excrement_bags" = "Koirankakkapussiautomaatti";
"type.amenity.parcel_locker" = "Pakettilokero";
"type.amenity.vehicle_inspection" = "Ajoneuvon tarkastus";
"type.amenity.vending_machine.fuel" = "Bensa-automaatti";
@@ -1486,3 +1486,8 @@
"type.leisure.sports_hall" = "Urheiluhalli";
"type.amenity.love_hotel" = "Rakkaushotelli";
"type.sport.diving" = "Sukellus";
"type.amenity.studio" = "Studio";
"type.barrier.guard_rail" = "Tiekaide";
"type.highway.ladder" = "Tikapuut";
"type.landuse.plant_nursery" = "Kasvitarha";
"type.leisure.firepit" = "Tulentekopaikka";

View File

@@ -143,7 +143,7 @@
"type.recycling.cans" = "缶";
"type.recycling.shoes" = "靴";
"type.recycling.green_waste" = "有機性廃棄物";
"type.recycling.cartons" = "Cartons";
"type.recycling.cartons" = "紙箱";
"type.amenity.restaurant" = "レストラン";
"type.amenity.sanitary_dump_station" = "ダンプステーション";
"type.amenity.school" = "学校";
@@ -836,8 +836,8 @@
"type.office.lawyer" = "弁護士事務所";
"type.office.ngo" = "NGO 事務局";
"type.office.telecommunication" = "携帯電話事業者";
"type.organic.only" = "Organic";
"type.organic.yes" = "Organic";
"type.organic.only" = "有機";
"type.organic.yes" = "有機";
"type.place.city" = "市";
"type.place.city.capital" = "首都";
"type.place.city.capital.10" = "市";
@@ -898,7 +898,7 @@
"type.power.tower" = "電柱";
/* A single pole supporting minor power lines. */
"type.power.pole" = "Power Pole";
"type.power.pole" = "電柱";
/* A single pole supporting various public utilities, such as lighting or telephony. */
"type.man_made.utility_pole" = "Utility Pole";

View File

@@ -647,7 +647,6 @@
"type.hwtag" = "hwtag";
"type.hwtag.bidir_bicycle" = "hwtag-bidir_bicycle";
"type.hwtag.onedir_bicycle" = "hwtag-onedir_bicycle";
"type.hwtag.lit" = "hwtag-lit";
"type.hwtag.nobicycle" = "hwtag-nobicycle";
"type.hwtag.nocar" = "hwtag-nocar";
"type.hwtag.nofoot" = "hwtag-nofoot";
@@ -742,7 +741,7 @@
"type.man_made.cairn" = "Höyük";
"type.man_made.chimney" = "Fabrika Bacası";
"type.man_made.cutline" = "Kesme Çizgisi";
"type.man_made.survey_point" = "Survey Point";
"type.man_made.survey_point" = "Anket Noktası";
"type.man_made.flagpole" = "Bayrak Direği";
"type.man_made.lighthouse" = "Deniz Feneri";
"type.man_made.mast" = "Direk";
@@ -1484,3 +1483,5 @@
/* https://wiki.openstreetmap.org/wiki/Tag:leisure=sports_hall */
"type.leisure.sports_hall" = "Spor salonu";
"type.amenity.studio" = "Stüdyo";
"type.sport.diving" = "Dalış Sporu";

View File

@@ -734,7 +734,7 @@
"type.leisure.swimming_pool" = "游泳池";
"type.leisure.swimming_pool.private" = "游泳池";
"type.leisure.track" = "賽道";
"type.leisure.track.area" = "道";
"type.leisure.track.area" = "道";
"type.leisure.water_park" = "水上乐园";
"type.leisure.beach_resort" = "海滨度假区";
"type.man_made" = "人造要素";

View File

@@ -139,11 +139,11 @@
"type.recycling.plastic_bottles" = "塑料瓶";
"type.recycling.scrap_metal" = "廢金屬";
"type.recycling.small_appliances" = "電子垃圾";
"type.recycling.cardboard" = "Cardboard";
"type.recycling.cans" = "Cans";
"type.recycling.shoes" = "Shoes";
"type.recycling.green_waste" = "Green/Organic Waste";
"type.recycling.cartons" = "Cartons";
"type.recycling.cardboard" = "硬紙板";
"type.recycling.cans" = "金屬罐";
"type.recycling.shoes" = "鞋子";
"type.recycling.green_waste" = "綠色垃圾/有機廢棄物";
"type.recycling.cartons" = "紙盒";
"type.amenity.restaurant" = "餐廳";
"type.amenity.sanitary_dump_station" = "儲液池排泄站";
"type.amenity.school" = "學校";
@@ -596,8 +596,8 @@
"type.area_highway.track" = "土路";
"type.area_highway.trunk" = "主幹道";
"type.area_highway.unclassified" = "道路";
"type.highway.world_level" = "highway-world_level";
"type.highway.world_towns_level" = "highway-world_towns_level";
"type.highway.world_level" = "高速公路—世界級";
"type.highway.world_towns_level" = "高速公路—鎮級";
"type.historic" = "歷史地點";
"type.historic.aircraft" = "歷史悠久的飛機";
"type.historic.anchor" = "歷史錨";
@@ -644,7 +644,6 @@
"type.historic.wayside_cross" = "路旁十字架";
"type.historic.wayside_shrine" = "路旁神龕";
"type.historic.wreck" = "沉船";
"type.hwtag" = "hwtag";
"type.hwtag.bidir_bicycle" = "hwtag-bidir_bicycle";
"type.hwtag.onedir_bicycle" = "hwtag-onedir_bicycle";
"type.hwtag.lit" = "hwtag-lit";
@@ -734,7 +733,7 @@
"type.leisure.swimming_pool" = "游泳池";
"type.leisure.swimming_pool.private" = "游泳池";
"type.leisure.track" = "Track";
"type.leisure.track.area" = "Track";
"type.leisure.track.area" = "賽道";
"type.leisure.water_park" = "水上樂園";
"type.leisure.beach_resort" = "海濱度假區";
"type.man_made" = "Man Made";
@@ -836,8 +835,8 @@
"type.office.lawyer" = "律師事務所";
"type.office.ngo" = "非政府組織辦公室";
"type.office.telecommunication" = "行動電話業者";
"type.organic.only" = "Organic";
"type.organic.yes" = "Organic";
"type.organic.only" = "有機";
"type.organic.yes" = "有機";
"type.place.city" = "城市";
"type.place.city.capital" = "首府";
"type.place.city.capital.10" = "城市";
@@ -898,7 +897,7 @@
"type.power.tower" = "電塔";
/* A single pole supporting minor power lines. */
"type.power.pole" = "Power Pole";
"type.power.pole" = "電線桿";
/* A single pole supporting various public utilities, such as lighting or telephony. */
"type.man_made.utility_pole" = "Utility Pole";

View File

@@ -1 +1 @@
CoMaps Offline navigieren mit Datenschutz
CoMaps: Navigation Datenschutz