---
generated_at: 2026-03-01 20:35:00
metrics:
  claims_total: 93
  claims_with_evidence: 89
  claims_without_evidence: 4
confidence_derived: 0.96
---

# 根拠レポート：translations.csv

## 本レポートについて

### 目的
本レポートは、生成された単体テストケース一覧の信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各テストケースに対して、ソースコードの実装が存在するか
2. **根拠との整合性**：テストケースの内容が実装と矛盾していないか
3. **網羅性**：主要な関数・メソッドが適切にカバーされているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.96**
  - 根拠あり：89 / 93、根拠なし：4
- 優先レビュー（高）
  1. **UT-TRN-048（メモ化動作）**：キャッシュの具体的な検証方法が実装依存
  2. **UT-TRN-068（権限エラー）**：OSレベルの権限エラーテストが環境依存
  3. **UT-TRN-090〜093（型定義検証）**：TypeScript型のランタイムテストは困難

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `packages/translations/src/importDateFNSLocale.ts`
- E-02: `packages/translations/src/utilities/getTranslation.ts`
- E-03: `packages/translations/src/utilities/getTranslationsByContext.ts`
- E-04: `packages/translations/src/utilities/init.ts`
- E-05: `packages/translations/src/utilities/deepMergeSimple.ts`
- E-06: `packages/translations/src/utilities/languages.ts`
- E-07: `packages/translations/src/utilities/ensureDirExists.ts`
- E-08: `packages/translations/src/utilities/copyFile.ts`
- E-09: `packages/translations/src/clientKeys.ts`
- E-10: `packages/translations/src/languages/en.ts`
- E-11: `packages/translations/src/exports/all.ts`
- E-12: `packages/translations/src/exports/index.ts`
- E-13: `packages/translations/src/exports/utilities.ts`
- E-14: `packages/translations/src/types.ts`

## 3) Claims と根拠の対応（レビューの主戦場）

### importDateFNSLocale（UT-TRN-001〜010）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | arロケールが正しく読み込まれる | E-01 L7-10 | ○ |
| C-02 | azロケールが正しく読み込まれる | E-01 L11-14 | ○ |
| C-03 | en-USロケールが正しく読み込まれる | E-01 L43-46 | ○ |
| C-04 | jaロケールが正しく読み込まれる | E-01 L89-92 | ○ |
| C-05 | zh-CNロケールが正しく読み込まれる | E-01 L170-173 | ○ |
| C-06 | zh-TWロケールが正しく読み込まれる | E-01 L174-177 | ○ |
| C-07 | bn-BD/bn-INで同じbnロケールが返却される | E-01 L19-26 | ○ |
| C-08 | rs-LatinでsrLatnロケールが返却される | E-01 L130-133 | ○ |
| C-09 | 未対応ロケールでundefinedが返却される | E-01 L178-186 (switch default) | ○ |
| C-10 | defaultプロパティが存在する場合はそれを返す | E-01 L180-184 | ○ |

### getTranslation（UT-TRN-011〜018）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-11 | 文字列ラベルがそのまま返却される | E-02 L47 | ○ |
| C-12 | 現在の言語で翻訳オブジェクトから値を取得 | E-02 L22-24 | ○ |
| C-13 | フォールバック言語で翻訳を取得 | E-02 L27-37 | ○ |
| C-14 | フォールバック言語が配列の場合 | E-02 L30-31 | ○ |
| C-15 | 翻訳が存在しない場合は最初のキーの値 | E-02 L37 | ○ |
| C-16 | 関数ラベルが正しく実行される | E-02 L40-44 | ○ |
| C-17 | Reactエレメントがそのまま返却される | E-02 L20, L47 | ○ |
| C-18 | 空オブジェクトラベルの場合の挙動 | E-02 L37 | ○ |

### getTranslationsByContext（UT-TRN-019〜025）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-19 | clientコンテキストでフィルタ | E-03 L57-59 | ○ |
| C-20 | apiコンテキストで全翻訳返却 | E-03 L60-62 | ○ |
| C-21 | ネストされたオブジェクトから指定キー抽出 | E-03 L5-41 | ○ |
| C-22 | 複数形キーも抽出される | E-03 L28-33 | ○ |
| C-23 | $schemaキーが保持される | E-03 L10-12 | ○ |
| C-24 | オブジェクトキーがソートされる | E-03 L43-55 | ○ |
| C-25 | ネストオブジェクトも再帰的にソート | E-03 L48-50 | ○ |

