From f9df2bc6db7dd763fe274b64a54c9649a5c7832f Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Mon, 16 Feb 2026 08:59:58 +0000 Subject: [PATCH] Autosave: 20260216-085958 --- assets/css/index.css | 40 +++ assets/css/style.css | 120 ++++++- assets/css/terminal.css | 282 ++++++++++++--- assets/pasted-20260216-073240-3f7af956.png | Bin 0 -> 37573 bytes assets/pasted-20260216-074521-ef811661.png | Bin 0 -> 10239 bytes assets/pasted-20260216-075108-e35a11f4.png | Bin 0 -> 10249 bytes auth/login.php | 8 +- auth/register.php | 4 +- includes/footer.php | 65 +++- includes/header.php | 16 +- includes/lang.php | 381 ++++++++++++--------- includes/terminal_layout.php | 297 +++++++++++----- index.php | 12 +- kyc.php | 12 +- market.php | 10 +- mining.php | 34 +- profile.php | 198 ++++++++--- recharge.php | 18 +- security.php | 27 +- withdraw.php | 30 +- 20 files changed, 1132 insertions(+), 422 deletions(-) create mode 100644 assets/pasted-20260216-073240-3f7af956.png create mode 100644 assets/pasted-20260216-074521-ef811661.png create mode 100644 assets/pasted-20260216-075108-e35a11f4.png diff --git a/assets/css/index.css b/assets/css/index.css index 77b6fa8..cea7b03 100644 --- a/assets/css/index.css +++ b/assets/css/index.css @@ -130,3 +130,43 @@ body { 70% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.7; } } + +@media (max-width: 768px) { + .carousel-content { + height: 400px !important; + padding: 20px !important; + } + .display-3 { + font-size: 1.8rem !important; + } + .lead { + font-size: 1rem !important; + } + .btn-lg { + padding: 10px 20px !important; + font-size: 14px !important; + } + .market-section h2 { + font-size: 1.5rem; + } + .col-md-3 { + width: 50% !important; + flex: 0 0 auto; + } + .coin-card .card-body { + padding: 15px !important; + } + .price-display { + font-size: 1.2rem !important; + } + .icon-box { + width: 50px; + height: 50px; + } + .icon-box i { + font-size: 1.5rem !important; + } + .why-us h2 { + font-size: 1.8rem !important; + } +} diff --git a/assets/css/style.css b/assets/css/style.css index 9306bdf..64a5780 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -3,22 +3,78 @@ --bg: #0b0e11; --surface: #1e2329; --text: #eaecef; - --text-muted: #9ba3af; /* Improved contrast from #888888 */ + --text-muted: #9ba3af; --border: #2b3139; --success: #26a69a; --danger: #ef5350; + --warning: #f0b90b; } - body { background-color: var(--bg); color: var(--text); - font-family: 'Inter', system-ui, -apple-system, sans-serif; + font-family: 'Noto Sans SC', 'Inter', system-ui, -apple-system, sans-serif; margin: 0; padding: 0; line-height: 1.5; } +/* Background Utilities */ +.bg-surface { background-color: var(--surface) !important; } +.bg-black { background-color: #000000 !important; } +.bg-dark { background-color: var(--bg) !important; } + +/* Border Utilities */ +.border-secondary { border-color: var(--border) !important; } + +/* Text Utilities */ +.text-white-50 { color: rgba(255, 255, 255, 0.5) !important; } +.text-primary { color: var(--primary) !important; } +.text-warning { color: var(--warning) !important; } + +/* Card Overrides */ +.card { + background-color: var(--surface); + border-color: var(--border); +} + +.card-header { + background-color: rgba(0, 0, 0, 0.2); + border-bottom: 1px solid var(--border); +} + +/* List Group Overrides */ +.list-group-item { + background-color: transparent; + border-color: var(--border); + color: var(--text); +} + +.list-group-item-action:hover { + background-color: rgba(255, 255, 255, 0.05); + color: var(--primary); +} + +/* Form Overrides */ +.form-control, .form-select { + background-color: #000000; + border-color: var(--border); + color: #ffffff; +} + +.form-control:focus, .form-select:focus { + background-color: #121212; + border-color: var(--primary); + color: #ffffff; + box-shadow: 0 0 0 0.25rem rgba(0, 98, 255, 0.25); +} + +/* Table Overrides */ +.table-dark { + --bs-table-bg: var(--surface); + --bs-table-border-color: var(--border); +} + * { box-sizing: border-box; } @@ -65,12 +121,54 @@ a:hover { padding: 80px 0; } -/* Auth related */ -.auth-container { - max-width: 440px; - margin: 80px auto; - padding: 40px; - background: var(--surface); - border: 1px solid var(--border); - border-radius: 8px; +/* Mobile Enhancements */ +@media (max-width: 768px) { + .container { + padding-left: 15px; + padding-right: 15px; + } + .display-3 { + font-size: 2.5rem; + } + .display-4 { + font-size: 2rem; + } + .card { + border-radius: 12px !important; + } + .btn { + padding: 12px 20px; + border-radius: 10px; + } + header { + height: 60px; + padding: 0 15px; + } + .logo-text { + font-size: 20px; + } +} + +/* Custom Scrollbar */ +::-webkit-scrollbar { + width: 6px; + height: 6px; +} +::-webkit-scrollbar-track { + background: var(--bg); +} +::-webkit-scrollbar-thumb { + background: var(--border); + border-radius: 10px; +} +::-webkit-scrollbar-thumb:hover { + background: var(--text-muted); +} + +.shadow-primary { + box-shadow: 0 8px 20px rgba(0, 98, 255, 0.3) !important; +} + +.transition-all { + transition: all 0.3s ease; } diff --git a/assets/css/terminal.css b/assets/css/terminal.css index f7ce835..f065c71 100644 --- a/assets/css/terminal.css +++ b/assets/css/terminal.css @@ -12,13 +12,44 @@ --orderbook-width: 300px; } +/* Global Terminal Layout */ .terminal-container { display: flex; flex-direction: column; - height: 100vh; + min-height: calc(100vh - 70px); + height: auto; background: var(--term-bg); color: var(--term-text); - overflow: hidden; +} + +.terminal-main { + display: flex; + flex: 1; + min-height: calc(100vh - 70px); +} + +.terminal-sidebar { + width: var(--sidebar-width); + border-right: 1px solid var(--term-border); + display: flex; + flex-direction: column; + background: var(--term-surface); + height: 100%; +} + +.terminal-content { + flex: 1; + display: flex; + flex-direction: column; + border-right: 1px solid var(--term-border); + background: var(--term-bg); +} + +.terminal-right-sidebar { + width: var(--orderbook-width); + border-left: 1px solid var(--term-border); + background: var(--term-surface); + height: 100%; } .sidebar-tabs { @@ -80,29 +111,45 @@ } .content-header { - height: 50px; + height: 65px; border-bottom: 1px solid var(--term-border); display: flex; align-items: center; - padding: 0 15px; - gap: 20px; + padding: 0 20px; + gap: 30px; background: var(--term-surface); } -.terminal-sidebar { - width: var(--sidebar-width); - border-right: 1px solid var(--term-border); - display: flex; - flex-direction: column; - background: var(--term-surface); +.kline-container { + flex: 1; + min-height: 500px; /* Increased height for better preview */ + background: #000; + position: relative; + border-bottom: 1px solid var(--term-border); + padding: 5px 0; /* Added a bit of padding to avoid edges */ } -.terminal-right-sidebar { - width: var(--orderbook-width); - border-left: 1px solid var(--term-border); +.trading-panels { + padding: 15px 20px; background: var(--term-surface); + border-bottom: 1px solid var(--term-border); } +.binary-order-panel .cycle-grid { + display: grid; + grid-template-columns: repeat(5, 1fr); + gap: 10px; + margin-bottom: 15px; +} + +.cycle-btn { + min-height: 55px; + padding: 8px 4px; + /* ... existing styles ... */ +} + + + .sidebar-search input { background: #0b0e11; @@ -255,20 +302,169 @@ border-bottom: 2px solid var(--term-primary); } -.terminal-main { - display: flex; - flex: 1; - overflow: hidden; +/* Mobile Responsive Adjustments */ +@media (max-width: 768px) { + .terminal-main { + flex-direction: column; + height: auto; + overflow-y: auto; + padding-bottom: 120px; /* Ensure records are not covered by bottom nav */ + } + + .terminal-sidebar { + position: fixed; + left: -100%; + top: 0; + width: 80%; + height: 100%; + z-index: 1050; + transition: left 0.3s ease; + box-shadow: 10px 0 20px rgba(0,0,0,0.5); + } + + .terminal-sidebar.active { + left: 0; + } + + .terminal-sidebar-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0,0,0,0.7); + z-index: 1040; + display: none; + } + + .terminal-sidebar-overlay.active { + display: block; + } + + .terminal-right-sidebar { + display: none; /* Hide order book on mobile by default to save space */ + } + + .terminal-content { + width: 100%; + border-right: none; + } + + .content-header { + padding: 10px; + gap: 10px; + height: auto; + flex-wrap: wrap; + } + + .header-pair { + width: 100%; + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 5px; + } + + .header-stat { + font-size: 11px; + } + + .kline-container { + min-height: 350px; + height: 350px; + } + + .trading-panels { + padding: 10px; + } + + .cycle-grid { + grid-template-columns: repeat(3, 1fr); + } + + .order-history { + height: auto; + min-height: 400px; + } + + .sidebar-tabs { + display: none; /* We will use a different top switcher on mobile */ + } + + /* Mobile Top Switcher */ + .mobile-type-switcher { + display: flex; + background: var(--term-surface); + padding: 5px; + gap: 5px; + border-bottom: 1px solid var(--term-border); + } + + .mobile-type-switcher a { + flex: 1; + text-align: center; + padding: 8px 0; + font-size: 12px; + color: var(--term-muted); + text-decoration: none; + border-radius: 4px; + background: rgba(255,255,255,0.03); + } + + .mobile-type-switcher a.active { + background: var(--term-primary); + color: #fff; + } + + .mobile-pair-toggle { + display: flex; + align-items: center; + gap: 10px; + cursor: pointer; + } + + /* Make trading panels more mobile-friendly */ + .order-form-container .col-6 { + width: 100%; /* Stack Buy/Sell on very small screens or keep as is? */ + } + + @media (max-width: 576px) { + .order-form-container .col-6 { + width: 100%; + } + .binary-order-panel .col-6 { + width: 100%; + } + .binary-order-panel .btn-buy-sell { + margin-bottom: 10px; + } + } + + .btn-buy-sell { + font-size: 18px !important; + padding: 15px !important; + text-transform: uppercase; + letter-spacing: 1px; + } + + .cycle-grid { + gap: 5px; + } + + .cycle-btn { + padding: 8px 2px; + } } -.terminal-sidebar { - width: var(--sidebar-width); - border-right: 1px solid var(--term-border); - display: flex; - flex-direction: column; - background: var(--term-surface); +@media (min-width: 769px) { + .mobile-type-switcher { + display: none; + } } + + + .sidebar-search { padding: 12px; border-bottom: 1px solid var(--term-border); @@ -328,12 +524,7 @@ font-weight: 500; } -.terminal-content { - flex: 1; - display: flex; - flex-direction: column; - border-right: 1px solid var(--term-border); -} + .content-header { height: 60px; @@ -346,22 +537,29 @@ .kline-container { flex: 1; - min-height: 400px; + min-height: 450px; background: #000; + position: relative; + border-bottom: 1px solid var(--term-border); } .trading-panels { - padding: 20px; + padding: 15px 20px; background: var(--term-surface); } -.order-history { - flex: 1; - overflow-y: auto; - scrollbar-width: none; +.terminal-content { + display: flex; + flex-direction: column; + height: 100%; + overflow: hidden; } -.order-history::-webkit-scrollbar { - display: none; + +.order-history { + height: 350px; + border-top: 1px solid var(--term-border); + background: var(--term-surface); + overflow-y: auto; } /* Binary Order Panel Improvements */ @@ -389,6 +587,8 @@ align-items: center; justify-content: center; gap: 2px; + min-height: 55px; + cursor: pointer; } .cycle-btn:hover { @@ -460,7 +660,7 @@ } .order-history { - height: 300px; /* Fixed height for scrollable area */ + height: 450px; /* Increased height as requested */ border-top: 1px solid var(--term-border); background: var(--term-surface); } @@ -573,7 +773,5 @@ color: #5e6673; } -.terminal-main { - height: calc(100vh - var(--header-height)); -} + diff --git a/assets/pasted-20260216-073240-3f7af956.png b/assets/pasted-20260216-073240-3f7af956.png new file mode 100644 index 0000000000000000000000000000000000000000..6e0a4eeb1050a83d7cbce02aa4502527e70170b1 GIT binary patch literal 37573 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 T&UpL*PY@(TWuE5=>-qj4)FGGt literal 0 HcmV?d00001 diff --git a/assets/pasted-20260216-074521-ef811661.png b/assets/pasted-20260216-074521-ef811661.png new file mode 100644 index 0000000000000000000000000000000000000000..90a3b0b553067ee512cd08e3e36c78163994fc68 GIT binary patch literal 10239 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 literal 0 HcmV?d00001 diff --git a/assets/pasted-20260216-075108-e35a11f4.png b/assets/pasted-20260216-075108-e35a11f4.png new file mode 100644 index 0000000000000000000000000000000000000000..5e1cd2d0ff0f936916c40bff031fbf78d5377ca3 GIT binary patch literal 10249 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 literal 0 HcmV?d00001 diff --git a/auth/login.php b/auth/login.php index 7470042..573fa36 100644 --- a/auth/login.php +++ b/auth/login.php @@ -48,7 +48,7 @@ include __DIR__ . '/../includes/header.php'; BYRO

