
1. はじめに:今日はエイプリルフールですが、嘘みたいな本当の話です
皆さん、こんにちは! 株式会社ぐるなびで Principal Tech Lead を務めている小向です。
本日はエイプリルフールですが、嘘のような本当の話をします。
「管理画面を一度更新するだけで、アプリのコードもFigmaも、多言語対応がすべて自動同期される」
こう聞くと、「結局は誰かが手動で調整しているのでは?」と疑いたくなるはず。 エンジニアとして至極まっとうな反応です。
しかし、私たちが取り組んだのは、
「人力を排し、その労力を『自動化の仕組み』へ完全に移行させること」
でした。本記事では、この「嘘みたいに効率的な同期の仕組み」を具体的に解説します。
2. どんなプロダクトで実現しているのか

私たちが開発している UMAME!(うまみー!) は、
- 生成AIがユーザーの趣味嗜好や行動を学習し
- 最適な飲食店を提案する
次世代型飲食店マッチングアプリです。
AIネイティブなプロダクトを開発する中で、
「多言語対応だけ、やたら人力っぽい」
という違和感がありました。
そこで、
「これも仕組みで解決できるのでは?」
と考えた結果、今回の構成にたどり着きました。
3. 結論:多言語の“唯一の正”をFirestoreに寄せる
色々と考えましたが、結局のところ『マスターデータ、Firestoreに全部置いちゃえば良くない?』という一点に尽きます。
多言語データのマスターをFirestoreに一本化する

- 翻訳はGeminiで生成
- 管理画面で人が最終調整
- 確定データはFirestoreに集約
つまり、
「すべての言語はFirestoreを見れば正しい」
という状態を作っています。
4. じゃあどうやって同期しているのか?
ここが一番「嘘っぽく見える」ポイントです。
流れはこうです。
- 管理画面で文言を更新
- Firestoreに保存
- GitHub Actionsが起動
- 各種ファイルを自動生成
生成されるのはこの2つ:
- Figma用多言語定義JSON
- アプリ用多言語定義ファイル
つまり、
一回の更新で、デザインと実装の両方に反映
されます。
5. 【to デザイナー】Figmaは“ほぼ自動で同期される”
デザイナー側の体験も、かなりシンプルです。
① JSONを取り込む
Figmaの「Export/Import Variables」プラグインを使い、
生成されたJSONを取り込みます。

とはいえ、
「毎回手作業でやるのでは?」
と思うかもしれません。
実際には運用に組み込むことで、
ほぼ更新を意識しなくてよい状態
になっています。
(このあたりは、まだ自動化の余地があります)
② Variables(バリアブル)として展開される
- 言語ごとにMode(ja / en)が自動生成
- キー構造もそのまま維持

③ テキストに紐付ける
一度Variableを紐付けておけば、
次回以降は「最新データを取り込むだけ」で全テキストが更新
されます。

④ 言語切り替えで確認
Modeを切り替えるだけで…
一瞬で英語版デザインが完成
Design Modeの場合

Dev Modeの場合


これにより、
- 文字あふれ
- レイアウト崩れ
を実装前に潰せます。
6. 【to エンジニア】翻訳ファイル、もう触りません
エンジニア側はさらにシンプルです。
GitHub ActionsがFirestoreからデータを取得し、
- アプリ用多言語定義ファイル
を自動生成して git push します。
つまり、
翻訳ファイルを手で編集することはありません
(地味ですが、かなり効きます)
7. 実行時はちゃんと現実的です
ここまで来ると、
「全部リアルタイムでやってるの?」
と思われるかもしれませんが、そこは現実的に設計しています。

- 静的テキスト:ビルド時に組み込み(高速)
- 動的テキスト:API経由で取得(柔軟)
パフォーマンスと柔軟性を両立しています。
8. 実は“制約”が一番大事です
この仕組み、魔法ではありません。
成立させるために、いくつかのルールを設けています。
- 改行コード(\n)禁止
- リッチテキスト禁止
- 画像内テキスト禁止
一見不便ですが、
「データを純粋に保つ」ことで自動化が成立
しています。
9. おわりに:嘘みたいだけど、ちゃんと作るとこうなる
多言語対応はこれまで、
- コピペ
- 手修正
- 差分地獄
といった「人力前提の作業」でした。
しかし仕組みで捉えることで、
「1回定義すれば、すべてに伝播する」
状態を作ることができます。
「嘘みたい」と思われるかもしれませんが、
ちゃんと設計すれば、ここまでシンプルにできます。
10. リリースしました
そして最後にお知らせです。
3月31日、UMAME!の英語対応を正式リリースしました!
エイプリルフールですが、
この記事の内容も、リリースも、全部本当です。
ぜひ、新しいUMAME!を触ってみてください。

