// NOFX i18n Consolidation - Translation Keys
// Generated by Atlas Orchestrator
// Branch: feat/i18n-consolidation-patch
// Purpose: Centralize scattered i18n strings from 8 strategy components

// ============================================================================
// COIN SOURCE TRANSLATIONS (40 keys)
// ============================================================================
export const coinSource = {
  sourceType: { zh: '数据来源类型', en: 'Source Type', es: 'Tipo de Fuente' },
  static: { zh: '静态列表', en: 'Static List', es: 'Lista Estática' },
  ai500: { zh: 'AI500 数据源', en: 'AI500 Data Provider', es: 'Proveedor AI500' },
  oi_top: { zh: 'OI 持仓增加', en: 'OI Increase', es: 'Aumento OI' },
  oi_low: { zh: 'OI 持仓减少', en: 'OI Decrease', es: 'Disminución OI' },
  hyper_all: { zh: 'Hyperliquid 全市场', en: 'Hyperliquid All Markets', es: 'Hyperliquid Todos' },
  hyper_main: { zh: 'Hyperliquid 主流市场', en: 'Hyperliquid Main Markets', es: 'Hyperliquid Principales' },
  staticCoins: { zh: '自定义币种', en: 'Custom Coins', es: 'Monedas Personalizadas' },
  addCoin: { zh: '添加币种', en: 'Add Coin', es: 'Agregar Moneda' },
  useAI500: { zh: '启用 AI500 数据源', en: 'Enable AI500 Data Provider', es: 'Habilitar AI500' },
  ai500Limit: { zh: '数量上限', en: 'Limit', es: 'Límite' },
  useOITop: { zh: '启用 OI 持仓增加榜', en: 'Enable OI Increase', es: 'Habilitar Aumento OI' },
  oiTopLimit: { zh: '数量上限', en: 'Limit', es: 'Límite' },
  useOILow: { zh: '启用 OI 持仓减少榜', en: 'Enable OI Decrease', es: 'Habilitar Disminución OI' },
  oiLowLimit: { zh: '数量上限', en: 'Limit', es: 'Límite' },
  useHyperAll: { zh: '启用 Hyperliquid 全部 USDC 合约', en: 'Enable all Hyperliquid USDC perps', es: 'Habilitar todos Hyperliquid USDC' },
  useHyperMain: { zh: '启用 Hyperliquid 成交额主流市场', en: 'Enable top Hyperliquid markets by volume', es: 'Habilitar principales por volumen' },
  hyperMainLimit: { zh: '扫描数量', en: 'Scan Limit', es: 'Límite' },
  staticDesc: { zh: '手动指定交易币种列表', en: 'Manually specify trading coins', es: 'Especificar monedas manualmente' },
  maxCoins: { zh: '最多', en: 'Up to', es: 'Hasta' },
  coins: { zh: '个币种', en: 'coins', es: 'monedas' },
  dataSourceConfig: { zh: '数据源配置', en: 'Data Source Configuration', es: 'Configuración de Fuente' },
  excludedCoins: { zh: '排除币种', en: 'Excluded Coins', es: 'Monedas Excluidas' },
  excludedCoinsDesc: { zh: '这些币种将从所有数据源中排除，不会被交易', en: 'These coins will be excluded from all sources and will not be traded', es: 'Estas monedas serán excluidas de todas las fuentes' },
  addExcludedCoin: { zh: '添加排除', en: 'Add Excluded', es: 'Agregar Excluida' },
  nofxosNote: { zh: '使用 NofxOS API Key（在指标配置中设置）', en: 'Uses NofxOS API Key (set in Indicators config)', es: 'Usa API Key de NofxOS' },
  ai500Desc: { zh: '使用 AI500 智能筛选的热门币种', en: 'Use AI500 smart-filtered popular coins', es: 'Monedas filtradas por AI500' },
  oi_topDesc: { zh: '持仓增加榜，适合做多', en: 'OI increase ranking, for long', es: 'Ranking OI creciente, para largo' },
  oi_lowDesc: { zh: '持仓减少榜，适合做空', en: 'OI decrease ranking, for short', es: 'Ranking OI decreciente, para corto' },
  hyper_allDesc: { zh: '一键扫描 Hyperliquid 所有 USDC 美股/大宗/加密合约', en: 'Scan every Hyperliquid USDC equity, commodity and crypto perp', es: 'Escanear todos los perps USDC' },
  hyper_mainDesc: { zh: '优先扫描成交额最高的 Hyperliquid USDC 市场', en: 'Scan the highest-volume Hyperliquid USDC markets first', es: 'Escanear mercados USDC principales' },
  hyperAssetsNote: { zh: '覆盖 TSLA、NVDA、AAPL、GOLD、SILVER、BTC、ETH 等 Hyperliquid 上线的 USDC 合约；资产列表由 Hyperliquid 实时拉取。', en: 'Covers listed Hyperliquid USDC perps such as TSLA, NVDA, AAPL, GOLD, SILVER, BTC and ETH; the tradable universe is pulled live from Hyperliquid.', es: 'Cubre perps USDC listados en Hyperliquid.' },
  oiIncreaseShort: { zh: 'OI增', en: 'OI↑', es: 'OI↑' },
  oiDecreaseShort: { zh: 'OI减', en: 'OI↓', es: 'OI↓' },
  custom: { zh: '自定义', en: 'Custom', es: 'Personalizado' },
  excludedNone: { zh: '无', en: 'None', es: 'Ninguno' },
  oiIncreaseTitle: { zh: 'OI 持仓增加榜', en: 'OI Increase', es: 'OI Aumento' },
  oiDecreaseTitle: { zh: 'OI 持仓减少榜', en: 'OI Decrease', es: 'OI Disminución' },
  oiIncreaseLabel: { zh: 'OI 增加', en: 'OI Increase', es: 'OI Aumento' },
  forLong: { zh: '适合做多', en: 'For long', es: 'Para largo' },
  oiDecreaseLabel: { zh: 'OI 减少', en: 'OI Decrease', es: 'OI Disminución' },
  forShort: { zh: '适合做空', en: 'For short', es: 'Para corto' },
};

