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

@@ -112,7 +112,7 @@ export default function TelegramRedirect() {
// Handle retry with limit to prevent infinite loops
const handleRetry = () => {
if (retryCount >= MAX_RETRY_ATTEMPTS) {
setErrorMessage('Превышено количество попыток. Попробуйте позже.');
setErrorMessage(t('telegramRedirect.maxRetries'));
sessionStorage.removeItem(RETRY_COUNT_KEY);
return;
}
@@ -173,7 +173,7 @@ export default function TelegramRedirect() {
</svg>
</div>
<p className="text-dark-200">{t('auth.loginSuccess')}</p>
<p className="mt-2 text-sm text-dark-500">Перенаправление...</p>
<p className="mt-2 text-sm text-dark-500">{t('telegramRedirect.redirecting')}</p>
</div>
)}
@@ -198,7 +198,7 @@ export default function TelegramRedirect() {
{t('auth.tryAgain')}
</button>
<button onClick={() => navigate('/login')} className="btn-secondary w-full">
Войти другим способом
{t('telegramRedirect.loginAlternative')}
</button>
</div>
</div>
@@ -222,11 +222,9 @@ export default function TelegramRedirect() {
/>
</svg>
</div>
<p className="mb-2 text-dark-200">Откройте в Telegram</p>
<p className="mb-6 text-sm text-dark-400">
Для автоматического входа откройте это приложение через бота в Telegram
</p>
<p className="text-sm text-dark-500">Перенаправление на страницу входа...</p>
<p className="mb-2 text-dark-200">{t('telegramRedirect.openInTelegram')}</p>
<p className="mb-6 text-sm text-dark-400">{t('telegramRedirect.openInTelegramDesc')}</p>
<p className="text-sm text-dark-500">{t('telegramRedirect.redirectToLogin')}</p>
</div>
)}