i18n for fido2 and index

This commit is contained in:
qingjie.du
2025-12-25 21:59:44 +09:00
parent 253b37b0ed
commit 735d0084eb
3 changed files with 402 additions and 70 deletions

View File

@@ -230,6 +230,141 @@
lang_map.set("zh-CN", "FIDO2从 2024 年的 188.2 亿美元增至 2032 年的 603.4 亿美元");
lang_map.set("ja", "FIDO2: 2024年の188.2億米ドルから2032年には603.4億米ドルへ");
i18n_messages.set("top_msg", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Passkey cloud platform");
lang_map.set("ja", "パスキー・クラウド・プラットフォーム");
i18n_messages.set("hero_eyebrow", lang_map);
lang_map = new Map();
lang_map.set("en-US", "FIDO2 journeys people want to finish");
lang_map.set("ja", "最後までスムーズに完了できるFIDO2体験");
i18n_messages.set("hero_title", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Launch delightful, phishing-proof login experiences with a fully managed Passkey\nbackbone, open-source SDKs that drop into any stack in minutes.");
lang_map.set("ja", "フルマネージドなPasskey基盤と、どんなスタックにも数分で組み込める\nオープンソースSDKで、心地よくフィッシング耐性のあるログイン体験を提供します。");
i18n_messages.set("hero_lead", lang_map);
lang_map = new Map();
lang_map.set("en-US", "FIDO2 certified");
lang_map.set("ja", "FIDO2認証済み");
i18n_messages.set("hero_chip_1", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Open source server + SDK");
lang_map.set("ja", "オープンソースのサーバーSDK");
i18n_messages.set("hero_chip_2", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Device recovery flows");
lang_map.set("ja", "デバイス復旧フロー");
i18n_messages.set("hero_chip_3", lang_map);
lang_map = new Map();
lang_map.set("en-US", "FIDO certified");
lang_map.set("ja", "FIDO認証");
i18n_messages.set("stat_label_1", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Fast onboarding");
lang_map.set("ja", "迅速な導入");
i18n_messages.set("stat_label_2", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Platforms");
lang_map.set("ja", "対応プラットフォーム");
i18n_messages.set("stat_label_3", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Passkey Ready");
lang_map.set("ja", "Passkey対応");
i18n_messages.set("device_title", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Secure, phishing-resistant, privacy-first verification that works on every device.");
lang_map.set("ja", "あらゆるデバイスで動作する、フィッシング耐性・プライバシー重視の安全な検証。");
i18n_messages.set("device_desc", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Face / Touch");
lang_map.set("ja", "Face / Touch");
i18n_messages.set("device_chip_1", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Security keys");
lang_map.set("ja", "セキュリティキー");
i18n_messages.set("device_chip_2", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Recovery links");
lang_map.set("ja", "復旧リンク");
i18n_messages.set("device_chip_3", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Instant integration");
lang_map.set("ja", "すぐに導入");
i18n_messages.set("panel_title_1", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Add FIDO2 login with a few lines of JavaScript. No backend rewrites or new auth servers required.");
lang_map.set("ja", "数行のJavaScriptでFIDO2ログインを追加。バックエンド改修や新しい認証サーバーは不要です。");
i18n_messages.set("panel_desc_1", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Device lifecycle");
lang_map.set("ja", "デバイス管理");
i18n_messages.set("panel_title_2", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Allow users to add, revoke, or recover devices with guided flows powered by amiPro APIs.");
lang_map.set("ja", "amiPro APIで、デバイスの追加・無効化・復旧をガイド付きフローで提供できます。");
i18n_messages.set("panel_desc_2", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Operational visibility");
lang_map.set("ja", "運用の可視化");
i18n_messages.set("panel_title_3", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Get analytics on adoption, fraud attempts, and top devices directly from the management portal.");
lang_map.set("ja", "管理ポータルから、利用状況・不正兆候・主要デバイスを確認できます。");
i18n_messages.set("panel_desc_3", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Ready to launch your Passkey experience?");
lang_map.set("ja", "Passkey体験を始めませんか");
i18n_messages.set("cta_title", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Spin up the portal, invite your team, and go live in days.");
lang_map.set("ja", "ポータルを用意し、チームを招待して、数日で公開できます。");
i18n_messages.set("cta_desc", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Open portal");
lang_map.set("ja", "ポータルを開く");
i18n_messages.set("cta_btn_portal", lang_map);
lang_map = new Map();
lang_map.set("en-US", "See integration guide");
lang_map.set("ja", "導入ガイドを見る");
i18n_messages.set("cta_btn_integration", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Company");
lang_map.set("ja", "会社名");
i18n_messages.set("tbl_company", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Founded");
lang_map.set("ja", "設立");
i18n_messages.set("tbl_founded", lang_map);
lang_map = new Map();
lang_map.set("en-US", "Address");
lang_map.set("ja", "所在地");
i18n_messages.set("tbl_address", lang_map);
window.onload = async function() {
@@ -276,47 +411,47 @@
<!-- Content -->
<section class="hero reveal">
<div class="hero__text" data-animate>
<span class="hero__eyebrow">Passkey cloud platform</span>
<span class="hero__eyebrow" id="hero_eyebrow">Passkey cloud platform</span>
<div class="ticker" style="margin: 1rem 0;">
<span class="ticker__dot"></span>
<span id="top_msg">Top message</span>
</div>
<h1 class="hero__title">FIDO2 journeys people want to finish</h1>
<p class="hero__lead">
<h1 class="hero__title" id="hero_title">FIDO2 journeys people want to finish</h1>
<p class="hero__lead" id="hero_lead">
Launch delightful, phishing-proof login experiences with a fully managed Passkey
backbone, open-source core, and SDKs that drop into any stack in minutes.
backbone, open-source SDKs that drop into any stack in minutes.
</p>
<div class="hero__chips">
<span class="hero-chip">FIDO2 certified</span>
<span class="hero-chip">Open source server + SDK</span>
<span class="hero-chip">Device recovery flows</span>
<span class="hero-chip" id="hero_chip_1">FIDO2 certified</span>
<span class="hero-chip" id="hero_chip_2">Open source server + SDK</span>
<span class="hero-chip" id="hero_chip_3">Device recovery flows</span>
</div>
<div class="hero__stats" style="margin-top: 2rem;">
<div class="stat-card">
<strong>100%</strong>
<span>FIDO certified</span>
<span id="stat_label_1">FIDO certified</span>
</div>
<div class="stat-card">
<strong>60%</strong>
<span>Faster onboarding</span>
<strong>1 day</strong>
<span id="stat_label_2">Fast onboarding</span>
</div>
<div class="stat-card">
<strong>75%</strong>
<span>Support cost cut</span>
<strong>All</strong>
<span id="stat_label_3">Platforms</span>
</div>
</div>
</div>
<div class="hero__media" data-animate>
<div class="hero__orb"></div>
<div class="hero__device">
<h4>Passkey Ready</h4>
<p>
<h4 id="device_title">Passkey Ready</h4>
<p id="device_desc">
Secure, phishing-resistant, privacy-first verification that works on every device.
</p>
<div class="hero__chips" style="margin-top: 1.5rem;">
<span class="hero-chip">Face / Touch</span>
<span class="hero-chip">Security keys</span>
<span class="hero-chip">Recovery links</span>
<span class="hero-chip" id="device_chip_1">Face / Touch</span>
<span class="hero-chip" id="device_chip_2">Security keys</span>
<span class="hero-chip" id="device_chip_3">Recovery links</span>
</div>
<div style="margin-top: 1.5rem; display: flex; gap: 0.8rem; flex-wrap: wrap;">
<a href="https://portal.amipro.me" target="_blank" class="btn btn-primary" id="btn_portal" style="flex: 1 0 160px;">Portal</a>
@@ -402,20 +537,20 @@
<div class="info-panels" style="margin: 3rem 12px;">
<article class="info-panel" data-animate>
<strong>Instant integration</strong>
<p style="margin-top: 0.5rem;">
<strong id="panel_title_1">Instant integration</strong>
<p style="margin-top: 0.5rem;" id="panel_desc_1">
Add FIDO2 login with a few lines of JavaScript. No backend rewrites or new auth servers required.
</p>
</article>
<article class="info-panel" data-animate>
<strong>Device lifecycle</strong>
<p style="margin-top: 0.5rem;">
<strong id="panel_title_2">Device lifecycle</strong>
<p style="margin-top: 0.5rem;" id="panel_desc_2">
Allow users to add, revoke, or recover devices with guided flows powered by amiPro APIs.
</p>
</article>
<article class="info-panel" data-animate>
<strong>Operational visibility</strong>
<p style="margin-top: 0.5rem;">
<strong id="panel_title_3">Operational visibility</strong>
<p style="margin-top: 0.5rem;" id="panel_desc_3">
Get analytics on adoption, fraud attempts, and top devices directly from the management portal.
</p>
</article>
@@ -423,27 +558,27 @@
<div class="cta-banner" data-animate>
<div>
<h4>Ready to launch your Passkey experience?</h4>
<p style="margin: 0; color: var(--text-muted);">Spin up the portal, invite your team, and go live in days.</p>
<h4 id="cta_title">Ready to launch your Passkey experience?</h4>
<p style="margin: 0; color: var(--text-muted);" id="cta_desc">Spin up the portal, invite your team, and go live in days.</p>
</div>
<div style="display: flex; gap: 0.8rem;">
<a href="https://portal.amipro.me" target="_blank" class="btn btn-primary">Open portal</a>
<a href="integration.html" class="btn btn-outline-info">See integration guide</a>
<a href="https://portal.amipro.me" target="_blank" class="btn btn-primary" id="cta_btn_portal">Open portal</a>
<a href="integration.html" class="btn btn-outline-info" id="cta_btn_integration">See integration guide</a>
</div>
</div>
<table class="table-modern" style="margin-top: 3rem;">
<tbody>
<tr>
<th scope="row">Company</th>
<th scope="row" id="tbl_company">Company</th>
<td id="company_name">amiPro合同会社</td>
</tr>
<tr>
<th scope="row">Founded</th>
<th scope="row" id="tbl_founded">Founded</th>
<td id="company_open">2023年3月3日設立</td>
</tr>
<tr>
<th scope="row">Address</th>
<th scope="row" id="tbl_address">Address</th>
<td id="company_addr">〒150- 東京都渋谷区神宮前六丁目23番4号 桑野ビル2階</td>
</tr>
</tbody>