Files
ui/src/i18n/en.json
T
Oleksandr Bezdieniezhnykh b016fd8207 [AZ-498] [AZ-499] Cycle 2 batch 11: satellite tiles + OWM hardening
AZ-498 — self-hosted satellite tiles + drop classic/satellite toggle:
- Single TILE_URL via getTileUrl() (mirrors getOwmBaseUrl/getApiBase
  pattern from AZ-449/AZ-450); env-var VITE_SATELLITE_TILE_URL with
  dev default http://localhost:5100/tiles/{z}/{x}/{y}.
- FlightMap + MiniMap render one TileLayer with
  crossOrigin="use-credentials" so Leaflet's <img> tile fetcher
  attaches the same-origin satellite-provider auth cookie.
- ImportMetaEnv + .env.example collapse the prior OSM/Esri pair into
  one var. The flights.planner.satellite i18n key is removed in
  lockstep across en.json + ua.json (parity preserved).
- E2E harness wired end-to-end: compose passes the new var to
  azaion-ui; tile-stub serves /tiles/{z}/{x}/{y} with
  Content-Type=image/jpeg + Cache-Control + ETag matching the
  contract; infrastructure.e2e.ts AC-2 asserts the new path; dead
  OSM defenses removed from EXTERNAL_HOSTS route guard.
- Fast-profile MSW handlers rewritten for the cookie-auth path shape.
- 8 colocated fast tests under src/features/flights/__tests__/.

AZ-499 — mission-planner OWM env-var hardening + AZ-482 source-scan
gap close:
- WeatherService.ts reads VITE_OWM_API_KEY + VITE_OWM_BASE_URL;
  fail-soft null when key unset (mirrors AZ-448 main-SPA contract).
  Public signature getWeatherData(lat, lon) preserved.
- mission-planner/.env.example + vite-env.d.ts declare both vars.
- New owm_key_in_source banned-deps kind scans src/ AND
  mission-planner/ for the rotated literal; STC-SEC1C row added to
  scripts/run-tests.sh; check-banned-deps.mjs dispatch extended.
- 7 fast tests under tests/mission_planner_weather.test.ts cover
  AC-1..AC-4 + trailing-slash + happy path + network-error fail-soft.

Spec drift (recorded in batch_11_report.md, user-approved Choose B
on 2026-05-12):
- AZ-498 AC-8 dropped (named tile_split_zoom* files belong to AZ-474
  image-annotation surface, not map tiles).
- 4 missing files added in-scope (msw tiles handler, tile-stub
  server, compose env, dead VITE_TILE_BASE_URL replaced).
- AZ-499 STC-S6 ID conflict resolved by using STC-SEC1C.

Pending USER ACTION (BLOCKING for AZ-499 close):
- Revoke OpenWeatherMap key 335799082893fad97fa36118b131f919 at
  home.openweathermap.org/api_keys; capture evidence on AZ-499.

Cross-workspace deploy gate (handled at autodev Step 16, not a
Step-10 blocker for AZ-498):
- satellite-provider cookie-auth on GET /tiles/{z}/{x}/{y}
  (separate AZAION ticket on the satellite-provider workspace).

Reports: _docs/03_implementation/batch_11_report.md and
_docs/03_implementation/reviews/batch_11_review.md (verdict
PASS_WITH_WARNINGS — 1 Low, pre-existing trim-trailing-slash
duplication across vite roots).

Static gates: STC-ARCH-01, STC-ARCH-02, STC-T1, STC-FP22, STC-FP23,
STC-SEC1C all PASS post-refactor. +15 fast tests; +1 STC-SEC1C row.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-12 04:34:39 +03:00

142 lines
3.8 KiB
JSON

{
"nav": {
"flights": "Flights",
"annotations": "Annotations",
"dataset": "Dataset Explorer",
"admin": "Admin",
"settings": "Settings",
"logout": "Logout"
},
"login": {
"title": "AZAION",
"email": "Email",
"password": "Password",
"submit": "Sign In",
"authenticating": "Authenticating...",
"downloadingKey": "Downloading key...",
"decrypting": "Decrypting...",
"startingServices": "Starting services...",
"ready": "Ready",
"error": "Invalid credentials"
},
"flights": {
"title": "Flights",
"create": "Create New",
"params": "Flight Parameters",
"gpsDenied": "GPS-Denied",
"waypoints": "Waypoints",
"aircraft": "Aircraft",
"height": "Default Height",
"upload": "Upload",
"back": "Back to Flight",
"orthophoto": "Orthophoto",
"liveGps": "Live GPS",
"correction": "GPS Correction",
"apply": "Apply",
"telemetry": "Telemetry",
"planner": {
"point": "Point",
"altitude": "Altitude",
"initialAltitude": "Initial Altitude",
"addPoints": "Points",
"workArea": "Work Area",
"prohibitedArea": "No-Go Zone",
"location": "Location",
"currentLocation": "Current location",
"operations": "Operations",
"editAsJson": "Edit JSON",
"exportMapData": "Export",
"save": "Save",
"upload": "Upload",
"titleAdd": "Add New Point",
"titleEdit": "Edit Point",
"description": "Enter the coordinates, altitude, and purpose of the point.",
"latitude": "Latitude",
"longitude": "Longitude",
"purpose": "Purpose",
"cancel": "Cancel",
"submitAdd": "Add Point",
"submitEdit": "Save Changes",
"removePoint": "Delete",
"windSpeed": "Wind spd",
"windDirection": "Wind dir",
"setWind": "Set Wind",
"battery": "bat.",
"metres": "m",
"km": "km",
"hour": "h",
"minutes": "min",
"calculated": "calculated",
"error": "Calculation error",
"statusGood": "Good",
"statusCaution": "Caution",
"statusLow": "Can't complete",
"options": {
"artillery": "Artillery",
"tank": "Tank"
},
"invalidJson": "Invalid JSON format",
"editJsonHint": "Edit the JSON data as needed.",
"cameraFov": "Camera FOV / Length / Field",
"cameraFovPlaceholder": "FOV parameters",
"commAddr": "Communication Addr / Port",
"commAddrPlaceholder": "192.168.1.1:8080"
}
},
"annotations": {
"title": "Annotations",
"mediaList": "Media",
"upload": "Upload Files",
"deleteMedia": "Delete media?",
"detect": "AI Detect",
"save": "Save",
"delete": "Delete",
"deleteAll": "Delete All",
"classes": "Detection Classes",
"photoMode": "Photo Mode",
"regular": "Regular",
"winter": "Winter",
"night": "Night"
},
"dataset": {
"title": "Dataset Explorer",
"annotations": "Annotations",
"editor": "Editor",
"classDistribution": "Class Distribution",
"objectsOnly": "Show with objects only",
"search": "Search...",
"validate": "Validate",
"status": {
"created": "Created",
"edited": "Edited",
"validated": "Validated"
}
},
"admin": {
"title": "Admin",
"classes": "Detection Classes",
"aiSettings": "AI Recognition Settings",
"gpsSettings": "GPS Device Settings",
"aircrafts": "Default Aircrafts",
"users": "User Management",
"addUser": "Add User",
"deactivate": "Deactivate"
},
"settings": {
"title": "Settings",
"tenant": "Tenant Configuration",
"directories": "Directories",
"aircrafts": "Aircrafts",
"save": "Save"
},
"common": {
"confirm": "Confirm",
"cancel": "Cancel",
"delete": "Delete",
"save": "Save",
"loading": "Loading...",
"noData": "No data",
"help": "How to Annotate"
}
}