### Overview Implement PDPA & GDPR compliant Cookie Consent Management Platform (CMP) for pps/website: - **Zustand Store (cookieConsentStore.ts):** Stores consent record ( ecessary, nalytics, marketing) in localStorage with skipHydration: true for Next.js SSR safety. - **Cookie Banner (CookieBanner.tsx):** Fixed bottom floating banner with Quiet Luxury styling, providing Accept All, Reject Non-Essential, and Customize buttons. - **Preferences Modal (CookiePreferencesModal.tsx):** Detailed modal dialog allowing users to granularly toggle Analytics and Marketing cookies (Strictly Necessary is locked). - **Script Manager (ScriptManager.tsx):** Coordinates Google Consent Mode v2 (nalytics_storage, d_storage), conditionally injects GA4, Meta Pixel, and TikTok Pixel, and dispatches homaroma:consent-change DOM events. - **Footer Revocation Link:** Added Cookie Preferences link in the Support column of Footer.tsx so users can modify/revoke consent anytime. - **Multilingual Support:** Added localized text for TH, EN, JA, and ZH. --------- Co-authored-by: Your Name <you@example.com> Reviewed-on: #14 Co-authored-by: antigravity-bot <bot@kittisak.com>
261 lines
11 KiB
JSON
261 lines
11 KiB
JSON
{
|
||
"nav": {
|
||
"home": "ホーム",
|
||
"shop": "ショップ",
|
||
"collections": "コレクション",
|
||
"scentGuide": "香りガイド",
|
||
"about": "私たちについて",
|
||
"menu": "メニュー",
|
||
"faq": "よくある質問",
|
||
"contact": "お問い合わせ",
|
||
"shopNow": "今すぐ購入",
|
||
"findMyScent": "香りを探す ✨",
|
||
"promotions": "プロモーション",
|
||
"profile": "マイプロフィール",
|
||
"search": {
|
||
"title": "検索",
|
||
"placeholder": "香りを検索...",
|
||
"quickLinks": "クイックリンク",
|
||
"allProducts": "すべての商品"
|
||
},
|
||
"trackOrder": "注文追跡",
|
||
"delivery": "配送と返品"
|
||
},
|
||
"cart": {
|
||
"title": "カート",
|
||
"items": "{{count}} 点",
|
||
"empty": "カートは空です。",
|
||
"continueShopping": "ショッピングを続ける",
|
||
"subtotal": "小計",
|
||
"shippingNote": "送料と税金はチェックアウト時に計算されます。",
|
||
"proceed": "レジへ進む",
|
||
"addToCart": "カートに追加",
|
||
"totalPrice": "合計金額"
|
||
},
|
||
"footer": {
|
||
"catchphrase": "プレミアムな香りで空間をアップグレード",
|
||
"explore": "探索",
|
||
"support": "サポート",
|
||
"followUs": "フォローする",
|
||
"contactUs": "お問い合わせ",
|
||
"rights": "All rights reserved."
|
||
},
|
||
"common": {
|
||
"home": "ホーム",
|
||
"shop": "ショップ",
|
||
"viewAll": "すべて見る →",
|
||
"backToShop": "ショップに戻る"
|
||
},
|
||
"product": {
|
||
"notFound": "商品が見つかりません",
|
||
"premiumCollection": "プレミアムコレクション",
|
||
"selectSize": "サイズを選択",
|
||
"details": "商品詳細",
|
||
"scent": "香り",
|
||
"category": "カテゴリー",
|
||
"relatedProducts": "関連商品",
|
||
"moreRelated": "関連する {{category}}",
|
||
"reviews": "レビュー",
|
||
"viewDetails": "詳細を見る →"
|
||
},
|
||
"dynamic": {
|
||
"heroLearnMore": "詳しく見る",
|
||
"products": "商品",
|
||
"viewAll": "すべて見る →",
|
||
"emptyProducts": "このセクションには商品がありません。",
|
||
"authorBy": "著者",
|
||
"notes": {
|
||
"top": "トップノート",
|
||
"heart": "ミドルノート",
|
||
"base": "ベースノート"
|
||
},
|
||
"contactInfo": {
|
||
"address": "住所",
|
||
"email": "メール",
|
||
"line": "Line",
|
||
"hours": "営業時間"
|
||
}
|
||
},
|
||
"contactForm": {
|
||
"title": "お問い合わせ",
|
||
"subtitle": "チームへメッセージをお送りください。できるだけ早くご返信します。",
|
||
"successTitle": "送信に成功しました",
|
||
"successBody": "お問い合わせありがとうございます。担当者ができるだけ早く返信します。",
|
||
"name": "氏名",
|
||
"namePlaceholder": "お名前を入力してください",
|
||
"email": "メール",
|
||
"message": "メッセージ",
|
||
"messagePlaceholder": "ここにメッセージを入力してください...",
|
||
"submit": "送信"
|
||
},
|
||
"checkout": {
|
||
"title": "安全なチェックアウト",
|
||
"pageHeading": "注文内容の確認",
|
||
"pageDescription": "商品を確認し、クーポンやポイントを適用してご注文を確定してください。",
|
||
"seoDescription": "{{brand}} で注文内容を確認し、配送先を入力して注文を完了します。",
|
||
"seoDescriptionDefault": "注文内容を確認し、配送先を入力して注文を完了します。",
|
||
"loadingCart": "カートを読み込み中...",
|
||
"emptyCartTitle": "カートは空です",
|
||
"emptyCartDesc": "お気に入りの商品を選んでからチェックアウトにお進みください。",
|
||
"continueShopping": "ショッピングを続ける",
|
||
"recipientInfo": {
|
||
"title": "受取人情報",
|
||
"subtitle": "この情報は注文作成に使用されます。",
|
||
"name": "氏名 *",
|
||
"namePlaceholder": "山田 太郎",
|
||
"phone": "電話番号 *",
|
||
"phonePlaceholder": "0812345678",
|
||
"phoneValidation": "有効な電話番号(9〜10桁)を入力してください",
|
||
"email": "メールアドレス *",
|
||
"emailPlaceholder": "you@example.com"
|
||
},
|
||
"shippingAddress": {
|
||
"title": "配送先住所",
|
||
"subtitle": "登録済みの住所を選択するか、新しい住所を入力してください。",
|
||
"addNewAddress": "新しい住所を入力",
|
||
"defaultBadge": "デフォルト",
|
||
"addressLine": "番地・建物名・通り *",
|
||
"addressLinePlaceholder": "番地・建物名など",
|
||
"subdistrict": "町名・区 *",
|
||
"district": "市町村 *",
|
||
"province": "都道府県 *",
|
||
"zipcode": "郵便番号 *",
|
||
"zipcodePlaceholder": "10110"
|
||
},
|
||
"summary": {
|
||
"title": "注文内容",
|
||
"itemsCount": "カート内に {{count}} 件",
|
||
"standardVariant": "標準",
|
||
"couponLabel": "割引クーポン",
|
||
"couponPlaceholder": "COUPON",
|
||
"applyCoupon": "適用",
|
||
"removeCoupon": "削除",
|
||
"pointsLabel": "保有ポイント",
|
||
"pointsBalance": "{{count}} ポイント",
|
||
"usePoints": "ポイントを割引に利用",
|
||
"subtotal": "小計",
|
||
"coupon": "クーポン",
|
||
"points": "ポイント",
|
||
"shipping": "送料",
|
||
"freeShipping": "送料無料",
|
||
"total": "合計",
|
||
"notice": "注文を作成して支払い待ち状態にします。決済・明細アップロードは注文詳細画面で行えます。",
|
||
"placeOrder": "注文を確定する"
|
||
},
|
||
"errors": {
|
||
"loadFailed": "チェックアウト設定の読み込みに失敗しました",
|
||
"invalidCoupon": "このクーポンは利用できません",
|
||
"validateCouponFailed": "クーポンを確認できませんでした",
|
||
"emptyCart": "カートが空です。商品を選択してください。",
|
||
"missingAddress": "配送先住所をすべて入力してください。",
|
||
"createOrderFailed": "注文を作成できませんでした"
|
||
}
|
||
},
|
||
"order": {
|
||
"status": {
|
||
"PENDING_PAYMENT": "支払い待ち",
|
||
"PAID": "支払い完了",
|
||
"PROCESSING": "発送準備中",
|
||
"SHIPPED": "発送済み",
|
||
"DELIVERED": "配達完了",
|
||
"CANCELLED": "キャンセル済み"
|
||
},
|
||
"header": {
|
||
"orderStatus": "注文状況",
|
||
"orderReceived": "ご注文を受け付けました。最新の注文状況の確認やお支払いは下記より行えます。"
|
||
},
|
||
"cards": {
|
||
"created": "注文日",
|
||
"status": "ステータス",
|
||
"trackingNo": "追跡番号",
|
||
"pendingTracking": "発送準備中"
|
||
},
|
||
"items": {
|
||
"title": "注文商品",
|
||
"subtotal": "小計",
|
||
"shippingFee": "送料",
|
||
"discount": "割引",
|
||
"total": "合計"
|
||
},
|
||
"payment": {
|
||
"required": "お支払い金額",
|
||
"methodBank": "銀行振込",
|
||
"methodPromptPay": "PromptPay QR",
|
||
"bank": "銀行名",
|
||
"accountNumber": "口座番号",
|
||
"accountName": "口座名義",
|
||
"copied": "口座番号をコピーしました",
|
||
"copyAccount": "口座番号をコピー",
|
||
"transferInstruction": "指定の金額をお振込みの上、下記より振込明細をアップロードしてください。",
|
||
"slipVerification": "振込明細の送信",
|
||
"slipUploaded": "明細をアップロードしました",
|
||
"slipUploadedDesc": "入金確認後、速やかに発送の手続きを進めます。",
|
||
"uploading": "アップロード中...",
|
||
"dropSlip": "クリックまたはファイルをドロップして明細を送信",
|
||
"supportFormat": "JPG, PNG 対応(最大5MB)",
|
||
"uploadFailed": "アップロードに失敗しました。もう一度お試しください。",
|
||
"promptPayTitle": "PromptPay QRコード",
|
||
"generatePromptPay": "PromptPay QRコードを発行",
|
||
"generatingQr": "QRコード生成中...",
|
||
"scanPromptPay": "銀行アプリでスキャンしてお支払いください",
|
||
"paymentComplete": "お支払いが完了しました。ご購入ありがとうございます!",
|
||
"failedGenerateQr": "PromptPay QRコードの発行に失敗しました"
|
||
},
|
||
"navigation": {
|
||
"trackAnother": "他の注文を確認",
|
||
"continueShopping": "買い物を続ける",
|
||
"loadFailed": "注文情報を読み込めませんでした",
|
||
"backToTrack": "注文検索に戻る"
|
||
}
|
||
},
|
||
"track": {
|
||
"seoTitle": "注文追跡",
|
||
"seoDescription": "注文番号とお電話番号を入力して配送状況をご確認ください。",
|
||
"hero": {
|
||
"eyebrow": "配送状況の確認",
|
||
"title": "ご注文状況を確認する",
|
||
"description": "注文番号とお電話番号を入力して配送状況を確認するか、この端末で以前検索した注文を確認できます。"
|
||
},
|
||
"search": {
|
||
"eyebrow": "手動検索",
|
||
"title": "注文を検索",
|
||
"orderIdLabel": "注文番号",
|
||
"orderIdPlaceholder": "例: 1024",
|
||
"phoneLabel": "電話番号",
|
||
"phonePlaceholder": "ご注文時の電話番号",
|
||
"submit": "注文を検索",
|
||
"searching": "検索中..."
|
||
},
|
||
"recent": {
|
||
"title": "この端末での検索履歴",
|
||
"orderLabel": "注文",
|
||
"emptyTitle": "この端末での注文履歴はまだありません",
|
||
"emptyDesc": "左側の検索フォームから注文を検索・保存してください"
|
||
},
|
||
"errors": {
|
||
"invalidOrderId": "有効な注文番号を入力してください",
|
||
"notFound": "注文情報を確認できませんでした",
|
||
"networkError": "接続エラーが発生しました。もう一度お試しください。"
|
||
}
|
||
},
|
||
"cookie": {
|
||
"settings": "クッキー設定",
|
||
"bannerTitle": "お客様のプライバシーを尊重します",
|
||
"bannerDesc": "当ウェブサイトでは、利便性の向上、利用状況の分析、パーソナライズされた広告の提供のためにクッキーを使用しています。同意設定はいつでも変更できます。",
|
||
"btnCustomize": "設定",
|
||
"btnRejectAll": "必須以外を拒否",
|
||
"btnAcceptAll": "すべて同意",
|
||
"btnSavePreferences": "設定を保存",
|
||
"prefTitle": "プライバシーおよびクッキー設定",
|
||
"prefSubtitle": "個人情報保護法(PDPA/GDPR)に基づくクッキーの保存およびデータ利用の同意管理",
|
||
"alwaysActive": "常に有効",
|
||
"catNecessaryTitle": "必須クッキー (Strictly Necessary)",
|
||
"catNecessaryDesc": "ウェブサイトの基本的な機能(ログイン、セキュリティ、カート、言語設定など)に不可欠なクッキーです。このクッキーを無効にすることはできません。",
|
||
"catAnalyticsTitle": "分析・パフォーマンスクッキー (Analytics)",
|
||
"catAnalyticsDesc": "訪問者数やトラフィックソースを計測し、サイトのパフォーマンスを向上させるためのクッキーです(Google Analyticsなど)。",
|
||
"catMarketingTitle": "マーケティング・ターゲティングクッキー (Marketing)",
|
||
"catMarketingDesc": "お客様の興味関心に基づいた関連性の高い広告やプロモーションを配信するために使用されます(Meta Pixel、TikTok Pixelなど)。"
|
||
}
|
||
}
|
||
|