コンテンツにスキップ

多言語対応 (i18n)

フロントエンドは @solid-primitives/i18n による多言語対応を実装しています。

  • 対応言語: 日本語 (ja)、英語 (en)
  • デフォルト: 日本語(ブラウザ言語で自動検出)
  • 切替: 右上のボタンで JAEN をトグル
  • 永続化: localStorage に保存、リロード後も保持

言語の追加方法

  1. frontend/src/i18n/dictionaries/ に新しい辞書ファイル(例: ko.ts)を作成
  2. frontend/src/i18n/index.tsxdictionarieslocales に追加
  3. 型定義は ja.tsDictionary 型で保証されるため、キーの過不足がコンパイル時に検出されます

辞書ファイルの構造

// frontend/src/i18n/dictionaries/ja.ts
export const ja = {
  "app.title": "Nekonoverse",
  "app.tagline": "ねこに優しいActivityPubサーバー",
  "common.loading": "読み込み中...",
  "common.login": "ログイン",
  // ...
} as const;

export type Dictionary = typeof ja;

英語辞書は Dictionary 型を参照するため、キーの追加・削除は日本語辞書から行います。

// frontend/src/i18n/dictionaries/en.ts
import type { Dictionary } from "./ja";

export const en: Dictionary = {
  "app.title": "Nekonoverse",
  // ...
};