リクエスト詳細
🐛 バグ報告
対応完了
対象アプリ: 合体ドロップ
current_lang() が Accept-Language を参照せず、新規訪問者が常に日本語表示になる不具合
1. 不具合の内容:
lib.php の current_lang() 関数はコメントで「?lang=en があれば優先、なければ Accept-Language」と説明されているが、実装では $_SERVER['HTTP_ACCEPT_LANGUAGE'] を一切参照していない。?lang クエリも $_SESSION['lang'] も未設定の初回訪問時は、ブラウザの言語設定に関わらず必ず 'ja' が返される。
2. 根拠・発生しそうな条件:
lib.php 抜粋の current_lang() 実装を確認すると、$_GET['lang'] のチェックと $_SESSION['lang'] のチェックのみが行われ、両方とも未設定の場合は無条件で return 'ja' となっている。Accept-Language を見るロジックが存在しない。英語ブラウザで初めて index.php?page=play などにアクセスしたユーザーは、URLに ?lang=en を明示的に付けない限り常に日本語UI・日本語辞書 (t()) で表示される。SNS共有やブックマークで ?lang= なしのURLに海外ユーザーが直接アクセスするケースで特に発生しやすい。
3. 期待動作:
?lang クエリ・セッションともに未設定の初回アクセス時は、ブラウザの Accept-Language ヘッダーに日本語が含まれない場合、英語 (en) をデフォルト言語として採用する。既存の ?lang= 明示指定やセッションに保存済みの言語設定は、これまで通り最優先される。
4. 修正方針:
current_lang() 内で、$_GET['lang'] も $_SESSION['lang'] も未設定の場合にのみ、$_SERVER['HTTP_ACCEPT_LANGUAGE'] ?? '' をパースし、先頭の言語タグが 'ja' で始まらない場合は 'en' を暫定言語として返す(セッションには保存してもしなくてもよいが、保存する場合は以後のページでも一貫させる)。日本語圏ブラウザや Accept-Language 未送信時は従来通り 'ja' とし、既存の ?lang= 切り替え・セッション保持・辞書構造 (t() の 'ja'/'en' キー) には一切変更を加えない、後方互換の追加ロジックとする。
lib.php の current_lang() 関数はコメントで「?lang=en があれば優先、なければ Accept-Language」と説明されているが、実装では $_SERVER['HTTP_ACCEPT_LANGUAGE'] を一切参照していない。?lang クエリも $_SESSION['lang'] も未設定の初回訪問時は、ブラウザの言語設定に関わらず必ず 'ja' が返される。
2. 根拠・発生しそうな条件:
lib.php 抜粋の current_lang() 実装を確認すると、$_GET['lang'] のチェックと $_SESSION['lang'] のチェックのみが行われ、両方とも未設定の場合は無条件で return 'ja' となっている。Accept-Language を見るロジックが存在しない。英語ブラウザで初めて index.php?page=play などにアクセスしたユーザーは、URLに ?lang=en を明示的に付けない限り常に日本語UI・日本語辞書 (t()) で表示される。SNS共有やブックマークで ?lang= なしのURLに海外ユーザーが直接アクセスするケースで特に発生しやすい。
3. 期待動作:
?lang クエリ・セッションともに未設定の初回アクセス時は、ブラウザの Accept-Language ヘッダーに日本語が含まれない場合、英語 (en) をデフォルト言語として採用する。既存の ?lang= 明示指定やセッションに保存済みの言語設定は、これまで通り最優先される。
4. 修正方針:
current_lang() 内で、$_GET['lang'] も $_SESSION['lang'] も未設定の場合にのみ、$_SERVER['HTTP_ACCEPT_LANGUAGE'] ?? '' をパースし、先頭の言語タグが 'ja' で始まらない場合は 'en' を暫定言語として返す(セッションには保存してもしなくてもよいが、保存する場合は以後のページでも一貫させる)。日本語圏ブラウザや Accept-Language 未送信時は従来通り 'ja' とし、既存の ?lang= 切り替え・セッション保持・辞書構造 (t() の 'ja'/'en' キー) には一切変更を加えない、後方互換の追加ロジックとする。
💬 返信 (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