feat(map): one map, Japan's prefectures within Japan

A map question is picked on one map: the world's countries in layers
(Europe, East Asia, ...), and within Japan its prefectures, in layers too
(Kantō, Kansai, ...); Back goes up one. The composer's choice between two
maps is gone. A card still names the map its answer is a region of
(`japan`, `world`), as versions up to v0.11.0 did, so they still show it.

In the composer a tap on Japan picks the country, and the "Prefectures"
chip opens its prefectures. Studying, the card decides: a prefecture's
question opens Japan at a tap, a country's picks it.

The map opens on the deepest layer the map questions share (studying, the
round's; writing, the studyset's): Japan for prefectures all over it,
Kantō for Tokyo and Chiba, Europe for European countries.

A tap no longer zooms in when it could mean several regions: it picks the
ring it is on (the nearest of several), else the region under it, else the
nearest ring or outline within reach. Zooming is pinching, or Ctrl (⌘ on a
Mac) and the wheel, as maps on web pages do; the wheel alone scrolls the
page, and a note over the map says how to zoom.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MMm7usAo6q9ZZRoPkWjoxi
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-12 12:19:03 +02:00
commit 1df60c8830
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -5449,7 +5449,7 @@ abstract class AppLocalizations {
/// No description provided for @mapPickRegion.
///
/// In en, this message translates to:
/// **'Choose a part of the map, then tap the region that answers the question. Tiny places have a ring; pinch or scroll to zoom.'**
/// **'Choose a part of the map, then tap the region that answers the question. Tiny places have a ring; where rings crowd, zoom in.'**
String get mapPickRegion;
/// No description provided for @mapNonePicked.
@ -5458,24 +5458,6 @@ abstract class AppLocalizations {
/// **'No region picked yet'**
String get mapNonePicked;
/// No description provided for @composerLabelMap.
///
/// In en, this message translates to:
/// **'Map'**
String get composerLabelMap;
/// No description provided for @mapChoiceJapan.
///
/// In en, this message translates to:
/// **'Japan\'s prefectures'**
String get mapChoiceJapan;
/// No description provided for @mapChoiceWorld.
///
/// In en, this message translates to:
/// **'Countries of the world'**
String get mapChoiceWorld;
/// No description provided for @mapNameJapan.
///
/// In en, this message translates to:
@ -5488,6 +5470,24 @@ abstract class AppLocalizations {
/// **'World'**
String get mapNameWorld;
/// No description provided for @mapPrefectures.
///
/// In en, this message translates to:
/// **'Prefectures'**
String get mapPrefectures;
/// No description provided for @mapZoomNote.
///
/// In en, this message translates to:
/// **'Ctrl + scroll to zoom'**
String get mapZoomNote;
/// No description provided for @mapZoomNoteMac.
///
/// In en, this message translates to:
/// **'⌘ + scroll to zoom'**
String get mapZoomNoteMac;
/// No description provided for @mapGroupHokkaido.
///
/// In en, this message translates to: