Files
Reynov Christian 5b41fdea95 feat: add i18n support and prepare for Vercel deployment
- Streamlined .env.example to include only essential Flask and MT5 configs for production environments
- Added .vercel directory to .gitignore for clean Vercel deployments
- Enabled internationalization by adding data-i18n attributes to strategy switcher UI elements
- Updated MT5 setup guide and roadmap documentation for clarity and current focus

This change simplifies configuration for server deployment while enhancing UI accessibility across languages.
2025-10-16 01:47:55 +08:00

1390 lines
69 KiB
JavaScript

/* eslint-disable no-dupe-keys */
/**
* QuantumBotX Internationalization (i18n) System
* Global language support across the entire application
*/
// Translation dictionary for all app languages
window.QuantumBotXI18n = {
translations: {
id: {
// Navigation & Common
"nav.dashboard": "Dasbor",
"nav.bots": "Bot Trading",
"nav.backtest": "Backtester",
"nav.history": "Riwayat",
"nav.ai_mentor": "AI Mentor",
"nav.strategy_switcher": "Strategy Switcher",
"nav.ramadan": "Ramadan Mode",
"nav.settings": "Pengaturan",
"nav.portfolio": "Portfolio",
"nav.stocks": "Stocks",
"nav.forex": "Forex",
"nav.notifications": "Notifikasi",
"nav.section.navigation": "Navigasi",
"nav.section.market_data": "Data Pasar",
// Dashboard
"dashboard.title": "Dasbor QuantumBotX",
"dashboard.welcome": "Selamat Datang",
"dashboard.welcome_back": "Selamat datang kembali! Berikut ringkasan trading Anda hari ini.",
"dashboard.total_bots": "Total Bot",
"dashboard.active_bots": "Bot Aktif",
"dashboard.inactive_bots": "Bot Tidak Aktif",
"dashboard.total_profit": "Total Profit",
"dashboard.today_pnl": "PnL Hari Ini",
"dashboard.create_bot": "Buat Bot Baru",
"dashboard.view_details": "Lihat Detail",
"dashboard.total_equity": "Total Saldo (Equity)",
"dashboard.today_profit": "Profit Hari Ini",
"dashboard.ai_mentor": "🤖 AI Mentor",
"dashboard.ai_mentor_ready": "Siap Membantu",
"dashboard.ai_mentor_active": "Aktif Menganalisis",
"dashboard.view_analysis": "Lihat Analisis →",
"dashboard.emotion_status": "Status Emosi",
"dashboard.update_status": "Update Status",
"dashboard.ai_mentor_today": "🧠 AI Mentor Hari Ini",
"dashboard.trading_analysis": "Analisis Trading:",
"dashboard.daily_tip": "Tips Hari Ini:",
"dashboard.view_full_report": "📊 Lihat Laporan Lengkap",
"dashboard.recent_activities": "⚡ Aktivitas Terbaru",
"dashboard.loading_activities": "Memuat aktivitas...",
"dashboard.active_trading_bots": "Active Trading Bots",
"dashboard.loading_bot_list": "Memuat daftar bot...",
"dashboard.view_all_bots": "View All Bots",
"dashboard.chat_with_ai_mentor": "Chat dengan AI Mentor",
"dashboard.price_chart": "📈 Grafik Harga EUR/USD",
"dashboard.loading": "Memuat...",
"dashboard.rsi_chart": "📊 RSI EUR/USD (H1)",
"dashboard.real_time": "Real-time",
"dashboard.no_active_bots": "Tidak ada bot yang aktif",
"dashboard.emotion_calm": "😌 Tenang",
"dashboard.emotion_greedy": "🤑 Serakah",
"dashboard.emotion_fear": "😰 Takut",
"dashboard.emotion_frustrated": "😤 Frustasi",
"dashboard.emotion_neutral": "😐 Netral",
"dashboard.update_emotion_status": "🎯 Update Status Emosi",
"dashboard.cancel": "Batal",
"dashboard.emotion_updated": "Status emosi berhasil diupdate!",
"dashboard.emotion_update_failed": "Gagal update status emosi",
"dashboard.error_updating_emotion": "Error: Gagal update status emosi",
// Bot Status
"status.active": "Aktif",
"status.inactive": "Dijeda",
"status.error": "Error",
"status.paused": "Dijeda",
// Action Buttons
"action.start": "Jalankan",
"action.stop": "Hentikan",
"action.edit": "Edit",
"action.delete": "Hapus",
"action.view": "Lihat",
"action.analyze": "Analisis",
"action.start_all": "Start All",
"action.stop_all": "Stop All",
"action.create_new_bot": "Buat Bot Baru",
// Form Labels & Messages
"label.name": "Nama",
"label.market": "Pasar",
"label.strategy": "Strategi",
"label.status": "Status",
"label.profit": "Profit",
"label.trades": "Jumlah Trade",
"label.win_rate": "Win Rate",
"label.bot_name": "Nama Bot",
"label.risk_per_trade": "Risk per Trade (%)",
"label.sl_atr": "SL (ATR Multiplier)",
"label.tp_atr": "TP (ATR Multiplier)",
"label.timeframe": "Timeframe",
"label.check_interval": "Interval Cek (detik)",
"label.full_name": "Nama Lengkap",
"label.email": "Alamat Email",
"label.password": "Ganti Password (kosongkan jika tidak ingin diubah)",
"msg.loading": "Memuat...",
"msg.no_data": "Tidak ada data",
"msg.success": "Berhasil",
"msg.error": "Error",
"msg.confirm": "Apakah Anda yakin?",
"msg.save_changes": "Simpan Perubahan",
"msg.save_preferences": "Simpan Preferensi",
// Time & Date
"time.today": "Hari Ini",
"time.yesterday": "Kemarin",
"time.week": "Minggu Ini",
"time.month": "Bulan Ini",
// Error Messages
"error.connection": "Gagal terhubung ke server",
"error.loading": "Gagal memuat data",
"error.save": "Gagal menyimpan perubahan",
"error.404_title": "Halaman Tidak Ditemukan - QuantumBotX",
"error.404_heading": "Halaman Tidak Ditemukan",
"error.404_message": "Maaf, halaman yang Anda cari tidak ada atau telah dipindahkan.",
"error.500_title": "Terjadi Kesalahan Internal - QuantumBotX",
"error.500_heading": "Terjadi Kesalahan Internal",
"error.500_message": "Maaf, terjadi masalah pada server kami. Tim kami telah diberitahu dan sedang menanganinya.",
"error.back_to_dashboard": "Kembali ke Dashboard",
// AI Mentor
"mentor.greeting": "Halo, Teman Trader!",
"mentor.welcome": "Selamat datang di sistem trading AI saya",
// AI Mentor (Consolidated - removed duplications)
"ai_mentor.title": "🧠 AI Mentor Trading - QuantumBotX",
"ai_mentor.page_title": "🧠 AI Mentor Trading - QuantumBotX",
"ai_mentor.header": "🧠 AI Mentor Trading Indonesia",
"ai_mentor.subtitle": "Mentor digital Anda untuk sukses trading jangka panjang",
"ai_mentor.language": "🇮🇩 Bahasa Indonesia",
"ai_mentor.realtime": "📊 Analisis Real-time",
"ai_mentor.personal": "🎯 Personal",
"ai_mentor.total_sessions": "Total Sesi",
"ai_mentor.win_rate": "Win Rate",
"ai_mentor.today": "Hari Ini",
"ai_mentor.not_traded": "belum trading",
"ai_mentor.ai_status": "Status AI",
"ai_mentor.ai_active": "🤖 Aktif",
"ai_mentor.ai_ready": "siap menganalisis",
"ai_mentor.today_trading": "📊 Trading Hari Ini",
"ai_mentor.total_trades": "Total Trades:",
"ai_mentor.pnl": "P&L:",
"ai_mentor.emotion": "Emosi:",
"ai_mentor.your_notes": "Catatan Anda:",
"ai_mentor.view_full_analysis": "🧠 Lihat Analisis AI Lengkap",
"ai_mentor.update_emotion": "✏️ Update Emosi & Catatan",
"ai_mentor.not_traded_today": "Belum Ada Trading Hari Ini",
"ai_mentor.start_trading": "Mulai trading untuk mendapatkan analisis AI yang personal!",
"ai_mentor.record_emotion": "📝 Catat Emosi Trading",
"ai_mentor.ai_insights": "🤖 AI Insights Terbaru",
"ai_mentor.no_insights": "AI Siap Membantu!",
"ai_mentor.start_trading_insights": "Mulai trading untuk mendapatkan insight personal dari AI mentor Anda.",
"ai_mentor.view_history": "📚 Lihat Semua Riwayat",
"ai_mentor.daily_tips": "💡 Tips Harian dari AI Mentor",
"ai_mentor.consistency": "🎯 Konsistensi",
"ai_mentor.consistency_tip": "Profit kecil tapi konsisten lebih baik daripada profit besar sekali terus loss.",
"ai_mentor.risk_management": "🛡️ Risk Management",
"ai_mentor.risk_management_tip": "Jangan pernah risiko lebih dari 2% modal per trade. Modal adalah nyawa trader!",
"ai_mentor.emotion": "🧠 Emosi",
"ai_mentor.emotion_tip": "Trading dengan emosi tenang adalah kunci trader profesional. Istirahat jika frustasi.",
"ai_mentor.chat_with_mentor": "💬 Chat dengan AI Mentor",
"ai_mentor.developing": "Fitur sedang dikembangkan...",
"ai_mentor.use_dashboard": "Sementara ini, gunakan dashboard untuk melihat analisis AI.",
"ai_mentor.history_page_title": "📊 Riwayat AI Mentor - QuantumBotX",
"ai_mentor.report_page_title": "📊 Laporan AI Mentor - QuantumBotX",
"ai_mentor.session_detail_title": "📈 Detail Sesi {{ session_date }} - AI Mentor - QuantumBotX",
"ai_mentor.holiday_risk_reduction": "⚠️ Risk otomatis dikurangi {{ (100 - holiday_config.adjustments.risk_reduction * 100)|int }}% untuk periode liburan",
"ai_mentor.holiday": "• {{ holiday_config.active_holiday.split()[0] }} 🎄",
"ai_mentor.language_indonesian": "🇮🇩 Bahasa Indonesia",
"ai_mentor.realtime_analysis": "📊 Analisis Real-time",
"ai_mentor.sessions": "sesi trading",
"ai_mentor.profit_sessions": "sesi profit",
"ai_mentor.no_trading": "belum trading",
"ai_mentor.ai_status": "Status AI",
"ai_mentor.ai_active": "🤖 Aktif",
"ai_mentor.ready_to_analyze": "siap menganalisis",
"ai_mentor.todays_trading": "Trading Hari Ini",
"ai_mentor.view_full_analysis": "🧠 Lihat Analisis AI Lengkap",
"ai_mentor.update_emotion": "✏️ Update Emosi & Catatan",
"ai_mentor.record_emotion": "📝 Catat Emosi Trading",
"ai_mentor.latest_insights": "AI Insights Terbaru",
"ai_mentor.view_all_history": "📚 Lihat Semua Riwayat",
"ai_mentor.ai_ready": "AI Siap Membantu!",
"ai_mentor.start_trading_for_insights": "Mulai trading untuk mendapatkan insight personal dari AI mentor Anda.",
"ai_mentor.daily_tips": "Tips Harian dari AI Mentor",
"ai_mentor.consistency": "🎯 Konsistensi",
"ai_mentor.consistency_tip": "Profit kecil tapi konsisten lebih baik daripada profit besar sekali terus loss.",
"ai_mentor.risk_management": "🛡️ Risk Management",
"ai_mentor.risk_management_tip": "Jangan pernah risiko lebih dari 2% modal per trade. Modal adalah nyawa trader!",
"ai_mentor.emotion": "🧠 Emosi",
"ai_mentor.emotion_tip": "Trading dengan emosi tenang adalah kunci trader profesional. Istirahat jika frustasi.",
"ai_mentor.chat_with_mentor": "💬 Chat dengan AI Mentor",
"ai_mentor.feature_development": "Fitur sedang dikembangkan...",
"ai_mentor.use_dashboard": "Sementara ini, gunakan dashboard untuk melihat analisis AI.",
"ai_mentor.report_title": "📊 Laporan AI Mentor",
"ai_mentor.report_subtitle": "Analisis personal untuk {{ session_data.session_date if session_data else 'Hari Ini' }}",
"ai_mentor.created_by_ai": "🤖 Dibuat oleh AI",
"ai_mentor.real_data": "📈 Data Real",
"ai_mentor.trades": "trades",
"ai_mentor.no_data": "No data",
"ai_mentor.back_to_dashboard": "Kembali ke Dashboard",
"ai_mentor.report_history": "Riwayat Laporan",
"ai_mentor.trading_summary": "Ringkasan Trading",
"ai_mentor.profit_loss": "Profit/Loss",
"ai_mentor.emotional_condition": "Kondisi Emosi",
"ai_mentor.market_conditions": "Kondisi Market",
"ai_mentor.trading_patterns": "Analisis Pola Trading",
"ai_mentor.main_pattern": "Pola Utama:",
"ai_mentor.strength": "Kekuatan:",
"ai_mentor.improvement_areas": "Area Perbaikan:",
"ai_mentor.emotional_analysis": "Analisis Emosi vs Performa",
"ai_mentor.emotional_feedback": "Feedback Emosi:",
"ai_mentor.tip": "Tip:",
"ai_mentor.risk_management_analysis": "Evaluasi Manajemen Risiko",
"ai_mentor.recommendations": "Rekomendasi AI Mentor",
"ai_mentor.motivational_message": "Pesan Motivasi",
"ai_mentor.trade_details": "Detail Trades Hari Ini",
"ai_mentor.lot_size": "Lot: {{ trade.lot_size }}",
"ai_mentor.sl": "SL: {{ '✅' if trade.stop_loss_used else '❌' }}",
"ai_mentor.tp": "TP: {{ '✅' if trade.take_profit_used else '❌' }}",
"ai_mentor.personal_notes": "Catatan Pribadi Anda",
"ai_mentor.no_trading_data": "Belum Ada Data Trading",
"ai_mentor.back_to_dashboard_button": "Kembali ke Dashboard",
"ai_mentor.full_report": "Laporan AI Lengkap",
"ai_mentor.view_full_report": "Lihat Laporan Lengkap",
"ai_mentor.history_title": "📊 Riwayat AI Mentor Trading",
"ai_mentor.history_subtitle": "Analisis lengkap perjalanan trading Anda dengan bantuan AI Indonesia",
"ai_mentor.performance_analysis": "📈 Analisis Performa",
"ai_mentor.ai_insights": "🧠 AI Insights",
"ai_mentor.total_reports": "Total Laporan",
"ai_mentor.sessions_analyzed": "sesi dianalisis",
"ai_mentor.period": "Periode",
"ai_mentor.days": "hari",
"ai_mentor.last_history": "riwayat terakhir",
"ai_mentor.performance": "Performa",
"ai_mentor.total_pnl": "total P&L",
"ai_mentor.profit_sessions": "sesi profit",
"ai_mentor.period_filter": "Filter Periode",
"ai_mentor.filter_7_days": "7 Hari",
"ai_mentor.filter_30_days": "30 Hari",
"ai_mentor.filter_90_days": "90 Hari",
"ai_mentor.filter_1_year": "1 Tahun",
"ai_mentor.trading_session": "Sesi Trading",
"ai_mentor.ai_summary": "🤖 AI Summary:",
"ai_mentor.market": "Market",
"ai_mentor.view_details": "Lihat Detail →",
"ai_mentor.load_more": "Muat Lebih Banyak",
"ai_mentor.no_history": "Belum Ada Riwayat Trading",
"ai_mentor.start_trading_for_history": "Mulai trading untuk mendapatkan analisis AI dan saran personal dari mentor digital Anda.",
"ai_mentor.start_trading_session": "Mulai Trading Session",
"ai_mentor.view_trading_bots": "Lihat Trading Bots",
"ai_mentor.how_are_you_feeling": "🧠 Bagaimana perasaan Anda saat trading hari ini?",
"ai_mentor.emotion_calm": "😌 Tenang",
"ai_mentor.calm_description": "Pikiran jernih, tidak terburu-buru",
"ai_mentor.emotion_greedy": "🤑 Serakah",
"ai_mentor.greedy_description": "Ingin profit besar, agresif",
"ai_mentor.emotion_fearful": "😰 Takut",
"ai_mentor.fearful_description": "Khawatir loss, ragu-ragu",
"ai_mentor.emotion_frustrated": "😤 Frustasi",
"ai_mentor.frustrated_description": "Kesal karena loss beruntun",
"ai_mentor.today_pnl": "💰 P&L Hari Ini (USD)",
"ai_mentor.pnl_placeholder": "Contoh: 25.50 atau -15.30",
"ai_mentor.today_notes": "📝 Catatan Trading Hari Ini",
"ai_mentor.notes_placeholder": "Contoh: Hari ini fokus EURUSD, pakai SL ketat. Market agak volatile karena berita NFP...",
"ai_mentor.instant_feedback": "⚡ Feedback Instan",
"ai_mentor.save_data": "💾 Simpan Data",
"ai_mentor.ai_feedback": "🤖 Feedback AI Mentor:",
"ai_mentor.analyzing": "🤖 AI sedang menganalisis trading Anda...",
"ai_mentor.emotional_analysis": "🧠 Analisis Emosi:",
"ai_mentor.motivation": "💪 Motivasi:",
"ai_mentor.quick_tips": "💡 Tips Cepat:",
"ai_mentor.failed_feedback": "❌ Gagal mendapatkan feedback. Silakan coba lagi.",
"ai_mentor.session_trading_detail": "📈 Detail Sesi Trading",
"ai_mentor.full_analysis": "Analisis lengkap dari AI Mentor Indonesia",
"ai_mentor.ai_analysis": "🇮🇩 AI Analysis",
"ai_mentor.personal_insights": "🧠 Personal Insights",
"ai_mentor.performance_review": "📊 Performance Review",
"ai_mentor.total_pnl": "Total P&L",
"ai_mentor.total_trades": "Total Trades",
"ai_mentor.emotional_state": "Emotional State",
"ai_mentor.trading_summary": "📊 Ringkasan Trading",
"ai_mentor.market_context": "🌐 Konteks Pasar",
"ai_mentor.market_conditions": "Kondisi Pasar",
"ai_mentor.personal_notes": "📝 Catatan Pribadi Anda",
"ai_mentor.ai_mentor_report": "🤖 Laporan AI Mentor",
"ai_mentor.emotional_analysis_vs_performance": "💭 Analisis Emosi vs Performa",
"ai_mentor.emotional_status": "Status Emosi: {{ session_data.emotions|title if session_data.emotions else 'Tidak Tercatat' }}",
"ai_mentor.emotional_advice": "💡 Saran Emosional",
"ai_mentor.ai_recommendations": "🎯 Rekomendasi AI",
"ai_mentor.motivation_inspiration": "🚀 Motivasi & Inspirasi",
"ai_mentor.learning_points": "📚 Poin Pembelajaran",
"ai_mentor.back_to_history": "Kembali ke Riwayat",
"ai_mentor.back_to_history_button": "← Kembali ke Riwayat",
"ai_mentor.ai_mentor_dashboard": "Dashboard AI Mentor",
"ai_mentor.reanalyze": "🔄 Analisis Ulang",
"ai_mentor.session_detail_title": "📈 Detail Sesi {{ session_date }} - AI Mentor - QuantumBotX",
"ai_mentor.settings_title": "⚙️ Pengaturan AI Mentor",
"ai_mentor.settings_subtitle": "Kustomisasi pengalaman AI Trading Mentor sesuai preferensi Anda",
"ai_mentor.indonesia_setup": "🇮🇩 Indonesia Setup",
"ai_mentor.realtime_config": "⚡ Real-time Config",
"ai_mentor.personal": "🎯 Personal",
"ai_mentor.language_regional": "🌏 Bahasa & Regional",
"ai_mentor.interface_language": "Bahasa Interface",
"ai_mentor.language_choice": "Pilih bahasa untuk AI Mentor",
"ai_mentor.timezone": "Zona Waktu",
"ai_mentor.timezone_description": "Zona waktu untuk analisis trading",
"ai_mentor.timezone_wib": "WIB (UTC+7) - Jakarta Time",
"ai_mentor.currency_format": "Format Mata Uang",
"ai_mentor.currency_display": "Format tampilan profit/loss",
"ai_mentor.ai_behavior": "🧠 Perilaku AI Mentor",
"ai_mentor.automatic_analysis": "Analisis Otomatis",
"ai_mentor.automatic_analysis_description": "AI menganalisis setiap sesi trading secara otomatis",
"ai_mentor.emotional_feedback": "Feedback Emosional",
"ai_mentor.emotional_feedback_description": "AI memberikan feedback berdasarkan kondisi emosi",
"ai_mentor.daily_motivation": "Motivasi Harian",
"ai_mentor.daily_motivation_description": "Terima pesan motivasi setiap hari",
"ai_mentor.analysis_detail_level": "Level Detail Analisis",
"ai_mentor.analysis_detail_description": "Tingkat detail feedback AI",
"ai_mentor.basic": "Basic",
"ai_mentor.detailed": "Detailed",
"ai_mentor.expert": "Expert",
"ai_mentor.notifications": "🔔 Notifikasi",
"ai_mentor.daily_report": "Laporan Harian",
"ai_mentor.daily_report_time": "Waktu pengiriman laporan AI harian",
"ai_mentor.timezone_wib_short": "WIB",
"ai_mentor.trading_reminder": "Reminder Trading",
"ai_mentor.trading_reminder_description": "Pengingat untuk input emosi dan catatan",
"ai_mentor.overtrading_alert": "Alert Overtrading",
"ai_mentor.overtrading_alert_description": "Peringatan jika terlalu banyak trading",
"ai_mentor.cultural_preferences": "🎭 Preferensi Budaya",
"ai_mentor.automatic_holiday_mode": "Mode Liburan Otomatis",
"ai_mentor.automatic_holiday_mode_description": "Aktivkan mode Ramadan dan Natal secara otomatis",
"ai_mentor.ramadan_risk_adjustment": "Penyesuaian Risk Ramadan",
"ai_mentor.ramadan_risk_adjustment_description": "Kurangi risk otomatis selama bulan Ramadan",
"ai_mentor.sahur_iftar_pause": "Pause Trading Sahur/Iftar",
"ai_mentor.sahur_iftar_pause_description": "Hentikan trading otomatis saat waktu sahur dan iftar",
"ai_mentor.data_privacy": "🔒 Data & Privacy",
"ai_mentor.save_ai_history": "Simpan Riwayat AI",
"ai_mentor.save_ai_history_description": "Berapa lama menyimpan analisis AI",
"ai_mentor.30_days": "30 Hari",
"ai_mentor.90_days": "90 Hari",
"ai_mentor.1_year": "1 Tahun",
"ai_mentor.unlimited": "Unlimited",
"ai_mentor.export_data": "Export Data",
"ai_mentor.export_data_description": "Download semua data AI Mentor Anda",
"ai_mentor.export": "📥 Export",
"ai_mentor.reset_all_data": "Reset Semua Data",
"ai_mentor.reset_all_data_description": "⚠️ Hapus semua riwayat dan analisis AI",
"ai_mentor.reset": "🗑️ Reset",
"ai_mentor.save_settings": "💾 Simpan Pengaturan",
"ai_mentor.reset_to_defaults": "🔄 Reset ke Default",
"ai_mentor.back_to_dashboard": "← Kembali ke Dashboard",
// Units & Currencies
"currency.usd": "USD",
"currency.idr": "IDR",
"currency.percentage": "%",
// Settings
"settings.title": "Pengaturan",
"settings.language": "Bahasa",
"settings.theme": "Tema",
"settings.save": "Simpan Perubahan",
"settings.profile": "Profil",
"settings.preferences": "Preferensi",
"settings.api_keys": "API Keys Bursa",
"settings.quick_settings": "Pengaturan Cepat",
"settings.email_notifications": "Notifikasi Email",
"settings.auto_update": "Update Otomatis Strategi",
"settings.demo_mode": "Mode Demo",
"settings.version": "Versi",
"settings.last_updated": "Terakhir Update",
"settings.light": "Terang",
"settings.dark": "Gelap (Segera Hadir)",
"settings.indonesian": "Indonesia",
"settings.english": "English",
"settings.api_info": "API Keys akan digunakan oleh versi QuantumBotX berikutnya untuk mengakses broker non-MT5.",
"settings.api_placeholder": "Fitur ini akan tersedia di QuantumBotX API versi mendatang.",
// Trading Bots
"bots.title": "Trading Bots",
"bots.manage": "Kelola semua bot dan strategi Anda.",
"bots.start_all_title": "Jalankan semua bot yang dijeda",
"bots.stop_all_title": "Hentikan semua bot yang aktif",
"bots.name_market": "Nama / Pasar",
"bots.parameters": "Parameter",
"bots.configuration": "Konfigurasi",
"bots.actions": "Aksi",
"bots.create_edit_modal": "Modal untuk Membuat/Mengedit Bot",
"bots.create_new": "🚀 Buat Bot Baru",
"bots.close_modal": "Tutup modal",
"bots.row_name_market": "Baris 1: Nama & Pasar",
"bots.row_lot_sl_tp": "Baris 2: Lot, SL, TP",
"bots.row_timeframe_interval": "Baris 3: Timeframe & Interval",
"bots.enable_strategy_switching": "Aktifkan Automatic Strategy Switching",
"bots.strategy_switching_info": "Jika diaktifkan, bot akan secara otomatis beralih ke strategi terbaik berdasarkan kinerja terkini.",
"bots.row_strategy_params": "Baris 4: Strategi & Parameternya",
"bots.strategy_params_loaded": "Parameter strategi akan dimuat di sini oleh JavaScript",
"bots.create_bot": "Buat Bot",
"bots.cancel": "Batal",
"bots.example_name": "Contoh: XAUUSD Hybrid H1",
"bots.example_market": "Contoh: XAUUSD atau EURUSD",
"bots.timeframe_1m": "1 Menit",
"bots.timeframe_5m": "5 Menit",
"bots.timeframe_15m": "15 Menit",
"bots.timeframe_30m": "30 Menit",
"bots.timeframe_1h": "1 Jam",
"bots.timeframe_4h": "4 Jam",
"bots.timeframe_1d": "1 Hari",
"bots.select_strategy": "Pilih sebuah strategi",
"bots.detail_title": "Detail Bot - QuantumBotX",
// Profile
"profile.title": "Profil",
"profile.my_profile": "Profil Saya",
"profile.loading": "Memuat...",
"profile.joined_since": "Bergabung sejak: Juli 2025",
"profile.save_changes": "Simpan Perubahan",
"profile.password_placeholder": "••••••••",
// Holidays
"holiday.countdown.iftar": "⏱️ Hitung Mundur Iftar",
"holiday.countdown.christmas": "🎄 Hitung Mundur Natal",
"holiday.countdown.new_year": "🎆 Hitung Mundur Tahun Baru",
"holiday.countdown.days_until": "hari lagi sampai",
"holiday.patience_reminder": "🧘‍♂️ Pengingat Kesabaran",
"holiday.risk_adjustment": "🛡️ Penyesuaian Risiko",
"holiday.risk_reduction": "Pengurangan risiko otomatis",
"holiday.optimal_trading_hours": "⏰ Waktu Trading Optimal",
"holiday.christmas_greeting": "✨ Salam Natal",
"holiday.lot_adjustment": "📏 Penyesuaian Lot",
"holiday.lot_reduction": "Pengurangan ukuran lot",
"holiday.new_year_resolution": "🎯 Resolusi Trading",
"holiday.new_year_goal_setting": "Waktu yang tepat untuk menetapkan tujuan trading tahun ini",
// Backtesting
"backtest.enhanced_engine_active": "🚀 Enhanced Backtesting Engine Active",
"backtest.includes": "Your backtesting now includes:",
"backtest.realistic_spread": "Realistic spread costs",
"backtest.actual_costs": "Actual trading costs deducted",
"backtest.atr_risk": "ATR-based risk management",
"backtest.dynamic_sizing": "Dynamic position sizing",
"backtest.instrument_protection": "Instrument protection",
"backtest.gold_safeguards": "Gold trading safeguards",
"backtest.slippage": "Slippage simulation",
"backtest.accurate_modeling": "More accurate execution modeling",
"backtest.upload_data": "Unggah Data Historis (CSV)",
"backtest.enhanced": "🚀 Enhanced",
"backtest.dynamic_sl": "Dynamic SL based on volatility",
"backtest.dynamic_tp": "Dynamic TP based on volatility",
"backtest.run": "Jalankan Backtest",
"backtest.results": "Hasil Backtest",
"backtest.history_title": "Riwayat Backtest - QuantumBotX",
"backtest.running": "Menjalankan simulasi...",
// History
"history.title": "Riwayat Transaksi Global",
"history.description": "Semua transaksi yang telah ditutup dari akun MetaTrader 5.",
"history.symbol": "Simbol",
"history.type": "Tipe",
"history.volume": "Volume",
"history.profit": "Profit",
"history.close_time": "Waktu Penutupan",
"history.magic": "Magic Number",
"history.loading": "Memuat riwayat...",
// Portfolio
"portfolio.title": "Portfolio Real-Time",
"portfolio.description": "Posisi trading yang sedang terbuka di akun MetaTrader 5.",
"portfolio.pnl_chart": "Grafik Profit/Loss Terbuka (Real-Time)",
"portfolio.allocation_chart": "Alokasi Aset",
"portfolio.symbol": "Simbol",
"portfolio.type": "Tipe",
"portfolio.volume": "Volume",
"portfolio.open_price": "Harga Buka",
"portfolio.profit_loss": "Profit/Loss",
"portfolio.magic": "Magic Number",
"portfolio.loading": "Memuat posisi terbuka...",
"portfolio.open_pnl_total": "Total P/L Terbuka",
"portfolio.no_open_positions": "Belum ada posisi terbuka.",
// Market Data
"market.forex_title": "Pasar Forex",
"market.forex_description": "Data harga real-time dari pasar valuta asing.",
"market.stocks_title": "Pasar Saham",
"market.stocks_description": "Data harga real-time dari pasar saham global.",
"market.pair": "Pasangan",
"market.bid_price": "Harga Bid",
"market.ask_price": "Harga Ask",
"market.spread": "Spread",
"market.stock": "Saham",
"market.price": "Harga",
"market.change_24h": "Perubahan 24j",
"market.time": "Waktu",
"market.loading": "Memuat data...",
"market.close": "Close",
// Strategy Switcher
"strategy_switcher.title": "Dasbor Strategy Switcher",
"strategy_switcher.header": "🔄 Automatic Strategy Switcher",
"strategy_switcher.subtitle": "Pemantauan real-time dan analitik performa untuk pengalihan strategi otomatis",
"strategy_switcher.current_status": "Status Saat Ini",
"strategy_switcher.manual_evaluate": "Evaluasi Manual",
"strategy_switcher.loading": "Memuat...",
"strategy_switcher.cooldown_active": "Cooldown Aktif",
"strategy_switcher.active": "Aktif",
"strategy_switcher.active_strategy": "Strategi Aktif",
"strategy_switcher.active_symbol": "Simbol Aktif",
"strategy_switcher.last_switch": "Peralihan Terakhir",
"strategy_switcher.never": "Tidak Pernah",
"strategy_switcher.performance_rankings": "📊 Peringkat Performa Strategi",
"strategy_switcher.refresh_rankings": "Segarkan Peringkat",
"strategy_switcher.rank": "Peringkat",
"strategy_switcher.strategy_symbol": "Strategi/Simbol",
"strategy_switcher.composite_score": "Skor Komposit",
"strategy_switcher.profitability": "Profitabilitas",
"strategy_switcher.risk_control": "Kontrol Risiko",
"strategy_switcher.market_fit": "Kesesuaian Pasar",
"strategy_switcher.no_rankings": "Tidak ada peringkat strategi yang tersedia",
"strategy_switcher.recent_switches": "⚡ Peralihan Strategi Terbaru",
"strategy_switcher.refresh_switches": "Segarkan Peralihan",
"strategy_switcher.no_switches": "Belum ada peralihan strategi yang dicatat.",
"strategy_switcher.monitored_instruments": "🔍 Instrumen & Strategi yang Dipantau",
"strategy_switcher.instruments": "Instrumen",
"strategy_switcher.strategies": "Strategi",
"strategy_switcher.none": "Tidak Ada",
"strategy_switcher.switch_from": "Beralih dari",
"strategy_switcher.switch_to": "ke",
"strategy_switcher.initialized_with": "Diinisialisasi dengan",
"strategy_switcher.manual_trigger_confirm": "Apakah Anda yakin ingin memicu evaluasi strategi secara manual?",
"strategy_switcher.loading_strategy_rankings": "Memuat peringkat strategi...",
"strategy_switcher.loading_recent_switches": "Memuat peralihan terbaru...",
"strategy_switcher.monitored_instruments_strategies": "🔍 Instrumen & Strategi yang Dipantau",
"strategy_switcher.score": "Skor:",
"strategy_switcher.no_strategy_rankings": "Tidak ada peringkat strategi yang tersedia",
"strategy_switcher.switched_from": "Beralih dari",
"strategy_switcher.switched_to": "ke",
"strategy_switcher.no_strategy_switches": "Belum ada peralihan strategi yang dicatat.",
"strategy_switcher.strategy_performance_rankings": "📊 Peringkat Performa Strategi",
"strategy_switcher.recent_strategy_switches": "⚡ Peralihan Strategi Terbaru",
// Ramadan
"ramadan.title": "Ramadan Trading Mode",
"ramadan.page_title": "🌙 Ramadan Trading Mode - QuantumBotX",
"ramadan.header": "🌙 Ramadan Trading Mode",
"ramadan.subtitle": "Bulan suci dengan fitur trading yang menghormati ibadah puasa",
"ramadan.info": "Mode ini aktif secara otomatis selama bulan Ramadan dan akan menyesuaikan pengaturan trading Anda untuk menghormati waktu ibadah. Anda tidak perlu mengaktifkannya secara manual.",
"ramadan.status": "Status Ramadan",
"ramadan.period": "Periode Ramadan",
"ramadan.greeting": "Salam Ramadan",
"ramadan.iftar_countdown": "⏱️ Hitung Mundur Iftar",
"ramadan.hours": "Jam",
"ramadan.minutes": "Menit",
"ramadan.until": "Sampai",
"ramadan.trading_adjustments": "⚙️ Penyesuaian Trading",
"ramadan.fasting_times": "Waktu Istirahat Puasa",
"ramadan.suhoor": "Sahur",
"ramadan.suhoor_time": "03:30 - 05:00 WIB",
"ramadan.iftar_time": "Iftar",
"ramadan.iftar_time_range": "18:00 - 19:30 WIB",
"ramadan.tarawih": "Tarawih",
"ramadan.tarawih_time": "20:00 - 21:30 WIB",
"ramadan.risk_adjustments": "Penyesuaian Risiko",
"ramadan.reduced_risk_mode": "Reduced Risk Mode",
"ramadan.reduced_risk_description": "20% pengurangan risiko selama puasa",
"ramadan.patience_mode": "Patience Mode",
"ramadan.patience_mode_description": "Fokus pada kualitas bukan kuantitas",
"ramadan.optimal_hours": "Optimal Hours",
"ramadan.optimal_hours_time": "22:00 - 03:00 WIB",
"ramadan.zakat_calculator": "💰 Kalkulator Zakat Trading",
"ramadan.zakat_information": "Informasi Zakat",
"ramadan.gold_nisab": "Nisab Emas",
"ramadan.silver_nisab": "Nisab Perak",
"ramadan.zakat_percentage": "Persentase Zakat",
"ramadan.zakat_reminder": "Pengingat Zakat",
"ramadan.zakat_trading_reminder": "Zakat perdagangan: 2.5% dari profit trading selama 1 tahun hijriah. Jangan lupa menghitung zakat dari profit trading Anda selama Ramadan.",
"ramadan.patience_reminder": "🧘‍♂️ Pengingat Kesabaran",
"ramadan.loading": "Loading...",
"ramadan.active": "Aktif",
"ramadan.inactive": "Tidak Aktif",
"ramadan.not_ramadan": "Bukan periode Ramadan",
"ramadan.default_greeting": "Saatnya berpuasa, saatnya trading dengan berkah",
// Other
"common.close": "Tutup",
"common.yes": "Ya",
"common.no": "Tidak",
// Notifications
"notifications.loading": "Memuat notifikasi...",
// AI Mentor Settings
"ai_mentor.settings_title": "⚙️ Pengaturan AI Mentor - QuantumBotX"
},
en: {
// Navigation & Common
"nav.dashboard": "Dashboard",
"nav.bots": "Trading Bots",
"nav.backtest": "Backtester",
"nav.history": "History",
"nav.ai_mentor": "AI Mentor",
"nav.strategy_switcher": "Strategy Switcher",
"nav.ramadan": "Ramadan Mode",
"nav.settings": "Settings",
"nav.portfolio": "Portfolio",
"nav.stocks": "Stocks",
"nav.forex": "Forex",
"nav.notifications": "Notifications",
"nav.section.navigation": "Navigation",
"nav.section.market_data": "Market Data",
// Dashboard
"dashboard.title": "QuantumBotX Dashboard",
"dashboard.welcome": "Welcome",
"dashboard.welcome_back": "Welcome back! Here's your trading summary for today.",
"dashboard.total_bots": "Total Bots",
"dashboard.active_bots": "Active Bots",
"dashboard.inactive_bots": "Inactive Bots",
"dashboard.total_profit": "Total Profit",
"dashboard.today_pnl": "Today's P&L",
"dashboard.create_bot": "Create New Bot",
"dashboard.view_details": "View Details",
"dashboard.total_equity": "Total Balance (Equity)",
"dashboard.today_profit": "Today's Profit",
"dashboard.ai_mentor": "🤖 AI Mentor",
"dashboard.ai_mentor_ready": "Ready to Help",
"dashboard.ai_mentor_active": "Actively Analyzing",
"dashboard.view_analysis": "View Analysis →",
"dashboard.emotion_status": "Emotion Status",
"dashboard.update_status": "Update Status",
"dashboard.ai_mentor_today": "🧠 AI Mentor Today",
"dashboard.trading_analysis": "Trading Analysis:",
"dashboard.daily_tip": "Daily Tip:",
"dashboard.view_full_report": "📊 View Full Report",
"dashboard.recent_activities": "⚡ Recent Activities",
"dashboard.loading_activities": "Loading activities...",
"dashboard.active_trading_bots": "Active Trading Bots",
"dashboard.loading_bot_list": "Loading bot list...",
"dashboard.view_all_bots": "View All Bots",
"dashboard.chat_with_ai_mentor": "Chat with AI Mentor",
"dashboard.price_chart": "📈 EUR/USD Price Chart",
"dashboard.loading": "Loading...",
"dashboard.rsi_chart": "📊 EUR/USD RSI (H1)",
"dashboard.real_time": "Real-time",
"dashboard.no_active_bots": "No active bots",
"dashboard.emotion_calm": "😌 Calm",
"dashboard.emotion_greedy": "🤑 Greedy",
"dashboard.emotion_fear": "😰 Fear",
"dashboard.emotion_frustrated": "😤 Frustrated",
"dashboard.emotion_neutral": "😐 Neutral",
"dashboard.update_emotion_status": "🎯 Update Emotion Status",
"dashboard.cancel": "Cancel",
"dashboard.emotion_updated": "Emotion status updated successfully!",
"dashboard.emotion_update_failed": "Failed to update emotion status",
"dashboard.error_updating_emotion": "Error: Failed to update emotion status",
// Bot Status
"status.active": "Active",
"status.inactive": "Inactive",
"status.error": "Error",
"status.paused": "Paused",
// Action Buttons
"action.start": "Start",
"action.stop": "Stop",
"action.edit": "Edit",
"action.delete": "Delete",
"action.view": "View",
"action.analyze": "Analyze",
"action.start_all": "Start All",
"action.stop_all": "Stop All",
"action.create_new_bot": "Create New Bot",
// Form Labels & Messages
"label.name": "Name",
"label.market": "Market",
"label.strategy": "Strategy",
"label.status": "Status",
"label.profit": "Profit",
"label.trades": "Trades",
"label.win_rate": "Win Rate",
"label.bot_name": "Bot Name",
"label.risk_per_trade": "Risk per Trade (%)",
"label.sl_atr": "SL (ATR Multiplier)",
"label.tp_atr": "TP (ATR Multiplier)",
"label.timeframe": "Timeframe",
"label.check_interval": "Check Interval (seconds)",
"label.full_name": "Full Name",
"label.email": "Email Address",
"label.password": "Change Password (leave blank if you don't want to change it)",
"msg.loading": "Loading...",
"msg.no_data": "No data available",
"msg.success": "Success",
"msg.error": "Error",
"msg.confirm": "Are you sure?",
"msg.save_changes": "Save Changes",
"msg.save_preferences": "Save Preferences",
// Time & Date
"time.today": "Today",
"time.yesterday": "Yesterday",
"time.week": "This Week",
"time.month": "This Month",
// Error Messages
"error.connection": "Failed to connect to server",
"error.loading": "Failed to load data",
"error.save": "Failed to save changes",
"error.404_title": "Page Not Found - QuantumBotX",
"error.404_heading": "Page Not Found",
"error.404_message": "Sorry, the page you're looking for doesn't exist or has been moved.",
"error.500_title": "Internal Server Error - QuantumBotX",
"error.500_heading": "Internal Server Error",
"error.500_message": "Sorry, there was a problem with our server. Our team has been notified and is working on it.",
"error.back_to_dashboard": "Back to Dashboard",
// AI Mentor
"mentor.greeting": "Hello, Trading Friend!",
"mentor.welcome": "Welcome to my AI trading system",
// AI Mentor (Consolidated - no duplicates)
"ai_mentor.title": "🧠 AI Trading Mentor - QuantumBotX",
"ai_mentor.page_title": "🧠 AI Mentor Trading - QuantumBotX",
"ai_mentor.header": "🧠 AI Trading Mentor",
"ai_mentor.subtitle": "Your digital mentor for long-term trading success",
"ai_mentor.language": "🇺🇸 English Language",
"ai_mentor.realtime": "📊 Real-time Analysis",
"ai_mentor.personal": "🎯 Personal",
"ai_mentor.total_sessions": "Total Sessions",
"ai_mentor.win_rate": "Win Rate",
"ai_mentor.today": "Today",
"ai_mentor.not_traded": "not traded yet",
"ai_mentor.ai_status": "AI Status",
"ai_mentor.ai_active": "🤖 Active",
"ai_mentor.ai_ready": "ready to analyze",
"ai_mentor.today_trading": "📊 Today's Trading",
"ai_mentor.total_trades": "Total Trades:",
"ai_mentor.pnl": "P&L:",
"ai_mentor.emotion": "Emotion:",
"ai_mentor.your_notes": "Your Notes:",
"ai_mentor.view_full_analysis": "🧠 View Full AI Analysis",
"ai_mentor.update_emotion": "✏️ Update Emotion & Notes",
"ai_mentor.not_traded_today": "No Trading Today Yet",
"ai_mentor.start_trading": "Start trading to get personalized AI analysis!",
"ai_mentor.record_emotion": "📝 Record Trading Emotion",
"ai_mentor.ai_insights": "🤖 Latest AI Insights",
"ai_mentor.no_insights": "AI is Ready to Help!",
"ai_mentor.start_trading_insights": "Start trading to get personalized insights from your AI mentor.",
"ai_mentor.view_history": "📚 View All History",
"ai_mentor.daily_tips": "💡 Daily Tips from AI Mentor",
"ai_mentor.consistency": "🎯 Consistency",
"ai_mentor.consistency_tip": "Small but consistent profits are better than one big profit followed by losses.",
"ai_mentor.risk_management": "🛡️ Risk Management",
"ai_mentor.risk_tip": "Never risk more than 2% of your capital per trade. Capital is a trader's life!",
"ai_mentor.emotion": "🧠 Emotions",
"ai_mentor.emotion_tip": "Trading with a calm emotion is the key to professional trading. Take a break if frustrated.",
"ai_mentor.chat_with_mentor": "💬 Chat with AI Mentor",
"ai_mentor.developing": "Feature under development...",
"ai_mentor.use_dashboard": "For now, use the dashboard to view AI analysis.",
"ai_mentor.history_page_title": "📊 AI Mentor History - QuantumBotX",
"ai_mentor.report_page_title": "📊 AI Mentor Report - QuantumBotX",
"ai_mentor.session_detail_title": "📈 Session Detail {{ session_date }} - AI Mentor - QuantumBotX",
"ai_mentor.holiday_risk_reduction": "⚠️ Automatic risk reduced {{ (100 - holiday_config.adjustments.risk_reduction * 100)|int }}% for holiday period",
"ai_mentor.holiday": "• {{ holiday_config.active_holiday.split()[0] }} 🎄",
"ai_mentor.language_indonesian": "🇮🇩 Bahasa Indonesia",
"ai_mentor.realtime_analysis": "📊 Real-time Analysis",
"ai_mentor.sessions": "trading sessions",
"ai_mentor.profit_sessions": "profit sessions",
"ai_mentor.no_trading": "no trading yet",
"ai_mentor.ai_status": "AI Status",
"ai_mentor.ai_active": "🤖 Active",
"ai_mentor.ready_to_analyze": "ready to analyze",
"ai_mentor.todays_trading": "Today's Trading",
"ai_mentor.view_full_analysis": "🧠 View Full AI Analysis",
"ai_mentor.update_emotion": "✏️ Update Emotion & Notes",
"ai_mentor.record_emotion": "📝 Record Trading Emotion",
"ai_mentor.latest_insights": "Latest AI Insights",
"ai_mentor.view_all_history": "📚 View All History",
"ai_mentor.ai_ready": "AI is Ready to Help!",
"ai_mentor.start_trading_for_insights": "Start trading to get personalized insights from your AI mentor.",
"ai_mentor.daily_tips": "Daily Tips from AI Mentor",
"ai_mentor.consistency": "🎯 Consistency",
"ai_mentor.consistency_tip": "Small but consistent profits are better than one big profit followed by losses.",
"ai_mentor.risk_management": "🛡️ Risk Management",
"ai_mentor.risk_management_tip": "Never risk more than 2% of your capital per trade. Capital is a trader's life!",
"ai_mentor.emotion": "🧠 Emotions",
"ai_mentor.emotion_tip": "Trading with a calm emotion is the key to professional trading. Take a break if frustrated.",
"ai_mentor.chat_with_mentor": "💬 Chat with AI Mentor",
"ai_mentor.feature_development": "Feature under development...",
"ai_mentor.use_dashboard": "For now, use the dashboard to view AI analysis.",
"ai_mentor.report_title": "📊 AI Mentor Report",
"ai_mentor.report_subtitle": "Personal analysis for {{ session_data.session_date if session_data else 'Today' }}",
"ai_mentor.created_by_ai": "🤖 Created by AI",
"ai_mentor.real_data": "📈 Real Data",
"ai_mentor.trades": "trades",
"ai_mentor.no_data": "No data",
"ai_mentor.back_to_dashboard": "Back to Dashboard",
"ai_mentor.report_history": "Report History",
"ai_mentor.trading_summary": "Trading Summary",
"ai_mentor.profit_loss": "Profit/Loss",
"ai_mentor.emotional_condition": "Emotional Condition",
"ai_mentor.market_conditions": "Market Conditions",
"ai_mentor.trading_patterns": "Trading Pattern Analysis",
"ai_mentor.main_pattern": "Main Pattern:",
"ai_mentor.strength": "Strength:",
"ai_mentor.improvement_areas": "Area for Improvement:",
"ai_mentor.emotional_analysis": "Emotional vs Performance Analysis",
"ai_mentor.emotional_feedback": "Emotional Feedback:",
"ai_mentor.tip": "Tip:",
"ai_mentor.risk_management_analysis": "Risk Management Evaluation",
"ai_mentor.recommendations": "AI Mentor Recommendations",
"ai_mentor.motivational_message": "Motivational Message",
"ai_mentor.trade_details": "Today's Trade Details",
"ai_mentor.lot_size": "Lot: {{ trade.lot_size }}",
"ai_mentor.sl": "SL: {{ '✅' if trade.stop_loss_used else '❌' }}",
"ai_mentor.tp": "TP: {{ '✅' if trade.take_profit_used else '❌' }}",
"ai_mentor.personal_notes": "Your Personal Notes",
"ai_mentor.no_trading_data": "No Trading Data Yet",
"ai_mentor.back_to_dashboard_button": "← Back to Dashboard",
"ai_mentor.full_report": "Full AI Report",
"ai_mentor.view_full_report": "View Full Report",
"ai_mentor.history_title": "📊 AI Mentor Trading History",
"ai_mentor.history_subtitle": "Complete analysis of your trading journey with AI assistance",
"ai_mentor.performance_analysis": "📈 Performance Analysis",
"ai_mentor.ai_insights": "🧠 AI Insights",
"ai_mentor.total_reports": "Total Reports",
"ai_mentor.sessions_analyzed": "sessions analyzed",
"ai_mentor.period": "Period",
"ai_mentor.days": "days",
"ai_mentor.last_history": "last history",
"ai_mentor.performance": "Performance",
"ai_mentor.total_pnl": "total P&L",
"ai_mentor.profit_sessions": "profit sessions",
"ai_mentor.period_filter": "Period Filter",
"ai_mentor.filter_7_days": "7 Days",
"ai_mentor.filter_30_days": "30 Days",
"ai_mentor.filter_90_days": "90 Days",
"ai_mentor.filter_1_year": "1 Year",
"ai_mentor.trading_session": "Trading Session",
"ai_mentor.ai_summary": "🤖 AI Summary:",
"ai_mentor.market": "Market",
"ai_mentor.view_details": "View Details →",
"ai_mentor.load_more": "Load More",
"ai_mentor.no_history": "No Trading History Yet",
"ai_mentor.start_trading_for_history": "Start trading to get analysis and personal advice from your digital mentor.",
"ai_mentor.start_trading_session": "Start Trading Session",
"ai_mentor.view_trading_bots": "View Trading Bots",
"ai_mentor.how_are_you_feeling": "🧠 How are you feeling about trading today?",
"ai_mentor.emotion_calm": "😌 Calm",
"ai_mentor.calm_description": "Clear mind, not rushed",
"ai_mentor.emotion_greedy": "🤑 Greedy",
"ai_mentor.greedy_description": "Want big profits, aggressive",
"ai_mentor.emotion_fearful": "😰 Fearful",
"ai_mentor.fearful_description": "Worried about losses, hesitant",
"ai_mentor.emotion_frustrated": "😤 Frustrated",
"ai_mentor.frustrated_description": "Annoyed by losing streak",
"ai_mentor.today_pnl": "💰 Today's P&L (USD)",
"ai_mentor.pnl_placeholder": "Example: 25.50 or -15.30",
"ai_mentor.today_notes": "📝 Today's Trading Notes",
"ai_mentor.notes_placeholder": "Example: Focused on EURUSD today, used tight SL. Market was volatile due to NFP news...",
"ai_mentor.instant_feedback": "⚡ Instant Feedback",
"ai_mentor.save_data": "💾 Save Data",
"ai_mentor.ai_feedback": "🤖 AI Mentor Feedback:",
"ai_mentor.analyzing": "🤖 AI is analyzing your trading...",
"ai_mentor.emotional_analysis": "🧠 Emotional Analysis:",
"ai_mentor.motivation": "💪 Motivation:",
"ai_mentor.quick_tips": "💡 Quick Tips:",
"ai_mentor.failed_feedback": "❌ Failed to get feedback. Please try again.",
"ai_mentor.session_trading_detail": "📈 Session Trading Details",
"ai_mentor.full_analysis": "Complete analysis from AI Mentor Indonesia",
"ai_mentor.ai_analysis": "🇺🇸 AI Analysis",
"ai_mentor.personal_insights": "🧠 Personal Insights",
"ai_mentor.performance_review": "📊 Performance Review",
"ai_mentor.total_pnl": "Total P&L",
"ai_mentor.total_trades": "Total Trades",
"ai_mentor.emotional_state": "Emotional State",
"ai_mentor.trading_summary": "📊 Trading Summary",
"ai_mentor.market_context": "🌐 Market Context",
"ai_mentor.market_conditions": "Market Conditions",
"ai_mentor.personal_notes": "📝 Personal Notes",
"ai_mentor.ai_mentor_report": "🤖 AI Mentor Report",
"ai_mentor.emotional_analysis_vs_performance": "💭 Emotional vs Performance Analysis",
"ai_mentor.emotional_status": "Status Emosi: {{ session_data.emotions|title if session_data.emotions else 'Not Recorded' }}",
"ai_mentor.emotional_advice": "💡 Emotional Advice",
"ai_mentor.ai_recommendations": "🎯 AI Recommendations",
"ai_mentor.motivation_inspiration": "🚀 Motivation & Inspiration",
"ai_mentor.learning_points": "📚 Learning Points",
"ai_mentor.back_to_history": "Back to History",
"ai_mentor.back_to_history_button": "← Back to History",
"ai_mentor.ai_mentor_dashboard": "AI Mentor Dashboard",
"ai_mentor.reanalyze": "🔄 Re-analyze",
"ai_mentor.session_detail_title": "📈 Session Detail {{ session_date }} - AI Mentor - QuantumBotX",
"ai_mentor.settings_title": "⚙️ AI Mentor Settings - QuantumBotX",
"ai_mentor.settings_subtitle": "Customize your AI Trading Mentor experience to your preferences",
"ai_mentor.indonesia_setup": "🇺🇸 English Setup",
"ai_mentor.realtime_config": "⚡ Real-time Configuration",
"ai_mentor.personal": "🎯 Personal",
"ai_mentor.language_regional": "🌏 Language & Regional",
"ai_mentor.interface_language": "Interface Language",
"ai_mentor.language_choice": "Select language for AI Mentor",
"ai_mentor.timezone": "Timezone",
"ai_mentor.timezone_description": "Timezone for trading analysis",
"ai_mentor.timezone_wib": "WIB (UTC+7) - Jakarta Time",
"ai_mentor.currency_format": "Currency Format",
"ai_mentor.currency_display": "Profit/loss display format",
"ai_mentor.ai_behavior": "🧠 AI Mentor Behavior",
"ai_mentor.automatic_analysis": "Automatic Analysis",
"ai_mentor.automatic_analysis_description": "AI automatically analyzes each trading session",
"ai_mentor.emotional_feedback": "Emotional Feedback",
"ai_mentor.emotional_feedback_description": "AI provides feedback based on emotional condition",
"ai_mentor.daily_motivation": "Daily Motivation",
"ai_mentor.daily_motivation_description": "Receive daily motivational messages",
"ai_mentor.analysis_detail_level": "Analysis Detail Level",
"ai_mentor.analysis_detail_description": "Level of detail in AI feedback",
"ai_mentor.basic": "Basic",
"ai_mentor.detailed": "Detailed",
"ai_mentor.expert": "Expert",
"ai_mentor.notifications": "🔔 Notifications",
"ai_mentor.daily_report": "Daily Report",
"ai_mentor.daily_report_time": "Time to send AI daily report",
"ai_mentor.timezone_wib_short": "WIB",
"ai_mentor.trading_reminder": "Trading Reminder",
"ai_mentor.trading_reminder_description": "Reminders for emotion input and notes",
"ai_mentor.overtrading_alert": "Overtrading Alert",
"ai_mentor.overtrading_alert_description": "Warning if trading too much",
"ai_mentor.cultural_preferences": "🎭 Cultural Preferences",
"ai_mentor.automatic_holiday_mode": "Automatic Holiday Mode",
"ai_mentor.automatic_holiday_mode_description": "Automatically activate Ramadan and Christmas modes",
"ai_mentor.ramadan_risk_adjustment": "Ramadan Risk Adjustment",
"ai_mentor.ramadan_risk_adjustment_description": "Automatically reduce risk during Ramadan",
"ai_mentor.sahur_iftar_pause": "Sahur/Iftar Trading Pause",
"ai_mentor.sahur_iftar_pause_description": "Automatically pause trading during sahur and iftar times",
"ai_mentor.data_privacy": "🔒 Data & Privacy",
"ai_mentor.save_ai_history": "Save AI History",
"ai_mentor.save_ai_history_description": "How long to save AI analysis",
"ai_mentor.30_days": "30 Days",
"ai_mentor.90_days": "90 Days",
"ai_mentor.1_year": "1 Year",
"ai_mentor.unlimited": "Unlimited",
"ai_mentor.export_data": "Export Data",
"ai_mentor.export_data_description": "Download all your AI Mentor data",
"ai_mentor.export": "📥 Export",
"ai_mentor.reset_all_data": "Reset All Data",
"ai_mentor.reset_all_data_description": "⚠️ Delete all history and analysis",
"ai_mentor.reset": "🗑️ Reset",
"ai_mentor.save_settings": "💾 Save Settings",
"ai_mentor.reset_to_defaults": "🔄 Reset to Defaults",
"ai_mentor.back_to_dashboard": "← Back to Dashboard",
// Units & Currencies
"currency.usd": "USD",
"currency.idr": "IDR",
"currency.percentage": "%",
// Settings
"settings.title": "Settings",
"settings.language": "Language",
"settings.theme": "Theme",
"settings.save": "Save Changes",
"settings.profile": "Profile",
"settings.preferences": "Preferences",
"settings.api_keys": "Exchange API Keys",
"settings.quick_settings": "Quick Settings",
"settings.email_notifications": "Email Notifications",
"settings.auto_update": "Auto Update Strategies",
"settings.demo_mode": "Demo Mode",
"settings.version": "Version",
"settings.last_updated": "Last Updated",
"settings.light": "Light",
"settings.dark": "Dark (Coming Soon)",
"settings.indonesian": "Indonesian",
"settings.english": "English",
"settings.api_info": "API Keys will be used by the next version of QuantumBotX to access non-MT5 brokers.",
"settings.api_placeholder": "This feature will be available in the next QuantumBotX API version.",
// Trading Bots
"bots.title": "Trading Bots",
"bots.manage": "Manage all your bots and strategies.",
"bots.start_all_title": "Start all paused bots",
"bots.stop_all_title": "Stop all active bots",
"bots.name_market": "Name / Market",
"bots.parameters": "Parameters",
"bots.configuration": "Configuration",
"bots.actions": "Actions",
"bots.create_edit_modal": "Modal for Creating/Editing Bot",
"bots.create_new": "🚀 Create New Bot",
"bots.close_modal": "Close modal",
"bots.row_name_market": "Row 1: Name & Market",
"bots.row_lot_sl_tp": "Row 2: Lot, SL, TP",
"bots.row_timeframe_interval": "Row 3: Timeframe & Interval",
"bots.enable_strategy_switching": "Enable Automatic Strategy Switching",
"bots.strategy_switching_info": "If enabled, the bot will automatically switch to the best strategy based on current performance.",
"bots.row_strategy_params": "Row 4: Strategy & Its Parameters",
"bots.strategy_params_loaded": "Strategy parameters will be loaded here by JavaScript",
"bots.create_bot": "Create Bot",
"bots.cancel": "Cancel",
"bots.example_name": "Example: XAUUSD Hybrid H1",
"bots.example_market": "Example: XAUUSD or EURUSD",
"bots.timeframe_1m": "1 Minute",
"bots.timeframe_5m": "5 Minutes",
"bots.timeframe_15m": "15 Minutes",
"bots.timeframe_30m": "30 Minutes",
"bots.timeframe_1h": "1 Hour",
"bots.timeframe_4h": "4 Hours",
"bots.timeframe_1d": "1 Day",
"bots.select_strategy": "Select a strategy",
"bots.detail_title": "Bot Detail - QuantumBotX",
// Profile
"profile.title": "Profile",
"profile.my_profile": "My Profile",
"profile.loading": "Loading...",
"profile.joined_since": "Joined since: July 2025",
"profile.save_changes": "Save Changes",
"profile.password_placeholder": "••••••••",
// Holidays
"holiday.countdown.iftar": "⏱️ Iftar Countdown",
"holiday.countdown.christmas": "🎄 Christmas Countdown",
"holiday.countdown.new_year": "🎆 New Year Countdown",
"holiday.countdown.days_until": "days until",
"holiday.patience_reminder": "🧘‍♂️ Patience Reminder",
"holiday.risk_adjustment": "🛡️ Risk Adjustment",
"holiday.risk_reduction": "Automatic risk reduction",
"holiday.optimal_trading_hours": "⏰ Optimal Trading Hours",
"holiday.christmas_greeting": "✨ Christmas Greeting",
"holiday.lot_adjustment": "📏 Lot Adjustment",
"holiday.lot_reduction": "Lot size reduction",
"holiday.new_year_resolution": "🎯 Trading Resolution",
"holiday.new_year_goal_setting": "The perfect time to set your trading goals for the year",
// Backtesting
"backtest.enhanced_engine_active": "🚀 Enhanced Backtesting Engine Active",
"backtest.includes": "Your backtesting now includes:",
"backtest.realistic_spread": "Realistic spread costs",
"backtest.actual_costs": "Actual trading costs deducted",
"backtest.atr_risk": "ATR-based risk management",
"backtest.dynamic_sizing": "Dynamic position sizing",
"backtest.instrument_protection": "Instrument protection",
"backtest.gold_safeguards": "Gold trading safeguards",
"backtest.slippage": "Slippage simulation",
"backtest.accurate_modeling": "More accurate execution modeling",
"backtest.upload_data": "Upload Historical Data (CSV)",
"backtest.enhanced": "🚀 Enhanced",
"backtest.dynamic_sl": "Dynamic SL based on volatility",
"backtest.dynamic_tp": "Dynamic TP based on volatility",
"backtest.run": "Run Backtest",
"backtest.results": "Backtest Results",
"backtest.history_title": "Backtest History - QuantumBotX",
"backtest.running": "Running simulation...",
// History
"history.title": "Global Transaction History",
"history.description": "All closed transactions from the MetaTrader 5 account.",
"history.symbol": "Symbol",
"history.type": "Type",
"history.volume": "Volume",
"history.profit": "Profit",
"history.close_time": "Close Time",
"history.magic": "Magic Number",
"history.loading": "Loading history...",
// Portfolio
"portfolio.title": "Real-Time Portfolio",
"portfolio.description": "Open trading positions in the MetaTrader 5 account.",
"portfolio.pnl_chart": "Open Profit/Loss Chart (Real-Time)",
"portfolio.open_pnl_total": "Open P/L Total",
"portfolio.allocation_chart": "Asset Allocation",
"portfolio.symbol": "Symbol",
"portfolio.type": "Type",
"portfolio.volume": "Volume",
"portfolio.open_price": "Open Price",
"portfolio.profit_loss": "Profit/Loss",
"portfolio.magic": "Magic Number",
"portfolio.loading": "Loading open positions...",
"portfolio.no_open_positions": "No open positions yet",
// Market Data
"market.forex_title": "Forex Market",
"market.forex_description": "Real-time price data from the foreign exchange market.",
"market.stocks_title": "Stocks Market",
"market.stocks_description": "Real-time price data from the global stock market.",
"market.pair": "Pair",
"market.bid_price": "Bid Price",
"market.ask_price": "Ask Price",
"market.spread": "Spread",
"market.stock": "Stock",
"market.price": "Price",
"market.change_24h": "24h Change",
"market.time": "Time",
"market.loading": "Loading data...",
"market.close": "Close",
// Strategy Switcher
"strategy_switcher.title": "Strategy Switcher Dashboard",
"strategy_switcher.header": "🔄 Automatic Strategy Switcher",
"strategy_switcher.subtitle": "Real-time monitoring and performance analytics for automatic strategy switching",
"strategy_switcher.current_status": "Current Status",
"strategy_switcher.manual_evaluate": "Manual Evaluate",
"strategy_switcher.loading": "Loading...",
"strategy_switcher.cooldown_active": "Cooldown Active",
"strategy_switcher.active": "Active",
"strategy_switcher.active_strategy": "Active Strategy",
"strategy_switcher.active_symbol": "Active Symbol",
"strategy_switcher.last_switch": "Last Switch",
"strategy_switcher.never": "Never",
"strategy_switcher.performance_rankings": "📊 Strategy Performance Rankings",
"strategy_switcher.refresh_rankings": "Refresh Rankings",
"strategy_switcher.rank": "Rank",
"strategy_switcher.strategy_symbol": "Strategy/Symbol",
"strategy_switcher.composite_score": "Composite Score",
"strategy_switcher.profitability": "Profitability",
"strategy_switcher.risk_control": "Risk Control",
"strategy_switcher.market_fit": "Market Fit",
"strategy_switcher.no_rankings": "No strategy rankings available",
"strategy_switcher.recent_switches": "⚡ Recent Strategy Switches",
"strategy_switcher.refresh_switches": "Refresh Switches",
"strategy_switcher.no_switches": "No strategy switches recorded yet.",
"strategy_switcher.monitored_instruments": "🔍 Monitored Instruments & Strategies",
"strategy_switcher.instruments": "Instruments",
"strategy_switcher.strategies": "Strategies",
"strategy_switcher.none": "None",
"strategy_switcher.switch_from": "Switched from",
"strategy_switcher.switch_to": "to",
"strategy_switcher.initialized_with": "Initialized with",
"strategy_switcher.manual_trigger_confirm": "Are you sure you want to manually trigger strategy evaluation?",
"strategy_switcher.loading_strategy_rankings": "Loading strategy rankings...",
"strategy_switcher.loading_recent_switches": "Loading recent switches...",
"strategy_switcher.monitored_instruments_strategies": "🔍 Monitored Instruments & Strategies",
"strategy_switcher.score": "Score:",
"strategy_switcher.no_strategy_rankings": "No strategy rankings available",
"strategy_switcher.switched_from": "Switched from",
"strategy_switcher.switched_to": "to",
"strategy_switcher.no_strategy_switches": "No strategy switches recorded yet.",
"strategy_switcher.strategy_performance_rankings": "📊 Strategy Performance Rankings",
"strategy_switcher.recent_strategy_switches": "⚡ Recent Strategy Switches",
// Ramadan
"ramadan.title": "Ramadan Trading Mode",
"ramadan.page_title": "🌙 Ramadan Trading Mode - QuantumBotX",
"ramadan.header": "🌙 Ramadan Trading Mode",
"ramadan.subtitle": "Holy month with trading features that respect fasting worship",
"ramadan.info": "This mode is automatically active during Ramadan and will adjust your trading settings to respect worship times. You don't need to activate it manually.",
"ramadan.status": "Ramadan Status",
"ramadan.period": "Ramadan Period",
"ramadan.greeting": "Ramadan Greeting",
"ramadan.iftar_countdown": "⏱️ Iftar Countdown",
"ramadan.hours": "Hours",
"ramadan.minutes": "Minutes",
"ramadan.until": "Until",
"ramadan.trading_adjustments": "⚙️ Trading Adjustments",
"ramadan.fasting_times": "Fasting Rest Times",
"ramadan.suhoor": "Sahur",
"ramadan.suhoor_time": "03:30 - 05:00 WIB",
"ramadan.iftar_time": "Iftar",
"ramadan.iftar_time_range": "18:00 - 19:30 WIB",
"ramadan.tarawih": "Tarawih",
"ramadan.tarawih_time": "20:00 - 21:30 WIB",
"ramadan.risk_adjustments": "Risk Adjustments",
"ramadan.reduced_risk_mode": "Reduced Risk Mode",
"ramadan.reduced_risk_description": "20% risk reduction during fasting",
"ramadan.patience_mode": "Patience Mode",
"ramadan.patience_mode_description": "Focus on quality not quantity",
"ramadan.optimal_hours": "Optimal Hours",
"ramadan.optimal_hours_time": "22:00 - 03:00 WIB",
"ramadan.zakat_calculator": "💰 Trading Zakat Calculator",
"ramadan.zakat_information": "Zakat Information",
"ramadan.gold_nisab": "Gold Nisab",
"ramadan.silver_nisab": "Silver Nisab",
"ramadan.zakat_percentage": "Zakat Percentage",
"ramadan.zakat_reminder": "Zakat Reminder",
"ramadan.zakat_trading_reminder": "Trading zakat: 2.5% of trading profits during 1 hijri year. Don't forget to calculate zakat from your trading profits during Ramadan.",
"ramadan.patience_reminder": "🧘‍♂️ Patience Reminder",
"ramadan.loading": "Loading...",
"ramadan.active": "Active",
"ramadan.inactive": "Inactive",
"ramadan.not_ramadan": "Not Ramadan period",
"ramadan.default_greeting": "Time to fast, time to trade with blessings",
// Other
"common.close": "Close",
"common.yes": "Yes",
"common.no": "No",
// Notifications
"notifications.loading": "Loading notifications...",
// AI Mentor Settings
"ai_mentor.settings_title": "⚙️ AI Mentor Settings - QuantumBotX"
}
},
// Current language
currentLang: localStorage.getItem('quantumBotX_language') || 'id',
// Initialize i18n system
init: function() {
this.loadLanguage();
this.setupLanguageSwitcher();
this.applyTranslations();
},
// Load saved language preference
loadLanguage: function() {
const saved = localStorage.getItem('quantumBotX_language');
if (saved && this.translations[saved]) {
this.currentLang = saved;
}
},
// Set up language switcher buttons (works with existing buttons in header)
setupLanguageSwitcher: function() {
// Update button states based on current language
this.updateLanguageButtonState();
// Add click handlers to all language buttons
document.addEventListener('click', (e) => {
if (e.target.classList.contains('lang-btn')) {
e.preventDefault();
const newLang = e.target.dataset.lang;
if (newLang && newLang !== this.currentLang) {
this.setLanguage(newLang);
}
}
});
},
// Update the visual state of language buttons
updateLanguageButtonState: function() {
const langBtns = document.querySelectorAll('.lang-btn');
langBtns.forEach(btn => {
const btnLang = btn.dataset.lang;
if (btnLang === this.currentLang) {
btn.classList.add('bg-blue-600', 'text-white');
btn.classList.remove('text-gray-600', 'hover:bg-gray-100');
} else {
btn.classList.remove('bg-blue-600', 'text-white');
btn.classList.add('text-gray-600', 'hover:bg-gray-100');
}
});
},
// Set active language
setLanguage: function(lang) {
if (!this.translations[lang]) {
console.warn(`Language '${lang}' not available`);
return;
}
this.currentLang = lang;
localStorage.setItem('quantumBotX_language', lang);
// Update the visual state of the buttons
this.updateLanguageButtonState();
this.applyTranslations();
this.onLanguageChange(lang);
},
// Get translated text
t: function(key, fallback = null) {
const translation = this.translations[this.currentLang]?.[key];
if (translation) return translation;
// Fallback to English if available
if (this.currentLang !== 'en' && this.translations.en?.[key]) {
return this.translations.en[key];
}
// Use fallback or return key
return fallback || key;
},
applyTranslations: function() {
// Handle page title translation using a data attribute on the <title> tag
const titleElement = document.querySelector('title');
if (titleElement) {
const titleKey = titleElement.getAttribute('data-i18n-key');
if (titleKey) {
const translatedTitle = this.t(titleKey);
// Fallback to original text if key not found, then append base title
document.title = (translatedTitle !== titleKey ? translatedTitle : titleElement.textContent.split(' - ')[0]) + ' - QuantumBotX';
}
}
// Elements with data-i18n attribute
document.querySelectorAll('[data-i18n]').forEach(element => {
const key = element.getAttribute('data-i18n');
const translation = this.t(key);
// Different element types handle text differently
if (element.tagName === 'INPUT' || element.tagName === 'TEXTAREA') {
if (element.type === 'submit' || element.type === 'button') {
element.value = translation;
} else if (element.placeholder) {
element.placeholder = translation;
} else {
element.textContent = translation;
}
} else if (element.tagName === 'OPTION') {
element.textContent = translation;
} else {
// Use innerHTML to allow for simple HTML tags in translations
element.innerHTML = translation;
}
});
// Title attributes
document.querySelectorAll('[data-i18n-title]').forEach(element => {
const key = element.getAttribute('data-i18n-title');
element.title = this.t(key);
});
// Placeholder attributes
document.querySelectorAll('[data-i18n-placeholder]').forEach(element => {
const key = element.getAttribute('data-i18n-placeholder');
element.placeholder = this.t(key);
});
},
// Callback when language changes
onLanguageChange: function(newLang) {
// The applyTranslations function is called by setLanguage, which already handles the title.
// So, no specific title logic is needed here anymore.
// Trigger custom event for pages to handle
const event = new CustomEvent('languageChanged', { detail: { language: newLang } });
document.dispatchEvent(event);
// Show feedback
this.showLanguageChangeFeedback(newLang);
},
// Show brief feedback when language changes
showLanguageChangeFeedback: function(lang) {
const langName = lang === 'id' ? 'Indonesia' : 'English';
const feedback = document.createElement('div');
feedback.className = 'fixed bottom-4 right-4 bg-green-500 text-white px-4 py-2 rounded-lg shadow-lg z-50 transition-opacity';
feedback.textContent = `Language: ${langName}`;
document.body.appendChild(feedback);
// Auto remove after 2 seconds
setTimeout(() => {
feedback.style.opacity = '0';
setTimeout(() => feedback.remove(), 300);
}, 2000);
},
// Add new translation key dynamically
addTranslation: function(lang, key, value) {
if (!this.translations[lang]) {
this.translations[lang] = {};
}
this.translations[lang][key] = value;
},
// Get current language
getCurrentLanguage: function() {
return this.currentLang;
},
// Check if language is available
isLanguageAvailable: function(lang) {
return Boolean(this.translations[lang]);
}
};
// Initialize when DOM loads
document.addEventListener('DOMContentLoaded', function() {
window.QuantumBotXI18n.init();
});
// Export for module use (optional)
if (typeof module !== 'undefined' && module.exports) {
module.exports = window.QuantumBotXI18n;
}