// ============================================================================
// GRID CONFIG TRANSLATIONS (60+ keys)
// ============================================================================
export const gridConfig = {
  tradingPair: { zh: '交易设置', en: 'Trading Setup', es: 'Configuración de Trading' },
  gridParameters: { zh: '网格参数', en: 'Grid Parameters', es: 'Parámetros de Grid' },
  priceBounds: { zh: '价格边界', en: 'Price Bounds', es: 'Límites de Precio' },
  riskControl: { zh: '风险控制', en: 'Risk Control', es: 'Control de Riesgo' },
  symbol: { zh: '交易对', en: 'Trading Pair', es: 'Par de Trading' },
  symbolDesc: { zh: '选择要进行网格交易的交易对', en: 'Select trading pair for grid trading', es: 'Seleccionar par para grid trading' },
  totalInvestment: { zh: '投资金额 (USDT)', en: 'Investment (USDT)', es: 'Inversión (USDT)' },
  totalInvestmentDesc: { zh: '网格策略的总投资金额', en: 'Total investment for grid strategy', es: 'Inversión total' },
  leverage: { zh: '杠杆倍数', en: 'Leverage', es: 'Apalancamiento' },
  leverageDesc: { zh: '交易使用的杠杆倍数 (1-5)', en: 'Leverage for trading (1-5)', es: 'Apalancamiento (1-5)' },
  gridCount: { zh: '网格数量', en: 'Grid Count', es: 'Cantidad de Grids' },
  gridCountDesc: { zh: '网格层级数量 (5-50)', en: 'Number of grid levels (5-50)', es: 'Niveles (5-50)' },
  distribution: { zh: '资金分配方式', en: 'Distribution', es: 'Distribución' },
  distributionDesc: { zh: '网格层级的资金分配方式', en: 'Fund allocation across grid levels', es: 'Asignación de fondos' },
  uniform: { zh: '均匀分配', en: 'Uniform', es: 'Uniforme' },
  gaussian: { zh: '高斯分配 (推荐)', en: 'Gaussian (Recommended)', es: 'Gaussiana (Recomendado)' },
  pyramid: { zh: '金字塔分配', en: 'Pyramid', es: 'Pirámide' },
  useAtrBounds: { zh: '自动计算边界 (ATR)', en: 'Auto-calculate Bounds (ATR)', es: 'Calcular Límites (ATR)' },
  useAtrBoundsDesc: { zh: '基于 ATR 自动计算网格上下边界', en: 'Auto-calculate bounds based on ATR', es: 'Calcular límites automáticamente' },
  atrMultiplier: { zh: 'ATR 倍数', en: 'ATR Multiplier', es: 'Multiplicador ATR' },
  atrMultiplierDesc: { zh: '边界距离当前价格的 ATR 倍数', en: 'ATR multiplier for bounds distance', es: 'Distancia en ATR' },
  upperPrice: { zh: '上边界价格', en: 'Upper Price', es: 'Precio Superior' },
  upperPriceDesc: { zh: '网格上边界价格 (0=自动计算)', en: 'Grid upper bound (0=auto)', es: 'Límite superior (0=auto)' },
  lowerPrice: { zh: '下边界价格', en: 'Lower Price', es: 'Precio Inferior' },
  lowerPriceDesc: { zh: '网格下边界价格 (0=自动计算)', en: 'Grid lower bound (0=auto)', es: 'Límite inferior (0=auto)' },
  maxDrawdown: { zh: '最大回撤 (%)', en: 'Max Drawdown (%)', es: 'Máximo Drawdown (%)' },
  maxDrawdownDesc: { zh: '触发紧急退出的最大回撤百分比', en: 'Max drawdown before emergency exit', es: 'Drawdown máximo' },
  stopLoss: { zh: '止损 (%)', en: 'Stop Loss (%)', es: 'Stop Loss (%)' },
  stopLossDesc: { zh: '单仓位止损百分比', en: 'Stop loss per position', es: 'Stop loss por posición' },
  dailyLossLimit: { zh: '日损失限制 (%)', en: 'Daily Loss Limit (%)', es: 'Límite Diario (%)' },
  dailyLossLimitDesc: { zh: '每日最大亏损百分比', en: 'Maximum daily loss percentage', es: 'Pérdida diaria máxima' },
  useMakerOnly: { zh: '仅使用 Maker 订单', en: 'Maker Only Orders', es: 'Solo Maker' },
  useMakerOnlyDesc: { zh: '使用限价单以降低手续费', en: 'Use limit orders for lower fees', es: 'Órdenes límite para menos fees' },
  directionAdjust: { zh: '方向自动调整', en: 'Direction Auto-Adjust', es: 'Ajuste Automático de Dirección' },
  enableDirectionAdjust: { zh: '启用方向调整', en: 'Enable Direction Adjust', es: 'Habilitar Ajuste' },
  enableDirectionAdjustDesc: { zh: '根据箱体突破自动调整网格方向', en: 'Auto-adjust grid direction based on box breakouts', es: 'Ajustar según breaks' },
  directionBiasRatio: { zh: '偏向强度', en: 'Bias Strength', es: 'Intensidad de Sesgo' },
  directionBiasRatioDesc: { zh: '偏多/偏空模式的强度', en: 'Strength for long_bias/short_bias modes', es: 'Fuerza del sesgo' },
  directionBiasExplain: { zh: '偏多模式：X%买 + (100-X)%卖 | 偏空模式：(100-X)%买 + X%卖', en: 'Long bias: X% buy + (100-X)% sell | Short bias: (100-X)% buy + X% sell', es: 'Sesgo largo: X% compra | Sesgo corto: X% venta' },
  directionExplain: { zh: '短期箱体突破 → 偏向，中期箱体突破 → 全仓，价格回归 → 逐步恢复中性', en: 'Short box breakout → bias, Mid box breakout → full, Price return → gradually recover to neutral', es: 'Break corto → sesgo, Break medio → full' },
  directionModes: { zh: '方向模式说明', en: 'Direction Modes', es: 'Descripción de Modos' },
  modeNeutral: { zh: '中性：50%买 + 50%卖（默认）', en: 'Neutral: 50% buy + 50% sell (default)', es: 'Neutral: 50% compra + 50% venta' },
  modeLongBias: { zh: '偏多：X%买 + (100-X)%卖', en: 'Long Bias: X% buy + (100-X)% sell', es: 'Sesgo Largo: X% compra' },
  modeLong: { zh: '全多：100%买 + 0%卖', en: 'Long: 100% buy + 0% sell', es: 'Largo: 100% compra' },
  modeShortBias: { zh: '偏空：(100-X)%买 + X%卖', en: 'Short Bias: (100-X)% buy + X% sell', es: 'Sesgo Corto: X% venta' },
  modeShort: { zh: '全空：0%买 + 100%卖', en: 'Short: 0% buy + 100% sell', es: 'Corto: 100% venta' },
  buy: { zh: '买', en: 'buy', es: 'compra' },
  sell: { zh: '卖', en: 'sell', es: 'venta' },
};

