0a7076d5b9
Rewrites the i18n system introduced in PR #94 to use Next.js App Router [locale] dynamic segments with SSR-rendered translations and proper middleware locale routing. - Add middleware locale detection: / rewrites to /zh-CN/ internally, /en and /ja pass through, /zh-CN/... redirects to bare path - Move all 7 pages under app/[locale]/ with SSR translation injection - Fix server→client serialization: pre-evaluate function-valued translations (makeSerializable) to eliminate hydration flash - Fix language switch key flash: use hard navigation with localStorage- only persistence, avoiding React state update before page reload - Add <link rel="alternate" hreflang> tags for multilingual SEO - Fix Supabase setAll overwriting locale rewrite response - Trim locales from 22 to 3 (zh-CN/en/ja), delete 19 incomplete files - LLM-translate 240 firstact game preset JSONs (en + ja, landscape + portrait) and story titles via gemini-3.5-flash - Delete 11 one-off migration scripts and outdated i18n docs - Add useLocalePath hook and navigation utilities Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 line
7.7 KiB
JSON
1 line
7.7 KiB
JSON
{"sessionId":"s_1780757293440_9y3wz4","scene":{"id":"scene_1780757337954_9sfk","scenePrompt":"A dimly lit graphic design studio at 3 AM, cold blue-white glow from a computer monitor illuminating the cluttered desk, scattered papers with typeface samples, a keyboard with fingers hovering above keys, on the screen a hexadecimal editor displaying rows of bank codes and a red countdown '71:59:59', a smartphone on the desk vibrating with an incoming message, the room in near darkness with only the screen light casting sharp shadows, Swiss typography poster style, vertical composition, minimalist high-contrast silhouettes, deep red accents on the screen text, black and white color blocks, atmosphere of tension and urgency.","beats":[{"id":"b1","narration":"午前3時、仕事部屋にはモニターの冷たい光だけが灯っている。あなたは画面に表示された鮮烈な赤い文字列――『Arial? No. You are the bomb.』――を見つめ、キーボードの上で指を止めている。心臓が肋骨の裏で激しく鼓動を打っていた。","next":{"type":"continue","nextBeatId":"b2"}},{"id":"b2","narration":"その文字列をコピーし、16進数エディタに貼り付ける。デコードされた結果は、まるで冷や水を浴びせられたかのようだった。世界48の国の中央銀行のSWIFTコードが、整然とリスト化されていたのだ。","next":{"type":"continue","nextBeatId":"b3"}},{"id":"b3","narration":"リストの最下部――そこにはあなたの名前、身分証明書番号、銀行口座。そして、刻一刻とカウントダウンする数字が表示されていた。71:59:59。","next":{"type":"continue","nextBeatId":"b4"}},{"id":"b4","narration":"スマホが震える。非通知番号からのメッセージだ。『通報するな。警察はすでに君の敵だ。』画面を見つめるあなたの背筋に、冷たいものが走る。","next":{"type":"choice","choices":[{"id":"c1","label":"警察に通報して助けを求める","effect":{"kind":"change-scene","nextSceneSeed":"警察署の取調室。冷たい椅子に座るあなたの目の前には、あなたの身分証を手にした林芷(リン・シ)が立っている。"}},{"id":"c2","label":"自力で追跡する","effect":{"kind":"change-scene","nextSceneSeed":"フォントファイルのソースコードを開くと、郊外の倉庫を指し示す隠されたIPアドレスが見つかった。"}}]}}],"entryBeatId":"b1","sceneKey":"apartment-studio-night","imageUuid":"800efc5d-c865-462f-a87a-bb0664dbe396","imageUrl":"/home/firstscene-portrait/m19.webp","orientation":"portrait"},"imageUrl":"/home/firstscene-portrait/m19.webp","characters":[],"storyState":{"logline":"自分がデザインしたフォントから、突如として世界金融システムを標的にした攻撃指令が浮かび上がる。しかも、主犯リストには自分の名前が堂々と載っていた――真犯人を見つけ出すための猶予はわずか72時間。さもなければ世界金融は崩壊し、あなたは永遠に濡れ衣を着せられることになる。","genreTags":"サスペンス/犯罪/頭脳戦・どんでん返し/男性向け爽快ドラマ","protagonist":"あなたは26歳のフォントデザイナー。平凡な家庭に育ちながらも非凡な才能を持ち、革命的なフォントで国際的な賞を受賞したばかりだ。今、あなたは画面を見つめている――文字の隙間で明滅する隠された16進数コード。それを解読して現れたのは、世界金融を破滅させかねないウイルス計画であり、主犯の筆頭にはあなたの名前が記されていた。背筋が凍りつく。誰かがあなたのフォントを武器として使い、あなたに罪をなすりつけようとしているのだ。生き延びたい、身の潔白を証明したい。しかし、手元にあるのはキーボードと、刻々と進むカウントダウンだけだ。","castNotes":"陸鳴(リク・メイ):大学のルームメイトであり同僚。表向きは大人しい技術オタクだが、実はあなたの才能に嫉妬し、裏であなたのデザイン原稿を集めていた。同じアパートをシェアしており、いつもあなたの頼みを聞いてくれるが、時折その視線が泳ぐ。\n林芷(リン・シ):サイバーセキュリティ会社のチーフアナリスト。冷静沈着で仕事のできるショートカットの女性。表向きは事務的に接するが、過去に金融詐欺事件で恩師を失っており、フォントウイルス事件に対して異常なまでの執着を持つ。あなたが最初に頼った部外者だが、彼女の素性は謎に包まれている。\n老高(ラオ・ガオ):あなたがよく行く印刷所の店主。40代の寡黙な退役軍人。世俗から離れて暮らしているように見えるが、なぜか入手困難なフォントサンプルをいつも手に入れている。彼のカウンターの下にはもう一台のスマホが隠されており、通話履歴はすべて文字化けしている。","synopsis":"午前3時、フォントのテスト中に16進数のコードを発見する。解読すると、それは世界48の中央銀行のSWIFTコードリストであり、そこにはあなたの個人情報と71時間のカウントダウンが添えられていた。さらに、通報するなと警告する匿名メッセージが届く。警察を信じるべきか、それとも自力で追跡すべきか? あなたは究極の選択を迫られる。","openThreads":["フォントに仕込まれたウイルス計画は、一体誰の仕業なのか?","なぜあなたの名前が主犯リストに載っているのか?","匿名のメッセージ送信者は誰なのか――味方か、それとも罠か?"],"nextHook":"選択を迫られる。通報すれば身を危険にさらす可能性があり、自力での追跡には時間が足りない。あなたの決断によって、次のチャプターでは全く異なる捜査ルートが展開する。"},"cardName":"m19","cardTitle":"フォントの陰謀","cardGender":"男性向け","worldSetting":"本作は【男性向け】視聴者をターゲットにしたAIインタラクティブストーリーゲームであり、全体的にショート動画のような強いドラマチックな衝突とスピーディーな大どんでん返しが特徴です。\nストーリースタイル:マルチ分岐・急展開。テンポ:緊迫感があり爽快。\n厳選シナリオ『フォントの陰謀』のオープニング設定:フォントデザイナーであるあなたは、自分がデザインした特定のフォントが、特定の組み合わせにおいて隠されたコマンド情報を表示することを発見する。それを解読すると、なんと世界の金融システムを標的にした「フォントウイルス」攻撃計画であり、しかも主犯リストには自分の名前が載っていた。\nこのオープニングから直接物語に入り込み、プレイヤーに強い没入感とカタルシスを与えてください。その後の分岐もショートドラマのような高密度のどんでん返しを維持し、プレイヤーが選択するたびに即座にリアクションが返ってくるようにします。","styleGuide":"Swiss typography poster style, vertical composition. A minimalist high-contrast silhouette of an attractive male face integrated with abstract architectural grids. Deep red, black, and white color blocks, clean geometric poster layout.","imageUrlRemote":"https://im.runware.ai/image/os/a05d22/ws/3/ii/800efc5d-c865-462f-a87a-bb0664dbe396.png"} |