UI: согласованные тексты и терминология
- «Winrate» -> «Винрейт» в карточке статистики; в справке добавлена расшифровка «Винрейт (WR)» — WR остаётся в компактных таблицах; - кнопки сохранения: «ОК» -> «Сохранить» (аккаунт, фракции, аккаунты в админке); отмена в модалках/формах — везде «Отмена», не «Назад»; - пустые состояния приведены к шаблону «X пока нет.»; - роли участников группы переведены: owner/member -> владелец/участник, бейдж admin -> «админ»; «Имя обновлено» -> «Ник обновлён»; - «N игр.» в значении числа игроков -> «N игроков» со склонением (новый хелпер plural в domain/format.ts); - «минимум 2 участника» -> «минимум 2 игрока» (в партии — игроки, в группе — участники). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { ChevronRight } from "lucide-react";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
|
||||
import { formatTime } from "../domain/format";
|
||||
import { formatTime, plural } from "../domain/format";
|
||||
import type { HomeInProgressMatch } from "../domain/types";
|
||||
import { PlayerLink } from "./PlayerLink";
|
||||
|
||||
@@ -37,7 +37,8 @@ export function InProgressMatches({ items }: { items: HomeInProgressMatch[] }) {
|
||||
<span className="badge" style={{ color: "var(--accent-2)" }}>идёт</span>
|
||||
</div>
|
||||
<div className="muted small">
|
||||
{formatTime(m.started_at)} · {m.player_count} игр.
|
||||
{formatTime(m.started_at)} · {m.player_count}{" "}
|
||||
{plural(m.player_count, "игрок", "игрока", "игроков")}
|
||||
</div>
|
||||
<div
|
||||
className="small"
|
||||
|
||||
@@ -40,7 +40,7 @@ export function Leaderboard({
|
||||
const empty =
|
||||
entries.length === 0 && !provisional?.length && !inactive?.length;
|
||||
if (empty) {
|
||||
return <div className="muted small">Пока нет сыгранных партий.</div>;
|
||||
return <div className="muted small">Сыгранных партий пока нет.</div>;
|
||||
}
|
||||
return (
|
||||
<div>
|
||||
|
||||
@@ -22,7 +22,7 @@ export function NotificationPanel({
|
||||
<div className="notif-panel">
|
||||
<div className="notif-panel-head">Уведомления</div>
|
||||
{items.length === 0 ? (
|
||||
<div className="notif-empty muted small">Уведомлений нет</div>
|
||||
<div className="notif-empty muted small">Уведомлений пока нет.</div>
|
||||
) : (
|
||||
<div className="notif-list">
|
||||
{items.map((n) => (
|
||||
|
||||
@@ -24,7 +24,7 @@ export function ProfileStatsCard({
|
||||
<b>{o.wins}</b>
|
||||
</div>
|
||||
<div className="row-between">
|
||||
<div>Winrate</div>
|
||||
<div>Винрейт</div>
|
||||
<b>{pct(o.win_rate)}</b>
|
||||
</div>
|
||||
<div className="row-between">
|
||||
|
||||
Reference in New Issue
Block a user