// ============================================================================
// GRID RISK TRANSLATIONS (50 keys)
// ============================================================================
export const gridRisk = {
  gridRisk: { zh: '网格风控', en: 'Grid Risk', es: 'Riesgo de Grid' },
  leverageInfo: { zh: '杠杆', en: 'Leverage', es: 'Apalancamiento' },
  positionInfo: { zh: '仓位', en: 'Position', es: 'Posición' },
  liquidationInfo: { zh: '清算', en: 'Liquidation', es: 'Liquidación' },
  marketState: { zh: '市场', en: 'Market', es: 'Mercado' },
  boxState: { zh: '箱体', en: 'Box', es: 'Caja' },
  currentLeverage: { zh: '当前', en: 'Current', es: 'Actual' },
  effectiveLeverage: { zh: '有效', en: 'Effective', es: 'Efectivo' },
  recommendedLeverage: { zh: '建议', en: 'Recommend', es: 'Recomendado' },
  currentPosition: { zh: '当前', en: 'Current', es: 'Actual' },
  maxPosition: { zh: '最大', en: 'Max', es: 'Máximo' },
  positionPercent: { zh: '占比', en: 'Usage', es: 'Uso' },
  liquidationPrice: { zh: '清算价', en: 'Liq Price', es: 'Precio Liquidación' },
  liquidationDistance: { zh: '距离', en: 'Distance', es: 'Distancia' },
  regimeLevel: { zh: '波动', en: 'Regime', es: 'Regulación' },
  currentPrice: { zh: '价格', en: 'Price', es: 'Precio' },
  breakoutLevel: { zh: '突破', en: 'Breakout', es: 'Breakout' },
  breakoutDirection: { zh: '方向', en: 'Direction', es: 'Dirección' },
  shortBox: { zh: '短期', en: 'Short', es: 'Corto' },
  midBox: { zh: '中期', en: 'Mid', es: 'Medio' },
  longBox: { zh: '长期', en: 'Long', es: 'Largo' },
  narrow: { zh: '窄幅', en: 'Narrow', es: 'Estrecho' },
  standard: { zh: '标准', en: 'Standard', es: 'Estándar' },
  wide: { zh: '宽幅', en: 'Wide', es: 'Ancho' },
  volatile: { zh: '剧烈', en: 'Volatile', es: 'Volátil' },
  trending: { zh: '趋势', en: 'Trending', es: 'Tendencia' },
  none: { zh: '无', en: 'None', es: 'Ninguno' },
  short: { zh: '短期', en: 'Short', es: 'Corto' },
  mid: { zh: '中期', en: 'Mid', es: 'Medio' },
  long: { zh: '长期', en: 'Long', es: 'Largo' },
  up: { zh: '↑', en: '↑', es: '↑' },
  down: { zh: '↓', en: '↓', es: '↓' },
  loading: { zh: '加载中...', en: 'Loading...', es: 'Cargando...' },
  error: { zh: '加载失败', en: 'Load Failed', es: 'Error al Cargar' },
  noData: { zh: '暂无数据', en: 'No Data', es: 'Sin Datos' },
};

