リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: PolyMap - 世界の言語・方言インタラクティブマップ
言語比較モード:2言語を並べて特徴対比表示
## 1. 目的
ユーザーが「日本語とアラビア語ってどう違うの?」といった疑問をその場で解決できるよう、2言語を選んで主要特徴を横並びで比較できるモードを追加する。学習・教育用途での滞在時間向上と「もっと調べたい」動機づけが目的。
## 2. 具体的な仕様
### 2-1. UIエントリーポイント
- 既存の言語詳細カード右上に「+比較に追加」ボタン(小アイコン付き)を追加。
- ヘッダーまたはナビゲーションタブに「比較」タブを追加(既存タブ末尾に挿入)。
- 比較タブのバッジに選択中の言語数(0〜2)を表示(例:「比較 (1)」)。
### 2-2. 言語選択フロー
- 「+比較に追加」を押すと LocalStorage の compare[] 配列に言語IDを追加(最大2件。2件未満なら追加、2件揃ったら比較タブへ自動遷移)。
- すでに追加済みの言語のボタンは「✓ 追加済み」表示に変化し再クリックで解除。
- 比較タブ内にドロップダウン2つ(言語A・言語B)を設置し、直接選択でも変更可能。初期値は compare[] の値。
### 2-3. 比較テーブル表示
比較タブを開くと、以下の項目を2列テーブルで表示する(行ラベル列+言語A列+言語B列の3列):
| 比較項目 | 内容 |
|---|---|
| 言語名(ネイティブ表記) | 既存データから |
| 語族 | 既存データから |
| 主な話者数 | 既存データから |
| 文字体系 | 既存データから |
| 語順 (SOV/SVO等) | 既存データから |
| 公用語の国数 | 既存の公用語リストの件数をカウント |
| あいさつ4種フレーズ | 既存フレーズ集から4行(音声再生ボタン付き) |
- 語族が同じ場合はその行をハイライト(薄緑背景)。
- 語順が同じ場合も同様にハイライト。
- 差異がある項目は通常背景のまま。
- テーブル下部に「共通点まとめ」として一致した項目名をテキストで列挙(例:「語族・語順が共通しています」)。
### 2-4. シェア・リセット
- 「比較をリセット」ボタンで compare[] をクリアし両ドロップダウンをデフォルトに戻す。
- 「この比較をシェア」ボタンで `?compare=ja,ar` 形式のURLクエリを生成してクリップボードにコピー。ページ読み込み時にクエリパラメータを検出して自動で比較タブを開く。
### 2-5. スマホ対応
- スマホでは3列テーブルをスクロール可能なカード2枚の縦スタック(言語A上・言語B下)に切り替え、各項目を `<dl>` リストで表示。
- タブ切替UIは既存のまま「比較」タブを末尾追加するだけ。
## 3. 既存機能との整合
- 既存の言語詳細カード・あいさつフレーズ・音声再生・お気に入りは一切変更しない。
- 比較ボタンは詳細カードに追加するだけで、カードのレイアウト崩れがないよう右上に絶対配置(`position:absolute; top:8px; right:8px`)。
- LocalStorage のキーは `polymap_compare`(既存 `polymap_favorites` と衝突しない)。
- DBなし・外部APIなし。既存の80言語データオブジェクト(JS内配列)をそのまま参照するだけで実装可能。
- 既存の検索・クイズ・語族ツリー・お気に入り機能の動作に影響なし。
ユーザーが「日本語とアラビア語ってどう違うの?」といった疑問をその場で解決できるよう、2言語を選んで主要特徴を横並びで比較できるモードを追加する。学習・教育用途での滞在時間向上と「もっと調べたい」動機づけが目的。
## 2. 具体的な仕様
### 2-1. UIエントリーポイント
- 既存の言語詳細カード右上に「+比較に追加」ボタン(小アイコン付き)を追加。
- ヘッダーまたはナビゲーションタブに「比較」タブを追加(既存タブ末尾に挿入)。
- 比較タブのバッジに選択中の言語数(0〜2)を表示(例:「比較 (1)」)。
### 2-2. 言語選択フロー
- 「+比較に追加」を押すと LocalStorage の compare[] 配列に言語IDを追加(最大2件。2件未満なら追加、2件揃ったら比較タブへ自動遷移)。
- すでに追加済みの言語のボタンは「✓ 追加済み」表示に変化し再クリックで解除。
- 比較タブ内にドロップダウン2つ(言語A・言語B)を設置し、直接選択でも変更可能。初期値は compare[] の値。
### 2-3. 比較テーブル表示
比較タブを開くと、以下の項目を2列テーブルで表示する(行ラベル列+言語A列+言語B列の3列):
| 比較項目 | 内容 |
|---|---|
| 言語名(ネイティブ表記) | 既存データから |
| 語族 | 既存データから |
| 主な話者数 | 既存データから |
| 文字体系 | 既存データから |
| 語順 (SOV/SVO等) | 既存データから |
| 公用語の国数 | 既存の公用語リストの件数をカウント |
| あいさつ4種フレーズ | 既存フレーズ集から4行(音声再生ボタン付き) |
- 語族が同じ場合はその行をハイライト(薄緑背景)。
- 語順が同じ場合も同様にハイライト。
- 差異がある項目は通常背景のまま。
- テーブル下部に「共通点まとめ」として一致した項目名をテキストで列挙(例:「語族・語順が共通しています」)。
### 2-4. シェア・リセット
- 「比較をリセット」ボタンで compare[] をクリアし両ドロップダウンをデフォルトに戻す。
- 「この比較をシェア」ボタンで `?compare=ja,ar` 形式のURLクエリを生成してクリップボードにコピー。ページ読み込み時にクエリパラメータを検出して自動で比較タブを開く。
### 2-5. スマホ対応
- スマホでは3列テーブルをスクロール可能なカード2枚の縦スタック(言語A上・言語B下)に切り替え、各項目を `<dl>` リストで表示。
- タブ切替UIは既存のまま「比較」タブを末尾追加するだけ。
## 3. 既存機能との整合
- 既存の言語詳細カード・あいさつフレーズ・音声再生・お気に入りは一切変更しない。
- 比較ボタンは詳細カードに追加するだけで、カードのレイアウト崩れがないよう右上に絶対配置(`position:absolute; top:8px; right:8px`)。
- LocalStorage のキーは `polymap_compare`(既存 `polymap_favorites` と衝突しない)。
- DBなし・外部APIなし。既存の80言語データオブジェクト(JS内配列)をそのまま参照するだけで実装可能。
- 既存の検索・クイズ・語族ツリー・お気に入り機能の動作に影響なし。
💬 返信 (3)
🛠 開発を開始しました (機能追加 (polymap))
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「PolyMap - 世界の言語・方言インタラクティブマップ」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=polymap
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/polymap/
ご利用ありがとうございます!
ご要望いただいた「PolyMap - 世界の言語・方言インタラクティブマップ」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=polymap
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/polymap/
ご利用ありがとうございます!
Echo
Iris