feat(layers): add shipwrecks layer (EMODnet + Wikidata)

A new Events layer maps shipwrecks with a card per wreck:
- EMODnet Human Activities heritage shipwrecks (about 6,500 in European
  waters, CC BY 4.0), skipping rows taken from wrecksite.eu.
- Wikidata shipwrecks with a Wikipedia article plus sinking events
  (CC0); an event folds into its ship for the date and death toll.
- A same-origin /api/shipwrecks proxy refreshes once a day and serves
  the last snapshot as stale for up to a week.

Markers are a boat icon coloured by era and sized by deaths; four era
chips filter the layer. The card follows the air-accidents layout
(deaths first). Text that names people is dropped; victims appear as
a count only.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
Itallo BrandãoandClaude Opus 5.5 committed 2026-11-05 04:42:59 -03:00
1 parent 7d8b80db0a
commit dcd0f2cccd
41 files changed
+2168 -73

No files matched your search

+32 -1
View File
@@ -3104,5 +3104,36 @@
"The provider rejected the API key. Check it in Provider Settings.": "Der Anbieter hat den API-Schlüssel abgelehnt. Den Schlüssel in den Anbieter-Einstellungen prüfen.",
"Too many chat requests. Try again in {seconds} s.": "Zu viele Chat-Anfragen. In {seconds} s erneut versuchen.",
"The provider refused access for this key. Check the key's project, region or permissions.": "Der Anbieter hat den Zugriff für diesen Schlüssel verweigert. Projekt, Region oder Berechtigungen des Schlüssels prüfen.",
"The provider account is out of credit. Check its billing, or choose another AI Provider in Settings.": "Das Anbieterkonto hat kein Guthaben mehr. Die Abrechnung prüfen oder in den Einstellungen einen anderen KI-Anbieter wählen."
"The provider account is out of credit. Check its billing, or choose another AI Provider in Settings.": "Das Anbieterkonto hat kein Guthaben mehr. Die Abrechnung prüfen oder in den Einstellungen einen anderen KI-Anbieter wählen.",
"Shipwrecks": "Schiffswracks",
"Before 1900": "Vor 1900",
"After 1945": "Nach 1945",
"Date unknown": "Datum unbekannt",
"Position: centre of the protected area": "Position: Mitte des Schutzgebiets",
"Position approximate (within about {km} km)": "Position ungefähr (auf etwa {km} km genau)",
"Position surveyed (within about {m} m)": "Position vermessen (auf etwa {m} m genau)",
"Vessel: {value}": "Schiff: {value}",
"What happened: {value}": "Was geschah: {value}",
"Depth: {m} m ({quality})": "Tiefe: {m} m ({quality})",
"Depth: {m} m": "Tiefe: {m} m",
"Notes: {value}": "Hinweise: {value}",
"Cargo or finds: {value}": "Ladung oder Funde: {value}",
"Protected wreck": "Geschütztes Wrack",
"Source: {value}": "Quelle: {value}",
"Click the card to open EMODnet ↗": "Karte anklicken, um EMODnet zu öffnen ↗",
"Click the card to open the source ↗": "Karte anklicken, um die Quelle zu öffnen ↗",
"Wikidata unavailable; showing EMODnet only": "Wikidata nicht verfügbar; nur EMODnet wird angezeigt",
"EMODnet unavailable; showing Wikidata only": "EMODnet nicht verfügbar; nur Wikidata wird angezeigt",
"Shipwrecks unavailable": "Schiffswracks nicht verfügbar",
"EMODnet (European waters) · Wikidata (worldwide)": "EMODnet (europäische Gewässer) · Wikidata (weltweit)",
"{count} wrecks": {
"one": "{count} Wrack",
"other": "{count} Wracks"
},
"1900–1945": "1900–1945",
"Shipwreck": "Schiffbruch",
"Fatalities: {count}": "Todesopfer: {count}",
"Survivors: {count}": "Überlebende: {count}",
"Click the card to open the article ↗": "Karte anklicken, um den Artikel zu öffnen ↗",
"European heritage wrecks come from EMODnet Human Activities; notable wrecks worldwide come from Wikidata. Colour shows when the ship sank; marker size grows with deaths. Click a marker for its card.": "Europäische Kulturerbe-Wracks stammen von EMODnet Human Activities, bekannte Wracks weltweit von Wikidata. Die Farbe zeigt, wann das Schiff sank; die Markierung wächst mit der Zahl der Todesopfer. Klicke auf eine Markierung für ihre Karte."
}