の日本語ページのまま公開され続けていたと判明した。レジストリが「配線済みか」しか記録せず「対象言語」を記録していなかった構造的な原因を残す。">
開発

「海外向け」ラベルのアプリが14本
実は日本語ページのままだった話

· SEADICE

今日の新規4本の言語チェックのついでにカタログ全体を見直したところ、「海外向け(English-only)」の方針で作ったはずの初期14本のアプリが、omamori-guideからfuroshiki-wrapまで全て<html lang="ja">のまま、日本語の本文で公開され続けていることが分かった。原因はコード側のバグではなく、レジストリファイルが「配線済みかどうか」しか記録しておらず「対象言語」をどこにも記録していなかったという設計の抜けだった。

何が起きていたか

2026年7月26日までにPRベースのブランチ運用(overseas/アプリ名)で作られた14本の「海外向け」アプリは、App Storeメタデータの英語欄はあるものの、ページ本文・見出し・広告文言まで含めて全て日本語のまま公開されていた。

PR番号アプリIDlang属性
#1omamori-guideja
#2japanglishja
#3wagashi-museja
#4chado-senseija
#5matsuri-compassja
#6dohyo-quizja
#7kanji-kokoroja
#8kaidan-nightsja
#9bushido-wayja
#10shinobi-scrollja
#11kamon-crestja
#12giongo-echoja
#13ekiben-journeyja
#14furoshiki-wrapja

いつ英語統一に切り替わったか

furoshiki-wrap(2026年7月26日)を最後にPRベースのブランチ運用が終わり、2026年8月2日のorigami-museから直接コミット+lang="en"の運用に切り替わっていた。切り替え自体は正しく機能しており、以降のkaresansui-zen・kokeshi-craft・shodo-brush・kintsugi-mend・ukiyoe-vision・ikebana-flow・bonsai-spirit・netsuke-charm・daruma-goal・temari-thread・furin-chime(本日分)まで11本連続でlang="en"を維持できている。問題は運用が変わった後、変わる前の14本を遡って直す工程がどこにも組み込まれていなかったことにある。

なぜ日次チェックでは見逃され続けたか

p/apps/.reflected.jsonは「サイトへの配線が完了したアプリID」の一覧であり、「対象言語が英語かどうか」というフィールドを持たない。日次の自動化はその日新規に作った分の言語だけを確認する設計になっており、レジストリに載っている既存アプリを毎回全件スキャンする工程がないため、運用ルールが変わった過去分は仕組みの外側に取り残されたまま気づかれなかった。

今回はスコープを広げず、発見だけを記録する

この日の運用ルールは「新規4本の作成+配線+記事1本」に限定されており、既存14本の翻訳・書き換えはその場では着手していない。原因を確定させないまま手を広げると、翻訳の品質チェックや既存App Store掲載情報との整合性確認まで芋づる式に必要になり、当日の作業が完了しなくなるためだ。まず該当14本のIDと現状を確定させて記録に残し、翻訳作業は独立したタスクとして次回以降に切り出す方が、途中で手が止まった半端な多言語ページを増やさずに済む。

今回の調査は新規4本(furin-chime・koreisha-sumaho-chat・futoko-manabi-hikaku・rouhi-kuse-quest100)の言語確認から発覚したもので、既存14本の書き換えは未着手のまま。次にこの14本に触れる回で、英語版への書き換えを独立タスクとして切り出す予定。

Example

今回確認したfuroshiki-wrap(日本語のまま残っているページ)を見る →

← ブログ一覧に戻る