feat: add i18n support for candidate coins warnings (#516)

- Add 13 translation keys for candidate coins warnings in both English and Chinese
- Update App.tsx to use t() function for all warning text
- Update AITradersPage.tsx to use t() function for signal source warnings
- Ensure proper internationalization for all user-facing messages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
CoderMageFox
2025-11-05 17:35:38 +08:00
committed by GitHub
parent 0c371c834a
commit f7391adff9
3 changed files with 46 additions and 17 deletions

View File

@@ -1044,12 +1044,12 @@ function DecisionCard({
? '#F6465D'
: '#848E9C'
}}>
: {decision.candidate_coins?.length || 0}
{t('candidateCoins', language)}: {decision.candidate_coins?.length || 0}
</span>
</div>
)}
{/* 候选币种为0的警告提示 */}
{/* Candidate Coins Warning */}
{decision.candidate_coins && decision.candidate_coins.length === 0 && (
<div
className="text-sm rounded px-4 py-3 mb-3 flex items-start gap-3"
@@ -1061,21 +1061,21 @@ function DecisionCard({
>
<AlertTriangle size={16} className="flex-shrink-0 mt-0.5" />
<div className="flex-1">
<div className="font-semibold mb-1"> 0</div>
<div className="font-semibold mb-1"> {t('candidateCoinsZeroWarning', language)}</div>
<div className="text-xs space-y-1" style={{ color: '#848E9C' }}>
<div></div>
<div>{t('possibleReasons', language)}</div>
<ul className="list-disc list-inside space-y-0.5 ml-2">
<li>API未配置或无法访问</li>
<li>API连接超时或返回数据为空</li>
<li>API获取失败</li>
<li>{t('coinPoolApiNotConfigured', language)}</li>
<li>{t('apiConnectionTimeout', language)}</li>
<li>{t('noCustomCoinsAndApiFailed', language)}</li>
</ul>
<div className="mt-2">
<strong></strong>
<strong>{t('solutions', language)}</strong>
</div>
<ul className="list-disc list-inside space-y-0.5 ml-2">
<li></li>
<li>API地址</li>
<li>"使用币种池""使用OI Top"</li>
<li>{t('setCustomCoinsInConfig', language)}</li>
<li>{t('orConfigureCorrectApiUrl', language)}</li>
<li>{t('orDisableCoinPoolOptions', language)}</li>
</ul>
</div>
</div>