{{ t.icon }} {{ t.text }}

Каталог переводов

Манга, додзинси, ваншоты и истории под нашим переводом.

{{ recommendedIsManual ? 'Советуем прочитать' : 'Случайное на сегодня' }} меняется каждый день

{{ recommendedComic.title }}

Персонажи: {{ recommendedCharacters.join(', ') }}
Автор: {{ cleanAuthor(recommendedComic.author) }}
{{ formatViews(comicTotalViews(recommendedComic)) }}

«{{ recommendedNote }}»

🏆
Лидерборд UmaCity Топ-3
Общий рейтинг тренеров
#{{ rIdx + 1 }} {{ tr.trainer_name }}
Начните вводить текст для поиска среди тайтлов и глав...
Ничего не найдено по запросу «{{ quickSearchQuery }}»
{{ res.avatarFallback || '👤' }}
{{ quickSearchTypeEmoji(res.type) }}
{{ res.title }} {{ quickSearchTypeLabel(res.type) }}
Автор: {{ res.author }} · {{ res.character }} · из «{{ res.comicTitle }}» · {{ res.subtitle }} {{ res.chaptersCount }} глав
→

💖 Поддержать

Собранные средства идут на конкурсы и на покушать

Собрано: {{ formatMoney(totalDonations) }} ₽
➕ Добавить донатера
💝
Пока никого нет. Станьте первым!
{{ idx === 0 ? '🥇' : (idx === 1 ? '🥈' : (idx === 2 ? '🥉' : (idx + 1))) }}
👥

Команда UmaCity

Все те, кто работает с сайтом

➕ Добавить участника
{{ (newMemberName || '?').charAt(0).toUpperCase() }}
Список команды пока пуст.
История обновлений · v{{ currentAppVersion }}

История обновлений UmaCity

Список правок и нововведений

{{ editingChangelogIdx !== null ? '✏️ Редактирование версии' : '➕ Добавить новую версию' }}
Пункты изменений:
📝
История обновлений пока пуста. Добавьте первую версию через форму выше!
v{{ rel.version }} Актуальная
📅 {{ rel.date }}

{{ rel.title }}

{{ chItem.badge || (chItem.type === 'improved' ? 'Улучшено' : (chItem.type === 'fixed' ? 'Исправлено' : 'Новое')) }} {{ chItem.text }}
Спасибо, что читаете UmaCity! 💖
UmaCity Mascot

UmaCity

Все наши переводы + всякое полезное по игре

Инструмент тренера

Планировщик круток и карат

Составьте план по баннерам, оцените будущий доход и заранее узнайте, сколько карат понадобится на гаранты.

Полезный гайд Переводчик игры и утилита

Hachimi Edge для Umamusume

Что умеет утилита, чем полезен перевод интерфейса и как установить её на ПК.

ID клуба: {{ (clubInfo || {}).circle_id || '393183261' }} · {{ clubInfo.updated_at }}

Игровой клуб {{ (clubInfo || {}).name || 'UmaCity' }}

Основной клуб нашего канала.

uma.moe ↗
Ранг круга
{{ (clubInfo || {}).rank || 'A+' }}
Топ #{{ (clubInfo || {}).rank_num || '340' }}
Фанатов за месяц
{{ (clubInfo || {}).fans_month || '1.45B' }}
Всего: {{ (clubInfo || {}).fans_total || '19.2B' }}
Участников
{{ (clubInfo || {}).members_count || 29 }} / {{ (clubInfo || {}).max_members || 30 }}
{{ (((clubInfo || {}).max_members || 30) - ((clubInfo || {}).members_count || 29)) > 0 ? 'Есть свободные места' : 'Мест временно нет' }}
Минимум фанатов
{{ (clubInfo || {}).min_fans || '30M / мес' }}
Лидер: {{ (clubInfo || {}).leader || 'SnowE' }}
Рейтинг и база тренеров UmaCity
Лидерборд по очкам ранга, винрейту, персонажам и поиск игроков по Telegram / ID
👑

Панель управления UmaCity {{ isAdmin ? 'Администратор' : 'Модератор' }}

Статистика посещений, заявки тренеров в клуб и все комментарии сайта

Сводка посещаемости и базы данных
✈️ С привязанным ТГ Аккаунты
{{ stats.tg_users || 0 }}
Визитов: {{ stats.tg_views || 0 }} 🌐 Браузер: {{ stats.browser_tg_users }} За 24ч: +{{ stats.tg_today || 0 }}
🌐 Без аккаунта (Гости) Браузер
{{ stats.guest_users || 0 }}
Визитов: {{ stats.guest_views || 0 }} За 24ч: +{{ stats.guest_today || 0 }}
👁️ Всего визитов Уник: {{ stats.unique_users || 0 }}
{{ stats.total_views || 0 }}
За 24ч: {{ stats.views_today || 0 }} За 7 дн: {{ stats.views_week || 0 }}
📚 Тайтлов: {{ stats.comics || 0 }}
📄 Глав: {{ stats.chapters || 0 }}
🃏 Мета-карт: {{ stats.cards || 0 }}
🌐 Сайтов: {{ stats.sites || 0 }}
Найдено: {{ filteredUniqueUsers.length }}
⏳ Загрузка списка пользователей...
Посетители не найдены.
{{ u.first_name || 'Без имени' }} @{{ u.username.replace('@','') }} ↗ 🌐 Браузер + ТГ 📱 ТГ WebApp 🌐 Браузер (Гость)
ID: {{ u.user_id }} · Всего визитов: {{ u.visits }}
посл: {{ u.last_visit ? u.last_visit.slice(0, 16) : '—' }}
перв: {{ u.first_visit ? u.first_visit.slice(0, 10) : '—' }}

