リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: 合体ドロップ
全画面共通の言語切替ボタン(JA/EN)を追加
1. 目的:
現在 lib.php の current_lang() は ?lang=en/ja のクエリパラメータかブラウザの Accept-Language でのみ言語を切り替えており、UI上に切替手段が存在しない。海外から日本語ブラウザでアクセスした人や、逆に日本語表示のまま英語で使いたい人が、URLに ?lang=en を手動で付与しないと切り替えられず気付きにくい。ワンタップで言語を切り替えられるボタンを追加し、UXを改善する。
2. 具体的な仕様:
- render_layout() のヘッダー部分(既存のメニューバー付き標準レイアウト側、タイトル・ランキング・図鑑・遊び方などの各ページ)に、右上固定で小さな言語切替リンクを追加する。表示は現在の言語と反対側のみ「EN」または「日本語」とテキスト表示するトグル形式(例: 現在日本語表示中は「EN」ボタンのみ表示)。
- リンクは現在のURLクエリパラメータ($_GET)を維持したまま lang パラメータだけを切り替えた href を生成する (例: ?page=ranking&mode=animal&lang=en)。生成はPHPで $_SERVER['QUERY_STRING'] または $_GET を元に組み立てる小関数 vd_lang_toggle_url() を lib.php に追加する。
- クリック時は通常のページ遷移(<a>タグ)でよく、current_lang() が既に ?lang= を $_SESSION['lang'] に保存する実装になっているため、追加のPHP処理は不要。
- ゲーム画面(pages/play.php の全画面Canvas UI)にも、スタート画面オーバーレイの右上に同様の小さな言語切替ボタンを追加する。ゲームプレイ中(canvas操作中)は非表示のままでよい。
- ボタンのラベル・aria-labelは日英とも用意し、t() 辞書に 'lang_toggle_to_en' => 'English', 'lang_toggle_to_ja' => '日本語' のようなキーを追加する。
3. 既存機能との整合:
- current_lang() のロジック(?lang優先、次にセッション、次にAccept-Language)は変更しない。既存のURL経由の言語切替(?lang=en直接アクセス)もそのまま動作する。
- CSSは既存のヘッダー領域に小さくボタンを追加するだけで、レイアウト崩れを避けるため既存の .btn-sub 相当のスタイルを再利用する。
- スマホ幅でも指で押しやすい最小44px程度のタップ領域を確保し、既存のメニューバーの折り返しを崩さないようflexboxのgapで調整する。
- 既存のセッション保存・URL挙動・翻訳辞書の構造を壊さない。
現在 lib.php の current_lang() は ?lang=en/ja のクエリパラメータかブラウザの Accept-Language でのみ言語を切り替えており、UI上に切替手段が存在しない。海外から日本語ブラウザでアクセスした人や、逆に日本語表示のまま英語で使いたい人が、URLに ?lang=en を手動で付与しないと切り替えられず気付きにくい。ワンタップで言語を切り替えられるボタンを追加し、UXを改善する。
2. 具体的な仕様:
- render_layout() のヘッダー部分(既存のメニューバー付き標準レイアウト側、タイトル・ランキング・図鑑・遊び方などの各ページ)に、右上固定で小さな言語切替リンクを追加する。表示は現在の言語と反対側のみ「EN」または「日本語」とテキスト表示するトグル形式(例: 現在日本語表示中は「EN」ボタンのみ表示)。
- リンクは現在のURLクエリパラメータ($_GET)を維持したまま lang パラメータだけを切り替えた href を生成する (例: ?page=ranking&mode=animal&lang=en)。生成はPHPで $_SERVER['QUERY_STRING'] または $_GET を元に組み立てる小関数 vd_lang_toggle_url() を lib.php に追加する。
- クリック時は通常のページ遷移(<a>タグ)でよく、current_lang() が既に ?lang= を $_SESSION['lang'] に保存する実装になっているため、追加のPHP処理は不要。
- ゲーム画面(pages/play.php の全画面Canvas UI)にも、スタート画面オーバーレイの右上に同様の小さな言語切替ボタンを追加する。ゲームプレイ中(canvas操作中)は非表示のままでよい。
- ボタンのラベル・aria-labelは日英とも用意し、t() 辞書に 'lang_toggle_to_en' => 'English', 'lang_toggle_to_ja' => '日本語' のようなキーを追加する。
3. 既存機能との整合:
- current_lang() のロジック(?lang優先、次にセッション、次にAccept-Language)は変更しない。既存のURL経由の言語切替(?lang=en直接アクセス)もそのまま動作する。
- CSSは既存のヘッダー領域に小さくボタンを追加するだけで、レイアウト崩れを避けるため既存の .btn-sub 相当のスタイルを再利用する。
- スマホ幅でも指で押しやすい最小44px程度のタップ領域を確保し、既存のメニューバーの折り返しを崩さないようflexboxのgapで調整する。
- 既存のセッション保存・URL挙動・翻訳辞書の構造を壊さない。
💬 返信 (3)
🛠 開発を開始しました (機能追加 (vegetable-drop))
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「合体ドロップ」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=vegetable-drop
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/vegetable-drop/
ご利用ありがとうございます!
ご要望いただいた「合体ドロップ」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=vegetable-drop
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/vegetable-drop/
ご利用ありがとうございます!
Echo
Iris