]> git.openstreetmap.org Git - rails.git/commitdiff
Rework the map attribution to avoid raw html in translations.
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 29 Mar 2023 15:11:21 +0000 (16:11 +0100)
committerAndy Allan <git@gravitystorm.co.uk>
Sun, 2 Apr 2023 09:14:00 +0000 (10:14 +0100)
app/assets/javascripts/leaflet.map.js
config/locales/en.yml

index 44aa530d9b39e2dd4aa8399dba5cedbca42b4500..88d16bc8e4595801c1b389e05a886ea094803c23 100644 (file)
@@ -15,13 +15,55 @@ L.OSM.Map = L.Map.extend({
   initialize: function (id, options) {
     L.Map.prototype.initialize.call(this, id, options);
 
   initialize: function (id, options) {
     L.Map.prototype.initialize.call(this, id, options);
 
-    var copyright = I18n.t("javascripts.map.copyright", { copyright_url: "/copyright" });
-    var donate = I18n.t("javascripts.map.donate_link_text", { donate_url: "https://donate.openstreetmap.org" });
-    var terms = I18n.t("javascripts.map.terms", { terms_url: "https://wiki.osmfoundation.org/wiki/Terms_of_Use" });
-    var cyclosm = I18n.t("javascripts.map.cyclosm", { cyclosm_url: "https://www.cyclosm.org", osmfrance_url: "https://openstreetmap.fr/" });
-    var thunderforest = I18n.t("javascripts.map.thunderforest", { thunderforest_url: "https://www.thunderforest.com/" });
-    var memomaps = I18n.t("javascripts.map.opnvkarte", { memomaps_url: "https://memomaps.de/" });
-    var hotosm = I18n.t("javascripts.map.hotosm", { hotosm_url: "https://www.hotosm.org/", osmfrance_url: "https://openstreetmap.fr/" });
+    var copyright_link = $("<a>", {
+      href: "/copyright",
+      text: I18n.t("javascripts.map.openstreetmap_contributors")
+    }).prop("outerHTML");
+    var copyright = I18n.t("javascripts.map.copyright_text", { copyright_link: copyright_link });
+
+    var donate = $("<a>", {
+      "href": "https://donate.openstreetmap.org",
+      "class": "donate-attr",
+      "text": I18n.t("javascripts.map.make_a_donation")
+    }).prop("outerHTML");
+
+    var terms = $("<a>", {
+      href: "https://wiki.osmfoundation.org/wiki/Terms_of_Use",
+      text: I18n.t("javascripts.map.website_and_api_terms")
+    }).prop("outerHTML");
+
+    var cyclosm_link = $("<a>", {
+      href: "https://www.cyclosm.org",
+      target: "_blank",
+      text: I18n.t("javascripts.map.cyclosm_name")
+    }).prop("outerHTML");
+    var osm_france_link = $("<a>", {
+      href: "https://openstreetmap.fr/",
+      target: "_blank",
+      text: I18n.t("javascripts.map.osm_france")
+    }).prop("outerHTML");
+    var cyclosm = I18n.t("javascripts.map.cyclosm_credit", { cyclosm_link: cyclosm_link, osm_france_link: osm_france_link });
+
+    var thunderforest_link = $("<a>", {
+      href: "https://www.thunderforest.com/",
+      target: "_blank",
+      text: I18n.t("javascripts.map.andy_allan")
+    }).prop("outerHTML");
+    var thunderforest = I18n.t("javascripts.map.thunderforest_credit", { thunderforest_link: thunderforest_link });
+
+    var memomaps_link = $("<a>", {
+      href: "https://memomaps.de/",
+      target: "_blank",
+      text: I18n.t("javascripts.map.memomaps")
+    }).prop("outerHTML");
+    var memomaps = I18n.t("javascripts.map.opnvkarte_credit", { memomaps_link: memomaps_link });
+
+    var hotosm_link = $("<a>", {
+      href: "https://www.hotosm.org/",
+      target: "_blank",
+      text: I18n.t("javascripts.map.hotosm_name")
+    }).prop("outerHTML");
+    var hotosm = I18n.t("javascripts.map.hotosm_credit", { hotosm_link: hotosm_link, osm_france_link: osm_france_link });
 
     this.baseLayers = [];
 
 
     this.baseLayers = [];
 
index 68bd5b641d164165009e07bf571e4c403727ae1f..d64c1178278b300616a94198e66a1a55df56d154 100644 (file)
@@ -2956,13 +2956,19 @@ en:
         gps: Public GPS Traces
         overlays: Enable overlays for troubleshooting the map
         title: "Layers"
         gps: Public GPS Traces
         overlays: Enable overlays for troubleshooting the map
         title: "Layers"
-      copyright: "© <a href='%{copyright_url}'>OpenStreetMap contributors</a>"
-      donate_link_text: "<a class='donate-attr' href='%{donate_url}'>Make a Donation</a>"
-      terms: "<a href='%{terms_url}' target='_blank'>Website and API terms</a>"
-      cyclosm: "Tiles style by <a href='%{cyclosm_url}' target='_blank'>CyclOSM</a> hosted by <a href='%{osmfrance_url}' target='_blank'>OpenStreetMap France</a>"
-      thunderforest: "Tiles courtesy of <a href='%{thunderforest_url}' target='_blank'>Andy Allan</a>"
-      opnvkarte: "Tiles courtesy of <a href='%{memomaps_url}' target='_blank'>MeMoMaps</a>"
-      hotosm: "Tiles style by <a href='%{hotosm_url}' target='_blank'>Humanitarian OpenStreetMap Team</a> hosted by <a href='%{osmfrance_url}' target='_blank'>OpenStreetMap France</a>"
+      copyright_text: "© %{copyright_link}"
+      openstreetmap_contributors: "OpenStreetMap contributors"
+      make_a_donation: Make a Donation
+      website_and_api_terms: Website and API terms
+      cyclosm_credit: "Tiles style by %{cyclosm_link} hosted by %{osm_france_link}"
+      cyclosm_name: CyclOSM
+      osm_france: OpenStreetMap France
+      thunderforest_credit: "Tiles courtesy of %{thunderforest_link}"
+      andy_allan: Andy Allan
+      opnvkarte_credit: "Tiles courtesy of %{memomaps_link}"
+      memomaps: MeMoMaps
+      hotosm_credit: "Tiles style by %{hotosm_link} hosted by %{osm_france_link}"
+      hotosm_name: Humanitarian OpenStreetMap Team
     site:
       edit_tooltip: Edit the map
       edit_disabled_tooltip: Zoom in to edit the map
     site:
       edit_tooltip: Edit the map
       edit_disabled_tooltip: Zoom in to edit the map