// ============================================================================
// RISK CONTROL TRANSLATIONS (25+ keys)
// ============================================================================
export const riskControl = {
  positionLimits: { zh: '仓位限制', en: 'Position Limits', es: 'Límites de Posición' },
  maxPositions: { zh: '最大持仓数量', en: 'Max Positions', es: 'Máximo de Posiciones' },
  maxPositionsDesc: { zh: '同时持有的最大币种数量', en: 'Maximum coins held simultaneously', es: 'Monedas máximas simultáneas' },
  tradingLeverage: { zh: '交易杠杆（交易所杠杆）', en: 'Trading Leverage (Exchange)', es: 'Apalancamiento (Exchange)' },
  btcEthLeverage: { zh: 'BTC/ETH 交易杠杆', en: 'BTC/ETH Trading Leverage', es: 'BTC/ETH Apalancamiento' },
  btcEthLeverageDesc: { zh: '交易所开仓使用的杠杆倍数', en: 'Exchange leverage for opening positions', es: 'Apalancamiento del exchange' },
  altcoinLeverage: { zh: '山寨币交易杠杆', en: 'Altcoin Trading Leverage', es: 'Apalancamiento Altcoins' },
  altcoinLeverageDesc: { zh: '交易所开仓使用的杠杆倍数', en: 'Exchange leverage for opening positions', es: 'Apalancamiento del exchange' },
  positionValueRatio: { zh: '仓位价值比例（代码强制）', en: 'Position Value Ratio (CODE ENFORCED)', es: 'Ratio de Valor (CÓDIGO)' },
  positionValueRatioDesc: { zh: '单仓位名义价值 / 账户净值，由代码强制执行', en: 'Position notional value / equity, enforced by code', es: 'Valor nominal / equity' },
  btcEthPositionValueRatio: { zh: 'BTC/ETH 仓位价值比例', en: 'BTC/ETH Position Value Ratio', es: 'BTC/ETH Ratio de Valor' },
  btcEthPositionValueRatioDesc: { zh: '单仓最大名义价值 = 净值 × 此值（代码强制）', en: 'Max position value = equity × this ratio (CODE ENFORCED)', es: 'Valor máximo = equity × ratio' },
  altcoinPositionValueRatio: { zh: '山寨币仓位价值比例', en: 'Altcoin Position Value Ratio', es: 'Altcoin Ratio de Valor' },
  altcoinPositionValueRatioDesc: { zh: '单仓最大名义价值 = 净值 × 此值（代码强制）', en: 'Max position value = equity × this ratio (CODE ENFORCED)', es: 'Valor máximo = equity × ratio' },
  riskParameters: { zh: '风险参数', en: 'Risk Parameters', es: 'Parámetros de Riesgo' },
  minRiskReward: { zh: '最小风险回报比', en: 'Min Risk/Reward Ratio', es: 'Ratio Riesgo/Recompensa Mínimo' },
  minRiskRewardDesc: { zh: '开仓要求的最低盈亏比', en: 'Minimum profit ratio for entry', es: 'Ratio mínimo para entrada' },
  maxMarginUsage: { zh: '最大保证金使用率（代码强制）', en: 'Max Margin Usage (CODE ENFORCED)', es: 'Uso Máximo de Margen (CÓDIGO)' },
  maxMarginUsageDesc: { zh: '保证金使用率上限，由代码强制执行', en: 'Maximum margin utilization, enforced by code', es: 'Límite de margen' },
  entryRequirements: { zh: '开仓要求', en: 'Entry Requirements', es: 'Requisitos de Entrada' },
  minPositionSize: { zh: '最小开仓金额', en: 'Min Position Size', es: 'Tamaño Mínimo' },
  minPositionSizeDesc: { zh: 'USDT 最小名义价值', en: 'Minimum notional value in USDT', es: 'Valor mínimo en USDT' },
  minConfidence: { zh: '最小信心度', en: 'Min Confidence', es: 'Confianza Mínima' },
  minConfidenceDesc: { zh: 'AI 开仓信心度阈值', en: 'AI confidence threshold for entry', es: 'Umbral de confianza AI' },
};