Заявки тренеров на вступление

Всего заявок: {{ clubApplications ? clubApplications.length : 0 }}

Заявок в клуб пока нет.
{{ app.trainer_name }} ID: {{ app.trainer_id }} {{ app.tg_username.startsWith('@') ? app.tg_username : '@' + app.tg_username }} {{ app.status === 'accepted' ? 'Принята ✓' : (app.status === 'rejected' ? 'Отклонена ✕' : 'На рассмотрении ⏳') }} {{ (app.created_at || '').slice(0, 16) }}
📊 Фанатов: {{ app.fan_count }}
«{{ app.comment }}»
📷 Открыть скриншот профиля ↗
Найдено: {{ getFilteredAdminComments().length }}
⏳ Загрузка комментариев...
Комментариев не найдено.
{{ (comm.user_name || 'У').charAt(0).toUpperCase() }}
{{ comm.user_name }} @{{ comm.username }} (ID: {{ comm.user_id }})
{{ formatCommentDate(comm.created_at) }}
📖 {{ comm.comic_title ? (comm.comic_title + ' · ' + (comm.chapter_title || 'Глава')) : (comm.chapter_title || 'Глава') }} (стр. {{ comm.page_num }}) ↳ ответ для {{ comm.reply_to_name }}
{{ comm.text }}

➕ Добавить новый тайтл

Ничего не найдено
{{ sec.title }} {{ sectionComicsFiltered(sec.key).length }} ▼
Перетащите тайтлы сюда (за ручку ⋮⋮)
⋮⋮
+{{ getUnreadCount(item) }}

{{ formatViews(comicTotalViews(item)) }}

Умамусумэ:
Перевод:
Найдено: {{ ((item.chapters || []).filter(c => !item.filterQuery || c.title.toLowerCase().includes(item.filterQuery.toLowerCase()) || (c.character && c.character.toLowerCase().includes(item.filterQuery.toLowerCase())))).length }}

Инструменты тренера

Мета-карты поддержки, турниры CM & LoH и планировщик круток

Ближайший баннер

{{ nearestBannerCard.name || nearestBannerCard.character }}

📅 {{ formatCardDate(nearestBannerCard.release_date) || 'Скоро в игре' }}
{{ countdownDays }} Дней
:
{{ String(countdownHours).padStart(2, '0') }} Час
:
{{ String(countdownMinutes).padStart(2, '0') }} Мин
:
{{ String(countdownSeconds).padStart(2, '0') }} Сек
🎛️ Фильтрация карт
Тир карты
Тип характеристики
Стратегия бега
Год релиза
🃏
Карты по выбранным фильтрам не найдены

Попробуйте изменить стратегию, стат или год выхода

Показано карт: {{ visibleMetaCards.length }}
📅 {{ group.year }} {{ group.cards.length }}
{{ currentOrNextTournament.isCurrentActive ? '🔥 ИДЁТ СЕЙЧАС' : '⏳ СЛЕДУЮЩИЙ ТУРНИР' }} {{ currentOrNextTournament.id }} • {{ currentOrNextTournament.scenario || 'Сценарий' }}

{{ currentOrNextTournament.name }}

📅 EN рейс: {{ currentOrNextTournament.en_date || 'Скоро' }} 📍 {{ currentOrNextTournament.racetrack || '—' }} 📏 {{ currentOrNextTournament.distance }}м ({{ currentOrNextTournament.category }}) {{ currentOrNextTournament.terrain === 'Turf' ? '🌿 Дёрн' : '🏜️ Грязь' }}
🔍
Дистанция:
Покрытие:
Турниры по выбранным фильтрам не найдены.
{{ tour.id }} ★ Текущий / Ближайший

{{ tour.name }}

{{ tour.scenario }}
📅 EN рейс: {{ tour.en_date }} (JP: {{ tour.jp_date }})
Ипподром 📍 {{ tour.racetrack || '—' }}
Дистанция 📏 {{ tour.distance }}м ({{ tour.category }})
Покрытие / Поворот {{ tour.terrain === 'Turf' ? '🌿 Дёрн' : '🏜️ Грязь' }} • {{ tour.direction === 'Right' ? 'Правый ↷' : 'Левый ↶' }}
Сезон / Погода {{ getPvpSeasonRu(tour.season) }} • {{ tour.weather || 'Ясно' }}
Состояние 🏁 {{ tour.condition || 'Firm' }}
Аналог в жизни: 🏆 {{ tour.irl_race }}
💡 Ключевые навыки: {{ tour.season }} Runner, {{ tour.direction }} Turn, {{ tour.category }} Corner

Планировщик круток и карат

Даты баннеров Global, доход карат и расчёт гарантов. Импорт планов из uma.moe и uma.guide.

Каталог обновлён: {{ ppGenDate || '—' }}·Баннеров: {{ ppTotalBanners }} ⏳ Пересчёт…

Стартовый баланс и доход

Доход считается по дням — от даты баланса до конца баннера (для платного до его начала).

≈ {{ ppFmt(ppMonthly) }} /мес
Пресет активности тренера: Автоматически настраивает доход и ивенты
Инвентарь тренера
Караты
Платные
Билеты Умы
Билеты карт
Осколки
Кристаллы
Дата баланса
Доп. карат/мес
Ежемесячный доход
Ежедневные миссии 75/день
Логин-бонус 150/нед
Сюжетные ивенты ~1 500/мес
Забеги легенд ~600/мес До первого LoH · 23.01.2027
Истории Ум
Юбилейные паки карат платные
Билеты из магазина до 7+7/мес
Daily Carat Pack 50/день
Соревнования
Оценка: {{ ppFmt(ppMonthly) }} /мес План пересчитывается автоматически