-

Welcome back to Byro Exchange

+

@@ -59,14 +59,14 @@ include __DIR__ . '/../includes/header.php';
- +
@@ -74,7 +74,7 @@ include __DIR__ . '/../includes/header.php';
- 还没有账号? +
diff --git a/auth/register.php b/auth/register.php index c2957dc..e9b5bf6 100644 --- a/auth/register.php +++ b/auth/register.php @@ -81,7 +81,7 @@ include __DIR__ . '/../includes/header.php'; BYRO

-

Join the most secure digital asset exchange

+

@@ -126,7 +126,7 @@ include __DIR__ . '/../includes/header.php';
- 已经有账号? +
diff --git a/includes/footer.php b/includes/footer.php index 4ed7499..e9df818 100644 --- a/includes/footer.php +++ b/includes/footer.php @@ -69,6 +69,65 @@ + + + + +
-
Welcome to Byro Support! How can we help?
+
- +
diff --git a/includes/header.php b/includes/header.php index 42b1ec5..3704594 100644 --- a/includes/header.php +++ b/includes/header.php @@ -84,6 +84,20 @@ function getSetting($key, $default = null) { gap: 24px; flex: 1; } + @media (max-width: 992px) { + nav { + display: none; + } + .logo-container { + margin-right: auto; + } + .profile-trigger span { + display: none; + } + .profile-trigger { + padding: 8px; + } + } nav a { color: var(--text); text-decoration: none; @@ -196,7 +210,7 @@ function getSetting($key, $default = null) { position: absolute; top: calc(100% + 10px); right: 0; - background: #1e2329; + background: var(--surface); border: 1px solid var(--border); border-radius: 12px; width: 260px; diff --git a/includes/lang.php b/includes/lang.php index ca9b2b1..e8758c3 100644 --- a/includes/lang.php +++ b/includes/lang.php @@ -56,14 +56,6 @@ $translations = [ 'change_24h' => '24h 涨跌', 'trade' => '交易', 'why_choose_us' => '为什么选择我们', - 'security_title' => '顶尖风控', - 'security_desc' => '多重签名冷钱包存储,确保资产绝对安全。', - 'liquidity_title' => '极速成交', - 'liquidity_desc' => '毫秒级撮合系统,高达 10w TPS 处理能力。', - 'support_title' => '24/7 全球支持', - 'support_desc' => '专业团队即时响应,为您解决任何交易问题。', - 'diversity_title' => '丰富产品线', - 'diversity_desc' => '涵盖现货、合约、杠杆等多元化金融产品。', 'copyright' => '© 2023-2026 Byro. 版权所有。', 'status_normal' => '系统状态:正常', 'advantage_1_title' => '安全合规', @@ -74,10 +66,7 @@ $translations = [ 'advantage_3_desc' => '全天候多语言在线客服,随时解答您的任何疑问。', 'advantage_4_title' => '多样化产品', 'advantage_4_desc' => '涵盖现货、合约、秒合约、挖矿等多种投资工具。', - 'about_content' => 'Byro 是一家全球领先的数字货币交易平台,成立于 2023 年,致力于为全球用户提供安全、专业、透明的数字资产金融服务。我们拥有顶尖的技术团队和风控体系,为超过 100 个国家和地区的数百万用户提供服务。', - 'news_content' => 'Byro 每日更新全球加密市场动态,包括最新的上币信息、行业动态、深度分析报告,助您掌握财富密码。', - 'fees_content' => 'Byro 致力于提供行业极具竞争力的费率标准。现货交易手续费低至 0.1%,根据您的交易量等级,还可以享受更大幅度的费率折扣。', - 'app_desc' => '随时随地,尽在掌握。下载 Byro 移动端,体验专业级交易。', + 'about_content' => 'Byro 是一家全球领先的数字货币交易平台,成立于 2023 年,致力于为全球用户提供安全、专业、透明 of 数字资产金融服务。', 'real_name' => '实名认证', 'verified' => '已认证', 'unverified' => '未认证', @@ -117,88 +106,134 @@ $translations = [ 'vol_24h' => '24h 成交额', 'cycle_settlement' => '周期/结算', 'purchase_amount' => '买入量', - 'available_balance' => '可以金额', + 'available_balance' => '可用', + 'frozen' => '冻结', + 'converted_to' => '折合', + 'asset_records' => '资产记录', + 'operation' => '操作', + 'status' => '状态', + 'time' => '时间', + 'type' => '类型', + 'flash_exchange' => '闪兑', + 'trade_profit' => '交易盈亏', + 'completed' => '已完成', + 'pending' => '处理中', + 'details' => '详情', + 'search' => '搜索', + 'limit' => '限价', 'expected_profit' => '预期收益', 'buy_up' => '买涨', 'buy_down' => '买跌', 'profit' => '收益', - 'enter_amount' => '请输入有效金额', - 'insufficient_balance' => '余额不足', - 'order_in_progress' => '订单进行中', - 'current_price' => '现价', + 'order_in_progress' => '订单执行中', + 'current_price' => '当前价格', 'cycle' => '周期', 'direction' => '方向', 'quantity' => '数量', - 'opening_price' => '开仓价', - 'final_price_settlement' => '最终价格以系统结算为准', + 'opening_price' => '开仓价格', + 'final_price_settlement' => '待结算完成后显示最终盈亏', 'open_orders' => '当前委托', - 'settlement_history' => '历史结算', + 'settlement_history' => '结算历史', 'no_records_found' => '暂无记录', - 'executing' => '正在执行', + 'executing' => '执行中', 'loss' => '亏损', - 'amount_too_low' => '买入金额低于最小限制', - 'amount_too_high' => '买入金额超过最大限制', - 'fiat_recharge' => '法币充值', - 'crypto_recharge' => '数字货币充值', - 'select_currency' => '选择币种', - 'fiat_amount' => '法币金额', - 'est_usdt' => '预计到账 (USDT)', - 'confirm_order' => '确认订单', - 'recharge_request_sent' => '充值请求已提交给客服', + 'enter_amount' => '请输入有效金额', + 'amount_too_low' => '金额太低', + 'amount_too_high' => '金额太高', + 'insufficient_balance' => '余额不足', + 'trade_spot' => '现货交易', + 'trade_contract' => '合约交易', + 'trade_binary' => '秒合约', + 'asset_title' => '总资产', + 'online_support' => '在线客服', + 'type_message' => '输入消息...', + 'welcome_support' => '欢迎来到 Byro 客服!请问有什么可以帮您?', + 'market_name' => '市场', + 'trading' => '交易', + 'principal_protected' => '本金保障', + 'daily_payouts' => '每日派息', + 'amount_to_invest' => '投入金额', + 'hot' => '热门', 'back' => '返回', - 'network' => '网络', - 'address' => '充值地址', - 'copy' => '复制', - 'withdraw_amount' => '提现金额', - 'withdraw_address' => '提现地址', - 'receive' => '预计到账', - 'withdraw_request_sent' => '提现申请已提交,请等待审核', - 'all' => '全部', - 'crypto_withdraw' => 'USDT提现', + 'crypto_withdraw' => '加密货币提现', 'fiat_withdraw' => '法币提现', + 'network' => '网络', + 'withdraw_address' => '提现地址', + 'withdraw_amount' => '提现金额', 'withdraw_password' => '提现密码', 'to_receive' => '预计到账', + 'confirm_order' => '确认订单', + 'select_currency' => '选择币种', 'est_receive_fiat' => '预计收到法币', - 'recharge_steps' => '充值步骤', 'withdraw_steps' => '提现步骤', 'security_tips' => '安全提示', - 'secure' => '安全', - 'fast' => '极速', - 'support_247' => '24/7支持', - 'i_have_paid' => '我已完成支付', - 'crypto_recharge_warning' => '请务必仅向此地址发送 USDT。发送其他资产可能会导致永久丢失。', - 'kyc' => '实名认证', + 'secure' => '安全可靠', + 'fast' => '极速到账', + 'support_247' => '24/7 客服支持', + 'fiat_recharge' => '法币充值', + 'crypto_recharge' => '加密货币充值', + 'fiat_amount' => '充值金额', + 'est_usdt' => '预计到账 USDT', + 'address' => '充值地址', + 'crypto_recharge_warning' => '请务必仅向此地址充值 USDT。发送其他资产可能导致永久丢失。', + 'recharge_steps' => '充值步骤', + 'i_have_paid' => '我已支付', + 'min_withdraw_hint' => '最小提现金额为 10 USDT', + 'enter_address' => '请输入提现地址', + 'enter_password' => '请输入提现密码', + 'request_sent' => '请求已发送,请在客服对话框中继续交流。', + 'cs_connect_fail' => '无法连接客服系统,请刷新页面重试。', + 'copy_success' => '已复制到剪贴板', + 'vip_level' => '会员等级', + 'kyc' => '身份认证', 'security' => '安全设置', - 'vip_level' => 'VIP等级', - 'unverified' => '未认证', - 'pending' => '审核中', - 'verified' => '已认证', - 'rejected' => '已驳回', - 'full_name' => '真实姓名', - 'id_number' => '身份证号', - 'id_front' => '身份证正面', - 'id_back' => '身份证反面', - 'id_handheld' => '手持身份证', - 'upload' => '点击上传', - 'submit' => '提交', + 'amount' => '金额', 'login_password' => '登录密码', 'trade_password' => '交易密码', - 'change_password' => '修改密码', - 'set_password' => '设置密码', - 'kyc_instructions' => '请确保上传的照片清晰可见,且与填写的身份证号一致。', - 'security_instructions' => '请定期修改您的密码,并确保交易密码与登录密码不同。', - 'old_password' => '原密码', + 'old_password' => '旧密码', 'new_password' => '新密码', 'confirm_new_password' => '确认新密码', - 'kyc_steps' => '实名认证步骤', - 'kyc_step1' => '填写您的真实姓名和身份证号码。', - 'kyc_step2' => '上传您的身份证正反面照片。', - 'kyc_step3' => '上传您手持身份证的照片,并确保面部清晰。', - 'security_steps' => '安全设置步骤', - 'security_step1' => '设置强密码,包含字母、数字和符号。', - 'security_step2' => '交易密码用于提现和重要操作,请务必妥善保存。', - 'frozen' => '冻结', - 'converted_to' => '折合', + 'change_password' => '修改密码', + 'set_password' => '设置密码', + 'security_steps' => '安全步骤', + 'security_step1' => '为了您的账户安全,建议定期更换登录密码。', + 'security_step2' => '交易密码是用于提现、交易等重要操作的二次验证。', + 'security_instructions' => '请妥善保管您的密码,不要泄露给任何人。平台客服不会以任何理由向您索要密码。', + 'full_name' => '真实姓名', + 'id_number' => '证件号码', + 'id_front' => '证件正面', + 'id_back' => '证件反面', + 'id_handheld' => '手持证件', + 'upload' => '点击上传', + 'submit' => '提交', + 'kyc_steps' => '认证步骤', + 'kyc_step1' => '请填写与证件一致的真实姓名和证件号码。', + 'kyc_step2' => '请上传清晰、完整的证件照片(正面、反面)。', + 'kyc_step3' => '手持证件照片需清晰展示您的面部和证件内容。', + 'kyc_instructions' => '实名认证通常在 24 小时内完成审核。认证通过后,您将获得更高的提现额度和更多的交易权限。', + 'welcome_back' => '欢迎回到 Byro 交易所', + 'forgot_password' => '忘记密码?', + 'no_account' => '还没有账号?', + 'join_secure' => '加入全球最安全的数字资产交易所', + 'have_account' => '已经有账号?', + 'old_pwd_incorrect' => '旧密码错误', + 'pwd_mismatch' => '两次输入的密码不一致', + 'pwd_too_short' => '密码长度至少为 6 位', + 'pwd_changed_success' => '密码修改成功', + 'trade_pwd_updated' => '交易密码已更新', + 'fill_all_fields' => '请填写所有字段', + 'kyc_submitted' => '认证申请已提交,请耐心等待审核', + 'kyc_pending_desc' => '您的申请正在审核中,请耐心等待。', + 'enter_full_name' => '请输入真实姓名', + 'enter_id_number' => '请输入证件号码', + 'prof_terminal' => '专业交易终端', + 'prof_terminal_desc' => '高性能撮合引擎,深度流动性,为您提供极致的交易体验。', + 'inst_security' => '机构级安全防护', + 'inst_security_desc' => '多重签名和冷存储,确保您的资产安全无忧。', + 'trading_pair' => '交易对', + 'total' => '成交额', + 'high' => '最高', + 'low' => '最低', ], 'en' => [ 'home' => 'Home', @@ -239,8 +274,8 @@ $translations = [ 'agree_terms' => 'I have read and agree to the Terms of Service and Privacy Policy', 'send_code' => 'Send Code', 'view_more' => 'View More', - 'hero_title' => 'The World\'s Leading Digital Asset Exchange', - 'hero_subtitle' => 'Start your cryptocurrency journey on Byro, secure, stable, and reliable.', + 'hero_title' => 'World Leading Digital Asset Platform', + 'hero_subtitle' => 'Start your crypto journey on Byro, secure, stable, reliable.', 'get_started' => 'Get Started', 'popular_markets' => 'Popular Markets', 'coin' => 'Coin', @@ -248,28 +283,17 @@ $translations = [ 'change_24h' => '24h Change', 'trade' => 'Trade', 'why_choose_us' => 'Why Choose Us', - 'security_title' => 'Advanced Security', - 'security_desc' => 'Multi-sig cold storage for ultimate asset safety.', - 'liquidity_title' => 'High Performance', - 'liquidity_desc' => 'Millisecond matching with up to 100k TPS.', - 'support_title' => '24/7 Global Support', - 'support_desc' => 'Professional response for any trading issues.', - 'diversity_title' => 'Diverse Products', - 'diversity_desc' => 'Spot, Futures, and more financial instruments.', 'copyright' => '© 2023-2026 Byro. All rights reserved.', 'status_normal' => 'System Status: Normal', 'advantage_1_title' => 'Security & Compliance', - 'advantage_1_desc' => 'Global compliant operations with cold/hot wallet isolation to ensure asset security.', - 'advantage_2_title' => 'Strong Liquidity', - 'advantage_2_desc' => 'Millisecond matching engine with deep liquidity for an ultimate trading experience.', + 'advantage_1_desc' => 'Global compliant operations with cold/hot wallet isolation.', + 'advantage_2_title' => 'High Liquidity', + 'advantage_2_desc' => 'Millisecond matching engine with deep liquidity.', 'advantage_3_title' => '7/24 Support', - 'advantage_3_desc' => 'All-day multi-language online customer service to answer your questions anytime.', + 'advantage_3_desc' => 'Multi-language customer service always online.', 'advantage_4_title' => 'Diverse Products', - 'advantage_4_desc' => 'Covering spot, contract, binary, mining and various investment tools.', - 'about_content' => 'Byro is a world-leading digital currency exchange established in 2023, committed to providing secure, professional, and transparent digital asset financial services to users globally. We have a top-tier technical team and risk control system, serving millions of users across more than 100 countries and regions.', - 'news_content' => 'Byro updates daily global crypto market dynamics, including the latest listing info, industry trends, and in-depth analysis reports to help you master wealth opportunities.', - 'fees_content' => 'Byro is committed to providing industry-competitive fee standards. Spot trading fees as low as 0.1%, with deeper discounts based on your trading volume tier.', - 'app_desc' => 'Anytime, anywhere, at your fingertips. Download Byro mobile app for professional trading experience.', + 'advantage_4_desc' => 'Covering Spot, Contract, Binary, and Mining.', + 'about_content' => 'Byro is a world-leading digital currency exchange established in 2023.', 'real_name' => 'Real-name', 'verified' => 'Verified', 'unverified' => 'Unverified', @@ -278,7 +302,7 @@ $translations = [ 'orders' => 'Orders', 'account' => 'Account / Email', 'market_view' => 'Market View', - 'sec_contract' => 'Second Contract', + 'sec_contract' => 'Binary', 'secure_acc' => 'Secure My Account', 'from' => 'From', 'to' => 'To', @@ -286,111 +310,157 @@ $translations = [ 'swap_now' => 'Swap Now', 'rate' => 'Rate', 'price_impact' => 'Price Impact', - 'slippage' => 'Slippage Tolerance', + 'slippage' => 'Slippage', 'mining_title' => 'Mining Pool', - 'mining_desc' => 'Professional cloud mining and staking platform. Join thousands of users earning passive income with Byro\'s high-efficiency mining pools.', + 'mining_desc' => 'Professional cloud mining and staking platform. Join thousands of users.', 'est_apy' => 'Est. APY', 'min_deposit' => 'Min. Deposit', 'lock_period' => 'Lock Period', 'start_mining' => 'Start Mining', 'why_mining' => 'Why choose Byro Mining?', 'adv_hardware' => 'Advanced Hardware', - 'adv_hardware_desc' => 'We use the latest ASIC and GPU miners to ensure maximum profitability and stability.', + 'adv_hardware_desc' => 'We use latest ASIC and GPU miners for max profit.', 'auto_compound' => 'Auto Compounding', - 'auto_compound_desc' => 'Reinvest your daily rewards automatically to maximize your total yield over time.', + 'auto_compound_desc' => 'Reinvest daily rewards automatically.', 'real_time_monitor' => 'Real-time Monitoring', - 'real_time_monitor_desc' => 'Track your hash rate and earnings in real-time through our intuitive dashboard.', + 'real_time_monitor_desc' => 'Track your hash rate and earnings in real-time.', 'calc_profit' => 'Calculate Your Profit', - 'calc_desc' => 'Enter your investment amount to estimate your daily earnings.', + 'calc_desc' => 'Enter investment amount to estimate daily earnings.', 'daily_profit' => 'Daily Profit', 'monthly_profit' => 'Monthly Profit', - 'try_calc' => 'Try Mining Calculator', + 'try_calc' => 'Try Calculator', 'asset' => 'Asset', 'vol_24h' => '24h Volume', 'cycle_settlement' => 'Cycle / Settlement', 'purchase_amount' => 'Purchase Amount', - 'available_balance' => 'Available Balance', - 'expected_profit' => 'Expected Profit', + 'available_balance' => 'Available', + 'frozen' => 'Frozen', + 'converted_to' => 'Equivalent', + 'asset_records' => 'Asset Records', + 'operation' => 'Action', + 'status' => 'Status', + 'time' => 'Time', + 'type' => 'Type', + 'flash_exchange' => 'Swap', + 'trade_profit' => 'Trade P/L', + 'completed' => 'Completed', + 'pending' => 'Pending', + 'details' => 'Details', + 'search' => 'Search', + 'limit' => 'Limit', + 'expected_profit' => 'Exp. Profit', 'buy_up' => 'Buy Up', 'buy_down' => 'Buy Down', 'profit' => 'Profit', - 'enter_amount' => 'Please enter a valid amount', - 'insufficient_balance' => 'Insufficient balance', - 'order_in_progress' => 'Order in Progress', + 'order_in_progress' => 'Order Executing', 'current_price' => 'Current Price', 'cycle' => 'Cycle', 'direction' => 'Direction', 'quantity' => 'Quantity', - 'opening_price' => 'Opening Price', - 'final_price_settlement' => 'Final price is subject to system settlement', + 'opening_price' => 'Open Price', + 'final_price_settlement' => 'Final P/L shown after settlement', 'open_orders' => 'Open Orders', - 'settlement_history' => 'Settlement History', - 'no_records_found' => 'No records found', + 'settlement_history' => 'History', + 'no_records_found' => 'No records', 'executing' => 'Executing', 'loss' => 'Loss', + 'enter_amount' => 'Please enter valid amount', 'amount_too_low' => 'Amount too low', 'amount_too_high' => 'Amount too high', - 'fiat_recharge' => 'Fiat Deposit', - 'crypto_recharge' => 'Crypto Deposit', - 'select_currency' => 'Select Currency', - 'fiat_amount' => 'Fiat Amount', - 'est_usdt' => 'Estimated USDT', - 'confirm_order' => 'Confirm Order', - 'recharge_request_sent' => 'Deposit request sent to support', + 'insufficient_balance' => 'Insufficient balance', + 'trade_spot' => 'Spot', + 'trade_contract' => 'Contract', + 'trade_binary' => 'Binary', + 'asset_title' => 'Total Assets', + 'online_support' => 'Support', + 'type_message' => 'Type message...', + 'welcome_support' => 'Welcome to Byro Support! How can we help?', + 'market_name' => 'Market', + 'trading' => 'Trading', + 'principal_protected' => 'Principal Protected', + 'daily_payouts' => 'Daily Payouts', + 'amount_to_invest' => 'Amount to Invest', + 'hot' => 'HOT', 'back' => 'Back', - 'network' => 'Network', - 'address' => 'Deposit Address', - 'copy' => 'Copy', - 'withdraw_amount' => 'Withdraw Amount', - 'withdraw_address' => 'Withdraw Address', - 'receive' => 'Receive', - 'withdraw_request_sent' => 'Withdrawal request submitted for review', - 'all' => 'All', - 'crypto_withdraw' => 'USDT Withdrawal', + 'crypto_withdraw' => 'Crypto Withdrawal', 'fiat_withdraw' => 'Fiat Withdrawal', + 'network' => 'Network', + 'withdraw_address' => 'Withdrawal Address', + 'withdraw_amount' => 'Withdrawal Amount', 'withdraw_password' => 'Withdrawal Password', 'to_receive' => 'To Receive', - 'est_receive_fiat' => 'Est. Fiat Receive', - 'recharge_steps' => 'Recharge Steps', + 'confirm_order' => 'Confirm Order', + 'select_currency' => 'Select Currency', + 'est_receive_fiat' => 'Est. Receive', 'withdraw_steps' => 'Withdrawal Steps', 'security_tips' => 'Security Tips', 'secure' => 'Secure', 'fast' => 'Fast', 'support_247' => '24/7 Support', - 'i_have_paid' => 'I have paid', - 'crypto_recharge_warning' => 'Please only send USDT to this address. Sending other assets may result in permanent loss.', - 'kyc' => 'Identity Verification', - 'security' => 'Security Settings', + 'fiat_recharge' => 'Fiat Recharge', + 'crypto_recharge' => 'Crypto Recharge', + 'fiat_amount' => 'Recharge Amount', + 'est_usdt' => 'Est. USDT', + 'address' => 'Deposit Address', + 'crypto_recharge_warning' => 'Please only send USDT to this address.', + 'recharge_steps' => 'Recharge Steps', + 'i_have_paid' => 'I Have Paid', + 'min_withdraw_hint' => 'Min. withdrawal 10 USDT', + 'enter_address' => 'Please enter address', + 'enter_password' => 'Please enter password', + 'request_sent' => 'Request sent, please check chat.', + 'cs_connect_fail' => 'Connection failed, please refresh.', + 'copy_success' => 'Copied to clipboard', 'vip_level' => 'VIP Level', - 'unverified' => 'Unverified', - 'pending' => 'Pending', - 'verified' => 'Verified', - 'rejected' => 'Rejected', + 'kyc' => 'Identity', + 'security' => 'Security', + 'amount' => 'Amount', + 'login_password' => 'Login Password', + 'trade_password' => 'Trade Password', + 'old_password' => 'Old Password', + 'new_password' => 'New Password', + 'confirm_new_password' => 'Confirm Password', + 'change_password' => 'Change Password', + 'set_password' => 'Set Password', + 'security_steps' => 'Security Steps', + 'security_step1' => 'Change password regularly for security.', + 'security_step2' => 'Trade password is for important actions.', + 'security_instructions' => 'Keep your password safe and private.', 'full_name' => 'Full Name', 'id_number' => 'ID Number', 'id_front' => 'ID Front', 'id_back' => 'ID Back', - 'id_handheld' => 'Hand-held ID', + 'id_handheld' => 'Handheld ID', 'upload' => 'Upload', 'submit' => 'Submit', - 'login_password' => 'Login Password', - 'trade_password' => 'Trade Password', - 'change_password' => 'Change Password', - 'set_password' => 'Set Password', - 'kyc_instructions' => 'Please ensure that the uploaded photos are clear and consistent with the ID number filled in.', - 'security_instructions' => 'Please change your password regularly and ensure that the transaction password is different from the login password.', - 'old_password' => 'Old Password', - 'new_password' => 'New Password', - 'confirm_new_password' => 'Confirm New Password', - 'kyc_steps' => 'KYC Steps', - 'kyc_step1' => 'Fill in your real name and ID number.', - 'kyc_step2' => 'Upload photos of the front and back of your ID card.', - 'kyc_step3' => 'Upload a photo of you holding your ID card, ensuring your face is clear.', - 'security_steps' => 'Security Steps', - 'security_step1' => 'Set a strong password containing letters, numbers, and symbols.', - 'security_step2' => 'The transaction password is used for withdrawals and important operations. Please keep it safe.', - 'frozen' => 'Frozen', - 'converted_to' => 'Equivalent', + 'kyc_steps' => 'Verification Steps', + 'kyc_step1' => 'Fill in your real name and ID.', + 'kyc_step2' => 'Upload clear photos of ID.', + 'kyc_step3' => 'Handheld ID photo must show face.', + 'kyc_instructions' => 'Verification usually takes 24 hours.', + 'welcome_back' => 'Welcome back', + 'forgot_password' => 'Forgot password?', + 'no_account' => 'No account?', + 'join_secure' => 'Join the most secure exchange', + 'have_account' => 'Have account?', + 'old_pwd_incorrect' => 'Old password incorrect', + 'pwd_mismatch' => 'Passwords do not match', + 'pwd_too_short' => 'Min. 6 characters', + 'pwd_changed_success' => 'Password changed', + 'trade_pwd_updated' => 'Trade password updated', + 'fill_all_fields' => 'Fill all fields', + 'kyc_submitted' => 'Verification submitted!', + 'kyc_pending_desc' => 'Being reviewed by our team.', + 'enter_full_name' => 'Enter full name', + 'enter_id_number' => 'Enter ID number', + 'prof_terminal' => 'Pro Terminal', + 'prof_terminal_desc' => 'High performance execution.', + 'inst_security' => 'Inst. Security', + 'inst_security_desc' => 'Multi-tier encryption.', + 'trading_pair' => 'Pair', + 'total' => 'Total', + 'high' => 'High', + 'low' => 'Low', ] ]; @@ -423,6 +493,11 @@ function getCoinIcon($symbol) { 'APT' => '27355/small/aptos.png', 'USDC' => '6319/small/usdc.png', 'PEPE' => '31386/small/pepe.png', + 'FIL' => '12817/small/filecoin.png', + 'NEAR' => '10365/small/near.png', + 'ATOM' => '1481/small/cosmos.png', + 'IMX' => '17233/small/immutable-x.png', + 'KAS' => '26851/small/kaspa.png', ]; $id = $icon_ids[strtoupper($symbol)] ?? '1/small/bitcoin.png'; return "https://assets.coingecko.com/coins/images/" . $id; diff --git a/includes/terminal_layout.php b/includes/terminal_layout.php index 7669500..9e3e62b 100644 --- a/includes/terminal_layout.php +++ b/includes/terminal_layout.php @@ -33,10 +33,17 @@ function renderTerminal($activeTab = 'spot') { ]; ?> +
+ +
+ + + +
-
+
-
+
-
+
<?= $c['symbol'] ?> @@ -68,7 +75,12 @@ function renderTerminal($activeTab = 'spot') {
-
/USDT
+
+
+ +
+ /USDT +
64,234.50 @@ -78,11 +90,11 @@ function renderTerminal($activeTab = 'spot') { +2.45%
- + 65,120.00
- + 63,450.00
@@ -405,61 +417,175 @@ function renderTerminal($activeTab = 'spot') {
@@ -472,15 +598,15 @@ function renderTerminal($activeTab = 'spot') { - - - - - - - - - + + + + + + + + + @@ -495,36 +621,28 @@ function renderTerminal($activeTab = 'spot') {
- Price(USDT) - Amount() + (USDT) + ()
-
- +
+
- - -
+ --- + --- +
- 64,234.50 - ≈ $64,234.50 + --- + ---
-
- +
+
- - -
+ --- + --- +
@@ -534,6 +652,11 @@ function renderTerminal($activeTab = 'spot') {
diff --git a/security.php b/security.php index 97bb15a..62f77fb 100644 --- a/security.php +++ b/security.php @@ -22,32 +22,30 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $current_pwd_hash = $stmt->fetchColumn(); if (!password_verify($old_pwd, $current_pwd_hash)) { - $error = "Old password incorrect"; + $error = __("old_pwd_incorrect"); } elseif ($new_pwd !== $confirm_pwd) { - $error = "Passwords do not match"; + $error = __("pwd_mismatch"); } elseif (strlen($new_pwd) < 6) { - $error = "Password must be at least 6 characters"; + $error = __("pwd_too_short"); } else { $new_hash = password_hash($new_pwd, PASSWORD_DEFAULT); $stmt = db()->prepare("UPDATE users SET password_hash = ? WHERE id = ?"); $stmt->execute([$new_hash, $user['id']]); - $success = "Login password changed successfully"; + $success = __("pwd_changed_success"); } } elseif ($action === 'set_trade_password') { $trade_pwd = $_POST['trade_password'] ?? ''; $confirm_trade_pwd = $_POST['confirm_trade_password'] ?? ''; if ($trade_pwd !== $confirm_trade_pwd) { - $error = "Passwords do not match"; + $error = __("pwd_mismatch"); } elseif (strlen($trade_pwd) < 6) { - $error = "Transaction password must be at least 6 characters"; + $error = __("pwd_too_short"); } else { - // Store plain or hashed? Usually hashed but user might want simple numeric. - // I'll hash it for security. $trade_hash = password_hash($trade_pwd, PASSWORD_DEFAULT); $stmt = db()->prepare("UPDATE users SET transaction_password = ? WHERE id = ?"); $stmt->execute([$trade_hash, $user['id']]); - $success = "Transaction password updated successfully"; + $success = __("trade_pwd_updated"); } } } @@ -68,7 +66,7 @@ $hasTradePwd = !empty($stmt->fetchColumn());
-
+

@@ -97,16 +95,19 @@ $hasTradePwd = !empty($stmt->fetchColumn());
+
+
+
- +
@@ -123,13 +124,15 @@ $hasTradePwd = !empty($stmt->fetchColumn());
+
+
- +
diff --git a/withdraw.php b/withdraw.php index c336e2f..798f3c8 100644 --- a/withdraw.php +++ b/withdraw.php @@ -24,7 +24,7 @@ $available = $bal['available'] ?? 0;

-
+

@@ -33,7 +33,7 @@ $available = $bal['available'] ?? 0;
-

时间交易对类型方向价格数量成交额状态操作