// ============================================================================
// PROMPT SECTIONS TRANSLATIONS (12+ keys)
// ============================================================================
export const promptSections = {
  promptSections: { zh: 'System Prompt 自定义', en: 'System Prompt Customization', es: 'Personalización de Prompt' },
  promptSectionsDesc: { zh: '自定义 AI 行为和决策逻辑（输出格式和风控规则不可修改）', en: 'Customize AI behavior and decision logic (output format and risk rules are fixed)', es: 'Personalizar comportamiento AI' },
  roleDefinition: { zh: '角色定义', en: 'Role Definition', es: 'Definición de Rol' },
  roleDefinitionDesc: { zh: '定义 AI 的身份和核心目标', en: 'Define AI identity and core objectives', es: 'Definir identidad AI' },
  tradingFrequency: { zh: '交易频率', en: 'Trading Frequency', es: 'Frecuencia de Trading' },
  tradingFrequencyDesc: { zh: '设定交易频率预期和过度交易警告', en: 'Set trading frequency expectations and overtrading warnings', es: 'Establecer frecuencia' },
  entryStandards: { zh: '开仓标准', en: 'Entry Standards', es: 'Estándares de Entrada' },
  entryStandardsDesc: { zh: '定义开仓信号条件和避免事项', en: 'Define entry signal conditions and avoidances', es: 'Definir señales de entrada' },
  decisionProcess: { zh: '决策流程', en: 'Decision Process', es: 'Proceso de Decisión' },
  decisionProcessDesc: { zh: '设定决策步骤和思考流程', en: 'Set decision steps and thinking process', es: 'Establecer proceso' },
  resetToDefault: { zh: '重置为默认', en: 'Reset to Default', es: 'Restablecer' },
  chars: { zh: '字符', en: 'chars', es: 'caracteres' },
  modified: { zh: '已修改', en: 'Modified', es: 'Modificado' },
};

