Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions components/LandingBenefits.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,35 @@ export async function LandingBenefits() {
);
})}
</ul>

{/* 「なぜ店舗決済に OpenPay が必要か」: ウォレット送金は送れる人には便利でも店舗
決済には不十分、という核心メッセージ。ビッグナンバーカードの下に narrative で補足。 */}
<div className="mx-auto mt-12 max-w-3xl">
<h3 className="text-center text-xl font-bold text-slate-900 sm:text-2xl">
{t('benefitsWhyTitle')}
</h3>
<p className="mt-3 text-sm leading-relaxed text-slate-600">
{t('benefitsWhyLead')}
</p>
<div className="mt-6 grid gap-4 sm:grid-cols-2">
<div className="rounded-2xl border border-emerald-200 bg-white p-5 shadow-sm">
<h4 className="text-sm font-semibold text-slate-900 sm:text-base">
{t('benefitsWhyPoint1Title')}
</h4>
<p className="mt-2 text-xs leading-relaxed text-slate-600 sm:text-sm">
{t('benefitsWhyPoint1Body')}
</p>
</div>
<div className="rounded-2xl border border-emerald-200 bg-white p-5 shadow-sm">
<h4 className="text-sm font-semibold text-slate-900 sm:text-base">
{t('benefitsWhyPoint2Title')}
</h4>
<p className="mt-2 text-xs leading-relaxed text-slate-600 sm:text-sm">
{t('benefitsWhyPoint2Body')}
</p>
</div>
</div>
</div>
</section>
);
}
8 changes: 7 additions & 1 deletion messages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"Landing": {
"tagline": "Start with just one wallet address",
"heroLeadline": "JPYC / USDC QR payments",
"heroBody": "Same-chain transfers settle in just JPYC / USDC; cross-chain USDC payments arrive in the merchant wallet the same way.",
"heroBody": "Smooth wallet payments for stores. The merchant shows a QR with the amount baked in, and the customer just scans and signs. Cross-chain USDC payments arrive automatically too.",
"heroVisualAlt": "Illustration of a customer paying by scanning a QR code at a shop counter while the merchant tablet shows payment received",
"ctaScanTitle": "📱 Pay (Scan)",
"ctaScanBody": "Connect a wallet, scan a merchant QR, and pay instantly.",
Expand Down Expand Up @@ -79,6 +79,12 @@
"benefitsNoSignupFocal": "No sign-up",
"benefitsNoSignupTitle": "No sign-up",
"benefitsNoSignupBody": "Customers pay with just a wallet — no address, phone or email registration required. No KYC either.",
"benefitsWhyTitle": "Why stores need OpenPay",
"benefitsWhyLead": "Wallet transfers are handy for people who can already send crypto, but they fall short as store payments: you type the recipient and amount by hand, you can pick the wrong chain or token, the store can't easily confirm what a payment is for, and you need a separate token for gas. OpenPay is an open-source payment tool that removes the friction of using wallet transfers at the point of sale.",
"benefitsWhyPoint1Title": "Fewer payment mistakes",
"benefitsWhyPoint1Body": "The store bakes the payment conditions into a QR up front, and the customer just scans it. No hand-typing the recipient, amount, chain or token — so the slip-ups that plague raw wallet transfers go away.",
"benefitsWhyPoint2Title": "The store sets the amount",
"benefitsWhyPoint2Body": "Set a preset or any billed amount and present a clear \"pay this amount\" QR. Customers don't enter the amount themselves, which makes it practical at a counter or an event.",
"useCasesTitle": "Common use cases",
"useCasesSubtitle": "From merchant payments to creator support and community ops.",
"useCase1Title": "🏪 Merchants & event booths",
Expand Down
8 changes: 7 additions & 1 deletion messages/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"Landing": {
"tagline": "ウォレットアドレス 1 つで始める",
"heroLeadline": "JPYC / USDC QR決済",
"heroBody": "同チェーン送金なら JPYC / USDC だけで OK、別チェーンからの USDC 支払いも即座に受取。",
"heroBody": "ウォレット送金をスムーズに。店舗が金額入りの決済 QR を提示し、お客様は読み取って署名するだけ。別チェーンからの USDC 支払いも自動で受け取れます。",
"heroVisualAlt": "店舗カウンターで顧客がスマホで QR 決済し、店舗端末に受取完了が表示されているイラスト",
"ctaScanTitle": "📱 支払う (スキャン)",
"ctaScanBody": "ウォレットを接続して、店舗の QR を読み取り即決済。",
Expand Down Expand Up @@ -79,6 +79,12 @@
"benefitsNoSignupFocal": "登録不要",
"benefitsNoSignupTitle": "会員登録不要",
"benefitsNoSignupBody": "顧客はウォレット 1 つで支払い完了。住所・電話番号・メールアドレスの登録は一切不要、本人確認 (KYC) も要りません。",
"benefitsWhyTitle": "なぜ店舗決済に OpenPay が必要か",
"benefitsWhyLead": "ウォレット送金は「送れる人」には便利でも、店舗決済としては不十分です。送金先や金額を手入力する・チェーンやトークンを間違える・店舗側が「何の支払いか」確認しづらい・ガス代用トークンを別途用意する — こうした手間やミスが起きがちです。OpenPay は、ウォレット送金を店舗決済として使うときの面倒を減らす OSS 決済ツールです。",
"benefitsWhyPoint1Title": "支払いミスを減らせる",
"benefitsWhyPoint1Body": "店舗があらかじめ支払い条件を設定した QR を、お客様は読み取るだけ。送金先・金額・チェーン・トークンの手入力を省けるので、ウォレット送金にありがちな取り違えを減らせます。",
"benefitsWhyPoint2Title": "店舗側が金額を指定できる",
"benefitsWhyPoint2Body": "プリセット額や任意の請求額を設定でき、「この金額を支払ってください」という明確な決済 QR を提示できます。お客様に金額入力を任せないため、店頭やイベント会場でも使いやすくなります。",
"useCasesTitle": "こんな用途に使えます",
"useCasesSubtitle": "店舗の日常決済からクリエイター支援、コミュニティ運営まで幅広くカバー。",
"useCase1Title": "🏪 店舗・イベント出店",
Expand Down
7 changes: 7 additions & 0 deletions tests/lib/i18nKeys.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -440,6 +440,13 @@ describe('i18n: Nav / Landing 名前空間 (AppShell + LP, ja/en parity)', () =>
'benefitsNoSignupFocal',
'benefitsNoSignupTitle',
'benefitsNoSignupBody',
// Benefits 「なぜ店舗決済に OpenPay が必要か」narrative (lead + 2 points)
'benefitsWhyTitle',
'benefitsWhyLead',
'benefitsWhyPoint1Title',
'benefitsWhyPoint1Body',
'benefitsWhyPoint2Title',
'benefitsWhyPoint2Body',
// Use cases section (5 用途 × {title, body} + meta)
'useCasesTitle',
'useCasesSubtitle',
Expand Down
Loading