Compare commits

..

2 Commits

Author SHA1 Message Date
matheusgomesms
f4eb8628e0 Atualizar generator/maxspeeds_builder.cpp
Signed-off-by: matheusgomesms <matheusgomesms@noreply.codeberg.org>
2025-12-09 21:35:32 +01:00
matheusgomesms
4c715cd2ee Removing maxspeed estimate from generator
Signed-off-by: matheusgomesms <matheusgomesms@noreply.codeberg.org>
2025-12-09 15:04:24 +01:00
223 changed files with 3719 additions and 17889 deletions

1
.gitignore vendored
View File

@@ -21,7 +21,6 @@ data/symbols/**/symbols.sdf
data/bookmarks
data/edits.xml
data/traffic.xml
data/World.mwm
data/WorldCoasts.mwm
data/world_mwm/*

View File

@@ -28,8 +28,3 @@
# R8 crypts the source line numbers in all log messages.
# https://github.com/organicmaps/organicmaps/issues/6559#issuecomment-1812039926
-dontoptimize
# Keep classes for Android TraFF support
-keep class app.organicmaps.sdk.traffxml.SourceImplV0_7 { *; }
-keep class app.organicmaps.sdk.traffxml.SourceImplV0_8 { *; }

View File

@@ -1,32 +0,0 @@
Una aplicació de mapes gratuïta i de codi obert dirigida per la comunitat basada en dades d'OpenStreetMap i reforçada amb el compromís amb la transparència, la privadesa i la no ànim de lucre. CoMaps és una derivació/fork d'Organic Maps, que al seu torn és una derivació de Maps.ME.
Llegiu sobre els motius del projecte i la seva direcció a <b><i>codeberg.org/comaps</i></b>.
Uneix-te a la comunitat i ajuda a crear la millor aplicació de mapes
• Utilitza l'aplicació i difon-la
• Dona comentaris i informa de problemes
• Actualitza les dades del mapa a l'aplicació o al lloc web d'OpenStreetMap
‣ <b>Enfocat fora de línia</b>: Planifica i navega pel teu viatge a l'estranger sense necessitat de servei mòbil, cerca punts de referència mentre fas una excursió llunyana, etc. Totes les funcions de l'aplicació estan dissenyades per funcionar fora de línia.
‣ <b>Respecte a la privadesa</b>: L'aplicació està dissenyada tenint en compte la privadesa: no identifica persones, no fa seguiment i no recopila informació personal. Sense anuncis.
‣ <b>Senzill i polit</b>: funcions essencials fàcils d'utilitzar que simplement funcionen.
‣ <b>Estalvia bateria i espai</b>: No consumeix bateria com altres aplicacions de navegació. Els mapes compactes estalvien espai preciós al telèfon.
‣ <b>Gratuït i creat per la comunitat</b>: Gent com tu ha ajudat a crear l'aplicació afegint llocs a OpenStreetMap, provant i donant comentaris sobre les funcions i aportant les seves habilitats de desenvolupament i diners.
‣ <b>Presa de decisions i finances obertes i transparents, sense ànim de lucre i de codi obert.</b>
<b>Característiques principals</b>:
• Mapes detallats descarregables amb llocs que no estan disponibles amb Google Maps
• Mode exterior amb rutes de senderisme destacades, càmpings, fonts d'aigua, pics, corbes de nivell, etc.
• Senders per caminar i carrils bici
• Punts d'interès com restaurants, gasolineres, hotels, botigues, llocs d'interès i molts més
• Cerca per nom, adreça o categoria de punt d'interès
• Navegació amb anuncis de veu per caminar, anar amb bicicleta o conduir
• Marca els teus llocs preferits amb un sol toc
• Articles de la Viquipèdia fora de línia
• Capa i indicacions de trànsit de metro
• Enregistrament de rutes
• Exporta i importa marcadors i rutes en formats KML, KMZ i GPX
• Un mode fosc per utilitzar durant la nit
• Millora les dades del mapa per a tothom mitjançant un editor bàsic integrat
<b>La llibertat és aquí</b>
Descobreix el teu viatge, navega pel món amb la privadesa i la comunitat al capdavant!

View File

@@ -1,10 +0,0 @@
• OpenStreetMap-Daten vom 9. Dezember
• Material 3 Design
• Im OSM-Editor können nun Ladestationen hinzugefügt werden
• Schuko und Typ E Ladestationen hinzugefügt
• Verbesserte Suchvorschläge
• Litauische und lettische Sprachankündigungen
• Die Fahranweisungen wurden vergrößert
• Der Zoomlevel passt sich an die Distanz zur nächsten Abbiegung an
• Neue Anordnung der Einstellungen
Weitere Einzelheiten auf codeberg.org/comaps/comaps/releases

View File

@@ -1,10 +1,13 @@
OpenStreetMap data as of December 9
Use Material 3 themes
• Support charging sockets in OSM Editor
• Added schuko/type-E charge sockets
Improved search results ranking
Enabled Lithuanian and Latvian in voice announcements
Improved size of driving indications
Base zoom level on distance to next turn
Reordered settings
More details on codeberg.org/comaps/comaps/releases
Fixed voice directions pronouncing weird symbols in the beginning
OpenStreetMap data as of November 23
Changes in the previous release:
Added trees
Made bus stop icons smaller and show up earlier
Reduce visibility of entrances
Added several other POI types
Show sand areas on the map
• Add business is vacant option to the OSM editor
• Improved road shields in Europe
• Avoid paved roads routing option
• Added icons to the settings page

View File

@@ -1,11 +0,0 @@
• Datos de OpenStreetMap a fecha 9/12.
• Uso de temas Material 3.
• Compatibilidad con enchufes de recarga en Editor.
• Se añaden enchufes de recarga schuko/tipo E.
• Se mejora la búsqueda.
• Se habilitan el lituano y el letón en las indicaciones de voz.
• Se aumenta el tamaño de las indicaciones de conducción.
• Nivel de zoom base según la distancia al siguiente giro.
• Se han reordenado los ajustes.
Más detalles en codeberg.org/comaps/comaps/releases

View File

@@ -1,10 +0,0 @@
• Données OpenStreetMap du 9 Décembre
• Utilisation de Material 3
• Support de l'édition des bornes de recharge dans l'éditeur OSM
• Ajout du type de prise schuko/type-E
• Amélioration de l'ordre des résultats de recherche
• Ajout du lituanien et du letton dans le guidage vocal
• Amélioration de la taille des instructions dans la navigation
• Niveau de zoom basé sur la distance jusquau prochain virage
• Réorganisation des paramètres
Plus de détails sur codeberg.org/comaps/comaps/releases

View File

@@ -1,10 +0,0 @@
• Podaci OpenStreetMap karte od 9. prosinca
• Korištenje Material 3 tema
• Podrška za utičnice za punjenje u OSM Editoru
• Dodane šuko/tip-E utičnice
• Poboljšano rangiranje rezultata pretraživanja
• Omogućeni litvanski i latvijski jezici u glasovnim najavama
• Povećana veličina indikatora vožnje
• Razina zumiranja se mijenja ovisno o udaljenosti do sljedećeg skretanja
• Promijenjen redoslijed postavki
Više detalja na codeberg.org/comaps/comaps/releases

View File

@@ -1 +0,0 @@
Paprasta ir patogi navigacija Turiningos kelionės Vystoma bendruomenės

View File

@@ -1 +0,0 @@
CoMaps keliaukite atsijungę ir privačiai

View File

@@ -1,10 +0,0 @@
• Dane OpenStreetMap z 9 grudnia
• Użycie motywów Material 3
• Obsługa gniazd ładowania w Edytorze OSM
• Dodane gniazda ładowania schuko/type-E
• Poprawiony ranking wyników wyszukiwania
• Dodane litewskie i łotewskie komunikaty głosowe
• Poprawiony rozmiar znaków drogowych
• Poziom powiększenia oparty na odległości do następnego manewru
• Zmieniona kolejność ustawień
Więcej szczegółów na codeberg.org/comaps/comaps/releases

View File

@@ -1,10 +0,0 @@
• Dados OpenStreetMap atualizados em 9 de dezembro
• Uso do estilo Material 3
• Suporte para tomadas de carregamento no Editor OSM
• Adição de tomadas de carregamento Schuko/Tipo E
• Melhoria na classificação dos resultados de busca
• Adição dos idiomas letão e lituano nas orientações por voz
• Melhoria no tamanho das indicações de direção
• Nível de zoom baseado em distância até a próxima curva
• Configurações reordenadas
Mais detalhes em codeberg.org/comaps/comaps/releases

View File

@@ -1 +1 @@
version: 2025.07.23-4-FDroid+25072304
version: 2025.03.02-7-FDroid+25030207

View File

@@ -68,4 +68,4 @@ Por favor, informa de errores, sugiere ideas y únete a nuestra comunidad en el
<b>La Libertad Está Aquí</b>
¡Descubre tu camino, navega el mundo con privacidad y con la comunidad como prioridad!
Descubre tu camino, navega el mundo con privacidad y con la comunidad como prioridad.

View File

@@ -1 +0,0 @@
Paprasta ir patogi navigacija Turiningos kelionės Vystoma bendruomenės

View File

@@ -1 +0,0 @@
CoMaps naviguokite privačiai

View File

@@ -62,21 +62,6 @@
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
</intent>
<intent>
<action android:name="org.traffxml.traff.GET_CAPABILITIES"/>
</intent>
<intent>
<action android:name="org.traffxml.traff.POLL"/>
</intent>
<intent>
<action android:name="org.traffxml.traff.SUBSCRIBE"/>
</intent>
<intent>
<action android:name="org.traffxml.traff.SUBSCRIPTION_CHANGE"/>
</intent>
<intent>
<action android:name="org.traffxml.traff.UNSUBSCRIBE"/>
</intent>
</queries>
<supports-screens

View File

@@ -1818,17 +1818,9 @@ public class MwmActivity extends BaseMwmFragmentActivity
if (Config.isTtsMessageDelivered())
return;
String languageDisplayName = TtsPlayer.INSTANCE.getLanguageDisplayName();
if (languageDisplayName != null)
{
String navigationStartMessage = getResources().getString(R.string.navigation_start_tts_message);
navigationStartMessage += languageDisplayName;
Toast.makeText(this, navigationStartMessage, Toast.LENGTH_LONG).show();
}
else
Toast.makeText(this, getResources().getString(R.string.navigation_start_tts_disabled_message), Toast.LENGTH_LONG)
.show();
String navigationStartMessage = getResources().getString(R.string.navigation_start_tts_message);
navigationStartMessage += TtsPlayer.INSTANCE.getLanguageDisplayName();
Toast.makeText(this, navigationStartMessage, Toast.LENGTH_LONG).show();
Config.setTtsMessageDelivered();
}

View File

@@ -12,7 +12,6 @@ public class LayersUtils
availableLayers.add(Mode.OUTDOORS);
availableLayers.add(Mode.ISOLINES);
availableLayers.add(Mode.SUBWAY);
availableLayers.add(Mode.TRAFFIC);
return availableLayers;
}
}

View File

@@ -3,19 +3,12 @@ package app.organicmaps.settings;
import static app.organicmaps.leftbutton.LeftButtonsHolder.DISABLE_BUTTON_CODE;
import android.annotation.SuppressLint;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.preference.EditTextPreference;
import androidx.preference.ListPreference;
import androidx.preference.MultiSelectListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.TwoStatePreference;
@@ -35,7 +28,6 @@ import app.organicmaps.sdk.routing.RoutingOptions;
import app.organicmaps.sdk.search.SearchRecents;
import app.organicmaps.sdk.settings.MapLanguageCode;
import app.organicmaps.sdk.settings.UnitLocale;
import app.organicmaps.sdk.traffxml.AndroidTransport;
import app.organicmaps.sdk.util.Config;
import app.organicmaps.sdk.util.NetworkPolicy;
import app.organicmaps.sdk.util.PowerManagment;
@@ -43,13 +35,11 @@ import app.organicmaps.sdk.util.SharedPropertiesUtils;
import app.organicmaps.sdk.util.log.LogsManager;
import app.organicmaps.util.ThemeSwitcher;
import app.organicmaps.util.Utils;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Locale;
import java.util.Set;
public class SettingsPrefsFragment extends BaseXmlSettingsFragment implements LanguagesFragment.Listener
{
@@ -71,10 +61,6 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment implements La
initAutoDownloadPrefsCallbacks();
initLargeFontSizePrefsCallbacks();
initTransliterationPrefsCallbacks();
initTrafficHttpEnabledPrefsCallbacks();
initTrafficHttpUrlPrefsCallbacks();
initTrafficAppsPrefs();
initTrafficLegacyEnabledPrefsCallbacks();
init3dModePrefsCallbacks();
initPerspectivePrefsCallbacks();
initAutoZoomPrefsCallbacks();
@@ -150,46 +136,6 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment implements La
pref.setSummary(locale.getDisplayLanguage());
}
private void updateTrafficHttpUrlSummary()
{
final Preference pref = getPreference(getString(R.string.pref_traffic_http_url));
String summary = Config.getTrafficHttpUrl();
if (summary.length() == 0)
pref.setSummary(R.string.traffic_http_url_not_set);
else
pref.setSummary(summary);
}
private void updateTrafficAppsSummary()
{
final MultiSelectListPreference pref = getPreference(getString(R.string.pref_traffic_apps));
/*
* If the preference is disabled, it has not been initialized. This is the case if no TraFF
* apps were found. The code below would crash when trying to access the entries, and there
* is no need to update the summary if the setting cannot be changed.
*/
if (!pref.isEnabled())
return;
String[] apps = Config.getTrafficApps();
if (apps.length == 0)
pref.setSummary(R.string.traffic_apps_none_selected);
else
{
String summary = "";
for (int i = 0; i < apps.length; i++)
{
if (i > 0)
summary = summary + ", ";
int index = pref.findIndexOfValue(apps[i]);
if (i >= 0)
summary = summary + pref.getEntries()[index];
else
summary = summary + apps[i];
}
pref.setSummary(summary);
}
}
private void updateRoutingSettingsPrefsSummary()
{
final Preference pref = getPreference(getString(R.string.prefs_routing));
@@ -217,8 +163,6 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment implements La
updateVoiceInstructionsPrefsSummary();
updateRoutingSettingsPrefsSummary();
updateMapLanguageCodeSummary();
updateTrafficHttpUrlSummary();
updateTrafficAppsSummary();
}
@Override
@@ -280,91 +224,6 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment implements La
});
}
private void initTrafficHttpEnabledPrefsCallbacks()
{
final Preference pref = getPreference(getString(R.string.pref_traffic_http_enabled));
((TwoStatePreference)pref).setChecked(Config.getTrafficHttpEnabled());
pref.setOnPreferenceChangeListener((preference, newValue) -> {
final boolean oldVal = Config.getTrafficHttpEnabled();
final boolean newVal = (Boolean) newValue;
if (oldVal != newVal)
Config.setTrafficHttpEnabled(newVal);
return true;
});
}
private void initTrafficHttpUrlPrefsCallbacks()
{
final Preference pref = getPreference(getString(R.string.pref_traffic_http_url));
((EditTextPreference)pref).setText(Config.getTrafficHttpUrl());
pref.setOnPreferenceChangeListener((preference, newValue) -> {
final String oldVal = Config.getTrafficHttpUrl();
final String newVal = (String) newValue;
if (!oldVal.equals(newVal))
Config.setTrafficHttpUrl(newVal);
return true;
});
}
private void initTrafficAppsPrefs()
{
final MultiSelectListPreference pref = getPreference(getString(R.string.pref_traffic_apps));
PackageManager pm = getContext().getPackageManager();
List<ResolveInfo> receivers = pm.queryBroadcastReceivers(new Intent(AndroidTransport.ACTION_TRAFF_GET_CAPABILITIES), 0);
if (receivers == null || receivers.isEmpty())
{
pref.setSummary(R.string.traffic_apps_not_available);
pref.setEnabled(false);
return;
}
pref.setEnabled(true);
List<String> entryList = new ArrayList<>(receivers.size());
List<String> valueList = new ArrayList<>(receivers.size());
for (ResolveInfo receiver : receivers)
{
// friendly name
entryList.add(receiver.loadLabel(pm).toString());
// actual value (we just need the package name, broadcasts are sent to any receiver in the package)
valueList.add(receiver.activityInfo.applicationInfo.packageName);
}
pref.setEntries(entryList.toArray(new CharSequence[0]));
pref.setEntryValues(valueList.toArray(new CharSequence[0]));
pref.setOnPreferenceChangeListener((preference, newValue) -> {
// newValue is a Set<String>, each item is a package ID
String[] apps = ((Set<String>)newValue).toArray(new String[0]);
Config.setTrafficApps(apps);
updateTrafficAppsSummary();
return true;
});
}
private void initTrafficLegacyEnabledPrefsCallbacks()
{
final Preference pref = getPreference(getString(R.string.pref_traffic_legacy_enabled));
((TwoStatePreference)pref).setChecked(Config.getTrafficLegacyEnabled());
pref.setOnPreferenceChangeListener((preference, newValue) -> {
final boolean oldVal = Config.getTrafficLegacyEnabled();
final boolean newVal = (Boolean) newValue;
if (oldVal != newVal)
Config.setTrafficLegacyEnabled(newVal);
return true;
});
}
private void initUseMobileDataPrefsCallbacks()
{
final ListPreference mobilePref = getPreference(getString(R.string.pref_use_mobile_data));

View File

@@ -295,7 +295,7 @@
<!-- location service disabled -->
<string name="enable_location_services">Activeu els serveis de geolocalització</string>
<string name="save">Desa</string>
<string name="create">Crear</string>
<string name="create">crea</string>
<!-- red color -->
<string name="red">Vermell</string>
<!-- yellow color -->
@@ -473,7 +473,7 @@
<string name="error_enter_correct_house_number">Introduïu un número dedifici vàlid</string>
<!-- Error message in Editor when a user tries to set the number of floors for a building higher than %d floors -->
<string name="error_enter_correct_storey_number">El nombre de plantes no pot excedir de %d</string>
<string name="editor_zip_code">Codi Postal</string>
<string name="editor_zip_code">Codi postal</string>
<string name="error_enter_correct_zip_code">Introduïu un codi postal vàlid</string>
<!-- Title for OSM note section in the editor -->
<string name="editor_other_info">Nota per als voluntaris d\'OpenStreetMap (opcional)</string>
@@ -521,8 +521,8 @@
<!-- Displayed when saving some edits to the map to warn against publishing personal data -->
<string name="editor_share_to_all_dialog_title">Voleu enviar-ho a tots els usuaris?</string>
<!-- Dialog before publishing the modifications to the public map. -->
<string name="editor_share_to_all_dialog_message_1">Assegureu-vos que no heu introduït cap dada personal.</string>
<string name="editor_share_to_all_dialog_message_2">Els editors d\'OpenStreetMap revisaran els canvis. Et contactaran si tenen cap pregunta.</string>
<string name="editor_share_to_all_dialog_message_1">Assegureu-vos que no heu introduït cap dada personal</string>
<string name="editor_share_to_all_dialog_message_2">Revisarem els canvis. Si tenim cap pregunta contactem amb vós via correu electrònic</string>
<string name="navigation_stop_button">Atura</string>
<!-- Shown as toast when starting the recent track recording -->
<string name="track_recording">Sestà enregistrant el recorregut</string>
@@ -875,41 +875,4 @@
<string name="delete_track_dialog_title">Voleu eliminar %s?</string>
<string name="pref_tts_no_system_tts_short">No s\'ha trobat cap motor de text a veu, comproveu la configuració de l\'app</string>
<string name="offline_explanation_title">Mapes sense Connexió</string>
<string name="charge_socket_schuko">EU Domèstic</string>
<string name="unknown_socket_type">endoll desconegut</string>
<string name="edit_socket_info_tooltip">Crea nous endolls o edita els existents.</string>
<string name="charging_station_available_sockets">Endolls disponibles</string>
<string name="charge_socket_unknown_other">Altres o desconegut</string>
<string name="charge_socket_count">Recompte</string>
<string name="charge_socket_power">Potència (kW)</string>
<string name="editor_socket">Editar endoll</string>
<string name="unknown_count">desconegut</string>
<string name="error_value_must_be_positive">El valor ha de ser positiu</string>
<string name="error_invalid_number">Número invàlid</string>
<string name="offline_explanation_text">Un mapa ha de ser desconegut per a veure i navegar l\'àrea.\nDescarrega mapes per a àrees on vulgues viatjar.</string>
<string name="list_description_empty">Edita la llista per afegir una descripció</string>
<string name="opens_at">Obre a %s</string>
<string name="closes_at">Tanca a %s</string>
<string name="opens_day_at">Obre els %1$s a %2$s</string>
<string name="closes_day_at">Tanca els %1$s a %2$s</string>
<plurals name="minutes_short">
<item quantity="one">%d min</item>
<item quantity="many">%d mins</item>
<item quantity="other">%d mins</item>
</plurals>
<string name="editor_place_doesnt_exist_description">Descriu com és el lloc ara mateix per enviar una nota d\'error a la comunitat d\'OpenStreetMap</string>
<string name="editor_business_vacant_button">El negoci està vacant</string>
<string name="editor_mark_business_vacant_title">Marcar negoci com a vacant</string>
<string name="editor_mark_business_vacant_description">Fes servir aquesta funció si el negoci s\'ha mogut, i l\'espai està buit i llest per a un altre llogater.</string>
<string name="editor_submit">Enviar</string>
<string name="power_management">Gestió de Potència</string>
<string name="avoid_steps">Evita escales</string>
<string name="avoid_paved">Evita carreteres asfaltades</string>
<string name="unknown_power_output">desconegut</string>
<string name="charge_socket_type2">Tipus 2 (sense cable)</string>
<string name="charge_socket_type2_cable">Tipus 2 (amb cable)</string>
<string name="charge_socket_type2_combo">Tipus 2 comb.</string>
<string name="charge_socket_type1">Tipus 1</string>
<string name="charge_socket_nacs">NACS</string>
<string name="charge_socket_chademo">CHAdeMO</string>
</resources>

View File

@@ -905,6 +905,4 @@
</plurals>
<string name="power_management">Správa výkonu</string>
<string name="charge_socket_schuko">Domovní EU</string>
<string name="prefs_speed_cameras_information">Upozornění na radary jsou vypnuty v zemích, kde je tato funkcionalita zakázána místními zákony.</string>
<string name="navigation_start_tts_message">"Spouštím navigaci, jazyk hlasových instrukcí: "</string>
</resources>

View File

@@ -607,7 +607,7 @@
<!-- Recommended length for CarPlay and Android Auto is around 25-27 characters -->
<string name="avoid_tolls">Undgå betalingsveje</string>
<!-- Recommended length for CarPlay and Android Auto is around 25-27 characters -->
<string name="avoid_unpaved">Undgå veje uden fast belægning</string>
<string name="avoid_unpaved">Undgå ikke-asfalterede veje</string>
<!-- Recommended length for CarPlay and Android Auto is around 25-27 characters -->
<string name="avoid_ferry">Undgå færger</string>
<string name="avoid_motorways">Undgå motorveje</string>
@@ -894,6 +894,4 @@
<string name="editor_submit">Indsend</string>
<string name="power_management">Strømstyring</string>
<string name="charge_socket_schuko">Europæisk</string>
<string name="prefs_speed_cameras_information">Advarsler om hastighedskameraer er deaktiveret i lande, hvor advarsler er forbudt i henhold til lokal lovgivning.</string>
<string name="navigation_start_tts_message">"Starter navigation, sprog for stemmeinstruktioner: "</string>
</resources>

View File

@@ -197,7 +197,7 @@
<string name="prefs_group_information">Información</string>
<string name="prefs_group_route">Navegación</string>
<string name="pref_zoom_title">Botones de zoom</string>
<string name="pref_zoom_summary">Ver en el mapa</string>
<string name="pref_zoom_summary">Visualizar en la pantalla</string>
<!-- Settings «Map» category: «Night style» title -->
<string name="pref_map_style_title">Modo nocturno</string>
<!-- Generic «Off» string -->
@@ -297,7 +297,7 @@
<!-- location service disabled -->
<string name="enable_location_services">Por favor, activa los Servicios de Localización</string>
<string name="save">Guardar</string>
<string name="create">Crear</string>
<string name="create">crear</string>
<!-- red color -->
<string name="red">Rojo</string>
<!-- yellow color -->
@@ -493,7 +493,7 @@
<string name="editor_category_unsuitable_title">¿No halla una categoría adecuada?</string>
<string name="editor_category_unsuitable_text">CoMaps permite añadir únicamente categorías de puntos sencillos, es decir, no ciudades, carreteras, lagos, contornos de edificios, etc. Por favor, añade dichas categorías directamente en <a href="https://www.openstreetmap.org">OpenStreetMap.org</a>. Consulta nuestra <a href="https://www.comaps.app/support/advanced-map-editing/">guía</a> para obtener instrucciones detalladas paso a paso.</string>
<string name="downloader_no_downloaded_maps_title">No has descargado ningún mapa</string>
<string name="downloader_no_downloaded_maps_message">Descarga mapas para buscar ubicaciones y navegar sin conexión</string>
<string name="downloader_no_downloaded_maps_message">Descargue mapas para encontrar la ubicación y navegar sin conexión</string>
<string name="current_location_unknown_error_title">Se desconoce la ubicación actual</string>
<!-- abbreviation for kilometers per hour -->
<string name="kilometers_per_hour">km/h</string>
@@ -524,11 +524,11 @@
<!-- Displayed when saving some edits to the map to warn against publishing personal data -->
<string name="editor_share_to_all_dialog_title">¿Quieres enviarlo a todos los usuarios?</string>
<!-- Dialog before publishing the modifications to the public map. -->
<string name="editor_share_to_all_dialog_message_1">Cerciórate de que no has introducido ningún dato privado o personal.</string>
<string name="editor_share_to_all_dialog_message_2">Los editores de OpenStreetMap comprobarán los cambios y se pondrán en contacto contigo si tienen alguna pregunta.</string>
<string name="editor_share_to_all_dialog_message_1">Cerciórate de que no has introducido ningún dato privado o personal</string>
<string name="editor_share_to_all_dialog_message_2">Los editores de OpenStreetMap comprobarán los cambios y se pondrán en contacto contigo si tienen alguna pregunta</string>
<string name="navigation_stop_button">Detener</string>
<!-- Shown as toast when starting the recent track recording -->
<string name="track_recording">Grabando el trayecto</string>
<string name="track_recording">Grabando el trayeco</string>
<!-- For the first routing -->
<string name="accept">Aceptar</string>
<!-- For the first routing -->
@@ -539,7 +539,7 @@
<string name="mobile_data_option_not_today">No usar hoy</string>
<string name="mobile_data">Internet móvil</string>
<!-- NOTE to translators: please synchronize your translation with the English one. -->
<string name="mobile_data_description">Se requiere conexión a Internet para recibir notificaciones de actualización de mapas y cargar ediciones</string>
<string name="mobile_data_description">Se requiere Internet móvil para recibir notificaciones de actualización de mapas y cargar ediciones</string>
<string name="mobile_data_option_never">No usar nunca</string>
<string name="mobile_data_option_ask">Preguntar siempre</string>
<string name="traffic_update_maps_text">Para mostrar los datos de tráfico, deben actualizarse los mapas</string>

View File

@@ -903,6 +903,4 @@
<string name="editor_submit">Saada</string>
<string name="power_management">Toitehaldus</string>
<string name="charge_socket_schuko">EU-sisene</string>
<string name="prefs_speed_cameras_information">Kiiruskaamerate teavitused on nendes riikides lülitatud välja, kus seda keelab kohalik seadusandlus.</string>
<string name="navigation_start_tts_message">"Alustan tee juhatamist, hääljuhiste keel: "</string>
</resources>

View File

@@ -868,5 +868,4 @@
<string name="opens_day_at">1$s ean %2$s tan irekitzen da</string>
<string name="closes_day_at">%1$s ean %2$s etan itxiko da</string>
<string name="editor_place_doesnt_exist_description">Deskribatu nolakoa den lekua orain OpenStreetMap komunitateari errore-ohar bat bidaltzeko.</string>
<string name="offline_explanation_title">Lineaz kanpoko mapak</string>
</resources>

View File

@@ -9,9 +9,9 @@
<string name="delete">سِتُردن</string>
<string name="download_maps">بارگیری نقشه‌ها</string>
<!-- Settings/Downloader - info for country when download fails -->
<string name="download_has_failed">بارگیری ناکام بود، برای تلاش دوباره بِپَرماسید</string>
<string name="download_has_failed">دانلود ناموفق بود، برای تلاش مجدد لمس کنید</string>
<!-- Settings/Downloader - info for country which started downloading -->
<string name="downloading">بارگیری می‌شود…</string>
<string name="downloading">درحال دانلود…</string>
<!-- Choose measurement on first launch alert - choose metric system button -->
<string name="kilometres">کیلومتر</string>
<!-- Choose measurement on first launch alert - choose imperial system button -->
@@ -21,9 +21,9 @@
<!-- View and button titles for accessibility, please also edit it in iphone/plist.txt -->
<string name="search">جستجو</string>
<!-- Search box placeholder text; Used when searching on the map itself, not when searching for a map -->
<string name="search_map">جستجوی نقشه</string>
<string name="search_map">جست‌وجوی نقشه</string>
<!-- Location services are disabled by user alert - message -->
<string name="location_is_disabled_long_text">هم‌اینک، شما همه‌ی سامانه‌های گیاگ‌یابی را برای این دستگاه یا این برنامه ناکارا کرده‌اید. خواهشمند است آن را در پیکربندی‌ها کارا کنید.</string>
<string name="location_is_disabled_long_text">سرویس موقعیت مکانی شما غیر فعال است. لطفا جهت کارکرد صحیح نرم افزار آن را فعال کنید.</string>
<!-- A dialog title, that warns a user that Precise Location is disabled and suggests to turn it on -->
<string name="limited_accuracy">دقت محدود</string>
<!-- A dialog text, that warns a user that Precise Location is disabled and suggests to turn it on -->

View File

@@ -296,7 +296,7 @@
<!-- location service disabled -->
<string name="enable_location_services">Ota sijaintipalvelut käyttöön</string>
<string name="save">Tallenna</string>
<string name="create">Luo</string>
<string name="create">luo</string>
<!-- red color -->
<string name="red">Punainen</string>
<!-- yellow color -->
@@ -523,7 +523,7 @@
<!-- Displayed when saving some edits to the map to warn against publishing personal data -->
<string name="editor_share_to_all_dialog_title">Haluatko lähettää sen kaikille käyttäjille?</string>
<!-- Dialog before publishing the modifications to the public map. -->
<string name="editor_share_to_all_dialog_message_1">Varmista, ettet syöttänyt henkilökohtaisia tietojasi.</string>
<string name="editor_share_to_all_dialog_message_1">Varmista, ettet ole syöttänyt yksityisiä tai henkilökohtaisia tietoja</string>
<string name="editor_share_to_all_dialog_message_2">OpenStreetMap-muokkaimet tarkistavat muutokset ja ottavat sinuun yhteyttä, jos niillä on kysyttävää</string>
<string name="navigation_stop_button">Lopeta</string>
<!-- Shown as toast when starting the recent track recording -->
@@ -894,13 +894,12 @@
<string name="avoid_paved">Vältä päällystettyjä teitä</string>
<string name="opens_at">Avautuu %s</string>
<string name="closes_at">Sulkeutuu %s</string>
<string name="opens_day_at">Avautuu %1$sna klo %2$s</string>
<string name="closes_day_at">Sulkeutuu %1$sna klo %2$s</string>
<string name="opens_day_at">Avautuu %1$s klo %2$s</string>
<string name="closes_day_at">Sulkeutuu %1$s klo %2$s</string>
<plurals name="minutes_short">
<item quantity="one">%d min</item>
<item quantity="other">%d min</item>
</plurals>
<string name="editor_submit">Lähetä</string>
<string name="list_description_empty">Muokkaa listaa lisätäksesi kuvauksen</string>
<string name="editor_business_vacant_button">Liike on tyhjillään</string>
</resources>

View File

@@ -139,126 +139,4 @@
<string name="self_service">Samoposluživanje</string>
<string name="panoramax">Panoramax slika</string>
<string name="saved">Spremljeno</string>
<string name="disconnect_usb_cable">Isključite USB kabel ili umetnite memorijsku karticu za korištenje CoMaps</string>
<string name="not_enough_free_space_on_sdcard">Prvo oslobodite prostor na SD kartici/USB memoriji kako biste mogli koristiti aplikaciju</string>
<string name="download_resources">Prije nego što počnete koristiti aplikaciju, preuzmite općenitu kartu svijeta na svoj uređaj.\nZauzeti će %s prostora za pohranu.</string>
<string name="downloading_country_can_proceed">Preuzimanje %1$s (%2$s). Sada možete\nnastaviti na kartu.</string>
<string name="update_country_ask">Ažurirati %1$s? (%2$s)</string>
<string name="add_new_set">Dodaj novu Listu</string>
<string name="bookmark_set_name">Označi naziv Liste</string>
<string name="bookmarks">Oznake</string>
<string name="bookmarks_and_tracks">Oznake i Rute</string>
<string name="maps_storage">Spremi karte u</string>
<string name="maps_storage_summary">Odaberite mapu u koju želite spremiti karte</string>
<string name="maps_storage_downloaded">Preuzete karte</string>
<string name="maps_storage_free_size">%1$s slobodno od %2$s</string>
<string name="move_maps">Premjesti karte?</string>
<string name="move_maps_error">Greška prilikom premještanja datoteka karte</string>
<string name="wait_several_minutes">Ovo može potrajati nekoliko minuta.\nMolimo pričekajte…</string>
<string name="measurement_units">Mjerne jedinice</string>
<string name="measurement_units_summary">Odaberite milje ili kilometre</string>
<string name="category_eat">Gdje jesti</string>
<string name="category_food">Namirnice</string>
<string name="category_transport">Prijevoz</string>
<string name="category_fuel">Benzinske stanice</string>
<string name="category_shopping">Kupovina</string>
<string name="category_secondhand">Rabljena roba</string>
<string name="category_tourism">Znamenitosti</string>
<string name="category_entertainment">Zabava</string>
<string name="category_atm">Bankomat</string>
<string name="category_nightlife">Noćni život</string>
<string name="category_children">Obiteljski praznici</string>
<string name="category_bank">Banka</string>
<string name="category_pharmacy">Ljekarna</string>
<string name="category_police">Policija</string>
<string name="category_water">Voda</string>
<string name="category_rv">Objekti za kampere</string>
<string name="share_bookmarks_email_subject">CoMaps Oznake su podijeljene s vama</string>
<string name="share_bookmarks_email_body">Pozdrav!\n\nU privitku su moje oznake; otvorite ih u CoMaps aplikaciji. Ukoliko ju nemate instaliranu, možete ju preuzeti ovdje: https://www.comaps.app/download/\n\nUživajte u putovanju s CoMapsima!</string>
<string name="load_kmz_title">Učitavam Oznake</string>
<string name="load_kmz_successful">Oznake su uspješno učitane! Možete ih pronaći na karti ili na zaslonu Upravitelja Oznaka.</string>
<string name="load_kmz_failed">Učitavanje Oznaka nije uspjelo. Datoteka je možda oštećena ili neispravna.</string>
<string name="unknown_file_type">Aplikacija ne prepoznaje tip datoteke:\n%1$s</string>
<string name="failed_to_open_file">Nije moguće otvoriti datoteku %1$s\n \n%2$s</string>
<string name="unknown_current_position">Vaša lokacija još nije utvrđena</string>
<string name="cant_change_this_setting">Žao nam je, postavke Pohrane karata trenutno su onemogućene</string>
<string name="downloading_is_active">Preuzimanje karte je trenutno u tijeku</string>
<string name="my_position_share_sms">Pogledajte moju trenutnu lokaciju u CoMapsu! %1$s ili %2$s Nemate offline karte? Preuzmite ih ovdje: https://www.comaps.app/download/</string>
<string name="bookmark_share_email_subject">Hej, pogledaj moju oznaku u CoMapsu!</string>
<string name="my_position_share_email_subject">Hej, pogledaj moju trenutnu lokaciju na CoMaps karti!</string>
<string name="my_position_share_email">Bok,\n\nSada sam ovdje: %1$s. Kliknite na ovu %2$s ili ovu %3$s poveznicu da biste vidjeli lokaciju na karti.\n\nHvala.</string>
<string name="copied_to_clipboard">Kopirano u međuspremnik: %s</string>
<string name="data_version">OpenStreetMap podaci: %s</string>
<string name="tracks_title">Rute</string>
<string name="category_hotel">hotel</string>
<string name="category_toilet">WC</string>
<string name="track_recording">Snimanje Rute</string>
<string name="bookmarks_import">Uvoz Oznaka i Ruta</string>
<plurals name="tracks">
<item quantity="one">%d ruta</item>
<item quantity="few">%d rute</item>
<item quantity="other">%d ruta</item>
</plurals>
<string name="bookmarks_export">Izvoz svih Oznaka i Ruta</string>
<string name="start_track_recording">Snimi Rutu</string>
<string name="stop_track_recording">Zaustavi snimanje Rute</string>
<string name="track_recording_alert_title">Spremi u Oznake i Rute?</string>
<string name="track_recording_toast_nothing_to_save">Ruta je prazna - nema ništa za spremiti</string>
<string name="edit_track">Izmijeni Rutu</string>
<string name="pref_backup_title">Sigurnosna kopija Oznaka i Ruta</string>
<string name="pref_backup_now_summary_empty_lists">Nema Oznaka i Ruta za izradu sigurnosne kopije</string>
<string name="share_track">Podijeli Rutu</string>
<string name="placepage_edit_bookmark_button">Uredi Oznaku</string>
<string name="bookmark_lists_hide_all">Sakrij sve</string>
<plurals name="bookmarks_places">
<item quantity="one">%d Oznaka</item>
<item quantity="few">%d Oznake</item>
<item quantity="other">%d Oznaka</item>
</plurals>
<string name="bookmarks_create_new_group">Kreiraj novu Listu</string>
<string name="bookmarks_error_message_share_general">Nije moguće podijeliti zbog greške u aplikaciji</string>
<string name="bookmarks_error_message_share_empty">Nije moguće dijeliti praznu Lista</string>
<string name="bookmarks_error_title_empty_list_name">Naziv ne može biti prazan</string>
<string name="bookmarks_error_message_empty_list_name">Molimo unesite naziv Liste</string>
<string name="bookmarks_new_list_hint">Nova Lista</string>
<string name="bookmarks_error_title_list_name_already_taken">Taj naziv je već zauzet</string>
<string name="bookmarks_error_message_list_name_already_taken">Molimo odaberite drugi naziv</string>
<string name="bookmarks_empty_list_title">Ova Lista je prazna</string>
<string name="bookmarks_empty_list_message">Za dodavanje Oznake dotaknite mjesto na karti, a zatim dodirnite ikonu zvjezdice</string>
<string name="sort_bookmarks">Sortiraj Oznake</string>
<string name="bookmark_color">Boja Oznake</string>
<string name="share_my_location">Podijeli moju lokaciju</string>
<string name="pref_zoom_title">Gumbi za zumiranje</string>
<string name="pref_map_3d_title">Pogled iz perspektive</string>
<string name="pref_map_3d_buildings_title">3D zgrade</string>
<string name="pref_tts_enable_title">Glasovne najave</string>
<string name="pref_tts_street_names_title">Najavi nazive ulica</string>
<string name="pref_tts_street_names_description">Kada je omogućeno, naziv ulice ili izlaza gdje koji treba skrenuti bit će izgovoren naglas.</string>
<string name="pref_tts_language_title">Jezik glasovnih najava</string>
<string name="pref_tts_test_voice_title">Testiranje glasovnih najava</string>
<string name="pref_tts_playing_test_voice">Provjerite glasnoću ili sistemske postavke za pretvaranje teksta u govor ako sada ne čujete glas</string>
<string name="pref_tts_unavailable">Nije dostupno</string>
<string name="pref_map_auto_zoom">Automatsko zumiranje</string>
<string name="search_show_on_map">Prikaži na karti</string>
<string name="feedback">Povratne informacije</string>
<string name="faq">Često postavljana pitanja</string>
<string name="how_to_support_us">Volontiraj i poboljšaj CoMaps</string>
<string name="compass_calibration_recommended">Poboljšajte preciznost pokazivača smjera gibanja kruženjem telefona u obliku osmice kako biste kalibrirali kompas.</string>
<string name="compass_calibration_required">Pomičite telefon u obliku figure osmice kako biste kalibrirali kompas i popravili strelicu indikatora smjera na karti.</string>
<string name="long_tap_toast">Ponovno dugo dodirnite kartu da biste prikazali sučelje</string>
<string name="downloader_update_all_button">Ažuriraj sve</string>
<string name="downloader_cancel_all">Otkaži sve</string>
<string name="downloader_near_me_subtitle">U mojoj blizini</string>
<string name="downloader_download_all_button">Preuzmi sve</string>
<string name="downloader_delete_map_while_routing_dialog">Za brisanje karte, molimo prvo zaustavite navigaciju</string>
<string name="routing_failed_cross_mwm_building">Rute se mogu kreirati samo ako su u potpunosti unutar karte jedne regije.</string>
<string name="downloader_download_map">Preuzmi kartu</string>
<string name="downloader_delete_map">Obriši kartu</string>
<string name="downloader_update_map">Ažuriraj kartu</string>
<string name="dialog_routing_select_closer_end">Molimo odaberite odredišnu točku koja se nalazi bliže cesti</string>
<string name="dialog_routing_change_intermediate">Nije moguće pronaći međutočku</string>
<string name="dialog_routing_intermediate_not_determined">Molimo prilagodite svoju međutočku</string>
<string name="dialog_routing_system_error">Sistemska greška</string>
<string name="dialog_routing_application_error">Nije moguće napraviti rutu zbog greške u aplikaciji</string>
<string name="dialog_routing_try_again">Pokušajte ponovno</string>
</resources>

View File

@@ -163,7 +163,7 @@
<!-- Alert message that we can't run Map Storage settings due to some reasons. -->
<string name="cant_change_this_setting">Le impostazioni di archiviazione delle mappe sono al momento disabilitate</string>
<!-- Alert message that downloading is in progress. -->
<string name="downloading_is_active">Scaricamento mappa in corso</string>
<string name="downloading_is_active">Lo scaricamento della mappa è in corso</string>
<!-- Share my position using SMS, %1$@ contains om:// and %2$@ https://comaps.app link WITHOUT NAME. @NOTE non-ascii symbols in the link will result in max 70 characters SMS instead of 140. -->
<string name="my_position_share_sms">Guarda la mia posizione in CoMaps! %1$s o %2$s Non hai scaricato l\'app? La puoi scaricare da qui: https://www.comaps.app/download/</string>
<!-- Subject for emailed bookmark -->
@@ -219,7 +219,7 @@
<!-- Settings «Route» category: «Test Voice Directions» title -->
<string name="pref_tts_test_voice_title">Prova le indicazioni vocali</string>
<!-- Settings «Route» category: Pop-up message when clicking «Test Voice Directions» -->
<string name="pref_tts_playing_test_voice">Controlla il volume o le impostazioni del sistema di sintesi vocale se non senti la voce</string>
<string name="pref_tts_playing_test_voice">Controlla il volume o le impostazioni del sistema di sintesi vocale se ora non senti la voce</string>
<!-- Settings «Route» category: «Tts unavailable» subtitle -->
<string name="pref_tts_unavailable">Non disponibile</string>
<string name="pref_map_auto_zoom">Zoom automatico</string>
@@ -291,7 +291,7 @@
<!-- location service disabled -->
<string name="enable_location_services">Abilita i servizi di localizzazione</string>
<string name="save">Salva</string>
<string name="create">Crea</string>
<string name="create">crea</string>
<!-- red color -->
<string name="red">Rosso</string>
<!-- yellow color -->
@@ -872,7 +872,7 @@
<string name="delete_track_dialog_title">Eliminare %s?</string>
<string name="pref_tts_no_system_tts_short">Motore testo - parlato non trovato, controlla le impostazioni dell\'app</string>
<string name="avoid_steps">Evita scale</string>
<string name="unknown_power_output">Sconosciuto</string>
<string name="unknown_power_output">sconosciuto</string>
<string name="charge_socket_type2">Tipo 2 (senza cavo)</string>
<string name="charge_socket_type2_cable">Tipo 2 (con cavo)</string>
<string name="charge_socket_type1">Tipo 1</string>
@@ -896,6 +896,4 @@
<string name="editor_submit">Conferma</string>
<string name="charge_socket_chademo">CHAdeMO</string>
<string name="avoid_paved">Evita le strade asfaltate</string>
<string name="charge_socket_schuko">Domestico EU</string>
<string name="power_management">Risparmio energetico</string>
</resources>

View File

@@ -1,374 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_site_url">https://comaps.app/</string>
<string name="back">Dehweles</string>
<string name="cancel">Hedhi</string>
<string name="delete">Dilea</string>
<string name="download_maps">Iskarga Mappys</string>
<string name="kilometres">Kilometrow</string>
<string name="miles">Mildiryow</string>
<string name="later">Wosa henna</string>
<string name="search">Hwilas</string>
<string name="search_map">Hwilas Mappa</string>
<string name="limited_accuracy">Kewerder Strothys</string>
<string name="zoom_to_country">Diskwedhes war dhe mappa</string>
<string name="try_again">Assayewgh Arta</string>
<string name="about_menu_title">A-dro CoMaps</string>
<string name="about_proposition_3">• Dhywarlinen, uskis ha kesstrothys</string>
<string name="location_settings">Settyansow GPS</string>
<string name="close">Degea</string>
<string name="download">Iskarga</string>
<string name="download_resources_continue">Mos yn dhe Mappa</string>
<string name="download_country_ask">Iskarga %1$s? (%2$s)</string>
<string name="update_country_ask">Nowedhi %1$s? (%2$s)</string>
<string name="pause">Powes</string>
<string name="continue_button">Pesyewgh</string>
<string name="bookmarks">Lyververkys</string>
<string name="bookmarks_and_tracks">Lyververkys ha Lerghow</string>
<string name="name">Hanow</string>
<string name="address">Trigva</string>
<string name="list">Rol</string>
<string name="settings">Settyansow</string>
<string name="move_maps">Gwaya mappys?</string>
<string name="measurement_units">Systemow musurans</string>
<string name="measurement_units_summary">Dewis yntra mildiryow ha kilometrow</string>
<string name="category_food">Gwara boos</string>
<string name="category_transport">Karyans</string>
<string name="category_fuel">Petrol</string>
<string name="category_parking">Parkyans</string>
<string name="category_hotel">Ostel</string>
<string name="category_tourism">Tornyaseth</string>
<string name="category_entertainment">Didhan</string>
<string name="category_atm">Toll y\'n fos</string>
<string name="category_children">Dy\'gol teylu</string>
<string name="category_bank">Arghanti</string>
<string name="category_pharmacy">Ferylva</string>
<string name="category_hospital">Klavji</string>
<string name="category_toilet">Attesva</string>
<string name="category_post">Post</string>
<string name="category_police">Kreslu</string>
<string name="category_recycling">Eylgylghyans</string>
<string name="category_water">Dowr</string>
<string name="category_rv">Komodytys Karavans</string>
<string name="description">Notennow</string>
<string name="load_kmz_title">Ow Karga Lyververkys</string>
<string name="bookmark_share_email_subject">Dydh da, checkyewgh ow pynn yn CoMaps!</string>
<string name="my_position_share_email_subject">Dydh da, checkyewgh ow tyller a\'n jydh war an mappa CoMaps!</string>
<string name="share">Kevrenna</string>
<string name="email">Ebost</string>
<string name="done">Gwrys</string>
<string name="data_version">Data OpenStreetMap: %s</string>
<string name="tracks_title">Lerghow</string>
<string name="length">Hys</string>
<string name="share_my_location">Kevrennewgh Ow Tyller</string>
<string name="prefs_group_general">Settyansow mayni</string>
<string name="prefs_group_information">Kedhlow</string>
<string name="prefs_group_route">Navygacyon</string>
<string name="pref_zoom_summary">Displetya war an mappa</string>
<string name="pref_map_style_title">Fordh Nos</string>
<string name="auto">Awtomatek</string>
<string name="pref_map_3d_title">Gwel gemusur</string>
<string name="pref_map_3d_buildings_title">Drehevyansow lymnys tri</string>
<string name="pref_tts_enable_title">Danvonadow dre lev</string>
<string name="pref_tts_street_names_title">Deklarya Henwyn Stretow</string>
<string name="pref_tts_language_title">Tavas Lev</string>
<string name="pref_tts_test_voice_title">Prov Tuyow Dre Lev</string>
<string name="pref_tts_unavailable">Nakavadow</string>
<string name="search_show_on_map">Gweles war mappa</string>
<string name="menu">Rol</string>
<string name="website">Gwiasva</string>
<string name="news">Nowodhow</string>
<string name="panoramax">Imach Panoramax</string>
<string name="feedback">Dasliv</string>
<string name="rate_the_app">Breusyans an app</string>
<string name="help">Gweres</string>
<string name="faq">Govynnow Kemmyn</string>
<string name="donate">Argevri</string>
<string name="copyright">Gwirbryntyan</string>
<string name="report_a_bug">Reportya unn kudyn</string>
<string name="downloader_update_all_button">Nowedhi Oll</string>
<string name="downloader_cancel_all">Dilea Oll</string>
<string name="downloader_near_me_subtitle">Dhe dhorn</string>
<string name="downloader_status_maps">Mappys</string>
<string name="downloader_download_all_button">Iskarga Oll</string>
<string name="downloader_download_map">Iskarga mappa</string>
<string name="downloader_retry">Hwilewgh arta</string>
<string name="downloader_delete_map">Dilea Mappa</string>
<string name="downloader_update_map">Nowedhi Mappa</string>
<string name="google_play_services">Servis GPS gans Google</string>
<string name="routing_not_enough_space">Nyns eus lowr dalghuster</string>
<string name="enable_location_services">Gallosegi Servisyow GPS mar pleg</string>
<string name="create">Gul</string>
<string name="red">Rudh</string>
<string name="yellow">Melyn</string>
<string name="blue">Blou</string>
<string name="green">Gwyrdh</string>
<string name="purple">Purpur</string>
<string name="orange">Melynrudh</string>
<string name="brown">Godhlos</string>
<string name="pink">Kigliw</string>
<string name="deep_purple">Rudhlas</string>
<string name="light_blue">Glaswyn</string>
<string name="teal">Gwerlas</string>
<string name="lime">Gwerwyn</string>
<string name="deep_orange">Rudhvelyn</string>
<string name="gray">Loos</string>
<string name="blue_gray">Glas</string>
<string name="dialog_routing_check_gps">Checkya sinell GPS</string>
<string name="dialog_routing_location_turn_on">Gallosegi servisyow GPS</string>
<string name="dialog_routing_change_end">Desedha destnans</string>
<string name="dialog_routing_system_error">Error gans an kevreyth</string>
<string name="dialog_routing_try_again">Assayewgh arta mar pleg</string>
<string name="not_now">Na Vynnav Lemmyn</string>
<string name="search_select_map">Dewis Mappa</string>
<string name="show">Showya</string>
<string name="hide">Kudha</string>
<string name="categories">Klassow</string>
<string name="history">Istori</string>
<string name="search_history_title">Istori Hwilas</string>
<string name="clear_search">Dilea Istori Hwilas</string>
<string name="read_in_wikipedia">Wikipedya</string>
<string name="wikimedia_commons">Wikimedia Commons</string>
<string name="p2p_your_location">Agas Tyller</string>
<string name="p2p_start">Dalleth</string>
<string name="next_button">Nessa</string>
<string name="editor_time_add">Addya Rol Vetyansow</string>
<string name="editor_time_delete">Dilea Rol Vetyansow</string>
<string name="editor_time_allday">Dres an Jorna (24 ourys)</string>
<string name="editor_time_open">Ygor</string>
<string name="editor_time_close">Deges</string>
<string name="editor_time_add_closed">Addya Ourys Nanegys</string>
<string name="editor_time_title">Ourys Negys</string>
<string name="editor_time_advanced">Fordh Avonsys</string>
<string name="editor_time_simple">Fordh Sempel</string>
<string name="editor_hours_closed">Ourys Nanegys</string>
<string name="editor_correct_mistake">Ewna kammgemeryans</string>
<string name="editor_add_select_location">Dewis Tyller</string>
<string name="editor_report_problem_send_button">Danvon</string>
<string name="editor_report_problem_title">Kudyn</string>
<string name="daily">Dedhyek</string>
<string name="twentyfour_seven">24/7</string>
<string name="day_off_today">Deges hedhyw</string>
<string name="day_off">Deges</string>
<string name="closed">Deges</string>
<string name="edit_opening_hours">Golegi ourys negys</string>
<string name="no_osm_account">Vyth akont OpenStreetMap?</string>
<string name="register_at_openstreetmap">Kovskrifa orth OpenStreetMap</string>
<string name="login">Omgelmi</string>
<string name="login_osm">Omgelmi dhe OpenStreetMap</string>
<string name="logout">Omdenna</string>
<string name="edit_place">Golegi Le</string>
<string name="add_language">Addya unn tavas</string>
<string name="street">Stret</string>
<string name="house_number">Niver drehevyans</string>
<string name="details">Manylyon</string>
<string name="social_media">Media Socyal</string>
<string name="building">Drehevyans</string>
<string name="add_street">Addya unn stret</string>
<string name="empty_street_name_error">Ynworra unn hanow street mar pleg</string>
<string name="choose_language">Dewis unn tavas</string>
<string name="choose_street">Dewis unn stret</string>
<string name="editor_add_phone">Addya Niver Fon</string>
<string name="level">Leur</string>
<string name="level_value_generic">Leur: %s</string>
<string name="downloader_update_maps">Nowedhi Mappys</string>
<string name="downloader_search_field_hint">Kavos mappa</string>
<string name="editor_login_error_dialog">Error dres omgelmi</string>
<string name="editor_edit_place_name_hint">Hanow a an le</string>
<string name="editor_default_language_hint">Dell yw skrifys yn an tavas teythiek</string>
<string name="editor_edit_place_category_title">Klass</string>
<string name="detailed_problem_description">Deskrifans manylys a an kudyn</string>
<string name="editor_report_problem_other_title">Kudyn dyffrans</string>
<string name="download_over_mobile_header">Iskarga dres unn kevren klapkodh?</string>
<string name="error_enter_correct_house_number">Ynworra unn niver trigva ewn</string>
<string name="editor_building_levels">Leur (ow komprehendya leur a-woles, a-der to)</string>
<string name="editor_zip_code">Kod Post</string>
<string name="error_enter_correct_zip_code">Ynworra unn kod post ewn</string>
<string name="editor_other_info">Noten dhe bodhogyon OpenStreetMap (dre dhewis)</string>
<string name="editor_more_about_osm">Moy a-dro OpenStreetMap</string>
<string name="editor_osm_history">Agas istori golegi</string>
<string name="editor_osm_notes">Agas notennow mappow</string>
<string name="editor_operator">Oberador</string>
<string name="operator">Oberador: %s</string>
<string name="kilometers_per_hour">kdo</string>
<string name="miles_per_hour">mdo</string>
<string name="hour">o</string>
<string name="minute">mynysen</string>
<string name="placepage_more_button">Moy</string>
<string name="placepage_edit_bookmark_button">Pennskrifa Lyververk</string>
<string name="placepage_personal_notes_hint">Notennow privedh (tekst bo html)</string>
<string name="editor_reset_edits_message">Dilea oll chanjyow dhywarlinen?</string>
<string name="editor_reset_edits_button">Dilea</string>
<string name="editor_remove_place_message">Dilea le keworrys?</string>
<string name="editor_remove_place_button">Dilea</string>
<string name="editor_place_doesnt_exist">Le na eksistya</string>
<string name="delete_place_empty_comment_error">Provia an acheson rag dilea an le mar pleg</string>
<string name="editor_business_vacant_button">Negys usi gwag</string>
<string name="editor_mark_business_vacant_title">Sin negys dell gwag</string>
<string name="editor_submit">Danvon</string>
<string name="error_enter_correct_phone">Ynworra unn niver fon ewn</string>
<string name="error_enter_correct_web">Ynworra unn trigva gwiasva ewn</string>
<string name="error_enter_correct_email">Ynworra unn trigva ebost ewn</string>
<string name="editor_level">Leur (0 usi leur a-woles)</string>
<string name="error_enter_correct_level">Ynworra unn niver leur ewn</string>
<string name="error_enter_correct_facebook_page">Ynworra unn trigva Lyverenep, akont, bo hanow folen ewn</string>
<string name="error_enter_correct_instagram_page">Ynworra unn hanow usyer Instagram bo trigva gwiasva ewn</string>
<string name="error_enter_correct_twitter_page">Ynworra unn hanow usyer Twytter bo trigva gwiasva ewn</string>
<string name="error_enter_correct_vk_page">Ynworra unn hanow usyer VK bo trigva gwiasva ewn</string>
<string name="error_enter_correct_line_page">Ynworra unn ID LINE bo trigva gwiasva ewn</string>
<string name="error_enter_correct_fediverse_page">Ynworra unn hanow usyer Mastodon bo trigva gwiasva ewn</string>
<string name="error_enter_correct_bluesky_page">Ynworra unn hanow usyer Bluesky bo trigva gwiasva ewn</string>
<string name="placepage_add_place_button">Addya Le dhe OpenStreetMap</string>
<string name="osm_note_hint">Bo, yn tereylys, skrifa unn noten dhe kemeneth OpenStreetMap, ha orth nebonan yll addya bo ewnhe unn le omma.</string>
<string name="osm_note_toast">Noten a vydh danvon dhe OpenStreetMap</string>
<string name="editor_share_to_all_dialog_title">A vynn\'ta mos danvon dhe oll usyoryon?</string>
<string name="navigation_stop_button">Hedhi</string>
<string name="track_recording">Y\'n eur ma rekordya an lergh</string>
<string name="accept">Amyttya</string>
<string name="decline">Nagha</string>
<string name="mobile_data_option_today">Unn Hedhyw</string>
<string name="traffic_update_app">Nowedhi CoMaps mar pleg</string>
<string name="feedback_general">Dasliv Mayni</string>
<string name="learn_more">Dyski moy</string>
<string name="button_plan">Devisya</string>
<string name="placepage_remove_stop">Dilea Powes</string>
<string name="placepage_add_stop">Addya Powes</string>
<string name="error_enter_correct_name">Ynworra unn hanow ewn mar pleg</string>
<string name="bookmark_lists">Rolyow</string>
<string name="bookmark_lists_hide_all">Keles oll</string>
<string name="bookmark_lists_show_all">Diskwedhes oll</string>
<string name="bookmarks_create_new_group">Gul unn rol nowydh</string>
<string name="bookmarks_import">Ynperthi Lyververkys ha Lerghow</string>
<string name="bookmarks_error_message_empty_list_name">Ynworra an hanow rol mar pleg</string>
<string name="bookmarks_new_list_hint">Rol nowydh</string>
<string name="bookmarks_error_title_list_name_already_taken">An hanow ma usi seulabrys yn usyans</string>
<string name="bookmarks_error_message_list_name_already_taken">Dewis aral hanow mar pleg</string>
<string name="please_wait">Gortos mar pleg…</string>
<string name="phone_number">Niver fon</string>
<string name="profile">Akont OpenStreetMap</string>
<string name="restore">Astiveri</string>
<string name="privacy">Privetter</string>
<string name="privacy_policy">Polici privetter</string>
<string name="power_management">Dyghtyans batri</string>
<string name="terms_of_use">Termys usadow</string>
<string name="button_layer_traffic">Data daromdak</string>
<string name="subway">Metro</string>
<string name="layers_title">Gisyow ha gwiskasow mappow</string>
<string name="bookmarks_empty_list_title">An rol ma usi gwag</string>
<string name="category_desc_more">…moy</string>
<string name="export_file">Esperthi KMZ</string>
<string name="export_file_gpx">Esperthi GPX</string>
<string name="delete_list">Dilea rol</string>
<string name="speedcams_alert_title">Kameras finweth tooth</string>
<string name="place_description_title">Deskrifans Le</string>
<string name="pref_tts_speedcams_auto">Gwarnya a tothya</string>
<string name="define_to_avoid_btn">Styrya fordhow rag avodya</string>
<string name="toll_road">Tollfordh</string>
<string name="unpaved_road">Fordh dor</string>
<string name="ferry_crossing">Kowbalhyns</string>
<string name="yes">Ya</string>
<string name="no">Na</string>
<string name="yes_available">Ya</string>
<string name="no_available">Na</string>
<string name="capacity">Dalghuster: %s</string>
<string name="network">Rosweyth: %s</string>
<string name="trip_finished">Hwi re wrug!</string>
<string name="ok">Da lowr</string>
<string name="sort">Sortya…</string>
<string name="sort_bookmarks">Sortya lyververkys</string>
<string name="by_default">Dre defowt</string>
<string name="by_type">Dre eghen</string>
<string name="by_distance">Dre pellder</string>
<string name="by_date">Dre dydh</string>
<string name="by_name">Dre hanow</string>
<string name="near_me_sorttype">Dhe dhorn</string>
<string name="others_sorttype">Re erel</string>
<string name="food_places">Boos</string>
<string name="tourist_places">Tornyaseth</string>
<string name="museums">Gwithtiow</string>
<string name="parks">Parkow</string>
<string name="swim_places">Neuvya</string>
<string name="mountains">Menydhyow</string>
<string name="animals">Bestes</string>
<string name="hotels">Ostelyow</string>
<string name="buildings">Drehevyansow</string>
<string name="money">Mona</string>
<string name="shops">Gwerthjiow</string>
<string name="parkings">Parkyans</string>
<string name="fuel_places">Petrolva</string>
<string name="medicine">Medhegneth</string>
<string name="search_in_the_list">Hwilas yn an rol</string>
<string name="religious_places">Leow kryjyk</string>
<string name="select_list">Dewis rol</string>
<string name="transit_not_found">Navygacyon metro yn an pow ma usi nakavadow hwath</string>
<string name="button_layer_isolines">Linen kettres</string>
<string name="elevation_profile_min_elevation">Ughelder ispoyntel</string>
<string name="elevation_profile_max_elevation">Ughelder ughboyntel</string>
<string name="elevation_profile_difficulty">Kaletter</string>
<string name="elevation_profile_distance">Pellder:</string>
<string name="elevation_profile_time">Prys:</string>
<string name="isolines_toast_zooms_1_10">Moghhe dhe furya linen kettres</string>
<string name="download_map_title">Iskarga an mappa bys simpel</string>
<string name="disk_error_title">Error plasen</string>
<string name="connection_failure">Defowt kevren</string>
<string name="change_map_locale">Tavas mappow</string>
<string name="splash_subtitle">Data mappow a OpenStreetMap</string>
<string name="telegram_url">https://t.me/CoMapsApp/</string>
<string name="instagram_url">https://www.instagram.com/comaps.app/</string>
<string name="tts_info_link">https://www.comaps.app/support/tts-configuration-guide-for-android/</string>
<string name="osm_wiki_about_url">https://wiki.openstreetmap.org/wiki/About_OpenStreetMap</string>
<string name="comma_separated_pair">%1$s, %2$s</string>
<string name="app_tip_00">Meur ras rag usya a\'gan mappys drehevys gans an kemeneth!</string>
<string name="app_tip_01">Gans agas argevrohow ha skoodhyans, ni a yll gul an mappys an gwella yn an Nor!</string>
<string name="app_tip_02">Yw da genes a\'gan app? Argevri mar pleg dhe skoodhya an displegyans! Yw na da genes a\'n hwath? Mar pleg, kedhlewgh dhyn prag ha ni a ewnhe a\'n!</string>
<string name="app_tip_06">Hwi a yll gweres treylya a\'gan app yn agas tavas.</string>
<string name="aa_connected_title">Dha vos lemmyn rosweythys dhe Android Auto</string>
<string name="aa_grant_permissions">Grontya grontys</string>
<string name="button_layer_outdoor">Yn-mes</string>
<string name="browser_not_available">Peurell nakavadow</string>
<string name="volume">Ughelder</string>
<string name="bookmarks_export">Esperthi oll Lyververkys ha Lerghow</string>
<string name="clear_the_search">Dilea an hwithrans</string>
<string name="zoom_in">Moghhe</string>
<string name="zoom_out">Lehe</string>
<string name="website_menu">Kevren Rol Voos</string>
<string name="view_menu">Vu Rol Voos</string>
<string name="open_in_app">Ygeri yn Aral App</string>
<string name="select_option">Dewis dewis</string>
<string name="outdoor_seating">Esedhow yn-mes</string>
<string name="start_track_recording">Rekordya Lergh</string>
<string name="choose_color">Dewis Kolor</string>
<string name="edit_track">Golegi Lergh</string>
<string name="nav_auto">Awtomatek yn navygacyon</string>
<string name="pref_left_button_title">Boton kledh dewisyow</string>
<string name="backup_interval_every_day">Dedhyek</string>
<string name="backup_interval_every_week">Seythennyek</string>
<string name="clear">Dilea</string>
<string name="vehicle">Karr</string>
<string name="pedestrian">Kerdher</string>
<string name="bicycle">Diwros</string>
<string name="ruler">Rewlell</string>
<string name="bookmark_color">Kolor lyververk</string>
<string name="about_help">A-dro ha Gweres</string>
<string name="share_track">Kevren Lergh</string>
<string name="delete_track_dialog_title">Dilea %s?</string>
<string name="unknown_power_output">ankoth</string>
<string name="charge_socket_type2">Eghen diw (na fun)</string>
<string name="charge_socket_type2_cable">Eghen diw (gans fun)</string>
<string name="charge_socket_type2_combo">Eghen diw kesunyans</string>
<string name="charge_socket_type1">Eghen unn</string>
<string name="charge_socket_nacs">NACS</string>
<string name="charge_socket_chademo">CHAdeMO</string>
<string name="charge_socket_schuko">Unyans Europek a-bervedh</string>
<string name="unknown_socket_type">ankoth kraw</string>
<string name="edit_socket_info_tooltip">Gul krawyow nowydh bo golegi krowyow alemmyn.</string>
<string name="charging_station_available_sockets">Krawyow kavadow</string>
<string name="charge_socket_unknown_other">Aral bo anokth</string>
<string name="charge_socket_count">Somm</string>
<string name="charge_socket_power">Gallosedh (kW)</string>
<string name="editor_socket">Golegi kraw</string>
<string name="unknown_count">ankoth</string>
<string name="error_value_must_be_positive">Res an niver positiv</string>
<string name="error_invalid_number">Niver anewn</string>
<string name="offline_explanation_title">Mappys Dhywarlinen</string>
</resources>

View File

@@ -281,7 +281,7 @@
<!-- location service disabled -->
<string name="enable_location_services">Įjunkite vietovės tarnybas</string>
<string name="save">Įrašyti</string>
<string name="create">Kurti</string>
<string name="create">kurti</string>
<!-- red color -->
<string name="red">Raudonas</string>
<!-- yellow color -->
@@ -401,8 +401,8 @@
<string name="twentyfour_seven">24×7</string>
<string name="day_off_today">Šiandien uždaryta</string>
<string name="day_off">Uždaryta</string>
<string name="opens_in">Atidaroma už %s</string>
<string name="closes_in">Uždaroma už %s</string>
<string name="opens_in">Atsidaro už %s</string>
<string name="closes_in">sidaro už %s</string>
<string name="closed">Uždaryta</string>
<string name="edit_opening_hours">Taisyti darbo valandas</string>
<string name="no_osm_account">Neturite „OpenStreetMap“ paskyros?</string>
@@ -510,8 +510,8 @@
<!-- Displayed when saving some edits to the map to warn against publishing personal data -->
<string name="editor_share_to_all_dialog_title">Ar tikrai norite šiuos pakeitimus paviešinti?</string>
<!-- Dialog before publishing the modifications to the public map. -->
<string name="editor_share_to_all_dialog_message_1">Įsitikinkite, kad neįvedėte jokių asmeninių duomenų.</string>
<string name="editor_share_to_all_dialog_message_2">„OpenStreetMap“ redaktoriai peržiūrės pakeitimus ir su jumis susisieks, jei kiltų klausimų.</string>
<string name="editor_share_to_all_dialog_message_1">Įsitikinkite, kad neįvedėte jokių asmeninių duomenų</string>
<string name="editor_share_to_all_dialog_message_2">„OpenStreetMap“ redaktoriai peržiūrės pakeitimus ir su jumis susisieks, jei kiltų klausimų</string>
<string name="navigation_stop_button">Stabdyti</string>
<!-- Shown as toast when starting the recent track recording -->
<string name="track_recording">Trasa įrašoma</string>
@@ -870,22 +870,4 @@
<string name="error_invalid_number">Netinkamas skaičius</string>
<string name="offline_explanation_title">Žemėlapio parsisiuntimas</string>
<string name="offline_explanation_text">Kad galėtumėte matyti šios vietovės žemėlapį ir planuoti jame keliones, pirma turite jį atsiųsti.</string>
<string name="avoid_paved">Vengti grįstų kelių</string>
<string name="opens_at">Atidaroma %s</string>
<string name="closes_at">Uždaroma %s</string>
<string name="opens_day_at">Atidaroma %1$s , %2$s</string>
<string name="closes_day_at">Uždaroma %1$s, %2$s</string>
<plurals name="minutes_short">
<item quantity="one">%d min.</item>
<item quantity="few">%d min.</item>
<item quantity="many">%d min.</item>
<item quantity="other">%d min.</item>
</plurals>
<string name="editor_business_vacant_button">Erdvė nenaudojama</string>
<string name="editor_mark_business_vacant_title">Pažymėti erdvę kaip nenaudojamą</string>
<string name="editor_mark_business_vacant_description">Pasinaudokite šia funkcija, jei šioje erdvėje buvusi įmonė ar įstaiga išsikėlė ir ši erdvė dabar nenaudojama.</string>
<string name="editor_submit">Pateikti</string>
<string name="power_management">Energijos naudojimas</string>
<string name="charge_socket_schuko">Buitinis ES</string>
<string name="list_description_empty">Paredaguokite sąrašą ir pridėkite aprašymą</string>
</resources>

View File

@@ -896,7 +896,4 @@
<string name="editor_submit">Send</string>
<string name="charge_socket_schuko">Schuko</string>
<string name="power_management">Strømstyring</string>
<string name="navigation_start_tts_disabled_message">Taleveiledninger deaktivert: TTS-motor ikke tilgjengelig</string>
<string name="navigation_start_tts_message">"Starter navigering, taleveiledningsspråk: "</string>
<string name="prefs_speed_cameras_information">Fotoboksvarsler er deaktivert i land hvor varsler er forbudt i henhold til lokal lovgivning.</string>
</resources>

View File

@@ -907,7 +907,4 @@
<string name="editor_mark_business_vacant_description">Gebruik dit als het bedrijf is verhuisd en de ruimte leeg is en klaar is voor een nieuwe huurder.</string>
<string name="power_management">Energiebeheer</string>
<string name="charge_socket_schuko">Binnenlandse EU</string>
<string name="navigation_start_tts_message">"Navigatie starten, taal voor steminstructie: "</string>
<string name="prefs_speed_cameras_information">Waarschuwingen voor flitsers zijn uitgeschakeld in landen waar deze wettelijk zijn verboden.</string>
<string name="navigation_start_tts_disabled_message">Spraakinstructies uitgeschakeld: TTS-engine niet beschikbaar</string>
</resources>

View File

@@ -915,7 +915,4 @@
<string name="pref_tts_no_system_tts_short">Nie znaleziono silnika text-to-speech, sprawdź ustawienia aplikacji</string>
<string name="list_description_empty">Edytuj listę, aby dodać opis</string>
<string name="editor_submit">Wyślij</string>
<string name="prefs_speed_cameras_information">Ostrzeżenia o fotoradarach są wyłączone w krajach, gdzie takie alerty są zabronione prawnie.</string>
<string name="navigation_start_tts_message">"Startowanie nawigacji, język komunikatów głosowych: "</string>
<string name="navigation_start_tts_disabled_message">Komunikaty głosowe są wyłączone: silnik TTS jest niedostępny</string>
</resources>

View File

@@ -631,12 +631,4 @@
<string name="bicycle">Kolo</string>
<string name="unknown_power_output">neznano</string>
<string name="ruler">Ravnilo</string>
<string name="opens_at">Odpre se ob %s</string>
<string name="closes_at">Zapre se ob %s</string>
<plurals name="minutes_short">
<item quantity="one">%d min</item>
<item quantity="two">%d min</item>
<item quantity="few">%d min</item>
<item quantity="other">%d min</item>
</plurals>
</resources>

View File

@@ -510,8 +510,8 @@
<string name="placepage_more_button">更多</string>
<string name="placepage_edit_bookmark_button">编辑书签</string>
<string name="placepage_personal_notes_hint">个人注记(文字或 html</string>
<string name="editor_reset_edits_message">舍弃所有本地更改?</string>
<string name="editor_reset_edits_button">舍弃</string>
<string name="editor_reset_edits_message">重置所有本地更改?</string>
<string name="editor_reset_edits_button">重置</string>
<string name="editor_remove_place_message">删除已添加的地点?</string>
<string name="editor_remove_place_button">删除</string>
<string name="editor_place_doesnt_exist">该地点不存在</string>
@@ -907,9 +907,4 @@
<string name="editor_mark_business_vacant_description">如果商铺已搬离且场地空置待租,请使用此选项。</string>
<string name="editor_submit">提交</string>
<string name="avoid_paved">避开铺装道路</string>
<string name="power_management">电源管理</string>
<string name="charge_socket_schuko">欧盟标准</string>
<string name="navigation_start_tts_message">"启动导航,语音指令语言: "</string>
<string name="prefs_speed_cameras_information">在当地法律禁止发出警报的国家/地区,测速摄像头警告功能将被禁用。</string>
<string name="navigation_start_tts_disabled_message">语音指令已禁用TTS 引擎不可用</string>
</resources>

View File

@@ -35,11 +35,6 @@
<string name="pref_settings_general" translatable="false">GeneralSettings</string>
<string name="pref_navigation" translatable="false">Navigation</string>
<string name="pref_information" translatable="false">Information</string>
<string name="pref_traffic" translatable="false">Traffic</string>
<string name="pref_traffic_http_enabled" translatable="false">TrafficHttpEnabled</string>
<string name="pref_traffic_http_url" translatable="false">TrafficHttpUrl</string>
<string name="pref_traffic_apps" translatable="false">TrafficApps</string>
<string name="pref_traffic_legacy_enabled" translatable="false">TrafficLegacyEnabled</string>
<string name="pref_transliteration" translatable="false">Transliteration</string>
<string name="pref_power_management" translatable="false">PowerManagment</string>
<string name="pref_keep_screen_on" translatable="false">KeepScreenOn</string>

View File

@@ -215,7 +215,6 @@
<!-- Settings information group in settings screen -->
<string name="prefs_group_information">Information</string>
<string name="prefs_group_route">Navigation</string>
<string name="prefs_group_traffic">Traffic information</string>
<string name="pref_zoom_title">Zoom buttons</string>
<string name="pref_zoom_summary">Display on the map</string>
<!-- Settings «Map» category: «Night style» title -->
@@ -790,24 +789,6 @@
<string name="enable_show_on_lock_screen_description">When enabled, the app will work on the lockscreen even when the device is locked.</string>
<!-- Current language of the map! -->
<string name="change_map_locale">Map language</string>
<!-- Enable live traffic data via HTTP (title) -->
<string name="traffic_http_enabled">Enable live traffic data</string>
<!-- Enable live traffic data via HTTP (description) -->
<string name="traffic_http_enabled_description">When enabled, the app will periodically retrieve traffic information from the configured URL.</string>
<!-- URL for live traffic data -->
<string name="traffic_http_url">Traffic service URL</string>
<!-- Status message indicating that user did not set a traffic URL yet. -->
<string name="traffic_http_url_not_set">Not set</string>
<!-- TraFF 0.8 apps from which to receive data (title) -->
<string name="traffic_apps">Use data from TraFF applications</string>
<!-- Status message indicating that no TraFF 0.8 apps are installed -->
<string name="traffic_apps_not_available">No apps installed</string>
<!-- Status message indicating that no TraFF 0.8 apps are currently selected -->
<string name="traffic_apps_none_selected">No apps salected</string>
<!-- Enable traffic data from TraFF 0.7 apps (title) -->
<string name="traffic_legacy_enabled">Use data from legacy TraFF applications</string>
<!-- Enable traffic data from TraFF 0.7 apps (description) -->
<string name="traffic_legacy_enabled_description">When enabled, the app will receive and process traffic data from legacy TraFF applications.</string>
<!-- OpenStreetMap text on splash screen -->
<string name="splash_subtitle">Map data from OpenStreetMap</string>
<!-- Telegram group url for the "?" About page -->
@@ -953,7 +934,6 @@
<string name="delete_track_dialog_title">Delete %s?</string>
<string name="pref_tts_no_system_tts_short">No text-to-speech engine found, check the app settings</string>
<string name="navigation_start_tts_message">"Starting Navigation, voice instruction language: "</string>
<string name="navigation_start_tts_disabled_message">"Voice instructions disabled: TTS engine not available"</string>
<string name="unknown_power_output">unknown</string>
<string name="charge_socket_type2">Type 2 (no cable)</string>
<string name="charge_socket_type2_cable">Type 2 (w/ cable)</string>

View File

@@ -191,36 +191,6 @@
android:widgetLayout="@layout/preference_switch"
android:order="5"/>
</PreferenceCategory>
<androidx.preference.PreferenceCategory
android:key="@string/pref_traffic"
android:title="@string/prefs_group_traffic"
android:order="4">
<SwitchPreferenceCompat
android:key="@string/pref_traffic_http_enabled"
android:title="@string/traffic_http_enabled"
app:singleLineTitle="false"
android:summary="@string/traffic_http_enabled_description"
android:defaultValue="true"
android:order="1"/>
<EditTextPreference
android:key="@string/pref_traffic_http_url"
android:title="@string/traffic_http_url"
app:singleLineTitle="false"
android:order="2"/>
<MultiSelectListPreference
android:key="@string/pref_traffic_apps"
android:title="@string/traffic_apps"
app:singleLineTitle="false"
android:order="3"/>
<SwitchPreferenceCompat
android:key="@string/pref_traffic_legacy_enabled"
android:title="@string/traffic_legacy_enabled"
app:singleLineTitle="false"
android:summary="@string/traffic_legacy_enabled_description"
android:defaultValue="true"
android:order="4"/>
</androidx.preference.PreferenceCategory>
<androidx.preference.PreferenceCategory
android:key="@string/pref_privacy"
android:title="@string/privacy"

View File

@@ -17,7 +17,6 @@ set(SRC
app/organicmaps/sdk/opengl/gl3stub.h
app/organicmaps/sdk/platform/GuiThread.hpp
app/organicmaps/sdk/platform/AndroidPlatform.hpp
app/organicmaps/sdk/traffxml/AndroidTraffSource.hpp
app/organicmaps/sdk/util/Distance.hpp
app/organicmaps/sdk/util/FeatureIdBuilder.hpp
app/organicmaps/sdk/vulkan/android_vulkan_context_factory.hpp
@@ -77,8 +76,6 @@ set(SRC
app/organicmaps/sdk/platform/PThreadImpl.cpp
app/organicmaps/sdk/platform/SecureStorage.cpp
app/organicmaps/sdk/platform/SocketImpl.cpp
app/organicmaps/sdk/traffxml/AndroidTraffSource.cpp
app/organicmaps/sdk/traffxml/SourceImpl.cpp
app/organicmaps/sdk/util/Config.cpp
app/organicmaps/sdk/util/GeoUtils.cpp
app/organicmaps/sdk/util/HttpClient.cpp
@@ -130,7 +127,6 @@ target_link_libraries(${PROJECT_NAME}
# icu
# agg
# vulkan_wrapper
traffxml
# Android libs
log

View File

@@ -182,8 +182,6 @@ public:
void Set3dMode(bool allow3d, bool allow3dBuildings);
void Get3dMode(bool & allow3d, bool & allow3dBuildings);
TrafficManager & GetTrafficManager() { return m_work.GetTrafficManager(); }
void SetMapLanguageCode(std::string const & languageCode);
std::string GetMapLanguageCode();

View File

@@ -1,7 +1,6 @@
#include "app/organicmaps/sdk/Framework.hpp"
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp"
#include "app/organicmaps/sdk/traffxml/AndroidTraffSource.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp"
@@ -35,26 +34,6 @@ JNIEXPORT void JNICALL Java_app_organicmaps_sdk_OrganicMaps_nativeInitFramework(
JNIEnv * env = jni::GetEnv();
jmethodID const methodId = jni::GetMethodID(env, *onComplete, "run", "()V");
env->CallVoidMethod(*onComplete, methodId);
ASSERT(g_framework, ("g_framework must be non-null"));
/*
* Add traffic sources for Android.
*/
jclass configClass = env->FindClass("app/organicmaps/sdk/util/Config");
jmethodID const getTrafficLegacyEnabledId = jni::GetStaticMethodID(env, configClass,
"getTrafficLegacyEnabled", "()Z");
jmethodID const applyTrafficLegacyEnabledId = jni::GetStaticMethodID(env, configClass,
"applyTrafficLegacyEnabled", "(Z)V");
jmethodID const getTrafficAppsId = jni::GetStaticMethodID(env, configClass,
"getTrafficApps", "()[Ljava/lang/String;");
jmethodID const applyTrafficAppsId = jni::GetStaticMethodID(env, configClass,
"applyTrafficApps", "([Ljava/lang/String;)V");
env->CallStaticVoidMethod(configClass, applyTrafficLegacyEnabledId,
env->CallStaticBooleanMethod(configClass, getTrafficLegacyEnabledId));
env->CallStaticVoidMethod(configClass, applyTrafficAppsId,
(jobjectArray)env->CallStaticObjectMethod(configClass, getTrafficAppsId));
});
}
}

View File

@@ -1,115 +0,0 @@
#include "AndroidTraffSource.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp"
namespace traffxml {
void AndroidTraffSourceV0_7::Create(TraffSourceManager & manager)
{
std::unique_ptr<AndroidTraffSourceV0_7> source = std::unique_ptr<AndroidTraffSourceV0_7>(new AndroidTraffSourceV0_7(manager));
manager.RegisterSource(std::move(source));
}
AndroidTraffSourceV0_7::AndroidTraffSourceV0_7(TraffSourceManager & manager)
: TraffSource(manager)
{
JNIEnv * env = jni::GetEnv();
static jclass const implClass = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/traffxml/SourceImplV0_7");
static jmethodID const implConstructor = jni::GetConstructorID(env, implClass, "(Landroid/content/Context;J)V");
jlong nativeManager = reinterpret_cast<jlong>(&manager);
jobject implObject = env->NewObject(
implClass, implConstructor, android::Platform::Instance().GetContext(), nativeManager);
m_implObject = env->NewGlobalRef(implObject);
m_subscribeImpl = jni::GetMethodID(env, m_implObject, "subscribe", "(Ljava/lang/String;)V");
m_unsubscribeImpl = jni::GetMethodID(env, m_implObject, "unsubscribe", "()V");
}
AndroidTraffSourceV0_7::~AndroidTraffSourceV0_7()
{
jni::GetEnv()->DeleteGlobalRef(m_implObject);
}
void AndroidTraffSourceV0_7::Close()
{
Unsubscribe();
}
void AndroidTraffSourceV0_7::Subscribe(std::set<MwmSet::MwmId> & mwms)
{
jni::GetEnv()->CallVoidMethod(m_implObject, m_subscribeImpl, nullptr);
}
void AndroidTraffSourceV0_7::Unsubscribe()
{
jni::GetEnv()->CallVoidMethod(m_implObject, m_unsubscribeImpl);
}
void AndroidTraffSourceV0_8::Create(TraffSourceManager & manager, std::string const & packageId)
{
std::unique_ptr<AndroidTraffSourceV0_8> source = std::unique_ptr<AndroidTraffSourceV0_8>(new AndroidTraffSourceV0_8(manager, packageId));
manager.RegisterSource(std::move(source));
}
AndroidTraffSourceV0_8::AndroidTraffSourceV0_8(TraffSourceManager & manager, std::string const & packageId)
: TraffSource(manager)
{
JNIEnv * env = jni::GetEnv();
static jclass const implClass = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/traffxml/SourceImplV0_8");
static jmethodID const implConstructor = jni::GetConstructorID(env, implClass, "(Landroid/content/Context;JLjava/lang/String;)V");
jlong nativeManager = reinterpret_cast<jlong>(&manager);
jobject implObject = env->NewObject(
implClass, implConstructor, android::Platform::Instance().GetContext(), nativeManager, jni::ToJavaString(env, packageId));
m_implObject = env->NewGlobalRef(implObject);
m_subscribeImpl = jni::GetMethodID(env, m_implObject, "subscribe", "(Ljava/lang/String;)V");
m_changeSubscriptionImpl = jni::GetMethodID(env, m_implObject, "changeSubscription", "(Ljava/lang/String;)V");
m_unsubscribeImpl = jni::GetMethodID(env, m_implObject, "unsubscribe", "()V");
// TODO packageId (if we need that at all here)
}
AndroidTraffSourceV0_8::~AndroidTraffSourceV0_8()
{
jni::GetEnv()->DeleteGlobalRef(m_implObject);
}
void AndroidTraffSourceV0_8::Close()
{
Unsubscribe();
}
void AndroidTraffSourceV0_8::Subscribe(std::set<MwmSet::MwmId> & mwms)
{
JNIEnv * env = jni::GetEnv();
std::string data = "<filter_list>\n"
+ GetMwmFilters(mwms)
+ "</filter_list>";
env->CallVoidMethod(m_implObject, m_subscribeImpl, jni::ToJavaString(env, data));
}
void AndroidTraffSourceV0_8::ChangeSubscription(std::set<MwmSet::MwmId> & mwms)
{
JNIEnv * env = jni::GetEnv();
std::string data = "<filter_list>\n"
+ GetMwmFilters(mwms)
+ "</filter_list>";
env->CallVoidMethod(m_implObject, m_changeSubscriptionImpl, jni::ToJavaString(env, data));
}
void AndroidTraffSourceV0_8::Unsubscribe()
{
jni::GetEnv()->CallVoidMethod(m_implObject, m_unsubscribeImpl);
}
} // namespace traffxml

View File

@@ -1,199 +0,0 @@
#pragma once
#include "traffxml/traff_source.hpp"
namespace traffxml
{
/**
* @brief A TraFF source which relies on Android Binder for message delivery, using version 0.7 of the TraFF protocol.
*
* TraFF 0.7 does not support subscriptions. Messages are broadcast as the payload to a `FEED` intent.
*/
class AndroidTraffSourceV0_7 : public TraffSource
{
public:
/**
* @brief Creates a new `AndroidTraffSourceV0_7` instance and registers it with the traffic manager.
*
* @param manager The traffic manager to register the new instance with
*/
static void Create(TraffSourceManager & manager);
virtual ~AndroidTraffSourceV0_7() override;
/**
* @brief Prepares the traffic source for unloading.
*/
// TODO do we need a close operation here?
// TODO move this to the parent class and override it here?
void Close();
/**
* @brief Subscribes to a traffic service.
*
* TraFF 0.7 does not support subscriptions. This implementation registers a broadcast receiver.
*
* @param mwms The MWMs for which data is needed (not used by this implementation).
*/
virtual void Subscribe(std::set<MwmSet::MwmId> & mwms) override;
/**
* @brief Changes an existing traffic subscription.
*
* This implementation does nothing, as TraFF 0.7 does not support subscriptions.
*
* @param mwms The new set of MWMs for which data is needed.
*/
virtual void ChangeSubscription(std::set<MwmSet::MwmId> & mwms) override {};
/**
* @brief Unsubscribes from a traffic service we are subscribed to.
*
* TraFF 0.7 does not support subscriptions. This implementation unregisters the broadcast
* receiver which was registered by `Subscribe()`.
*/
virtual void Unsubscribe() override;
/**
* @brief Whether this source should be polled.
*
* Prior to calling `Poll()` on a source, the caller should always first call `IsPollNeeded()` and
* poll the source only if the result is true.
*
* This implementation always returns false, as message delivery on Android uses `FEED` (push).
*
* @return true if the source should be polled, false if not.
*/
virtual bool IsPollNeeded() override { return false; };
/**
* @brief Polls the traffic service for updates.
*
* This implementation does nothing, as message delivery on Android uses `FEED` (push).
*/
virtual void Poll() override {};
protected:
/**
* @brief Constructs a new `AndroidTraffSourceV0_7`.
* @param manager The `TrafficSourceManager` instance to register the source with.
*/
AndroidTraffSourceV0_7(TraffSourceManager & manager);
private:
// TODO “subscription” (i.e. broadcast receiver) state
/**
* @brief The Java implementation class instance.
*/
jobject m_implObject;
/**
* @brief The Java subscribe method.
*/
jmethodID m_subscribeImpl;
/**
* @brief The Java unsubscribe method.
*/
jmethodID m_unsubscribeImpl;
};
/**
* @brief A TraFF source which relies on Android Binder for message delivery, using version 0.8 of the TraFF protocol.
*
* TraFF 0.8 supports subscriptions. Messages are announced through a `FEED` intent, whereupon the
* consumer can retrieve them from a content provider.
*/
class AndroidTraffSourceV0_8 : public TraffSource
{
public:
/**
* @brief Creates a new `AndroidTraffSourceV0_8` instance and registers it with the traffic manager.
*
* @param manager The traffic manager to register the new instance with
* @param packageId The package ID of the app providing the TraFF source.
*/
static void Create(TraffSourceManager & manager, std::string const & packageId);
virtual ~AndroidTraffSourceV0_8() override;
/**
* @brief Prepares the traffic source for unloading.
*
* If there is still an active subscription, it unsubscribes, but without processing the result
* received from the service. Otherwise, teardown is a no-op.
*/
// TODO move this to the parent class and override it here?
void Close();
/**
* @brief Subscribes to a traffic service.
*
* @param mwms The MWMs for which data is needed.
*/
virtual void Subscribe(std::set<MwmSet::MwmId> & mwms) override;
/**
* @brief Changes an existing traffic subscription.
*
* @param mwms The new set of MWMs for which data is needed.
*/
virtual void ChangeSubscription(std::set<MwmSet::MwmId> & mwms) override;
/**
* @brief Unsubscribes from a traffic service we are subscribed to.
*/
virtual void Unsubscribe() override;
/**
* @brief Whether this source should be polled.
*
* Prior to calling `Poll()` on a source, the caller should always first call `IsPollNeeded()` and
* poll the source only if the result is true.
*
* This implementation always returns false, as message delivery on Android uses `FEED` (push).
*
* @return true if the source should be polled, false if not.
*/
virtual bool IsPollNeeded() override { return false; };
/**
* @brief Polls the traffic service for updates.
*
* This implementation does nothing, as message delivery on Android uses `FEED` (push).
*/
virtual void Poll() override {};
protected:
/**
* @brief Constructs a new `AndroidTraffSourceV0_8`.
* @param manager The `TrafficSourceManager` instance to register the source with.
* @param packageId The package ID of the app providing the TraFF source.
*/
AndroidTraffSourceV0_8(TraffSourceManager & manager, std::string const & packageId);
private:
// TODO subscription state
/**
* @brief The Java implementation class instance.
*/
jobject m_implObject;
/**
* @brief The Java subscribe method.
*/
jmethodID m_subscribeImpl;
/**
* @brief The Java changeSubscription method.
*/
jmethodID m_changeSubscriptionImpl;
/**
* @brief The Java unsubscribe method.
*/
jmethodID m_unsubscribeImpl;
};
} // namespace traffxml

View File

@@ -1,34 +0,0 @@
// TODO which of the two do we need? (jni_helper includes jni)
//#include <jni>
#include "app/organicmaps/sdk/core/jni_helper.hpp"
#include "traffxml/traff_source.hpp"
#include "traffxml/traff_model_xml.hpp"
#include <optional>
extern "C"
{
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_traffxml_SourceImpl_onFeedReceivedImpl(JNIEnv * env, jclass thiz, jlong nativeManager, jstring feed)
{
std::string feedStd = jni::ToNativeString(env, feed);
pugi::xml_document document;
traffxml::TraffFeed parsedFeed;
if (!document.load_string(feedStd.c_str()))
{
LOG(LWARNING, ("Feed is not a well-formed XML document"));
return;
}
if (!traffxml::ParseTraff(document, std::nullopt, parsedFeed))
{
LOG(LWARNING, ("Feed is not a valid TraFF feed"));
return;
}
traffxml::TraffSourceManager & manager = *reinterpret_cast<traffxml::TraffSourceManager*>(nativeManager);
manager.ReceiveFeed(parsedFeed);
}
}

View File

@@ -119,74 +119,4 @@ JNIEXPORT void JNICALL Java_app_organicmaps_sdk_util_Config_nativeSetTranslitera
frm()->SaveTransliteration(value);
frm()->AllowTransliteration(value);
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_util_Config_nativeGetTrafficHttpEnabled(JNIEnv * env, jclass thiz)
{
return frm()->LoadTrafficHttpEnabled();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_util_Config_nativeSetTrafficHttpEnabled(JNIEnv * env, jclass thiz,
jboolean value)
{
frm()->SaveTrafficHttpEnabled(value);
frm()->SetTrafficHttpEnabled(value);
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_util_Config_nativeGetTrafficHttpUrl(JNIEnv * env, jclass thiz)
{
std::string value = frm()->LoadTrafficHttpUrl();
return jni::ToJavaString(env, value);
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_util_Config_nativeSetTrafficHttpUrl(JNIEnv * env, jclass thiz,
jstring value)
{
frm()->SaveTrafficHttpUrl(jni::ToNativeString(env, value));
frm()->SetTrafficHttpUrl(jni::ToNativeString(env, value));
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_util_Config_applyTrafficLegacyEnabled(JNIEnv * env, jclass thiz,
jboolean value)
{
TrafficManager & tm = g_framework->GetTrafficManager();
tm.RemoveTraffSourceIf([](traffxml::TraffSource* source) {
if (traffxml::AndroidTraffSourceV0_7* traffSource = dynamic_cast<traffxml::AndroidTraffSourceV0_7*>(source))
{
traffSource->Close();
return true;
}
else
return false;
});
if (value)
traffxml::AndroidTraffSourceV0_7::Create(tm);
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_util_Config_applyTrafficApps(JNIEnv * env, jclass thiz, jobjectArray value)
{
jsize valueLen = env->GetArrayLength(value);
TrafficManager & tm = g_framework->GetTrafficManager();
tm.RemoveTraffSourceIf([](traffxml::TraffSource* source) {
if (traffxml::AndroidTraffSourceV0_8* traffSource = dynamic_cast<traffxml::AndroidTraffSourceV0_8*>(source))
{
traffSource->Close();
return true;
}
else
return false;
});
for (jsize i = 0; i < valueLen; i++)
{
jstring jAppId = (jstring)env->GetObjectArrayElement(value, i);
std::string appId = jni::ToNativeString(env, jAppId);
traffxml::AndroidTraffSourceV0_8::Create(tm, appId);
env->DeleteLocalRef(jAppId);
}
}
} // extern "C"

View File

@@ -10,7 +10,6 @@ import android.os.Looper;
import android.provider.Settings;
import android.speech.tts.TextToSpeech;
import android.speech.tts.UtteranceProgressListener;
import android.speech.tts.Voice;
import android.text.TextUtils;
import android.util.Pair;
import androidx.annotation.NonNull;
@@ -281,16 +280,13 @@ public enum TtsPlayer
public Locale getVoiceLocale()
{
if (INSTANCE.mTts == null)
return null;
Voice voice = INSTANCE.mTts.getVoice();
return voice != null ? voice.getLocale() : null;
return mTts.getVoice().getLocale();
}
public String getLanguageDisplayName()
{
Locale locale = getVoiceLocale();
return locale != null ? locale.getDisplayName(locale) : null;
return locale.getDisplayName(locale);
}
public void speak(String textToSpeak)

View File

@@ -1,111 +0,0 @@
/*
* Copyright © 20172020 traffxml.org.
*
* Relicensed to CoMaps by the original author.
*/
package app.organicmaps.sdk.traffxml;
import java.util.List;
import app.organicmaps.sdk.traffxml.Version;
import app.organicmaps.sdk.traffxml.AndroidTransport;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.IntentFilter.MalformedMimeTypeException;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Bundle;
public class AndroidConsumer {
/**
* Creates an Intent filter which matches the Intents a TraFF consumer needs to receive.
*
* <p>Different filters are available for consumers implementing different versions of the TraFF
* specification.
*
* @param version The version of the TraFF specification (one of the constants in {@link org.traffxml.traff.Version})
*
* @return An intent filter matching the necessary Intents
*/
public static IntentFilter createIntentFilter(int version) {
IntentFilter res = new IntentFilter();
switch (version) {
case Version.V0_7:
res.addAction(AndroidTransport.ACTION_TRAFF_PUSH);
break;
case Version.V0_8:
res.addAction(AndroidTransport.ACTION_TRAFF_PUSH);
res.addDataScheme(AndroidTransport.CONTENT_SCHEMA);
try {
res.addDataType(AndroidTransport.MIME_TYPE_TRAFF);
} catch (MalformedMimeTypeException e) {
// as long as the constant is a well-formed MIME type, this exception never gets thrown
e.printStackTrace();
}
break;
default:
throw new IllegalArgumentException("Invalid version code: " + version);
}
return res;
}
/**
* Sends a TraFF intent to a source.
*
* <p>This encapsulates most of the low-level Android handling.
*
* <p>If the recipient specified in {@code packageName} declares multiple receivers for the intent in its
* manifest, a separate intent will be delivered to each of them. The intent will not be delivered to
* receivers registered at runtime.
*
* <p>All intents are sent as explicit ordered broadcasts. This means two things:
*
* <p>Any app which declares a matching receiver in its manifest will be woken up to process the intent.
* This works even with certain Android 7 builds which restrict intent delivery to apps which are not
* currently running.
*
* <p>It is safe for the recipient to unconditionally set result data. If the recipient does not set
* result data, the result will have a result code of
* {@link org.traffxml.transport.android.AndroidTransport#RESULT_INTERNAL_ERROR}, no data and no extras.
*
* @param context The context
* @param action The intent action.
* @param data The intent data (for TraFF, this is the content provider URI), or null
* @param extras The extras for the intent
* @param packageName The package name for the intent recipient, or null to deliver the intent to all matching receivers
* @param receiverPermission A permission which the recipient must hold, or null if not required
* @param resultReceiver A BroadcastReceiver which will receive the result for the intent
*/
public static void sendTraffIntent(Context context, String action, Uri data, Bundle extras, String packageName,
String receiverPermission, BroadcastReceiver resultReceiver) {
Intent outIntent = new Intent(action);
PackageManager pm = context.getPackageManager();
List<ResolveInfo> receivers = pm.queryBroadcastReceivers(outIntent, 0);
if (receivers != null)
for (ResolveInfo receiver : receivers) {
if ((packageName != null) && !packageName.equals(receiver.activityInfo.applicationInfo.packageName))
continue;
ComponentName cn = new ComponentName(receiver.activityInfo.applicationInfo.packageName,
receiver.activityInfo.name);
outIntent = new Intent(action);
if (data != null)
outIntent.setData(data);
if (extras != null)
outIntent.putExtras(extras);
outIntent.setComponent(cn);
context.sendOrderedBroadcast (outIntent,
receiverPermission,
resultReceiver,
null, // scheduler,
AndroidTransport.RESULT_INTERNAL_ERROR, // initialCode,
null, // initialData,
null);
}
}
}

View File

@@ -1,222 +0,0 @@
/*
* Copyright © 20192020 traffxml.org.
*
* Relicensed to CoMaps by the original author.
*/
package app.organicmaps.sdk.traffxml;
public class AndroidTransport {
/**
* Intent to poll a peer for its capabilities.
*
* <p>This is a broadcast intent and must be sent as an explicit broadcast.
*/
public static final String ACTION_TRAFF_GET_CAPABILITIES = "org.traffxml.traff.GET_CAPABILITIES";
/**
* Intent to send a heartbeat to a peer.
*
* <p>This is a broadcast intent and must be sent as an explicit broadcast.
*/
public static final String ACTION_TRAFF_HEARTBEAT = "org.traffxml.traff.GET_HEARTBEAT";
/**
* Intent to poll a source for information.
*
* <p>This is a broadcast intent and must be sent as an explicit broadcast.
*
* <p>Polling is a legacy feature on Android and deprecated in TraFF 0.8 (rather than polling, TraFF 0.8
* applications query the content provider). Therefore, poll operations are subscriptionless, and the
* source should either reply with all messages it currently holds, or ignore the request.
*/
@Deprecated
public static final String ACTION_TRAFF_POLL = "org.traffxml.traff.POLL";
/**
* Intent for a push feed.
*
* <p>This is a broadcast intent. It can be used in different forms:
*
* <p>As of TraFF 0.8, it must be sent as an explicit broadcast and include the
* {@link #EXTRA_SUBSCRIPTION_ID} extra. The intent data must be a URI to the content provider from which
* the messages can be retrieved. The {@link #EXTRA_FEED} extra is not supported. The feed is part of a
* subscription and will contain only changes over feeds sent previously as part of the same
* subscription.
*
* <p>Legacy applications omit the {@link #EXTRA_SUBSCRIPTION_ID} extra and may send it as an implicit
* broadcast. If an application supports both legacy transport and TraFF 0.8 or later, it must include
* the {@link #EXTRA_PACKAGE} extra. The feed is sent in the {@link #EXTRA_FEED} extra, as legacy
* applications may not support content providers. If sent as a response to a subscriptionless poll, the
* source should include all messages it holds, else the set of messages included is at the discretion of
* the source.
*
* <p>Future applications may reintroduce unsolicited push operations for certain scenarios.
*/
public static final String ACTION_TRAFF_PUSH = "org.traffxml.traff.FEED";
/**
* Intent for a subscription request.
*
* <p>This is a broadcast intent and must be sent as an explicit broadcast.
*
* <p>The filter list must be specified in the {@link #EXTRA_FILTER_LIST} extra.
*
* <p>The sender must indicate its package name in the {@link #EXTRA_PACKAGE} extra.
*/
public static final String ACTION_TRAFF_SUBSCRIBE = "org.traffxml.traff.SUBSCRIBE";
/**
* Intent for a subscription change request,
*
* <p>This is a broadcast intent and must be sent as an explicit broadcast.
*
* <p>This intent must have {@link #EXTRA_SUBSCRIPTION_ID} set to the ID of an existing subscription between
* the calling consumer and the source which receives the broadcast.
*
* <p>The new filter list must be specified in the {@link #EXTRA_FILTER_LIST} extra.
*/
public static final String ACTION_TRAFF_SUBSCRIPTION_CHANGE = "org.traffxml.traff.SUBSCRIPTION_CHANGE";
/**
* Intent for an unsubscribe request,
*
* <p>This is a broadcast intent and must be sent as an explicit broadcast.
*
* <p>This intent must have {@link #EXTRA_SUBSCRIPTION_ID} set to the ID of an existing subscription between
* the calling consumer and the source which receives the broadcast. It signals that the consumer is no
* longer interested in receiving messages related to that subscription, and that the source should stop
* sending updates. Unsubscribing from a nonexistent subscription is a no-op.
*/
public static final String ACTION_TRAFF_UNSUBSCRIBE = "org.traffxml.traff.UNSUBSCRIBE";
/**
* Name for the column which holds the message data.
*/
public static final String COLUMN_DATA = "data";
/**
* Schema for TraFF content URIs.
*/
public static final String CONTENT_SCHEMA = "content";
/**
* String representations of TraFF result codes
*/
public static final String[] ERROR_STRINGS = {
"unknown (0)",
"invalid request (1)",
"subscription rejected by the source (2)",
"requested area not covered (3)",
"requested area partially covered (4)",
"subscription ID not recognized by the source (5)",
"unknown (6)",
"source reported an internal error (7)"
};
/**
* Extra which contains the capabilities of the peer.
*
* <p>This is a String extra. It contains a {@code capabilities} XML element.
*/
public static final String EXTRA_CAPABILITIES = "capabilities";
/**
* Extra which contains a TraFF feed.
*
* <p>This is a String extra. It contains a {@code feed} XML element.
*
* <p>The sender should be careful to keep the size of this extra low, as Android has a 1 MByte limit on all
* pending Binder transactions. However, there is no feedback to the sender about the capacity still
* available, or whether a request exceeds that limit. Therefore, senders should keep the size if each
* feed significantly below that limit. If necessary, they should split up a feed into multiple smaller
* ones and send them with a delay in between.
*
* <p>This mechanism is deprecated since TraFF 0.8 and peers are no longer required to support it. Peers
* which support TraFF 0.8 must rely on content providers for message transport.
*/
@Deprecated
public static final String EXTRA_FEED = "feed";
/**
* Extra which contains a filter list.
*
* <p>This is a String extra. It contains a {@code filter_list} XML element.
*/
public static final String EXTRA_FILTER_LIST = "filter_list";
/**
* Extra which contains the package name of the app sending it.
*
* <p>This is a String extra.
*/
public static final String EXTRA_PACKAGE = "package";
/**
* Extra which contains a subscription ID.
*
* <p>This is a String extra.
*/
public static final String EXTRA_SUBSCRIPTION_ID = "subscription_id";
/**
* Extra which contains the timeout duration for a subscription.
*
* <p>This is an integer extra.
*/
public static final String EXTRA_TIMEOUT = "timeout";
/**
* The MIME type for TraFF content providers.
*/
public static final String MIME_TYPE_TRAFF = "vnd.android.cursor.dir/org.traffxml.message";
/**
* The operation completed successfully.
*/
public static final int RESULT_OK = -1;
/**
* An internal error prevented the recipient from fulfilling the request.
*/
public static final int RESULT_INTERNAL_ERROR = 7;
/**
* A nonexistent operation was attempted, or an operation was attempted with incomplete or otherwise
* invalid data.
*/
public static final int RESULT_INVALID = 1;
/**
* The subscription was rejected, and no messages will be sent.
*/
public static final int RESULT_SUBSCRIPTION_REJECTED = 2;
/**
* The subscription was rejected because the source will never provide messages matching the selection.
*/
public static final int RESULT_NOT_COVERED = 3;
/**
* The subscription was accepted but the source can only provide messages for parts of the selection.
*/
public static final int RESULT_PARTIALLY_COVERED = 4;
/**
* The request failed because it refers to a subscription which does not exist between the source and
* consumer involved.
*/
public static final int RESULT_SUBSCRIPTION_UNKNOWN = 5;
/**
* The request failed because the aggregator does not accept unsolicited push requests from the sensor.
*/
public static final int RESULT_PUSH_REJECTED = 6;
public static String formatTraffError(int code) {
if ((code < 0) || (code >= ERROR_STRINGS.length))
return String.format("unknown (%d)", code);
else
return ERROR_STRINGS[code];
}
}

View File

@@ -1,70 +0,0 @@
package app.organicmaps.sdk.traffxml;
import android.content.BroadcastReceiver;
import android.content.Context;
/**
* Abstract superclass for TraFF source implementations.
*/
public abstract class SourceImpl extends BroadcastReceiver
{
/**
* Creates a new instance.
*
* @param context The application context
*/
public SourceImpl(Context context, long nativeManager)
{
super();
this.context = context;
this.nativeManager = nativeManager;
}
protected Context context;
/**
* The native `TraffSourceManager` instance.
*/
protected long nativeManager;
/**
* Subscribes to a traffic source.
*
* @param filterList The filter list in XML format
*/
public abstract void subscribe(String filterList);
/**
* Changes an existing traffic subscription.
*
* @param filterList The filter list in XML format
*/
public abstract void changeSubscription(String filterList);
/**
* Unsubscribes from a traffic source we are subscribed to.
*/
public abstract void unsubscribe();
/**
* Forwards a newly received TraFF feed to the traffic module for processing.
*
* Called when a TraFF feed is received. This is a wrapper around {@link #onFeedReceivedImpl(long, String)}.
*
* @param feed The TraFF feed
*/
protected void onFeedReceived(String feed)
{
onFeedReceivedImpl(nativeManager, feed);
}
/**
* Forwards a newly received TraFF feed to the traffic module for processing.
*
* Called when a TraFF feed is received.
*
* @param nativeManager The native `TraffSourceManager` instance
* @param feed The TraFF feed
*/
protected static native void onFeedReceivedImpl(long nativeManager, String feed);
}

View File

@@ -1,127 +0,0 @@
package app.organicmaps.sdk.traffxml;
import java.util.ArrayList;
import java.util.List;
import android.Manifest;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import app.organicmaps.sdk.util.log.Logger;
/**
* Implementation for a TraFF 0.7 source.
*/
public class SourceImplV0_7 extends SourceImpl
{
private PackageManager pm;
/**
* Creates a new instance.
*
* @param context The application context
*/
public SourceImplV0_7(Context context, long nativeManager)
{
super(context, nativeManager);
// TODO Auto-generated constructor stub
}
/**
* Subscribes to a traffic source.
*
* @param filterList The filter list in XML format
*/
@Override
public void subscribe(String filterList)
{
IntentFilter traffFilter07 = new IntentFilter();
traffFilter07.addAction(AndroidTransport.ACTION_TRAFF_PUSH);
this.context.registerReceiver(this, traffFilter07);
// Broadcast a poll intent to all TraFF 0.7-only receivers
Intent outIntent = new Intent(AndroidTransport.ACTION_TRAFF_POLL);
pm = this.context.getPackageManager();
List<ResolveInfo> receivers07 = pm.queryBroadcastReceivers(outIntent, 0);
List<ResolveInfo> receivers08 = pm.queryBroadcastReceivers(new Intent(AndroidTransport.ACTION_TRAFF_GET_CAPABILITIES), 0);
if (receivers07 != null)
{
/*
* Get receivers which support only TraFF 0.7 and poll them.
* If there are no TraFF 0.7 sources at the moment, we register the receiver nonetheless.
* That way, if any new sources are added during the session, we get any messages they send.
*/
if (receivers08 != null)
receivers07.removeAll(receivers08);
for (ResolveInfo receiver : receivers07)
{
ComponentName cn = new ComponentName(receiver.activityInfo.applicationInfo.packageName,
receiver.activityInfo.name);
outIntent = new Intent(AndroidTransport.ACTION_TRAFF_POLL);
outIntent.setComponent(cn);
this.context.sendBroadcast(outIntent, Manifest.permission.ACCESS_COARSE_LOCATION);
}
}
}
/**
* Changes an existing traffic subscription.
*
* This implementation does nothing, as TraFF 0.7 does not support subscriptions.
*
* @param filterList The filter list in XML format
*/
@Override
public void changeSubscription(String filterList)
{
// NOP
}
/**
* Unsubscribes from a traffic source we are subscribed to.
*/
@Override
public void unsubscribe()
{
this.context.unregisterReceiver(this);
}
@Override
public void onReceive(Context context, Intent intent)
{
if (intent == null)
return;
if (intent.getAction().equals(AndroidTransport.ACTION_TRAFF_PUSH))
{
/* 0.7 feed */
String packageName = intent.getStringExtra(AndroidTransport.EXTRA_PACKAGE);
/*
* If the feed comes from a TraFF 0.8+ source, skip it (this may happen with “bilingual”
* TraFF 0.7/0.8 sources). That ensures the only way to get information from such sources is
* through a TraFF 0.8 subscription. Fetching the list from scratch each time ensures that
* apps installed during runtime get considered.)
*/
if (packageName != null)
{
for (ResolveInfo info : pm.queryBroadcastReceivers(new Intent(AndroidTransport.ACTION_TRAFF_GET_CAPABILITIES), 0))
if (packageName.equals(info.resolvePackageName))
return;
}
String feed = intent.getStringExtra(AndroidTransport.EXTRA_FEED);
if (feed == null)
{
Logger.w(this.getClass().getSimpleName(), "empty feed, ignoring");
}
else
{
onFeedReceived(feed);
}
}
}
}

View File

@@ -1,240 +0,0 @@
package app.organicmaps.sdk.traffxml;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.IntentFilter.MalformedMimeTypeException;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import app.organicmaps.sdk.util.log.Logger;
/**
* Implementation for a TraFF 0.8 source.
*/
public class SourceImplV0_8 extends SourceImpl
{
private String packageName;
private String subscriptionId = null;
/**
* Creates a new instance.
*
* @param context The application context
* @param packageName The package name for the source
*/
public SourceImplV0_8(Context context, long nativeManager, String packageName)
{
super(context, nativeManager);
this.packageName = packageName;
}
/**
* Subscribes to a traffic source.
*
* @param filterList The filter list in XML format
*/
@Override
public void subscribe(String filterList)
{
IntentFilter filter = new IntentFilter();
filter.addAction(AndroidTransport.ACTION_TRAFF_PUSH);
filter.addDataScheme(AndroidTransport.CONTENT_SCHEMA);
try
{
filter.addDataType(AndroidTransport.MIME_TYPE_TRAFF);
}
catch (MalformedMimeTypeException e)
{
// as long as the constant is a well-formed MIME type, this exception never gets thrown
// TODO revisit logging
e.printStackTrace();
}
context.registerReceiver(this, filter);
Bundle extras = new Bundle();
extras.putString(AndroidTransport.EXTRA_PACKAGE, context.getPackageName());
extras.putString(AndroidTransport.EXTRA_FILTER_LIST, filterList);
AndroidConsumer.sendTraffIntent(context, AndroidTransport.ACTION_TRAFF_SUBSCRIBE, null,
extras, packageName, Manifest.permission.ACCESS_COARSE_LOCATION, this);
}
/**
* Changes an existing traffic subscription.
*
* @param filterList The filter list in XML format
*/
@Override
public void changeSubscription(String filterList)
{
Bundle extras = new Bundle();
extras.putString(AndroidTransport.EXTRA_SUBSCRIPTION_ID, subscriptionId);
extras.putString(AndroidTransport.EXTRA_FILTER_LIST, filterList);
AndroidConsumer.sendTraffIntent(context, AndroidTransport.ACTION_TRAFF_SUBSCRIPTION_CHANGE, null,
extras, packageName, Manifest.permission.ACCESS_COARSE_LOCATION, this);
}
/**
* Unsubscribes from a traffic source we are subscribed to.
*/
@Override
public void unsubscribe()
{
Bundle extras = new Bundle();
extras.putString(AndroidTransport.EXTRA_SUBSCRIPTION_ID, subscriptionId);
AndroidConsumer.sendTraffIntent(this.context, AndroidTransport.ACTION_TRAFF_UNSUBSCRIBE, null,
extras, packageName, Manifest.permission.ACCESS_COARSE_LOCATION, this);
this.context.unregisterReceiver(this);
}
@Override
public void onReceive(Context context, Intent intent)
{
if (intent == null)
return;
if (intent.getAction().equals(AndroidTransport.ACTION_TRAFF_PUSH))
{
Uri uri = intent.getData();
if (uri != null)
{
/* 0.8 feed */
String subscriptionId = intent.getStringExtra(AndroidTransport.EXTRA_SUBSCRIPTION_ID);
if (subscriptionId.equals(this.subscriptionId))
fetchMessages(context, uri);
}
else
{
Logger.w(this.getClass().getSimpleName(), "no URI in feed, ignoring");
} // uri != null
} else if (intent.getAction().equals(AndroidTransport.ACTION_TRAFF_SUBSCRIBE)) {
if (this.getResultCode() != AndroidTransport.RESULT_OK) {
Bundle extras = this.getResultExtras(true);
if (extras != null)
Logger.e(this.getClass().getSimpleName(), String.format("subscription to %s failed, %s",
extras.getString(AndroidTransport.EXTRA_PACKAGE), AndroidTransport.formatTraffError(this.getResultCode())));
else
Logger.e(this.getClass().getSimpleName(), String.format("subscription failed, %s",
AndroidTransport.formatTraffError(this.getResultCode())));
if (this.getResultCode() == AndroidTransport.RESULT_INTERNAL_ERROR)
Logger.e(this.getClass().getSimpleName(), "Make sure the TraFF source app has at least coarse location permission, even when running in background");
return;
}
Bundle extras = this.getResultExtras(true);
String data = this.getResultData();
String packageName = extras.getString(AndroidTransport.EXTRA_PACKAGE);
if (!this.packageName.equals(packageName))
return;
String subscriptionId = extras.getString(AndroidTransport.EXTRA_SUBSCRIPTION_ID);
if (subscriptionId == null) {
Logger.e(this.getClass().getSimpleName(),
String.format("subscription to %s failed: no subscription ID returned", packageName));
return;
} else if (packageName == null) {
Logger.e(this.getClass().getSimpleName(), "subscription failed: no package name");
return;
} else if (data == null) {
Logger.w(this.getClass().getSimpleName(),
String.format("subscription to %s successful (ID: %s) but no content URI was supplied. "
+ "This is an issue with the source and may result in delayed message retrieval.",
packageName, subscriptionId));
this.subscriptionId = subscriptionId;
return;
}
Logger.d(this.getClass().getSimpleName(),
"subscription to " + packageName + " successful, ID: " + subscriptionId);
this.subscriptionId = subscriptionId;
fetchMessages(context, Uri.parse(data));
} else if (intent.getAction().equals(AndroidTransport.ACTION_TRAFF_SUBSCRIPTION_CHANGE)) {
if (this.getResultCode() != AndroidTransport.RESULT_OK) {
Bundle extras = this.getResultExtras(true);
if (extras != null)
Logger.e(this.getClass().getSimpleName(),
String.format("subscription change for %s failed: %s",
extras.getString(AndroidTransport.EXTRA_SUBSCRIPTION_ID),
AndroidTransport.formatTraffError(this.getResultCode())));
else
Logger.e(this.getClass().getSimpleName(),
String.format("subscription change failed: %s",
AndroidTransport.formatTraffError(this.getResultCode())));
return;
}
Bundle extras = intent.getExtras();
String data = this.getResultData();
String subscriptionId = extras.getString(AndroidTransport.EXTRA_SUBSCRIPTION_ID);
if (subscriptionId == null) {
Logger.w(this.getClass().getSimpleName(),
"subscription change successful but the source did not specify the subscription ID. "
+ "This is an issue with the source and may result in delayed message retrieval. "
+ "URI: " + data);
return;
} else if (!subscriptionId.equals(this.subscriptionId)) {
return;
} else if (data == null) {
Logger.w(this.getClass().getSimpleName(),
String.format("subscription change for %s successful but no content URI was supplied. "
+ "This is an issue with the source and may result in delayed message retrieval.",
subscriptionId));
return;
}
Logger.d(this.getClass().getSimpleName(),
"subscription change for " + subscriptionId + " successful");
fetchMessages(context, Uri.parse(data));
} else if (intent.getAction().equals(AndroidTransport.ACTION_TRAFF_UNSUBSCRIBE)) {
String subscriptionId = intent.getStringExtra(AndroidTransport.EXTRA_SUBSCRIPTION_ID);
if (subscriptionId.equals(this.subscriptionId))
this.subscriptionId = null;
// TODO is there anything to do here? (Comment below is from Navit)
/*
* If we ever unsubscribe for reasons other than that we are shutting down or got a feed for
* a subscription we dont recognize, or if we start keeping a persistent list of
* subscriptions, we need to delete the subscription from our list. Until then, there is
* nothing to do here: either the subscription isnt in the list, or we are about to shut
* down and the whole list is about to get discarded.
*/
} else if (intent.getAction().equals(AndroidTransport.ACTION_TRAFF_HEARTBEAT)) {
String subscriptionId = intent.getStringExtra(AndroidTransport.EXTRA_SUBSCRIPTION_ID);
if (subscriptionId.equals(this.subscriptionId)) {
Logger.d(this.getClass().getSimpleName(),
String.format("got a heartbeat from %s for subscription %s; sending result",
intent.getStringExtra(AndroidTransport.EXTRA_PACKAGE), subscriptionId));
this.setResult(AndroidTransport.RESULT_OK, null, null);
}
} // intent.getAction()
// TODO Auto-generated method stub
}
/**
* Fetches TraFF messages from a content provider.
*
* @param context The context to use for the content resolver
* @param uri The content provider URI
*/
private void fetchMessages(Context context, Uri uri) {
try {
Cursor cursor = context.getContentResolver().query(uri, new String[] {AndroidTransport.COLUMN_DATA}, null, null, null);
if (cursor == null)
return;
if (cursor.getCount() < 1) {
cursor.close();
return;
}
StringBuilder builder = new StringBuilder("<feed>\n");
while (cursor.moveToNext())
builder.append(cursor.getString(cursor.getColumnIndex(AndroidTransport.COLUMN_DATA))).append("\n");
builder.append("</feed>");
cursor.close();
onFeedReceived(builder.toString());
} catch (Exception e) {
Logger.w(this.getClass().getSimpleName(),
String.format("Unable to fetch messages from %s", uri.toString()), e);
e.printStackTrace();
}
}
}

View File

@@ -1,18 +0,0 @@
/*
* Copyright © 20192020 traffxml.org.
*
* Relicensed to CoMaps by the original author.
*/
package app.organicmaps.sdk.traffxml;
/**
* Constants for versions.
*/
public class Version {
/** Version 0.7: introduced transport on Android. */
public static final int V0_7 = 7;
/** Version 0.8: introduced subscriptions and HTTP transport. */
public static final int V0_8 = 8;
}

View File

@@ -70,16 +70,6 @@ public final class Config
* True if the first start animation has been seen.
*/
private static final String KEY_MISC_FIRST_START_DIALOG_SEEN = "FirstStartDialogSeen";
/**
* Whether feeds from legacy TraFF applications (TraFF 0.7, Android transport) are enabled.
*/
private static final String KEY_TRAFFIC_LEGACY_ENABLED = "TrafficLegacyEnabled";
/**
* TraFF (0.8+) applications from which to request traffic data.
*/
private static final String KEY_TRAFFIC_APPS = "TrafficApps";
private Config() {}
@@ -403,63 +393,6 @@ public final class Config
nativeSetTransliteration(value);
}
public static boolean getTrafficHttpEnabled()
{
return nativeGetTrafficHttpEnabled();
}
public static void setTrafficHttpEnabled(boolean value)
{
nativeSetTrafficHttpEnabled(value);
}
public static String getTrafficHttpUrl()
{
return nativeGetTrafficHttpUrl();
}
public static void setTrafficHttpUrl(String value)
{
nativeSetTrafficHttpUrl(value);
}
public static String[] getTrafficApps()
{
String appString = getString(KEY_TRAFFIC_APPS, "");
if (appString.length() == 0)
return new String[0];
return appString.split(",");
}
public static void setTrafficApps(String[] value)
{
String valueString = "";
for (int i = 0; i < value.length; i++)
{
valueString = valueString + value[i];
if ((i + 1) < value.length)
valueString = valueString + ",";
}
setString(KEY_TRAFFIC_APPS, valueString);
applyTrafficApps(value);
}
public static boolean getTrafficLegacyEnabled()
{
return getBool(KEY_TRAFFIC_LEGACY_ENABLED, false);
}
public static void setTrafficLegacyEnabled(boolean value)
{
setBool(KEY_TRAFFIC_LEGACY_ENABLED, value);
applyTrafficLegacyEnabled(value);
}
public static boolean isNY()
{
return getBool("NY");
}
@NonNull
public static String getDonateUrl()
{
@@ -603,10 +536,4 @@ public final class Config
private static native void nativeSetLargeFontsSize(boolean value);
private static native boolean nativeGetTransliteration();
private static native void nativeSetTransliteration(boolean value);
private static native boolean nativeGetTrafficHttpEnabled();
private static native void nativeSetTrafficHttpEnabled(boolean value);
private static native String nativeGetTrafficHttpUrl();
private static native void nativeSetTrafficHttpUrl(String value);
private static native void applyTrafficApps(String[] value);
private static native void applyTrafficLegacyEnabled(boolean value);
}

View File

@@ -228,7 +228,7 @@
<string name="type.emergency.mountain_rescue">Estació de rescat de muntanya</string>
<!-- This is for main/primary entrances, for secondary entrances see type.entrance -->
<string name="type.entrance.main">Entrada principal</string>
<string name="type.entrance.exit">Sortida (únicament)</string>
<string name="type.entrance.exit">Sortida</string>
<string name="type.fee.no">Gratuït</string>
<!-- SECTION: Types: Roads -->
<string name="type.highway.busway">Carretera dedicada a l\'autobús</string>
@@ -962,7 +962,7 @@
<string name="type.place.suburb">Suburbi</string>
<string name="type.place.state.USA">Estat</string>
<string name="type.power.line">Línia elèctrica</string>
<string name="type.amenity.studio">Estudi Media</string>
<string name="type.amenity.studio">Estudi</string>
<string name="type.barrier.guard_rail">Barrera de seguretat</string>
<string name="type.leisure.hackerspace">Hacklab</string>
<string name="type.amenity.bicycle_parking.covered">Aparcament de bicicletes cobert</string>
@@ -1031,77 +1031,4 @@
<string name="type.area_highway.footway">Sender</string>
<string name="type.area_highway.pedestrian">Carrer de vianants</string>
<string name="type.area_highway.residential">Carrer residencial</string>
<string name="type.amenity.bench.backless">Banc sense respatller</string>
<string name="type.amenity.boat_rental">Lloguer de vaixells</string>
<string name="type.amenity.love_hotel">Hotel d\'Amor</string>
<string name="type.man_made.telescope">Telescopi</string>
<string name="type.man_made.telescope.optical">Telescopi (Òptic)</string>
<string name="type.man_made.telescope.radio">Telescopi (Ràdio)</string>
<string name="type.man_made.telescope.gamma">Telescopi (Gamma)</string>
<string name="type.man_made.observatory">Observatori</string>
<string name="type.amenity.charging_station.motorcar.small">Punt de Càrrega de Cotxes</string>
<string name="type.amenity.sailing_school">Escola de Navegació</string>
<string name="type.amenity.flight_school">Escola de Vol</string>
<string name="type.amenity.prep_school">Escola Preparatòria</string>
<string name="type.office.security">Oficina de Guàrdies de Seguretat</string>
<string name="type.building.guardhouse">Cabina de Seguretat</string>
<string name="type.amenity.lounger">Hamaca</string>
<string name="type.amenity.mobile_money_agent">Agència d\'efectiu mòbil</string>
<string name="type.amenity.car_pooling">Punt de Vehicle Compartit</string>
<string name="type.amenity.payment_centre">Centre de pagaments</string>
<string name="type.post_office.post_partner">Associat de correu</string>
<string name="type.barrier.wicket_gate">Portell</string>
<string name="type.craft.metal_construction">Metal·listeria</string>
<string name="type.cuisine.beef_bowl">Gyūdon</string>
<string name="type.cuisine.diner">Sopar</string>
<string name="type.cuisine.fine_dining">Alta cuina</string>
<string name="type.emergency.access_point">Punt de rescat d\'emergència</string>
<string name="type.emergency.life_ring">Salvavides</string>
<string name="type.beacon.cardinal.east">Marca cardinal</string>
<string name="type.beacon.cardinal.north">Marca cardinal</string>
<string name="type.beacon.cardinal.south">Marca cardinal</string>
<string name="type.beacon.cardinal.west">Marca cardinal</string>
<string name="type.beacon.isolated_danger">Marca de perill aïllat</string>
<string name="type.beacon.lateral.port">Marca lateral</string>
<string name="type.beacon.lateral.starboard">Marca lateral</string>
<string name="type.beacon.safe_water">Marca d\'aigües navegables</string>
<string name="type.beacon.special_purpose">Marca especial</string>
<string name="type.buoy.cardinal.east">Boia cardinal</string>
<string name="type.buoy.cardinal.north">Boia cardinal</string>
<string name="type.buoy.cardinal.south">Boia cardinal</string>
<string name="type.buoy.cardinal.west">Boia cardinal</string>
<string name="type.buoy.isolated_danger">Boia de perill aïllat</string>
<string name="type.buoy.lateral.port">Boia lateral</string>
<string name="type.buoy.lateral.starboard">Boia lateral</string>
<string name="type.buoy.safe_water">Boia d\'aigües navegables</string>
<string name="type.buoy.special_purpose">Boia d\'ús especial</string>
<string name="type.spherical_buoy.cardinal.east">Boia cardinal esfèrica</string>
<string name="type.spherical_buoy.cardinal.north">Boia cardinal esfèrica</string>
<string name="type.spherical_buoy.cardinal.south">Boia cardinal esfèrica</string>
<string name="type.spherical_buoy.cardinal.west">Boia cardinal esfèrica</string>
<string name="type.spherical_buoy.isolated_danger">Boia esfèrica de perill aïllat</string>
<string name="type.spherical_buoy.lateral.port">Boia esfèrica lateral</string>
<string name="type.spherical_buoy.lateral.starboard">Boia esfèrica lateral</string>
<string name="type.spherical_buoy.safe_water">Boia esfèrica d\'aigües navegables</string>
<string name="type.spherical_buoy.special_purpose">Boia esfèrica d\'ús especial</string>
<string name="type.lateral.port">Babord</string>
<string name="type.lateral.starboard">Estribord</string>
<string name="type.cardinal.east">Est</string>
<string name="type.cardinal.north">Nord</string>
<string name="type.cardinal.south">Sud</string>
<string name="type.cardinal.west">Oest</string>
<string name="type.entrance.house">Entrada de casa</string>
<string name="type.entrance.garage">Entrada de garatge</string>
<string name="type.entrance.service">Entrada de servei</string>
<string name="type.entrance.entry">Entrada (únicament)</string>
<string name="type.entrance.emergency">Sortida d\'emergència</string>
<string name="type.healthcare.sample_collection">Centre de recollida de mostres</string>
<string name="type.highway.bridleway">Camí eqüestre</string>
<string name="type.highway.bridleway.permissive">Camí eqüestre</string>
<string name="type.highway.service.driveway">Via d\'entrada</string>
<string name="type.highway.service.parking_aisle">Passadís d\'aparcament</string>
<string name="type.area_highway.living_street">Carrer de prioritat peatonal</string>
<string name="type.area_highway.service">Via de servei</string>
<string name="type.area_highway.track">Pista</string>
<string name="type.area_highway.unclassified">Carretera menor</string>
</resources>

View File

@@ -4,5 +4,4 @@
<string name="type.addr_interpolation.even">Adreso/Kvartalo</string>
<string name="type.aerialway">Aerovojo</string>
<string name="type.aerialway.cable_car">Funicularo</string>
<string name="type.aeroway.gate">Pordego</string>
</resources>

View File

@@ -127,7 +127,7 @@
<string name="type.amenity.post_box">Buzón de correos</string>
<string name="type.amenity.post_office">Oficina de correos</string>
<string name="type.amenity.prison">Prisión</string>
<string name="type.amenity.pub">Taberna</string>
<string name="type.amenity.pub">Pub</string>
<string name="type.amenity.public_bookcase">Intercambio de libros</string>
<!-- SECTION: Types: Recycling -->
<string name="type.amenity.recycling.centre">Centro de reciclaje</string>
@@ -360,7 +360,7 @@
<string name="type.entrance">Entrada</string>
<!-- This is for main/primary entrances, for secondary entrances see type.entrance -->
<string name="type.entrance.main">Entrada principal</string>
<string name="type.entrance.exit">Sólo salida</string>
<string name="type.entrance.exit">Salida</string>
<string name="type.fee.no">Gratis</string>
<string name="type.healthcare.laboratory">Laboratorio médico</string>
<string name="type.healthcare.physiotherapist">Fisioterapeuta</string>
@@ -477,7 +477,7 @@
<string name="type.highway.service.area">Vía de servicio</string>
<!-- These translations are used for all type.highway.*.bridge. -->
<string name="type.highway.service.bridge">Puente</string>
<string name="type.highway.service.driveway">Camino de entrada</string>
<string name="type.highway.service.driveway">Vía de servicio</string>
<string name="type.highway.service.parking_aisle">Pasillo de aparcamiento</string>
<!-- These translations are used for all type.highway.*.tunnel. -->
<string name="type.highway.service.tunnel">Túnel</string>
@@ -650,8 +650,8 @@
<string name="type.leisure.sauna">Sauna</string>
<string name="type.leisure.slipway">Rampa de barcos</string>
<string name="type.leisure.sports_centre">Complejo deportivo</string>
<string name="type.sport.climbing">Escalada</string>
<string name="type.sport.yoga">Yoga</string>
<string name="type.sport.climbing">Centro de escalada</string>
<string name="type.sport.yoga">Centro de yoga</string>
<string name="type.leisure.stadium">Estadio</string>
<string name="type.leisure.swimming_pool">Piscina</string>
<string name="type.leisure.swimming_pool.private">Piscina privada</string>

View File

@@ -601,29 +601,31 @@
<string name="type.railway.monorail">مونوریل</string>
<string name="type.railway.rail">راه آهن</string>
<string name="type.railway.rail.highspeed">راه آهن پرسرعت</string>
<string name="type.railway.rail.tourism">راهآهن گردشگرانه</string>
<string name="type.railway.rail.main">راهآهن</string>
<string name="type.railway.rail.tourism">راه آهن توریستی</string>
<string name="type.railway.rail.main">راه آهن</string>
<!-- Includes ordinary railway=rail w/o more specific usage= and service= tags. -->
<string name="type.railway.rail.branch">اَزگ راهآهن</string>
<string name="type.railway.rail.branch">راه آهن ثانویه</string>
<!-- Non-passenger utility tracks: industrial, military, test. -->
<string name="type.railway.rail.utility">سامانه راه‌آهن برقی</string>
<string name="type.railway.rail.spur">شاخک راهآهن</string>
<string name="type.railway.rail.bridge">پل راه‌آهن</string>
<string name="type.railway.rail.highspeed.bridge">پل راه‌آهن</string>
<string name="type.railway.rail.tourism.bridge">پل راهآهن</string>
<string name="type.railway.rail.main.bridge">پل راهآهن</string>
<string name="type.railway.rail.branch.bridge">پل راهآهن</string>
<string name="type.railway.rail.utility.bridge">پل راهآهن</string>
<string name="type.railway.rail.spur.bridge">پل راهآهن</string>
<string name="type.railway.rail.service.bridge">پل راهآهن</string>
<string name="type.railway.rail.tunnel">آهون راهآهن</string>
<string name="type.railway.rail.highspeed.tunnel">آهون راهآهن</string>
<string name="type.railway.rail.tourism.tunnel">آهون راهآهن</string>
<string name="type.railway.rail.main.tunnel">آهون راهآهن</string>
<string name="type.railway.rail.branch.tunnel">آهون راهآهن</string>
<string name="type.railway.rail.utility.tunnel">آهون راهآهن</string>
<string name="type.railway.rail.spur.tunnel">آهون راهآهن</string>
<string name="type.railway.rail.service.tunnel">آهون راهآهن</string>
<string name="type.railway.rail.utility">راه آهن شهری</string>
<string name="type.railway.rail.spur">خار راه آهن</string>
<!-- Short service tracks: siding, yard, crossover. -->
<string name="type.railway.rail.service">ریل کمکی</string>
<string name="type.railway.rail.bridge">پل راه آهن</string>
<string name="type.railway.rail.highspeed.bridge">پل راه آهن</string>
<string name="type.railway.rail.tourism.bridge">پل راه آهن</string>
<string name="type.railway.rail.main.bridge">پل راه آهن</string>
<string name="type.railway.rail.branch.bridge">پل راه آهن</string>
<string name="type.railway.rail.utility.bridge">پل راه آهن</string>
<string name="type.railway.rail.spur.bridge">پل راه آهن</string>
<string name="type.railway.rail.service.bridge">پل راه آهن</string>
<string name="type.railway.rail.tunnel">تونل راه آهن</string>
<string name="type.railway.rail.highspeed.tunnel">تونل راه آهن</string>
<string name="type.railway.rail.tourism.tunnel">تونل راه آهن</string>
<string name="type.railway.rail.main.tunnel">تونل راه آهن</string>
<string name="type.railway.rail.branch.tunnel">تونل راه آهن</string>
<string name="type.railway.rail.utility.tunnel">تونل راه آهن</string>
<string name="type.railway.rail.spur.tunnel">تونل راه آهن</string>
<string name="type.railway.rail.service.tunnel">تونل راه آهن</string>
<string name="type.railway.station">ایستگاه قطار</string>
<string name="type.railway.station.funicular">فونیکولور</string>
<string name="type.railway.station.light_rail">ایستگاه قطار</string>
@@ -1069,7 +1071,7 @@
<string name="type.wheelchair.limited">دسترسی کرانمند با رواگ‌صندلی</string>
<string name="type.wheelchair.no">بدون دسترسی با صندلی چرخ دار</string>
<string name="type.wheelchair.yes">دسترسی کامل با صندلی چرخ دار</string>
<string name="type.piste_type.snow_park">بوستان برفی</string>
<string name="type.piste_type.snow_park">پارک برفی</string>
<string name="type.piste_type.hike">مسیر پیاده روی برفی</string>
<string name="type.piste_type.connection">اتصال پیست</string>
<string name="type.piste_type.skitour">مسیر اسکیتور</string>

View File

@@ -1,212 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="type.addr_interpolation">Trigva</string>
<string name="type.addr_interpolation.even">Trigva</string>
<string name="type.addr_interpolation.odd">Trigva</string>
<string name="type.aerialway.chair_lift">Kador-yskynna</string>
<string name="type.aeroway.aerodrome">Ayrborth</string>
<string name="type.aeroway.aerodrome.international">Ayrborth Keswlasek</string>
<string name="type.aeroway.apron">Ayrborth Apron</string>
<string name="type.aeroway.gate">Ayrborth Porth</string>
<string name="type.aeroway.helipad">Le Tirans Askel Dro</string>
<string name="type.aeroway.runway">Hyns-tira</string>
<string name="type.aeroway.terminal">Termynal</string>
<string name="type.amenity.arts_centre">Kresen-art</string>
<string name="type.amenity.atm">Toll y\'n Fos</string>
<string name="type.amenity.bank">Arghanti</string>
<string name="type.amenity.bar">Barr</string>
<string name="type.amenity.bbq">Rastella Barbakoa</string>
<string name="type.amenity.bench">Form</string>
<string name="type.amenity.bicycle_parking">Parkyans Diwros</string>
<string name="type.amenity.bicycle_parking.covered">Parkyans Kdhys Diwros</string>
<string name="type.amenity.boat_rental">Arveth Skath</string>
<string name="type.amenity.bicycle_rental">Arveth Diwros</string>
<string name="type.amenity.bicycle_repair_station">Ewnansva Diwros</string>
<string name="type.amenity.biergarten">Jardin Korev</string>
<string name="type.amenity.brothel">Horji</string>
<string name="type.amenity.love_hotel">Ostel Karnal</string>
<string name="type.amenity.bureau_de_change">Keschanj Arghansedh</string>
<string name="type.amenity.bus_station">Gorsav Kyttrin</string>
<string name="type.amenity.cafe">Koffiji</string>
<string name="type.amenity.car_rental">Arveth Karr</string>
<string name="type.amenity.motorcycle_rental">Arveth Jynn Diwros</string>
<string name="type.amenity.car_wash">Golghva Gerri</string>
<string name="type.man_made.telescope">Pellweler</string>
<string name="type.man_made.telescope.radio">Pellweler (Radyo)</string>
<string name="type.man_made.observatory">Mirji</string>
<string name="type.amenity.childcare">Skol-veythrin</string>
<string name="type.amenity.cinema">Cinema</string>
<string name="type.amenity.studio">Studhla Media</string>
<string name="type.amenity.clinic">Medhegva</string>
<string name="type.amenity.college">Kolji</string>
<string name="type.amenity.community_centre">Kresen Gemeneth</string>
<string name="type.amenity.conference_centre">Kresen Keskussulyans</string>
<string name="type.amenity.courthouse">Stevel an Lys</string>
<string name="type.amenity.dentist">Medhek Dens</string>
<string name="type.amenity.doctors">Medhek</string>
<string name="type.amenity.drinking_water">Dowr Evadow</string>
<string name="type.drinking_water.yes">Dowr Evadow</string>
<string name="type.amenity.exhibition_centre">Kresen Diskwedhyans</string>
<string name="type.amenity.money_transfer">Treusworrans Mona</string>
<string name="type.amenity.music_school">Skol-ilowek</string>
<string name="type.amenity.flight_school">Skol Ayr</string>
<string name="type.amenity.language_school">Skol Tavas</string>
<string name="type.office.diplomatic">Kanatti</string>
<string name="type.office.security">Buro Gwithyas Diogeledh</string>
<string name="type.building.guardhouse">Borth Gwithyas Diogeledh</string>
<string name="type.power.portal">Portal Tredan</string>
<string name="type.amenity.fast_food">Boos Uskis</string>
<string name="type.amenity.ferry_terminal">Kowbal</string>
<string name="type.amenity.fire_station">Tanlu</string>
<string name="type.amenity.fountain">Fenten</string>
<string name="type.amenity.fuel">Petrolva</string>
<string name="type.amenity.grave_yard">Bedhros</string>
<string name="type.amenity.grave_yard.christian">Bedhros Kristyon</string>
<string name="type.amenity.hospital">Klavji</string>
<string name="type.amenity.ice_cream">Dehen Rew</string>
<string name="type.amenity.internet_cafe">Koffiji Kesrosweyth</string>
<string name="type.amenity.kindergarten">Floghva</string>
<string name="type.amenity.library">Lyverva</string>
<string name="type.amenity.loading_dock">Kay Dalgarga</string>
<string name="type.amenity.luggage_locker">Amari Fardellow</string>
<string name="type.amenity.marketplace">Tyller Marghas</string>
<string name="type.amenity.motorcycle_parking">Parkyans Jynn Diwros</string>
<string name="type.amenity.nightclub">Kist Nos</string>
<string name="type.amenity.parking">Parkyans</string>
<string name="type.amenity.parking.fee">Parkyans</string>
<string name="type.amenity.parking.multi.storey">Parkyans Liesleur</string>
<string name="type.amenity.parking.multi.storey.fee">Parkyans Liesleur</string>
<string name="type.amenity.parking.no.access">Parkyans Privedh</string>
<string name="type.amenity.parking.permissive">Parkyans Privedh</string>
<string name="type.amenity.parking.private">Parkyans Privedh</string>
<string name="type.amenity.parking.park_and_ride">Parkyans Parkya hag Ehwias</string>
<string name="type.amenity.parking.underground">Parkyans yn-dann dhor</string>
<string name="type.amenity.parking.underground.fee">Parkyans yn-dann dhor</string>
<string name="type.amenity.parking.underground.private">Parkyans privedh yn-dann dhor</string>
<string name="type.amenity.parking_entrance">Entrans Parkyans</string>
<string name="type.amenity.parking_entrance.private">Entrans Privedh Parkyans</string>
<string name="type.amenity.parking_entrance.permissive">Entrans Parkyans</string>
<string name="type.amenity.pharmacy">Ferylva</string>
<string name="type.amenity.place_of_worship.buddhist">Eglos Teg Bouddiek</string>
<string name="type.amenity.place_of_worship.christian">Eglos</string>
<string name="type.amenity.place_of_worship.jewish">Synaga</string>
<string name="type.amenity.place_of_worship.muslim">Mosk</string>
<string name="type.amenity.police">Kreslu</string>
<string name="type.amenity.post_office">Chei Post</string>
<string name="type.amenity.prison">Prison</string>
<string name="type.amenity.pub">Barr</string>
<string name="type.amenity.public_bookcase">Keschanj Lyver</string>
<string name="type.amenity.recycling.centre">Kresen Eylgylghyans</string>
<string name="type.amenity.recycling">Kofen Eylgylghyans</string>
<string name="type.amenity.recycling.container">Kofen Eylgylghyans</string>
<string name="type.recycling.batteries">Batriow</string>
<string name="type.recycling.clothes">Dillas</string>
<string name="type.recycling.glass_bottles">Botellow Gweder</string>
<string name="type.recycling.paper">Paper</string>
<string name="type.recycling.plastic">Plastek</string>
<string name="type.recycling.plastic_bottles">Botellow Plastek</string>
<string name="type.recycling.scrap_metal">Wast Alkan</string>
<string name="type.recycling.small_appliances">Wast Elektronek</string>
<string name="type.recycling.cardboard">Pasbord</string>
<string name="type.recycling.cans">Kannys</string>
<string name="type.recycling.shoes">Eskisyow</string>
<string name="type.recycling.green_waste">Lygennow</string>
<string name="type.amenity.restaurant">Bosti</string>
<string name="type.amenity.school">Skol</string>
<string name="type.amenity.shelter">Skovva</string>
<string name="type.amenity.shelter.public_transport">Skovva</string>
<string name="type.amenity.public_bath">Bath Poblek</string>
<string name="type.amenity.shower">Kowas</string>
<string name="type.amenity.telephone">Fon</string>
<string name="type.amenity.theatre">Gwariji</string>
<string name="type.amenity.toilets">Attesva</string>
<string name="type.toilets.yes">Attesva</string>
<string name="type.amenity.townhall">Odyans</string>
<string name="type.amenity.university">Pennskol</string>
<string name="type.amenity.vending_machine.public_transport_tickets">Jynn Tokyn</string>
<string name="type.amenity.parcel_locker">Amari Fardel</string>
<string name="type.amenity.vehicle_inspection">Hwithrans Karr</string>
<string name="type.amenity.vending_machine.fuel">Pomp Petrol</string>
<string name="type.amenity.veterinary">Medhek Bestes</string>
<string name="type.amenity.animal_shelter">Gredi</string>
<string name="type.amenity.waste_basket">Argh</string>
<string name="type.amenity.waste_disposal">Argh Bras</string>
<string name="type.barrier">Lett</string>
<string name="type.barrier.yes">Lett</string>
<string name="type.barrier.block">Stock</string>
<string name="type.barrier.border_control">Amalborth</string>
<string name="type.barrier.chain">Chayn</string>
<string name="type.barrier.city_wall">Fos Cita</string>
<string name="type.barrier.cycle_barrier">Lett Diwros</string>
<string name="type.waterway.ditch">Kleys</string>
<string name="type.barrier.entrance">Entrans</string>
<string name="type.barrier.fence">Ke</string>
<string name="type.barrier.guard_rail">Kledhren</string>
<string name="type.barrier.gate">Porth</string>
<string name="type.barrier.hedge">Ke</string>
<string name="type.barrier.kissing_gate">Porth Amm</string>
<string name="type.barrier.stile">Kammva</string>
<string name="type.barrier.wicket_gate">Porth Darasik</string>
<string name="type.barrier.toll_booth">Tollva</string>
<string name="type.barrier.wall">Fos</string>
<string name="type.boundary">Or</string>
<string name="type.boundary.administrative">Or Menystrek</string>
<string name="type.boundary.administrative.2">Or Kenedhlegi</string>
<string name="type.boundary.administrative.3">Or Ranndirek</string>
<string name="type.boundary.administrative.4">Or Ranndirek</string>
<string name="type.boundary.national_park">Park Kenedhlek</string>
<string name="type.boundary.aboriginal_lands">Tir Teythiek</string>
<string name="type.building">Drehevyans</string>
<string name="type.building.address">Trigva</string>
<string name="type.building.has_parts">Drehevyans</string>
<string name="type.building_part">Drehevyans</string>
<string name="type.building.garage">Karrji</string>
<string name="type.building.train_station">Drehevyans Gorsav</string>
<string name="type.building.warehouse">Gwaraji</string>
<string name="type.cemetery.grave">Bedh</string>
<string name="type.craft">Kreft</string>
<string name="type.craft.blacksmith">Ferror</string>
<string name="type.craft.carpenter">Karpenter</string>
<string name="type.craft.electrician">Tredaner</string>
<string name="type.craft.electronics_repair">Ewnans Tredanegek</string>
<string name="type.craft.gardener">Lowarther</string>
<string name="type.craft.handicraft">Dornweyth</string>
<string name="type.craft.metal_construction">Gweythor Alkan</string>
<string name="type.craft.painter">Payntyer</string>
<string name="type.craft.photographer">Skeusenner</string>
<string name="type.shop.camera">Gwerthji Kamera</string>
<string name="type.craft.plumber">Plommer</string>
<string name="type.craft.shoemaker">Ewnans Eskis</string>
<string name="type.craft.winery">Gwinyer</string>
<string name="type.craft.tailor">Tregher</string>
<string name="type.cuisine.african">afrikan</string>
<string name="type.cuisine.american">amerikanek</string>
<string name="type.cuisine.arab">arabek</string>
<string name="type.cuisine.argentinian">arghantinek</string>
<string name="type.cuisine.asian">asiek</string>
<string name="type.cuisine.austrian">ostrian</string>
<string name="type.cuisine.barbecue">Barbakoa</string>
<string name="type.cuisine.beef_bowl">Bolla Bewin</string>
<string name="type.cuisine.brazilian">brasiliek</string>
<string name="type.cuisine.breakfast">Hansel</string>
<string name="type.cuisine.bubble_tea">Te Hwethen</string>
<string name="type.cuisine.burger">Borger</string>
<string name="type.cuisine.cake">Tesen</string>
<string name="type.cuisine.chicken">Kig Yar</string>
<string name="type.cuisine.chinese">chinek</string>
<string name="type.cuisine.coffee_shop">Koffi</string>
<string name="type.cuisine.croatian">kroatek</string>
<string name="type.cuisine.curry">Kurri</string>
<string name="type.cuisine.donut">Knowen Doos</string>
<string name="type.cuisine.ethiopian">ethiopek</string>
<string name="type.cuisine.fine_dining">Dybri Brav</string>
<string name="type.cuisine.fish">Pysk</string>
<string name="type.cuisine.fish_and_chips">Asklotti</string>
<string name="type.cuisine.french">frynkek</string>
<string name="type.cuisine.georgian">jorjiek</string>
<string name="type.cuisine.german">almaynek</string>
<string name="type.cuisine.greek">grek</string>
<string name="type.cuisine.grill">Rastell</string>
<string name="type.cuisine.hungarian">hungarek</string>
<string name="type.cuisine.ice_cream">Dehen Rew</string>
</resources>

View File

@@ -210,7 +210,7 @@
<string name="type.craft.electronics_repair">Reparo de eletrônicos</string>
<string name="type.craft.grinding_mill">Moinho</string>
<!-- Heating, Ventilation, and Air Conditioning -->
<string name="type.craft.hvac">Climatização</string>
<string name="type.craft.hvac">Aquecimento, Ventilação e Ar Condicionado</string>
<string name="type.craft.key_cutter">Chaveiro</string>
<string name="type.craft.locksmith">Serralheiro (chave)</string>
<string name="type.shop.camera">Loja de câmeras</string>
@@ -486,16 +486,16 @@
<string name="type.area_highway.trunk">Via expressa</string>
<string name="type.area_highway.unclassified">Estrada sem classificação</string>
<!-- SECTION: Types: Historic -->
<string name="type.historic.aircraft">Aeronave histórica</string>
<string name="type.historic.anchor">Âncora histórica</string>
<string name="type.historic.aircraft">Aeronaves Históricas</string>
<string name="type.historic.anchor">Âncora Histórica</string>
<string name="type.historic.cannon">Canhão</string>
<string name="type.historic.citywalls">Muro da cidade</string>
<string name="type.historic.gallows">Galo</string>
<string name="type.historic.locomotive">Locomotiva histórica</string>
<string name="type.historic.locomotive">Locomotiva Histórica</string>
<string name="type.historic.memorial.cross">Cruz de memorial</string>
<string name="type.historic.stone">Pedra histórica</string>
<string name="type.historic.mine">Mina histórica</string>
<string name="type.historic.tank">Tanque histórico</string>
<string name="type.historic.stone">Pedra Histórica</string>
<string name="type.historic.mine">Mina Histórica</string>
<string name="type.historic.tank">Tanque Histórico</string>
<!-- Usually has no historic and sometimes no religious context. E.g. a mountain summit cross. -->
<string name="type.man_made.cross">Cruz</string>
<string name="type.historic.wreck">Naufrágio</string>
@@ -937,7 +937,7 @@
<string name="type.shop.copyshop">Copiadora</string>
<string name="type.shop.cosmetics">Loja de cosméticos</string>
<string name="type.shop.curtain">Loja de cortinas</string>
<string name="type.shop.deli">Loja de delicatessen</string>
<string name="type.shop.deli">Loja Delicatessen</string>
<string name="type.shop.department_store">Loja de departamentos</string>
<string name="type.shop.doityourself">Loja de ferramentas e materiais de bricolagem</string>
<string name="type.shop.dry_cleaning">Lavagem a seco</string>
@@ -986,7 +986,7 @@
<string name="type.shop.seafood">Peixaria</string>
<string name="type.shop.second_hand">Loja de segunda mão</string>
<string name="type.shop.shoes">Sapataria</string>
<string name="type.shop.sports">Loja de artigos esportivos</string>
<string name="type.shop.sports">Loga de artigos esportivos</string>
<string name="type.shop.stationery">Papelaria</string>
<string name="type.shop.supermarket">Supermercado</string>
<string name="type.shop.tattoo">Estúdio de tatuagens</string>
@@ -1222,7 +1222,7 @@
<string name="type.historic.memorial.statue">Estátua</string>
<string name="type.historic.memorial.war_memorial">Memorial de Guerra</string>
<string name="type.historic.monument">Monumento</string>
<string name="type.historic.ruins">Ruínas históricas</string>
<string name="type.historic.ruins">Ruínas Históricas</string>
<string name="type.historic.ship">Navio</string>
<string name="type.historic.tomb">Túmulo</string>
<string name="type.historic.wayside_shrine">Santuário à beira da estrada</string>
@@ -1238,7 +1238,7 @@
<string name="type.natural.beach.sand">Praia de areia</string>
<string name="type.natural.beach.gravel">Praia de cascalho</string>
<string name="type.natural.cape">Cabo</string>
<string name="type.natural.cave_entrance">Entrada de caverna</string>
<string name="type.natural.cave_entrance">Entrada da Caverna</string>
<string name="type.natural.cliff">Penhasco</string>
<string name="type.natural.earth_bank">Banco de Terras</string>
<string name="type.man_made.embankment">Aterro</string>
@@ -1431,7 +1431,7 @@
<string name="type.man_made.telescope.radio">Telescópio (rádio)</string>
<string name="type.man_made.telescope.gamma">Telescópio (gama)</string>
<string name="type.man_made.observatory">Observatório</string>
<string name="type.amenity.mobile_money_agent">Agente mobile money</string>
<string name="type.amenity.mobile_money_agent">Agente de Mobile Money</string>
<string name="type.amenity.car_pooling">Carona</string>
<string name="type.amenity.payment_centre">Centro de pagamentos</string>
<string name="type.leisure.indoor_play">Centro de recreação interno</string>

View File

@@ -523,7 +523,7 @@
<string name="type.area_highway.unclassified">Estrada sem classificação</string>
<!-- SECTION: Types: Historic -->
<string name="type.historic">Objeto histórico</string>
<string name="type.historic.aircraft">Aeronave histórica</string>
<string name="type.historic.aircraft">Aeronaves Históricas</string>
<string name="type.historic.anchor">Âncora Histórica</string>
<string name="type.historic.archaeological_site">Sítio arqueológico</string>
<string name="type.historic.battlefield">Campo de batalha</string>
@@ -1153,7 +1153,7 @@
<string name="type.shop.seafood">Peixaria</string>
<string name="type.shop.second_hand">Loja de segunda mão</string>
<string name="type.shop.shoes">Sapataria</string>
<string name="type.shop.sports">Loja de artigos esportivos</string>
<string name="type.shop.sports">Loga de artigos desportivos</string>
<string name="type.shop.stationery">Papelaria</string>
<string name="type.shop.supermarket">Supermercado</string>
<string name="type.shop.tattoo">Estúdio de tatuagens</string>

View File

@@ -333,23 +333,4 @@
<string name="type.barrier.city_wall">Mestno obzidje</string>
<string name="type.barrier.swing_gate">Nihajna vrata</string>
<string name="type.craft.brewery">Obrtna pivovarna</string>
<string name="type.craft.grinding_mill">Mlin</string>
<string name="type.craft.handicraft">Rokodelstvo</string>
<string name="type.craft.locksmith">Ključavničar</string>
<string name="type.craft.metal_construction">Kovinar</string>
<string name="type.craft.painter">Pleskar</string>
<string name="type.craft.carpenter">Tesar</string>
<string name="type.craft.confectionery">Slaščičar</string>
<string name="type.craft.electrician">Električar</string>
<string name="type.craft.photographer">Fotograf</string>
<string name="type.craft.sawmill">Žaga</string>
<string name="type.craft.shoemaker">Popravilo čevljev</string>
<string name="type.craft.winery">Vinarstvo</string>
<string name="type.craft.tailor">Krojač</string>
<string name="type.cuisine.african">Afriška kuhinja</string>
<string name="type.cuisine.american">Ameriška kuhinja</string>
<string name="type.cuisine.arab">Arabska kuhinja</string>
<string name="type.cuisine.argentinian">Argentinska kuhinja</string>
<string name="type.cuisine.asian">Azijska kuhinja</string>
<string name="type.cuisine.austrian">Avstrijska kuhinja</string>
</resources>

View File

@@ -10,7 +10,7 @@
"@category_entertainment": "Entreteniment",
"@category_nightlife": "Vida nocturna",
"@category_children": "Oci familiar",
"@category_atm": "3Caixer automàtic|Caixer",
"@category_atm": "Caixer automàtic",
"@category_rv": "Caravanes|Autocaravana",
"amenity-atm|@category_atm": "diners",
"@category_bank": "Banc",
@@ -21,7 +21,7 @@
"amenity-bar|amenity-pub|@category_eat|@category_nightlife": "Bar|Taverna",
"amenity-cafe|@category_eat": "Cafè|Cafeteria",
"amenity-fast_food|@category_eat": "Menjar ràpid",
"amenity-restaurant|@category_eat": "Restaurant|Restaurants",
"amenity-restaurant|@category_eat": "Restaurant",
"@shop": "Botiga|Tenda",
"shop-bakery|shop-pastry|@category_eat|@category_food|@shop": "Fleca|Forn de pa",
"shop-cosmetics|@category_shopping|@shop": "Cosmetics",
@@ -29,14 +29,14 @@
"shop-hearing_aids|@shop": "Audiòfons",
"shop-hardware|shop-doityourself|@shop": "Ferreteria",
"shop-houseware|@shop": "Articles de la llar",
"shop-jewelry|@category_shopping|@shop": "Joieria|Joies",
"shop-jewelry|@category_shopping|@shop": "Joieria",
"amenity-marketplace|@category_food": "Mercat",
"amenity-money_transfer": "Transferència de diners",
"shop-clothes|@category_shopping|@shop": "Botiga de roba|Roba",
"shop-caravan|@category_rv|@shop": "Venda de caravanes|Venda de autocaravanes|Venda de motorhomes",
"shop-caravan|@category_rv|@shop": "Venda de caravanas|Venda de autocaravanas|Venda de motorhomes",
"shop-car|@shop": "Venda de cotxes|Concesionari|Concessionari de cotxes",
"shop-bicycle|@shop": "Botiga de bicicletes|4bicicleta|bici",
"shop-kiosk": "Quiosc|Papereria",
"shop-kiosk": "Quiosc",
"highway-bus_stop|@category_transport": "Parada d'autobús|Parada",
"railway-tram_stop|@category_transport": "Parada de tramvia|Parada",
"railway-station-funicular": "Funicular",
@@ -59,7 +59,7 @@
"@category_post": "Oficina postal",
"amenity-post_box|@category_post": "Bústia de correus|Bústia",
"amenity-post_office|post_office-post_partner|@category_post": "Oficina de correus",
"amenity-vehicle_inspection": "Inspecció de vehicles|ITV",
"amenity-vehicle_inspection": "Inspecció de vehicles",
"amenity-shelter": "Refugi",
"amenity-shelter-basic_hut": "Cabana Bivac",
"amenity-shelter-lean_to": "Rafal|Refugi",
@@ -102,7 +102,7 @@
"amenity-parcel_locker|@category_post": "Taquiller de paquets",
"shop-outpost": "Punt de recollida",
"building-garage": "Garatge",
"shop-car_parts|@shop": "Peces de cotxe|Recanvis",
"shop-car_parts|@shop": "Peçes de cotxe",
"tourism-chalet|@category_hotel": "Casa rural de vacances",
"leisure-water_park|@category_tourism|@category_children": "Parc aquàtic",
"amenity-public_bath": "Bany Públic",
@@ -114,7 +114,7 @@
"shop-nutrition_supplements|@shop": "Suplements nutricionals",
"shop-paint|@shop": "Pintures",
"shop-perfumery|@category_shopping|@shop": "Perfumería",
"shop-sewing|@shop": "Material de costura|Merceria",
"shop-sewing|@shop": "Material de costura|Mercería",
"shop-tobacco|@shop": "Tabac",
"shop-watches|@category_shopping|@shop": "Rellotger|Rellotgeria",
"shop-wholesale|@shop": "Magatzem de roba al per major",
@@ -133,7 +133,7 @@
"amenity-food_court": "Zona de restaurants",
"shop-curtain|@shop": "Cortines",
"shop-gas|@shop": "Botiga de gas",
"shop-pet_grooming": "Perruca de mascotes",
"shop-pet_grooming": "Peluca de mascotes",
"shop-hifi|@shop": "Àudio HiFi",
"amenity-conference_centre": "Centre de conferències",
"shop-herbalist|@shop": "Botiga d'herbes",
@@ -143,6 +143,5 @@
"amenity-waste_transfer_station": "Estació de transferència de residus",
"shop-carpet|@shop": "Catifes",
"shop-pasta|@shop": "Pasta",
"amenity-luggage_locker": "Armari d'equipatge",
"amenity-casino|@category_entertainment|@category_nightlife|@gambling": "Casino"
}
"amenity-luggage_locker": "Armari d'equipatge"
}

View File

@@ -18,9 +18,9 @@
"amenity-bank|@category_bank": "dinero",
"@category_recycling": "4Reciclaje|Reciclaje de residuos|Eliminación de residuos|Materiales reciclables|Recogida selectiva de basura|Clasificación de residuos|Reutilización",
"amenity-bureau_de_change": "3Cambio de divisas|dinero|Casa de cambio|Cambista",
"amenity-studio": "Estudio de media|Estudio",
"amenity-studio": "Estudio",
"amenity-bar|amenity-pub|@category_eat|@category_nightlife": "2Bar|2pub|taberna|bebida|beber|4cerveza|cóctel",
"amenity-cafe|@category_eat": "3Café|cafetería",
"amenity-cafe|@category_eat": "3Café|3cafetería|3restaurante",
"amenity-fast_food|@category_eat": "4Comida rápida|restaurante|restaurant|3Restaurante de comida rápida",
"amenity-restaurant|@category_eat": "3Restaurante|3Café|restaurant|restorán",
"@shop": "Tienda|Comercio",
@@ -61,7 +61,7 @@
"shop-toys|@category_children|@shop": "Tienda de juguetes|4Juguetería|juguetes",
"amenity-marketplace|@category_food": "3Mercado",
"amenity-money_transfer": "Transferencia de dinero",
"shop-clothes|@category_shopping|@shop": "Tienda de ropa|3ropa ",
"shop-clothes|@category_shopping|@shop": "Tienda de ropa|3ropa",
"shop-caravan|@category_rv|@shop": "Venta de caravanas|Venta de autocaravanas|Venta de motorhomes",
"shop-car|@shop": "Venta de coches|Venta de autos|Automotora|Automotores|5Concesionaria|Concesionario|Carros|Coches|Automóviles|Autos",
"shop-bicycle|@shop": "Tienda de bicicletas|Tienda de bicis|bicicleta|4Bicicletas|Bicis|Ciclismo",
@@ -507,7 +507,7 @@
"amenity-payment_centre": "7Centro de pagos|pago de sevicios|facturas|servicio de pago",
"shop-telecommunication|@shop": "Telecomunicaciones",
"leisure-bandstand": "4Tarima|templete|quiosco de música|kiosco de música|kiosko de música|5Glorieta de música",
"social_facility-soup_kitchen": "4Comedor social|Comedor popular|Comedor comunitario|comida|olla popular",
"social_facility-soup_kitchen": "4Comedor social|Comedor popular|Comedor comunitario|comida",
"social_facility-food_bank": "Banco de alimentos|alimento|comida|voluntariado",
"amenity-fuel|@category_fuel": "3Gasolinera|4Estación de servicio|combustible|gasolina|nafta|diesel|gasóleo|U+26FD",
"shop-beauty-nails": "4Salón de manicura|salón de belleza|manicure|manicur|maniquiur|pedicure|uñas",

View File

@@ -84,15 +84,15 @@
"tourism-museum|@category_tourism": "2Museu",
"waterway-waterfall|@category_tourism": "2Cachoeira|2Queda de água|2Cascata|2Salto|2Catarata",
"historic-archaeological_site|@category_tourism": "Sítio arqueológico|atração",
"historic-stone": "Pedra histórica",
"historic-stone": "Pedra Histórica",
"historic-memorial-plaque": "Placa comemorativa",
"historic-cannon": "Canhão",
"historic-anchor": "Âncora histórica",
"historic-mine": "Mina histórica",
"historic-anchor": "Âncora Histórica",
"historic-mine": "Mina Histórica",
"historic-wreck": "Naufrágio",
"historic-locomotive|@category_tourism": "Locomotiva histórica",
"historic-tank|@category_tourism": "Tanque histórico",
"historic-aircraft|@category_tourism": "Aeronave histórica|Avião histórico",
"historic-locomotive|@category_tourism": "Locomotiva Histórica",
"historic-tank|@category_tourism": "Tanque Histórico",
"historic-aircraft|@category_tourism": "Aeronaves Históricas",
"leisure-dog_park": "Parque canino|Parque para cães|Parque para cachorros",
"leisure-garden": "2Jardim|lazer",
"amenity-bench|amenity-bench-backless": "Assento|Banco de praça",
@@ -239,7 +239,7 @@
"craft-brewery": "6Cervejaria",
"craft-caterer": "Serviço de bufê",
"craft-electronics_repair": "Reparo de eletrônicos",
"craft-hvac": "5Climatização|Aquecimento|AC|Ventilação|Ar Condicionado|Calefação",
"craft-hvac": "Aquecimento, Ventilação e Ar Condicionado",
"craft-metal_construction": "Serralheiro|metalúrgico",
"craft-key_cutter": "Chaveiro",
"craft-locksmith": "Serralheiro",
@@ -305,7 +305,7 @@
"leisure-water_park|@category_tourism|@category_children": "Parque aquático",
"man_made-water_tower": "Torre de água|caixa de água",
"man_made-windmill": "Moinho de vento",
"natural-cave_entrance": "4Caverna|Cova|3Gruta",
"natural-cave_entrance": "4Caverna",
"natural-volcano|@mountain": "4Vulcão",
"office-estate_agent": "Corretor imobiliário|agente imobiliário",
"waterway-lock_gate": "Comporta de eclusa",

View File

@@ -111,7 +111,7 @@
"historic-wreck": "Naufrágio",
"historic-locomotive|@category_tourism": "Locomotiva Histórica",
"historic-tank|@category_tourism": "Tanque Histórico",
"historic-aircraft|@category_tourism": "Aeronave histórica|Avião histórico",
"historic-aircraft|@category_tourism": "Aeronaves Históricas",
"historic-tomb|@category_tourism": "Túmulo|2Sepultura|memorial",
"historic-wayside_cross": "Cruzeiro",
"historic-wayside_shrine": "Alminhas",

View File

@@ -298,7 +298,7 @@
"France_Burgundy_Nievre":"Nièvre",
"France_Burgundy_Saone-et-Loire":"Saona y Loira",
"France_Burgundy_Yonne":"Yonne",
"France_Centre-Val de Loire":"Centro-Valle del Loira",
"France_Centre-Val de Loire":"Centro",
"France_Centre-Val de Loire_Cher":"Cher",
"France_Centre-Val de Loire_Eure-et-Loir":"Eure y Loir",
"France_Centre-Val de Loire_Indre":"Indre",
@@ -597,7 +597,7 @@
"Japan_Chugoku Region_Shimane":"Prefectura de Shimane",
"Japan_Chugoku Region_Tottori":"Prefectura de Tottori",
"Japan_Chugoku Region_Yamaguchi":"Prefectura de Yamaguchi",
"Japan_Hokkaido Region":"Hokkaido",
"Japan_Hokkaido Region":"Hokkaidō",
"Japan_Hokkaido Region_East":"Hokkaidō — Este",
"Japan_Hokkaido Region_North":"Hokkaidō — Norte",
"Japan_Hokkaido Region_West":"Hokkaidō — Oeste",
@@ -2499,7 +2499,7 @@
"Brazil_Southeast Region_Sao Paulo_West Short":"São Paulo",
"Czech_Stredni Cechy_East Short":"Bohemia Central",
"Czech_Stredni Cechy_West Short":"Región de Bohemia Central",
"Finland_Southern Finland_West Short":"Finlandia suroeste",
"Finland_Southern Finland_West Short":"Finlandia Propia",
"Germany_Brandenburg_North Short":"Brandeburgo",
"Germany_Brandenburg_South Short":"Brandeburgo",
"Germany_Rhineland-Palatinate_South Short":"Renania-Palatinado",

View File

@@ -484,18 +484,5 @@
"Iraq_North":"اپاختر اراک",
"Iran_East Description":"مشهد، زاهدان، یزد",
"Iran_North Description":"تهران، کرج، تبریز",
"Iran_South Description":"اسپهان، شیراز، اهواز",
"Japan_Kinki Region_Osaka_Osaka":"اوساکا",
"Japan_Kinki Region_Osaka_West":"اوساکا — خاور",
"Lithuania_East":"لیتوانی — باختر",
"Lithuania_West":"لیتوانی — خاور",
"Mexico_Chihuahua":"چی‌واوا",
"Mexico_Sonora":"سونورا",
"Nepal_Kathmandu":"کاتماندو",
"Nigeria_North":"نیجریه — اپاختر",
"Nigeria_South":"نیجریه — اواخشتر",
"Norway_Hordaland":"هوردالاند",
"Norway_Nordland":"نوردلاند",
"Peru_Lima":"لیما",
"Portugal_Islands":"گزیرگ‌های پرتغال"
"Iran_South Description":"اسپهان، شیراز، اهواز"
}

View File

@@ -48,15 +48,15 @@
"Spain":"Ispanija",
"Sweden":"Švedija",
"Tuvalu":"Tuvalu",
"US_Delaware":"Delaveras",
"US_Pennsylvania_Reading":"Redingas",
"US_Delaware":"Delavarų",
"US_Pennsylvania_Reading":"Skaitomas",
"United Kingdom":"Jungtinė Karalystė",
"Armenia":"Armėnija",
"Azerbaijan":"Azerbaidžanas",
"Italy_Lombardy":"Lombardija",
"Jamaica":"Jamaika",
"Spain_Extremadura":"Ispanų kalbos Ekstremadūros tarmė",
"US_Georgia":"Džordžija",
"US_Georgia":"Georgian",
"Spain_Galicia_North Short":"Galisų",
"Azerbaijan Region":"Azerbaidžanas",
"Bolivia":"Bolivija",
@@ -170,7 +170,7 @@
"Trinidad and Tobago":"Trinidadas ir Tobagas",
"Tunisia":"Tunisas",
"Turkey":"Turkija",
"Turkmenistan":"Turkmėnija",
"Turkmenistan":"Turkmėnistanas",
"US_Guam":"Guamas",
"US_Puerto Rico":"Puerto Rikas",
"Uganda":"Uganda",
@@ -180,7 +180,7 @@
"Uruguay":"Urugvajus",
"Uzbekistan":"Uzbekistanas",
"Vanuatu":"Vanuatu",
"Wallis and Futuna":"Volisas ir Futūna",
"Wallis and Futuna":"Wallis ir Futuna",
"Yemen":"Jemenas",
"Zambia":"Zambija",
"Zimbabwe":"Zimbabvė",
@@ -234,10 +234,10 @@
"Sudan":"Sudanas",
"Suriname":"Surinamas",
"The Gambia":"Gambija",
"Togo":"Togas",
"Togo":"Togo",
"Tonga":"Tonga",
"Turks and Caicos Islands":"Terksas ir Kaikosas",
"Austria_Lower Austria_West Description":"Mostfyrtelis, Valdfyrtelis",
"Turks and Caicos Islands":"Turkų ir Kaikoso salos",
"Austria_Lower Austria_West Description":"Mostviertel, Waldviertel",
"Argentina_Patagonia":"Patagonija",
"Belarus_Hrodna Region":"Gardino sritis",
"Belarus_Maglieu Region":"Mogiliavo sritis",
@@ -1003,7 +1003,7 @@
"Sweden_Bergslagen":"Bergslagenas",
"Sweden_Malardalen":"Sostinės regionas",
"Sweden_Mellannorrland":"Melanorlandas",
"Sweden_Norra Sverige":"Šiaurės Švedija",
"Sweden_Norra Sverige":"Šiaurinė Švedija",
"Sweden_Ostra Gotaland":"Ostra Jotalandas",
"Sweden_Sodra Gotaland":"Sodra Jotalandas",
"Sweden_Vastra Gotaland":"Vestra Jotalandas",
@@ -1012,775 +1012,5 @@
"Tennessee":"Tenesis",
"Tanzania":"Tanzanija",
"Syria":"Sirija",
"Switzerland_Zurich":"Ciurichas",
"Switzerland_Central":"Vidurio Šveicarija",
"Switzerland_Eastern":"Rytų Šveicarija",
"Switzerland_Lake Geneva region":"Ženevos ežero regionas",
"Switzerland_Northwestern":"Šiaurės vakarų Šveicarija",
"Thailand_North":"Tailandas šiaurė",
"Thailand_South":"Tailandas pietūs",
"The Bahamas":"Bahamos",
"Turkey_Aegean Region":"Egėjo regionas",
"Turkey_Black Sea Region":"Juodosios jūros regionas",
"Turkey_Eastern Anatolia Region":"Rytų Anatolijos regionas",
"Turkey_Marmara Region":"Marmuro jūros regionas",
"Turkey_Mediterranean Region":"Viduržemio jūros regionas",
"Turkey_Southeastern Anatolia Region":"Pietryčių Anatolijos regionas",
"UK_England_East Midlands":"Rytų Midlandsas",
"UK_England_East of England_Essex":"Rytų Anglija Eseksas",
"UK_England_East of England_Norfolk":"Rytų Anglija Norfolkas",
"UK_England_Greater London":"Didysis Londonas",
"UK_England_North East England":"Šiaurės rytų Anglija",
"UK_England_North West England":"Šiaurės vakarų Anglija",
"UK_England_South East_Brighton":"Pietryčių Anglija Braitonas",
"UK_England_South East_Oxford":"Pietryčių Anglija Oksfordas",
"UK_England_South West England_Bristol":"Pietvakarių Anglija Bristolis",
"UK_England_South West England_Cornwall":"Pietvakarių Anglija Kornvalis",
"UK_England_West Midlands":"Vakarų Midlandsas",
"UK_England_Yorkshire and the Humber":"Jorkšyras ir Hamberis",
"UK_Northern Ireland":"Šiaurės Airija",
"UK_Scotland_North":"Šiaurės Škotija",
"UK_Scotland_South":"Pietų Škotija",
"UK_Wales":"Velsas",
"US_Alabama_Birmingham":"Birmingamas",
"US_Alabama_Montgomery":"Montgomeris",
"US_Arizona_Flagstaff":"Flagstafas",
"US_Arizona_Phoenix":"Finiksas",
"US_Arizona_Tucson":"Tusonas",
"US_Arkansas":"Arkanzasas",
"US_California_Bakersfield_Bakersfield":"Beikersfildas",
"US_California_Bakersfield_Lancaster":"Lankasteris",
"US_California_Chico":"Čikas",
"US_California_LA":"Los Andželas",
"US_California_LA North":"Los Andželas šiaurė",
"US_California_Redding":"Redingas",
"US_California_Sacramento_Fresno":"Fresnas",
"US_California_Sacramento_Sacramento":"Sakramentas",
"US_California_Sacramento_Stockton":"Stoktonas",
"US_California_San Diego":"San Diegas",
"US_California_Santa_Clara_Palo Alto":"San Franciskas",
"US_California_Santa_Clara_Santa Cruz":"Santa Kruzas",
"US_Colorado_Aspen":"Aspenas",
"US_Colorado_Denver":"Denveris",
"US_Colorado_South":"Koloradas pietūs",
"US_Connecticut":"Konektikutas",
"US_Florida_Jacksonville":"Džeksonvilis",
"US_Florida_Miami":"Majamis",
"US_Florida_Orlando":"Orlandas",
"US_Florida_Tampa":"Tampa",
"US_Georgia_Atlanta":"Atlanta",
"US_Georgia_Macon":"Meikonas",
"US_Georgia_North":"Džordžija šiaurė",
"US_Georgia_South":"Džordžija pietūs",
"US_Hawaii":"Havajai",
"US_Idaho":"Aidahas",
"US_Illinois_Chickago":"Čikaga",
"US_Illinois_Elgin":"Eldžinas",
"US_Illinois_Rockford":"Rokfordas",
"US_Illinois_South":"Ilinojus pietūs",
"US_Illinois_Springfield":"Springfildas",
"US_Indiana_North":"Indiana šiaurė",
"US_Indiana_South":"Indiana pietūs",
"US_Iowa_Des Moines":"Di Moinas",
"US_Iowa_Waterloo":"Voterlu",
"US_Iowa_West":"Ajova vakarai",
"US_Kansas_East":"Kanzasas rytai",
"US_Kansas_West":"Kanzasas vakarai",
"US_Kentucky_East":"Kentukis rytai",
"US_Kentucky_West":"Kentukis vakarai",
"US_Louisiana_Central":"Luiziana vakarai",
"US_Louisiana_New Orleans":"Naujasis Orleanas",
"US_Maine":"Meinas",
"US_Maryland_Baltimore":"Baltimorė",
"US_Maryland_and_DC":"Vakarai, Vašingtonas, Kolumbijos apygarda",
"US_Massachusetts_Boston":"Bostonas",
"US_Massachusetts_Central":"Vusteris",
"US_Massachusetts_Plymouth":"Plimutas",
"US_Massachusetts_Southeastern":"Barnstablis",
"US_Massachusetts_West":"Springfildas",
"US_Michigan_Detroit":"Detroitas",
"US_Michigan_North":"Mičiganas šiaurė",
"US_Michigan_South":"Mičiganas pietūs",
"US_Minnesota_Minneapolis":"Mineapolis",
"US_Minnesota_North":"Minesota šiaurė",
"US_Minnesota_Rochester":"Ročesteris",
"US_Minnesota_Saint Cloud":"Sent Klaudas",
"US_Mississippi":"Misisipė",
"US_Missouri_East":"Misūris rytai",
"US_Missouri_West":"Misūris vakarai",
"US_Montana":"Montana",
"US_Nebraska":"Nebraska",
"US_Nevada":"Nevada",
"US_New Hampshire":"Naujasis Hampšyras",
"US_New Jersey_North":"Naujasis Džersis šiaurė",
"US_New Jersey_South":"Naujasis Džersis pietūs",
"US_New Mexico":"Naujoji Meksika",
"US_New York_East":"Niujorkas Long Ailandas",
"US_New York_New York":"Niujorkas Niujorko miestas",
"US_New York_North":"Niujorkas šiaurė",
"US_New York_West":"Niujorkas vakarai",
"US_North Carolina_Asheville":"Ašvilis",
"US_North Carolina_Charlotte":"Šarlotė",
"US_North Carolina_Greensboro":"Grinsboras",
"US_North Carolina_Raleigh":"Rolis",
"US_North Carolina_Wilmington":"Vilmingtonas",
"US_North Carolina_Wilson":"Vilsonas",
"US_North Dakota_Bismarck":"Bismarkas",
"US_North Dakota_East":"Fargas",
"US_North Dakota_Minot":"Mainotas",
"US_Ohio_Cleveland":"Klivlandas",
"US_Ohio_Dayton":"Deitonas",
"US_Oklahoma_East":"Oklahoma rytai",
"US_Oklahoma_West":"Oklahoma vakarai",
"US_Oregon_Eugene":"Judžinas",
"US_Oregon_Portland":"Portlandas",
"US_Oregon_West":"Oregonas rytai",
"US_Pennsylvania_Central":"Altūna",
"US_Pennsylvania_Pittsburgh":"Pitsbergas",
"US_Pennsylvania_Scranton":"Skrantonas",
"US_Rhode Island":"Rod Ailandas",
"US_South Carolina_Columbia":"Kolumbija",
"US_South Carolina_Florence":"Florensas",
"US_South Dakota":"Pietų Dakota",
"US_Tennessee_East":"Tenesis rytai",
"US_Tennessee_West":"Tenesis vakarai",
"US_Texas_Austin":"Ostinas",
"US_Texas_Dallas":"Dalasas",
"US_Texas_Houston":"Hjustonas",
"US_Texas_Northwest":"Amarilas",
"US_Texas_San Antonio":"San Antonijus",
"US_Texas_Southwest":"Laredas",
"US_Texas_Tyler":"Taileris",
"US_Texas_Wako":"Veikas",
"US_United States Minor Outlying Islands":"Jungtinių Valstijų Mažosios Tolimosios Salos",
"US_Utah":"Juta",
"US_Vermont":"Vermontas",
"US_Virginia_Chesapeake":"Česapikas",
"US_Virginia_Lynchburg":"Linčbergas",
"US_Virginia_Richmond":"Ričmondas",
"US_Virginia_Roanoke":"Roanokas",
"US_Washington_Coast":"Takoma",
"US_Washington_Seattle":"Sietlas",
"US_Washington_Yakima":"Jakima",
"US_West Virginia":"Vakarų Virdžinija",
"US_Wisconsin_Milwaukee":"Milvokis",
"US_Wisconsin_North":"Šiaurės Viskonsinas",
"US_Wyoming":"Vajomingas",
"Ukraine_Cherkasy Oblast":"Čerkasų sritis",
"Ukraine_Chernihiv Oblast":"Černihivo sritis",
"Ukraine_Chernivtsi Oblast":"Černivcių sritis",
"Ukraine_Dnipropetrovsk Oblast":"Dnipropetrovsko sritis",
"Ukraine_Donetsk Oblast":"Donecko sritis",
"Ukraine_Ivano-Frankivsk Oblast":"Ivano Frankivsko sritis",
"Ukraine_Kharkiv Oblast":"Charkivo sritis",
"Ukraine_Kherson Oblast":"Chersono sritis",
"Ukraine_Khmelnytskyi Oblast":"Chmelnyckio sritis",
"Ukraine_Kirovohrad Oblast":"Kirovohrado sritis",
"Ukraine_Kyiv Oblast":"Kyjivo sritis",
"Ukraine_Luhansk Oblast":"Luhansko sritis",
"Ukraine_Lviv Oblast":"Lvivo sritis",
"Ukraine_Mykolaiv Oblast":"Mykolajivo sritis",
"Ukraine_Odessa Oblast":"Odesos sritis",
"Ukraine_Poltava Oblast":"Poltavos sritis",
"Ukraine_Rivne Oblast":"Rivnės sritis",
"Ukraine_Sumy Oblast":"Sumų sritis",
"Ukraine_Ternopil Oblast":"Ternopilio sritis",
"Ukraine_Vinnytsia Oblast":"Vinycios sritis",
"Ukraine_Volyn Oblast":"Volynės sritis",
"Ukraine_Zakarpattia Oblast":"Užkarpatės sritis",
"Ukraine_Zaporizhia Oblast":"Zaporižios sritis",
"Ukraine_Zhytomyr Oblast":"Žytomyro sritis",
"United States Virgin Islands":"JAV Mergelių Salos",
"US_Alaska":"Aliaska",
"US_Texas_West":"Odesa",
"Venezuela":"Venesuela",
"Vietnam":"Vietnamas",
"Virginia":"Virdžinija",
"Washington":"Vašingtonas",
"Willis Island":"Viliso sala",
"Wisconsin":"Viskonsinas",
"Argentina_Santa Fe":"Santa Fė provincija",
"Australia_Brisbane":"Brisbanas",
"Austria_Styria_Graz":"Štirija Gracas",
"Austria_Styria_Leoben":"Štirija Leobenas",
"Austria_Upper Austria_Linz":"Aukštutinė Austrija Lincas",
"Austria_Upper Austria_Wels":"Aukštutinė Austrija Velsas",
"Brazil_Goias_Brasilia":"Gojasas Brazilija",
"Brazil_Goias_North":"Gojasas šiaurė",
"Brazil_North Region_East":"Šiaurės regionas rytai",
"Brazil_North Region_West":"Šiaurės regionas vakarai",
"Brazil_Northeast Region_East":"Šiaurės rytų regionas rytai",
"Brazil_Northeast Region_West":"Šiaurės rytų regionas vakarai",
"Brazil_Parana_East":"Parana rytai",
"Brazil_Parana_West":"Parana vakarai",
"Brazil_South Region_East":"Pietų regionas rytai",
"Brazil_South Region_West":"Pietų regionas vakarai",
"Bulgaria_East":"Bulgarija rytai",
"Bulgaria_West":"Bulgarija vakarai",
"Chile_Central":"Čilė centrinė",
"Congo-Kinshasa_Kivu":"Kivu",
"Congo-Kinshasa_West":"Kongas vakarai",
"Croatia_Central":"Kroatija centrinė",
"Croatia_West":"Kroatija vakarai",
"Ecuador_East":"Ekvadoras rytai",
"Ecuador_West":"Ekvadoas vakarai",
"Finland_Eastern Finland_North":"Rytų Suomija šiaurė",
"Finland_Eastern Finland_South":"Rytų Suomija pietūs",
"Finland_Western Finland_Jyvaskyla":"Vakarų Suomija Juveskiulė",
"Finland_Western Finland_Tampere":"Vakarų Suomija Tamperė",
"France_Free County_North":"Franš Kontė šiaurė",
"France_Free County_South":"Franš Kontė pietūs",
"France_Pays de la Loire_Loire-Atlantique_Nantes":"Atlanto Luara Nantas",
"France_Pays de la Loire_Loire-Atlantique_Saint-Nazaire":"Atlanto Luara Sen Nazeras",
"Germany_Free State of Bavaria_Upper Bavaria_South":"Aukštutinė Bavarija pietūs",
"India_Karnataka_North":"Karnataka šiaurė",
"India_Karnataka_South":"Karnataka pietūs",
"Iran_East":"Iranas rytai",
"Iraq_North":"Šiaurės Irakas",
"Iraq_South":"Vidurio ir Pietų Irakas",
"Japan_Chubu Region_Aichi_Nagoya":"Aičis Nagoja",
"Japan_Chubu Region_Aichi_Toyohashi":"Aičis Tojohašis",
"Japan_Hokkaido Region_Sapporo":"Saporas",
"Japan_Kinki Region_Osaka_Osaka":"Osaka",
"Japan_Kinki Region_Osaka_West":"Osaka vakarai",
"Kazakhstan_North":"Kazachstanas šiaurė",
"Kazakhstan_South":"Kazachstanas pietūs",
"Lithuania_East":"Rytų Lietuva",
"Lithuania_West":"Vakarų Lietuva",
"Mexico_Chihuahua":"Čihuahua",
"Mexico_Sonora":"Sonora",
"Nepal_Kathmandu":"Katmandu",
"Nepal_Madhyamanchal":"Centrinis regionas",
"Nepal_Purwanchal":"Rytų regionas",
"Nigeria_North":"Nigerija šiaurė",
"Nigeria_South":"Nigerija pietūs",
"Norway_Hordaland":"Hordalandas",
"Norway_Nordland":"Nordlandas",
"Norway_North Trondelag":"Šiaurės Triondelagas",
"Norway_Rogaland":"Rugalandas",
"Norway_South Trondelag":"Pietų Triondelagas",
"Peru_Lima":"Lima",
"Portugal_Islands":"Portugalijos salos",
"Portugal_Viseu":"Vizėjus",
"Russia_Krasnoyarsk Krai_North":"Krasnojarsko kraštas šiaurė",
"Russia_Krasnoyarsk Krai_South":"Krasnojarsko kraštas pietūs",
"Russia_Moscow Oblast_East":"Maskvos sritis rytai",
"Russia_Moscow Oblast_West":"Maskvos sritis vakarai",
"Russia_Perm Krai_North":"Permės sritis šiaurė",
"Russia_Perm Krai_South":"Permės sritis pietūs",
"Russia_Republic of Karelia_North":"Karelija šiaurė",
"Russia_Republic of Karelia_South":"Karelija pietūs",
"Russia_Sverdlovsk Oblast_North":"Sverdlovsko sritis šiaurė",
"Russia_Sverdlovsk Oblast_Ekaterinburg":"Sverdlovsko sritis Jekaterinburgas",
"Russia_Yugra_Khanty":"Jugra Chanty Mansijskas",
"Russia_Yugra_Surgut":"Jugra Surgutas",
"Saudi Arabia_North":"Saudo Arabija šiaurė",
"Saudi Arabia_South":"Saudo Arabija pietūs",
"Slovenia_East":"Slovėnija rytai",
"Slovenia_West":"Slovėnija vakarai",
"Spain_Andalusia_Granada":"Andalūzija Granada",
"Spain_Andalusia_Sevilla":"Andalūzija Sevilija",
"Spain_Castile and Leon_East":"Kastilija ir Leonas rytai",
"Spain_Castile and Leon_West":"Kastilija ir Leonas vakarai",
"Spain_Galicia_North":"Galisija šiaurė",
"Spain_Galicia_South":"Galisija pietūs",
"Sudan_East":"Sudanas rytai",
"Sudan_West":"Sudanas vakarai",
"Sweden_Stockholm":"Stokholmas",
"Switzerland_Espace Mittelland":"Vidurio erdvė",
"Switzerland_Espace Mittelland_Bern":"Vidurio erdvė Bernas",
"Switzerland_Espace Mittelland_East":"Vidurio erdvė rytai",
"Taiwan_North":"Taivanas šiaurė",
"Taiwan_South":"Taivanas pietūs",
"Thailand_Central":"Tailandas centras",
"Turkey_Central Anatolia Region_Ankara":"Centrinė Anatolija Ankara",
"Turkey_Central Anatolia Region_Kayseri":"Centrinė Anatolija Kaiseris",
"Australia_Sydney":"Sidnėjus",
"Turkey_Marmara Region_Bursa":"Marmuro jūros regionas Bursa",
"Turkey_Marmara Region_Istanbul":"Marmuro jūros regionas Stambulas",
"US_Arkansas_North":"Arkanzasas šiaurė",
"US_Arkansas_South":"Arkanzasas pietūs",
"US_Florida_Gainesvile":"Geinsvilis",
"US_Idaho_North":"Aidahas šiaurė",
"US_Idaho_South":"Aidahas pietūs",
"US_Indiana_Evansville":"Evansvilis",
"US_Indiana_Indianapolis":"Indianapolis",
"US_Kansas_Wichita":"Vičita",
"US_Kentucky_Louisville":"Luisvilis",
"US_Michigan_Grand Rapids":"Grand Rapidsas",
"US_Michigan_Lansing":"Lansingas",
"US_Mississippi_Gulfport":"Galfportas",
"US_Mississippi_North":"Misisipė šiaurė",
"US_Missouri_Kansas":"Kanzas Sitis",
"US_Missouri_Springfield":"Springfildas",
"US_Missouri_St Louis":"Sent Luisas",
"US_Montana_East":"Montana rytai",
"US_Montana_West":"Montana vakarai",
"US_Nebraska_East":"Nebraska rytai",
"US_Nebraska_West":"Nebraska vakarai",
"US_New Mexico_Albuquerque":"Albukerkė",
"US_New Mexico_Roswell":"Rosvelis",
"US_Ohio_Cincinnati":"Sinsinatis",
"US_Ohio_Columbus":"Kolambusas",
"US_Ohio_Toledo":"Tolidas",
"US_Oklahoma_Oklahoma":"Oklahoma Sitis",
"US_Oklahoma_Tulsa":"Talsa",
"US_South Carolina_Charleston":"Čarlstonas",
"US_Texas_Amarillo":"Amarilas",
"US_Texas_Lubbock":"Labokas",
"US_Utah_North":"Juta šiaurė",
"US_Utah_South":"Juta pietūs",
"US_Virginia_Alexandria":"Aleksandrija",
"US_Wisconsin_Eau Claire":"O Kleras",
"US_Wisconsin_Madison":"Madisonas",
"Venezuela_North":"Venesuela šiaurė",
"Venezuela_South":"Venesuela pietūs",
"Argentina_Buenos Aires_Buenos Aires":"Buenos Airės",
"Canada_Quebek_Lachute":"Lašiutas",
"Canada_Saskatchewan_Regina":"Redžaina",
"Canada_Saskatchewan_Saskatoon":"Saskatūnas",
"Germany_Lower Saxony_Braunschweig":"Braunšveigas",
"Germany_Saxony-Anhalt_Halle":"Saksonija-Anhaltas Halė",
"Germany_Saxony-Anhalt_Magdeburg":"Saksonija-Anhaltas Magdeburgas",
"Germany_Schleswig-Holstein_Flensburg":"Šlėzvigas-Holšteinas Flensburgas",
"Germany_Schleswig-Holstein_Kiel":"Flensburg Kylis",
"Portugal_Porto":"Portas",
"UK_England_North West England_Lancaster":"Šiaurės vakarų Anglija Lankasteris",
"UK_England_North West England_Manchester":"Šiaurės vakarų Anglija Mančesteris",
"US_Florida_Gainesville":"Geinsvilis",
"US_Texas_Victoria":"Viktorija",
"US_Virginia_Norfolk":"Norfolkas",
"Abkhazia Description":"Picunda, Gudauta, Suchumis",
"Afghanistan Description":"Kabulas, Kandaharas, Tokzaras",
"Albania Description":"Tirana, Kavajė, Škoderis",
"Algeria_Central Description":"Batna, Dželfa, Biskra",
"Algeria_Coast Description":"Alžyras, Oranas, Konstantina",
"Andorra Description":"Andora, La Masana, Ordinas",
"Angola Description":"Luanda, Lobitas, Namibė",
"Antarctica Description":"Makmerdo storis, Čilės Vilja Las Estreljaso tyrimų stotis, Roki Kouvas",
"Antigua and Barbuda Description":"Sent Džonsas, Ingliš Harboras, Fritaunas",
"Argentina_Buenos Aires_Buenos Aires Description":"Buenos Airės, Chosė Klemente Pasas, Gonsales Katanas",
"Argentina_Buenos Aires_North Description":"Doloresas, Pinamaras, Vilja Cheselis",
"Argentina_Buenos Aires_South Description":"Bahia Blanka, Miramaras. Tandilis",
"Argentina_Cuyo Description":"San Chuanas, San Rafaelis, San Luisas",
"Argentina_Mesopotamia Description":"Federasjonas, Parana, Alvearas",
"Argentina_Northwest Description":"San Migel de Tukamanas, San Fernando del Valje de Katamarka, San Salvador de Chuchujus",
"Argentina_Pampas Description":"Kordoba, Santa Rosa, Rio Kvartas",
"Argentina_Patagonia Description":"Kutral Ko, Vjedma, Komodoro Rivadavija",
"Argentina_Santa Fe Description":"Rosarijus, Sante Fė, Parechasas",
"Armenia Description":"Jerevanas, Aštarakas, Giumri",
"Australia_Brisbane Description":"Brisbanas, Refklifas, Gold Koustas",
"Australia_Melbourne Description":"Melburnas, Džilongas, Jeringas",
"Australia_New South Wales Description":"Baramas, Tankaris, Tokemvolas",
"Australia_Northern Territory Description":"Darvinas, Tenant Krikas, Mutitjulu",
"Australia_Queensland Description":"Čarlsvilis, Vintonas, Taunsvilis",
"Australia_South Australia Description":"Adelaidė, Port Lincolnas, Mari Bridžas",
"Australia_Sydney Description":"Sidnėjus, Kanbera, Niukaslas",
"Australia_Tasmania Description":"Hobartas, Stronas, Hjuonvilis",
"Australia_Victoria Description":"Vangarata, Bendigas, Balaratas",
"Australia_Western Australia Description":"Pertas, Džundelapas, Kalgurlis",
"Austria_Burgenland Description":"Obenpilendorfas, Eizenštatas, Matersburgas",
"Austria_Carinthia Description":"Klagenfurtas, Filachas, Volfsbergas",
"Austria_Lower Austria_Wien Description":"Viena, Industryfyrtelis, Veinfyrtelis",
"Austria_Salzburg Description":"Zalcburgas, Oberndorfas prie Zalcburgo, Abtenau",
"Austria_Styria_Graz Description":"Gracas, Feldbachas, Foitsbergas",
"Austria_Styria_Leoben Description":"Eizenercas, Mariacelis, Knitenfeldas",
"Austria_Tyrol Description":"Insbrukas, Kufšteinas, Švacas",
"Austria_Upper Austria_Linz Description":"Lincas, Štyras, Ansfeldenas",
"Austria_Upper Austria_Wels Description":"Atnangas-Puchheimas, Velsas, Švanenštatas",
"Austria_Vorarlberg Description":"Dornbirnas, Feldkirchas, Brėgencas",
"Azerbaijan Description":"Baku, Sumgaitas, Gendžė",
"Bahrain Description":"Menama, ar Rifa, al Mucharakas",
"Bangladesh Description":"Siletas, Daka, Komila",
"Barbados Description":"Bridžtaunas. Oistinsas, Spitstaunas",
"Belarus_Brest Region Description":"Brestas, Pinskas, Baranovičiai",
"Belarus_Homiel Region Description":"Gomelis, Mozyrius, Žlobinas",
"Belarus_Hrodna Region Description":"Gardinas, Lyda, Valkaviskas",
"Belarus_Maglieu Region Description":"Magiliavas, Babruiskas, Čerykavas",
"Belarus_Minsk Region Description":"Minskas, Barysavas, Salihorskas",
"Belarus_Vitebsk Region Description":"Vitebskas, Orša, Navapolackas",
"Belgium_Antwerp Description":"Antverpenas, Zveindrechtas, Berchemas",
"Belgium_East Flanders Description":"Gentas, Deinzė, Sint Martens Latemas",
"Belgium_Flemish Brabant Description":"Briuselis, Scharbekas, Anderlechtas",
"Belgium_Hainaut Description":"Monsas, Šarlerua, La Luvjeras",
"Belgium_Liege Description":"Lježas, Serenas, Vervjė",
"Belgium_Limburg Description":"Hauthalenas-Helchterenas, Masmechelenas, Haseltas",
"Belgium_Luxembourg Description":"Arlonas, Fameno Marka, Bastonė",
"Belgium_Namur Description":"Namiūras, Metė, Sen Markas",
"Belgium_Walloon Brabant Description":"Bren lAlė, Vavras, Otinji-Luven la Nevas",
"Belgium_West Flanders Description":"Briugė, Kokseidė, Nivportas",
"Belize Description":"Benke Vjechas del Karmen, Belizas, Belmopanas",
"Benin Description":"Natitingu, Abomėjus, Džugu",
"Bermuda Description":"Šv. Jurgio įl., Hamiltonas, Somersetas",
"Bhutan Description":"Timpu, Ha, Mongaras",
"Bolivia_North Description":"La Pasas, Santa Krus de la Siera, Altas",
"Bolivia_South Description":"Sukrė, Kočabamba, Tupisa",
"Bosnia and Herzegovina_Brcko district of Bosnia and Herzegowina Description":"Brčkas, Dubravė, Rašlianai",
"Bosnia and Herzegovina_Entity Federation of Bosnia and Herzegovina Description":"Sarajevas, Mostaras",
"Bosnia and Herzegovina_Republic of Srpska Description":"Bania Luka, Bijelina, Derventa",
"Botswana Description":"Gaboronas, Čabongas, Močudis",
"Brazil_Bahia Description":"Salvadoras, Feira de Santana, Vitorija da Konkista",
"Brazil_Goias_Brasilia Description":"Brazilija, Gojanija, Aparesida de Gojanija",
"Brazil_Goias_North Description":"Gojanezija, Žaragva, Porangatu",
"Brazil_Mato Grosso Description":"Kujaba, Varzea Grandė, Rondonopolis",
"Brazil_Mato Grosso Do Sul Description":"Kampo Grandė, Doradosas, Tres Laguasas",
"Brazil_North Region_East Description":"Belenas, Ananindeua, Makapa",
"Brazil_North Region_West Description":"Manausas, Porto Veljas, Rio Brankas",
"Brazil_Northeast Region_East Description":"Resifė, Masejo, Gvararapeso Žabuataunas",
"Brazil_Northeast Region_West Description":"Fortaleza, San Luisas, Terezina",
"Brazil_Paraiba Description":"Žoaun Pesua, Kampina Grandė, Santa Rita",
"Brazil_Parana_East Description":"Kuritiba, Ponta Grosa, San Žoze dos Pinjaisas",
"Brazil_Parana_West Description":"Londrina, Maringa, Kaskavelis",
"Brazil_Rio Grande do Norte Description":"Natalis, Mosoro, Parnamirinas",
"Brazil_Santa Catarina Description":"Žuanvilis, Florianopolis, Blumenau",
"Brazil_South Region_East Description":"Porto Alegrė, Kašias do Sulis, Kanoasas",
"Brazil_South Region_West Description":"Santa Marija, Paso Fundas, Urugvajana",
"Brazil_Southeast Region_Espirito Santo Description":"Sera, Vila Velja, Kariasika",
"Brazil_Southeast Region_Minas Gerais_Contagem Description":"Belo Orizontė, Kontaženas, Žuis de Fora",
"Brazil_Southeast Region_Minas Gerais_North Description":"Uberlandija, Montes Klarosas, Uberaba",
"Brazil_Southeast Region_Rio de Janeiro Description":"Rio de Žaneiras, San Gonsalas, Duke de Kašiasas",
"Brazil_Southeast Region_Sao Paulo_Campinas Description":"Kampinasas, Sorokaba, Žundiai",
"Brazil_Southeast Region_Sao Paulo_City Description":"San Paulas, Gvaruljosas, San Bernardo do Kampas",
"Brazil_Southeast Region_Sao Paulo_West Description":"Ribeiraun Pretas, San Žoze do Rio Pretas, Franka",
"British Indian Ocean Territory Description":"Sibriz Vilidžas, Kemp Džestisas",
"British Virgin Islands Description":"Spaniš Taunas, Roud Taunas, Ist Endas",
"Brunei Description":"Bandar Seri Begavanas, Muara, Serija",
"Bulgaria_East Description":"Varna, Burgasas, Dobričius",
"Bulgaria_West Description":"Sofija, Plovdivas, Plevenas",
"Burkina Faso Description":"Vagadugu, Bobo Diulasas",
"Burundi Description":"Bužumbūra, Bubanza, Čibitokė",
"Cambodia Description":"Pnom Penis, Kampong Spi, Takeo",
"Cameroon_Central Description":"Jaundė, Kuseris, Kribis",
"Cameroon_West Description":"Duala, Buėja, Bamenda",
"Canada_Alberta_Edmonton Description":"Edmontonas, Lakomas, Vetaskivinas",
"Canada_Alberta_North Description":"Grand Preris, Pis Riveris, Fort Makmaris",
"Canada_Alberta_South Description":"Kalgaris, Čestermeris, Letbridžas",
"Canada_British Columbia_Central Description":"Viljams Leikas, Kenelis, Prins Džordžas",
"Canada_British Columbia_Far_North Description":"Ist Painas, Tambler Ridžas, Hadsons Hopas",
"Canada_British Columbia_Islands Description":"Saničas, Nanaimas, Viktorija",
"Canada_British Columbia_North Description":"Prins Rupertas, Terasas, Kitimatas",
"Canada_British Columbia_Northeast Description":"Maskva, Fort Nelsonas, Fontasas",
"Canada_British Columbia_Southeast Description":"Meritas, Revelstokas, Vernonas",
"Canada_British Columbia_Vancouver Description":"Vankuveris, Saris, Pauel Riveris",
"Canada_Labrador_North Description":"Nainas, Postvilis, Hopdeilis",
"Canada_Labrador_South Description":"L'Ans o Kleras, Forto",
"Canada_Labrador_West Description":"Čerčil Folsas, Hapi Valis-Gus Bėjus",
"Canada_Manitoba_Northeast Description":"Karibu, Manigotaganas, Ingliš Brukas",
"Canada_Manitoba_Northwest Description":"Jong Pointas, Kormorantas, Pikerel Narousas",
"Canada_Manitoba_South Description":"Foxvorenas, Seklusis ežeras, Brandonas",
"Canada_Manitoba_Winnipeg Description":"Vinipegas, Portidž la Preris, Kilarnis",
"Canada_New Brunswick Description":"Edmundstonas, Frederiktonas, Kambeltonas",
"Canada_Newfoundland_East Description":"Maunt Perlas, Sent Džonsas, Badžeris",
"Canada_Newfoundland_North Description":"Sent Antonis, Kipensas, Galantsas",
"Canada_Newfoundland_South Description":"Laimės įlanka, Lamalainas, Sil Kovas",
"Canada_Newfoundland_West Description":"Kodroi Valis, Port o Baskas, Margaris",
"Canada_Northwest Territories_East Description":"Latselkas, Ročer Riveris, Fork Leikas",
"Canada_Northwest Territories_North Description":"Norman Velsas, Inuvikas, Fort Simpsonas",
"Canada_Northwest Territories_Yellowknife Description":"Jelounaifas, Hei Riveris, Fort Smitas",
"Canada_Nova Scotia_Halifax Description":"Halifaksas, Bedfordas, Jarmutas",
"Canada_Nova Scotia_Sydney Description":"Sidnis, Invernesas, Vestvilis",
"Canada_Nunavut_North Description":"Alerto bazė, Grais Fjordas, Jurika",
"Canada_Nunavut_South Description":"Repals Bėjus, Arktik Bėjus",
"Canada_Ontario_Bame Description":"Baris, Vosaga Bičas, Dip Riveris",
"Canada_Ontario_Kingston Description":"Otava, Belvilis, Piterboras",
"Canada_Ontario_London Description":"Londonas, Velandas, Vudstokas",
"Canada_Ontario_Northeastern_Central Description":"Timinsas, Irokvoi Folsas",
"Canada_Ontario_Northeastern_North Description":"Mus Fektoris, Musonis, Kašečevanas",
"Canada_Ontario_Northeastern_S Description":"Sadberis, Onapingas, Daulingas",
"Canada_Ontario_Northeastern_SE Description":"Englhartas, Temagamis, Matava",
"Canada_Ontario_Northeastern_SW Description":"Su Sent Mari, Brus Mainsas",
"Canada_Ontario_Northeastern_W Description":"Vava, Diubreivilis, Vait Riveris",
"Canada_Ontario_Northern Description":"Tander Bėjus, Džeraltonas, Longlakas",
"Canada_Ontario_Northwestern Description":"Pikangikumas, Pivanukas, Sandi Leikas",
"Canada_Ontario_Toronto Description":"Torontas, Gvelfas, Misisoga",
"Canada_Prince Edward Island Description":"Samersaidas, Šarlottaunas, Bordenas",
"Canada_Quebec_Quebec Description":"Kvebekas, Šerbrukas, Driumonvilis",
"Canada_Quebek_Far North Description":"Radisonas, Akulivikas. Inukdžuakas",
"Canada_Quebek_Lachute Description":"Gatino, Manivokis, Mansfildas ir Pontefraktas",
"Canada_Quebek_Montreal Description":"Monrealis, Granbis, Lavalis",
"Canada_Quebek_North Description":"Set Ilis, Port Kartjė, Fermonas",
"Canada_Quebek_Southeast_Rimouski Description":"Gaspė, Rimuski, Sen Paskalis",
"Canada_Quebek_Southeast_Saguenay Description":"Bei Komo, Sagenė, Sen Felisjenas",
"Canada_Quebek_West_Chibougamau Description":"Šapė, Šibugamo, La Tiukas",
"Canada_Quebek_West_Rouyn-Noranda Description":"Ruinas-Noranda, Lebelis prie Kevijono, Senteras",
"Canada_Saskatchewan_North Description":"Medou Leikas, Blen Leikas, Sent Valbergas",
"Canada_Saskatchewan_Regina Description":"Melfortas, Melvilis, Redžaina",
"Canada_Saskatchewan_Saskatoon Description":"Saskatūnas, Vormanas, Heigas",
"Canada_Yukon_North Description":"Ros Riveris, Mėjas, Doson Sitis",
"Canada_Yukon_Whitehorse Description":"Votson Leikas, Vaithorsas, Heins Džankšenas",
"Cape Verde Description":"Praja, Ribeira Grandė, Sidade de Espargosas",
"Caribisch Nederland Description":"Sint Nikolasas, Vilemstadas, Oranjestadas",
"Cayman Islands Description":"Džordžtaunas, Vest Bėjus, Vest Endas",
"Central African Republic Description":"Bangis, Buaras, Baoro",
"Chad Description":"Ndžamena, Mao, Bolas",
"Chile_Central Description":"Santjagas, Pičilemu, San Antonijus",
"Chile_North Description":"Hanga Roa, Ikikė, Kokimbas",
"Chile_South Description":"Valdivija, Talkahuanas, Koronelis",
"China_Anhui Description":"Hefėjus, Baohė, Šušanas",
"China_Chongqing Description":"Čungkingas, Čangšou, Kajus",
"China_Fujian Description":"Longjanas, Sanmingas, Šaou",
"China_Gansu Description":"Landžou, Hongliuvanas, Dangčengvanas",
"China_Guangdong Description":"Gvangdžou, Šendženas, Dziangmenas",
"China_Guangxi Description":"Guigangas, Dongsingas, Udžou",
"China_Guizhou Description":"Gujangas, Liupanšujus, Veiningas",
"China_Hebei Description":"Pekinas, Tiandzinas, Šidziadžuangas",
"China_Heilongjiang Description":"Harbinas, Dzisi, Ninganas",
"China_Henan Description":"Džengdžou, Ugangas",
"China_Hubei Description":"Uhanas, Dzingdžou, Dangjangas",
"China_Hunan Description":"Čangša, Lianjuanas, Lilingas",
"China_Inner Mongolia Description":"Hohotas, Baotou, Erenhotas",
"China_Jiangsu Description":"Nandzingas, Taisingas, Sini",
"China_Jiangxi Description":"Gandžou, Šangžao, Ičūnas",
"China_Jilin Description":"Čangčūnas, Dzilinas, Meihekou",
"China_Liaoning Description":"Šenjangas, Lingjuanas, Vafangdianas",
"China_Ningxia Hui Description":"Džongvėjus, Udžongas, Čingtongsia",
"China_Qinghai Description":"Dulanas, Delingha, Gjegu",
"China_Shaanxi Description":"Sianas, Baodzi, Handžongas",
"China_Shandong Description":"Dzinanas, Taianas, Dzibo",
"China_Shanghai Description":"Šanchajus, Dzinšanas, Putuo",
"China_Shanxi Description":"Tajuanas, Čangdži, Huodžou",
"China_Sichuan Description":"Čengdu, Pandžihua, Ibinas",
"China_Tibet Autonomous Region Description":"Saga, Šaitongmoinas, Gjancė",
"China_Xinjiang Description":"Kašgaras, Tumšukas, Hotanas",
"China_Yunnan Description":"Kunmingas, Džedao, Jongbėjus",
"China_Zhejiang Description":"Dziandė, Hangdžou, Linanas",
"Colombia_East Description":"Mokoa, Viljavisensijus, Florensija",
"Colombia_North Description":"Kukuta, Medeljinas, Kartachena",
"Colombia_West Description":"Bogota, Kalis, Soača",
"Comoros Description":"Moronis, Mucamudu, Baziminis",
"Congo-Brazzaville Description":"Brazavilis, Puant Nuaras, Impfondo",
"Congo-Kinshasa_Kivu Description":"Bukavu, Benis, Goma",
"Congo-Kinshasa_West Description":"Kinšasa, Mbuži Majis, Lubumbašis",
"Costa Rica Description":"San Chosė, Palmyra, Alachuela",
"Cote dIvoire Description":"Abidžanas, Abobas, Jopugonas",
"Crimea Description":"Sevastopolis, Simferopolis, Kerčė",
"Croatia_Central Description":"Zagrebas, Osijekas, Ozalė",
"Croatia_West Description":"Splitas, Rijeka, Opatija",
"Cuba Description":"Havana, Kubos Santjagas, Sjenguegosas",
"Cyprus Description":"Nikosija, Limasolis, Larnaka, Pafas",
"Czech_Jihovychod_Jihomoravsky kraj Description":"Brno, Znoimas, Bržeclavas",
"Czech_Jihovychod_Kraj Vysocina Description":"Jihlava, Tršebyčius, Havliškūv Brodas",
"Czech_Jihozapad_Jihocesky kraj Description":"Česke Budejovicai, Taboras, Pysekas",
"Czech_Jihozapad_Plzensky kraj Description":"Pilzenas, Klatovai, Rokicanai",
"Czech_Karlovasky kraj Description":"Karlsbadas, Chebas, Sokolovas",
"Czech_Moravskoslezsko Description":"Ostrava, Haviržovas, Opava",
"Czech_Olomoucky kraj Description":"Olomoucas, Prostejovas, Pršerovas",
"Czech_Praha Description":"Praha",
"Czech_Severovychod_Kralovehradecky kraj Description":"Hradec Kralovė, Trutnovas, Nachodas",
"Czech_Severovychod_Liberecky kraj Description":"Liberecas, Jablonecas prie Nisos, Česka Lypa",
"Czech_Severovychod_Pardubicky kraj Description":"Pardubicė, Chrudimas, Svitavai",
"Czech_Stredni Cechy_East Description":"Kolynas, Pršybramas, Kutna Hora",
"Czech_Stredni Cechy_West Description":"Kladnas, Mlada Boleslavas, Berounas",
"Czech_Ustecky kraj Description":"Ūstis prie Labės, Mostas, Teplicė",
"Czech_Zlinsky Kraj Description":"Zlynas, Kromeržyžas, Vsetynas",
"Denmark_Capital Region of Denmark Description":"Kopenhaga, Skoulunė, Virumas",
"Denmark_Central Denmark Region Description":"Orhusas, Juelsmindė, Brabrandas",
"Denmark_North Denmark Region Description":"Olborgas, Joringas, Frederikshaunas",
"Denmark_Region Zealand Description":"Roskildė, Nestvedas, Grevė Strandas",
"Denmark_Region of Southern Denmark Description":"Odensė, Morudas, Korupas",
"Djibouti Description":"Džibutis, Randa, Jobokis",
"Dominica Description":"Rozo, Solsberis, Grand Bėjus",
"Dominican Republic Description":"Santo Domingas, Barahona, Asua",
"East Timor Description":"Dilis, Pante Makasaras, Vikekė",
"Ecuador_East Description":"Kitas, Kuenka, Tena",
"Ecuador_West Description":"Gvajakilis, Manta, Mačala",
"Egypt Description":"Kairas, Aleksandrija, Giza",
"El Salvador Description":"San Salvadoras, Ahuačapanas, Sonsonatė",
"Equatorial Guinea Description":"Malabas, Mongomas, Bata",
"Eritrea Description":"Asmara, Kerenas, Omhadžeris",
"Estonia_East Description":"Peltsama, Veru, Tartu",
"Estonia_West Description":"Talinas, Pernu, Mardu",
"Ethiopia Description":"Adis Abeba, Asela, Bahir Daras",
"Falkland Islands Description":"Stanlis, Folklando salos, Danous Hedas, Port Edgaras",
"Faroe Islands Description":"Torshaunas, Klaksvikas, Nordepilis",
"Federated States of Micronesia Description":"Palikyras, Kolonija, Tamvorohis",
"Fiji Description":"Suva, Nasinu, Nadis",
"Finland_Eastern Finland_North Description":"Alapitkė, Kolis, Kajanis",
"Finland_Eastern Finland_South Description":"Kuopijas, Joensū, Mikelis",
"Finland_Northern Finland Description":"Oulu, Rovaniemis, Kokola",
"Finland_Southern Finland_Helsinki Description":"Helsinkis, Espas, Vanta",
"Finland_Southern Finland_Lappeenranta Description":"Kouvola, Lapenranta, Kotka",
"Finland_Southern Finland_West Description":"Turku, Hemenlina, Salas",
"Finland_Western Finland_Jyvaskyla Description":"Juveskiulė, Lehtimekis, Kuorevesis",
"Finland_Western Finland_Tampere Description":"Tamperė, Poris, Vasa",
"France_Alsace_Bas-Rhin Description":"Strasbūras, Hagno, Šiltigemas",
"France_Alsace_Haut-Rhin Description":"Miulūzas, Kolmaras, Sen Lui",
"France_Aquitaine_Dordogne Description":"Perigė, Beržerakas, Bulazak Il Manuaras",
"France_Aquitaine_Gironde Description":"Bordo, Merinjakas, Pesakas",
"France_Aquitaine_Landes Description":"Mon de Marsanas, Daksas, Sen Polis prie Dakso",
"France_Aquitaine_Lot-et-Garonne Description":"Aženas, Vilnevas prie Loto, Marmandas",
"France_Aquitaine_Pyrenees-Atlantiques Description":"Po, Bajona, Anglė",
"France_Auvergne_Allier Description":"Monliusonas, Viši, Mulenas",
"France_Auvergne_Cantal Description":"Orijakas, Sen Flūras, Arpažonas prie Sero",
"France_Auvergne_Haute-Loire Description":"Le Piui an Velė, Monistrolis prie Luaros, Isenžo",
"France_Auvergne_Puy-de-Dome Description":"Klermonas-Feranas, Overnės Kurnonas, Rjomas",
"France_Brittany_Cotes-dArmor Description":"Sen Brijė, Lanjonas, Lambalis-Armoras",
"France_Brittany_Finistere Description":"Brestas, Kemperas, Konkarno",
"France_Brittany_Ille-et-Vilaine Description":"Renas, Sen Malo, Fužeras",
"France_Brittany_Morbihan Description":"Lorjanas, Vanas, Lanesteras",
"France_Burgundy_Cote-dOr Description":"Dižonas, Bonas, Šenovas",
"France_Burgundy_Nievre Description":"Neveras, Kon Kūras prie Luaros, Varenas-Vozelis",
"France_Burgundy_Saone-et-Loire Description":"Šalonas prie Sonos, Makonas, Le Krezo",
"France_Burgundy_Yonne Description":"Oseras, Sansas, Žuanji",
"France_Centre-Val de Loire_Cher Description":"Buržas, Vjerzonas, Sen Dulšaras",
"France_Centre-Val de Loire_Eure-et-Loir Description":"Šartras, Drė, Liusė",
"France_Centre-Val de Loire_Indre Description":"Šatoru, Isudenas, Deolis",
"France_Centre-Val de Loire_Indre-et-Loire Description":"Tūras, Žue le Turas, Sen Siras prie Luaros",
"France_Centre-Val de Loire_Loir-et-Cher Description":"Blua, Romoranten Lantnė, Vandomas",
"France_Centre-Val de Loire_Loiret Description":"Orleanas, Olivė, Sen Žan de Brė",
"France_Champagne-Ardenne Description":"Reimsas, Trua, Šarlevilis-Mezjeras",
"France_Corsica Description":"Ajačas, Bastja, Porto Vekjas",
"France_Free County_North Description":"Bezansonas, Belforas, Monbeljaras",
"France_Free County_South Description":"Pontarljė, Lon le Sonjė, Sen Klodas",
"France_French Guiana Description":"Kajenas, Sen Loran diu Maroni, Maturi",
"France_Ile-de-France_Essonne Description":"Evri, Korbej Esonas, Masi",
"France_Ile-de-France_Hauts-de-Seine Description":"Bulonė-Bijankūras, Nanteras, Kurbevua",
"France_Ile-de-France_Paris Description":"Paryžius, Paryžiaus Kampanė",
"France_Ile-de-France_Seine-Saint-Denis Description":"Sen Deni, Montrėjus, Oberviljė",
"France_Ile-de-France_Seine-et-Marne Description":"Mo, Šelis, Melenas",
"France_Ile-de-France_Val-dOise Description":"Aržantėjus, Serži, Sarselis",
"France_Ile-de-France_Val-de-Marne Description":"Vitri prie Senos, Kretėjus, Šampinji prie Marnos",
"France_Ile-de-France_Yvelines Description":"Versalis, Sartruvilis, Sen Žermenas prie Lė",
"France_Languedoc-Roussillon_Aude Description":"Narbonas, Karkasonas, Kastelnodari",
"France_Languedoc-Roussillon_Gard Description":"Nimas, Alesas, Banjolis prie Sezo",
"France_Languedoc-Roussillon_Herault Description":"Monpeljė, Bezjė, Setas",
"France_Languedoc-Roussillon_Lozere Description":"Mandas, Marvežolis, Sen Šeli dApšė",
"France_Languedoc-Roussillon_Pyrenees-Orientales Description":"Perpinjanas, Rusijono Kanė, Sent Estevas",
"France_Limousin Description":"Limožas, Briv la Gajaras, Tiulis",
"France_Lorraine_Meurthe-et-Moselle Description":"Nansi, Vandevras prie Nansi, Liunevilis",
"France_Lorraine_Meuse Description":"Verdenas, Bar le Diukas, Komersi",
"France_Lorraine_Moselle Description":"Mecas, Tjonvilis, Montinji prie Meco",
"France_Lorraine_Vosges Description":"Epinalis, Vogėzų Sen Djė, Žerarmė",
"France_Lower Normandy_Calvados Description":"Kanas, Heruvil Sen Kleras, Lizjė",
"France_Lower Normandy_Manche Description":"Kotanteno Šerbūras, Sen Lo, Granvilis",
"France_Lower Normandy_Orne Description":"Alansonas, Fleras, Aržantanas",
"France_Midi-Pyrenees_Ariege Description":"Pamjė, Fua, Sen Žironas",
"France_Midi-Pyrenees_Aveyron Description":"Rodezas, Mijo, Vilfranš de Ruergas",
"France_Midi-Pyrenees_Gers Description":"Ošas, LIl Žurdenas, Kondonas",
"France_Midi-Pyrenees_Haute-Garonne Description":"Tulūza, Kolomjė, Turnfėjus",
"France_Midi-Pyrenees_Hautes-Pyrenees Description":"Tarbas, Lurdesas, Orejanas",
"France_Midi-Pyrenees_Lot Description":"Kahoras, Fižakas, Gurdonas",
"France_Midi-Pyrenees_Tarn Description":"Albi, Kastras, Gajakas",
"France_Midi-Pyrenees_Tarn-et-Garonne Description":"Montobanas, Kastelsarazenas, Muasakas",
"France_New Caledonia Description":"Puandimjė, Numėja, Ponerihvenas",
"France_Nord-Pas-de-Calais_Lille Description":"Lilis, Rubė, Turkuenas",
"France_Nord-Pas-de-Calais_Nord Description":"Valansjenas, Duė, Kambrė",
"France_Nord-Pas-de-Calais_Pas-de-Calais Description":"Kalė, Pajūrio Bulonė, Arasas",
"France_Pays de la Loire_Loire-Atlantique_Nantes Description":"Nantas, Sent Herblenas, Rezė",
"France_Pays de la Loire_Loire-Atlantique_Saint-Nazaire Description":"Sen Nazeras, Gerandas, La Bol Eskublakas",
"France_Pays de la Loire_Maine-et-Loire Description":"Anžė, Šolė, Somiūras",
"France_Pays de la Loire_Mayenne Description":"Lavalis, Šato Gontjė, Majenas",
"France_Pays de la Loire_Sarthe Description":"Le Manas, La Flešas, Sablė prie Sarto",
"France_Pays de la Loire_Vendee Description":"La Rošas prie Jono, Le Sabl dOlonas, Šalanas",
"France_Picardy_Aisne Description":"Sen Kantenas, Suasonas, Lanas",
"France_Picardy_Oise Description":"Bovė, Kompjenė, Krėjus",
"France_Picardy_Somme Description":"Amjenas, Abevilis, Alberas",
"France_Poitou-Charentes_Charente Description":"Angulemas, Konjakas, Suajo",
"France_Poitou-Charentes_Charente-Maritime Description":"La Rošelis, Sentas, Rošforas",
"France_Poitou-Charentes_Deux-Sevres Description":"Njoras, Bresiuyras, Tuaras",
"France_Poitou-Charentes_Vienne Description":"Puatjė, Šatelro, Biusrolis",
"France_Provence-Alpes-Cote dAzur_Alpes-de-Haute-Provence Description":"Manoskas, Din le Benas, Sisteronas",
"France_Provence-Alpes-Cote dAzur_Bouches-du-Rhone Description":"Marselis, Provanso Eksas, Arlis",
"France_Provence-Alpes-Cote dAzur_Hautes-Alpes Description":"Gapas, Briansonas, Ambrenas",
"France_Provence-Alpes-Cote dAzur_Maritime Alps Description":"Nica, Antibas, Kanai",
"France_Provence-Alpes-Cote dAzur_Var Description":"Tulonas, Pajūrio La Senas, Frežiusas",
"France_Provence-Alpes-Cote dAzur_Vaucluse Description":"Avinjonas, Karpantra, Oranžas",
"France_Rhone-Alpes_Ain Description":"Breso Burgas, Ojona, Valseronas",
"France_Rhone-Alpes_Ardeche Description":"Anonė, Obena, Gijeran Granžas",
"France_Rhone-Alpes_Drome Description":"Valansas, Montelimaras, Romanas prie Izero",
"France_Rhone-Alpes_Haute-Savoie Description":"Ansi, Anmasas, Tonon le Benas",
"France_Rhone-Alpes_Isere Description":"Grenoblis, Sen Marten dHeras, Eširolis",
"France_Rhone-Alpes_Loire Description":"Sent Etjenas, Sen Šamonas, Roanas",
"France_Rhone-Alpes_Rhone Description":"Lionas, Vilerbanas, Venisjė",
"France_Rhone-Alpes_Savoie Description":"Šamberi, Eks le Benas, Albervilis",
"France_Southern Islands Description":"Le Portas, Sen Deni, Kokoni",
"France_Upper Normandy Description":"Havras, Ruanas, Evrė",
"French Polynesia Description":"Vaitapė, Vaitahu, Tiputa",
"Gabon Description":"Librevilis, Por Žantilis, Sanžala",
"Georgia Description":"Tbilisis, Kutaisis, Batumis",
"Germany_Baden-Wurttemberg_Regierungsbezirk Freiburg Description":"Breisgau Freiburgas, Filingenas-Šveningenas, Konstansa",
"Germany_Baden-Wurttemberg_Regierungsbezirk Karlsruhe Description":"Manheimas, Karlsrūhė, Heidelbergas",
"Germany_Baden-Wurttemberg_Regierungsbezirk Stuttgart_Heilbronn Description":"Heilbronas, Švabijos Halis, Krailsheimas",
"Germany_Baden-Wurttemberg_Regierungsbezirk Stuttgart_Stuttgart Description":"Štutgartas, Eslingemas prie Nekaro, Liudvigsburgas",
"Germany_Baden-Wurttemberg_Regierungsbezirk Tubingen Description":"Ulmas, Roitlingenas, Tiubingenas",
"Germany_Berlin Description":"Berlynas, Falkenbergas, Griunekas",
"Germany_Brandenburg_North Description":"Brandenburgas, Potsdamas, Panketalis",
"Germany_Brandenburg_South Description":"Frankfurtas prie Oderio, Kotbusas",
"Germany_Free State of Bavaria_Lower Bavaria Description":"Landshutas, Pasau, Štraubingas",
"Germany_Free State of Bavaria_Lower Franconia Description":"Viurcburgas, Ašafenburgas, Šveinfurtas",
"Germany_Free State of Bavaria_Middle Franconia Description":"Niurnbergas, Fiurtas, Erlangenas",
"Germany_Free State of Bavaria_Swabia Description":"Augsburgas, Algojaus Kemptenas, Noi Ulmas",
"Germany_Free State of Bavaria_Upper Bavaria_East Description":"Rozenheimas",
"Germany_Free State of Bavaria_Upper Bavaria_Ingolstadt Description":"Ingolštatas, Freizingas, Noiburgas prie Dunojaus",
"Germany_Free State of Bavaria_Upper Bavaria_Munchen Description":"Miunchenas, Dachau",
"Germany_Free State of Bavaria_Upper Bavaria_South Description":"Pfišternas, Šongau, Hoenpaisenbergas",
"Germany_Free State of Bavaria_Upper Franconia Description":"Bairoitas, Bambergas, Hofas",
"Germany_Free State of Bavaria_Upper Palatinate Description":"Rėgensburgas, Ambergas, Aukštutinio Pfalco Veidenas",
"Germany_Hamburg_main Description":"Hamburgas, Netelnburgas, Fiunfhausenas",
"Germany_Hesse_Regierungsbezirk Darmstadt Description":"Frankfurtas prie Maino, Vysbadenas, Darmštatas",
"Germany_Hesse_Regierungsbezirk Giessen Description":"Lauterbachas, Gysenas, Marburgas",
"Germany_Hesse_Regierungsbezirk Kassel Description":"Kaselis, Fulda, Felis",
"Germany_Lower Saxony_Braunschweig Description":"Brunsvikas, Getingenas, Volfsburgas",
"Germany_Lower Saxony_Bremen_Bremen Description":"Brėmenas, Brėmerhafenas, Uchtė",
"Germany_Lower Saxony_Bremen_Munster Description":"Rotenburgas prie Viumės, Vinzenas prie Luės, Bukstehudė",
"Germany_Lower Saxony_Hannover Description":"Hanoveris, Hildesheimas, Bad Nendorfas",
"Germany_Lower Saxony_Oldenburg Description":"Osnabriukas, Oldenburgas, Nordhornas",
"Germany_Mecklenburg-Vorpommern Description":"Rostokas, Šverinas, Vismaras",
"Germany_North Rhine-Westphalia_Regierungsbezirk Arnsberg_Arnsberg Description":"Zygenas, Arnsbergas, Liudenšeidas",
"Germany_North Rhine-Westphalia_Regierungsbezirk Arnsberg_Dortmund Description":"Dortmundas, Bochumas, Hagenas",
"Germany_North Rhine-Westphalia_Regierungsbezirk Detmold Description":"Bylefeldas, Paderbornas, Giuterslas",
"Germany_North Rhine-Westphalia_Regierungsbezirk Dusseldorf_Dusseldorf Description":"Diuseldorfas, Vupertalis, Menchengladbachas",
"Germany_North Rhine-Westphalia_Regierungsbezirk Dusseldorf_Mulheim Description":"Esenas, Duisburgas, Krėfeldas",
"Germany_North Rhine-Westphalia_Regierungsbezirk Dusseldorf_Wesel Description":"Vėzelis, Klėvė, Geldernas",
"Germany_North Rhine-Westphalia_Regierungsbezirk Koln_Aachen Description":"Achenas, Diurenas, Zimeratas",
"Germany_North Rhine-Westphalia_Regierungsbezirk Koln_Koln Description":"Kelnas, Bona, Lėverkuzenas",
"Germany_North Rhine-Westphalia_Regierungsbezirk Munster_Munster Description":"Miunsteris, Reinė, Alenas",
"Germany_North Rhine-Westphalia_Regierungsbezirk Munster_Recklinghausen Description":"Gelzenkirchenas, Botropas, Reklinghauzenas",
"Germany_Rhineland-Palatinate_Koblenz Description":"Koblencas, Tryras, Noivydas",
"Germany_Rhineland-Palatinate_South Description":"Maincas, Liudvigshafenas prie Reino, Kaizerslauternas",
"Germany_Saarland Description":"Sarbriukenas, Noikirchenas prie Saro, Homburgas",
"Germany_Saxony-Anhalt_Halle Description":"Halė, Desau-Roslau, Cerbstas/Anhaltas",
"Germany_Saxony-Anhalt_Magdeburg Description":"Magdeburgas, Halberštatas, Ašerslėbenas",
"Germany_Saxony_Dresden Description":"Dresdenas, Gerlicas, Širgisvaldė-Kiršau",
"Germany_Saxony_Leipzig Description":"Leipcigas, Chemnicas, Cvikau",
"Germany_Schleswig-Holstein_Flensburg Description":"Flensburgas, Elmshornas, Pinebergas",
"Germany_Schleswig-Holstein_Kiel Description":"Kylis, Liubekas, Noimiunsteris",
"Germany_Thuringia Description":"Erfurtas, Jėna, Gėra",
"Ghana Description":"Akra, Kumasis, Večiau",
"Gibraltar Description":"Gibraltaras, Katalan Bėjus",
"Greece_Decentralized Administration of Aegean Description":"Kosas, Paras, Nausa",
"Greece_Decentralized Administration of Attica Description":"Atėnai, Egalėjas, Kamateras",
"Greece_Decentralized Administration of Crete Description":"Heraklionas, Elunda, Chanija",
"Greece_Decentralized Administration of Epirus - Western Macedonia Description":"Ejanė, Janina, Galatinė",
"Greece_Decentralized Administration of Macedonia and Thrace Description":"Tesalonikė, Makrochoris, Platis",
"Greece_Decentralized Administration of Thessaly - Central Greece Description":"Chalkidė, Larisa, Volas",
"Greece_Decentralized Administration of West Greece Description":"Patrai, Lefkas, Kalamata",
"Greenland Description":"Kangatsiakas, Kakortokas, Pamiutas",
"Grenada Description":"Sent Džordžesas, Gujavas, Kalivinji",
"Guadeloupe Description":"Lez Abimas, Be Maho, Gosjė",
"Guatemala Description":"Gvatemala, Kecaltenangas, Santo Tomas de Kastilja",
"Guernsey Description":"Sent Piter Portas, Sent Ana, Bridžas",
"Guinea Description":"Konakris, Koja, Nzerekorė",
"Guinea-Bissau Description":"Bisau, Mansoa, Bubakė",
"Guyana Description":"Džordžtaunas, Niu Amsterdamas, Port Kaituma",
"Haiti Description":"Port o Prensas, Karefūras, Tabaras",
"Honduras Description":"Tegusigalpa, San Pedro Sula, Santa Barbara",
"Hungary_Kozep-Magyarorszag Description":"Budapeštas, Ėrdas, Dunakesis",
"Hungary_Northern Great Plain Description":"Debrecenas, Segedas, Miškolcas",
"Hungary_Transdanubia Description":"Pėčas, Dėras, Sėkešfehėrvaras",
"Iceland Description":"Reikjavikas, Patreksfjorduras, Grundarfjorduras",
"India_Andaman and Nicobar Islands Description":"Port Bleras, Vandūras, Ferargundžas",
"India_Andhra Pradesh Description":"Vidžajavada, Visakapatnamas, Guntūras",
"India_Arunachal Pradesh Description":"Koloriangas, Alongas",
"India_Assam Description":"Guvahatis, Silčaras, Džoratas",
"India_Bihar Description":"Baksaras, Patna, Gaja",
"India_Chandigarh Description":"Čandygaras, Palsora, Kaheris",
"India_Chhattisgarh Description":"Bilaspuras, Ambikapuras, Bilajus",
"India_Delhi Description":"Delis, Naujasis Delis, Nankeris",
"India_Goa Description":"Panadžis, Margaunas, Dičolis",
"India_Gujarat Description":"Ahmadabadas, Džamnagaras, Suratas",
"India_Haryana Description":"Pančkula, Revaris, Rohtakas",
"India_Himachal Pradesh Description":"Nurpuras, Mandis, Bharmuras",
"India_Jammu and Kashmir Description":"Šrynagaras, Džamu, Udampuras",
"India_Jharkhand Description":"Ranči, Danbadas, Džamšedpuras"
"Switzerland_Zurich":"Ciurichas"
}

File diff suppressed because it is too large Load Diff

View File

@@ -519,6 +519,7 @@
<include group="poi_internet" />
</type>
<type id="amenity-charging_station">
<include field="name" />
<include group="charge_sockets" />
<include field="opening_hours" />
<include field="operator" />
@@ -1115,7 +1116,7 @@
<type id="tourism-artwork">
<include field="name" />
</type>
<type id="tourism-attraction" can_add="no">
<type id="tourism-attraction">
<include group="poi_internet" />
<!-- <include field="wikipedia" />-->
</type>

View File

@@ -6,7 +6,7 @@
"make_a_right_turn_street":"NULL",
"make_a_sharp_right_turn":"À droite toute.",
"make_a_sharp_right_turn_street":"NULL",
"enter_the_roundabout":"Prendre le rond-point.",
"enter_the_roundabout":"Au rond-point.",
"enter_the_roundabout_street":"NULL",
"enter_the_roundabout_street_verb":"NULL",
"leave_the_roundabout":"Sortez du rond-point.",

View File

@@ -1,17 +0,0 @@
<!-- From DE-RealWorldLargeFeed. -->
<!--
The route starts at a large junction, goes down the wrong carriageway of the motorway,
changes direction at the next junction, then back.
-->
<feed>
<message expiration_time="2025-10-09T21:37:08+03:00" id="tmc:d.1.7:d.1.10209.n.1" receive_time="2025-10-09T21:17:08+03:00" update_time="2025-10-09T21:17:08+03:00">
<location directionality="ONE_DIRECTION" fuzziness="LOW_RES" road_class="MOTORWAY" road_name="Westlicher Berliner Ring" road_ref="A10">
<from junction_name="Werder" junction_ref="21">+52.334801 +12.814650</from>
<to junction_name="Groß Kreutz" junction_ref="22">+52.393700 +12.835000</to>
</location>
<events>
<event class="CONGESTION" type="CONGESTION_STATIONARY_TRAFFIC">
</event>
</events>
</message>
</feed>

View File

@@ -1,17 +0,0 @@
<!-- From DE-RealWorldLargeFeed. -->
<!--
The route ends at a large junction, proceeds past the reference point, then
goes back down the wrong carriageway of the motorway.
-->
<feed>
<message expiration_time="2025-10-09T21:37:08+03:00" id="tmc:d.1.7:d.1.10292.p.1" receive_time="2025-10-09T21:17:08+03:00" update_time="2025-10-09T21:17:08+03:00">
<location directionality="ONE_DIRECTION" fuzziness="LOW_RES" road_class="MOTORWAY" road_name="Autobahnzubringer Magdeburg" road_ref="A115">
<from junction_name="Potsdam-Drewitz" junction_ref="5a">+52.352650 +13.140700</from>
<to junction_name="Nuthetal" junction_ref="7">+52.300201 +13.083500</to>
</location>
<events>
<event class="CONGESTION" type="CONGESTION_STATIONARY_TRAFFIC">
</event>
</events>
</message>
</feed>

View File

@@ -1,16 +0,0 @@
<!--
From DE-realworld5.
Test case for turn penalty (eastern end).
-->
<feed>
<message expiration_time="2025-10-09T21:37:08+03:00" id="tmc:d.1.15:d.1.29829.n.1" receive_time="2025-10-09T21:17:08+03:00" update_time="2025-10-09T21:17:08+03:00">
<location directionality="ONE_DIRECTION" fuzziness="LOW_RES" road_name="Mittlerer Ring" road_ref="B2R">
<from junction_name="Lerchenauer Straße">+48.176102 +11.558100</from>
<to junction_name="Petueltunnel">+48.178001 +11.572800</to>
</location>
<events>
<event class="CONGESTION" type="CONGESTION_QUEUE">
</event>
</events>
</message>
</feed>

View File

@@ -1,19 +0,0 @@
<!-- From DE-realworld5. -->
<!--
A combination of reference points on the opposite carriageway, high offroad cost,
allowing any road to be used and a low penalty results in a completely incorrect
location (through a residential area rather than along the opposite carriageway).
Test case for turn penalty (eastern end) if the above is resolved.
-->
<feed>
<message expiration_time="2025-10-09T21:37:08+03:00" id="tmc:d.1.15:d.1.22689.p.1" receive_time="2025-10-09T21:17:08+03:00" update_time="2025-10-09T21:17:08+03:00">
<location directionality="ONE_DIRECTION" fuzziness="LOW_RES" road_name="Mittlerer Ring" road_ref="B2R">
<from junction_name="München-Sendling-Süd">+48.110901 +11.518500</from>
<to junction_name="Passauerstraße">+48.110649 +11.534150</to>
</location>
<events>
<event class="CONGESTION" type="CONGESTION_QUEUE">
</event>
</events>
</message>
</feed>

View File

@@ -1,22 +0,0 @@
<!--
Subset of realworld5.
Test case for turn penalty (both ends).
Junction names are the names of the crossing roads.
No segments of the crossing roads should be among the matched segments.
-->
<feed>
<message expiration_time="2025-10-09T21:37:08+03:00" id="tmc:d.1.15:d.1.46572.p.1,14" receive_time="2025-10-09T21:17:08+03:00" update_time="2025-10-09T21:17:08+03:00">
<location directionality="ONE_DIRECTION" fuzziness="LOW_RES" road_name="Leopoldstraße" road_ref="GM4">
<from junction_name="Potsdamer Straße">+48.167301 +11.586200</from>
<to junction_name="Ungererstraße">+48.164200 +11.586500</to>
</location>
<events>
<event class="INCIDENT" type="INCIDENT_ACCIDENT">
</event>
<event class="CONGESTION" type="CONGESTION_STATIONARY_TRAFFIC">
</event>
<event class="HAZARD" type="HAZARD_PASSABLE_WITH_CARE_BELOW_ELEVATION">
</event>
</events>
</message>
</feed>

View File

@@ -1,58 +0,0 @@
<!--
Test cases for reference points inside a roundabout.
If the roundabout itself is included in the decoded location, the message would
affect all roads which connect to it, resulting in incorrect routing, especially
in the case of closure events. For this reason, we must truncate roundabouts if
they occur at the start or end of the decoded location.
-->
<feed>
<message id="tmc:d.1.12:d.1.13962.p.5,11" receive_time="2018-07-27T10:22:22+02:00" update_time="2018-07-27T08:43:15Z" expiration_time="2018-07-27T09:43:15Z" urgency="URGENT">
<location fuzziness="LOW_RES" directionality="BOTH_DIRECTIONS" road_class="SECONDARY" road_ref="L87">
<from junction_name="Rheinau-Freistett/B36">+48.661098 +7.936800</from>
<to junction_name="Gambsheim (F)">+48.683701 +7.916600</to>
</location>
<events>
<event class="CONSTRUCTION" type="CONSTRUCTION_CONSTRUCTION_WORK">
</event>
<event class="RESTRICTION" type="RESTRICTION_CLOSED">
</event>
</events>
</message>
<message id="tmc:d.1.12:d.1.26212.p.5,11" receive_time="2018-07-27T10:21:49+02:00" update_time="2018-07-27T08:42:41Z" expiration_time="2018-07-27T09:42:41Z" urgency="URGENT">
<location fuzziness="LOW_RES" directionality="BOTH_DIRECTIONS" road_class="PRIMARY" road_ref="B428">
<from junction_name="Hackenheim">+49.822948 +7.906900</from>
<to junction_name="Frei-Laubersheim">+49.803650 +7.901450</to>
</location>
<events>
<event class="CONSTRUCTION" type="CONSTRUCTION_LONGTERM_ROADWORKS">
</event>
<event class="RESTRICTION" type="RESTRICTION_CLOSED">
</event>
</events>
</message>
<message id="tmc:d.1.12:d.1.48638.n.9,11" receive_time="2018-07-27T10:11:06+02:00" update_time="2018-07-27T08:31:43Z" expiration_time="2018-07-27T09:31:43Z" urgency="URGENT">
<location fuzziness="LOW_RES" directionality="BOTH_DIRECTIONS" road_class="PRIMARY" road_ref="B272">
<from junction_name="Hochstadt">+49.239750 +8.222300</from>
<to junction_name="Weingarten">+49.253448 +8.268100</to>
</location>
<events>
<event class="CONSTRUCTION" type="CONSTRUCTION_ROADWORKS">
</event>
<event class="RESTRICTION" type="RESTRICTION_CLOSED_AHEAD">
</event>
</events>
</message>
<message id="tmc:d.1.12:d.1.56576.n.9,11" receive_time="2018-07-27T10:22:53+02:00" update_time="2018-07-27T08:43:45Z" expiration_time="2018-07-27T09:43:45Z" urgency="URGENT">
<location fuzziness="LOW_RES" directionality="ONE_DIRECTION" road_class="PRIMARY" road_ref="B417">
<from junction_name="Diez">+50.372398 +8.038500</from>
<to junction_name="Diez">+50.370850 +8.004050</to>
</location>
<events>
<event class="CONSTRUCTION" type="CONSTRUCTION_RESURFACING_WORK">
</event>
<event class="RESTRICTION" type="RESTRICTION_CLOSED">
<supplementary_info class="VEHICLE" type="S_VEHICLE_THROUGH_TRAFFIC"/>
</event>
</events>
</message>
</feed>

View File

@@ -1,23 +0,0 @@
<!--
This is a 140 m location. Reference points are almost exactly on the opposite
carriageway; since this is inside a junction, there is a wider gap between
the two carriageways than there would be on a normal stretch of expressway.
Without truncation, the decoded location starts approximately in the right
spot but overshoots the end point, going to the nearest junction, then back
in the opposite direction and to the end point on the opposite carriageway,
ending within 5 m of the end point.
-->
<feed>
<message id="lt.eismoinfo.restrictions:4249b6510b73750684ca94de5fe8cf32,eastbound" receive_time="2025-01-21T12:33:06Z" update_time="2025-01-21T12:33:06Z" expiration_time="2025-12-31T21:00:00Z" cancellation="false" forecast="false" urgency="NORMAL">
<merge/>
<location country="LT" origin="Suvalkai*" directionality="ONE_DIRECTION" destination="Kaunas" road_class="TRUNK" road_ref="A5">
<from distance="0.14">54.939945 23.879789</from>
<to distance="0.0" junction_name="Kaunas">54.940094 23.881950</to>
</location>
<events>
<event class="RESTRICTION" type="RESTRICTION_MAX_WIDTH" q_dimension="3.5"/>
<event class="CONSTRUCTION" type="CONSTRUCTION_ROADWORKS"/>
<event class="RESTRICTION" type="RESTRICTION_SPEED_LIMIT" speed="50"/>
</events>
</message>
</feed>

View File

@@ -108,6 +108,8 @@ auto constexpr TMP_OFFSETS_EXT = OFFSET_EXT EXTENSION_TMP;
#define CROSS_MWM_OSM_WAYS_DIR "cross_mwm_osm_ways"
#define TEMP_ADDR_EXTENSION ".tempaddr"
#define TRAFFIC_FILE_EXTENSION ".traffic"
#define SKIPPED_ELEMENTS_FILE "skipped_elements.json"
#define MAPCSS_MAPPING_FILE "mapcss-mapping.csv"

View File

@@ -207,6 +207,8 @@ set(SRC
tesselator.hpp
towns_dumper.cpp
towns_dumper.hpp
traffic_generator.cpp
traffic_generator.hpp
transit_generator.cpp
transit_generator.hpp
transit_generator_experimental.cpp

View File

@@ -26,6 +26,7 @@
#include "generator/routing_world_roads_generator.hpp"
#include "generator/search_index_builder.hpp"
#include "generator/statistics.hpp"
#include "generator/traffic_generator.hpp"
#include "generator/transit_generator.hpp"
#include "generator/transit_generator_experimental.hpp"
#include "generator/unpack_mwm.hpp"
@@ -170,6 +171,7 @@ DEFINE_string(unpack_borders, "", "Convert packed_polygons to a directory of pol
DEFINE_bool(unpack_mwm, false, "Unpack each section of mwm into a separate file with name filePath.sectionName.");
DEFINE_bool(check_mwm, false, "Check map file to be correct.");
DEFINE_string(delete_section, "", "Delete specified section (defines.hpp) from container.");
DEFINE_bool(generate_traffic_keys, false, "Generate keys for the traffic map (road segment -> speed group).");
DEFINE_bool(dump_mwm_tmp, false, "Prints feature builder objects from .mwm.tmp");
@@ -544,6 +546,12 @@ MAIN_WITH_ERROR_HANDLING([](int argc, char ** argv)
BuildPopularPlacesFromDescriptions(dataFile);
}
}
if (FLAGS_generate_traffic_keys)
{
if (!traffic::GenerateTrafficKeysFromDataFile(dataFile))
LOG(LCRITICAL, ("Error generating traffic keys."));
}
}
string const dataFile = base::JoinPath(path, FLAGS_output + DATA_FILE_EXTENSION);

View File

@@ -151,7 +151,7 @@ public:
// Set speed as-is from parent link.
if (parentHwType == hwType)
return {{s.GetForward(), s.GetUnits()}};
/*
using routing::HighwayType;
if ((*parentHwType == HighwayType::HighwayMotorway && hwType == HighwayType::HighwayMotorwayLink) ||
(*parentHwType == HighwayType::HighwayTrunk && hwType == HighwayType::HighwayTrunkLink) ||
@@ -163,6 +163,7 @@ public:
return converter.ClosestValidMacro(
{base::asserted_cast<MaxspeedType>(std::lround(s.GetForward() * kLinkToMainSpeedFactor)), s.GetUnits()});
}
*/
return {};
};