Мой план {{ ppPlan.length }}

Баннеры в порядке дат, с расчётом карат и статусом готовности.

В плане
{{ ppSummary.banners_count }}
Круток всего
{{ ppFmt(ppSummary.total_target_pulls) }}
Нужно
{{ ppFmt(ppSummary.total_carats_needed) }}
Не хватает
{{ ppFmt(ppSummary.total_deficit_carats) }}
Остаток
{{ ppFmt(ppSummary.final_free_carats) }}
🎯 Обеспеченность плана ({{ ppFmt(ppSummary.total_target_pulls) }} кр.):
До ближайшего баннера: {{ ppDaysToFirst === null ? '—' : (ppDaysToFirst === 0 ? 'идёт сейчас' : ppDaysToFirst + ' ' + ppDayWord(ppDaysToFirst)) }} Нужно {{ ppSummary.monthly_needed > 0 ? '~' + ppFmt(ppSummary.monthly_needed) : '—' }} /мес при доходе ~{{ ppFmt(ppSummary.monthly_income) }} /мес
{{ w }}
…и ещё {{ ppWarnings.length - 2 }}
План пуст
Выберите баннеры в каталоге — здесь появятся даты, стоимость в каратах и дефицит.
{{ idx + 1 }}
Реран
{{ row.start ? ppDate(row.start) : 'дата не объявлена' }}
{{ ppBannerTitle(row.title) }}
В баннере: {{ u.name }} ↗
{{ row.kind === 'support' ? 'Саппорт' : 'Ума' }} Копий: {{ row.copies }}/5 MLB: {{ row.mlb_percent }}% Платный Бесплатных: {{ row.free_pulls_available }}
+{{ ppFmt(row.income_carats) }} (за {{ row.days_window }} дн.)
Остатки:
{{ row.have_crystals }} {{ row.have_shards }} {{ row.have_tickets_trainee }} {{ row.have_tickets_support }}
макс: {{ row.max_pulls }} кр.
{{ row.goal === 'spark' && row.kind === 'support' ? 'Копий' : 'Круток' }}
{{ row.goal === 'free' ? '0 круток' : '200 круток' }}
КристаллыКристаллы
{{ row.crystals }}
Итого по баннеру: {{ row.target_pulls }} {{ ppPullWord(row.target_pulls) }}
Нужнокарат
{{ ppFmt(row.carats_needed) }}
Потрачено
{{ ppFmt(row.carats_used_free + row.carats_used_paid) }}
Не хватает
{{ ppFmt(row.deficit_carats) }}
Остаток
{{ ppFmt(row.carry_free) }}
Накопление: {{ Math.min(row.target_pulls, Math.max(0, row.target_pulls - (row.deficit_pulls || 0))) }} / {{ row.target_pulls }} {{ row.target_pulls > 0 ? Math.min(100, Math.round(((row.target_pulls - (row.deficit_pulls || 0)) / row.target_pulls) * 100)) : 100 }}%
{{ row.deficit_carats > 0 ? 'Не хватает: ' + row.deficit_pulls + ' ' + ppPullWordGen(row.deficit_pulls) : 'Обеспечено на 100%' }}
бесплатных: {{ row.free_pulls_used }} · билетов: {{ row.tickets_used }}
Итого: {{ ppSummary.banners_count }} {{ ppBannerWord(ppSummary.banners_count) }} · {{ ppFmt(ppSummary.total_target_pulls) }} {{ ppPullWord(ppSummary.total_target_pulls) }} · {{ ppFmt(ppSummary.total_carats_needed) }} бесплатных использовано: {{ ppSummary.total_free_pulls_used }} · билетов: {{ ppSummary.total_tickets_used }}

Ивенты и сюжетные награды

Отслеживание по актуальному дню: прошедшие ивенты автоматически становятся серыми и неактивными.

Актуальных: {{ ppUpcomingEnabledCount }}/{{ ppUpcomingTotalCount }} · +{{ ppFmt(ppEventsTotalCarats) }}
Загрузка каталога событий…
Событий не найдено. Попробуйте изменить параметры поиска или фильтра.
{{ ev.date }} СЕГОДНЯ Завершён
+{{ ev.carats }} +{{ ev.paid_carats }} (платн.) +{{ (ev.tickets_support || 0) + (ev.tickets_trainee || 0) }} +{{ ev.shards }}
{{ ppEventCategoryName(ev.category) }} {{ ev.name }}
{{ ppEventDateInfo(ev).text }}

Каталог баннеров {{ ppTotalBanners }}

Показано {{ ppCatalogScenarios.reduce((a, s) => a + s.count, 0) }} {{ ppPlural(ppCatalogScenarios.reduce((a, s) => a + s.count, 0), ['баннер','баннера','баннеров']) }} · сценариев: {{ ppCatalogScenarios.length }}
{{ ppBannerTitle(b.title) }}
{{ ppShortDate(b.start) }} {{ b.kind === 'support' ? 'Карта' : 'Ума' }} {{ b.free_pulls }} беспл. платный Реран прошёл
Ничего не найдено

Как считается план круток

Методика uma.guide/pull-planner в цифрах

Экономика круток

  • 1 крутка = 150
  • 10 круток = 1 500
  • Спарк (гарант) = 200 круток = 30 000
  • Очки обмена (200) НЕ переносятся на следующий баннер
  • 1 спарк = 1 выбранный юнит

