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 0000000..6e0a4ee Binary files /dev/null and b/assets/pasted-20260216-073240-3f7af956.png differ diff --git a/assets/pasted-20260216-074521-ef811661.png b/assets/pasted-20260216-074521-ef811661.png new file mode 100644 index 0000000..90a3b0b Binary files /dev/null and b/assets/pasted-20260216-074521-ef811661.png differ diff --git a/assets/pasted-20260216-075108-e35a11f4.png b/assets/pasted-20260216-075108-e35a11f4.png new file mode 100644 index 0000000..5e1cd2d Binary files /dev/null and b/assets/pasted-20260216-075108-e35a11f4.png differ 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;
-

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