9.0 KiB
Чеклист локализации
Фаза 1: Инфраструктура ✅ ЗАВЕРШЕНО
- Добавить колонку
langв таблицуusers - Создать миграцию
sql/add_user_language.sql - Применить миграцию к БД
- Создать
LanguageHandlers - Добавить методы в
ProfileService(getUserLanguage, updateUserLanguage) - Интегрировать выбор языка в
/start - Добавить обработку callback
set_lang_* - Обновить
ru.json(секция language) - Обновить
en.json(секция language) - Создать документацию
- Создать скрипт поиска хардкода
- Протестировать выбор языка
Фаза 2: Замена хардкод-текстов ⚠️ В ПРОЦЕССЕ
Приоритет 1: Обработчики (HIGH)
callbackHandlers.ts (90 текстов)
- Просмотр профилей (showProfile, showNextCandidate) - ~15 текстов
- Редактирование профиля (edit_name, edit_age, edit_bio) - ~20 текстов
- Лайки и матчи (handleLike, handleMatch) - ~10 текстов
- VIP функции (handleVIPSearch, translateProfile) - ~15 текстов
- Меню и кнопки - ~20 текстов
- Прочие обработчики - ~10 текстов
Прогресс: 0/90 (0%)
messageHandlers.ts (21 текст)
- Создание профиля (handleCreateProfile) - ~8 текстов
- Ввод данных профиля (name, age, city, bio) - ~8 текстов
- Валидация ввода - ~5 текстов
Прогресс: 0/21 (0%)
notificationHandlers.ts (31 текст)
- Настройки уведомлений - ~15 текстов
- Меню уведомлений - ~10 текстов
- Обработка включения/выключения - ~6 текстов
Прогресс: 0/31 (0%)
Приоритет 2: Сервисы (MEDIUM)
notificationService.ts (22 текста)
- Уведомления о лайках - ~8 текстов
- Уведомления о матчах - ~8 текстов
- Уведомления о сообщениях - ~6 текстов
Прогресс: 0/22 (0%)
Приоритет 3: Контроллеры (MEDIUM)
vipController.ts (21 текст)
- VIP поиск - ~10 текстов
- Фильтры - ~8 текстов
- Перевод анкет - ~3 текста
Прогресс: 0/21 (0%)
profileEditController.ts (21 текст)
- Редактирование полей - ~15 текстов
- Валидация - ~6 текстов
Прогресс: 0/21 (0%)
Приоритет 4: Команды (LOW)
commandHandlers.ts (6 текстов)
- Справка (/help) - ~3 текста
- Команды - ~3 текста
Прогресс: 0/6 (0%)
Прочие файлы (LOW)
- enhancedChatHandlers.ts (4 текста)
- likeBackHandler.ts (2 текста)
Прогресс: 0/6 (0%)
ИТОГО ФАЗА 2: 0/239 (0%)
Фаза 3: Переводы ⏳ НЕ НАЧАТО
Базовые секции (для всех 9 языков)
- language.* - Секция управления языком
- es (Español)
- fr (Français)
- de (Deutsch)
- it (Italiano)
- pt (Português)
- ko (한국어)
- zh (中文)
- ja (日本語)
- kk (Қазақша)
- uz (O'zbek)
Полные переводы
После завершения Фазы 2, перевести все новые ключи:
- es.json (Español) - 0% готовности
- fr.json (Français) - 0% готовности
- de.json (Deutsch) - 0% готовности
- it.json (Italiano) - 0% готовности
- pt.json (Português) - 0% готовности
- ko.json (한국어) - 0% готовности
- zh.json (中文) - 0% готовности
- ja.json (日本語) - 0% готовности
- kk.json (Қазақша) - 0% готовности
- uz.json (O'zbek) - 0% готовности
Примечание: Нанять native speakers или использовать профессиональные сервисы перевода.
Фаза 4: Дополнительные функции ⏳ НЕ НАЧАТО
- Добавить кнопку "🌍 Язык" в настройки
- Создать команду
/language - Добавить автоопределение языка по
msg.from.language_code(опционально) - Написать тесты для локализации
- Создать админ-панель для управления переводами (опционально)
Прогресс по файлам
| Файл | Текстов | Заменено | % | Статус |
|---|---|---|---|---|
| callbackHandlers.ts | 90 | 0 | 0% | ⏳ Не начато |
| notificationHandlers.ts | 31 | 0 | 0% | ⏳ Не начато |
| notificationService.ts | 22 | 0 | 0% | ⏳ Не начато |
| messageHandlers.ts | 21 | 0 | 0% | ⏳ Не начато |
| vipController.ts | 21 | 0 | 0% | ⏳ Не начато |
| profileEditController.ts | 21 | 0 | 0% | ⏳ Не начато |
| commandHandlers.ts | 6 | 0 | 0% | ⏳ Не начато |
| enhancedChatHandlers.ts | 4 | 0 | 0% | ⏳ Не начато |
| likeBackHandler.ts | 2 | 0 | 0% | ⏳ Не начато |
ОБЩИЙ ПРОГРЕСС: 0/218 (0%)
(Исключены скрипты: cleanDb.ts, createTestData.ts, getDatabaseInfo.ts, enhanceNotifications.ts, add-premium-columns.ts)
Оценка времени
| Фаза | Задача | Время | Статус |
|---|---|---|---|
| 1 | Инфраструктура | 4-6 ч | ✅ Завершено |
| 2 | Замена хардкода | 15-22 ч | ⏳ 0% |
| 3 | Переводы (9 языков) | 18-27 ч | ⏳ 0% |
| 4 | Доп. функции | 3-5 ч | ⏳ 0% |
ИТОГО: 40-60 часов работы
ВЫПОЛНЕНО: ~5 часов (инфраструктура)
ОСТАЛОСЬ: ~35-55 часов
Еженедельные цели
Неделя 1 (текущая)
- Создать инфраструктуру локализации
- Заменить тексты в callbackHandlers.ts (90 текстов)
- Заменить тексты в messageHandlers.ts (21 текст)
Цель: Завершить 111 замен (46% от общего)
Неделя 2
- Заменить тексты в notificationHandlers.ts (31 текст)
- Заменить тексты в notificationService.ts (22 текста)
- Заменить тексты в контроллерах (42 текста)
Цель: Завершить 95 замен (40% от общего)
Неделя 3
- Заменить оставшиеся тексты (12 текстов)
- Начать переводы базовых секций (language.*)
- Перевести 3-4 языка
Цель: Завершить замены (100%), переводы (40%)
Неделя 4
- Завершить переводы всех 9 языков
- Добавить кнопку смены языка в настройки
- Финальное тестирование
- Деплой в production
Цель: 100% готовности системы локализации
Метрики качества
- Все хардкод-тексты заменены (0/218)
- Все языковые файлы содержат одинаковые ключи (0/10)
- Нет TypeScript ошибок
- Нет runtime ошибок при переключении языков
- Все кнопки и меню работают на всех языках
- Документация обновлена
- Написаны тесты (опционально)
Как обновлять этот файл
После замены текстов в файле, обновите прогресс:
#### callbackHandlers.ts (90 текстов)
- [x] Просмотр профилей (showProfile, showNextCandidate) - ~15 текстов ✅
- [ ] Редактирование профиля (edit_name, edit_age, edit_bio) - ~20 текстов
...
**Прогресс:** 15/90 (17%) ⚠️ В процессе
Примечания
- ⏳ = Не начато
- ⚠️ = В процессе
- ✅ = Завершено
- ❌ = Заблокировано
Последнее обновление: 06.11.2025
Статус проекта: Фаза 1 завершена, Фаза 2 готова к старту
Общий прогресс: ~10% (инфраструктура готова)