Skip to content

カードの背景と配色の名前を辞書へ移す (#475) - #477

Merged
kojira merged 1 commit into
mainfrom
fix/card-picker-i18n-475
Sep 4, 2026
Merged

カードの背景と配色の名前を辞書へ移す (#475)#477
kojira merged 1 commit into
mainfrom
fix/card-picker-i18n-475

Conversation

@kojira

@kojira kojira commented Sep 4, 2026

Copy link
Copy Markdown
Member

何が起きていたか

プロフィールカードのピッカーに出る背景パターン・配色テーマの呼び名が、配色カタログ apps/web/src/components/licenseCard/cardTheme.ts に日本語で直に書かれていた。英語で画面を見ている人にも「ロゼット」「インディゴ」がそのまま出る。#474 の作業中に見つけて、描画文言が変わるので分けたもの。

何を動かしたか

  • 表示名は packages/shared/src/i18n/messages/profile.ts へ。カードの他の文言(cardAriaLabel cardOwnHint)と同じ領域=同じ名前空間で、ja と en を隣り合わせに置いた。
  • カタログが持つのは引き先のキーだけ(labelKey / nameKey)。キーの型は profile.cardBg* / profile.cardTheme* に絞ってあるので、辞書に無いキーや綴り違いは typecheck で落ちる(実際に cardBgTopoo へ差し替えて 2 件のエラーが出ることを確かめた)。
  • 描く側の契約 CardTheme からは name を外した。呼び名を使うのはピッカーだけなので、選択肢の型 CardThemeChoice に足してある。
  • ピッカー(LicenseCardPage.tsx)が t() で引くようにした。

日本語の文言は 1 文字も変えていない。

ja → en

種類 ja en
背景 ロゼット Rosette
背景 等高線 Contours
背景 円弧 Arcs
背景 流線 Flow
配色 インディゴ Indigo
配色 ティール Teal
配色 ローズ Rose
配色 アンバー Amber
配色 モノクロ Monochrome

色と模様の呼び名なので、直訳ではなくその言語で通じる言い方にした。「等高線」は地図の等高線なので Contours、「流線」は流れる線の意匠なので Flow。

カードの絵が変わっていないこと

#474 と同じやり方で、12 のデータ形 × 5 配色 × 4 背景 = 240 通りを変更前と変更後で描き比べた。データ形はアイコン無し・長い和名・長い欧文名・ハンドル無し・実績ゼロ・コミュニティ 1/5/9 件・バッジ複数・絵文字名などを含む。

  • 比較した組み合わせ: 240
  • 食い違い: 0(全体の JSON まで byte-identical)
  • 1 枚あたりの markup は平均 14 万文字ほどで、空描画で通ったものではない

退行の見張り

  • apps/web/src/components/licenseCard/cardTheme.test.ts(新規): カタログの項目が表示用の文字列を持たないこと(label / name の復活で落ちる)、引き先のキーが ja と en の両方にあること、呼び名を使い回していないこと。
  • apps/web/src/pages/LicenseCardPage.test.tsx: 英語に切り替えてページを描き、チップが Rosette / Contours / Indigo / Monochrome になり日本語が出ないことを確かめる。直書きに戻すとここが落ちる。

確認

  • pnpm -r typecheck 3 プロジェクトとも通過
  • web: 95 ファイル / 880 テスト 通過
  • server: 11 シャードすべて通過
  • 触ったファイルはすべて 800 行未満(最大 LicenseCardPage.tsx 440 行)

Closes #475

🤖 Generated with Claude Code

https://claude.ai/code/session_01SLkuubF8cHzSnnsv4fN9DA

プロフィールカードの背景パターンと配色テーマの呼び名が、配色カタログ
(cardTheme.ts) に日本語で直に書かれていた。英語で見ている人にも
「ロゼット」「インディゴ」がそのまま出る。

カタログが持つのは引き先の辞書キーだけにして、表示名は profile 辞書
(1ファイル=1領域=1名前空間) に ja と en を隣り合わせで置く。キーの綴りは
`profile.cardBg*` / `profile.cardTheme*` に絞った型で縛ってあるので、
辞書に無いキーを書くと typecheck が落ちる。

描く側の契約 (CardTheme) は色だけのまま。呼び名はピッカーしか使わないので、
選択肢の型 (CardThemeChoice) に足した。カードの絵は変えていない。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SLkuubF8cHzSnnsv4fN9DA
@kojira
kojira merged commit 2e88e5f into main Sep 4, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

背景と配色の選択肢の名前が日本語のまま出る

1 participant