// ============================================================================
// INDICATOR TRANSLATIONS (75+ keys)
// ============================================================================
export const indicator = {
  marketData: { zh: '市场数据', en: 'Market Data', es: 'Datos de Mercado' },
  marketDataDesc: { zh: 'AI 分析所需的核心价格数据', en: 'Core price data for AI analysis', es: 'Datos de precio esenciales' },
  technicalIndicators: { zh: '技术指标', en: 'Technical Indicators', es: 'Indicadores Técnicos' },
  technicalIndicatorsDesc: { zh: '可选的技术分析指标，AI 可自行计算', en: 'Optional indicators, AI can calculate them', es: 'Indicadores opcionales' },
  marketSentiment: { zh: '市场情绪', en: 'Market Sentiment', es: 'Sentimiento de Mercado' },
  marketSentimentDesc: { zh: '持仓量、资金费率等市场情绪数据', en: 'OI, funding rate and market sentiment data', es: 'OI, funding rate' },
  quantData: { zh: '量化数据', en: 'Quant Data', es: 'Datos Quant' },
  quantDataDesc: { zh: '资金流向、大户动向', en: 'Netflow, whale movements', es: 'Netflow, ballenas' },
  timeframes: { zh: '时间周期', en: 'Timeframes', es: 'Marcos de Tiempo' },
  timeframesDesc: { zh: '选择 K 线分析周期，★ 为主周期（双击设置）', en: 'Select K-line timeframes, ★ = primary (double-click)', es: 'Seleccionar timeframes' },
  klineCount: { zh: 'K 线数量', en: 'K-line Count', es: 'Cantidad de Velas' },
  scalp: { zh: '超短', en: 'Scalp', es: 'Scalp' },
  intraday: { zh: '日内', en: 'Intraday', es: 'Intradía' },
  swing: { zh: '波段', en: 'Swing', es: 'Swing' },
  position: { zh: '趋势', en: 'Position', es: 'Posición' },
  rawKlines: { zh: 'OHLCV 原始 K 线', en: 'Raw OHLCV K-lines', es: 'Velas OHLCV' },
  rawKlinesDesc: { zh: '必须 - 开高低收量原始数据，AI 核心分析依据', en: 'Required - Open/High/Low/Close/Volume data for AI', es: 'Datos esenciales para AI' },
  required: { zh: '必须', en: 'Required', es: 'Requerido' },
  ema: { zh: 'EMA 均线', en: 'EMA', es: 'EMA' },
  emaDesc: { zh: '指数移动平均线', en: 'Exponential Moving Average', es: 'Media Móvil Exponencial' },
  macd: { zh: 'MACD', en: 'MACD', es: 'MACD' },
  macdDesc: { zh: '异同移动平均线', en: 'Moving Average Convergence Divergence', es: 'Convergencia/Divergencia' },
  rsi: { zh: 'RSI', en: 'RSI', es: 'RSI' },
  rsiDesc: { zh: '相对强弱指标', en: 'Relative Strength Index', es: 'Índice de Fuerza Relativa' },
  atr: { zh: 'ATR', en: 'ATR', es: 'ATR' },
  atrDesc: { zh: '真实波幅均值', en: 'Average True Range', es: 'Rango Promedio Verdadero' },
  boll: { zh: 'BOLL 布林带', en: 'Bollinger Bands', es: 'Bandas de Bollinger' },
  bollDesc: { zh: '布林带指标（上中下轨）', en: 'Upper/Middle/Lower Bands', es: 'Bandas Superior/Inferior' },
  volume: { zh: '成交量', en: 'Volume', es: 'Volumen' },
  volumeDesc: { zh: '交易量分析', en: 'Trading volume analysis', es: 'Análisis de volumen' },
  oi: { zh: '持仓量', en: 'Open Interest', es: 'Interés Abierto' },
  oiDesc: { zh: '合约未平仓量', en: 'Futures open interest', es: 'Posiciones abiertas' },
  fundingRate: { zh: '资金费率', en: 'Funding Rate', es: 'Funding Rate' },
  fundingRateDesc: { zh: '永续合约资金费率', en: 'Perpetual funding rate', es: 'Rate de perpetuo' },
  oiRanking: { zh: 'OI 排行', en: 'OI Ranking', es: 'Ranking OI' },
  oiRankingDesc: { zh: '持仓量增减排行', en: 'OI change ranking', es: 'Cambios de OI' },
  oiRankingNote: { zh: '显示持仓量增加/减少的币种排行，帮助发现资金流向', en: 'Shows coins with OI increase/decrease, helps identify capital flow', es: 'Identificar flujo de capital' },
  netflowRanking: { zh: '资金流向', en: 'NetFlow', es: 'Flujo de Fondos' },
  netflowRankingDesc: { zh: '机构/散户资金流向', en: 'Institution/retail fund flow', es: 'Institucional/Retail' },
  netflowRankingNote: { zh: '显示机构资金流入/流出排行，散户动向对比，发现聪明钱信号', en: 'Shows institution inflow/outflow ranking, retail flow comparison, Smart Money signals', es: 'Señales de Smart Money' },
  priceRanking: { zh: '涨跌幅排行', en: 'Price Ranking', es: 'Ranking de Precios' },
  priceRankingDesc: { zh: '涨跌幅排行榜', en: 'Gainers/losers ranking', es: 'Ganadores/Perdedores' },
  priceRankingNote: { zh: '显示涨幅/跌幅排行，结合资金流和持仓变化分析趋势强度', en: 'Shows top gainers/losers, combined with fund flow and OI for trend analysis', es: 'Analizar fuerza de tendencia' },
  priceRankingMulti: { zh: '多周期', en: 'Multi-period', es: 'Multi-período' },
  duration: { zh: '周期', en: 'Duration', es: 'Duración' },
  limit: { zh: '数量', en: 'Limit', es: 'Límite' },
  aiCanCalculate: { zh: '💡 提示：AI 可自行计算这些指标，开启可减少 AI 计算量', en: '💡 Tip: AI can calculate these, enabling reduces AI workload', es: '💡 AI puede calcularlos' },
  nofxosTitle: { zh: 'NofxOS 量化数据源', en: 'NofxOS Data Provider', es: 'Proveedor NofxOS' },
  nofxosDesc: { zh: '专业加密货币量化数据服务', en: 'Professional crypto quant data service', es: 'Servicio crypto quant' },
  nofxosFeatures: { zh: 'AI500 · OI排行 · 资金流向 · 涨跌榜', en: 'AI500 · OI Ranking · Fund Flow · Price Ranking', es: 'AI500 · OI · NetFlow · Ranking' },
  viewApiDocs: { zh: 'API 文档', en: 'API Docs', es: 'Docs API' },
  apiKey: { zh: 'API Key', en: 'API Key', es: 'API Key' },
  apiKeyPlaceholder: { zh: '输入 NofxOS API Key', en: 'Enter NofxOS API Key', es: 'Ingresar API Key' },
  fillDefault: { zh: '填入默认', en: 'Fill Default', es: 'Llenar Default' },
  connected: { zh: '已配置', en: 'Configured', es: 'Configurado' },
  notConfigured: { zh: '未配置', en: 'Not Configured', es: 'No Configurado' },
  nofxosDataSources: { zh: 'NofxOS 数据源', en: 'NofxOS Data Sources', es: 'Fuentes NofxOS' },
  configureApiKey: { zh: '请配置 API Key 以启用 NofxOS 数据源', en: 'Please configure API Key to enable NofxOS data sources', es: 'Configure API Key para habilitar NofxOS' },
};

