feat(i18n): migrate all hardcoded Russian text to i18n

- Replace all hardcoded Russian strings with t() calls across 30+ files
- Add ~500 new translation keys to all 4 locales (ru, en, zh, fa)
- Convert module-level config objects to labelKey pattern
- Remove Russian fallbacks from t() calls (fallbackLng handles it)
- Replace DeepLinkRedirect custom i18n with standard t() calls
- Fix subscription.servers key collision (string vs object)
This commit is contained in:
c0mrade
2026-01-27 22:19:41 +03:00
parent d837f8050c
commit 9707ad97a4
34 changed files with 5275 additions and 1075 deletions

View File

@@ -560,8 +560,8 @@ export default function Wheel() {
>
<CalendarIcon />
<span className="font-semibold">
{t('wheel.payWithDays')} ({config.spin_cost_days}{' '}
{config.spin_cost_days === 1 ? t('wheel.day') : t('wheel.days')})
{t('wheel.payWithDays')} (
{t('wheel.days', { count: config.spin_cost_days ?? 0 })})
</span>
</button>
)}
@@ -603,8 +603,7 @@ export default function Wheel() {
>
<CalendarIcon />
<span className="font-semibold">
{config.spin_cost_days}{' '}
{config.spin_cost_days === 1 ? t('wheel.day') : t('wheel.days')}
{t('wheel.days', { count: config.spin_cost_days ?? 0 })}
</span>
</button>
)}