### init.ts関数群（UT-TRN-026〜050）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-26 | 単純なキーで翻訳文字列取得 | E-04 L21-73 | ○ |
| C-27 | count=0で_zero取得 | E-04 L42-43 | ○ |
| C-28 | count=1で_one取得 | E-04 L44-45 | ○ |
| C-29 | count=2で_two取得 | E-04 L46-47 | ○ |
| C-30 | count=3-5で_few取得 | E-04 L50-51 | ○ |
| C-31 | count>5で_many取得 | E-04 L48-49 | ○ |
| C-32 | 該当なしで_other使用 | E-04 L52-53 | ○ |
| C-33 | 存在しないキーでキー自体返却 | E-04 L68-72 | ○ |
| C-34 | 深くネストされたキー | E-04 L33-66 | ○ |
| C-35 | 変数が置換される | E-04 L82-104 | ○ |
| C-36 | 複数の変数が置換される | E-04 L91-103 | ○ |
| C-37 | 存在しない変数プレースホルダは残る | E-04 L98 | ○ |
| C-38 | 変数値がnullの場合 | E-04 L98 | ○ |
| C-39 | 変数値が数値の場合 | E-04 L97-98 | ○ |
| C-40 | t関数統合テスト | E-04 L114-144 | ○ |
| C-41 | t関数複数形 | E-04 L127-130 | ○ |
| C-42 | t関数フォールバック | E-04 L139-141 | ○ |
| C-43 | initTFunction基本動作 | E-04 L146-166 | ○ |
| C-44 | config.translations未設定 | E-04 L148-154 | ○ |
| C-45 | initI18n基本動作 | E-04 L188-218 | ○ |
| C-46 | 未サポート言語エラー | E-04 L190-191 | ○ |
| C-47 | clientコンテキストでフィルタされた翻訳 | E-04 L194 | ○ |
| C-48 | メモ化動作 | E-04 L168-186 | △ |
| C-49 | キャッシュキー生成 | E-04 L175 | ○ |
| C-50 | キャッシュ分離 | E-04 L172-182 | ○ |

### deepMergeSimple（UT-TRN-051〜057）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-51 | 2つのオブジェクトが深くマージ | E-05 L11-28 | ○ |
| C-52 | obj2の値がobj1を上書き | E-05 L20-22 | ○ |
| C-53 | 配列はマージされず上書き | E-05 L17 | ○ |
| C-54 | 空オブジェクト同士のマージ | E-05 L11-12 | ○ |
| C-55 | obj1のプロパティが保持される | E-05 L12 | ○ |
| C-56 | 深いネストでもマージ | E-05 L17-19 | ○ |
| C-57 | 元のオブジェクトが変更されない | E-05 L12 | ○ |

### languages.ts（UT-TRN-058〜065）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-58 | Accept-Languageヘッダパース | E-06 L138-152 | ○ |
| C-59 | quality値がない場合1がデフォルト | E-06 L148 | ○ |
| C-60 | quality順でソート | E-06 L151 | ○ |
| C-61 | サポートされている言語が抽出 | E-06 L154-166 | ○ |
| C-62 | 未サポート言語のみでundefined | E-06 L165 | ○ |
| C-63 | 空文字列でundefined | E-06 L154-166 | ○ |
| C-64 | acceptedLanguages定数 | E-06 L5-136 | ○ |
| C-65 | rtlLanguages定数 | E-06 L3 | ○ |

### ensureDirExists.ts（UT-TRN-066〜069）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-66 | ディレクトリが存在しない場合作成 | E-07 L3-13 | ○ |
| C-67 | ディレクトリが既に存在する場合 | E-07 L5 | ○ |
| C-68 | 権限がない場合エラー出力 | E-07 L8-12 | △ |
| C-69 | recursiveオプションでネスト作成 | E-07 L6 | ○ |