Фри-крутки и билеты

  • Бесплатные ежедневные крутки кампании (например 50) идут первыми и не тратят караты
  • Билеты Умы (жёлтые) — только для баннеров Умы
  • Билеты карт (розовые) — только для карт
  • Остаток билетов переносится

Платные баннеры

  • Гарантированные и step-up баннеры покупаются только платными каратами
  • Фри-караты и билеты на них не работают
  • Цена — фиксированные блоки (например 10 круток за 1 500 платных карат)
  • Спарка на них нет

Как считается доход

  • Доход начисляется по календарным дням между текущей датой и концом баннера
  • Для платного баннера доход считается до его начала (покупка происходит сразу)
  • Остаток карат и билетов переносится на следующий баннер
  • Дефицит = не хватает к этому баннеру с учётом всех предыдущих

Источники дохода (в пересчёте на месяц)

  • Дейлики: 75/день ≈ 2 283
  • Логин-бонус: 150/нед ≈ 651
  • Team Trials класс 6: 375/нед ≈ 1 628
  • Клуб SS: 4 500/мес
  • Champions Meeting Graded A (2-е место): 1 800 карат
  • League of Heroes Platinum 4: 3 750 за ивент
  • Daily Carat Pack: 50/день
  • Training Pass: бесплатный 500/мес, платный +1 350/мес
  • Магазин: до 7+7 билетов в месяц
  • Сюжетные ивенты: ≈ 1 500/мес

Что НЕ учитывается

  • Караты за карьеру и альбом
  • Награды за ранги Team Trials
  • Разовые компенсации и подарки
  • Награды за раунды Champions Meeting (только финал)
  • Траты на слоты и предметы
Выбрано: {{ selectedChapterIds.length }}
У вас пока нет глав в избранном.

⭐ Ваши сохранённые главы

{{ ch.title }} ({{ ch.parentTitle }})
{{ formatViews(ch.views || 0) }}
Нет записей с указанными Умамусумэ
Нет записей с указанными авторами
✍️

Каталог авторов

Всего: {{ groupedAuthors.length }}

Календарь арт-дней

Все арт-дни Умамусумэ в нашем канале.

Всего: {{ (artdays || []).length }}

🎨 Добавить арт-день

🎨 Персонажи не найдены
📅 {{ day.date }} {{ day.name }} {{ isArtDayToday(day.date) ? '🔥 Сегодня' : '✨ Скоро' }}

✏️ Редактировать арт-день

Имя персонажа, дата (ДД.ММ или ДД.ММ.ГГ) и ссылка на пост.

Дата показывается в списке как есть. Пустая ссылка заменится на канал арт-дней.

🎨 Галерея артов с конкурсов

Все работы наших конкурсов с маскотом UmaCity

Всего: {{ fanartArtworks.length }}
Найдено: {{ filteredFanartArtworks.length }}

➕ Добавить арт

{{ newFanartImageUrl }}
🏆 {{ contestName }}
{{ getFanartPlaceBadge(art) }}

{{ art.title }}

Арт #{{ art.id }}

✍️ {{ art.author_name || 'Ссылка на автора' }} ✍️ {{ art.author_name || 'Неизвестный автор' }}
🖼️
⏳ Загрузка артов...
Пока нет добавленных артов.

Полезные сайты по Умам

Базы данных, калькуляторы статов, интерактивные таблицы и гайды для игры.

🔥 Рекомендуемый гайд Переводчик игры и утилита

Что такое Hachimi Edge, почему он полезен и как установить

Обзор полезной утилиты для игры, перевод интерфейса и пошаговая инструкция по установке.

Найдено: {{ getFilteredUsefulSites().length }}

➕ Добавить полезный сайт

**жирный**, *курсив*, # Заголовок, [size=14]размер[/size]
🌐
Ничего не найдено по запросу «{{ siteSearchQuery }}» У вас пока нет сайтов в избранном. Нажмите ⭐ на карточке любого сайта! Пока нет добавленных сайтов В этой категории пока нет сайтов
🌐
{{ site.title }}
{{ site.category || 'Ресурс' }}
🌐
{{ site.category || 'Ресурс' }} {{ site.url.replace(/^https?:\/\/(www\.)?/, '').split('/')[0] }}

{{ site.title }} ↗

⏳ Загрузка статьи...

{{ currentArticle.title }}

{{ currentArticle.author || 'Команда UmaCity' }} {{ currentArticle.created_at.slice(0, 10) }}

Комментарии к статье

{{ articleComments ? articleComments.length : 0 }}
{{ (tgUser.first_name || tgUser.username || 'Т').charAt(0).toUpperCase() }}
{{ tgUser.first_name || tgUser.username }} (@{{ tgUser.username }})
{{ (newArticleCommentText || '').length }}/1000
↳ Ответ для: {{ articleReplyTarget.user_name }}
⏳ Загрузка комментариев...
К этой статье пока нет комментариев. Напишите первый!
{{ (c.user_name || c.username || 'У').charAt(0).toUpperCase() }}
{{ c.user_name }} @{{ c.username }}
{{ formatCommentDate(c.created_at) }}
↳ Ответ для {{ c.reply_to_name }}
{{ c.text }}

Аниме UmaYuru

Короткометражный спин-офф Umamusume с нашими субтитрами.

Просмотрено: {{ (umayuruEpisodes || []).filter(e => isEpisodeWatched(e.id)).length }} из {{ (umayuruEpisodes || []).length }} {{ (umayuruEpisodes && umayuruEpisodes.length) ? Math.round(((umayuruEpisodes || []).filter(e => isEpisodeWatched(e.id)).length / umayuruEpisodes.length) * 100) : 0 }}%

➕ Добавить серию UmaYuru

