Behind the build — Day 026

つくり方の全容

day26は、架空のタイ料理店「PAK PAK」。作ったのは、スプレッドシートに日本語で書くだけで、英語・中国語・タイ語に自動翻訳されるメニューサイトです。お客さんは言語ボタンを押すだけ。店主は外国語を1文字も書きません。日本語で1品足せば、4か国語で1品増えます。

同じメニュー画面が4分割で並ぶ。日本語・英語・中国語・タイ語で、選択中の言語ボタンだけが変わっている
同じページが、ボタンひとつで4か国語に

01

シートに書くのは、
日本語だけ。

スプレッドシートのメニュー表。カテゴリ・品名・説明・価格・タグ・絵文字・表示の列に、日本語だけで9品が並ぶ
店主が触るのはこの表だけ。外国語の列はどこにもない

メニューの台帳は、スプレッドシート1枚です。列は7つ——カテゴリ(プルダウンで4択)・品名・説明・価格・タグ・絵文字・表示。どこにも外国語の列がありません。翻訳はページ側の裏方が自動でやるので、店主の仕事は日本語のメニューを普段どおり書くことだけ。売り切れは「表示」をFALSEにすれば消えます。

02

日本語で1品足すと、
4か国語で1品増える。

左は日本語のメニューでトートマンクンが追加された画面、右は同じページのタイ語表示。同じ品が両方に載っている
シートに1行足しただけ。左=日本語、右=タイ語の同じページ

シートに「トートマンクン/海老のすり身揚げ。スイートチリソースで。/950円」と1行書き足すと、ページには日本語・英語・中国語・タイ語の4つの顔で同じ1品が現れます。メニュー改定のたびに翻訳を頼む、という仕事が消えます。値段の変更も、品切れも、シートを直すだけ。

言語の切り替えに仕掛けはない言語ボタンはJavaScriptを使っていません。HTMLとCSSだけの仕組みなので、どんなスマホでも、確実に切り替わります。ページを開いた時点で4言語ぶんの文字がすべて読み込まれていて、ボタンは「どれを見せるか」を切り替えているだけ——だから速くて、壊れません。

03

翻訳は自動。
気になる訳は、セルを直す。

翻訳キャッシュのシート。言語・原文・訳文の3列に自動翻訳の結果が並び、訳文のセルを直接編集している
翻訳の台帳。訳文のセルを直せば、その訳で確定する

翻訳はGoogle翻訳で自動的に行われ、結果は「翻訳キャッシュ」というシートに貯まります。ここが今回の肝で、気になる訳は、このシートのセルを直すだけで、その訳に確定します。実際、「ガパオライス」の自動翻訳は最初、タイ語で別の料理になっていました。セルを正しい名前(ข้าวกะเพรา)に書き換えたら、それ以降はずっとその訳が使われます。

正直な注意点機械翻訳なので、料理名は特に間違えます。だからこそ「直した訳が必ず勝つ」台帳をはさみました。AI翻訳(Gemini)を繋ぐ口も用意してあるので、翻訳の質はこれから上げていけます。

04

色は、店の壁の
タイルから。

PAK PAKのトップ。タイ語のメニュー貼り紙がびっしり並ぶ緑タイルの店内写真に、大きくPAK PAKのロゴ
トップは料理ではなく、店の壁。緑はこの写真から実測

トップの写真は、あえて料理ではなくお店の壁にしました。タイ語の貼り紙メニューがびっしり並ぶ店内——という設定です。壁いっぱいの貼り紙メニューの下に、整然と切り替わるデジタルのメニューが続く。この対比が今回の構図です。基調の緑はこの写真のタイルから実測した色。言語ボタンの帯には、タイルの目地をCSSで薄く引いています。差し色はオレンジを点で。

05

そして、完成形。

完成形 PC。PAK PAKのサイト全体。ヒーロー写真、言語バー、カテゴリタブ、メニュー一覧
完成 — PAK PAK(PC・全体)
完成形 スマホ。同じページを縦画面で通した状態
完成 — PAK PAK(スマホ・全体)

メニューは9品から始めて、動画の撮影中に1品増えて10品になりました。増やしたのはスプレッドシートの1行だけ。サイトを「作り直す」ことなく、店の日常の速度でメニューが動きます。

外国語メニューを、
シート1枚で。

訪日のお客さんが増えても、外国語のメニューを作って維持するのは大仕事です。翻訳を頼み、印刷し、メニューが変わればまた最初から。今回のページは、その仕事をスプレッドシート1枚に畳みました。書くのは日本語だけ。翻訳は自動で、気になる訳はセルを直せば確定する。日本語で1品足せば、4か国語で1品増える。ウェブの裏方に翻訳係を1人雇ったような形です。100連発は、まだ続きます。