ビデオコンポーネント向けアイコンと多言語翻訳の追加

shoelace-style/webawesome

ビデオプレーヤーコンポーネントの新設に向けて、システムアイコンライブラリに16種のアイコンを追加し、全26言語の翻訳ファイルに17種のビデオ操作UIキーを一括追加した変更です。

背景

このPRは、webawesome-proリポジトリの#168と対になる姉妹PRとして作成されました。プロ版で開発されるビデオコンポーネントが必要とするUIリソース(アイコンおよびi18nテキスト)を、オープンソース側のコアパッケージに先行して整備することが目的です。

コンポーネントのUIを構成するアイコンや操作ラベルは、コンポーネント実装とは独立して管理される設計になっています。そのため、コンポーネント本体の実装を待たずにアセット層だけを先にマージできる構造になっています。

技術的な変更

システムアイコンライブラリへの追加

packages/webawesome/src/components/icon/library.system.tssolid バリアントに、16種のSVGアイコンが追加されました。追加されたアイコンキーは以下の通りです:

  • backward / backward-step / forward / forward-step: 再生位置のスキップとステップ送り
  • closed-captioning / closed-captioning-slash: 字幕のオン・オフトグル
  • compress / expand: 画面サイズの縮小・拡大(全画面切り替え)
  • ellipsis-vertical: 縦3点リーダー(追加オプションメニュー)
  • gauge / gear: 再生速度・設定
  • picture-in-picture: ピクチャー・イン・ピクチャー
  • play-circle: 円形の再生ボタン
  • volume / volume-low / volume-xmark: 音量の高・低・ミュート状態の表現

すべてのSVGはFont Awesome Free v7.2.0のパスデータをインライン文字列として格納しており、既存アイコン(playpauseなど)と同じパターンに従っています。

翻訳キーの追加

packages/webawesome/src/translations/ 配下の全26言語ファイル(en.tsar.tsde.tsja.ts 等)に、以下の17キーが一括追加されました:

  • captions: 字幕
  • enterFullscreen / exitFullscreen: 全画面モードの開始・終了
  • mute / unmute: ミュート・ミュート解除
  • moreOptions: 追加オプション
  • nextVideo / previousVideo: 前後の動画へのナビゲーション
  • pause / play: 一時停止・再生
  • pictureInPicture: ピクチャー・イン・ピクチャー
  • playbackSpeed: 再生速度
  • playlist: プレイリスト
  • seek: シーク操作
  • seekProgress: シーク位置の読み上げ(関数型)
  • currentlyPlaying: 現在再生中
  • videoPlayer: プレーヤーのARIAラベル
  • volume: 音量(en-GBja.ts のみ追加)

seekProgress は他キーと異なり、(current, duration) => string 型の関数として定義されており、言語ごとの語順やフォーマット(${current} of ${duration}${current} / ${duration} など)に対応できる設計です。右横書き言語(アラビア語・ヘブライ語・ペルシャ語)を含む全言語でカバーされています。

設計判断

アイコンとi18nを実装より先行してコアパッケージへ投入する方針が採られています。ビデオコンポーネントの本体はプロ版リポジトリで管理される一方、UIリソースはオープンソース側のシステムライブラリとして一元管理されます。これにより、コンポーネントがリリースされた時点で多言語対応とアイコンが揃った状態になります。

既存の pauseAnimation / playAnimation という既存キーとは意味的に分離した形で、ビデオ操作用の pause / play キーが新設されています。既存キーはそのまま残されており、アニメーション制御とビデオ再生制御の翻訳文脈が明確に分離されています。

まとめ

本PRは、ビデオコンポーネントというUIレイヤーの変更を、アイコン定義とi18n翻訳というアセット層に分離して先行マージした変更です。26言語への同時対応を含む大規模な翻訳追加を一括で行うことで、コンポーネント本体のリリース時に多言語化の負債を残さない設計になっています。

記事メタデータ

Generated by:
Claude Sonnet 4.6 for DiffDaily
LLM Trace:
87327f00

この記事はAIによって自動生成されています。内容の正確性については、必ずソースコードやPRを確認してください。

品質レビュー結果

Review Status:
リトライ後承認
Review Count:
2回 (改善を経て承認)
Reviewed by:
Gemini 2.5 Pro for DiffDaily

Review Criteria:

記事構成 ✓ PASS

Title, Context, Technical Detailの存在と明確さ

「総論→各論→結論」の構成が明確で、リード文、背景、技術的な変更、設計判断、まとめの各要素がすべて含まれています。

カスタムMarkdown構文 ✓ PASS

シンタックスハイライト・GitHubリンク記法の正確性

姉妹PRとソースPRへのリンク記法([#番号](URL))が正しく使用されています。誤ったカスタムMarkdown構文は見られませんでした。

対象読者への適合性 ✓ PASS

エンジニア向けの適切な技術レベルと表現

「i18n」「アセット層」「コンポーネント実装」といった用語が適切に使われており、専門知識を持つエンジニアという対象読者に適した内容です。

パラグラフ・ライティング ✓ PASS

トピックセンテンス・1段落1トピック・段落長

各セクションが総論・各論で構成され、段落はトピックセンテンスで始まるなど、パラグラフ・ライティングの原則が遵守されており、非常に読みやすいです。

Diff内容との照合 ✓ PASS

コードブロックとDiff内容の一致

追加されたアイコンの数(16種)、翻訳キーの数(17種)、ファイルパス、`volume`キーが`en-GB`と`ja.ts`のみに追加されたという特殊なケースまで含め、Diffの内容を極めて正確に反映しています。

技術用語の正確性 ✓ PASS

技術用語の正確な使用

「SVG」「i18n」「ARIAラベル」「右横書き言語」などの技術用語が文脈に応じて正確に使用されています。

説明の技術的正確性 ✓ PASS

技術的主張の正確性と論理性

アイコンの追加、全26言語への翻訳キーの追加、`seekProgress`キーの関数型定義など、技術的な説明はすべてDiffの内容と整合性が取れており、正確です。

事実の突合 ✓ PASS

PR情報による主張の裏付け(ハルシネーション検出)

記事内の主張はすべてPRのタイトル、Description、Diffの内容によって裏付けられています。「姉妹PR」や「先行して整備」といった背景説明もPR Descriptionから正確に読み取れています。

数値・固有名詞の確認 ✓ PASS

PR番号・コミットID・バージョン等の正確性

PR番号(#2194, #168)、アイコン数(16)、翻訳キー数(17)、言語数(26)、Font Awesomeのバージョン(v7.2.0)など、記事中のすべての数値・固有名詞がPR情報およびDiffと一致しています。

タイトル・説明との一致 ✓ PASS

記事タイトル・説明とPR内容の一致

記事のタイトル「ビデオコンポーネント向けアイコンと多言語翻訳の追加」は、PRのタイトル「Add Icons and Translations for Video Component」を忠実に反映しており、内容の齟齬はありません。

外部知識の正確性 ✓ PASS

PRに記載のない外部知識(LTS、サポート状況など)の不使用

記事で言及されている「Font Awesome Free v7.2.0」はDiff内のSVGコメントに記載がある情報であり、PRに記載のない外部知識を捏造している箇所はありません。

時間表現の正確性 ✓ PASS

時間表現がPR情報と一致しているか

「先行して整備」といった表現は、PRの意図と完全に合致しており、時間表現の歪曲は見られません。