⏳ Загрузка серий UmaYuru...
🎥
Серии ещё не добавлены в каталог
▶
Серия {{ ep.number }}
✓ Просмотрено

{{ ep.title || ('Серия ' + ep.number) }}

↗
Поддержать команду
Поддержка UmaCity влияет

Это позволяет нам держать энтузиазм к работе на большом уровне + устраивать конкурсы для художников.

© UmaCity 2026

💌 Какой тайтл порекомендуем?

Ничего не найдено
{{ recommendDraftNote.length }}/200

{{ articleForm.id ? '✏️ Редактирование статьи' : '➕ Новая статья' }}

Инструменты:
Enter — перенос строки · двойной Enter — новый абзац

{{ getCharaNameByCardId(activeModalCardId) }}

{{ '★'.repeat(getActiveModalCostume()?.rarity || 3) }} 👗 Повседневная форма • Талант: Ур.{{ getActiveModalCostume()?.talent_level || 1 }} • {{ isModalCasual ? ('#' + Math.floor(Number(activeModalCardId)/100)) : ('#' + activeModalCardId) }}
Костюмы: |
{{ isModalCasual ? 'Загрузка повседневного костюма...' : 'Загрузка 3D анимации...' }}
{{ isModalCasual ? '👗' : '✨' }} {{ isModalCasual ? '3D Повседневный (GameTora)' : '3D GameTora AVIF' }}
⚡

Навыки персонажа

Талант: Ур. {{ getActiveModalCostume()?.talent_level || 1 }}
{{ getSkillInfo(getCharaSkills(activeModalCardId).unique_skill_id).name }} Уникальный (★{{ getActiveModalCostume()?.rarity || 3 }})
Unique Skill
Навыки пробуждения (Awakening Skills)
{{ getSkillInfo(sk.skill_id).name }}
{{ sk.need_rank === 0 ? 'Базовый навык' : 'Пробуждение ур. ' + sk.need_rank }}
✓ Открыт 🔒 Ур. {{ sk.need_rank }}
📷

Вставка картинки между строк

📁 Способ 1: Загрузить файл с компьютера
✓ Предпросмотр:

✏️ Редактировать серию

👥

Уникальные пользователи

({{ uniqueUsersList.length }})
⏳ Загрузка списка пользователей...
Пока нет записей о посетителях.
{{ u.first_name || 'Без имени' }} @{{ u.username }} 🌐 Браузер + ТГ 📱 ТГ WebApp 🌐 Браузер (Гость)
ID: {{ u.user_id }} · Визитов: {{ u.visits }}
посл: {{ u.last_visit ? u.last_visit.slice(0, 16) : '—' }}
перв: {{ u.first_visit ? u.first_visit.slice(0, 10) : '—' }}
🏇

Игровой профиль тренера {{ trainerHeroMaxRankStr }}

Зал славы, карточки поддержки и статистика карьеры

⏳ Загрузка профиля тренера...
📦

Синхронизируйте игровые достижения

Загрузите ZIP-архив утилиты umadump (файлы trained_chara_data.json, support_card_data.json, card_data.json и др.). Профиль автоматически рассчитает рекорды, подтянет карточки и привяжется к вашему Telegram-аккаунту.

Avatar
✈️
{{ tgUser.first_name || tgUser.username || 'Тренер' }} (@{{ tgUser.username }})
Аккаунт Telegram привязан • ID: {{ tgUser.id }}
Подключён
⚠️
Требуется вход через Telegram
Профиль тренера и статистика привязываются к вашему Telegram-аккаунту.
⚡
{{ trainerUploadLoading ? '⏳ Обработка архива в памяти...' : 'Нажмите или перетащите сюда .zip архив' }}
Поддерживаются стандартные дампы umadump. Данные обрабатываются мгновенно и безопасно.
⚠️ {{ trainerUploadError }}
Avatar {{ (trainerProfile.trainer_name || 'Т').charAt(0).toUpperCase() }}
★TRAINER

{{ trainerProfile.trainer_name }}

Рекорд {{ trainerHeroMaxRankStr }} {{ trainerHeroMaxScore.toLocaleString() }} pts
ID {{ trainerProfile.trainer_id }}
{{ tgUser.first_name || tgUser.username }}
Персонажи Костюмы
{{ trainerProfile.total_characters }} {{ trainerProfile.unique_characters }} уник.
В коллекции тренера
Карты Всего: {{ (trainerProfile.ssr_count || 0) + (trainerProfile.sr_count || 0) + getRCount() }}
{{ trainerProfile.ssr_count }} SSR ({{ trainerProfile.ssr_mlb_count }}★) {{ trainerProfile.sr_count || 0 }} SR {{ getRCount() }} R
Колода саппортов
Винрейт {{ trainerProfile.win_rate }}%
{{ (trainerProfile.total_wins || 0).toLocaleString() }} из {{ (trainerProfile.total_races || 0).toLocaleString() }}
Зал Славы
{{ (trainerProfile.total_trained || 0).toLocaleString() }} Умамусумэ-ветеранов
Лучшие Умамусумэ-ветераны (отсортированы по рангу): Рекорд: {{ (trainerProfile.max_rank_score || 0).toLocaleString() }} pts
#{{ hIdx + 1 }}

{{ getCharaNameByCardId(h.card_id) }}