View File

@@ -0,0 +1,44 @@
#include "generator/traffic_generator.hpp"
#include "routing/routing_helpers.hpp"
#include "traffic/traffic_info.hpp"
#include "routing_common/car_model.hpp"
#include "platform/mwm_traits.hpp"
#include "indexer/feature_algo.hpp"
#include "indexer/feature_processor.hpp"
#include "indexer/features_offsets_table.hpp"
#include "coding/file_writer.hpp"
#include "coding/files_container.hpp"
#include <vector>
namespace traffic
{
bool GenerateTrafficKeysFromDataFile(std::string const & mwmPath)
{
try
{
std::vector<TrafficInfo::RoadSegmentId> keys;
TrafficInfo::ExtractTrafficKeys(mwmPath, keys);
std::vector<uint8_t> buf;
TrafficInfo::SerializeTrafficKeys(keys, buf);
FilesContainerW writeContainer(mwmPath, FileWriter::OP_WRITE_EXISTING);
auto writer = writeContainer.GetWriter(TRAFFIC_KEYS_FILE_TAG);
writer->Write(buf.data(), buf.size());
}
catch (RootException const & e)
{
LOG(LERROR, ("Failed to build traffic keys:", e.Msg()));
return false;
}
return true;
}
} // namespace traffic

View File

