fix(i18n): translate the Street Level and Draw panels

Both panels landed after the original string extraction, so they rendered
English in every locale. Mark their markup and runtime text (status, SINCE
stops, provider tooltips, coverage meta, viewer captions, draw hints and
colours), the layer-list names kept in PANEL_LABELS, and add 90 es and ru
entries. Street Level is «Уличные снимки» / «A pie de calle».

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
German KhokhlovandClaude Opus 5.5 committed 2026-10-12 18:32:28 +04:00
1 parent eee905e787
commit 6ff7afcc8b
13 files changed
+378 -98

No files matched your search

@@ -33,6 +33,7 @@ import {
SEQUENCE_VIEW_RANGE_PER_HEIGHT,
} from './policy.js';
import { msg } from '../../../../i18n/index.js';
/** Draped lines stay at most this long while a tile's cast lines build. */
export const SWAP_MAX_WAIT_MS = 4000;
/** Tiles touched by new mesh samples are redrawn at most this often. */
@@ -694,8 +695,9 @@ export function createCoverage({ state, source }) {
if (kind === 'overview' && (!bbox || zoom <= 1))
bbox = [-180, -85, 180, 85];
if (zoom == null || !bbox) {
state.coverage.hint =
'Point the camera at the globe for street-level coverage';
state.coverage.hint = msg(
'Point the camera at the globe for street-level coverage',
);
clear();
notify();
return;
+7 -2
View File
@@ -1,5 +1,6 @@
import { COLORS } from './policy.js';
import { msg, t } from '../../i18n/index.js';
/**
* @typedef {object} ProviderSnapshot
* @property {string} id
@@ -29,7 +30,7 @@ export function summarizeCoverage(providers) {
loading: active.some((p) => p.loading),
hint:
providers.length === 0
? 'No street-level imagery providers configured'
? msg('No street-level imagery providers configured')
: active.find((p) => p.hint)?.hint || '',
error: active.find((p) => p.error)?.error || null,
keyRequired:
@@ -63,7 +64,11 @@ export function composeUIState({
color: provider.color,
}));
if (active.length)
legend.push({ key: 'selected', label: 'Selected', color: COLORS.selected });
legend.push({
key: 'selected',
label: t('Selected'),
color: COLORS.selected,
});
return {
enabled,
keyRequired,