{{ getScenarioShortCode(h.scenario_id) }} {{ getRunningStyleName(h.running_style) }} {{ '★'.repeat(h.rarity || 3) }}
{{ h.rank }} RANK
{{ (h.score || 0).toLocaleString() }}
👟 SPD
{{ h.speed }}
{{ getStatRank(h.speed) }}
💖 STA
{{ h.stamina }}
{{ getStatRank(h.stamina) }}
💪 POW
{{ h.power }}
{{ getStatRank(h.power) }}
🔥 GUT
{{ h.guts }}
{{ getStatRank(h.guts) }}
🧠 WIT
{{ h.wiz }}
{{ getStatRank(h.wiz) }}
Track
Turf {{ getAptitudeLetter(h.aptitudes.turf) }}
Dirt {{ getAptitudeLetter(h.aptitudes.dirt) }}
Dist
Sprint {{ getAptitudeLetter(h.aptitudes.sprint || h.aptitudes.short) }}
Mile {{ getAptitudeLetter(h.aptitudes.mile) }}
Medium {{ getAptitudeLetter(h.aptitudes.medium || h.aptitudes.mid) }}
Long {{ getAptitudeLetter(h.aptitudes.long) }}
Style
Front {{ getAptitudeLetter(h.aptitudes.front || h.aptitudes.nige) }}
Pace {{ getAptitudeLetter(h.aptitudes.pace || h.aptitudes.senko) }}
Late {{ getAptitudeLetter(h.aptitudes.late || h.aptitudes.sashi) }}
End {{ getAptitudeLetter(h.aptitudes.end || h.aptitudes.oikomi) }}
Изученные навыки ({{ h.skills.length }})
{{ getSkillInfo(skItem[0]).name }} Lv.{{ skItem[1] }}
ℹ️ Навыки не сохранены в профиле. Загрузите файлы дампа повторно, чтобы отобразились все изученные скиллы и расчет SP!
{{ (h.speed + h.stamina + h.power + h.guts + h.wiz).toLocaleString() }} Сумма характеристик • {{ (h.sp_total || getHorseSpTotal(h)).toLocaleString() }} Всего SP
🏆 {{ h.win_count || h.wins || 0 }} wins
Все Умамусумэ-ветераны: {{ (trainerProfile.all_horses || trainerProfile.top_horses || []).length }} ({{ filteredVeterans.length }} отобрано)
Сортировка:
{{ veteranSearchQuery || veteranOnlyBlueSpark ? 'Ничего не найдено по заданным фильтрам' : 'Список ветеранов пока пуст.' }}
#{{ vIdx + 1 }}

{{ getCharaNameByCardId(h.card_id) }}

⚡ 3★
{{ getScenarioShortCode(h.scenario_id) }} 🏆 {{ h.wins }} поб.
{{ h.rank }}
{{ (h.score || 0).toLocaleString() }}
▼
👟SPD
{{ h.speed }}
{{ getStatRank(h.speed) }}
💖STA
{{ h.stamina }}
{{ getStatRank(h.stamina) }}
💪POW
{{ h.power }}
{{ getStatRank(h.power) }}
🔥GUT
{{ h.guts }}
{{ getStatRank(h.guts) }}
🧠WIT
{{ h.wiz }}
{{ getStatRank(h.wiz) }}
Track
{{ getAptitudeLetter(h.aptitudes.turf) }} Turf {{ getAptitudeLetter(h.aptitudes.dirt) }} Dirt
Dist
{{ getAptitudeLetter(h.aptitudes.short || h.aptitudes.sprint) }} Sprint {{ getAptitudeLetter(h.aptitudes.mile) }} Mile {{ getAptitudeLetter(h.aptitudes.mid || h.aptitudes.medium) }} Medium {{ getAptitudeLetter(h.aptitudes.long) }} Long
Style
{{ getAptitudeLetter(h.aptitudes.nige || h.aptitudes.front) }} Front {{ getAptitudeLetter(h.aptitudes.senko || h.aptitudes.pace) }} Pace {{ getAptitudeLetter(h.aptitudes.sashi || h.aptitudes.late) }} Late {{ getAptitudeLetter(h.aptitudes.oikomi || h.aptitudes.end) }} End
Изученные навыки {{ h.skills.length }}
{{ getSkillInfo(sk[0] || sk.skill_id).name }} Lv{{ sk[1] || sk.level }}
Итоги: • {{ (h.sp_total || getHorseSpTotal(h)).toLocaleString() }} Всего SP
🏆 {{ h.wins }} побед • {{ h.create_time.slice(0, 10) }}
Нажмите на карту для полного арта
{{ trainerRosterView === 'unique' ? 'Сгруппировано по Умамусумэ с переключением костюмов' : 'Все открытые игровые карты' }}
Список персонажей пуст или ещё не загружен.
{{ ch.short_name }}
★
Талант: Ур.{{ getSelectedCostumeObj(ch).talent_level || 1 }}
{{ getSkillInfo(getCharaSkills(getSelectedCardForChara(ch)).unique_skill_id).name }}
✨ 3D и скиллы
{{ getCharaShortName(ch.card_id) }}
#{{ ch.card_id }}
★
Талант: Ур.{{ ch.talent_level || 1 }}
{{ getSkillInfo(getCharaSkills(ch.card_id).unique_skill_id).name }}
✨ 3D и скиллы
Забеги тренера 🏁
{{ (trainerProfile?.total_races || 0).toLocaleString() }}
Побед: {{ (trainerProfile?.total_wins || 0).toLocaleString() }} {{ trainerProfile?.win_rate || 0 }}%
Кубки и трофеи турниров 🏆
{{ trainerProfile?.trophies_count || 0 }} кубков
Уникальные победные кубки в турнирах G1, G2 и G3
Титулы и истории 🎖️
{{ trainerProfile?.honors_count || 0 }} титулов
📖 Событий: {{ (trainerProfile?.events_count || 0).toLocaleString() }}
3★ Факторы наследования 🧬
{{ trainerProfile?.summary?.blue_sparks_count || 0 }} умамусумэ
✨ Лошади с 3★ синими генами статов
🏆 Наивысший ранг Рекорд
{{ trainerHeroMaxRankStr }}
{{ trainerHeroMaxScore.toLocaleString() }} pts
{{ trainerHeroHorseName ? trainerHeroHorseName : 'Максимальная оценка' }}
Всего Умамусумэ-ветеранов: {{ trainerProfile?.total_trained || 0 }}
⚡ Рекорды характеристик (максимумы за карьеру) Среди всех тренировок
👟
{{ getStatRank(trainerProfile?.max_speed) }}
{{ trainerProfile?.max_speed || 0 }}
💖
{{ getStatRank(trainerProfile?.max_stamina) }}
{{ trainerProfile?.max_stamina || 0 }}
💪
{{ getStatRank(trainerProfile?.max_power) }}
{{ trainerProfile?.max_power || 0 }}
🔥
{{ getStatRank(trainerProfile?.max_guts) }}
{{ trainerProfile?.max_guts || 0 }}
🧠
{{ getStatRank(trainerProfile?.max_wiz) }}
{{ trainerProfile?.max_wiz || 0 }}
Сумма рекордных параметров: {{ ((trainerProfile?.max_speed || 0) + (trainerProfile?.max_stamina || 0) + (trainerProfile?.max_power || 0) + (trainerProfile?.max_guts || 0) + (trainerProfile?.max_wiz || 0)).toLocaleString() }}
📊 Распределение по рангам
Всего: {{ trainerProfile?.total_trained || 0 }}
UF+
{{ trainerProfile.summary.rank_distribution['UF+'] || 0 }}
{{ getRankPercent(trainerProfile.summary.rank_distribution['UF+']) }}
UG
{{ trainerProfile.summary.rank_distribution['UG'] || 0 }}
{{ getRankPercent(trainerProfile.summary.rank_distribution['UG']) }}
SS
{{ trainerProfile.summary.rank_distribution['SS'] || 0 }}
{{ getRankPercent(trainerProfile.summary.rank_distribution['SS']) }}
S
{{ trainerProfile.summary.rank_distribution['S'] || 0 }}
{{ getRankPercent(trainerProfile.summary.rank_distribution['S']) }}
A
{{ trainerProfile.summary.rank_distribution['A'] || 0 }}
{{ getRankPercent(trainerProfile.summary.rank_distribution['A']) }}
≤ B
{{ trainerProfile.summary.rank_distribution['B_below'] || 0 }}
{{ getRankPercent(trainerProfile.summary.rank_distribution['B_below']) }}
⭐ Часто тренируемые персонажи Топ-5
{{ ch.rank === 1 ? '🥇' : (ch.rank === 2 ? '🥈' : (ch.rank === 3 ? '🥉' : '#' + ch.rank)) }}
{{ ch.name }} {{ ch.count }} забегов
🎪 Опыт в сценариях тренировок Завершено
{{ sc.icon }} {{ sc.name }}
{{ sc.count }} забегов ({{ sc.percent }}%)
{{ previewSupportCard.rarity }} {{ getSupportCardTypeLabel(getSupportCardType(previewSupportCard.id)) }} #{{ previewSupportCard.id }} Ур.{{ previewSupportCard.level }}

