feat: Full UI internationalization, pool hashrate stats, and layout caching
- Replace all hardcoded English strings with TR() translation keys across every tab, dialog, and component (~20 UI files) - Expand all 8 language files (de, es, fr, ja, ko, pt, ru, zh) with complete translations (~37k lines added) - Improve i18n loader with exe-relative path fallback and English base fallback for missing keys - Add pool-side hashrate polling via pool stats API in xmrig_manager - Introduce Layout::beginFrame() per-frame caching and refresh balance layout config only on schema generation change - Offload daemon output parsing to worker thread - Add CJK subset fallback font for Chinese/Japanese/Korean glyphs
This commit is contained in:
@@ -11,19 +11,10 @@ const std::vector<ExchangeInfo>& getExchangeRegistry()
|
||||
{
|
||||
static const std::vector<ExchangeInfo> registry = {
|
||||
{
|
||||
"TradeOgre",
|
||||
"https://tradeogre.com",
|
||||
"Nonkyc.io",
|
||||
"https://nonkyc.io",
|
||||
{
|
||||
{"DRGX", "BTC", "DRGX/BTC", "https://tradeogre.com/exchange/DRGX-BTC"},
|
||||
{"DRGX", "LTC", "DRGX/LTC", "https://tradeogre.com/exchange/DRGX-LTC"},
|
||||
{"DRGX", "USDT", "DRGX/USDT", "https://tradeogre.com/exchange/DRGX-USDT"},
|
||||
}
|
||||
},
|
||||
{
|
||||
"Exbitron",
|
||||
"https://www.exbitron.com",
|
||||
{
|
||||
{"DRGX", "USDT", "DRGX/USDT", "https://www.exbitron.com/trading/drgxusdt"},
|
||||
{"DRGX", "USDT", "DRGX/USDT", "https://nonkyc.io/market/DRGX_USDT"},
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
@@ -162,6 +162,9 @@ struct PoolMiningState {
|
||||
int64_t memory_used = 0;
|
||||
int threads_active = 0;
|
||||
|
||||
// Pool-side hashrate (from pool stats API)
|
||||
double pool_hashrate = 0;
|
||||
|
||||
// Hashrate history for chart (mirrors MiningInfo::hashrate_history)
|
||||
std::vector<double> hashrate_history;
|
||||
static constexpr int MAX_HISTORY = 60; // 5 minutes at ~5s intervals
|
||||
|
||||
Reference in New Issue
Block a user