ブログをEmDashで作ることを実践しています
EmDashでブログを構築し、ローカルで作ったサイトを本番(Cloudflare Workers)へ反映するまでの実践レポート。ロケール設定でつまずいた点と、その解決方法をまとめました。

はじめに
いま、ブログをEmDash(Astroベースの CMS)で作ることを実践しています。この記事では、現在までの取り組みと、途中でつまずいた点、その解決方法を、レポートとしてまとめます。
現在の構成
- CMS: EmDash(Astro ベース)
- 本番環境: Cloudflare Workers 上で公開
- 開発環境: ローカル(WSL)でサイトを作り込み、本番へ反映
- 運用: Claude Code から MCP(Model Context Protocol)で本番のEmDashに接続し、記事の作成や更新を行う
やってきたこと
- ローカルでEmDashサイトを構築し、コレクション(Posts / Pages)を用意
- ローカルで作成したコンテンツを、Site Transfer(サイト移行機能)で本番へ取り込み
- Claude Code に本番EmDashのMCPサーバーを接続し、AI経由でコンテンツを操作できる状態にした
つまずいたこと: ロケールの不一致
本番への取り込み時に、次のエラーで失敗しました。
パッケージに、このサイトにないロケールが使用されています
原因
ローカルで作成したコンテンツに、日本語ロケール(ja)を指定していました。ところが本番サイトにはi18n(多言語)設定がなく、EmDashは en だけを有効なロケールとして扱います。そのため、ja のデータが「存在しないロケール」と判定されました。
さらに、ゴミ箱に入れたサンプル記事にも ja 版が残っており、en に変換した記事とスラッグが衝突しました。サイトパッケージにはゴミ箱の項目も含まれるため、削除したつもりのデータも影響します。
解決方法
- ローカルのデータをバックアップしたうえで、ロケールを
jaからenに変換 - 衝突していたゴミ箱内のサンプル記事を完全削除
- 以降の書き込みでは、ロケールを指定しない運用に統一
日本語で運用するための考え方
ロケールは内部的な言語タグで、本文の言語を制限するものではありません。そのため、ロケールは en のままで、本文を日本語で書いて問題なく運用できます。日本語としての表示(HTMLの lang="ja" や日付の書式)は、ロケールとは別にテーマ側のコードで処理しています。
将来、日本語と英語の両方を持つ多言語サイトにしたくなった場合は、i18n設定の追加と、既存データのロケール変換が必要になります。
学んだこと
- 本番とローカルで、ロケール設定をそろえることが重要
- 日本語だけで運用するなら、ロケールは指定せず
enのままにする - 移行前に、ゴミ箱内のデータも含めて確認する
- 本番へ直接書き込む操作は、最初は下書きで作り、確認してから公開する
今後の予定
引き続き、EmDashでのブログ運用を実践しながら、気づいた点を記事にしていきます。



コメント
まだコメントはありません