{{ getSupportCardName(previewSupportCard.id) }}

{{ getSupportCardInfo(previewSupportCard.id).title }}
✨ Навыки карты ({{ getSupportCardSkills(previewSupportCard.id).length }})
Подсказки тренировок и золото
{{ getSkillInfo(skId).name }}
ЗОЛОТОЙ
Лимит-брейк:
MAX
{{ episodeDiscussionOnly ? '💬' : '🎬' }}

{{ episodeDiscussionOnly ? 'Комментарии · ' : '' }}{{ activePlayingEpisode.title || ('Серия ' + activePlayingEpisode.number) }}

⚠️ Видео недоступно или ссылка не указана
💡 Ютуб просит проверку на бота?
Серия {{ activePlayingEpisode.number }} {{ ((activePlayingEpisode._source || (isTgWebApp ? 'vk' : 'youtube')) === 'youtube' && activePlayingEpisode.youtube_url) ? 'Источник: YouTube' : 'Источник: VK Видео' }}

Обсуждение серии

{{ activePlayingEpisode.comments_count || 0 }} комментариев

Ответ для {{ episodeReplyTarget.user_name }}
Загружаем обсуждение...
Пока нет комментариев. Будьте первым!
{{ (comment.user_name || 'У').charAt(0).toUpperCase() }}
{{ comment.user_name || 'Участник' }} @{{ comment.username }} {{ formatCommentDate(comment.created_at) }}
↳ ответ для {{ comment.reply_to_name }}

{{ comment.text }}

✏️ Редактировать сайт

**жирный**, *курсив*, # Заголовок, [size=14]размер[/size]

✏️ Редактировать арт

{{ editingFanart.image_url }}
🤖

Скриншоты из Telegram-бота

Скиньте скриншот боту в личные сообщения — он появится в этом списке. Кликните по фото, чтобы выбрать его.

⏳ Загрузка фото...
Пока нет пойманных фото. Отправьте скриншот боту в ЛС.
🔄

Синхронизация профиля

Выберите, откуда сохранить прогресс и закладки

📱 На устройстве
Прочитано: {{ localSyncStats.read }}
В избранном: {{ localSyncStats.fav }}
Серий UmaYuru: {{ localSyncStats.episodes }}
☁️ В облаке ТГ
Прочитано: {{ cloudSyncStats.read }}
В избранном: {{ cloudSyncStats.fav }}
Серий UmaYuru: {{ cloudSyncStats.episodes }}

