2025年12月 1 分で読めます
正気を保ったまま三言語に対応する
URL ベースのロケール、コンパイル時メッセージ、そして document の lang 属性が省略不可な理由について。
i18nSvelteKit
i18n 最大の誤りは、言語をランタイムの状態として扱うことです。URL に入れましょう。各ロケールが実在しクロール可能で共有可能なアドレスを持ち、hreflang は推測でなくなります。
コンパイル時のメッセージカタログは、翻訳漏れを本番の空白ではなくビルドエラーに変えます。型付きのメッセージ関数はこうなります:
import * as m from '$lib/paraglide/messages';
// ビルド時に解決される — キー欠落はページではなくビルドを失敗させる
const title = m.site_title();
const read = m.min_read({ minutes: 6 });
そして html の lang 属性をページごとに設定すること。スクリーンリーダーは音声を、検索エンジンは信頼をそこから得ます。英語を宣言した日本語ページは、見える語が全て正しくてもバグです。
コメント
コメントを読み込み中…