2026年4月15日
海外ゲームセンターの国とタイムゾーン
海外店舗の国とタイムゾーンに応じた情報処理を導入。
改善
ゲームセンターデータ
#ゲームセンター情報
eric

海外店舗と韓国中心の既定値

海外の店舗を韓国語で読んでも、その場所のタイムゾーンまで韓国に変わるべきではない。韓国で先に公開したMusecatは2025年後半に海外展開を始め、住所、国、タイムゾーンの韓国中心の処理を見直す必要があった。外国語の住所を入力可能にするだけでは、現地の日付や料金を正しく扱えないためだ。

公開条件も確認が必要だった。韓国の情報を集めながら定めた条件を全地域へ適用すると、現地の収集事情に関係なく同じ資料を求めてしまう。共通して必要な情報を定め、地域ごとの条件を別に表す方法を選んだ。

Mermaid
flowchart TD
    accTitle: 表示言語と場所情報の分離
    accDescr: 表示言語で翻訳を選び、座標で国とタイムゾーンを決め、両方を同じ店舗画面に組み合わせる。
    L[表示言語] --> T[翻訳と表示]
    C[場所の座標] --> G[国とタイムゾーン]
    T --> A[店舗画面]
    G --> A

座標による国とタイムゾーンの設定

タイムゾーンは、その場所の日付と時刻を解釈する基準である。海外専用モデルを作らず、既存店舗に国とタイムゾーンを明記し、作成や位置修正時に座標から地理情報を取得して保存する。住所は訪問案内、座標は距離計算と場所の判定に使う。画面言語はこれらと別に選ぶ。

例えば非公開の下書きで位置を誤った場合、座標とともに国とタイムゾーンを直せる。一方、公開済みの店舗では国が変わる位置修正を拒否する。既存文書が別の国の店舗へ変わることを防ぐためだ。位置と国が合わない文書は公開にも進めない。

Deltaで使われた2026-04-01の旧Gamma-Webソースをサンプルデータで再現した日本語画面。曜日別の営業時間を展開している。一部の原ラベルは韓国語のままである。

Mermaid
flowchart TD
    accTitle: 公開状態による位置変更の処理
    accDescr: 非公開の下書きでは新しい国とタイムゾーンを保存し、公開済みの店舗では国が変わる変更を拒否する。
    C[新しい座標] --> G[国とタイムゾーンを検索]
    G --> P{公開済みか}
    P -->|いいえ| U[下書きの国とタイムゾーンを更新]
    P -->|はい| K{以前と同じ国か}
    K -->|はい| S[位置変更を許可]
    K -->|いいえ| B[変更を拒否]

地域別の公開条件と既存資料の補完

公開時にはゲーム登録と、SNSまたは営業時間という共通資料を求める。施設写真は韓国の店舗に必要な条件として分けた。海外専用サービスや複製APIを作らず地域差を反映でき、取得APIの国フィルターで国別一覧と検索も同じバックエンドから提供する。

新規保存にタイムゾーンを加えても、既存資料の空欄は残る。こうした値を埋める別作業をbackfillという。未設定レコードは基本情報の座標を読み、タイムゾーンを取得して保存する。新規リクエストと分けることで、欠けた店舗の確認や再処理がしやすくなる。

Mermaid
flowchart TD
    accTitle: 既存店舗のタイムゾーン補完
    accDescr: タイムゾーンのない既存店舗は基本情報の座標からタイムゾーンを検索して保存する。
    A[タイムゾーンのない店舗] --> B[関連する基本情報]
    B --> C[座標を読む]
    C --> T[タイムゾーン検索]
    T --> S[店舗のタイムゾーンを保存]

画面言語と現地情報の表示

韓国語、英語、日本語のどの画面でも、同じ店舗の国とタイムゾーンは現地の値を保つ。国別検索と海外登録も一つのモデルで扱える。新地域を支える際には、各画面の韓国前提を探し直さず、明示した店舗情報と地域条件を利用できるようになった。

代わりに、地理情報の取得へ依存する。座標の誤りや取得失敗は保存と公開の過程で処理しなければならない。もっともらしい住所から推測すると誤った現地情報を残しかねないため、位置を確認してから反映する方式を選んだ。

参考:エンジニアリング記録。

関連アップデート

Musecat
ゲームセンターのすべて