### copyFile.ts（UT-TRN-070〜072）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-70 | ファイルがコピーされる | E-08 L4-13 | ○ |
| C-71 | ソースファイルが存在しない場合 | E-08 L6-9 | ○ |
| C-72 | 宛先パスが不正な場合 | E-08 L6-9 | ○ |

### clientKeys.ts（UT-TRN-073〜075）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-73 | createClientTranslationKeys動作 | E-09 L3-5 | ○ |
| C-74 | clientTranslationKeys配列 | E-09 L7-540 | ○ |
| C-75 | キーのフォーマット検証 | E-09 L8-539 | ○ |

### 言語ファイル・エクスポート（UT-TRN-076〜089）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-76 | enTranslations.authentication存在 | E-10 L4-82 | ○ |
| C-77 | enTranslations.general存在 | E-10 L220-468 | ○ |
| C-78 | enTranslations.validation存在 | E-10 L529-555 | ○ |
| C-79 | en.dateFNSKey='en-US' | E-10 L646 | ○ |
| C-80 | en.translations参照 | E-10 L647 | ○ |
| C-81 | ja.dateFNSKey='ja' | E-10相当のja.ts | ○ |
| C-82 | translations全言語エクスポート | E-11 L48-94 | ○ |
| C-83 | bn-BD/bn-INマッピング | E-11 L52-53 | ○ |
| C-84 | rs-latinマッピング | E-11 L82 | ○ |
| C-85 | importDateFNSLocaleエクスポート | E-12 L1 | ○ |
| C-86 | getTranslationエクスポート | E-12 L3 | ○ |
| C-87 | initI18nエクスポート | E-12 L4 | ○ |
| C-88 | acceptedLanguagesエクスポート | E-12 L5 | ○ |
| C-89 | deepMergeSimpleエクスポート | E-13 L1 | ○ |

### 型定義（UT-TRN-090〜093）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-90 | Language型定義 | E-14 L52-55 | △ |
| C-91 | AcceptedLanguages型定義 | E-14 L65 | △ |
| C-92 | I18n型定義 | E-14 L139-153 | ○ |
| C-93 | TFunction型定義 | E-14 L134-137 | ○ |

## 4) 不足情報（Unknown / Missing）
- **メモ化動作のテスト（UT-TRN-048）**：memoize関数のキャッシュが正しく動作しているかを検証するには、実際に複数回呼び出してオブジェクト参照が同一であることを確認する必要がある。実装はあるが、テスト方法が複雑。
  - 候補：Jestのmock機能 / 参照比較 / 呼び出し回数カウント

- **権限エラーのテスト（UT-TRN-068）**：OS依存の権限エラーをテストするには特殊なセットアップが必要。
  - 候補：Dockerコンテナ / モック / CI環境での特殊設定

- **型定義の検証（UT-TRN-090〜091）**：TypeScript型はランタイムでテスト不可。コンパイル時のみ検証可能。
  - 候補：tsc --noEmit / type-coverage / dtslint

## 5) リスクフラグ（レビュー観点）
- **0: 低リスク** - ほぼ全てのテストケースが実装コードの直接的な根拠を持つ
- **1: 中リスク** - 型定義テスト（UT-TRN-090〜093）はランタイムテストとして実装不可能。TypeScript型チェックとして別途実施を推奨
- **1: 中リスク** - ファイルシステム操作（UT-TRN-066〜072）は実行環境に依存。CIでの実行時に注意が必要

## 6) レビュアーチェックリスト（最小）
- [ ] 全93テストケースがCSVに正しく出力されているか確認
- [ ] importDateFNSLocale関数の全44言語が網羅されているか確認（代表的なケースのみ抽出済み）
- [ ] 複数形テスト（_zero, _one, _two, _few, _many, _other）が正しく定義されているか確認
- [ ] フォールバック言語のロジックが正しくテストされているか確認
- [ ] ファイルシステム操作テストがモック化される想定か、実際のFS操作を行う想定か確認
- [ ] 型定義テスト（UT-TRN-090〜093）の実施方針を決定（TypeScriptコンパイルチェック or 削除）
