diff --git a/android/app/src/main/res/values-de/strings.xml b/android/app/src/main/res/values-de/strings.xml index 043b1803e0..a6a2e0aded 100644 --- a/android/app/src/main/res/values-de/strings.xml +++ b/android/app/src/main/res/values-de/strings.xml @@ -28,7 +28,7 @@ Auf der Karte suchen - Standortdienste sind für dieses Gerät oder App deaktiviert. Bitte aktivieren Sie diese in den Einstellungen. + Ortungsdienste sind für dieses Gerät oder die App deaktiviert. Bitte aktivieren Sie diese in den Einstellungen. Auf der Karte anzeigen @@ -41,11 +41,11 @@ • Keine Werbung, kein Tracking, keine Datenerfassung - • Minimaler Batterieverbrauch, funktioniert offline + • Kein Datenverbrauch, funktioniert offline - • Schnell, minimalistisch, von der Community entwickelt + • Schnell, minimalistisch, von der Gemeinschaft entwickelt - Open-Source-Anwendung, entwickelt von Enthusiasten und Freiwilligen. + Open-Source-Anwendung von Enthusiasten und Freiwilligen. Standorteinstellungen Schließen @@ -67,11 +67,11 @@ %s Herunterladen fehlgeschlagen - Neue Liste hinzufügen + Neue Gruppe hinzufügen Lesezeichenfarbe - Name der Lesezeichenliste + Name des Lesezeichens Lesezeichen @@ -91,7 +91,7 @@ Wählen Sie den Speicherort für die heruntergeladenen Karten - Heruntergeladene Karten + Karten Interner persönlicher Speicher @@ -165,7 +165,7 @@ Notizen - Organic Maps Lesezeichen wurden mit Ihnen geteilt + Organic Maps-Lesezeichen mit Ihnen geteilt Hallo!\n\nIm Anhang sind meine Lesezeichen der Organic Maps App. Sie können sie mit Organic Maps öffnen. Wenn Sie die App nicht installiert haben, können Sie sie von https://omaps.app/get?kmz für iOS oder Android herunterladen.\n\nViel Spaß beim Reisen mit Organic Maps! Lesezeichen werden geladen @@ -216,7 +216,7 @@ Information Navigation Zoom-Tasten - Auf der Karte anzeigen + Auf dem Bildschirm anzeigen Nachtmodus @@ -261,7 +261,7 @@ Hilfe - Häufige Fragen und Antworten + Fragen und Antworten Spenden @@ -269,7 +269,7 @@ Copyright - App-Fehler melden + Fehler melden Verbessern Sie die Pfeilrichtung, indem Sie das Telefon in einer Achterbewegung bewegen, um den Kompass zu kalibrieren. @@ -288,7 +288,7 @@ Alle herunterladen Wird heruntergeladen: - Zum Löschen der Karte bitte die Navigation unterbrechen. + Zum Löschen der Karte bitte Navigation unterbrechen. Es können nur Routen erstellt werden, die vollständig in einer einzigen Karte enthalten sind. @@ -302,15 +302,15 @@ Google Play Standortdienste - Ermitteln Sie schnell Ihren ungefähren Standort über Bluetooth, WLAN oder das Mobilfunknetz + Bestimme schnell deinen ungefähren Standort über Bluetooth, WiFi oder das mobile Netzwerk Karten entlang der Route herunterladen Zum Erstellen einer Route müssen alle Karten von Ihrem Standort bis zum Ziel heruntergeladen und aktualisiert worden sein. - Nicht genügend Speicherplatz + Nicht genug Speicherplatz - Bitte aktivieren Sie die Standortdienste + Aktivieren Sie bitte Ortungsdienste Speichern Ihre Beschreibungen (Text oder HTML) erstellen @@ -349,7 +349,7 @@ Wenn Sie der Route folgen, beachten Sie bitte: - – Zustand der Straßen, die Verkehrsordnung und Straßenschilder haben stets Vorrang vor Navigationsanweisungen; + – Straßenverhältnisse, die Verkehrsordnung und Straßenschilder haben stets Vorrang vor Navigationsanweisungen; – Die Karte kann ungenau sein, und die vorgeschlagene Route ist möglicherweise nicht der optimale Weg, um das Ziel zu erreichen; — Die vorgeschlagenen Routen sind als Empfehlungen zu verstehen; — Bitte seien Sie vorsichtig bei Routen in Grenzgebieten: die Routen, die unsere App erstellt, können manchmal Landesgrenzen in gesperrten Gebieten überschreiten; @@ -357,24 +357,24 @@ GPS-Signal prüfen Route kann nicht erstellt werden. Aktuelle GPS-Koordinaten konnten nicht ermittelt werden. Bitte prüfen Sie Ihr GPS-Signal. WLAN verbessert Ihre Standortgenauigkeit. - Standortdienste aktivieren - Aktuelle GPS-Koordinaten können nicht ermittelt werden. Aktivieren Sie Standortdiensten, um die Route zu berechnen. + Ortungsdienste aktivieren + Aktuelle GPS-Koordinaten können nicht ermittelt werden. Aktivieren Sie Ortungsdienste, um die Route zu berechnen. Route kann nicht ermittelt werden Route kann nicht erstellt werden. Bitte passen Sie Ihren Startpunkt oder Ihr Ziel an. Startpunkt anpassen Route wurde nicht erstellt. Startpunkt kann nicht gefunden werden. - Bitte wählen Sie einen Startpunkt, der näher an einer Straße liegt. + Bitte wählen Sie einen Startpunkt in der Nähe einer Straße aus. Ziel anpassen Route wurde nicht erstellt. Ziel kann nicht gefunden werden. - Bitte wählen Sie einen Zielort, der näher an einer Straße liegt. + Bitte wählen Sie einen Zielort in der Nähe einer Straße aus. Zwischenstopp kann nicht gefunden werden. Bitte passen Sie Ihren Zwischenstopp an. Systemfehler Route kann wegen eines Anwendungsfehlers nicht erstellt werden. Bitte versuchen Sie es erneut Möchten Sie die Karte herunterladen und eine bessere Route erstellen, die mehr als eine Karte umfasst? - Laden Sie zusätzliche Karten herunter, um eine bessere Route zu erstellen, die die Grenzen dieser Karte überschreitet. + Laden Sie die Karte herunter, um eine bessere Route zu erstellen, die den Rand dieser Karte überschreitet. Um mit der Suche und dem Erstellen von Routen zu beginnen, laden Sie bitte die Karte herunter. Sie benötigen danach keine Internetverbindung mehr. @@ -415,8 +415,8 @@ Schließzeiten Beispiele Fehler korrigieren - Standort - Bitte beschreiben Sie das Problem detailliert, damit die OpenStreetMap-Community den Fehler korrigieren kann. + Position + Bitte beschreiben Sie das Problem detailliert, damit die OpenStreetMap-Gemeinschaft den Fehler beheben kann. Oder kümmern Sie sich selbst darum auf https://www.openstreetmap.org/ Senden Problem @@ -426,7 +426,7 @@ Automatisch herunterladen Täglich - 24/7 + Tag und Nacht Heute geschlossen Geschlossen Heute @@ -435,8 +435,8 @@ Geschlossen Geschäftszeiten bearbeiten Kein Konto bei OpenStreetMap? - Bei OpenStretMap registrieren - Bei OpenStreetMap anmelden + Registrieren + Anmelden Melden Sie sich bei OpenStreetMap an Passwort Passwort vergessen? @@ -479,8 +479,8 @@ Organisation hinzufügen Ein Objekt kann hier nicht positioniert werden - Von der Community erstellte OpenStreetMap-Daten (Stand: %s). Erfahre mehr darüber, wie du die Karte bearbeiten und aktualisieren kannst unter OpenStreetMap.org - Melden Sie sich bei openstreetmap.org an, um Ihre Änderungen weltweit zu veröffentlichen. + Von der Gemeinschaft erstellte OpenStreetMap-Daten (Stand: %s). Erfahre mehr darüber, wie du die Karte bearbeiten und aktualisieren kannst unter OpenStreetMap.org + Melden Sie sich an, damit andere Benutzer Ihre Änderungen sehen können. %1$d von %2$d Über eine Mobilfunknetzverbindung herunterladen? @@ -493,13 +493,13 @@ Geben Sie die korrekte Postleitzahl ein Unbekannter Ort - Notiz an Freiwillige von OpenStreetMap senden + Notiz an OSM-Redakteure senden Ausführlicher Kommentar Ihre Änderungsvorschläge für die Karte werden an OpenStreetMap gesendet: Beschreiben Sie die Details der Objekte, die Sie in Organic Maps nicht bearbeiten können. Mehr Informationen über OpenStreetMap - Eigentümer - Keine Karten heruntergeladen - Laden Sie Karten für die Offline-Suche und Navigation herunter. + Betreiber oder Eigentümer + Keine Karten geladen + Laden Sie die für die Suche nach Orten erforderlichen Karten und verwenden Sie die Navigation offline. m @@ -517,12 +517,12 @@ Fotos, bewertungen, buchung - Der Empfehlungsbonus, den wir für jede Buchung über diesen Link erhalten, fließt in die Entwicklung von Organic Maps. + Der empfehlungsbonus, den wir für jede buchung über diesen link erhalten, fließt in die entwicklung von Organic Maps. Einzelheiten bei Kayak Lesezeichen bearbeiten Kommentar… - Alle lokalen Korrekturen verwerfen? + Alle lokalen Korrekturen verwerfen Verwerfen Hinzugefügtes Objekt löschen? Löschen @@ -538,12 +538,12 @@ Geben Sie eine gültige Twitter-Webadresse oder einen Benutzernamen ein Geben Sie eine gültige VK-Webadresse oder einen Kontonamen ein Geben Sie eine gültige LINE-Webadresse oder LINE ID ein - Ort zu OpenStreetMap hinzufügen + Einen Ort zu OpenStreetMap hinzufügen An alle Benutzer senden? - Stellen Sie sicher, dass Sie keine persönlichen oder privaten Daten eingegeben haben. - Freiwillige von OpenStreetMap werden die Änderungen prüfen und sich bei Fragen mit Ihnen in Verbindung setzen. + Stellen Sie sicher, dass Sie keine persönlichen Daten eingegeben haben. + OpenStreetMap-Redakteure werden die Änderungen prüfen und sich bei Fragen mit Ihnen in Verbindung setzen. Stopp Annehmen @@ -555,7 +555,7 @@ Heute nicht verwenden Mobiles Internet - Für Benachrichtigungen über Kartenaktualisierungen und das Hochladen von Änderungen ist eine mobile Internetverbindung erforderlich. + Es wird mobiles Internet benötigt, um über Kartenaktualisierungen informiert zu werden und genauere Informationen über Orte anzuzeigen. Nie verwenden Immer fragen Um Verkehrsdaten anzuzeigen, müssen die Karten aktualisiert werden. @@ -586,14 +586,14 @@ Bitte geben Sie einen korrekten Namen ein Listen - Alle ausblenden + Alle verbergen Alle anzeigen Neue Liste erstellen Lesezeichen und Tracks importieren - Teilen wegen eines Anwendungsfehlers nicht möglich - Fehler beim Teilen - Eine leere Liste kann nicht geteilt werden + Freigabe wegen eines Anwendungsfehlers nicht möglich + Fehler bei der Freigabe + Eine leere Liste kann nicht freigegeben werden Der Name darf nicht leer sein Bitte geben Sie den Listennamen ein Neue Liste @@ -622,7 +622,7 @@ Privatsphäre Datenschutzerklärung Nutzungsbedingungen - Verkehr + Staus U-Bahn Kartenstile und Ebenen Die U-Bahnkarte steht nicht zur Verfügung @@ -634,7 +634,7 @@ Öffentlicher Zugriff Privater Zugriff Fügen Sie die Beschreibung hinzu (Text oder html) - Privat + Persönlich Blitzer Ortsbeschreibung @@ -662,7 +662,7 @@ Autobahnen vermeiden Route kann nicht berechnet werden Leider konnten wir keine Route mit den gewählten Optionen erstellen. Ändern Sie die Einstellungen und versuchen Sie es erneut - Routenbeschränkung einstellen + Umwege einstellen Routenbeschränkungen aktiv Mautstraße Unbefestigte Straße @@ -686,7 +686,7 @@ Nach Voreinstellung - Nach Typ + Nach Kategorie Nach Entfernung @@ -697,7 +697,7 @@ Vor einem Monat Vor über einem Monat Vor über einem Jahr - In meiner Nähe + In der Nähe Sonstiges @@ -716,12 +716,12 @@ Tankstellen Medizin In der Liste suchen - Religiöse Orte + Religiöse Stätten Wählen Sie die Liste Die U-Bahn-Navigation ist in dieser Region noch nicht verfügbar Keine U-Bahn-Route gefunden Wählen Sie einen zu einer U-Bahn-Station nähergelegenen Start- oder Endpunkt - Höhelinien + Gelände Um die Topographieebene nutzen zu können, aktualisieren Sie die Karte des betreffenden Gebiets oder laden Sie diese herunter Topographieebene ist für dieses Gebiet noch nicht verfügbar Bergauf @@ -731,7 +731,7 @@ Schwierigkeitsgrad Entf.: Dauer: - Karte vergrößern, um Höhelinien sichtbar zu machen + Karte vergrößern, um Höhenlinien sichtbar zu machen Herunterladen Herunterladen der Weltkarte @@ -756,7 +756,7 @@ https://wiki.openstreetmap.org/wiki/DE:Über_OSM - Danke, dass du unsere von der Community erstellten Karten benutzt! + Danke, dass du unsere von der Gemeinschaft erstellten Karten benutzt! Mit Ihren Spenden und Ihrer Unterstützung können wir die besten Karten der Welt erstellen! @@ -772,7 +772,7 @@ Unsere App wird von einigen Enthusiasten und der Community entwickelt. - Sie können die Kartendaten einfach korrigieren und verbessern. + Sie können die Kartendaten einfach reparieren und verbessern. Unser Hauptziel ist es, schnelle, datenschutzorientierte und benutzerfreundliche Karten zu erstellen, die Sie lieben werden. @@ -782,7 +782,7 @@ Du bist mit Android Auto verbunden - Weiter am Telefon + Weiter auf Telefon Zum Autobildschirm diff --git a/data/categories.txt b/data/categories.txt index 16eb46ea89..ef831fd34d 100644 --- a/data/categories.txt +++ b/data/categories.txt @@ -8049,10 +8049,6 @@ sw:Bwawa la kuogelea fa:استخرشنا mr:जलतरण तलाव -# Not searchable -leisure-swimming_pool-private -en:DoNotMatchThisType_OneLanguageDefinitionIsEnoughHere - sport-american_football en:American Football ar:كرة القدم الأمريكية diff --git a/data/mapcss-mapping.csv b/data/mapcss-mapping.csv index 9a7d69512e..f2cbcb303c 100644 --- a/data/mapcss-mapping.csv +++ b/data/mapcss-mapping.csv @@ -588,7 +588,7 @@ fee|yes;[fee?];;name;int_name;500; fee|no;[fee=no];;name;int_name;501; toilets|yes;502; highway|trunk_link|tunnel;[highway=trunk_link][tunnel?];;name;int_name;503; -drinking_water|yes;[drinking_water=yes],[drinking_water=treated],[drinking_water:refill=yes];;;;504; +drinking_water|yes;504; drinking_water|no;505; deprecated|deprecated;506;x deprecated|deprecated;507;x diff --git a/data/strings/strings.txt b/data/strings/strings.txt index 10fad908a4..5e8c751677 100644 --- a/data/strings/strings.txt +++ b/data/strings/strings.txt @@ -372,7 +372,7 @@ ca = Deixa un comentari cs = Zpětná vazba da = Lav en bedømmelse - de = Bewertung abgeben + de = Bericht abgeben el = Αφήστε μια κριτική es = Escribir una opinión et = Jäta arvamus @@ -723,7 +723,7 @@ ca = Teniu tots els serveis de geolocalització d'aquest aparell desactivats. Activeu-los a la configuració. cs = Aktuálně máte všechny možnosti pro určování polohy vypnuté. Prosím, povolte je v Nastavení. da = Du har alle lokationstjenester for denne enhed eller applikation slukket. Slå dem venligst til i Indstillinger. - de = Standortdienste sind für dieses Gerät oder App deaktiviert. Bitte aktivieren Sie diese in den Einstellungen. + de = Ortungsdienste sind für dieses Gerät oder die App deaktiviert. Bitte aktivieren Sie diese in den Einstellungen. el = Οι υπηρεσίες εντοπισμού τοποθεσίας είναι προς το παρόν απενεργοποιημένες σε αυτή τη συσκευή ή για αυτή την εφαρμογή. Ενεργοποιήστε τες από τις Ρυθμίσεις. es = No se puede acceder a los servicios de localización en este dispositivo o aplicación. Por favor, actívelos en los ajustes. et = Seadme või rakenduse kõik asukohateenused on praegu välja lülitatud. Luba need Seadetes. @@ -1078,7 +1078,7 @@ ca = • Sense consum de bateria, funciona fora de línia cs = • Žádné vybíjení baterie, funguje offline da = • Intet batteridræn, fungerer offline - de = • Minimaler Batterieverbrauch, funktioniert offline + de = • Kein Datenverbrauch, funktioniert offline el = • Δεν εξαντλεί τη μπαταρία, λειτουργεί εκτός σύνδεσης es = • No consume batería, funciona sin conexión es-MX = • Sin consumo de batería, funciona sin conexión @@ -1125,7 +1125,7 @@ ca = • Ràpid, minimalista, desenvolupat per la comunitat cs = • Rychlé, minimalistické, vyvinutý komunitou da = • Hurtig, minimalistisk, udviklet af fællesskabet - de = • Schnell, minimalistisch, von der Community entwickelt + de = • Schnell, minimalistisch, von der Gemeinschaft entwickelt el = • Γρήγορο, μινιμαλιστικό, αναπτυγμένο από την κοινότητα es = • Rápido, minimalista, desarrollado por la comunidad es-MX = • Rápido, minimalista, desarrollado por la comunidad. @@ -1170,7 +1170,7 @@ bg = Приложение с отворен код, създадено от ентусиасти и доброволци. cs = Otevřená aplikace vytvořená nadšenci a dobrovolníky. da = Open source-applikation oprettet af entusiaster og frivillige. - de = Open-Source-Anwendung, entwickelt von Enthusiasten und Freiwilligen. + de = Open-Source-Anwendung von Enthusiasten und Freiwilligen. el = Εφαρμογή ανοιχτού κώδικα που δημιουργήθηκε από θιασώτες και εθελοντές. es = Aplicación de código abierto creada por entusiastas y voluntarios. eu = Kode irekiko aplikazioa zaleek eta boluntarioek sortutakoa. @@ -1834,7 +1834,7 @@ ca = Afegeix una llista nova cs = Přidat novou skupinu záložek da = Tilføj nyt sæt - de = Neue Liste hinzufügen + de = Neue Gruppe hinzufügen el = Δημιουργία νέας λίστας es = Agregar un grupo nuevo et = Lisa uus loetelu @@ -1925,7 +1925,7 @@ ca = Nom de la llista de marcadors cs = Název záložky da = Indstil bogmærkenavn - de = Name der Lesezeichenliste + de = Name des Lesezeichens el = Όνομα λίστας αγαπημένων es = Nombre del grupo de marcadores et = Järjehoidjate loetelu nimi @@ -1968,7 +1968,7 @@ ca = Llistes de marcadors cs = Skupiny záložek da = Bogmærk sæt - de = Lesezeichenliste + de = Lesezeichenmappe el = Λίστα αγαπημένων es = Grupos de marcadores et = Järjehoidjate loetelud @@ -2418,7 +2418,7 @@ ca = Mapes baixats cs = Mapy da = Kort - de = Heruntergeladene Karten + de = Karten el = Κατεβασμένοι Χάρτες es = Mapas descargados et = Kaardid @@ -3913,7 +3913,7 @@ ca = Marcadors d'Organic Maps compartits cs = Sdílené záložky Organic Maps da = Organic Maps bogmærker er blevet delt med dig - de = Organic Maps Lesezeichen wurden mit Ihnen geteilt + de = Organic Maps-Lesezeichen mit Ihnen geteilt el = Κοινοποιήθηκαν τα αγαπημένα από το Organic Maps σε εσάς es = Marcadores de Organic Maps compartidos con usted et = Organic Maps järjehoidjaid jagati Sinuga @@ -5231,7 +5231,7 @@ ca = Mostra'ls al mapa cs = Zobrazit na obrazovce da = Vis på skærmen - de = Auf der Karte anzeigen + de = Auf dem Bildschirm anzeigen el = Εμφάνιση στο χάρτη es = Visualización en la pantalla et = Kuva kaardil @@ -6791,7 +6791,7 @@ ca = Preguntes més freqüents cs = Otázky a odpovědi da = Spørgsmål og svar - de = Häufige Fragen und Antworten + de = Fragen und Antworten el = Συχνές ερωτήσεις es = Preguntas frecuentes et = Korduma kippuvad küsimused @@ -7020,7 +7020,7 @@ ca = Informació d'errors cs = Nahlásit chybu da = Rapportér fejl - de = App-Fehler melden + de = Fehler melden el = Αναφορά σφάλματος es = Informar de un fallo et = Teata veast @@ -7112,7 +7112,7 @@ ca = Fer-se voluntari cs = Dobrovolnictví da = At melde sig som frivillig - de = Freiwillig helfen + de = Für Freiwillige el = Γίνετε εθελοντής es = Voluntariado es-MX = Para ser voluntario @@ -7158,7 +7158,7 @@ ca = Segueix i contacta amb nosaltres: cs = Sledujte nás a kontaktujte nás: da = Følg og kontakt os: - de = Folge und kontaktiere uns: + de = Folge uns und kontaktiere uns: el = Ακολουθήστε και επικοινωνήστε μαζί μας: es = Síguenos y ponte en contacto con nosotros: es-MX = Síguenos y contáctanos: @@ -7205,7 +7205,7 @@ ca = No s'ha configurat cap client de correu electrònic. Configureu-lo o useu un altra via per contactar amb nosaltres a %@ cs = Emailový klient nebyl ještě nakonfigurován. Nastavte ho, prosím, nebo použijte jiný způsob k našemu kontaktování na %@ da = Emailklienten er ikke blevet sat op. Venligst konfigurér den eller brug en anden måde til at kontakte os på %@ - de = Der Email-Client ist noch nicht eingerichtet worden. Konfigurieren Sie ihn bitte oder nutzen Sie eine andere Möglichkeit oder kontaktieren Sie uns unter %@ + de = Der Email-Client ist noch nicht eingerichtet worden. Konfigurieren Sie ihn bitte oder nutzen Sie eine andere Möglichkeit, uns unter %@ zu erreichen. el = Το πρόγραμμα ηλεκτρονικού ταχυδρομείου δεν έχει ρυθμιστεί. Ρυθμίστε το ή χρησιμοποιήστε άλλο τρόπο να επικοινωνήσετε μαζί μας στη διεύθυνση %@ es = No se ha configurado el cliente de correo electrónico. Por favor, configúrelo o utilice alguna otra forma de ponerse en contacto con nosotros en %@ et = E-posti klienti ei ole seadistatud. Palun seadistage see või kasutage mõnda muud võimalust meiega ühenduse võtmiseks aadressil %@ @@ -7954,7 +7954,7 @@ ca = Per a esborrar el mapa, abans atureu la navegació. cs = Chcete-li odstranit mapu, pak prosím zastavte navigaci. da = For at slette kortet skal du stoppe navigeringen. - de = Zum Löschen der Karte bitte die Navigation unterbrechen. + de = Zum Löschen der Karte bitte Navigation unterbrechen. el = Για να διαγράψετε το χάρτη, σταματήστε την πλοήγηση. es = Para eliminar el mapa, por favor, detenga la navegación. et = Kaardi kustutamiseks palun lõpeta navigeerimine. @@ -8264,7 +8264,7 @@ ca = Determineu ràpidament la vostra ubicació aproximada mitjançant Bluetooth, WiFi o xarxa mòbil cs = Rychlé určení přibližné polohy pomocí Bluetooth, WiFi nebo mobilní sítě da = Find hurtigt din omtrentlige position via Bluetooth, WiFi eller mobilnetværk - de = Ermitteln Sie schnell Ihren ungefähren Standort über Bluetooth, WLAN oder das Mobilfunknetz + de = Bestimme schnell deinen ungefähren Standort über Bluetooth, WiFi oder das mobile Netzwerk el = Προσδιορίστε γρήγορα την κατά προσέγγιση τοποθεσία σας μέσω Bluetooth, WiFi ή δικτύου κινητής τηλεφωνίας es = Determina rápidamente tu ubicación aproximada mediante Bluetooth, WiFi o red móvil es-MX = Determine rápidamente su ubicación aproximada mediante Bluetooth, WiFi o red móvil @@ -8401,7 +8401,7 @@ ca = No hi ha prou espai cs = Nedostatek místa da = Ikke nok plads - de = Nicht genügend Speicherplatz + de = Nicht genug Speicherplatz el = Δεν υπάρχει αρκετός χώρος es = No hay suficiente espacio et = Ei ole piisavalt ruumi @@ -8489,7 +8489,7 @@ ca = Activeu els serveis de geolocalització cs = Prosím, povolte Služby určování polohy da = Aktiver venligst lokationstjenester - de = Bitte aktivieren Sie die Standortdienste + de = Aktivieren Sie bitte Ortungsdienste el = Ενεργοποιήστε τις υπηρεσίες εντοπισμού τοποθεσίας es = Por favor, active los servicios de localización et = Palun luba asukohateenused @@ -9429,7 +9429,7 @@ ca = — Les condicions de la carretera, les normes de trànsit i els senyals de circulació sempre tenen prioritat sobre les indicacions de navegació; cs = • Situace na silnici, dopravní předpisy a dopravní značení mají vždy prioritu před pokyny navigace. da = — Vejforhold, færdselsregler og skiltning skal prioriteres højere end anvisningerne fra navigationsappen; - de = – Zustand der Straßen, die Verkehrsordnung und Straßenschilder haben stets Vorrang vor Navigationsanweisungen; + de = – Straßenverhältnisse, die Verkehrsordnung und Straßenschilder haben stets Vorrang vor Navigationsanweisungen; el = — Οι οδικές συνθήκες, ο κώδικας οδικής κυκλοφορίας και οι σημάνσεις στο δρόμο έχουν πάντα μεγαλύτερη προτεραιότητα από τις συμβουλές πλοήγησης, es = — Las condiciones de la ruta, las reglas de tráfico y las señales de carretera siempre tienen prioridad sobre las sugerencias de navegación; et = - Teeolud, liikluseeskirjad ja liiklusmärgid omavad alati prioriteeti navigeerimisjuhiste üle; @@ -9780,7 +9780,7 @@ ca = Activa els serveis de geolocalització cs = Povolit služby určování polohy da = Slå lokaliseringstjenester til - de = Standortdienste aktivieren + de = Ortungsdienste aktivieren el = Ενεργοποιήστε τις υπηρεσίες εντοπισμού τοποθεσίας es = Activar servicios de ubicación et = Luba asukoha teenused @@ -9823,7 +9823,7 @@ ca = No s'han pogut trobar les coordenaes GPS actuals. Activeu els serveis de geolocalització per a calcular la ruta. cs = Aktuální souřadnice GPS se nepodařilo zjistit. Pro výpočet trasy povolte služby určování polohy. da = Det lykkedes ikke at finde de aktuelle GPS-koordinater. Slå lokaliseringstjenester til for at beregne en rute. - de = Aktuelle GPS-Koordinaten können nicht ermittelt werden. Aktivieren Sie Standortdiensten, um die Route zu berechnen. + de = Aktuelle GPS-Koordinaten können nicht ermittelt werden. Aktivieren Sie Ortungsdienste, um die Route zu berechnen. el = Δεν είναι δυνατός ο εντοπισμός των τρεχουσών συντεταγμένων GPS. Ενεργοποιήστε τις υπηρεσίες εντοπισμού τοποθεσίας για τον υπολογισμό της διαδρομής. es = No se pueden encontrar las coordenadas del GPS. Active los servicios de ubicación para calcular la ruta. et = Ei suuda praeguseid GPS koordinaate määrata. Marsruudi arvutamiseks luba asukoha teenused. @@ -9910,7 +9910,7 @@ ca = Baixeu i actualitzeu tots els mapes i informació de rutes del trajecte per a calcular-ne la ruta. cs = Stáhnout a aktualizovat všechny mapy a data tras pro výpočet trasy podél navrhované cesty. da = Download og opdatér alle kort og ruteoplysninger for at beregne en rute. - de = Laden Sie alle Karten- und Routeninformationen für den geplanten Weg herunter oder aktualisieren Sie sie, um die Route zu berechnen. + de = Laden Sie alle Karten- und Routeninformationen für den geplanten Weg herunter und aktualisieren Sie sie, um die Route zu berechnen. el = Κατεβάσετε ή ενημερώστε όλους τους χάρτες για όλο το μήκος της προβαλλόμενης διαδρομής ώστε να γίνει ο υπολογισμός της. es = Descargue y actualice toda la información de mapas y rutas junto con el trayecto proyectado para calcular la ruta. et = Marsruudi arvutamiseks lae alla ja värskenda kogu kavandatud teekonna kaart ja marsruuditeave. @@ -10171,7 +10171,7 @@ ca = Indiqueu un punt inicial més proper a una via. cs = Zvolte výchozí bod blíže k silnici. da = Angiv et startpunkt, der ligger tættere på en vej. - de = Bitte wählen Sie einen Startpunkt, der näher an einer Straße liegt. + de = Bitte wählen Sie einen Startpunkt in der Nähe einer Straße aus. el = Επιλέξτε σημείο εκκίνησης πιο κοντά σε κάποιο δρόμο. es = Seleccione un punto de inicio cercano a una carretera. et = Palun vali alguspunkt teele lähemal. @@ -10301,7 +10301,7 @@ ca = Indiqueu un punt de destinació més proper a una via. cs = Vyberte cílový bod blíže k silnici. da = Angiv en destination, der ligger tættere på en vej. - de = Bitte wählen Sie einen Zielort, der näher an einer Straße liegt. + de = Bitte wählen Sie einen Zielort in der Nähe einer Straße aus. el = Επιλέξτε ένα σημείο προορισμού πιο κοντά σε κάποιο δρόμο. es = Seleccione un punto de destino cercano a una carretera. et = Palun vali sihtkoht teele lähemal. @@ -10648,7 +10648,7 @@ ca = Baixeu mapes addicionals per a crear una ruta millor que creua els límits d'aquest mapa. cs = Stáhnout mapu a vytvořit optimálnější trasu, která překračuje hranice této mapy. da = Download kortet for at planlægge en mere optimal rute, der strækker sig ud over dette korts grænser. - de = Laden Sie zusätzliche Karten herunter, um eine bessere Route zu erstellen, die die Grenzen dieser Karte überschreitet. + de = Laden Sie die Karte herunter, um eine bessere Route zu erstellen, die den Rand dieser Karte überschreitet. el = Κατεβάστε επιπλέον χάρτες για να δημιουργηθεί μια καλύτερη διαδρομή που διασχίζει τα όρια αυτού του χάρτη. es = Descargue mapas adicionales para crear una ruta mejor que cruce los límites de este mapa. et = Lae alla täiendavad kaardid, et luua parem, selle kaardi piire ületav marsruut. @@ -12253,7 +12253,7 @@ ca = Ubicació cs = Umístění da = Sted - de = Standort + de = Position el = Τοποθεσία es = Ubicación et = Asukoht @@ -12382,7 +12382,7 @@ ca = Descriviu el problema detalladament perquè la comunitat d'OpenStreetMap pugui corregir l'error. cs = Popište prosím detailně problém, aby vám komunita OpenStreetMap mohla pomoct opravit chybu. da = Beskriv problemet i detaljer, så OpenStreetMap-fællesskabet kan løse fejlen. - de = Bitte beschreiben Sie das Problem detailliert, damit die OpenStreetMap-Community den Fehler korrigieren kann. + de = Bitte beschreiben Sie das Problem detailliert, damit die OpenStreetMap-Gemeinschaft den Fehler beheben kann. el = Περιγράψτε το πρόβλημα αναλυτικά ώστε η κοινότητα του OpenStreetMap να το διορθώσει. es = Por favor, describa el problema en detalle para que la comunidad de OpenStreetMap pueda corregir el error. et = Palun kirjelda probleemi üksikasjalikult, et OpenStreetMap kommuun saaks selle parandada. @@ -12817,7 +12817,7 @@ ca = 24/7 cs = Nonstop da = Dag og nat - de = 24/7 + de = Tag und Nacht el = 24/7 es = 24/7 et = 24/7 @@ -13210,7 +13210,7 @@ ca = Afegeix horari d'obertura cs = Přidat otevírací dobu da = Tilføj arbejdstid - de = Öffnungszeiten hinzufügen + de = Geschäftszeiten hinzufügen el = Προσθέστε ώρες λειτουργίας es = Añadir horarios de apertura et = Lisa tööaeg @@ -13341,7 +13341,7 @@ ca = Registre a OpenStreetMap cs = Registrace da = Tilmeld dig - de = Bei OpenStretMap registrieren + de = Registrieren el = Εγγραφή στο OpenStreetMap es = Registrarse en OpenStreetMap et = Registreeru @@ -13471,7 +13471,7 @@ ca = Inicia sessió cs = Přihlásit se da = Log ind - de = Bei OpenStreetMap anmelden + de = Anmelden el = Σύνδεση es = Iniciar sesión et = Logi sisse @@ -15619,7 +15619,7 @@ ca = Dades d'OpenStreetMap creades per la comunitat a partir de %@. Obteniu més informació sobre com editar i actualitzar el mapa a OpenStreetMap.org cs = Data OpenStreetMap vytvořená komunitou ke dni %@. Další informace o tom, jak upravovat a aktualizovat mapu, najdete na stránkách OpenStreetMap.org. da = Fællesskabsskabte OpenStreetMap-data fra %@. Få mere at vide om, hvordan du redigerer og opdaterer kortet på OpenStreetMap.org - de = Von der Community erstellte OpenStreetMap-Daten (Stand: %@). Erfahre mehr darüber, wie du die Karte bearbeiten und aktualisieren kannst unter OpenStreetMap.org + de = Von der Gemeinschaft erstellte OpenStreetMap-Daten (Stand: %@). Erfahre mehr darüber, wie du die Karte bearbeiten und aktualisieren kannst unter OpenStreetMap.org el = Δεδομένα OpenStreetMap που δημιουργήθηκαν από την κοινότητα στις %@. Μάθετε περισσότερα για τον τρόπο επεξεργασίας και ενημέρωσης του χάρτη στο OpenStreetMap.org es = Datos de OpenStreetMap creados por la comunidad a partir de %@. Más información sobre cómo editar y actualizar el mapa en OpenStreetMap.org es-MX = Datos de OpenStreetMap creados por la comunidad a partir de %@. Obtenga más información sobre cómo editar y actualizar el mapa en OpenStreetMap.org @@ -15665,7 +15665,7 @@ ca = Inicieu sessió perquè altres usuaris puguin veure els canvis que heu fet cs = Přihlaste se, aby ostatní uživatelé mohli vidět změny, které jste provedli. da = Log på så andre brugere kan se ændringerne som du har foretaget. - de = Melden Sie sich bei openstreetmap.org an, um Ihre Änderungen weltweit zu veröffentlichen. + de = Melden Sie sich an, damit andere Benutzer Ihre Änderungen sehen können. el = Συνδεθείτε ώστε άλλοι χρήστες να μπορούν να δουν τις αλλαγές που έχετε κάνει es = Inicie sesión en OpenStreetMap.org para que otros usuarios puedan ver los cambios que haya efectuado. et = Logi sisse OpenStreetMap.org keskkonda, et teised kasutajad näeksid Sinu tehtud muudatusi. @@ -16191,7 +16191,7 @@ ca = Envia una ota als editors d'OSM cs = Odeslat poznámku editorům OSM da = Send en besked til OSM-redaktører - de = Notiz an Freiwillige von OpenStreetMap senden + de = Notiz an OSM-Redakteure senden el = Σημείωμα στους συντάκτες του OSM es = Enviar nota a los editores de OSM es-MX = Enviar nota a los editores de OSM @@ -16369,7 +16369,7 @@ ca = Propietari cs = Operátor da = Bruger - de = Eigentümer + de = Betreiber oder Eigentümer el = Ιδιοκτήτης es = Operador et = Omanik @@ -16413,7 +16413,7 @@ ca = No heu baixat cap mapa cs = Nemáte stažené žádné mapy da = Du har ikke hentet alle kort - de = Keine Karten heruntergeladen + de = Keine Karten geladen el = Δεν έχετε κατεβάσει χάρτες es = No ha descargado ningún mapa et = Sa ei ole kaarte alla laadinud @@ -16456,7 +16456,7 @@ ca = Baixeu mapes per a cercar una ubicacio i usar la navegació sense connexió. cs = Stáhněte si mapy a hledejte cestu a její cíl, i když jste offline. da = Download kort for at finde position og navigere offline. - de = Laden Sie Karten für die Offline-Suche und Navigation herunter. + de = Laden Sie die für die Suche nach Orten erforderlichen Karten und verwenden Sie die Navigation offline. el = Κατεβάστε χάρτες για να αναζητήσετε μια τοποθεσία και να χρησιμοποιήσετε την πλοήγησης χωρίς σύνδεση. es = Descargue mapas para encontrar la ubicación y navegar sin conexión. et = Lae alla kaardid asukoha otsimiseks ja võrguühenduseta navigeerimise kasutamiseks. @@ -16499,7 +16499,7 @@ ca = Es desconeix la ubicació actual. cs = Současná poloha nezjištěna. da = Aktuel position er ukendt. - de = Aktueller Standort unbekannt + de = Standort nicht gefunden. el = Η τρέχουσα τοποθεσία είναι άγνωστη. es = La ubicación actual es desconocida. et = Hetkeasukoht on teadmata. @@ -16585,7 +16585,7 @@ ca = Els serveis de geolocalització estan desactivats cs = Určení polohy je zakázáno da = Placeringsservices er slået fra - de = Standortdienste sind deaktiviert + de = Standort-Identifizierung ist deaktiviert el = Οι υπηρεσίες εντοπισμού τοποθεσίας είναι απενεργοποιημένες es = La identificación de la ubicación está desactivada et = Asukohateenused on keelatud @@ -17455,7 +17455,7 @@ ca = La bonificació de referència rebuda per cada reserva a través d'aquest enllaç es destina al desenvolupament de Organic Maps. cs = Bonus za každou rezervaci provedenou prostřednictvím tohoto odkazu je určen na rozvoj služby Organic Maps. da = Henvisningsbonussen, der modtages for hver booking via dette link, går til udviklingen af Organic Maps. - de = Der Empfehlungsbonus, den wir für jede Buchung über diesen Link erhalten, fließt in die Entwicklung von Organic Maps. + de = Der empfehlungsbonus, den wir für jede buchung über diesen link erhalten, fließt in die entwicklung von Organic Maps. el = Το μπόνους παραπομπής που λαμβάνετε για κάθε κράτηση μέσω αυτού του συνδέσμου πηγαίνει στην ανάπτυξη του Organic Maps. es = La bonificación por recomendación recibida por cada reserva a través de este enlace se destina al desarrollo de Organic Maps. es-MX = El bono de recomendación recibido por cada reserva a través de este enlace se destina al desarrollo de Organic Maps. @@ -17544,7 +17544,7 @@ ca = Truca-hi cs = Volat da = Ring - de = Anrufen + de = Anruf el = Κλήση es = Llamar et = Helista @@ -17672,7 +17672,7 @@ ca = Notes personals cs = Vlastní poznámka da = Personlige notater - de = Persönliche Notizen + de = Anmerkung el = Προσωπικές σημειώσεις es = Notas personales et = Isiklikud märkmed @@ -17844,7 +17844,7 @@ ca = Voleu descartar tots els canvis locals? cs = Vymazat všechny místní změny? da = Nulstil alle lokale ændringer? - de = Alle lokalen Korrekturen verwerfen? + de = Alle lokalen Korrekturen verwerfen el = Απόρριψη όλων των τοπικών αλλαγών; es = ¿Restablecer todos los cambios locales? et = Loobu kõigist kohalikest muudatustest? @@ -18451,7 +18451,7 @@ ca = Afegeix un lloc a OpenStreetMap cs = Přidat místo do OpenStreetMap da = Tilføj sted til OpenStreetMap - de = Ort zu OpenStreetMap hinzufügen + de = Einen Ort zu OpenStreetMap hinzufügen el = Προσθήκη τοποθεσίας στο OpenStreetMap es = Añadir lugar a OpenStreetMap es-MX = Agregar lugar a OpenStreetMap @@ -18542,7 +18542,7 @@ ca = Assegureu-vos que no heu introduït cap dada personal. cs = Ujistěte se, že jste nezadali žádná osobní data. da = Sørg for at du ikke indtastede personlige oplysninger. - de = Stellen Sie sicher, dass Sie keine persönlichen oder privaten Daten eingegeben haben. + de = Stellen Sie sicher, dass Sie keine persönlichen Daten eingegeben haben. el = Βεβαιωθείτε ότι δεν έχετε εισάγει προσωπικά δεδομένα. es = Asegúrate de que no has introducido ningún dato personal. et = Palun kontrolli, et Sa ei sisestanud isiklikke andmeid. @@ -18585,7 +18585,7 @@ ca = Revisarem els canvis. Si tenim cap pregunta contactem amb vós via correu electrònic. cs = Redaktoři OpenStreetMap zkontrolují změny a budou vás kontaktovat, pokud budou mít nějaké dotazy. da = OpenStreetMap-redaktører vil tjekke ændringerne og kontakte dig, hvis de har spørgsmål. - de = Freiwillige von OpenStreetMap werden die Änderungen prüfen und sich bei Fragen mit Ihnen in Verbindung setzen. + de = OpenStreetMap-Redakteure werden die Änderungen prüfen und sich bei Fragen mit Ihnen in Verbindung setzen. el = Οι συντάκτες του OpenStreetMap θα ελέγξουν τις αλλαγές και θα επικοινωνήσουν μαζί σας εάν έχουν απορίες. es = Los editores de OpenStreetMap comprobarán los cambios y se pondrán en contacto con usted si tienen alguna pregunta. et = OpenStreetMap muutjad kontrollivad muudatused üle ja võtavad küsimuste korral Sinuga ühendust. @@ -19242,7 +19242,7 @@ ca = Es necessita Internet mòbil per a les notifiacions d'actualitzacions del mapa i per a mostrar informació detallada dels llocs i marcadors. cs = K zobrazení podrobných informací o místech, jako jsou fotografie, ceny a recenze je třeba mobilní internet. da = Mobile internet er nødvendigt til visning af detaljerede oplysninger om steder, såsom fotos, priser og anmeldelser. - de = Für Benachrichtigungen über Kartenaktualisierungen und das Hochladen von Änderungen ist eine mobile Internetverbindung erforderlich. + de = Es wird mobiles Internet benötigt, um über Kartenaktualisierungen informiert zu werden und genauere Informationen über Orte anzuzeigen. el = Απαιτείται πρόσβαση στο ίντερνετ μέσω δικτύου κινητής για την εμφάνιση αναλυτικών πληροφοριών για τις τοποθεσίες, όπως φωτογραφίες, τιμές και κριτικές. es = Se necesita Internet móvil para mostrar información detallada de los lugares, como fotografías, precios y reseñas. et = Mobiilne internet on vajalik kaardi värskendamise märguannete jaoks ning kohtade ja järjehoidjate üksikasjaliku teabe kuvamiseks. @@ -20761,7 +20761,7 @@ ca = Amaga-ho tot cs = Skrýt vše da = Skjul alle - de = Alle ausblenden + de = Alle verbergen el = Απόκρυψη όλων es = Ocultar todo es-MX = Ocultar todo @@ -21005,7 +21005,7 @@ ca = Oculta la pantalla cs = Skrýt obrazovku da = Skjul skærm - de = Bildschirm ausblenden + de = Bildschirm verbergen el = Απόκρυψη οθόνης es = Ocultar pantalla es-MX = Ocultar pantalla @@ -21187,7 +21187,7 @@ ca = No s'ha pogut compartir a causa d'un error de l'aplicació cs = Nelze sdílet kvůli chybě aplikace da = Ikke i stand til at dele på grund af en programfejl - de = Teilen wegen eines Anwendungsfehlers nicht möglich + de = Freigabe wegen eines Anwendungsfehlers nicht möglich el = Αδυναμία κοινοποίησης λόγω σφάλματος εφαρμογής es = No se puede compartir debido a un error de la aplicación es-MX = No se puede compartir debido a un error de la aplicación @@ -21233,7 +21233,7 @@ ca = Error al compartir cs = Chyba sdílení da = Delingsfejl - de = Fehler beim Teilen + de = Fehler bei der Freigabe el = Σφάλμα κατά την κοινοποίηση es = Error al compartir es-MX = Error al compartir @@ -21279,7 +21279,7 @@ ca = No es pot compartir una llista buida cs = Nelze sdílet s prázdným seznamem da = Kan ikke dele en tom liste - de = Eine leere Liste kann nicht geteilt werden + de = Eine leere Liste kann nicht freigegeben werden el = Δεν είναι δυνατή η κοινή χρήση μιας κενής λίστας es = No se puede compartir una lista vacía es-MX = No se puede compartir una lista vacía @@ -22460,7 +22460,7 @@ ca = Trànsit cs = Zácpy da = Trafik - de = Verkehr + de = Staus el = Κίνηση es = Tráfico es-MX = Tráfico @@ -23127,7 +23127,7 @@ ca = Privat cs = Osobní účet da = Privat - de = Privat + de = Persönlich el = Ιδιωτικό es = Privado es-MX = Privado @@ -24176,7 +24176,7 @@ ca = Definiu les vies a evitar cs = Definovat silnice, kterým se vyhnout da = Definer veje du vil undgå - de = Routenbeschränkung einstellen + de = Umwege einstellen el = Ορισμός δρόμων προς αποφυγή es = Defina las carreteras a evitar es-MX = Configurar rutas de desvío @@ -25588,7 +25588,7 @@ ca = Ordenació predeterminada cs = Třídit ve výchozím nastavení da = Sortér (std) - de = Nach Voreinstellung sortieren + de = Default Sortierung el = Ταξινόμηση κατά προεπιλογή es = Ordenar por defecto es-MX = Ordenar por defecto @@ -25632,7 +25632,7 @@ ca = Ordena per tipus cs = Třídit dle typu da = Sort (type) - de = Nach Kategorien sortieren + de = Sortierung nach Kategorien el = Ταξινόμηση ανά τύπο es = Ordenar por tipo es-MX = Ordenar por tipo @@ -25676,7 +25676,7 @@ ca = Ordena per distància cs = Třídit dle vzdálenosti da = Sort (Afs) - de = Nach Entfernung sortieren + de = Sortieren nach Entfernung el = Ταξινόμηση κατά απόσταση es = Ordenar por distancia es-MX = Ordenar por distancia @@ -25720,7 +25720,7 @@ ca = Ordena per data cs = Třídit dle data da = Sort (dato) - de = Nach Datum sortieren + de = Sortieren nach Datum el = Ταξινόμηση κατά ημερομηνία es = Ordenar por fecha es-MX = Ordenar por fecha @@ -25857,7 +25857,7 @@ ca = Per tipus cs = Podle typu da = Efter type - de = Nach Typ + de = Nach Kategorie el = Κατά τύπο es = Por tipo es-MX = Por tipo @@ -26215,7 +26215,7 @@ ca = Prop meu cs = Blízko mě da = I nærheden - de = In meiner Nähe + de = In der Nähe el = Δίπλα μου es = Cerca de mí es-MX = Cerca a mí @@ -26968,7 +26968,7 @@ ca = Llocs de culte cs = Posvátná místa da = Religiøse steder - de = Religiöse Orte + de = Religiöse Stätten el = Χώροι Λατρείας es = Lugares sagrados es-MX = Sitios religiosos @@ -27198,7 +27198,7 @@ ca = Corbes de nivell cs = Terén da = Terræn - de = Höhelinien + de = Gelände el = Υψομετρικά es = Alturas es-MX = Alturas @@ -27826,7 +27826,7 @@ ca = Aproplieu el mapa per a explorar les isolínies cs = Přiblížit pro prozkoumání izolinií da = Zoom ind for at udforske isolinjekort - de = Karte vergrößern, um Höhelinien sichtbar zu machen + de = Karte vergrößern, um Höhenlinien sichtbar zu machen el = Μεγεθύνετε για να δείτε περιγράμματα es = Amplíe el mapa para ver las isolíneas es-MX = Amplíe el mapa para ver las isolíneas @@ -28532,7 +28532,7 @@ az = Hərəkət edin be = Перамясціць ca = Mou - de = Verschieben + de = verschieben el = Μετακίνηση es = Mover et = Teisalda @@ -28724,7 +28724,7 @@ ca = Gràcies per utilitzar els nostres mapes creats per la comunitat! cs = Děkujeme, že používáte naše komunitní mapy! da = Tak, fordi du bruger vores community-byggede kort! - de = Danke, dass du unsere von der Community erstellten Karten benutzt! + de = Danke, dass du unsere von der Gemeinschaft erstellten Karten benutzt! el = Σας ευχαριστούμε που χρησιμοποιείτε τους χάρτες μας που δημιουργήθηκαν από την κοινότητα! es = ¡Gracias por utilizar nuestros mapas creados por la comunidad! et = Aitäh, et kasutate meie kogukonna koostatud kaarte! @@ -29068,7 +29068,7 @@ ca = Podeu corregir i millorar fàcilment les dades del mapa. cs = Mapová data můžete snadno opravit a vylepšit. da = Du kan nemt rette og forbedre kortdataene. - de = Sie können die Kartendaten einfach korrigieren und verbessern. + de = Sie können die Kartendaten einfach reparieren und verbessern. el = Μπορείτε εύκολα να διορθώσετε και να βελτιώσετε τα δεδομένα χάρτη. es = Puede arreglar y mejorar fácilmente los datos del mapa. et = Saate hõlpsasti kaardiandmeid parandada ja täiustada. @@ -29290,7 +29290,7 @@ ca = Continueu al telèfon cs = Pokračujte v telefonu da = Fortsæt i telefonen - de = Weiter am Telefon + de = Weiter auf Telefon el = Συνέχεια στο κινητό es = Continuar en el teléfono es-MX = Continuar en el teléfono diff --git a/drape/CMakeLists.txt b/drape/CMakeLists.txt index 9826009d41..30e8b00fc0 100644 --- a/drape/CMakeLists.txt +++ b/drape/CMakeLists.txt @@ -43,6 +43,7 @@ set(SRC gl_includes.hpp glsl_func.hpp glsl_types.hpp + glyph.hpp glyph_generator.cpp glyph_generator.hpp glyph_manager.cpp diff --git a/drape/drape_tests/glyph_mng_tests.cpp b/drape/drape_tests/glyph_mng_tests.cpp index 3e84a5b575..555921ed4c 100644 --- a/drape/drape_tests/glyph_mng_tests.cpp +++ b/drape/drape_tests/glyph_mng_tests.cpp @@ -47,10 +47,10 @@ public: void RenderGlyphs(QPaintDevice * device) { - std::vector glyphs; + std::vector glyphs; auto generateGlyph = [this, &glyphs](strings::UniChar c) { - dp::GlyphManager::Glyph g = m_mng->GetGlyph(c, dp::kDynamicGlyphSize); + dp::Glyph g = m_mng->GetGlyph(c, dp::kDynamicGlyphSize); glyphs.push_back(dp::GlyphManager::GenerateGlyph(g, m_mng->GetSdfScale())); g.m_image.Destroy(); }; diff --git a/drape/font_texture.cpp b/drape/font_texture.cpp index 3fc81cbb4f..137b1c1fc6 100644 --- a/drape/font_texture.cpp +++ b/drape/font_texture.cpp @@ -158,7 +158,7 @@ ref_ptr GlyphIndex::MapResource(GlyphKey const & key, boo newResource = true; - GlyphManager::Glyph glyph = m_mng->GetGlyph(key.GetUnicodePoint(), key.GetFixedSize()); + Glyph glyph = m_mng->GetGlyph(key.GetUnicodePoint(), key.GetFixedSize()); m2::RectU r; if (!m_packer.PackGlyph(glyph.m_image.m_width, glyph.m_image.m_height, r)) { @@ -239,7 +239,7 @@ void GlyphIndex::UploadResources(ref_ptr context, ref_ptr m_generator; using ResourceMapping = std::map; - using PendingNode = std::pair; + using PendingNode = std::pair; using PendingNodes = std::vector; ResourceMapping m_index; @@ -113,21 +111,18 @@ private: class FontTexture : public DynamicTexture { - using TBase = DynamicTexture; public: FontTexture(m2::PointU const & size, ref_ptr glyphMng, ref_ptr glyphGenerator, ref_ptr allocator) : m_index(size, glyphMng, glyphGenerator) { - TBase::DynamicTextureParams params{size, TextureFormat::Alpha, - TextureFilter::Linear, true /* m_usePixelBuffer */}; - TBase::Init(allocator, make_ref(&m_index), params); + DynamicTextureParams const params{size, TextureFormat::Alpha, TextureFilter::Linear, true /* m_usePixelBuffer */}; + Init(allocator, make_ref(&m_index), params); } - ~FontTexture() override { TBase::Reset(); } + ~FontTexture() override { Reset(); } - std::vector> FindResources(std::vector const & keys, - bool & hasNewResources) + std::vector> FindResources(std::vector const & keys, bool & hasNewResources) const { ASSERT(m_indexer != nullptr, ()); return m_indexer->MapResources(keys, hasNewResources); diff --git a/drape/glyph.hpp b/drape/glyph.hpp new file mode 100644 index 0000000000..bfd1494047 --- /dev/null +++ b/drape/glyph.hpp @@ -0,0 +1,52 @@ +#pragma once + +#include "base/assert.hpp" +#include "base/shared_buffer_manager.hpp" +#include "base/string_utils.hpp" + +namespace dp +{ +struct GlyphMetrics +{ + float m_xAdvance; + float m_yAdvance; + float m_xOffset; + float m_yOffset; + bool m_isValid; +}; + +struct GlyphImage +{ + ~GlyphImage() + { + ASSERT_NOT_EQUAL(m_data.use_count(), 1, ("Probably you forgot to call Destroy()")); + } + + void Destroy() + { + if (m_data != nullptr) + { + SharedBufferManager::instance().freeSharedBuffer(m_data->size(), m_data); + m_data = nullptr; + } + } + + uint32_t m_width; + uint32_t m_height; + + uint32_t m_bitmapRows; + int m_bitmapPitch; + + SharedBufferManager::shared_buffer_ptr_t m_data; +}; + +struct Glyph +{ + GlyphMetrics m_metrics; + GlyphImage m_image; + int m_fontIndex; + strings::UniChar m_code; + int m_fixedSize; +}; +} // namespace dp + diff --git a/drape/glyph_generator.cpp b/drape/glyph_generator.cpp index 78c00edd7f..c8d5e7bb31 100644 --- a/drape/glyph_generator.cpp +++ b/drape/glyph_generator.cpp @@ -49,8 +49,7 @@ void GlyphGenerator::UnregisterListener(ref_ptr listen m_listeners.erase(listener); } -void GlyphGenerator::GenerateGlyph(ref_ptr listener, m2::RectU const & rect, - GlyphManager::Glyph & glyph) +void GlyphGenerator::GenerateGlyph(ref_ptr listener, m2::RectU const & rect, Glyph & glyph) { GenerateGlyph(listener, GlyphGenerationData(rect, glyph)); } @@ -60,8 +59,7 @@ void GlyphGenerator::GenerateGlyph(ref_ptr listener, GlyphGenerationDa GenerateGlyphs(listener, {std::move(data)}); } -void GlyphGenerator::GenerateGlyphs(ref_ptr listener, - GlyphGenerationDataArray && generationData) +void GlyphGenerator::GenerateGlyphs(ref_ptr listener, GlyphGenerationDataArray && generationData) { std::lock_guard lock(m_mutex); if (m_listeners.find(listener) == m_listeners.end()) diff --git a/drape/glyph_generator.hpp b/drape/glyph_generator.hpp index 76943fede4..6d51e874e3 100644 --- a/drape/glyph_generator.hpp +++ b/drape/glyph_generator.hpp @@ -21,10 +21,10 @@ public: struct GlyphGenerationData { m2::RectU m_rect; - GlyphManager::Glyph m_glyph; + Glyph m_glyph; GlyphGenerationData() = default; - GlyphGenerationData(m2::RectU const & rect, GlyphManager::Glyph const & glyph) + GlyphGenerationData(m2::RectU const & rect, Glyph const & glyph) : m_rect(rect), m_glyph(glyph) {} @@ -69,7 +69,7 @@ public: void RegisterListener(ref_ptr listener); void UnregisterListener(ref_ptr listener); - void GenerateGlyph(ref_ptr listener, m2::RectU const & rect, GlyphManager::Glyph & glyph); + void GenerateGlyph(ref_ptr listener, m2::RectU const & rect, Glyph & glyph); void GenerateGlyph(ref_ptr listener, GlyphGenerationData && data); void GenerateGlyphs(ref_ptr listener, GlyphGenerationDataArray && generationData); bool IsSuspended() const; diff --git a/drape/glyph_manager.cpp b/drape/glyph_manager.cpp index 4ae16ff5f0..cf26b13f0f 100644 --- a/drape/glyph_manager.cpp +++ b/drape/glyph_manager.cpp @@ -1,6 +1,7 @@ #include "drape/glyph_manager.hpp" #include "drape/font_constants.hpp" +#include "drape/glyph.hpp" #include "platform/platform.hpp" @@ -8,22 +9,22 @@ #include "base/string_utils.hpp" #include "base/logging.hpp" +#include "base/macros.hpp" #include "base/math.hpp" #include "3party/sdf_image/sdf_image.h" #include -#include -#include #include #include #include +#include #include -#include FT_TYPES_H -#include FT_SYSTEM_H #include FT_FREETYPE_H +#include FT_SYSTEM_H #include FT_STROKER_H +#include FT_TYPES_H #undef __FTERRORS_H__ #define FT_ERRORDEF(e, v, s) {e, s}, @@ -39,27 +40,15 @@ FreetypeError constexpr g_FT_Errors[] = #include FT_ERRORS_H #ifdef DEBUG - #define FREETYPE_CHECK(x) \ +#define FREETYPE_CHECK(x) \ do \ { \ FT_Error const err = (x); \ if (err) \ - LOG(LWARNING, ("Freetype:", g_FT_Errors[err].m_code, g_FT_Errors[err].m_message)); \ - } while (false) - - #define FREETYPE_CHECK_RETURN(x, msg) \ - do \ - { \ - FT_Error const err = (x); \ - if (err) \ - { \ - LOG(LWARNING, ("Freetype", g_FT_Errors[err].m_code, g_FT_Errors[err].m_message, msg)); \ - return; \ - } \ + LOG(LERROR, ("Freetype:", g_FT_Errors[err].m_code, g_FT_Errors[err].m_message)); \ } while (false) #else - #define FREETYPE_CHECK(x) x - #define FREETYPE_CHECK_RETURN(x, msg) FREETYPE_CHECK(x) +#define FREETYPE_CHECK(x) x #endif namespace dp @@ -124,58 +113,40 @@ class Font { public: DECLARE_EXCEPTION(InvalidFontException, RootException); + DISALLOW_COPY_AND_MOVE(Font); - Font(uint32_t sdfScale, ReaderPtr fontReader, FT_Library lib) - : m_fontReader(fontReader) + Font(uint32_t sdfScale, ReaderPtr && fontReader, FT_Library lib) + : m_fontReader(std::move(fontReader)) , m_fontFace(nullptr) , m_sdfScale(sdfScale) { - m_stream.base = nullptr; + std::memset(&m_stream, 0, sizeof(m_stream)); m_stream.size = static_cast(m_fontReader.Size()); - m_stream.pos = 0; m_stream.descriptor.pointer = &m_fontReader; - m_stream.pathname.pointer = nullptr; m_stream.read = &Font::Read; m_stream.close = &Font::Close; - m_stream.memory = nullptr; - m_stream.cursor = nullptr; - m_stream.limit = nullptr; FT_Open_Args args; + std::memset(&args, 0, sizeof(args)); args.flags = FT_OPEN_STREAM; - args.memory_base = 0; - args.memory_size = 0; - args.pathname = 0; args.stream = &m_stream; - args.driver = 0; - args.num_params = 0; - args.params = 0; FT_Error const err = FT_Open_Face(lib, &args, 0, &m_fontFace); if (err || !IsValid()) MYTHROW(InvalidFontException, (g_FT_Errors[err].m_code, g_FT_Errors[err].m_message)); } - bool IsValid() const + ~Font() { - return m_fontFace != nullptr && m_fontFace->num_glyphs > 0; + ASSERT(m_fontFace, ()); + FREETYPE_CHECK(FT_Done_Face(m_fontFace)); } - void DestroyFont() - { - if (m_fontFace != nullptr) - { - FREETYPE_CHECK(FT_Done_Face(m_fontFace)); - m_fontFace = nullptr; - } - } + bool IsValid() const { return m_fontFace && m_fontFace->num_glyphs > 0; } - bool HasGlyph(strings::UniChar unicodePoint) const - { - return FT_Get_Char_Index(m_fontFace, unicodePoint) != 0; - } + bool HasGlyph(strings::UniChar unicodePoint) const { return FT_Get_Char_Index(m_fontFace, unicodePoint) != 0; } - GlyphManager::Glyph GetGlyph(strings::UniChar unicodePoint, uint32_t baseHeight, bool isSdf) const + Glyph GetGlyph(strings::UniChar unicodePoint, uint32_t baseHeight, bool isSdf) const { uint32_t const glyphHeight = isSdf ? baseHeight * m_sdfScale : baseHeight; @@ -186,7 +157,7 @@ public: FREETYPE_CHECK(FT_Get_Glyph(m_fontFace->glyph, &glyph)); FT_BBox bbox; - FT_Glyph_Get_CBox(glyph, FT_GLYPH_BBOX_PIXELS , &bbox); + FT_Glyph_Get_CBox(glyph, FT_GLYPH_BBOX_PIXELS, &bbox); FT_Bitmap const bitmap = m_fontFace->glyph->bitmap; @@ -204,44 +175,32 @@ public: imageHeight = std::round(img.GetHeight() * scale); data = SharedBufferManager::instance().reserveSharedBuffer(bitmap.rows * bitmap.pitch); - memcpy(data->data(), bitmap.buffer, data->size()); + std::memcpy(data->data(), bitmap.buffer, data->size()); } else { - int const border = kSdfBorder; - imageHeight += 2 * border; - imageWidth += 2 * border; + imageHeight += 2 * kSdfBorder; + imageWidth += 2 * kSdfBorder; data = SharedBufferManager::instance().reserveSharedBuffer(imageWidth * imageHeight); auto ptr = data->data(); - memset(ptr, 0, data->size()); + std::memset(ptr, 0, data->size()); - for (size_t row = border; row < bitmap.rows + border; ++row) + for (size_t row = kSdfBorder; row < bitmap.rows + kSdfBorder; ++row) { - size_t const dstBaseIndex = row * imageWidth + border; - size_t const srcBaseIndex = (row - border) * bitmap.pitch; + size_t const dstBaseIndex = row * imageWidth + kSdfBorder; + size_t const srcBaseIndex = (row - kSdfBorder) * bitmap.pitch; for (int column = 0; column < bitmap.pitch; ++column) ptr[dstBaseIndex + column] = bitmap.buffer[srcBaseIndex + column]; } } } - GlyphManager::Glyph result; - result.m_image = GlyphManager::GlyphImage - { - imageWidth, imageHeight, - bitmap.rows, bitmap.pitch, - data - }; + Glyph result; + result.m_image = {imageWidth, imageHeight, bitmap.rows, bitmap.pitch, data}; - result.m_metrics = GlyphManager::GlyphMetrics - { - static_cast(glyph->advance.x >> 16) * scale, - static_cast(glyph->advance.y >> 16) * scale, - static_cast(bbox.xMin) * scale, - static_cast(bbox.yMin) * scale, - true - }; + result.m_metrics = {(glyph->advance.x >> 16) * scale, (glyph->advance.y >> 16) * scale, + bbox.xMin * scale, bbox.yMin * scale, true}; result.m_code = unicodePoint; result.m_fixedSize = isSdf ? kDynamicGlyphSize : static_cast(baseHeight); @@ -257,22 +216,21 @@ public: while (gindex) charcodes.push_back(FT_Get_Next_Char(m_fontFace, charcodes.back(), &gindex)); - sort(charcodes.begin(), charcodes.end()); - charcodes.erase(unique(charcodes.begin(), charcodes.end()), charcodes.end()); + base::SortUnique(charcodes); } static unsigned long Read(FT_Stream stream, unsigned long offset, unsigned char * buffer, unsigned long count) { if (count != 0) { - ReaderPtr * reader = reinterpret_cast *>(stream->descriptor.pointer); + auto * reader = reinterpret_cast *>(stream->descriptor.pointer); reader->Read(offset, buffer, count); } return count; } - static void Close(FT_Stream){} + static void Close(FT_Stream) {} void MarkGlyphReady(strings::UniChar code, int fixedHeight) { @@ -346,6 +304,17 @@ using TUniBlockIter = TUniBlocks::const_iterator; struct GlyphManager::Impl { + DISALLOW_COPY_AND_MOVE(Impl); + + Impl() = default; + + ~Impl() + { + m_fonts.clear(); + if (m_library) + FREETYPE_CHECK(FT_Done_FreeType(m_library)); + } + FT_Library m_library; TUniBlocks m_blocks; TUniBlockIter m_lastUsedBlock; @@ -355,8 +324,11 @@ struct GlyphManager::Impl uint32_t m_sdfScale; }; -GlyphManager::GlyphManager(GlyphManager::Params const & params) - : m_impl(new Impl()) +// Destructor is defined where pimpl's destructor is already known. +GlyphManager::~GlyphManager() = default; + +GlyphManager::GlyphManager(Params const & params) + : m_impl(std::make_unique()) { m_impl->m_baseGlyphHeight = params.m_baseGlyphHeight; m_impl->m_sdfScale = params.m_sdfScale; @@ -504,15 +476,8 @@ GlyphManager::GlyphManager(GlyphManager::Params const & params) LOG_SHORT(LDEBUG, (b.m_name, "is in", params.m_fonts[ind])); } } -} -GlyphManager::~GlyphManager() -{ - for (auto const & f : m_impl->m_fonts) - f->DestroyFont(); - FREETYPE_CHECK(FT_Done_FreeType(m_impl->m_library)); - delete m_impl; } uint32_t GlyphManager::GetBaseGlyphHeight() const @@ -582,7 +547,7 @@ int GlyphManager::FindFontIndexInBlock(UnicodeBlock const & block, strings::UniC return kInvalidFont; } -GlyphManager::Glyph GlyphManager::GetGlyph(strings::UniChar unicodePoint, int fixedHeight) +Glyph GlyphManager::GetGlyph(strings::UniChar unicodePoint, int fixedHeight) { int const fontIndex = GetFontIndex(unicodePoint); if (fontIndex == kInvalidFont) @@ -596,11 +561,11 @@ GlyphManager::Glyph GlyphManager::GetGlyph(strings::UniChar unicodePoint, int fi } // static -GlyphManager::Glyph GlyphManager::GenerateGlyph(Glyph const & glyph, uint32_t sdfScale) +Glyph GlyphManager::GenerateGlyph(Glyph const & glyph, uint32_t sdfScale) { if (glyph.m_image.m_data != nullptr) { - GlyphManager::Glyph resultGlyph; + Glyph resultGlyph; resultGlyph.m_metrics = glyph.m_metrics; resultGlyph.m_fontIndex = glyph.m_fontIndex; resultGlyph.m_code = glyph.m_code; @@ -660,7 +625,7 @@ bool GlyphManager::AreGlyphsReady(strings::UniString const & str, int fixedSize) return true; } -GlyphManager::Glyph GlyphManager::GetInvalidGlyph(int fixedSize) const +Glyph const & GlyphManager::GetInvalidGlyph(int fixedSize) const { strings::UniChar constexpr kInvalidGlyphCode = 0x9; int constexpr kFontId = 0; diff --git a/drape/glyph_manager.hpp b/drape/glyph_manager.hpp index 13fe2a6197..c02b7fbe26 100644 --- a/drape/glyph_manager.hpp +++ b/drape/glyph_manager.hpp @@ -3,9 +3,12 @@ #include "base/shared_buffer_manager.hpp" #include "base/string_utils.hpp" +#include "drape/glyph.hpp" + +#include +#include #include #include -#include namespace dp { @@ -26,49 +29,6 @@ public: uint32_t m_sdfScale = 4; }; - struct GlyphMetrics - { - float m_xAdvance; - float m_yAdvance; - float m_xOffset; - float m_yOffset; - bool m_isValid; - }; - - struct GlyphImage - { - ~GlyphImage() - { - ASSERT(m_data.use_count() != 1, ("Probably you forgot to call Destroy()")); - } - - void Destroy() - { - if (m_data != nullptr) - { - SharedBufferManager::instance().freeSharedBuffer(m_data->size(), m_data); - m_data = nullptr; - } - } - - uint32_t m_width; - uint32_t m_height; - - uint32_t m_bitmapRows; - int m_bitmapPitch; - - SharedBufferManager::shared_buffer_ptr_t m_data; - }; - - struct Glyph - { - GlyphMetrics m_metrics; - GlyphImage m_image; - int m_fontIndex; - strings::UniChar m_code; - int m_fixedSize; - }; - explicit GlyphManager(Params const & params); ~GlyphManager(); @@ -77,7 +37,7 @@ public: void MarkGlyphReady(Glyph const & glyph); bool AreGlyphsReady(strings::UniString const & str, int fixedSize) const; - Glyph GetInvalidGlyph(int fixedSize) const; + Glyph const & GetInvalidGlyph(int fixedSize) const; uint32_t GetBaseGlyphHeight() const; uint32_t GetSdfScale() const; @@ -92,6 +52,6 @@ private: private: struct Impl; - Impl * m_impl; + std::unique_ptr m_impl; }; } // namespace dp diff --git a/drape_frontend/selection_shape_generator.cpp b/drape_frontend/selection_shape_generator.cpp index a25efa6f0a..ba8cef6edd 100644 --- a/drape_frontend/selection_shape_generator.cpp +++ b/drape_frontend/selection_shape_generator.cpp @@ -16,8 +16,10 @@ #include "geometry/mercator.hpp" #include "base/buffer_vector.hpp" +#include "base/macros.hpp" #include "base/math.hpp" +#include #include namespace df @@ -226,9 +228,15 @@ drape_ptr SelectionShapeGenerator::GenerateSelectionGeometry(ref_ptr { mapDataProvider.ReadFeatures([&points](FeatureType & ft) { - if (ft.GetGeomType() == feature::GeomType::Line) - assign_range(points, ft.GetPoints(scales::GetUpperScale())); - }, {feature}); + if (ft.GetGeomType() != feature::GeomType::Line || points.size() > 1) + return; + points.reserve(5); + ft.ForEachPoint([&points](m2::PointD const & pt) + { + if (points.empty() || !points.back().EqualDxDy(pt, mercator::kPointEqualityEps)) + points.push_back(pt); + }, scales::GetUpperScale()); + }, std::vector{feature}); } else { @@ -239,10 +247,11 @@ drape_ptr SelectionShapeGenerator::GenerateSelectionGeometry(ref_ptr if (points.size() < 2) return nullptr; + m2::PointD pivot = m2::PointD(0.0, 0.0); m2::RectD rect; for (auto const & p : points) rect.Add(p); - m2::PointD const pivot = rect.Center(); + pivot = rect.Center(); dp::TextureManager::ColorRegion color; mng->GetColorRegion(df::GetColorConstant(df::kSelectionColor), color); diff --git a/iphone/Maps/LocalizedStrings/de.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/de.lproj/Localizable.strings index 4a28536ee5..72a4ced75f 100644 --- a/iphone/Maps/LocalizedStrings/de.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/de.lproj/Localizable.strings @@ -24,7 +24,7 @@ "kilometres" = "Kilometer"; /* Leave Review dialog - Review button */ -"leave_a_review" = "Bewertung abgeben"; +"leave_a_review" = "Bericht abgeben"; /* Choose measurement on first launch alert - choose imperial system button */ "miles" = "Meilen"; @@ -57,10 +57,10 @@ "about_proposition_1" = "• Keine Werbung, kein Tracking, keine Datenerfassung"; /* Text in About screen */ -"about_proposition_2" = "• Minimaler Batterieverbrauch, funktioniert offline"; +"about_proposition_2" = "• Kein Datenverbrauch, funktioniert offline"; /* Text in About screen */ -"about_proposition_3" = "• Schnell, minimalistisch, von der Community entwickelt"; +"about_proposition_3" = "• Schnell, minimalistisch, von der Gemeinschaft entwickelt"; "close" = "Schließen"; @@ -70,13 +70,13 @@ "continue_download" = "Fortfahren"; /* "Add new bookmark list" dialog title */ -"add_new_set" = "Neue Liste hinzufügen"; +"add_new_set" = "Neue Gruppe hinzufügen"; /* Add Bookmark list dialog - hint when the list name is empty */ -"bookmark_set_name" = "Name der Lesezeichenliste"; +"bookmark_set_name" = "Name des Lesezeichens"; /* "Bookmark Lists" dialog title */ -"bookmark_sets" = "Lesezeichenliste"; +"bookmark_sets" = "Lesezeichenmappe"; /* Should be used in the bookmarks-only context, see bookmarks_and_tracks if tracks are also implied. */ "bookmarks" = "Lesezeichen"; @@ -308,7 +308,7 @@ "help" = "Hilfe"; /* Button in the main Help dialog */ -"faq" = "Häufige Fragen und Antworten"; +"faq" = "Fragen und Antworten"; /* Button in the main menu */ "donate" = "Spenden"; @@ -320,19 +320,19 @@ "copyright" = "Copyright"; /* Text in menu + Button in the main Help dialog */ -"report_a_bug" = "App-Fehler melden"; +"report_a_bug" = "Fehler melden"; /* Button in the About screen */ "report_incorrect_map_bug" = "Falsche Kartendaten melden oder korrigieren"; /* Button in the About screen */ -"volunteer" = "Freiwillig helfen"; +"volunteer" = "Für Freiwillige"; /* "Social media" section header in the About screen */ -"follow_us" = "Folge und kontaktiere uns:"; +"follow_us" = "Folge uns und kontaktiere uns:"; /* Alert text */ -"email_error_body" = "Der Email-Client ist noch nicht eingerichtet worden. Konfigurieren Sie ihn bitte oder nutzen Sie eine andere Möglichkeit oder kontaktieren Sie uns unter %@"; +"email_error_body" = "Der Email-Client ist noch nicht eingerichtet worden. Konfigurieren Sie ihn bitte oder nutzen Sie eine andere Möglichkeit, uns unter %@ zu erreichen."; /* Alert title */ "email_error_title" = "Fehler beim Email-Versand"; @@ -370,7 +370,7 @@ "downloader_status_failed" = "Fehlgeschlagen"; /* Displayed in a dialog that appears when a user tries to delete a map while the app is in the follow route mode */ -"downloader_delete_map_while_routing_dialog" = "Zum Löschen der Karte bitte die Navigation unterbrechen."; +"downloader_delete_map_while_routing_dialog" = "Zum Löschen der Karte bitte Navigation unterbrechen."; /* PointsInDifferentMWM */ "routing_failed_cross_mwm_building" = "Es können nur Routen erstellt werden, die vollständig in einer einzigen Karte enthalten sind."; @@ -450,7 +450,7 @@ "dialog_routing_disclaimer_title" = "Wenn Sie der Route folgen, beachten Sie bitte:"; -"dialog_routing_disclaimer_priority" = "– Zustand der Straßen, die Verkehrsordnung und Straßenschilder haben stets Vorrang vor Navigationsanweisungen;"; +"dialog_routing_disclaimer_priority" = "– Straßenverhältnisse, die Verkehrsordnung und Straßenschilder haben stets Vorrang vor Navigationsanweisungen;"; "dialog_routing_disclaimer_precision" = "– Die Karte kann ungenau sein, und die vorgeschlagene Route ist möglicherweise nicht der optimale Weg, um das Ziel zu erreichen;"; @@ -466,13 +466,13 @@ "dialog_routing_location_turn_wifi" = "Bitte prüfen Sie Ihr GPS-Signal. WLAN verbessert Ihre Standortgenauigkeit."; -"dialog_routing_location_turn_on" = "Standortdienste aktivieren"; +"dialog_routing_location_turn_on" = "Ortungsdienste aktivieren"; -"dialog_routing_location_unknown_turn_on" = "Aktuelle GPS-Koordinaten können nicht ermittelt werden. Aktivieren Sie Standortdiensten, um die Route zu berechnen."; +"dialog_routing_location_unknown_turn_on" = "Aktuelle GPS-Koordinaten können nicht ermittelt werden. Aktivieren Sie Ortungsdienste, um die Route zu berechnen."; "dialog_routing_download_files" = "Erforderliche Dateien herunterladen"; -"dialog_routing_download_and_update_all" = "Laden Sie alle Karten- und Routeninformationen für den geplanten Weg herunter oder aktualisieren Sie sie, um die Route zu berechnen."; +"dialog_routing_download_and_update_all" = "Laden Sie alle Karten- und Routeninformationen für den geplanten Weg herunter und aktualisieren Sie sie, um die Route zu berechnen."; "dialog_routing_unable_locate_route" = "Route kann nicht ermittelt werden"; @@ -482,13 +482,13 @@ "dialog_routing_start_not_determined" = "Route wurde nicht erstellt. Startpunkt kann nicht gefunden werden."; -"dialog_routing_select_closer_start" = "Bitte wählen Sie einen Startpunkt, der näher an einer Straße liegt."; +"dialog_routing_select_closer_start" = "Bitte wählen Sie einen Startpunkt in der Nähe einer Straße aus."; "dialog_routing_change_end" = "Ziel anpassen"; "dialog_routing_end_not_determined" = "Route wurde nicht erstellt. Ziel kann nicht gefunden werden."; -"dialog_routing_select_closer_end" = "Bitte wählen Sie einen Zielort, der näher an einer Straße liegt."; +"dialog_routing_select_closer_end" = "Bitte wählen Sie einen Zielort in der Nähe einer Straße aus."; "dialog_routing_change_intermediate" = "Zwischenstopp kann nicht gefunden werden."; @@ -504,7 +504,7 @@ "dialog_routing_download_and_build_cross_route" = "Möchten Sie die Karte herunterladen und eine bessere Route erstellen, die mehr als eine Karte umfasst?"; -"dialog_routing_download_cross_route" = "Laden Sie zusätzliche Karten herunter, um eine bessere Route zu erstellen, die die Grenzen dieser Karte überschreitet."; +"dialog_routing_download_cross_route" = "Laden Sie die Karte herunter, um eine bessere Route zu erstellen, die den Rand dieser Karte überschreitet."; /********** Strings for downloading map from search **********/ @@ -579,7 +579,7 @@ "editor_example_values" = "Beispiele"; -"editor_add_select_location" = "Standort"; +"editor_add_select_location" = "Position"; "editor_done_dialog_1" = "Sie haben die Weltkarte geändert. Behalten Sie das nicht für sich! Erzählen Sie Ihren Freunden davon und bearbeiten Sie sie zusammen."; @@ -595,7 +595,7 @@ /* Place Page opening hours text */ "daily" = "Täglich"; -"twentyfour_seven" = "24/7"; +"twentyfour_seven" = "Tag und Nacht"; "day_off_today" = "Heute geschlossen"; @@ -617,17 +617,17 @@ "closed" = "Geschlossen"; -"add_opening_hours" = "Öffnungszeiten hinzufügen"; +"add_opening_hours" = "Geschäftszeiten hinzufügen"; "no_osm_account" = "Kein Konto bei OpenStreetMap?"; -"register_at_openstreetmap" = "Bei OpenStretMap registrieren"; +"register_at_openstreetmap" = "Registrieren"; "password_8_chars_min" = "Passwort (mindestens 8 Zeichen)"; "invalid_username_or_password" = "Ungültiger Benutzername oder Passwort."; -"login" = "Bei OpenStreetMap anmelden"; +"login" = "Anmelden"; "login_osm" = "Melden Sie sich bei OpenStreetMap an"; @@ -714,9 +714,9 @@ "message_invalid_feature_position" = "Ein Objekt kann hier nicht positioniert werden"; /* Text in About and OSM Login screens. First %@ is replaced by a local, human readable date. */ -"osm_presentation" = "Von der Community erstellte OpenStreetMap-Daten (Stand: %@). Erfahre mehr darüber, wie du die Karte bearbeiten und aktualisieren kannst unter OpenStreetMap.org"; +"osm_presentation" = "Von der Gemeinschaft erstellte OpenStreetMap-Daten (Stand: %@). Erfahre mehr darüber, wie du die Karte bearbeiten und aktualisieren kannst unter OpenStreetMap.org"; -"login_to_make_edits_visible" = "Melden Sie sich bei openstreetmap.org an, um Ihre Änderungen weltweit zu veröffentlichen."; +"login_to_make_edits_visible" = "Melden Sie sich an, damit andere Benutzer Ihre Änderungen sehen können."; /* Error dialog no space */ "migration_no_space_message" = "Zum Herunterladen benötigen Sie mehr Platz. Bitte löschen Sie unnötige Daten."; @@ -744,7 +744,7 @@ /* Place Page title for long tap */ "core_placepage_unknown_place" = "Unbekannter Ort"; -"editor_other_info" = "Notiz an Freiwillige von OpenStreetMap senden"; +"editor_other_info" = "Notiz an OSM-Redakteure senden"; "editor_detailed_description_hint" = "Ausführlicher Kommentar"; @@ -752,17 +752,17 @@ "editor_more_about_osm" = "Mehr Informationen über OpenStreetMap"; -"editor_operator" = "Eigentümer"; +"editor_operator" = "Betreiber oder Eigentümer"; -"downloader_no_downloaded_maps_title" = "Keine Karten heruntergeladen"; +"downloader_no_downloaded_maps_title" = "Keine Karten geladen"; -"downloader_no_downloaded_maps_message" = "Laden Sie Karten für die Offline-Suche und Navigation herunter."; +"downloader_no_downloaded_maps_message" = "Laden Sie die für die Suche nach Orten erforderlichen Karten und verwenden Sie die Navigation offline."; -"current_location_unknown_error_title" = "Aktueller Standort unbekannt"; +"current_location_unknown_error_title" = "Standort nicht gefunden."; "current_location_unknown_error_message" = "Bei der Standortsuche ist ein unbekannter Fehler aufgetreten. Prüfen Sie die Funktionstüchtigkeit Ihres Geräts und versuchen Sie es etwas später erneut."; -"location_services_disabled_header" = "Standortdienste sind deaktiviert"; +"location_services_disabled_header" = "Standort-Identifizierung ist deaktiviert"; "location_services_disabled_message" = "Aktivieren Sie den Zugang zur Positionsbestimmung in den Geräteeinstellungen"; @@ -810,18 +810,18 @@ "more_on_kayak" = "Fotos, bewertungen, buchung"; /* An explanation dialog shown when clicking on more_on_kayak link. */ -"dialog_kayak_disclaimer" = "Der Empfehlungsbonus, den wir für jede Buchung über diesen Link erhalten, fließt in die Entwicklung von Organic Maps."; +"dialog_kayak_disclaimer" = "Der empfehlungsbonus, den wir für jede buchung über diesen link erhalten, fließt in die entwicklung von Organic Maps."; /* A confirmation button text in the explanation dialog that opens hotel details page on Kayak website. */ "dialog_kayak_button" = "Einzelheiten bei Kayak"; -"placepage_call_button" = "Anrufen"; +"placepage_call_button" = "Anruf"; "placepage_edit_bookmark_button" = "Lesezeichen bearbeiten"; "placepage_bookmark_name_hint" = "Name des Lesezeichens"; -"placepage_personal_notes_hint" = "Persönliche Notizen"; +"placepage_personal_notes_hint" = "Anmerkung"; "placepage_delete_bookmark_button" = "Lesezeichen löschen"; @@ -829,7 +829,7 @@ "editor_comment_hint" = "Kommentar…"; -"editor_reset_edits_message" = "Alle lokalen Korrekturen verwerfen?"; +"editor_reset_edits_message" = "Alle lokalen Korrekturen verwerfen"; "editor_reset_edits_button" = "Verwerfen"; @@ -850,15 +850,15 @@ "refresh" = "Aktualisieren"; -"placepage_add_place_button" = "Ort zu OpenStreetMap hinzufügen"; +"placepage_add_place_button" = "Einen Ort zu OpenStreetMap hinzufügen"; /* Displayed when saving some edits to the map to warn against publishing personal data */ "editor_share_to_all_dialog_title" = "An alle Benutzer senden?"; /* Dialog before publishing the modifications to the public map. */ -"editor_share_to_all_dialog_message_1" = "Stellen Sie sicher, dass Sie keine persönlichen oder privaten Daten eingegeben haben."; +"editor_share_to_all_dialog_message_1" = "Stellen Sie sicher, dass Sie keine persönlichen Daten eingegeben haben."; -"editor_share_to_all_dialog_message_2" = "Freiwillige von OpenStreetMap werden die Änderungen prüfen und sich bei Fragen mit Ihnen in Verbindung setzen."; +"editor_share_to_all_dialog_message_2" = "OpenStreetMap-Redakteure werden die Änderungen prüfen und sich bei Fragen mit Ihnen in Verbindung setzen."; "navigation_stop_button" = "Stopp"; @@ -894,7 +894,7 @@ "mobile_data" = "Mobiles Internet"; /* NOTE to translators: please synchronize your translation with the English one. */ -"mobile_data_description" = "Für Benachrichtigungen über Kartenaktualisierungen und das Hochladen von Änderungen ist eine mobile Internetverbindung erforderlich."; +"mobile_data_description" = "Es wird mobiles Internet benötigt, um über Kartenaktualisierungen informiert zu werden und genauere Informationen über Orte anzuzeigen."; "mobile_data_option_never" = "Nie verwenden"; @@ -946,13 +946,13 @@ "bookmark_lists" = "Listen"; /* Do not display all bookmark lists on the map */ -"bookmark_lists_hide_all" = "Alle ausblenden"; +"bookmark_lists_hide_all" = "Alle verbergen"; "bookmark_lists_show_all" = "Alle anzeigen"; "bookmarks_create_new_group" = "Neue Liste erstellen"; -"downloader_hide_screen" = "Bildschirm ausblenden"; +"downloader_hide_screen" = "Bildschirm verbergen"; "downloader_percent" = "%@ (%@ von %@)"; @@ -960,11 +960,11 @@ "downloader_applying" = "%@ anwenden…"; -"bookmarks_error_message_share_general" = "Teilen wegen eines Anwendungsfehlers nicht möglich"; +"bookmarks_error_message_share_general" = "Freigabe wegen eines Anwendungsfehlers nicht möglich"; -"bookmarks_error_title_share_empty" = "Fehler beim Teilen"; +"bookmarks_error_title_share_empty" = "Fehler bei der Freigabe"; -"bookmarks_error_message_share_empty" = "Eine leere Liste kann nicht geteilt werden"; +"bookmarks_error_message_share_empty" = "Eine leere Liste kann nicht freigegeben werden"; "bookmarks_error_message_empty_list_name" = "Bitte geben Sie den Listennamen ein"; @@ -992,7 +992,7 @@ "terms_of_use" = "Nutzungsbedingungen"; -"button_layer_traffic" = "Verkehr"; +"button_layer_traffic" = "Staus"; "button_layer_subway" = "U-Bahn"; @@ -1056,7 +1056,7 @@ "unable_to_calc_alert_subtitle" = "Leider konnten wir keine Route mit den gewählten Optionen erstellen. Ändern Sie die Einstellungen und versuchen Sie es erneut"; -"define_to_avoid_btn" = "Routenbeschränkung einstellen"; +"define_to_avoid_btn" = "Umwege einstellen"; "change_driving_options_btn" = "Routenbeschränkungen aktiv"; @@ -1127,13 +1127,13 @@ "sort" = "Sortieren…"; /* iOS */ -"sort_default" = "Nach Voreinstellung sortieren"; +"sort_default" = "Default Sortierung"; -"sort_type" = "Nach Kategorien sortieren"; +"sort_type" = "Sortierung nach Kategorien"; -"sort_distance" = "Nach Entfernung sortieren"; +"sort_distance" = "Sortieren nach Entfernung"; -"sort_date" = "Nach Datum sortieren"; +"sort_date" = "Sortieren nach Datum"; "sort_name" = "Nach Name sortieren"; @@ -1145,7 +1145,7 @@ "moreyear_ago_sorttype" = "Vor über einem Jahr"; -"near_me_sorttype" = "In meiner Nähe"; +"near_me_sorttype" = "In der Nähe"; "others_sorttype" = "Sonstiges"; @@ -1182,7 +1182,7 @@ "search_in_the_list" = "In der Liste suchen"; -"religious_places" = "Religiöse Orte"; +"religious_places" = "Religiöse Stätten"; "transit_not_found" = "Die U-Bahn-Navigation ist in dieser Region noch nicht verfügbar"; @@ -1190,7 +1190,7 @@ "dialog_pedestrian_route_is_long_message" = "Wählen Sie einen zu einer U-Bahn-Station nähergelegenen Start- oder Endpunkt"; -"button_layer_isolines" = "Höhelinien"; +"button_layer_isolines" = "Gelände"; "isolines_activation_error_dialog" = "Um die Topographieebene nutzen zu können, aktualisieren Sie die Karte des betreffenden Gebiets oder laden Sie diese herunter"; @@ -1216,7 +1216,7 @@ "elevation_profile_time" = "Dauer:"; -"isolines_toast_zooms_1_10" = "Karte vergrößern, um Höhelinien sichtbar zu machen"; +"isolines_toast_zooms_1_10" = "Karte vergrößern, um Höhenlinien sichtbar zu machen"; "downloader_updating_ios" = "Aktualisierung"; @@ -1241,7 +1241,7 @@ "placepage_track_name_hint" = "Name des Tracks"; /* move track or bookmark from the list button text */ -"move" = "Verschieben"; +"move" = "verschieben"; /* edit track screen title */ "track_title" = "Track"; diff --git a/search/search_integration_tests/processor_test.cpp b/search/search_integration_tests/processor_test.cpp index 8f8a268209..ee7be1f336 100644 --- a/search/search_integration_tests/processor_test.cpp +++ b/search/search_integration_tests/processor_test.cpp @@ -3641,30 +3641,4 @@ UNIT_CLASS_TEST(ProcessorTest, NonDrawable_Categories) } } -UNIT_CLASS_TEST(ProcessorTest, NonSearchable_Categories) -{ - TestPOI yesPool({0, 0}, {}, {}); - yesPool.SetTypes({{"leisure", "swimming_pool"}}); - - TestPOI noPool({0.1, 0.1}, {}, {}); - noPool.SetTypes({{"leisure", "swimming_pool", "private"}}); - - auto wonderlandId = BuildCountry("Wonderland", [&](TestMwmBuilder & builder) - { - builder.Add(yesPool); - builder.Add(noPool); - }); - - SetViewport(m2::RectD(-0.5, -0.5, 0.5, 0.5)); - - { - Rules const rules = {ExactMatch(wonderlandId, yesPool)}; - TEST(ResultsMatch("swimming pool", rules), ()); - } - { - Rules const rules = {ExactMatch(wonderlandId, yesPool)}; - TEST(ResultsMatch("бассейн", rules, "ru"), ()); - } -} - } // namespace processor_test