// ============================================================================
// PUBLISH SETTINGS TRANSLATIONS (8 keys)
// ============================================================================
export const publishSettings = {
  publishToMarket: { zh: '发布到策略市场', en: 'Publish to Market', es: 'Publicar al Mercado' },
  publishDesc: { zh: '策略将在市场公开展示，其他用户可发现并使用', en: 'Strategy will be publicly visible in the marketplace', es: 'Visible públicamente' },
  showConfig: { zh: '公开配置参数', en: 'Show Config', es: 'Mostrar Config' },
  showConfigDesc: { zh: '允许他人查看和复制详细配置', en: 'Allow others to view and clone config details', es: 'Permitir clonación' },
  private: { zh: '私有', en: 'PRIVATE', es: 'PRIVADO' },
  public: { zh: '公开', en: 'PUBLIC', es: 'PÚBLICO' },
  hidden: { zh: '隐藏', en: 'HIDDEN', es: 'OCULTO' },
  visible: { zh: '可见', en: 'VISIBLE', es: 'VISIBLE' },
};

// ============================================================================
// CHART TABS TRANSLATIONS (5 keys)
// ============================================================================
export const chartTabs = {
  crypto: { zh: '加密', en: 'Crypto', es: 'Cripto' },
  stocks: { zh: '美股', en: 'Stocks', es: 'Acciones' },
  forex: { zh: '外汇', en: 'Forex', es: 'Forex' },
  metals: { zh: '金属', en: 'Metals', es: 'Metales' },
  hyperliquid: { zh: 'HL', en: 'HL', es: 'HL' },
};

