音アーカイブ本番サイトを多言語化・リブランド・ナビ再構成・機材更新した
本番サイト(otoarchive.com)に対して、多言語化、プロジェクト名のリブランド、ナビゲーション構造の見直し、機材情報の更新を一日でまとめて実施した。コンセプトサイト側にも同等の変更を反映してデプロイまで完了。
多言語化(i18n)
@nuxtjs/i18n v10の導入
@nuxtjs/i18n v10を導入して、日本語(ja)・英語(en)・中国語(zh)の3言語に対応した。
設定のポイントは以下のとおり。
strategy: 'prefix_except_default'で日本語はプレフィックスなし、英語は/en/、中国語は/zh/のURL構造- ロケールファイルは
locales/ja.json,locales/en.json,locales/zh.jsonに分離 - 全コンポーネント・ページのハードコードされた日本語テキストを
$t()に置き換え <NuxtLink>のパスをlocalePath()でラップしてロケール対応
コンポーネント変換の作業量
HeroSection、Navigation、Footer、LibraryCard、EquipmentCardなど、テキストを含む全コンポーネントが対象になった。ロケールファイルのキー設計は hero.title, nav.library, equipment.recorder のようにセクション単位でまとめた。
利用規約とプライバシーポリシーは、以前はマークダウンファイルで日英を分けていたが、i18n導入後はVueページ内で $t() を使う方式に統一した。
SSGビルド確認
3言語分のルートを含む82ルート全てがSSGビルドに成功した。言語ごとにプリレンダリングされるので、ルート数は単純に3倍近くになる。
LocaleSwitcher
ヘッダーに言語切り替えUIを配置した。当初はボタン並列だったが、3言語になると横幅を取るので、ドロップダウン式に変更した。現在の言語名を表示し、クリックで他の言語を選べる形式。
ドキュメント整備
CLAUDE.mdにi18nの対応方針を追記し、新しいページやコンポーネントを追加する際のi18n対応手順をメンテナンスガイドとしてまとめた。ロケールキーの命名規則や、翻訳漏れのチェック方法など。
リブランド
「Tokyo Soundscape Archive」から「音アーカイブ / oto archive」にプロジェクト名を全面変更した。
変更範囲
- ロケールファイル(ja/en/zh)のサイト名・説明文
- HeroSectionのタイトル・サブタイトル
- 利用規約・プライバシーポリシーの事業者名表記
- OGP / SEOメタデータ
- フッターのコピーライト表記
ドメイン(otoarchive.com)はそのまま使えるので、URLの変更は不要だった。
ナビゲーション再構成
ライブラリの2カテゴリ分割
それまで「ライブラリ一覧」として一覧表示していた音源を、「消えゆく音」と「残り続ける音」の2つのカテゴリに分割した。
/library/fading-- 消えゆく音(再開発や環境変化で失われつつある音)/library/enduring-- 残り続ける音(歴史的・文化的に保存されている音)
soundTypeフィールドの配列化
音源データの soundType フィールドを文字列から配列に変更した。ひとつの音源が「消えゆく音」と「残り続ける音」の両方に属するケースがあるため。たとえば歴史ある寺院の鐘の音は「残り続ける音」でありつつ、周囲の環境音は変化し続けている。
// before
soundType: 'fading'
// after
soundType: ['fading', 'enduring']
残り続ける音のサンプルコンテンツ
「残り続ける音」カテゴリの仮コンテンツとして、京都・知恩院の梵鐘を作成した。画像はWikimedia Commonsのパブリックドメイン素材を使用。実際の音源はまだ録音していないので、メタデータとビジュアルのみ。
機材情報(Equipment)の更新
実際に使う機材に合わせてEquipmentページを全面的に見直した。
追加・変更した機材
- レコーダー: TASCAM Portacapture X6に変更。専用ケース、ウインドスクリーンも追加
- カメラ: Sony a7C + SEL20F18Gレンズを追加。動画・スチル兼用で、フィールドワーク時の記録用
- Kestrel 5500気象計: フィールドレコーディングのメタデータ取得用として検討中。温度・湿度・気圧・風速を1台で計測可能。CSV出力に対応しているので、録音メタデータとの紐付けが容易。Amazonリンクを機材ページに追加
削除した機材
- Cinela Wind Protection: 当面は付属ウインドスクリーンで十分と判断
- Starter Kitセクション: 個別機材の紹介に統合
- Sony PCM-D100: Portacapture X6に置き換え
- MKH 8040 / MKH 30マイク: 高価で優先度が低いため削除。将来的に追加する可能性はあるのでメモに記録
- GPSロガー: DG-PRO1Sなどをリサーチしたが、スマートフォンのGPSで当面は代替可能と判断。調査結果はメモに記録
Kestrel 5500の調査
フィールドレコーディングでは、録音時の気象条件がメタデータとして重要になる。Kestrel 5500は米軍でも採用されている気象計で、以下の点が魅力的だった。
- 温度、湿度、気圧、風速、風向をワンストップで計測
- データロギング機能でCSV出力可能
- 防水・耐衝撃で屋外使用に適している
- Bluetooth対応モデルならスマートフォンでリアルタイム確認
購入するかは検討中。まずはスマートフォンアプリの気象データで代替して、精度が必要になったら導入する方針。調査結果はメモに記録した。
デプロイ
本番サイト・コンセプトサイトの両方を更新・デプロイした。SSGビルドは82ルートで問題なく完了。
ふりかえり
i18nの導入は、既存コンポーネントの全テキストを洗い出す作業が大半を占めた。$t() への置き換え自体は機械的だが、ロケールキーの命名を統一的に設計しないと後から破綻する。今回は セクション名.要素名 の2階層で統一したのが良かった。
リブランドとナビ再構成は、i18nと同時にやったことで一回の大改修にまとめられた。個別にやると毎回ロケールファイルの修正が発生するので、まとめて正解だった。
機材ページは「欲しいもの一覧」から「実際に使うもの一覧」に方針転換した。持っていない高価な機材を並べるより、手持ちの機材で何ができるかを示すほうが説得力がある。将来追加する可能性のある機材はメモに残して、実際に購入したらページに追加する運用にした。