✈️ Вход через аккаунт Telegram

✈️

Авторизация происходит напрямую через официальный виджет Telegram. Ваши прочитанные главы будут надёжно привязаны к вашему аккаунту.

🧪 Локальный режим разработчика (127.0.0.1)

Виджет Telegram требует публичный HTTPS-домен. Нажмите кнопку ниже, чтобы войти под тестовым аккаунтом и проверить работу комментариев, заявок и уведомлений:

⏳ Загрузка конфигурации бота...

🔍

Поиск профиля тренера

🔍
Поиск по @тегу Telegram, имени, TG ID или Game ID
Поиск профиля...
{{ (t.trainer_name || 'Т').charAt(0).toUpperCase() }}
{{ t.trainer_name || 'Без имени' }}
@{{ t.tg_username }} TG ID: {{ t.user_id }} Game: {{ t.trainer_id }}
Умамусумэ-ветеранов: {{ t.total_trained || 0 }} • Карты: {{ t.ssr_count || 0 }} SSR
{{ t.max_rank || 'G' }}
{{ t.max_rank_score || 0 }} pts
➔
🔍
Тренер не найден в сохранённой базе профилей.
Введите Telegram ID пользователя, чтобы найти его профиль.
Например: 707136820417
Поиск по Telegram ID, Game ID или нику

{{ authModalRole === 'admin' ? '👑 Вход для администратора' : '🛠️ Вход для модератора' }}

{{ authModalError }}
Новый ответ
{{ formatCommentDate(notif.created_at) }}
💬 {{ notif.sender_name || 'Участник' }}
📖 {{ notif.comic_title ? (notif.comic_title + ' · ' + notif.chapter_title) : notif.chapter_title }} (стр. {{ notif.page_num }})
{{ notif.comment_text || notif.message }}
🔄

Синхронизация с uma.moe

Обновление статистики круга #393183261

Шаг 1. Открыть клуб на uma.moe В браузере

Нажмите кнопку ниже, чтобы открыть страницу клуба. Дождитесь прохождения быстрой проверки браузера Turnstile.

Шаг 2. Выберите удобный способ 3 варианта
📁 Способ 1: Файл Export → JSON (Самый надёжный) 100% точность

На странице uma.moe нажмите кнопку Export → JSON, затем выберите скачанный файл:

⚡ Способ 2: Закладка в браузере (В 1 клик)

Перетащите эту кнопку на панель закладок. Находясь на uma.moe, нажмите её для авто-отправки данных:

🏇 Синхронизировать с UmaCity ← перетащите в панель закладок
📋 Способ 3: Вставить скопированный текст

На странице uma.moe выделите всё (Ctrl+A → Ctrl+C) и вставьте сюда:

✏️ Редактирование данных клуба

{{ readerTitle }}
{{ formatViews(readerCurrentChapterViews) }}
— Конец главы «{{ readerTitle }}» —
Загрузка страницы {{ readerIndex + 1 }}...
⚠️
Не удалось загрузить страницу {{ readerIndex + 1 }}

Комментарии к стр. {{ readerIndex + 1 }}

{{ getPageComments(readerIndex + 1).length }}
{{ (tgUser.first_name || tgUser.username || 'Т').charAt(0).toUpperCase() }}
{{ tgUser.first_name || tgUser.username }} (@{{ tgUser.username }})
{{ (newCommentText || '').length }}/1000
↳ Ответ для: {{ replyTarget.user_name }} (стр. {{ replyTarget.page_num }})
⏳ Загрузка комментариев...
К странице {{ readerIndex + 1 }} пока нет комментариев. Напишите первый!
{{ (c.user_name || c.username || 'У').charAt(0).toUpperCase() }}
{{ c.user_name }} @{{ c.username }}
{{ formatCommentDate(c.created_at) }}
↳ Ответ для {{ c.reply_to_name }}
{{ c.text }}
▼
Стр. {{ readerCurrentVerticalPage }} / {{ readerImages.length }}

🎨 Настройка фона

Предпросмотр:
Пример
Сплошной цвет
Затемнение подложки {{ Math.round(overlayAlpha * 100) }}%
Готовые градиенты

➕ Добавить главу/ссылку

Страниц: {{ newChPagesPreview.length }} · перетаскивайте мышкой для смены порядка
{{ i + 1 }}

✏️ Редактирование тайтла

✏️ Редактирование главы

Страниц: {{ editChPagesPreview.length }} · перетаскивайте мышкой для смены порядка
{{ i + 1 }}

{{ tgRecentTitle }}

Выбрано: {{ tgSelectedKeys.length }} сообщ. · {{ tgSelectedCount }} фото
Пока ничего нет.

{{ viewingMetaCard.name }}

{{ formatCardType(viewingMetaCard.type) }} 📅 {{ formatCardDate(viewingMetaCard.release_date) }} {{ formatStrategy(viewingMetaCard.strategy) }} Tier {{ viewingMetaCard.tier || viewingMetaCard.rating }}
🃏
TG
✨
{{ viewingMetaCard.skill_name || 'Уникальный навык' }}
🎯 {{ sk.name || 'Без названия' }} {{ sk.type }}
💡 Оценка карты

{{ editingMetaCard.id ? '✏️ Редактировать карту' : '➕ Добавить карту' }}

Год: {{ editingCardYear || '—' }} · месяц для старого фильтра: {{ editingCardMonth || '—' }}
✨ Основной скилл
➕ Добавить новую иконку в быстрый список:
🎯 Дополнительные скиллы