Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
This commit is contained in:
TIANHE
2026-01-31 02:59:49 +08:00
parent 2853e83885
commit 0b37aa4a67
58 changed files with 11231 additions and 8698 deletions
+225 -78
View File
@@ -26,7 +26,7 @@ const locale = {
'menu.dashboard': 'Dashboard',
'menu.dashboard.analysis': 'AI Analysis',
'menu.dashboard.indicator': 'Indicator Analysis',
'menu.dashboard.community': 'Official Community',
'menu.dashboard.community': 'Indicator Market',
'menu.dashboard.tradingAssistant': 'Trading Assistant',
'menu.dashboard.portfolio': 'Portfolio',
'menu.dashboard.globalMarket': 'Global Market',
@@ -634,13 +634,17 @@ const locale = {
'dashboard.indicator.section.custom': 'My Created Indicators',
'dashboard.indicator.section.bought': 'Purchased Indicators',
'dashboard.indicator.section.myCreated': 'My Created Indicators',
'dashboard.indicator.section.purchased': 'Purchased Indicators',
'dashboard.indicator.empty': 'No indicators, please add or create indicators first',
'dashboard.indicator.emptyPurchased': 'No purchased indicators, check out the market',
'dashboard.indicator.buy': 'Buy Indicators',
'dashboard.indicator.action.start': 'Start',
'dashboard.indicator.action.stop': 'Stop',
'dashboard.indicator.action.edit': 'Edit',
'dashboard.indicator.action.delete': 'Delete',
'dashboard.indicator.action.backtest': 'Backtest',
'dashboard.indicator.action.publish': 'Publish to Community',
'dashboard.indicator.action.unpublish': 'Published (Click to Manage)',
'dashboard.indicator.status.normal': 'Active',
'dashboard.indicator.status.normalPermanent': 'Active (Permanent)',
'dashboard.indicator.status.expired': 'Expired',
@@ -656,6 +660,22 @@ const locale = {
'dashboard.indicator.delete.failed': 'Failed to delete',
'dashboard.indicator.save.success': 'Saved successfully',
'dashboard.indicator.save.failed': 'Failed to save',
'dashboard.indicator.publish.title': 'Publish to Community',
'dashboard.indicator.publish.editTitle': 'Manage Publication',
'dashboard.indicator.publish.hint': 'After publishing, other users can view and purchase your indicator in the "Indicator Community"',
'dashboard.indicator.publish.pricingType': 'Pricing Type',
'dashboard.indicator.publish.free': 'Free',
'dashboard.indicator.publish.paid': 'Paid',
'dashboard.indicator.publish.price': 'Price',
'dashboard.indicator.publish.description': 'Description',
'dashboard.indicator.publish.descriptionPlaceholder': 'Enter a detailed description to help others understand your indicator...',
'dashboard.indicator.publish.confirm': 'Publish',
'dashboard.indicator.publish.update': 'Update',
'dashboard.indicator.publish.unpublish': 'Unpublish',
'dashboard.indicator.publish.success': 'Published successfully',
'dashboard.indicator.publish.failed': 'Failed to publish',
'dashboard.indicator.publish.unpublishSuccess': 'Unpublished successfully',
'dashboard.indicator.publish.unpublishFailed': 'Failed to unpublish',
'dashboard.indicator.error.loadWatchlistFailed': 'Failed to load watchlist',
'dashboard.indicator.error.chartNotReady': 'Chart component not initialized, please select a symbol and wait for the chart to load',
'dashboard.indicator.error.chartMethodNotReady': 'Chart component method not ready, please try again later',
@@ -1020,79 +1040,6 @@ const locale = {
'dashboard.docs.detail.error': 'Document does not exist or has been deleted',
'dashboard.docs.search.result': 'Search Results',
'dashboard.docs.search.keyword': 'Keyword',
'community.filter.indicatorType': 'Indicator Type',
'community.filter.all': 'All',
'community.filter.other': 'Other Options',
'community.filter.pricing': 'Pricing Type',
'community.filter.allPricing': 'All Pricing',
'community.filter.sortBy': 'Sort By',
'community.filter.search': 'Search',
'community.filter.searchPlaceholder': 'Search indicator name',
'community.indicatorType.trend': 'Trend',
'community.indicatorType.momentum': 'Momentum',
'community.indicatorType.volatility': 'Volatility',
'community.indicatorType.volume': 'Volume',
'community.indicatorType.custom': 'Custom',
'community.pricing.free': 'Free',
'community.pricing.paid': 'Paid',
'community.sort.downloads': 'Downloads',
'community.sort.rating': 'Rating',
'community.sort.newest': 'Newest',
'community.pagination.total': 'Total {total} indicators',
'community.noDescription': 'No description',
'community.detail.type': 'Type',
'community.detail.pricing': 'Pricing',
'community.detail.rating': 'Rating',
'community.detail.downloads': 'Downloads',
'community.detail.author': 'Author',
'community.detail.description': 'Description',
'community.detail.detailContent': 'Detail Content',
'community.detail.backtestStats': 'Backtest Statistics',
'community.action.purchase': 'Purchase',
'community.action.addToMyIndicators': 'Add to My Indicators',
'community.action.favorite': 'Favorite',
'community.action.unfavorite': 'Unfavorite',
'community.action.buyNow': 'Buy Now',
'community.action.renew': 'Renew',
'community.purchase.price': 'Price',
'community.purchase.permanent': 'Permanent',
'community.purchase.monthly': 'Month',
'community.purchase.confirmBuy': 'Confirm purchase ({price} QDT)?',
'community.purchase.confirmRenew': 'Confirm renewal ({price} QDT/month)?',
'community.purchase.confirmFree': 'Confirm to add this free indicator?',
'community.purchase.confirmTitle': 'Confirm',
'community.purchase.owned': 'You own this indicator (permanent)',
'community.purchase.ownIndicator': 'This is your published indicator',
'community.purchase.expired': 'Your subscription has expired',
'community.purchase.expiresOn': 'Expires on: {date}',
'community.tabs.detail': 'Details',
'community.tabs.backtest': 'Backtest',
'community.tabs.ratings': 'Reviews',
'community.rating.myRating': 'My Rating',
'community.rating.stars': '{count} Stars',
'community.rating.commentPlaceholder': 'Share your experience...',
'community.rating.submit': 'Submit Rating',
'community.rating.modify': 'Edit',
'community.rating.saveModify': 'Save Changes',
'community.rating.cancel': 'Cancel',
'community.rating.selectRating': 'Please select a rating',
'community.rating.success': 'Rating submitted successfully',
'community.rating.modifySuccess': 'Review modified successfully',
'community.rating.failed': 'Failed to submit rating',
'community.rating.noRatings': 'No reviews yet',
'community.backtest.note': 'The above data is from historical backtesting, for reference only, and does not represent future returns',
'community.backtest.noData': 'No backtest data available',
'community.backtest.uploadHint': 'Author has not uploaded backtest data yet',
'community.message.loadFailed': 'Failed to load indicators',
'community.message.purchaseProcessing': 'Processing purchase...',
'community.message.downloadSuccess': 'Indicator added to your list',
'community.message.favoriteSuccess': 'Favorited successfully',
'community.message.unfavoriteSuccess': 'Unfavorited successfully',
'community.message.operationSuccess': 'Operation successful',
'community.message.operationFailed': 'Operation failed',
'community.banner.readOnly': 'Read Only',
'community.banner.loginHint': 'For login or registration, please click the button to jump to an independent page to avoid CSRF issues',
'community.banner.jumpButton': 'Go to Login/Register',
'dashboard.totalEquity': 'Total Equity',
'dashboard.totalPnL': 'Total P&L',
'dashboard.aiStrategies': 'AI Strategies',
@@ -1365,6 +1312,16 @@ const locale = {
'trading-assistant.form.symbols': 'Trading Pairs (Multi-select)',
'trading-assistant.form.symbolHint': 'Symbol format depends on the selected market',
'trading-assistant.form.symbolsHint': 'Select multiple pairs to create strategies for each',
'trading-assistant.form.addSymbol': 'Add Symbol',
'trading-assistant.form.addSymbolTitle': 'Add Symbol to Watchlist',
'trading-assistant.form.searchSymbolPlaceholder': 'Search by code, e.g. BTC, AAPL',
'trading-assistant.form.noSymbolFound': 'No matching symbol found',
'trading-assistant.form.canDirectAdd': 'You can directly add the code',
'trading-assistant.form.searchSymbolHint': 'Enter code to search symbols',
'trading-assistant.form.confirmAdd': 'Confirm Add',
'trading-assistant.form.addSymbolSuccess': 'Symbol added successfully',
'trading-assistant.form.addSymbolFailed': 'Failed to add, please try again',
'trading-assistant.form.pleaseSelectSymbol': 'Please select or enter a symbol',
'trading-assistant.form.symbolHintCrypto': 'Crypto: use trading pairs like BTC/USDT',
'trading-assistant.form.symbolHintGeneral': 'Enter the symbol for the selected market (e.g. 600519, AAPL, EURUSD).',
'trading-assistant.form.initialCapital': 'Initial Capital',
@@ -1428,6 +1385,8 @@ const locale = {
'trading-assistant.form.liveTradingCryptoOnlyHint': 'Live trading is available for Crypto only. Other markets can only push signals.',
'trading-assistant.form.liveTradingNotSupportedHint': 'Live trading is not available for this market',
'trading-assistant.form.broker': 'Broker',
'trading-assistant.form.localDeploymentRequired': '⚠️ Local Deployment Required',
'trading-assistant.form.localDeploymentHint': 'IBKR and MT5 are external trading interfaces that require local deployment of QuantDinger. Cloud SaaS mode is not supported. Please ensure you have installed and configured the trading software (TWS/IB Gateway or MT5 terminal) on your local machine.',
'trading-assistant.form.ibkrConnectionTitle': 'Interactive Brokers Connection',
'trading-assistant.form.ibkrConnectionHint': 'Make sure TWS or IB Gateway is running with API enabled',
'trading-assistant.validation.brokerRequired': 'Please select a broker',
@@ -1450,6 +1409,7 @@ const locale = {
'trading-assistant.placeholders.ibkrAccount': 'Optional, e.g. U1234567',
'trading-assistant.exchange.ibkrConnectionSuccess': 'IBKR connected successfully',
'trading-assistant.exchange.ibkrConnectionFailed': 'IBKR connection failed. Please check if TWS/Gateway is running.',
'trading-assistant.exchange.checkLocalDeployment': 'Please ensure you are running locally. Cloud SaaS does not support external trading interfaces.',
// MT5/Forex configuration
'trading-assistant.form.forexBroker': 'Forex Broker',
'trading-assistant.form.mt5ConnectionTitle': 'MetaTrader 5 Connection',
@@ -2494,6 +2454,8 @@ const locale = {
'profile.creditsLog.actionVipRevoke': 'VIP Revoke',
'profile.creditsLog.actionRegisterBonus': 'Register Bonus',
'profile.creditsLog.actionReferralBonus': 'Referral Bonus',
'profile.creditsLog.actionIndicatorPurchase': 'Indicator Purchase',
'profile.creditsLog.actionIndicatorSale': 'Indicator Sale',
// Profile - Referral
'profile.referral.title': 'Invite Friends',
@@ -2589,6 +2551,8 @@ const locale = {
// Global Market
'globalMarket.title': 'Global Market Dashboard',
'globalMarket.fearGreedShort': 'F&G',
'globalMarket.calendar': 'Calendar',
'globalMarket.lastUpdate': 'Last Update',
'globalMarket.refresh': 'Refresh',
'globalMarket.name': 'Name',
@@ -2604,6 +2568,8 @@ const locale = {
'globalMarket.fearGreedIndex': 'Fear & Greed Index',
'globalMarket.fearGreedTip': 'Fear & Greed Index measures market sentiment, 0 = Extreme Fear, 100 = Extreme Greed',
'globalMarket.volatilityIndex': 'Volatility Index',
'globalMarket.dollarIndex': 'Dollar Index',
'globalMarket.majorIndices': 'Major Indices',
'globalMarket.vixTitle': 'VIX Volatility Index',
'globalMarket.vixTip': 'VIX measures expected market volatility, higher values indicate more market fear',
'globalMarket.extremeFear': 'Extreme Fear',
@@ -2617,9 +2583,10 @@ const locale = {
'globalMarket.crypto': 'Crypto',
'globalMarket.commodities': 'Commodities',
'globalMarket.heatmap': 'Market Heatmap',
'globalMarket.cryptoHeatmap': 'Crypto Heatmap',
'globalMarket.sectorHeatmap': 'Sector Heatmap',
'globalMarket.forexHeatmap': 'Forex Heatmap',
'globalMarket.cryptoHeatmap': 'Crypto',
'globalMarket.commoditiesHeatmap': 'Commodities',
'globalMarket.sectorHeatmap': 'Sectors',
'globalMarket.forexHeatmap': 'Forex',
'globalMarket.opportunities': 'Trading Opportunities',
'globalMarket.noOpportunities': 'No significant opportunities detected',
'globalMarket.financialNews': 'Financial News',
@@ -2647,7 +2614,187 @@ const locale = {
// Trading Assistant
'trading-assistant.form.notificationFromProfile': 'Notifications will be sent to the address configured in your profile.',
'trading-assistant.form.notificationConfigMissing': 'You have not configured parameters for selected channels ({channels}). Please go to your profile to configure them.',
'trading-assistant.form.goToProfile': 'Go to Profile'
'trading-assistant.form.goToProfile': 'Go to Profile',
// Indicator Community
'community.title': 'Indicator Market',
'community.searchPlaceholder': 'Search indicators...',
'community.all': 'All',
'community.freeOnly': 'Free',
'community.paidOnly': 'Paid',
'community.sortNewest': 'Newest',
'community.sortHot': 'Popular',
'community.sortRating': 'Top Rated',
'community.sortPriceLow': 'Price: Low to High',
'community.sortPriceHigh': 'Price: High to Low',
'community.myPurchases': 'My Purchases',
'community.noIndicators': 'No indicators yet',
'community.createFirst': 'Create Your First Indicator',
'community.total': 'Total',
'community.items': 'items',
'community.free': 'Free',
'community.credits': 'Credits',
'community.myIndicator': 'My Indicator',
'community.purchased': 'Purchased',
'community.noDescription': 'No description',
'community.loadFailed': 'Failed to load',
'community.publishedAt': 'Published',
'community.downloads': 'Downloads',
'community.rating': 'Rating',
'community.views': 'Views',
'community.description': 'Description',
'community.performance': 'Live Performance',
'community.strategyCount': 'Strategies',
'community.tradeCount': 'Trades',
'community.winRate': 'Win Rate',
'community.totalProfit': 'Total Profit',
'community.reviews': 'Reviews',
'community.useNow': 'Use Now',
'community.getFree': 'Get Free',
'community.buyNow': 'Buy Now',
'community.purchaseSuccess': 'Purchase successful! Indicator added to your list',
'community.purchaseFailed': 'Purchase failed',
'community.indicator_not_found': 'Indicator not found or unavailable',
'community.cannot_buy_own': 'Cannot buy your own indicator',
'community.already_purchased': 'You have already purchased this indicator',
'community.insufficient_credits': 'Insufficient credits',
'community.commentSuccess': 'Comment submitted',
'community.commentFailed': 'Failed to submit comment',
'community.commentUpdateSuccess': 'Comment updated successfully',
'community.commentUpdateFailed': 'Failed to update comment',
'community.editComment': 'Edit Comment',
'community.cancelEdit': 'Cancel',
'community.updateComment': 'Update Comment',
'community.alreadyCommented': 'You have already reviewed this indicator',
'community.editMyComment': 'Edit Review',
'community.me': 'Me',
'community.edited': 'edited',
'community.not_purchased': 'Please purchase/get the indicator first to leave a review',
'community.cannot_comment_own': 'Cannot review your own indicator',
'community.already_commented': 'You have already reviewed this indicator',
'community.noComments': 'No reviews yet',
'community.yourRating': 'Your Rating',
'community.commentPlaceholder': 'Share your experience...',
'community.submitComment': 'Submit Review',
'community.pleaseRate': 'Please select a rating',
'community.loadMore': 'Load More',
'community.justNow': 'Just now',
'community.minutesAgo': 'minutes ago',
'community.hoursAgo': 'hours ago',
'community.daysAgo': 'days ago',
'community.noPurchases': 'No purchases yet',
'community.purchasedFrom': 'Seller',
'community.purchaseTime': 'Purchase Time',
// Admin Review
'community.admin.reviewTab': 'Review',
'community.admin.pending': 'Pending',
'community.admin.approved': 'Approved',
'community.admin.rejected': 'Rejected',
'community.admin.noItems': 'No items',
'community.admin.noDescription': 'No description',
'community.admin.viewCode': 'View Code',
'community.admin.note': 'Note',
'community.admin.approve': 'Approve',
'community.admin.reject': 'Reject',
'community.admin.unpublish': 'Unpublish',
'community.admin.delete': 'Delete',
'community.admin.deleteConfirm': 'Are you sure to delete this indicator? This cannot be undone.',
'community.admin.unpublishConfirm': 'Are you sure to unpublish this indicator?',
'community.admin.unpublishHint': 'This indicator will be hidden from the market',
'community.admin.confirm': 'Confirm',
'community.admin.cancel': 'Cancel',
'community.admin.approveTitle': 'Approve Indicator',
'community.admin.rejectTitle': 'Reject Indicator',
'community.admin.noteLabel': 'Note (optional)',
'community.admin.notePlaceholder': 'Enter review note...',
'community.admin.loadFailed': 'Failed to load',
'community.admin.reviewSuccess': 'Review submitted',
'community.admin.reviewFailed': 'Review failed',
'community.admin.unpublishSuccess': 'Unpublished successfully',
'community.admin.unpublishFailed': 'Failed to unpublish',
'community.admin.deleteSuccess': 'Deleted successfully',
'community.admin.deleteFailed': 'Failed to delete',
// Fast Analysis
'fastAnalysis.aiAnalysis': 'AI Analysis',
'fastAnalysis.analyzing': 'AI is analyzing...',
'fastAnalysis.pleaseWait': 'Please wait, fetching real-time data and generating professional report',
'fastAnalysis.error': 'Analysis Failed',
'fastAnalysis.retry': 'Retry',
'fastAnalysis.selectSymbol': 'Select a symbol to start',
'fastAnalysis.selectHint': 'Choose from your watchlist or add a new symbol',
'fastAnalysis.confidence': 'Confidence',
'fastAnalysis.currentPrice': 'Current Price',
'fastAnalysis.entryPrice': 'Entry Price',
'fastAnalysis.stopLoss': 'Stop Loss',
'fastAnalysis.takeProfit': 'Take Profit',
'fastAnalysis.stopLossHint': 'Based on 2x ATR & support',
'fastAnalysis.takeProfitHint': 'Based on 3x ATR & resistance',
'fastAnalysis.atrBased': 'ATR-based',
'fastAnalysis.riskReward': 'Risk/Reward',
'fastAnalysis.technical': 'Technical',
'fastAnalysis.fundamental': 'Fundamental',
'fastAnalysis.sentiment': 'Sentiment',
'fastAnalysis.overall': 'Overall',
'fastAnalysis.keyReasons': 'Key Reasons',
'fastAnalysis.risks': 'Risks',
'fastAnalysis.indicators': 'Technical Indicators',
'fastAnalysis.maTrend': 'MA Trend',
'fastAnalysis.support': 'Support',
'fastAnalysis.resistance': 'Resistance',
'fastAnalysis.volatility': 'Volatility',
'fastAnalysis.wasHelpful': 'Was this analysis helpful?',
'fastAnalysis.helpful': 'Helpful',
'fastAnalysis.notHelpful': 'Not Helpful',
'fastAnalysis.feedbackThanks': 'Thanks for your feedback!',
'fastAnalysis.feedbackFailed': 'Failed to submit feedback',
'fastAnalysis.feedbackUnavailable': 'Feedback unavailable, please re-analyze',
'fastAnalysis.analysisTime': 'Analysis time',
'fastAnalysis.startAnalysis': 'Analyze',
'fastAnalysis.history': 'History',
'fastAnalysis.systemTitle': 'QUANTDINGER AI',
'fastAnalysis.systemOnline': 'Online',
'fastAnalysis.version': 'Fast',
'fastAnalysis.preparing': 'Preparing...',
'fastAnalysis.step1': 'Fetching real-time data',
'fastAnalysis.step2': 'Calculating indicators',
'fastAnalysis.step3': 'AI deep analysis',
'fastAnalysis.step4': 'Generating report',
// Detailed analysis titles
'fastAnalysis.technicalAnalysis': 'Technical Analysis',
'fastAnalysis.fundamentalAnalysis': 'Fundamental Analysis',
'fastAnalysis.sentimentAnalysis': 'Market Sentiment',
// Technical indicator signals
'fastAnalysis.signal.bullish': 'Bullish',
'fastAnalysis.signal.bearish': 'Bearish',
'fastAnalysis.signal.neutral': 'Neutral',
'fastAnalysis.signal.overbought': 'Overbought',
'fastAnalysis.signal.oversold': 'Oversold',
'fastAnalysis.signal.strong_bullish': 'Strong Bullish',
'fastAnalysis.signal.strong_bearish': 'Strong Bearish',
// Trend translations
'fastAnalysis.trend.uptrend': 'Uptrend',
'fastAnalysis.trend.downtrend': 'Downtrend',
'fastAnalysis.trend.sideways': 'Sideways',
'fastAnalysis.trend.consolidating': 'Consolidating',
'fastAnalysis.trend.golden_cross': 'Golden Cross',
'fastAnalysis.trend.death_cross': 'Death Cross',
'fastAnalysis.trend.strong_uptrend': 'Strong Uptrend',
'fastAnalysis.trend.strong_downtrend': 'Strong Downtrend',
// Volatility translations
'fastAnalysis.volatilityLevel.high': 'High',
'fastAnalysis.volatilityLevel.medium': 'Medium',
'fastAnalysis.volatilityLevel.low': 'Low',
'fastAnalysis.volatilityLevel.unknown': 'Unknown',
// Market Overview
'fastAnalysis.marketOverview': 'Market Overview',
'fastAnalysis.selectTip': 'Select a symbol from your watchlist to start AI analysis'
}
export default {