diff --git a/OsmAnd-telegram/res/layout/activity_main.xml b/OsmAnd-telegram/res/layout/activity_main.xml index 0bd3315e7b..592e6b21eb 100644 --- a/OsmAnd-telegram/res/layout/activity_main.xml +++ b/OsmAnd-telegram/res/layout/activity_main.xml @@ -38,6 +38,7 @@ android:id="@+id/bottom_navigation" android:layout_width="match_parent" android:layout_height="wrap_content" + android:background="?attr/card_bg_color" android:visibility="visible" app:itemBackground="?attr/card_bg_color" app:menu="@menu/bottom_navigation_menu"/> diff --git a/OsmAnd-telegram/res/layout/fragment_live_now_tab.xml b/OsmAnd-telegram/res/layout/fragment_live_now_tab.xml index e710da6be8..cfc7d9daf1 100644 --- a/OsmAnd-telegram/res/layout/fragment_live_now_tab.xml +++ b/OsmAnd-telegram/res/layout/fragment_live_now_tab.xml @@ -5,10 +5,10 @@ android:layout_height="match_parent" android:orientation="vertical"> - + android:scrollbars="vertical"/> diff --git a/OsmAnd-telegram/src/net/osmand/telegram/helpers/TelegramHelper.kt b/OsmAnd-telegram/src/net/osmand/telegram/helpers/TelegramHelper.kt index 9168306e6f..7945139a9c 100644 --- a/OsmAnd-telegram/src/net/osmand/telegram/helpers/TelegramHelper.kt +++ b/OsmAnd-telegram/src/net/osmand/telegram/helpers/TelegramHelper.kt @@ -128,6 +128,20 @@ class TelegramHelper private constructor() { return usersLiveMessages.values.toList() } + fun getMessagesByChatIds(): Map> { + val res = mutableMapOf>() + for (message in usersLiveMessages.values) { + var messages = res[message.chatId] + if (messages != null) { + messages.add(message) + } else { + messages = mutableListOf(message) + res[message.chatId] = messages + } + } + return res + } + private fun updateChatTitles() { chatTitles.clear() for (chatEntry in chats.entries) { diff --git a/OsmAnd-telegram/src/net/osmand/telegram/ui/LiveNowTabFragment.kt b/OsmAnd-telegram/src/net/osmand/telegram/ui/LiveNowTabFragment.kt index a07c8b576e..b11b9b8a9b 100644 --- a/OsmAnd-telegram/src/net/osmand/telegram/ui/LiveNowTabFragment.kt +++ b/OsmAnd-telegram/src/net/osmand/telegram/ui/LiveNowTabFragment.kt @@ -2,15 +2,131 @@ package net.osmand.telegram.ui import android.os.Bundle import android.support.v4.app.Fragment +import android.support.v7.widget.LinearLayoutManager +import android.support.v7.widget.RecyclerView import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.ImageView +import android.widget.Switch +import android.widget.TextView import net.osmand.telegram.R +import net.osmand.telegram.TelegramApplication +import net.osmand.telegram.helpers.TelegramHelper.TelegramAuthorizationState +import net.osmand.telegram.helpers.TelegramHelper.TelegramListener +import org.drinkless.td.libcore.telegram.TdApi -class LiveNowTabFragment : Fragment() { +class LiveNowTabFragment : Fragment(), TelegramListener { + + companion object { + private const val CHAT_VIEW_TYPE = 0 + private const val CONTACT_VIEW_TYPE = 1 + } + + private val app: TelegramApplication + get() = activity?.application as TelegramApplication + + private val telegramHelper get() = app.telegramHelper + + private val adapter = LiveNowListAdapter() override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val mainView = inflater.inflate(R.layout.fragment_live_now_tab, container, false) + mainView.findViewById(R.id.recycler_view).apply { + layoutManager = LinearLayoutManager(context) + adapter = this@LiveNowTabFragment.adapter + } return mainView } + + override fun onTelegramStatusChanged(prevTelegramAuthorizationState: TelegramAuthorizationState, + newTelegramAuthorizationState: TelegramAuthorizationState) { + // TODO: update list + } + + override fun onTelegramChatsRead() { + updateList() + } + + override fun onTelegramChatsChanged() { + updateList() + } + + override fun onTelegramChatChanged(chat: TdApi.Chat) { + updateList() + } + + override fun onTelegramUserChanged(user: TdApi.User) { + updateList() + } + + override fun onTelegramError(code: Int, message: String) { + } + + override fun onSendLiveLocationError(code: Int, message: String) { + } + + private fun updateList() { + val res = mutableListOf() + for ((id, messages) in telegramHelper.getMessagesByChatIds()) { + telegramHelper.getChat(id)?.let { chat -> + res.add(chat) + if (chat.type !is TdApi.ChatTypePrivate && chat.type !is TdApi.ChatTypeSecret && messages.size > 1) { + messages.forEach { message -> + telegramHelper.getUser(message.senderUserId)?.let { user -> + res.add(user) + } + } + } + } + } + adapter.items = res + } + + inner class LiveNowListAdapter : RecyclerView.Adapter() { + + var items: List = emptyList() + set(value) { + field = value + notifyDataSetChanged() + } + + override fun getItemViewType(position: Int): Int { + return when (items[position]) { + is TdApi.Chat -> CHAT_VIEW_TYPE + else -> CONTACT_VIEW_TYPE + } + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { + val inflater = LayoutInflater.from(parent.context) + return when (viewType) { + CHAT_VIEW_TYPE -> ChatViewHolder(inflater.inflate(R.layout.live_now_chat_card, parent, false)) + else -> ContactViewHolder(inflater.inflate(R.layout.live_now_contact_item, parent, false)) + } + } + + override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { + } + + override fun getItemCount() = items.size + + inner class ContactViewHolder(val view: View) : RecyclerView.ViewHolder(view) { + val icon: ImageView? = view.findViewById(R.id.icon) + val title: TextView? = view.findViewById(R.id.title) + val description: TextView? = view.findViewById(R.id.description) + val bottomShadow: View? = view.findViewById(R.id.bottom_shadow) + } + + inner class ChatViewHolder(val view: View) : RecyclerView.ViewHolder(view) { + val icon: ImageView? = view.findViewById(R.id.icon) + val title: TextView? = view.findViewById(R.id.title) + val description: TextView? = view.findViewById(R.id.description) + val imageButton: ImageView? = view.findViewById(R.id.image_button) + val showOnMapRow: View? = view.findViewById(R.id.show_on_map_row) + val showOnMapSwitch: Switch? = view.findViewById(R.id.show_on_map_switch) + val bottomDivider: View? = view.findViewById(R.id.bottom_divider) + val bottomShadow: View? = view.findViewById(R.id.bottom_shadow) + } + } } diff --git a/OsmAnd-telegram/src/net/osmand/telegram/ui/MainActivity.kt b/OsmAnd-telegram/src/net/osmand/telegram/ui/MainActivity.kt index f4e3e367fc..0a69c1bd43 100644 --- a/OsmAnd-telegram/src/net/osmand/telegram/ui/MainActivity.kt +++ b/OsmAnd-telegram/src/net/osmand/telegram/ui/MainActivity.kt @@ -9,10 +9,7 @@ import android.graphics.drawable.Drawable import android.net.Uri import android.os.Bundle import android.support.design.widget.BottomNavigationView -import android.support.v4.app.ActivityCompat -import android.support.v4.app.DialogFragment -import android.support.v4.app.FragmentManager -import android.support.v4.app.FragmentPagerAdapter +import android.support.v4.app.* import android.support.v7.app.AlertDialog import android.support.v7.app.AppCompatActivity import android.support.v7.widget.* @@ -27,6 +24,7 @@ import net.osmand.telegram.ui.LoginDialogFragment.LoginDialogType import net.osmand.telegram.ui.views.LockableViewPager import net.osmand.telegram.utils.AndroidUtils import org.drinkless.td.libcore.telegram.TdApi +import java.lang.ref.WeakReference class MainActivity : AppCompatActivity(), TelegramListener { @@ -58,6 +56,8 @@ class MainActivity : AppCompatActivity(), TelegramListener { private val osmandHelper get() = app.osmandHelper private val settings get() = app.settings + private val listeners: MutableList> = mutableListOf() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) @@ -90,6 +90,9 @@ class MainActivity : AppCompatActivity(), TelegramListener { R.id.action_live_now -> pos = LIVE_NOW_TAB_POS } if (pos != -1 && pos != viewPager.currentItem) { + // FIXME + chatsView.visibility = if (pos == MY_LOCATION_TAB_POS) View.VISIBLE else View.GONE + viewPager.visibility = if (pos == LIVE_NOW_TAB_POS) View.VISIBLE else View.GONE viewPager.currentItem = pos return@setOnNavigationItemSelectedListener true } @@ -123,6 +126,12 @@ class MainActivity : AppCompatActivity(), TelegramListener { } } + override fun onAttachFragment(fragment: Fragment?) { + if (fragment is TelegramListener) { + listeners.add(WeakReference(fragment)) + } + } + override fun onResume() { super.onResume() paused = false @@ -179,6 +188,9 @@ class MainActivity : AppCompatActivity(), TelegramListener { } else -> Unit } + listeners.forEach { + it.get()?.onTelegramStatusChanged(prevTelegramAuthorizationState, newTelegramAuthorizationState) + } } } @@ -186,18 +198,21 @@ class MainActivity : AppCompatActivity(), TelegramListener { runOnUi { removeNonexistingChatsFromSettings() updateChatsList() + listeners.forEach { it.get()?.onTelegramChatsRead() } } } override fun onTelegramChatsChanged() { runOnUi { updateChatsList() + listeners.forEach { it.get()?.onTelegramChatsChanged() } } } override fun onTelegramChatChanged(chat: TdApi.Chat) { runOnUi { updateChat(chat) + listeners.forEach { it.get()?.onTelegramChatChanged(chat) } } } @@ -206,17 +221,24 @@ class MainActivity : AppCompatActivity(), TelegramListener { if (message != null) { app.showLocationHelper.showLocationOnMap(message) } + runOnUi { + listeners.forEach { it.get()?.onTelegramUserChanged(user) } + } } override fun onTelegramError(code: Int, message: String) { runOnUi { Toast.makeText(this@MainActivity, "$code - $message", Toast.LENGTH_LONG).show() + listeners.forEach { it.get()?.onTelegramError(code, message) } } } override fun onSendLiveLocationError(code: Int, message: String) { log.error("Send live location error: $code - $message") app.isInternetConnectionAvailable(true) + runOnUi { + listeners.forEach { it.get()?.onSendLiveLocationError(code, message) } + } } private fun removeNonexistingChatsFromSettings() { diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index 975530f346..2db37a023f 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -1,4 +1,5 @@ - + + Korrigierte Distanz Wikipedia-Artikel zur Umgebung @@ -1255,7 +1256,7 @@ Proportionaler Speicher %4$s MB (Android Limit %5$s MB, Dalvik %6$s MB).Alle löschen Schifffahrtsobjekte Wählen Sie die Profile aus, die in der App sichtbar sein sollen. - App-profile + App-Profile Autobahnen bevorzugen Autobahnen bevorzugen @@ -3061,4 +3062,8 @@ Abgedeckte Fläche: %1$s x %2$s Holen Sie sich OsmAnd Live, um alle Funktionen freizuschalten: Tägliche Karten-Updates mit unbegrenzten Downloads, alle kostenpflichtigen und kostenlosen Plugins, Wikipedia, Wikivoyage und vieles mehr. Aktionen bearbeiten Bitte senden Sie Screenshots dieser Meldung an support@osmand.net - \ No newline at end of file + Punkt bearbeiten + Punkt hinzufügen + Als Track speichern + Sie haben %1$s Punkte hinzugefügt. Geben Sie den Namen der Datei ein und klicken Sie auf Speichern. + diff --git a/OsmAnd/res/values-el/strings.xml b/OsmAnd/res/values-el/strings.xml index a817f19866..0b867b15a9 100644 --- a/OsmAnd/res/values-el/strings.xml +++ b/OsmAnd/res/values-el/strings.xml @@ -1,4 +1,5 @@ - + + Προσθήκη Ετικέτας Λειτουργία για προχωρημένους… Στάθμευση @@ -923,7 +924,7 @@ Επεξεργασία ΣΕ Δημιουργία ΣΕ Ο κόμβος δεν μπορεί να βρεθεί ή η υποδομή αποτελείται από πολλούς κόμβους, που δεν υποστηρίζεται ακόμα. - Διαγραφή {0} (εισαγωγή σχολίου)? + Διαγραφή {0} (σχολίου); Διαγραφή ΣΕ Το ΣΕ διαγράφτηκε προσθήκη @@ -1872,7 +1873,7 @@ Προαιρετικό όνομα σημείου Κοντινές διαδρομές Με - Εισάγετε το όνομα του αρχείου. + Πληκτρολογήστε το όνομα του αρχείου. Σφάλμα εισαγωγής χάρτη Ο χάρτης εισήχθη Κάντε αυτό το σημείο εκκίνησης @@ -3054,4 +3055,8 @@ Εγγραφείτε στο OsmAnd Live για να ξεκλειδώσετε όλα τα χαρακτηριστικά: Ημερήσιες ενημερώσεις χαρτών με απεριόριστες λήψεις, όλα πληρωμένα και χωρίς πρόσθετα, βικιπαίδεια, βικιταξίδια και πολλά άλλα. Επεξεργασία ενεργειών Παρακαλούμε, στείλτε στιγμιότυπο αυτής της ειδοποίησης στο support@osmand.net - \ No newline at end of file + Επεξεργασία σημείου + Προσθήκη σημείου + Αποθήκευση ως ίχνος + Προσθέσατε %1$s σημεία. Πληκτρολογήστε ένα όνομα αρχείου και πατήστε \"Αποθήκευση\". + diff --git a/OsmAnd/res/values-eo/phrases.xml b/OsmAnd/res/values-eo/phrases.xml index 0c150a6b90..5bee902aa7 100644 --- a/OsmAnd/res/values-eo/phrases.xml +++ b/OsmAnd/res/values-eo/phrases.xml @@ -2313,7 +2313,7 @@ Materialo: plasto Materialo: sabloŝtono Materialo: granito - Materialo: metalo k ligno + Materialo: metalo, ligno Materialo: vitro Materialo: bronzo Materialo: tero @@ -3386,9 +3386,9 @@ Servo Motorcikla speco -vendo - vendo: ne - vendo, brokanto +Vendo + Vendo: ne + Vendo, brokanto brokanto luo Luo: ne diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index 46b32ef8f1..45822dd372 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -1,4 +1,5 @@ -Supra breto + +Supra breto Rekalkuli kurson Donacoj Nombro da ricevontoj @@ -1093,7 +1094,7 @@ Lon: %2$s Sonaj notoj partoj Nivelkurboj - Loko por la noto ne estas ankoraŭ precizigita. \"Uzi lokon…\" por asigni noton al la difina loko. + Loko por la noto ne estas ankoraŭ precizigita. “Uzi lokon…” por asigni noton al la difina loko. Aliaj mapoj Nur vojoj Nivelkurboj @@ -1934,7 +1935,7 @@ Proporcia memoro %4$s MB (limito de Android %5$s MB, Dalvik %6$s MB). Redakti interesejon Krei interesejon Ne povas trovi nodon aŭ servo konsistas el kelkaj nodoj, tio ĉi ne estas ankoraŭ subtenata. - Ĉu forigi {0} (entajpu komenton)? + Ĉu forigi {0} (komento)? Forigi interesejon Forigis interesejon aldoni @@ -2807,7 +2808,7 @@ Indikas lokon: %1$s x %2$s" Agordi kiel komenc-punkton Eraro dum enporti mapon Enportis mapon - Entajpu nomon de dosiero. + Entajpu dosiernomon. Entajpu longitudon Entajpu latitudon Entajpu latitudon kaj longitudon @@ -2932,4 +2933,8 @@ Indikas lokon: %1$s x %2$s" GPX-dosieroj Redakti agojn Bonvolu sendi ekrankopion de tiu ĉi averto al support@osmand.net - \ No newline at end of file + Redakti punkton + Aldoni punkton + Konservi kiel spuron + Vi aldonis %1$s punktojn. Entajpu dosiernomon kaj frapetu “konservi”. + diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index 38b56383d4..a84fef80b5 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -1636,7 +1636,7 @@ Lon %2$s Editar PDI Crear PDI No se encontró el nodo, o el PDI se compone de varios nodos, lo cuál todavía no está soportado. - ¿Borrar {0} (añadir comentario)? + ¿Borrar {0} (comentario)? Borrar PDI PDI borrado añadir @@ -2846,7 +2846,7 @@ Lon %2$s Reemplazar punto de inicio Error de importación del mapa Mapa importado - Ingresar nombre del archivo. + Escribe el nombre del archivo. Rutas a menos de A menos de GG°MM′SS″ @@ -2973,5 +2973,5 @@ Lon %2$s Editar punto Añadir punto Guardar como traza - Añadiste %1$s puntos. Ingresa el nombre del archivo y pulsa en Guardar. + Añadiste %1$s puntos. Escribe un nombre de archivo y pulsa en «Guardar». diff --git a/OsmAnd/res/values-es-rUS/strings.xml b/OsmAnd/res/values-es-rUS/strings.xml index c03b764cee..da26dc9cb3 100644 --- a/OsmAnd/res/values-es-rUS/strings.xml +++ b/OsmAnd/res/values-es-rUS/strings.xml @@ -1636,7 +1636,7 @@ Lon %2$s Editar PDI Crear PDI No se encontró el nodo, o el PDI se compone de varios nodos, lo cuál todavía no está soportado. - ¿Borrar {0} (añadir comentario)? + ¿Borrar {0} (comentario)? Borrar PDI PDI borrado añadir @@ -2846,7 +2846,7 @@ Lon %2$s Reemplazar punto de inicio Error de importación del mapa Mapa importado - Ingresar nombre del archivo. + Escribe el nombre del archivo. Rutas a menos de A menos de Distancia: más lejos primero @@ -2973,5 +2973,5 @@ Lon %2$s Editar punto Añadir punto Guardar como traza - Añadiste %1$s puntos. Ingresa el nombre del archivo y pulsa en Guardar. + Añadiste %1$s puntos. Escribe un nombre de archivo y pulsa en «Guardar». diff --git a/OsmAnd/res/values-es/strings.xml b/OsmAnd/res/values-es/strings.xml index a27ec39f13..58e688ea55 100644 --- a/OsmAnd/res/values-es/strings.xml +++ b/OsmAnd/res/values-es/strings.xml @@ -1,4 +1,5 @@ - + + Configurar pantalla Carriles @@ -51,7 +52,7 @@ Voces TTS (sintetizadas, preferido) Wikipedia (sin conexión) Definido por el usuario - Ya existe un archivo con los favoritos exportados previamente. ¿Quiere sustituirlo? + Ya existe un archivo con los Favoritos exportados previamente. ¿Quiere sustituirlo? Ajustes de perfiles específicos Perfil predefinido La vista del mapa y los ajustes de navegación se recuerdan por el perfil usado. Define tu perfil predefinido aquí. @@ -125,7 +126,7 @@ Mostrar más detalle del mapa Muestra detalles del mapa vectorial (carreteras, etc.) a niveles inferiores de zoom. Puntos favoritos borrados. - ¿Borrar %1$d favoritos y %2$d grupos de favoritos? + ¿Borrar %1$d Favoritos y %2$d grupos de Favoritos? Inicio Amigos Sitios @@ -272,7 +273,7 @@ \nNavegación cambiada temporalmente al servicio en línea CloudMade. No se puede encontrar la carpeta indicada. Carpeta de almacenamiento de datos - Todos los datos sin conexión en la versión vieja de OsmAnd son compatibles con la nueva versión, pero los puntos favoritos deben exportarse desde la versión vieja y luego, importarse en la nueva. + Todos los datos sin conexión en la versión vieja de OsmAnd son compatibles con la nueva versión, pero los puntos Favoritos deben exportarse desde la versión vieja y luego, importarse en la nueva. Compilación {0} instalada ({1}). Descargando compilación… ¿Instalar OsmAnd - {0} de {1} {2} MB ? @@ -338,9 +339,9 @@ Orientación del mapa Detalle de la ruta Favoritos importados - Archivo GPX de favoritos, no encontrado en {0} + Archivo GPX de Favoritos, no encontrado en {0} Favoritos guardados en {0} - Sin puntos favoritos que guardar + Sin puntos Favoritos que guardar Importar No se pudieron cargar los datos GPX Enviar informe @@ -465,7 +466,7 @@ No se pudo obtener la lista de regiones desde https://osmand.net. Nada encontrado. Si no encuentra su región, puede hacerla usted mismo (Ver https://osmand.net). Punto favorito editado - Sin puntos favoritos + Sin puntos Favoritos Reemplazar Mostrar ruta Seguir navegación @@ -579,12 +580,12 @@ Aplicar Añadir No - Ingresa nombre de favorito + Ingresa nombre del Favorito Favorito Punto favorito «{0}» añadido. - Editar favorito - Borrar favorito - ¿Borrar el favorito «%s»? + Editar Favorito + Borrar Favorito + ¿Borrar el Favorito «%s»? Punto favorito {0} borrado. Mensaje Nombre del autor @@ -593,7 +594,7 @@ Editar PDI Crear PDI No se encontró el nodo, o el PDI se compone de varios nodos, lo cuál todavía no está soportado. - ¿Borrar {0} (añadir comentario)? + ¿Borrar {0} (comentario)? Borrar PDI Borrar PDI borrado @@ -710,7 +711,7 @@ Buscar dirección Coordenadas Buscar transporte público - Una forma de buscar favoritos + Una forma de buscar Favoritos Hacer todas las características del terreno transparentes en el mapa. Polígonos Modo de dibujo @@ -803,14 +804,14 @@ Estilo del mapa Visor y navegador móvil global de mapas OSM con y sin conexión "OsmAnd (OSM Automated Navigation Directions, y en español, Guía de Navegación Automatizada de OSM) -\n +\n \nOsmAnd es un software de navegación de código abierto con acceso a una amplia variedad de datos globales de OpenStreetMap (OSM). Todos los datos del mapa (vectores y teselas) pueden ser almacenados en la memoria del teléfono para su uso sin conexión. También ofrece funcionalidades de rutas con y sin conexión, incluyendo indicaciones giro-a-giro por voz. -\n +\n \n Algunas de las funciones fundamentales: \n - Completa funcionalidad sin conexión (almacena los mapas vectoriales o teselas descargados en la memoria del dispositivo) \n - Mapas vectoriales compactos disponibles de todo el planeta \n - Descarga de mapas por país o región directamente desde la aplicación -\n - Posibilidad de superponer varias capas de mapa, como GPX o rutas de navegación, Puntos de Interés (PDI), favoritos, curvas de nivel, paradas de transporte público, mapas adicionales con transparencia personalizable +\n - Posibilidad de superponer varias capas de mapa, como GPX o rutas de navegación, Puntos de Interés (PDI), Favoritos, curvas de nivel, paradas de transporte público, mapas adicionales con transparencia personalizable \n - Búsqueda sin conexión de direcciones y sitios (PDI) \n - Navegación sin conexión para distancias de rango medio \n - Modos de automóvil, bicicleta y peatón con opcional: @@ -818,44 +819,30 @@ \n - Zoom del mapa según la velocidad \n - Alineación del mapa, según la brújula o dirección del movimiento \n - Indicación de carriles, visualización de límites de velocidad, voces grabadas y sintetizadas -\n +\n \n Limitaciones de la versión gratuita de OsmAnd: \n - Limitado número de mapas descargados \n - Sin acceso a descargas de los PDI de Wikipedia. -\n +\n \n Los PDI de OsmAnd están siendo desarrollados activamente. Nuestro proyecto y su continuo progreso, se basa en contribuciones económicas para desarrollar y probar nuevas funcionalidades. Por favor, considere comprar OsmAnd+, financiar nuevas características o hacer una donación general en https://osmand.net." Visor y navegador móvil global de mapas OSM con y sin conexión "OsmAnd+ (OSM Automated Navigation Directions, y en español, Guía de Navegación Automatizada de OSM) \n -\n \nOsmAnd+ es un software de navegación de código abierto con acceso a una amplia variedad de datos globales de OpenStreetMap (OSM). Todos los datos del mapa (vectores y teselas), pueden ser almacenados en la memoria del teléfono para su uso sin conexión. Ofrece funcionalidades de rutas con y sin conexión, incluyendo guía de giro-a-giro por voz. \n -\n \n OsmAnd+ es la versión de pago de la aplicación, comprándola das soporte al proyecto, financias el desarrollo de nuevas funciones, y recibes las últimas actualizaciones. \n -\n \nAlgunas de las características fundamentales: -\n \n - Completa funcionalidad sin conexión (guarda los mapas vectoriales o teselas descargados en el almacenamiento del dispositivo) -\n \n - Mapas mundiales vectoriales compactos disponibles -\n \n - Descarga ilimitada de mapas de países o regiones directamente desde la aplicación -\n -\n - Posibilidad de superponer varias capas de mapa, como GPX o rutas de navegación, Puntos de Interés, favoritos, curvas de nivel, paradas de transporte público, mapas adicionales con transparencia personalizable -\n +\n - Posibilidad de superponer varias capas de mapa, como GPX o rutas de navegación, Puntos de Interés, Favoritos, curvas de nivel, paradas de transporte público, mapas adicionales con transparencia personalizable \n - Búsqueda sin conexión de direcciones y sitios (PDI) -\n \n - Rutas sin conexión para distancias de rango medio -\n \n - Modos de automóvil, bicicleta y peatón con opcional: -\n \n - Cambio automático de vista día/noche -\n \n - Zoom del mapa según la velocidad -\n \n - Alineación del mapa, según brújula o dirección del movimiento -\n \n - Indicación de carriles, mostrar límites de velocidad, voces grabadas y sintetizadas" Evitar autopistas Ajusta la ubicación a las carreteras durante la navegación. @@ -999,7 +986,7 @@ Tema Opciones de accesibilidad Seleccionar dirección - Seleccionar favorito + Seleccionar Favorito Cambios OSM Más acciones Reduce el ruido en las lecturas de la brújula pero añade inercia. @@ -1123,7 +1110,7 @@ Náutica Perfiles de aplicación Renderizado del mapa - Elige los perfiles de uso visibles en la aplicación. + Elige los perfiles visibles en la aplicación. Preferencias de navegación Preferencias de navegación Indica la velocidad en el habla sintetizada (TTS). @@ -1341,7 +1328,7 @@ Punto de ruta Marque los destinos Nombres de PDI superpuestos - Guardar como grupo de favoritos + Guardar como grupo de Favoritos Muestra los botones de zoom durante la navegación. Mostrar botones de zoom Destino @@ -1454,9 +1441,9 @@ Define el tamaño del texto en el mapa. Tamaño del texto Nombre del punto favorito duplicado - Nombre del favorito en uso, cambiado a «%1$s» para evitar duplicación. + Nombre del Favorito en uso, cambiado a «%1$s» para evitar duplicación. Imprimir ruta - Nombre del punto favorito cambiado a «%1$s», para facilitar el guardado de la cadena con emoticonos a un archivo. + Nombre del Favorito cambiado a «%1$s», para facilitar el guardado de la cadena con emoticonos a un archivo. Tolerancia del límite de velocidad Seleccione el margen de tolerancia sobre el límite de velocidad, con el cual recibirá un aviso de voz. @@ -1667,7 +1654,7 @@ Memoria interna Almacenamiento del mapa Copiar - ¿Copiar los archivos de datos al nuevo destino? + ¿Copiar los archivos de datos de OsmAnd al nuevo destino? Números de casa Evita cruzar las fronteras nacionales Límite de altura @@ -1816,7 +1803,7 @@ Navegación Ejecutar en segundo plano Información del favorito - Añadir favorito + Añadir Favorito Caminos Añadir nuevo Elegir categoría @@ -1834,7 +1821,7 @@ Luego Versión completa Descargas - Utiliza un nombre de categoría que no exista ya. + Utilizar un nombre de categoría no existente. Nombre de categoría Añadir nueva categoría El mapa de sólo carreteras es innecesario, ya que tiene el mapa estándar (completo). ¿Descargar de todos modos? @@ -2038,7 +2025,7 @@ Clasificación de editores OSM Suscripción de OsmAnd Live Suscribirse - Para proporcionarte información sobre las contribuciones. + Necesario para proporcionar información sobre las contribuciones. Nombre público Ocultar mi nombre en los informes Región soportada @@ -2146,7 +2133,7 @@ Limpiar todas las teselas Ruta de bajo consumo (corta) Usa la ruta de menor consumo en combustible (usualmente la más corta). - ¿Reemplazar el favorito «%1$s»? + ¿Reemplazar el Favorito «%1$s»? Objetos en superficie Cambiar Empezar @@ -2163,7 +2150,7 @@ Almacenamiento de datos de OsmAnd (para mapas, archivos GPX, etc.): %1$s. Conceder permiso Permitir el acceso a la ubicación - Obtenga direcciones y descubre lugares nuevos sin una conexión a Internet + Obtenga direcciones y descubra lugares nuevos, sin una conexión a Internet Encontrar mi ubicación Omite la búsqueda de nuevas versiones o descuentos relacionados con OsmAnd. Ocultar nuevas versiones @@ -2174,7 +2161,7 @@ Obtener Obtener por %1$s Obtener por %1$s al mes - Obtén descargas ilimitada de mapas y más actualizaciones de mapas por mes: Cada semana, día u hora. + Obtén descargas ilimitada de mapas y más actualizaciones de mapas por mes: cada semana, día u hora. Descargas ilimitadas de mapas, actualizaciones y complemento de Wikipedia. Millas/metros Australia @@ -2265,11 +2252,11 @@ Añadir lugar de estacionamiento Añadir acción Editar acción - Añadir favorito + Añadir Favorito Añadir acción Borrar acción ¿Borrar la acción «%s»? - Mostrar diálogo de favoritos + Mostrar diálogo de Favoritos Nombre predefinido Este botón de acción, añade un marcador en el centro de la pantalla. Este botón de acción, añade un punto de ruta GPX en el centro de la pantalla. @@ -2285,11 +2272,11 @@ Lugar El nombre de la acción rápida ya existe, cambiado a «%1$s» para evitar duplicados. Nombre de la acción rápida duplicado - Este botón de acción, muestra u oculta los favoritos en el mapa. + Este botón de acción, muestra u oculta los Favoritos en el mapa. Este botón de acción, muestra u oculta los PDI en el mapa. - Alternar vista de favoritos - Mostrar favoritos - Ocultar favoritos + Alternar vista de Favoritos + Mostrar Favoritos + Ocultar Favoritos Alternar vista de PDI Mostrar %1$s Ocultar %1$s @@ -2300,7 +2287,7 @@ Dejar el campo vacío para usar la dirección o el nombre del lugar. Este mensaje se incluye en el campo del comentario. Mensaje - Selecciona la categoría en la que deseas guardar el favorito. + Selecciona la categoría en la que deseas guardar el Favorito. Selecciona una categoría opcional. Lista de PDI Añade una o más categorías de PDI a mostrar en el mapa. @@ -2365,8 +2352,8 @@ Tiempo moviéndose Duración Máx - Salida - Llegada + Hora de inicio + Hora de fin Color Empinado Poco empinado @@ -2374,7 +2361,7 @@ Rutas más cortas Equilibrado Preferir caminos secundarios - Terreno preferido: Llano o empinado. + Terreno preferido: llano o empinado. Bereber (amazig) No enviar estadísticas de uso anónimas de la aplicación OsmAnd recopila información acerca de las secciones que abres en la aplicación. No recopilamos datos de ubicación, ingresos en la aplicación o datos relacionados con las áreas que visualizas, buscas o descargas. @@ -2565,15 +2552,15 @@ Ocultar notas de OSM Este botón de acción, muestra u oculta las notas de OSM en el mapa. Ordenados por distancia - Buscar favoritos + Buscar Favoritos Ocultar desde el nivel de zoom Reiniciar búsqueda Aumentar radio de búsqueda Nada encontrado Modifica la consulta de búsqueda o aumenta el radio de búsqueda. - Descargar el mapa de «Superposición de sombreado» para esta región. - Instala el complemento «Curvas de nivel» para mostrarlas en el mapa - El destino se ubica en un área de acceso privado. ¿Acceder a los caminos privados para este viaje? + Para ver el sombreado del relieve en el mapa, debes descargar la superposición del sombreado de esta región. + Para ver el sombreado del relieve en el mapa, debes comprar e instalar el complemento «Curvas de nivel» + El destino se ubica en un área de acceso privado. ¿Permitir el acceso a los caminos privados para este viaje? Control de Mapillary Fotos a nivel de calle en línea para todos. Descubre lugares, colabora, captura el mundo. Mapillary @@ -2590,7 +2577,7 @@ Imagen de Mapillary Permisos OsmAnd no puede importar el archivo. Comprueba si OsmAnd tiene permiso para leer archivos desde esta ubicación. - Distancia corregida + Distancia recorrida Guardar las trazas grabadas en carpetas mensuales Guarda las trazas grabadas en subcarpetas por mes de grabación (como 2018-01). Restablecer @@ -2656,7 +2643,7 @@ Añadir archivos GPX Importa archivos GPX o graba pistas. Añadir favoritos - Importa favoritos, o añádelos marcando puntos en el mapa. + Importa Favoritos, o añádelos marcando puntos en el mapa. Importar archivo GPX El archivo «%1$s» no contiene puntos de ruta, ¿Quieres importarlo como una traza? Mover punto @@ -2733,9 +2720,9 @@ Modo de pantalla completa Descartar - puede importarse como favorito, o como archivo GPX. + puede importarse como Favorito, o como un archivo GPX. Importar como archivo GPX - Importar como favorito + Importar como Favorito Importar archivo Número de dígitos decimales Derecha @@ -2748,22 +2735,22 @@ Renombrar marcador Apariencia en el mapa Selecciona una pista para añadir sus puntos de referencia a los marcadores. - Selecciona una categoría de favoritos para añadir a los marcadores. + Selecciona una categoría de Favoritos para añadir a los marcadores. Puntos de referencia de la traza Categoría de favoritos Añadir un grupo - Importa grupos desde favoritos o puntos de ruta GPX. + Importar grupos desde Favoritos o puntos de ruta GPX. ¡Crea marcadores del mapa! Pulsa en «Sitios» y luego pulsa la bandera del marcador. Importar grupos - Importa grupos de favoritos o puntos de ruta como marcadores. + Importar grupos de Favoritos o puntos de ruta como marcadores. Los marcadores descartados aparecerán en esta pantalla. Dos Uno Muestra líneas direccionales desde su ubicación hasta los marcadores activos. Muestra una o dos flechas indicando la dirección a los marcadores activos. Elige cómo mostrar la distancia a los marcadores activos. - Elige el número de marcadores activos a mostrar. + Elige cuantos indicadores de dirección mostrar. Más Búsqueda de trazas con puntos de referencia • Nuevo: Soporte para guías de viaje globales sin conexión a Internet Las ubicaciones de referencia están vinculadas al mapa. Datos iniciales de Wikivoyage. @@ -2840,7 +2827,7 @@ Reemplazar punto de inicio Rutas a menos de A menos de - Ingresar nombre del archivo. + Escribe el nombre del archivo. Error de importación del mapa Mapa importado Total @@ -2851,8 +2838,8 @@ Añadir todos los puntos de ruta de la traza o seleccionar categorías separadas. Grupo borrado Deportes de aguas bravas - Distancia: Más lejos primero - Distancia: Más cerca primero + Distancia: más lejos primero + Distancia: más cerca primero Ingresar longitud Ingresar latitud Ingresar latitud y longitud @@ -2874,7 +2861,7 @@ Guías turísticas Wikiviajes Artículo borrado - Buscar: País, ciudad, provincia + Buscar: país, ciudad, provincia Leer Artículos favoritos Explorar @@ -2895,8 +2882,8 @@ Elegir el elemento adecuado: Las guías de los lugares más interesantes del planeta, dentro de OsmAnd y sin conexión a Internet. Guías de viaje - Actualizaciones del mapa: Cada mes - Actualizaciones del mapa: Cada hora + Actualizaciones del mapa: cada mes + Actualizaciones del mapa: cada hora Compras en la aplicación Único pago Una vez comprado, estará permanentemente disponible para ti. @@ -2962,4 +2949,10 @@ Modificación del estilo estándar para aumentar el contraste de los caminos peatonales y ciclistas. Utiliza los colores heredados de Mapnik. Archivos GPX Consigue OsmAnd Live para desbloquear todas las funciones: Actualizaciones diarias de mapas con descargas ilimitadas, todos los complemento gratuitos y de pago, Wikipedia, Wikivoyage y mucho más. - \ No newline at end of file + Editar punto + Añadir punto + Guardar como traza + Has añadido %1$s puntos. Escribe un nombre de archivo y pulsa en «Guardar». + Por favor, envíe la captura de pantalla de esta notificación a support@osmand.net + Editar acciones + diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 9f86b1b93a..b99c04e25b 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -645,7 +645,7 @@ Modifier le point d\'intérêt Créer un point d\'intérêt L\'objet est introuvable ou est composé de plusieurs nœuds, ce qui n\'est pas possible actuellement. - Voulez-vous vraiment supprimer {0} (inscrire commentaire) ? + Supprimer {0} (commentaire) ? Supprimer le point d\'intérêt Supprimer Point d\'intérêt supprimé @@ -1017,7 +1017,7 @@ Mémoire proportionnelle %4$s Mo (limite Android %5$s Mo, Dalvik %6$s Mo).parties - La position associée à la note n\'est pas encore définie. Utilisez le menu \'Utiliser ce point\' pour indiquer la position de cette note. + La position associée à la note n\'est pas encore définie. Utilisez le menu \"Utiliser la position...\" pour définir une position pour cette note. Notes audio Ce greffon permet de prendre des notes (photos, audios ou vidéos) sur un itinéraire soit en utilisant un bouton affiché sur la carte, soit directement depuis le menu contextuel de n\'importe quel point sur la carte. diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index b93839a715..ce3e41819b 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -909,7 +909,7 @@ 編輯 POI 建立 POI 找不到節點或便利設施組成的一些節點,哪些尚不支援。 - 刪除 {0} (輸入評論)? + 刪除 {0} (評論)? 刪除 POI POI 已刪除 新增 @@ -1091,7 +1091,7 @@ 這個外掛元件同時提供了等高線上層和(地貌)地形陰影層,顯示在 OsmAnd 標準地圖的頂部。此功能會讓運動選手、健行旅遊者、背包客,和對起伏的地理構成感興趣的任何人。 \n \n全球圖資(在北緯 70 ° 至南緯 70 ° 之間)的量測基礎在於 SRTM (Shuttle Radar Topography Mission)和 ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer),安裝在美國太空總署地球觀測系統的旗艦衛星 Terra 上的遙測儀器,ASTER 是美國太空總署、日本經濟產業省(METI)、日本太空系統 (J-spacesystems)之間的通力合作產物。 - 以位置去關聯的附註尚未下定義。\"使用位置 …\",把註解分配給指定的位置。 + 尚未定義以位置去關聯的註解。「使用位置 …」,把註解分配給指定的位置。 這個外掛元件同時提供了等高線上層和(地貌)地形陰影層,顯示在 OsmAnd 標準地圖的頂部。此功能會讓運動選手、健行旅遊者、背包客,和對起伏的地理構成感興趣的任何人。(請注意,等高線和地貌資料是各自獨立的,在外掛元件啟用後可以追加下載。) \n \n全球圖資(在 70 ° 以北和 70 ° 以南之間)的量測基礎在於 SRTM(Shuttle Radar Topography Mission)和 ASTER(Advanced Spaceborne Thermal Emission and Reflection Radiometer),安裝在美國太空總署地球觀測系統的旗艦衛星 Terra 上的遙測儀器,ASTER 是美國太空總署、日本經濟產業省(METI)、日本太空系統(J-spacesystems)之間的通力合作的產物。 @@ -3120,5 +3120,5 @@ 編輯標點 新增標點 儲存為軌跡 - 您已新增了 %1$s 標點。輸入檔案名稱和按下儲存。 + 您已新增了 %1$s 標點。輸入檔案名稱並輕點「儲存」。 diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 557b7b3a21..c9da15876b 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -13,7 +13,7 @@ Edit point Add point Save as track - You added %1$s points. Enter the name of the file and click save. + You added %1$s points. Type a filename and tap \"Save\". Please send screenshoot of this notification to support@osmand.net Edit actions Get OsmAnd Live to unlock all features: Daily map updates with unlimited downloads, all paid and free plugins, Wikipedia, Wikivoyage and much more. @@ -121,7 +121,7 @@ Optional point name Nearby routes within Within - Enter the filename. + Type the filename. Map import error Map imported Make this the start point @@ -1678,7 +1678,7 @@ Recording Audio/video notes Distance measurement - Location to associate with the note is not defined yet. \"Use location …\" to assign a note to the location specified. + Location to associate with the note is not defined yet. \"Use location…\" to assign a note to the location specified. Audio notes parts Contour lines @@ -2241,7 +2241,7 @@ Origin: Search nearby Route saved as \'%1$s\'. - File name: + Filename: File with same name already exists. Upload GPX files to the OSM community, improving the maps. %1$d of %2$d item(s) uploaded. @@ -2657,7 +2657,7 @@ Edit POI Create POI Node cannot be found, or amenity consists of several nodes, which is not yet supported. - Delete {0} (enter comment)? + Delete {0} (comment)? Delete POI POI deleted add