// ============================================================================
// HELPER FUNCTION
// ============================================================================

export function ts(entry: { zh: string; en: string; [k: string]: string }, lang: string): string {
  return entry[lang] ?? entry.en ?? ''
}

// ============================================================================
// AGGREGATED EXPORTS FOR TRANSLATIONS.TS
// ============================================================================

export const zhStrategy = {
  ...Object.fromEntries(Object.entries(coinSource).map(([k, v]) => [k, v.zh])),
  ...Object.fromEntries(Object.entries(gridConfig).map(([k, v]) => [k, v.zh])),
  ...Object.fromEntries(Object.entries(gridRisk).map(([k, v]) => [k, v.zh])),
  ...Object.fromEntries(Object.entries(riskControl).map(([k, v]) => [k, v.zh])),
  ...Object.fromEntries(Object.entries(promptSections).map(([k, v]) => [k, v.zh])),
  ...Object.fromEntries(Object.entries(indicator).map(([k, v]) => [k, v.zh])),
  ...Object.fromEntries(Object.entries(publishSettings).map(([k, v]) => [k, v.zh])),
  ...Object.fromEntries(Object.entries(chartTabs).map(([k, v]) => [k, v.zh])),
};

export const enStrategy = {
  ...Object.fromEntries(Object.entries(coinSource).map(([k, v]) => [k, v.en])),
  ...Object.fromEntries(Object.entries(gridConfig).map(([k, v]) => [k, v.en])),
  ...Object.fromEntries(Object.entries(gridRisk).map(([k, v]) => [k, v.en])),
  ...Object.fromEntries(Object.entries(riskControl).map(([k, v]) => [k, v.en])),
  ...Object.fromEntries(Object.entries(promptSections).map(([k, v]) => [k, v.en])),
  ...Object.fromEntries(Object.entries(indicator).map(([k, v]) => [k, v.en])),
  ...Object.fromEntries(Object.entries(publishSettings).map(([k, v]) => [k, v.en])),
  ...Object.fromEntries(Object.entries(chartTabs).map(([k, v]) => [k, v.en])),
};

export const esStrategy = {
  ...Object.fromEntries(Object.entries(coinSource).map(([k, v]) => [k, v.es])),
  ...Object.fromEntries(Object.entries(gridConfig).map(([k, v]) => [k, v.es])),
  ...Object.fromEntries(Object.entries(gridRisk).map(([k, v]) => [k, v.es])),
  ...Object.fromEntries(Object.entries(riskControl).map(([k, v]) => [k, v.es])),
  ...Object.fromEntries(Object.entries(promptSections).map(([k, v]) => [k, v.es])),
  ...Object.fromEntries(Object.entries(indicator).map(([k, v]) => [k, v.es])),
  ...Object.fromEntries(Object.entries(publishSettings).map(([k, v]) => [k, v.es])),
  ...Object.fromEntries(Object.entries(chartTabs).map(([k, v]) => [k, v.es])),
};
