diff --git a/data/core.yaml b/data/core.yaml index 08021a33f..3b0b30914 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -1055,3 +1055,8 @@ en: history: "Toggle history panel" location: "Toggle location panel" measurement: "Toggle measurement panel" + scale: + miles: "{quantity} mi" + feet: "{quantity} ft" + kilometers: "{quantity} km" + meters: "{quantity} m" diff --git a/dist/locales/en.json b/dist/locales/en.json index 976862a90..7aeda0efe 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -1221,6 +1221,12 @@ } } }, + "scale": { + "miles": "{quantity} mi", + "feet": "{quantity} ft", + "kilometers": "{quantity} km", + "meters": "{quantity} m" + }, "presets": { "categories": { "category-barrier": { diff --git a/modules/ui/scale.js b/modules/ui/scale.js index fb7f869c1..11ec0f63b 100644 --- a/modules/ui/scale.js +++ b/modules/ui/scale.js @@ -1,10 +1,12 @@ import { geoLonToMeters, geoMetersToLon } from '../geo'; +import { t } from '../util/locale'; import { utilDetect } from '../util/detect'; export function uiScale(context) { var projection = context.projection, - isImperial = (utilDetect().locale.toLowerCase() === 'en-us'), + locale = utilDetect().locale, + isImperial = (locale.toLowerCase() === 'en-us'), maxLength = 180, tickHeight = 8; @@ -14,7 +16,7 @@ export function uiScale(context) { conversion = (isImperial ? 3.28084 : 1), dist = geoLonToMeters(loc2[0] - loc1[0], lat) * conversion, scale = { dist: 0, px: 0, text: '' }, - buckets, i, val, dLon; + buckets, i, val, dLon, textKey; if (isImperial) { buckets = [5280000, 528000, 52800, 5280, 500, 50, 5, 1]; @@ -39,18 +41,19 @@ export function uiScale(context) { if (isImperial) { if (scale.dist >= 5280) { scale.dist /= 5280; - scale.text = String(scale.dist) + ' mi'; + textKey = 'scale.miles'; } else { - scale.text = String(scale.dist) + ' ft'; + textKey = 'scale.feet'; } } else { if (scale.dist >= 1000) { scale.dist /= 1000; - scale.text = String(scale.dist) + ' km'; + textKey = 'scale.kilometers'; } else { - scale.text = String(scale.dist) + ' m'; + textKey = 'scale.meters'; } } + scale.text = t(textKey, { quantity: scale.dist.toLocaleString(locale) }); return scale; }