@@ -0,0 +1,8 @@
#pragma once
#include <string>
namespace traffic
{
bool GenerateTrafficKeysFromDataFile(std::string const & mwmPath);
} // namespace traffic

View File

@@ -1,12 +1,6 @@
NS_SWIFT_NAME(SettingsBridge)
@interface MWMSettings : NSObject
+ (BOOL)liveTrafficEnabled;
+ (void)setLiveTrafficEnabled:(BOOL)liveTrafficEnabled;
+ (NSURL *)liveTrafficUrl;
+ (void)setLiveTrafficUrl:(NSURL *)liveTrafficUrl;
+ (BOOL)buildings3dViewEnabled;
+ (void)setBuildings3dViewEnabled:(BOOL)buildings3dViewEnabled;

View File

@@ -27,40 +27,6 @@ NSString * const kUDFileLoggingEnabledKey = @"FileLoggingEnabledKey";
@implementation MWMSettings
+ (BOOL)liveTrafficEnabled;
{
return GetFramework().LoadTrafficHttpEnabled();
}
+ (void)setLiveTrafficEnabled:(BOOL)liveTrafficEnabled;
{
auto &f = GetFramework();
f.SaveTrafficHttpEnabled(liveTrafficEnabled);
f.SetTrafficHttpEnabled(liveTrafficEnabled);
}
+ (NSURL *)liveTrafficUrl;
{
NSString * link = @(GetFramework().LoadTrafficHttpUrl().c_str());
if ([link length] == 0) {
return nil;
} else {
return [NSURL URLWithString:link];
}
}
+ (void)setLiveTrafficUrl:(NSURL *)liveTrafficUrl;
{
auto &f = GetFramework();
if (liveTrafficUrl == nil) {
f.SaveTrafficHttpUrl(@"".UTF8String);
f.SetTrafficHttpUrl(@"".UTF8String);
} else {
f.SaveTrafficHttpUrl(liveTrafficUrl.absoluteString.UTF8String);
f.SetTrafficHttpUrl(liveTrafficUrl.absoluteString.UTF8String);
}
}
+ (BOOL)buildings3dViewEnabled;
{
bool _ = true, on = true;

View File

@@ -616,7 +616,7 @@
/* Error message in Editor when a user tries to set the number of floors for a building higher than %d floors */
"error_enter_correct_storey_number" = "El nombre de plantes no pot excedir de %d";
"editor_zip_code" = "Codi Postal";
"editor_zip_code" = "Codi postal";
"error_enter_correct_zip_code" = "Introduïu un codi postal vàlid";
/* Place Page title for long tap */
@@ -695,7 +695,7 @@
/* Dialog before publishing the modifications to the public map. */
"editor_share_to_all_dialog_message_1" = "Assegureu-vos que no heu introduït cap dada personal.";
"editor_share_to_all_dialog_message_2" = "Els editors d'OpenStreetMap revisaran els canvis. Et contactaran si tenen cap pregunta.";
"editor_share_to_all_dialog_message_2" = "Revisarem els canvis. Si tenim cap pregunta contactem amb vós via correu electrònic.";
"navigation_stop_button" = "Atura";
/* iOS dialog for the case when recent track recording is on and the app comes back from background */
@@ -1086,7 +1086,7 @@
"osm_profile_view_edit_history" = "Veure l'historial d'edicions";
"osm_profile_view_notes" = "Veure notes";
"about_headline" = "Projecte obert, desenvolupat per la comunitat";
"about_proposition_3" = "Transparent i sense ànim de lucre";
"about_proposition_3" = "Transparent and not for profit";
"pref_mapappearance_title" = "Map Appearance";
"pref_maplanguage_title" = "Map Language";
"transliteration_title_disabled_summary" = "Disabled when always using the local language for the map";
@@ -1094,7 +1094,3 @@
"existence_confirmed_time_ago" = "Existence confirmed %@";
"hours_confirmed_time_ago" = "Confirmed %@";
"offline_explanation_title" = "Mapes sense Connexió";
"offline_explanation_text" = "Un mapa ha de ser desconegut per a veure i navegar l'àrea.\nDescarrega mapes per a àrees on vulgues viatjar.";
"editor_place_doesnt_exist_description" = "Descriu com és el lloc ara mateix per enviar una nota d'error a la comunitat d'OpenStreetMap";
"avoid_steps" = "Evita escales";
"avoid_paved" = "Evita carreteres asfaltades";

View File

@@ -259,7 +259,7 @@
"type.craft.hvac" = "Calefacció, ventilació i aire condicionat";
"type.craft.key_cutter" = "Tall de claus";
"type.craft.locksmith" = "Serraller";
"type.craft.metal_construction" = "Metal·listeria";
"type.craft.metal_construction" = "Metal Worker";
"type.craft.painter" = "Pintor";
"type.craft.photographer" = "Fotògraf";
"type.shop.camera" = "Botiga de càmeres";
@@ -292,11 +292,11 @@
"type.cuisine.croatian" = "Croata";
"type.cuisine.curry" = "Curri";
"type.cuisine.deli" = "Delicatessen";
"type.cuisine.diner" = "Sopar";
"type.cuisine.diner" = "Diner";
"type.cuisine.donut" = "Donut";
"type.cuisine.ethiopian" = "Etiòpica";
"type.cuisine.filipino" = "Filipina";
"type.cuisine.fine_dining" = "Alta cuina";
"type.cuisine.fine_dining" = "Fine Dining";
"type.cuisine.fish" = "Peix";
"type.cuisine.fish_and_chips" = "Fish and Chips";
"type.cuisine.french" = "Francesa";
@@ -370,7 +370,7 @@
/* This is for main/primary entrances, for secondary entrances see type.entrance */
"type.entrance.main" = "Entrada principal";
"type.entrance.exit" = "Sortida (únicament)";
"type.entrance.exit" = "Sortida";
"type.fee.yes" = "€";
"type.fee.no" = "Gratuït";
"type.healthcare.laboratory" = "Laboratori mèdic";
@@ -381,14 +381,14 @@
"type.healthcare.optometrist" = "Optometrista";
"type.healthcare.podiatrist" = "Podòleg";
"type.healthcare.psychotherapist" = "Psicoterapeuta";
"type.healthcare.sample_collection" = "Centre de recollida de mostres";
"type.healthcare.sample_collection" = "Sample Collection Centre";
"type.healthcare.speech_therapist" = "Logopeda";
"type.highway" = "Carretera";
"type.highway.bridleway" = "Camí eqüestre";
"type.highway.bridleway" = "Bridle Path";
/* These translations are used for all type.highway.*.bridge. */
"type.highway.bridleway.bridge" = "Pont";
"type.highway.bridleway.permissive" = "Camí eqüestre";
"type.highway.bridleway.permissive" = "Bridle Path";
/* These translations are used for all type.highway.*.tunnel. */
"type.highway.bridleway.tunnel" = "Túnel";
@@ -521,8 +521,8 @@
/* These translations are used for all type.highway.*.bridge. */
"type.highway.service.bridge" = "Pont";
"type.highway.service.driveway" = "Via d'entrada";
"type.highway.service.parking_aisle" = "Passadís d'aparcament";
"type.highway.service.driveway" = "Service Road";
"type.highway.service.parking_aisle" = "Service Road";
/* These translations are used for all type.highway.*.tunnel. */
"type.highway.service.tunnel" = "Túnel";
@@ -584,19 +584,19 @@
"type.highway.unclassified.tunnel" = "Túnel";
"type.area_highway.cycleway" = "Carril bici";
"type.area_highway.footway" = "Sender";
"type.area_highway.living_street" = "Carrer de prioritat peatonal";
"type.area_highway.living_street" = "Living Street";
"type.area_highway.motorway" = "Autopista";
"type.area_highway.path" = "Camí";
"type.area_highway.pedestrian" = "Carrer de vianants";
"type.area_highway.primary" = "Carretera primària";
"type.area_highway.residential" = "Carrer residencial";
"type.area_highway.secondary" = "Carretera secundària";
"type.area_highway.service" = "Via de servei";
"type.area_highway.service" = "Service Road";
"type.area_highway.tertiary" = "Carretera terciària";
"type.area_highway.steps" = "Escales";
"type.area_highway.track" = "Pista";
"type.area_highway.track" = "Track";
"type.area_highway.trunk" = "Carretera nacional";
"type.area_highway.unclassified" = "Carretera menor";
"type.area_highway.unclassified" = "Minor Road";
"type.historic" = "Objecte històric";
"type.historic.aircraft" = "Avions històrics";
"type.historic.anchor" = "Àncora històrica";
@@ -1461,9 +1461,9 @@
/* https://wiki.openstreetmap.org/wiki/Tag:leisure=sports_hall */
"type.leisure.sports_hall" = "Pavelló esportiu";
"type.amenity.studio" = "Estudi Media";
"type.amenity.studio" = "Estudi";
"type.barrier.guard_rail" = "Barrera de seguretat";
"type.amenity.love_hotel" = "Hotel d'Amor";
"type.amenity.love_hotel" = "Love Hotel";
"type.highway.ladder" = "Escala";
"type.landuse.plant_nursery" = "Plant Nursery";
"type.leisure.firepit" = "Firepit";
@@ -1481,65 +1481,9 @@
"type.amenity.luggage_locker" = "Taquilla d'equipatge";
"type.amenity.ranger_station" = "Ranger Station";
"type.amenity.bicycle_parking.covered" = "Aparcament de bicicletes cobert";
"type.post_office.post_partner" = "Associat de correu";
"type.post_office.post_partner" = "Post Partner";
"type.amenity.animal_shelter" = "Refugi d'animals";
"type.barrier.wicket_gate" = "Portell";
"type.office.security" = "Oficina de Guàrdies de Seguretat";
"type.barrier.wicket_gate" = "Wicket gate";
"type.office.security" = "Security Guards Office";
"type.power.portal" = "Torre d'alta tensió";
"type.building.guardhouse" = "Cabina de Seguretat";
"type.amenity.bench.backless" = "Banc sense respatller";
"type.amenity.boat_rental" = "Lloguer de vaixells";
"type.man_made.telescope" = "Telescopi";
"type.man_made.telescope.optical" = "Telescopi (Òptic)";
"type.man_made.telescope.radio" = "Telescopi (Ràdio)";
"type.man_made.telescope.gamma" = "Telescopi (Gamma)";
"type.man_made.observatory" = "Observatori";
"type.amenity.charging_station.motorcar.small" = "Punt de Càrrega de Cotxes";
"type.amenity.sailing_school" = "Escola de Navegació";
"type.amenity.flight_school" = "Escola de Vol";
"type.amenity.prep_school" = "Escola Preparatòria";
"type.amenity.lounger" = "Hamaca";
"type.amenity.mobile_money_agent" = "Agència d'efectiu mòbil";
"type.amenity.car_pooling" = "Punt de Vehicle Compartit";
"type.amenity.payment_centre" = "Centre de pagaments";
"type.cuisine.beef_bowl" = "Gyūdon";
"type.emergency.access_point" = "Punt de rescat d'emergència";
"type.emergency.life_ring" = "Salvavides";
"type.beacon.cardinal.east" = "Marca cardinal";
"type.beacon.cardinal.north" = "Marca cardinal";
"type.beacon.cardinal.south" = "Marca cardinal";
"type.beacon.cardinal.west" = "Marca cardinal";
"type.beacon.isolated_danger" = "Marca de perill aïllat";
"type.beacon.lateral.port" = "Marca lateral";
"type.beacon.lateral.starboard" = "Marca lateral";
"type.beacon.safe_water" = "Marca d'aigües navegables";
"type.beacon.special_purpose" = "Marca especial";
"type.buoy.cardinal.east" = "Boia cardinal";
"type.buoy.cardinal.north" = "Boia cardinal";
"type.buoy.cardinal.south" = "Boia cardinal";
"type.buoy.cardinal.west" = "Boia cardinal";
"type.buoy.isolated_danger" = "Boia de perill aïllat";
"type.buoy.lateral.port" = "Boia lateral";
"type.buoy.lateral.starboard" = "Boia lateral";
"type.buoy.safe_water" = "Boia d'aigües navegables";
"type.buoy.special_purpose" = "Boia d'ús especial";
"type.spherical_buoy.cardinal.east" = "Boia cardinal esfèrica";
"type.spherical_buoy.cardinal.north" = "Boia cardinal esfèrica";
"type.spherical_buoy.cardinal.south" = "Boia cardinal esfèrica";
"type.spherical_buoy.cardinal.west" = "Boia cardinal esfèrica";
"type.spherical_buoy.isolated_danger" = "Boia esfèrica de perill aïllat";
"type.spherical_buoy.lateral.port" = "Boia esfèrica lateral";
"type.spherical_buoy.lateral.starboard" = "Boia esfèrica lateral";
"type.spherical_buoy.safe_water" = "Boia esfèrica d'aigües navegables";
"type.spherical_buoy.special_purpose" = "Boia esfèrica d'ús especial";
"type.lateral.port" = "Babord";
"type.lateral.starboard" = "Estribord";
"type.cardinal.east" = "Est";
"type.cardinal.north" = "Nord";
"type.cardinal.south" = "Sud";
"type.cardinal.west" = "Oest";
"type.entrance.house" = "Entrada de casa";
"type.entrance.garage" = "Entrada de garatge";
"type.entrance.service" = "Entrada de servei";
"type.entrance.entry" = "Entrada (únicament)";
"type.entrance.emergency" = "Sortida d'emergència";
"type.building.guardhouse" = "Security Booth";

View File

@@ -1015,7 +1015,7 @@
"bugreport_alert_message" = "Chcete poslat vývojářům hlášení o chybě?\nSpoléháme na naše uživatele, protože společnost CoMaps neshromažďuje žádné informace o chybách automaticky. Předem vám děkujeme za podporu CoMaps!";
/* Title for the iCloud syncronization setting */
"icloud_sync" = "Synchronizace s iCloudem (Beta)";
"icloud_sync" = "Synchronizace iCloud (Beta)";
/* Title for the "Enable iCloud Syncronization" alert. */
"enable_icloud_synchronization_title" = "Povolení synchronizace s iCloudem";
@@ -1027,7 +1027,7 @@
"icloud_disabled_title" = "Služba iCloud je vypnutá";
/* Message for the "iCloud is Disabled" alert. */
"icloud_disabled_message" = "Chcete-li tuto funkci používat, povolte v nastavení vašeho účtu Apple službu iCloud.";
"icloud_disabled_message" = "Chcete-li tuto funkci používat, povolte v nastavení zařízení službu iCloud.";
/* Title for the "Enable iCloud Syncronization" alert's "Enable" action button. */
"enable" = "Povolit";

View File

@@ -817,7 +817,7 @@
"avoid_tolls" = "Undgå betalingsveje";
/* Recommended length for CarPlay and Android Auto is around 25-27 characters */
"avoid_unpaved" = "Undgå veje uden fast belægning";
"avoid_unpaved" = "Undgå ikke-asfalterede veje";
/* Recommended length for CarPlay and Android Auto is around 25-27 characters */
"avoid_ferry" = "Undgå færger";
@@ -1012,7 +1012,7 @@
"bugreport_alert_message" = "Vil du gerne sende en fejlrapport til udviklerne?\nVi er afhængige af vores brugere, da CoMaps ikke indsamler nogen fejloplysninger automatisk. Tak på forhånd for at støtte CoMaps!";
/* Title for the iCloud syncronization setting */
"icloud_sync" = "iCloud-synkronisering (Beta)";
"icloud_sync" = "iCloud Syncronization (Beta)";
/* Title for the "Enable iCloud Syncronization" alert. */
"enable_icloud_synchronization_title" = "Aktivér iCloud-synkronisering";
@@ -1024,7 +1024,7 @@
"icloud_disabled_title" = "iCloud er deaktiveret";
/* Message for the "iCloud is Disabled" alert. */
"icloud_disabled_message" = "Aktivér iCloud for CoMaps i indstillingerne for din Apple-konto for at bruge denne funktion.";
"icloud_disabled_message" = "Aktivér iCloud i din enheds indstillinger for at bruge denne funktion.";
/* Title for the "Enable iCloud Syncronization" alert's "Enable" action button. */
"enable" = "Aktivér";

View File

@@ -1031,7 +1031,7 @@
"icloud_disabled_title" = "iCloud ist deaktiviert";
/* Message for the "iCloud is Disabled" alert. */
"icloud_disabled_message" = "Aktiviere iCloud für CoMaps in den Einstellungen deines Apple-Kontos, um diese Funktion nutzen zu können.";
"icloud_disabled_message" = "Bitte aktiviere iCloud in den Einstellungen deines Geräts, um diese Funktion zu nutzen.";
/* Title for the "Enable iCloud Syncronization" alert's "Enable" action button. */
"enable" = "Aktiviere";

View File

@@ -717,13 +717,6 @@
"editor_place_doesnt_exist" = "Place does not exist";
"text_more_button" = "…more";
/* Live traffic data */
"traffic_http" = "Live Traffic";
"traffic_http_enabled" = "Enable live traffic data";
"traffic_http_enabled_description" = "When enabled, the app will periodically retrieve traffic information from the configured URL.";
"traffic_http_url" = "Traffic service URL";
"traffic_http_url_not_set" = "Not set";
/* Phone number error message */
"error_enter_correct_phone" = "Enter a valid phone number";
"error_enter_correct_web" = "Enter a valid web address";
@@ -823,7 +816,6 @@
"privacy_policy" = "Privacy policy";
"terms_of_use" = "Terms of use";
"button_layer_subway" = "Metro";
"button_layer_traffic" = "Traffic";
"layers_title" = "Map Styles and Layers";
"subway_data_unavailable" = "Metro map is unavailable";
"title_error_downloading_bookmarks" = "An error occurred";

View File

@@ -737,13 +737,6 @@
"editor_place_doesnt_exist_description" = "Describe what the place looks like now to send an error note to the OpenStreetMap community";
"text_more_button" = "…more";
/* Live traffic data */
"traffic_http" = "Live Traffic";
"traffic_http_enabled" = "Enable live traffic data";
"traffic_http_enabled_description" = "When enabled, the app will periodically retrieve traffic information from the configured URL.";
"traffic_http_url" = "Traffic service URL";
"traffic_http_url_not_set" = "Not set";
/* Phone number error message */
"error_enter_correct_phone" = "Enter a valid phone number";
"error_enter_correct_web" = "Enter a valid web address";
@@ -844,7 +837,6 @@
"privacy_policy" = "Privacy policy";
"terms_of_use" = "Terms of use";
"button_layer_subway" = "Subway";
"button_layer_traffic" = "Traffic";
"layers_title" = "Map Styles and Layers";
"subway_data_unavailable" = "Subway map is unavailable";
"title_error_downloading_bookmarks" = "An error occurred";

View File

@@ -2,4 +2,3 @@
"type.addr_interpolation.even" = "Adreso/Kvartalo";
"type.aerialway" = "Aerovojo";
"type.aerialway.cable_car" = "Funicularo";
"type.aeroway.gate" = "Pordego";

View File

@@ -700,8 +700,8 @@
"editor_share_to_all_dialog_title" = "¿Quieres enviarlo a todos los usuarios?";
/* Dialog before publishing the modifications to the public map. */
"editor_share_to_all_dialog_message_1" = "Cerciórate de que no has introducido ningún dato privado o personal.";
"editor_share_to_all_dialog_message_2" = "Los editores de OpenStreetMap comprobarán los cambios y se pondrán en contacto contigo si tienen alguna pregunta.";
"editor_share_to_all_dialog_message_1" = "Cerciórese de que no ha introducido ningún dato privado o personal.";
"editor_share_to_all_dialog_message_2" = "Los editores de OpenStreetMap comprobarán los cambios y se pondrán en contacto con usted si tienen alguna pregunta.";
"navigation_stop_button" = "Detener";
/* iOS dialog for the case when recent track recording is on and the app comes back from background */
@@ -1015,7 +1015,7 @@
"bugreport_alert_message" = "¿Quiere enviar un informe de error a los desarrolladores?\nDependemos de nuestros usuarios, ya que CoMaps no recoge ninguna información sobre errores de forma automática. ¡Gracias de antemano por apoyar a CoMaps!";
/* Title for the iCloud syncronization setting */
"icloud_sync" = "Sincronización iCloud (Beta)";
"icloud_sync" = "iCloud Syncronization (Beta)";
/* Title for the "Enable iCloud Syncronization" alert. */
"enable_icloud_synchronization_title" = "Activar la sincronización con iCloud";
@@ -1027,7 +1027,7 @@
"icloud_disabled_title" = "iCloud está desactivado";
/* Message for the "iCloud is Disabled" alert. */
"icloud_disabled_message" = "Active iCloud para CoMaps en la configuración del dispositivo para utilizar esta función.";
"icloud_disabled_message" = "Active iCloud en la configuración del dispositivo para utilizar esta función.";
/* Title for the "Enable iCloud Syncronization" alert's "Enable" action button. */
"enable" = "Activar";
@@ -1102,7 +1102,3 @@
"avoid_steps" = "Evitar escaleras";
"editor_place_doesnt_exist_description" = "Describe la situación actual del lugar para enviar una nota de error a la comunidad de OpenStreetMap";
"avoid_paved" = "Evitar caminos pavimentados";
"voice" = "Voz";
"unknown" = "Desconocido";
"voice_explanation" = "Es posible elegir una mejor voz en el la configuración del sistema bajo *Accesibilidad*, *Contenido leído*, *Voces*.";
"voice_explanation_before_version26" = "Es posible elegir ana mejor voz en el la configuración del sistema bajo *Accesibilidad*, *Contenido leído*, *Voces*.";

View File

@@ -126,7 +126,7 @@
"type.amenity.post_box" = "Buzón de correos";
"type.amenity.post_office" = "Oficina de correos";
"type.amenity.prison" = "Prisión";
"type.amenity.pub" = "Taberna";
"type.amenity.pub" = "Pub";
"type.amenity.public_bookcase" = "Intercambio de libros";
"type.amenity.recycling.centre" = "Centro de reciclaje";
"type.amenity.recycling" = "Contenedor de reciclaje";
@@ -371,7 +371,7 @@
/* This is for main/primary entrances, for secondary entrances see type.entrance */
"type.entrance.main" = "Entrada principal";
"type.entrance.exit" = "Sólo salida";
"type.entrance.exit" = "Salida";
"type.fee.yes" = "$";
"type.fee.no" = "Gratis";
"type.healthcare.laboratory" = "Laboratorio médico";
@@ -522,7 +522,7 @@
/* These translations are used for all type.highway.*.bridge. */
"type.highway.service.bridge" = "Puente";
"type.highway.service.driveway" = "Camino de entrada";
"type.highway.service.driveway" = "Vía de servicio";
"type.highway.service.parking_aisle" = "Pasillo de aparcamiento";
/* These translations are used for all type.highway.*.tunnel. */
@@ -715,8 +715,8 @@
"type.leisure.sauna" = "Sauna";
"type.leisure.slipway" = "Rampa de barcos";
"type.leisure.sports_centre" = "Complejo deportivo";
"type.sport.climbing" = "Escalada";
"type.sport.yoga" = "Yoga";
"type.sport.climbing" = "Centro de escalada";
"type.sport.yoga" = "Centro de yoga";
"type.leisure.stadium" = "Estadio";
"type.leisure.swimming_pool" = "Piscina";
"type.leisure.swimming_pool.private" = "Piscina privada";
@@ -1332,7 +1332,7 @@
"type.sport.soccer" = "Fútbol";
"type.sport.swimming" = "Natación";
"type.sport.table_tennis" = "Tenis de mesa";
"type.sport.tennis" = "Tenis";
"type.sport.tennis" = "Cancha de tenis";
"type.sport.volleyball" = "Voleibol";
"type.sport.10pin" = "Bolos";
"type.sport.9pin" = "Bolos";

View File

@@ -1016,7 +1016,7 @@
"icloud_sync" = "Sünkroonimine iCloudiga (Beeta)";
/* Title for the "Enable iCloud Syncronization" alert. */
"enable_icloud_synchronization_title" = "Lülita iCloudi sünkroonimine sisse";
"enable_icloud_synchronization_title" = "Luba iCloudi sünkroniseerimine";
/* Message for the "Enable iCloud Syncronization" alert. */
"enable_icloud_synchronization_message" = "iCloudi sünkroniseerimine on eksperimentaalne funktsioon, mis on arendamisel. Igaks juhuks veendu, et oled teinud varukoopia kõigist oma järjehoidjatest ja radadest.";
@@ -1025,7 +1025,7 @@
"icloud_disabled_title" = "iCloud on välja lülitatud";
/* Message for the "iCloud is Disabled" alert. */
"icloud_disabled_message" = "Selle funktsionaalsuse kasutamiseks lülita oma Apple'i kasutajakonto seadistustes sisse iCloud.";
"icloud_disabled_message" = "Selle funktsionaalsuse kasutamiseks luba nutiseadme seadistustes iCloud.";
/* Title for the "Enable iCloud Syncronization" alert's "Enable" action button. */
"enable" = "Luba";
@@ -1101,6 +1101,6 @@
"editor_place_doesnt_exist_description" = "Kirjelda selle koha praegust välimust ja lisa veamärge OpenStreetMapi kogukonnale";
"voice" = "Hääled";
"unknown" = "Teadmata";
"voice_explanation_before_version26" = "Süsteemi seadistustest saad valida parema hääle: *Hõlbustus* *Räägitav sisu* *Hääled*.";
"voice_explanation" = "Süsteemi seadistustest saad valida parema hääle: *Hõlbustus* *Lugemine ja rääkimine* *Hääled*.";
"voice_explanation_before_version26" = "Süsteemi seadistustest saad valida parema hääle: *Hõlbustus*, *Räägitav sisu*, *Hääled*.";
"voice_explanation" = "Süsteemi seadistustest saad valida parema hääle: *Hõlbustus*, *Lugemine ja rääkimine*, *Hääled*.";
"avoid_paved" = "Väldi sillutatud teid";

View File

@@ -1096,4 +1096,3 @@
"existence_confirmed_time_ago" = "Existence confirmed %@";
"hours_confirmed_time_ago" = "Confirmed %@";
"editor_place_doesnt_exist_description" = "Deskribatu nolakoa den lekua orain OpenStreetMap komunitateari errore-ohar bat bidaltzeko.";
"offline_explanation_title" = "Lineaz kanpoko mapak";

Some files were not shown because too many files have changed in this diff Show More