記事
Astro Content Layer を monorepo で扱う
shared schema と locale 別公開状態を両立させる構成を整理します。
このサンプル記事は、同じ 5 桁 translationKey を持つ日本語版と英語版が存在するケースを表しています。
packages/content に原稿を集約する
記事本体は packages/content に集約し、一覧や検索では site と locale の両方でフィルタします。
そのため、日本語一覧には日本語公開済みの記事だけが表示され、言語スイッチャーも存在する翻訳先だけにリンクできます。
運用ルールを先に決める
locale ごとに slug が変わっても、翻訳同士は translationKey で結びつけます。
この形にしておくと、将来的に Cloudflare Workers で fallback を扱うときも、記事単位の判定がやりやすくなります。