diff --git a/src/ui/streetLevelControls.js b/src/ui/streetLevelControls.js index 9b52dc1fe..216dcdd28 100644 --- a/src/ui/streetLevelControls.js +++ b/src/ui/streetLevelControls.js @@ -5,7 +5,7 @@ import { SINCE_STOPS, } from './streetLevelPresentation.js'; -import { t } from '../i18n/index.js'; +import { t, translateKnown } from '../i18n/index.js'; const RENDER_MODE_KEY = 'gev:street-level:render-mode'; const FOCUSABLE = 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])'; @@ -229,7 +229,8 @@ export class StreetLevelControls { await this.actions.setEnabled?.(true); } catch (error) { this.actions.showToast?.( - error?.message || t('Street Level could not start'), + translateKnown(error?.message || '') || + t('Street Level could not start'), ); return false; } @@ -242,7 +243,7 @@ export class StreetLevelControls { await this.actions.setEnabled?.(!enabled); } catch (error) { this.actions.showToast?.( - error?.message || t('Street Level toggle failed'), + translateKnown(error?.message || '') || t('Street Level toggle failed'), ); } } @@ -276,7 +277,7 @@ export class StreetLevelControls { await this.actions.setEnabled?.(false); } catch (error) { this.actions.showToast?.( - error?.message || t('Street Level toggle failed'), + translateKnown(error?.message || '') || t('Street Level toggle failed'), ); } } diff --git a/src/ui/streetLevelPresentation.js b/src/ui/streetLevelPresentation.js index 3a26b8bce..da941ec34 100644 --- a/src/ui/streetLevelPresentation.js +++ b/src/ui/streetLevelPresentation.js @@ -253,7 +253,8 @@ export function presentStreetLevelPanel(state, { now = Date.now() } = {}) { providers: presentProviders(state), error: keyMissing ? null - : state.street.error || state.coverage.error || null, + : translateKnown(state.street.error || state.coverage.error || '') || + null, filter: { pano: filter.pano, sinceDays: Number(filter.sinceDays) || 0 }, filterControls: { pano: state.filterControls?.pano !== false, diff --git a/src/ui/styles/street-level.css b/src/ui/styles/street-level.css index 7f5b83cdc..dfe5b0d86 100644 --- a/src/ui/styles/street-level.css +++ b/src/ui/styles/street-level.css @@ -205,6 +205,20 @@ button.sl-status:focus-visible { display: none; } +/* Longer translations: rather than squeeze the hint into a narrow column + beside the button, put the button on its own line when both do not fit. */ +html:not([lang='en']) .sl-meta-row { + flex-wrap: wrap; +} + +html:not([lang='en']) .sl-meta-row .sl-meta { + flex: 1 1 14em; +} + +html:not([lang='en']) .sl-meta-row .sl-nearest-btn { + flex: 1 0 auto; +} + /* ── Errors ──────────────────────────────────────────────────────────────── */ .sl-error { font-family: var(--font-sans);