# Splash Consent 補充說明

## i18n 開屏 consent 文案不生效（排查與修復記錄）

### 現象
- iOS 模擬器繁中開屏一直顯示舊文案（如「你很完美。」「一切 都會更好。」）
- 修改 zh-TW.json 的 consent.title/subtitle 後重跑 `npm run ios` 仍不生效
- 專案內搜尋「你很完美」找不到（舊文案來自快取）

### 排查結論

1. **舊文案來源**
   - 專案內**沒有**「你很完美」「一切 都會更好」的完整句
   - `zh-CN.json` 有近似句「你本就完美。」「一切都会变好。」，但 **App 的 i18n 未載入 zh-CN**，僅載入 `zh-TW`（zh-TW.json）與 `en`（all.json 的 en 區塊）
   - 結論：舊文案來自 **Metro / JS bundle 或 iOS 建置快取**（曾打包進去的舊 JSON）

2. **語言與載入順序**（`client/src/i18n/index.ts`）
   - `resources`：`zh-TW` → `zh-TW.json`；`en` → `all.json` 的 `en`
   - **all.json 的 zh-TW 區塊不會被載入**，繁中唯一來源為 `zh-TW.json`
   - 裝置語言經 `expo-localization.getLocales()[0].languageTag` 取得，經 `normalizeDeviceLanguageTagToAppLanguage` 對應到 `zh-TW` 或 `en`（zh-Hant / zh-TW / zh-HK 等均對應 zh-TW）

3. **修復與預防**
   - 已加臨時 debug log：i18n 初始化與開屏 consent 畫面會印出 `language` 與 `consent.title`（僅 __DEV__）
   - 已加 `clean:cache`、`start:clean`、`ios:clean` script；若改 zh-TW 仍不生效，請執行清理後重啟或卸載 App 重裝
   - 繁中 consent 文案**只改** `client/src/i18n/locales/zh-TW.json` 的 `consent.title`、`consent.subtitle`、`consent.subtitleSecondary`

### 修改的檔案（本次修復）
- `client/src/i18n/index.ts`：註解 + __DEV__ 下印出 language 與 consent.title
- `client/app/(splash)/splash.tsx`：useTranslation 取 i18n + __DEV__ 下印出 consent 畫面時的 language / title / subtitle
- `client/package.json`：`start:clean`、`ios:clean`、`clean:cache`
- `client/src/i18n/ALL_COPY.md`：故障排除與 consent 繁中只改 zh-TW.json 的說明
