logo hsb.horse

Architecture Decision Record

PWA manifestの多言語対応

manifestを言語ごとに分岐し、lang/name/short_nameを適切にローカライズする。

採用 #pwa #i18n

PWA manifestの多言語対応

決定

  • Astro endpointでロケールごとに manifest.{locale}.webmanifest を生成する
  • 各manifestは lang, name, short_name をロケールに応じて変更する
  • Favicon.astro でロケールに応じた manifest を参照する

背景

サイトは6言語(ja, en, ko, fr, de, pt)をサポートしているが、manifestが lang: "ja" で固定されていた。PWAとして正しいユーザー体験を提供するため、各言語のmanifestを生成する必要がある。

理由

  • PWAのベストプラクティスとして、manifestの lang はページの言語と一致すべき
  • アプリ名(name, short_name)も各言語で適切に表示されるべき
  • Astro endpointによる生成で、静的ホスティング環境でも動作可能

影響

  • /brand/manifest.{locale}.webmanifest の形式でロケールごとのmanifestが生成される
  • Favicon.astro はページのロケールから適切なmanifestを参照する
  • 新しいロケール追加時に src/pages/brand/manifest.[lang].webmanifest.ts への追加が必要