diff --git a/locales/de.json b/locales/de.json
index c63343e..b9e9f64 100644
--- a/locales/de.json
+++ b/locales/de.json
@@ -3,7 +3,7 @@
"bug-reports": "Fehlerberichte und Funktionsanfragen:",
"bug-reports-back": "Server / Backend, Routing Engine, Android-App, Profile, brouter.de Website",
"bug-reports-front": "Web-Client / Frontend.",
- "chat": "Chat with users and developers",
+ "chat": "Chatte mit Benutzern und Entwicklern",
"contact": "Kontakt:",
"data": "Daten:",
"data-description": "Dies basiert auf OpenStreetMap. Es wird normalerweise einmal pro Woche aktualisiert, wenn ein neues Planet-File verfügbar ist. Siehe Datum der Datendateien.",
diff --git a/locales/fr.json b/locales/fr.json
index 242b90d..b6d2682 100644
--- a/locales/fr.json
+++ b/locales/fr.json
@@ -3,7 +3,7 @@
"bug-reports": "Rapporter un problème ou une amélioration :",
"bug-reports-back": "serveur, moteur de routage, appli Android, profils, site brouter.de ;",
"bug-reports-front": "client web.",
- "chat": "Chat with users and developers",
+ "chat": "Discuter avec d'autres utilisateurs et développeurs",
"contact": "Contact :",
"data": "Données :",
"data-description": "Les données reposent sur OpenStreetMap. La mise à jour est généralement hebdomadaire, voir les fichiers de données. ",
diff --git a/locales/gl.json b/locales/gl.json
new file mode 100644
index 0000000..7a2f574
--- /dev/null
+++ b/locales/gl.json
@@ -0,0 +1,209 @@
+{
+ "about": {
+ "bug-reports": "Bug reports and feature requests:",
+ "bug-reports-back": "server / backend, routing engine, Android app, profiles, brouter.de site",
+ "bug-reports-front": "web client / frontend.",
+ "chat": "Chat with users and developers",
+ "contact": "Contacto:",
+ "data": "Datos:",
+ "data-description": "This is based on OpenStreetMap. It is usually updated once a week when a new Planet file is available, see dates of data files.",
+ "description": "Online service of the BRouter routing engine. For the offline Android app and more information see brouter.de",
+ "details": "Privacy Policy, \nCredits,\nChangelog and\nmore info on the client.",
+ "support": "General discussions/questions, support",
+ "title": "Sobre nós"
+ },
+ "credits": {
+ "brouter": "BRouter",
+ "brouter-license": "BRouter © Arndt Brenschede",
+ "esri-license": "World Imagery © Esri, sources: Esri, DigitalGlobe, Earthstar Geographics, CNES/Airbus DS, GeoEye, USDA FSA, USGS, Getmapping, Aerogrid, IGN, IGP, and the GIS User Community",
+ "esri-tiles": "Esri World Imagery",
+ "map-data": "Map data",
+ "map-tiles": "Map tiles",
+ "nominatim": "Search by Nominatim",
+ "openstreetmap": "© OpenStreetMap contributors under ODbL"
+ },
+ "export": {
+ "format": "Format",
+ "format_csv": "CSV",
+ "format_geojson": "GeoJSON",
+ "format_gpx": "GPX",
+ "format_kml": "KML",
+ "route-from-to": "{{from}} -> {{to}} ({{distance}}km)",
+ "route-loop": "{{from}} ({{distance}}km)",
+ "title": "Export route",
+ "trackname": "Name"
+ },
+ "footer": {
+ "ascend": "Ascend",
+ "cost": "Cost",
+ "distance": "Distance",
+ "energy-per-100km": "Energy per 100 km",
+ "hours": "hours",
+ "hours-abbrev": "h",
+ "kilometer": "kilometers",
+ "kilometer-abbrev": "km",
+ "kilowatthour": "kilowatt hours",
+ "kilowatthour-abbrev": "kWh",
+ "mean-cost-factor": "Mean cost factor",
+ "meter": "meters",
+ "meter-abbrev": "m",
+ "plain-ascend": "Plain ascend",
+ "total-energy": "Total Energy",
+ "travel-time": "Travel time"
+ },
+ "layers": {
+ "add-base": "Add base layer",
+ "add-overlay": "Add overlay",
+ "customize": "Customize layers",
+ "placeholder-layer-name": "Custom layer name. (ex: OpenStreetMap)",
+ "placeholder-layer-url": "Custom layer URL. (ex: https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png)",
+ "remove-selection": "Remove selection"
+ },
+ "loadNogos": {
+ "defaultProperties": "Default properties",
+ "file": "File: ",
+ "load": "Load",
+ "nogoBuffer": "Buffer no-go areas (in meters): ",
+ "nogoRadius": "No-go radius (for points): ",
+ "nogoWeight": "No-go weight: ",
+ "source": "Source",
+ "title": "Load no-go areas",
+ "url": "URL: "
+ },
+ "map": {
+ "attribution-osm-long": "OpenStreetMap contributors",
+ "attribution-osm-short": "OpenStreetMap",
+ "clear-route": "Clear route",
+ "copyright": "Copyright",
+ "cycling": "Cycling",
+ "delete-last-point": "Delete last point",
+ "delete-nogo-areas": " also delete all no-go areas",
+ "delete-route": "Delete route?",
+ "draw-route-start": "Draw route (D key)",
+ "draw-route-stop": "Stop drawing route (ESC key)",
+ "hikebike-hillshading": "Hillshading",
+ "hiking": "Hiking",
+ "layer": {
+ "bing": "Bing Aerial",
+ "cycle": "OpenCycleMap (Thunderf.)",
+ "cycling": "Cycling (Waymarked Trails)",
+ "digitalglobe": "DigitalGlobe Recent Imagery",
+ "esri": "Esri World Imagery",
+ "hikebike-hillshading": "Hillshading (Hike & Bike Map)",
+ "hiking": "Hiking (Waymarked Trails)",
+ "osm": "OpenStreetMap",
+ "osmde": "OpenStreetMap.de",
+ "outdoors": "Outdoors (Thunderforest)",
+ "stamen-terrain": "Terrain (Stamen)",
+ "strava-segments": "Strava segments",
+ "topo": "OpenTopoMap"
+ },
+ "loading": "Loading…",
+ "locate-me": "Show me where I am",
+ "nogo": {
+ "cancel": "Cancel drawing no-go area",
+ "click-drag": "Click and drag to draw circle",
+ "draw": "Draw no-go area (circle)",
+ "edit": "Click to edit",
+ "help": "□ = move / resize, = delete,
click circle to quit editing"
+ },
+ "opacity-slider": "Set transparency of route track and markers",
+ "privacy": "Privacy",
+ "reverse-route": "Reverse route",
+ "strava-biking": "Show Strava biking segments",
+ "strava-running": "Show Strava running segments",
+ "zoomInTitle": "Zoom in",
+ "zoomOutTitle": "Zoom out"
+ },
+ "modal": {
+ "close": "Close"
+ },
+ "navbar": {
+ "about": "About",
+ "alternative": {
+ "first": "1st alternative",
+ "original": "Original",
+ "second": "2nd alternative",
+ "third": "3rd alternative"
+ },
+ "export": "Export",
+ "load": {
+ "nogos": "No-go areas",
+ "title": "Load"
+ },
+ "profile": {
+ "car-eco": "Car (economic)",
+ "car-fast": "Car (fast)",
+ "car-test": "Car (test)",
+ "custom": "Custom",
+ "fastbike": "Fastbike",
+ "fastbike-asia-pacific": "Fastbike (Asia Pacific)",
+ "fastbike-lowtraffic": "Fastbike (low traffic)",
+ "hiking-beta": "Hiking (beta)",
+ "moped": "Moped",
+ "rail": "Rail",
+ "river": "River",
+ "safety": "Safety",
+ "shortest": "Shortest",
+ "trekking": "Trekking bike",
+ "trekking-ignore-cr": "Trekking bike (ignore cycle routes)",
+ "trekking-noferries": "Trekking bike (no ferries)",
+ "trekking-nosteps": "Trekking bike (no steps)",
+ "trekking-steep": "Trekking bike (steep)",
+ "vm-forum-liegerad-schnell": "Recumbent bike (fast)",
+ "vm-forum-velomobil-schnell": "Velomobile (fast)"
+ }
+ },
+ "sidebar": {
+ "custom-profile": {
+ "title": "Custom profile"
+ },
+ "data": {
+ "title": "Data"
+ },
+ "itinerary": {
+ "title": "Itinerary"
+ },
+ "layers": {
+ "category": {
+ "base-layers": "Base layers",
+ "country": "Country",
+ "europe": "Europe",
+ "europe-monolingual": "Europe monolingual",
+ "overlays": "Overlays",
+ "worldwide": "Worldwide",
+ "worldwide-international": "Worldwide international",
+ "worldwide-monolingual": "Worldwide monolingual"
+ },
+ "collapse": "Collapse all",
+ "custom-layers": "Custom layers",
+ "customize": "Add or remove custom layers",
+ "expand": "Expand all",
+ "optional": "Add or remove optional layers",
+ "optional-layers": "More",
+ "table": {
+ "URL": "URL",
+ "empty": "No custom layer configured yet.",
+ "name": "Name",
+ "type": "Type"
+ },
+ "title": "Layers"
+ },
+ "profile": {
+ "clear": "Clear",
+ "help": "Help",
+ "placeholder": "Write your custom profile here.",
+ "upload": "Upload"
+ }
+ },
+ "title": "BRouter web client",
+ "warning": {
+ "cannot-get-route": "Error getting route URL",
+ "no-response": "no response from server",
+ "no-route-found": "Error: cannot find a route for given points. Maybe try to move them closer to roads?",
+ "profile-error": "Profile error: no or empty response from server",
+ "strava-error": "Error getting Strava segments: {{error}}",
+ "temporary-profile": "Note: Uploaded custom profiles are only cached temporarily on the server.
Please save your edits to your local PC.",
+ "upload-error": "Upload error: {{error}}"
+ }
+}
diff --git a/locales/pl.json b/locales/pl.json
index cf4e861..e71127d 100644
--- a/locales/pl.json
+++ b/locales/pl.json
@@ -3,7 +3,7 @@
"bug-reports": "Zgłaszanie błędów i nowych funkcji:",
"bug-reports-back": "serwer / aplikacja, silnik wyznaczania tras, aplikacja na Androida, profile, strona brouter.de",
"bug-reports-front": "klient przeglądarkowy / interfejs.",
- "chat": "Chat with users and developers",
+ "chat": "Czat z użytkownikami i twórcami",
"contact": "Kontakt:",
"data": "Dane:",
"data-description": "Bazujemy na OpenStreetMap. Aktualizacje są zazwyczaj raz w tygodniu, kiedy są dostępne nowe pliki Planet, więc sprawdź daty plików z danymi.",