Newer
Older
gnexus-tasks / frontend / src / locales / ru.ts
// Русская локаль — источник правды ключей; en.ts/uk.ts типизируются как typeof ru.
// Namespaces по областям UI (см. план i18n): common, nav, stack, tree, list,
// options, projects, settings, taskui.

export default {
  common: {
    any: '— любой —',
    anyStatus: '— любой статус —',
    noProject: '— без проекта —',
    none: '— нет —',
    choose: '— выберите —',
    error: 'Ошибка запроса',
    save: 'Сохранить',
    cancel: 'Отмена',
    edit: 'Редактировать',
    preview: 'Предпросмотр',
    confirmTitle: 'Подтверждение',
    delete: 'Удалить',
    open: 'Открыть',
    deleteConfirmTask: 'Удалить задачу «{title}»? Действие необратимо.',
    deleteConfirmProject: 'Удалить проект «{name}»? Задачи останутся, но без проекта.',
    saved: 'Сохранено',
    created: 'Создано',
    create: 'Создать',
    taskDeleted: 'Задача удалена',
    projectDeleted: 'Проект удалён',
    taskApproved: 'Задача утверждена',
    taskTaken: 'Задача взята в работу',
    taskFinished: 'Задача завершена',
  },
  nav: {
    sections: 'Разделы',
    subtitle: 'GNexus Tasks — личные задачи',
    signIn: 'Войти',
    account: 'Аккаунт',
    signOut: 'Выйти',
    task: 'Задача',
    home: 'Главная',
    stack: 'Стек входящих',
    list: 'Список задач',
    projects: 'Проекты',
    options: '3 варианта',
    settings: 'Настройки',
  },
  home: {
    title: 'Главное',
    stackCount: 'в стеке: {n}',
    activeCount: 'активных: {n}',
    inProgress: 'В работе',
    overdue: 'Просрочено',
    deadlines: 'Дедлайны на неделю',
    next: 'Следующие',
    overview: 'Обзор',
    projects: 'Активные проекты',
    totalTasks: 'Всего задач',
    doneMonth: 'Выполнено за месяц',
    doneAll: 'Выполнено всего',
    clearTitle: 'Всё спокойно',
    clearText: 'Нет активных задач — самое время закрыть что-то из стека.',
  },
  stack: {
    title: 'Стек входящих',
    count: 'Задач в стеке: {n}',
    quickPlaceholder: 'Закинуть задачу — только текст, остальное потом…',
    quickAdd: 'Закинуть',
    newTask: 'Новая задача',
    added: 'Задача закинута в стек',
    detailTitle: 'Детализация задачи',
    emptyTitle: 'Стек пуст',
    emptyText: 'Закиньте первую задачу — детализация подберётся автоматически.',
    inStack: 'в стеке',
    uploading: 'загрузка…',
    proposal: 'Предложение ИИ:',
    proposalPending: 'Детализация подбирается…',
    proposalNewProject: '+ проект «{name}»',
    proposalPriority: 'приоритет {n}',
    approveProposal: 'Да, всё верно',
    detail: 'Детализировать',
    redetail: 'Переспросить ИИ',
    deleteTask: 'Удалить задачу',
    deleteAttachment: 'Удалить вложение',
    promptProject: 'Название нового проекта:',
    promptTag: 'Название нового тега:',
    newProject: 'Новый проект',
    newTag: 'Новый тег',
    approve: 'Утвердить',
    form: {
      title: 'Заголовок',
      description: 'Описание (Markdown, Ctrl+V — картинка)',
      preview: 'Предпросмотр Markdown',
      project: 'Проект',
      tagsPlaceholder: 'Добавить тег…',
      tags: 'Теги',
      priority: 'Приоритет',
      estimate: 'Оценка времени, минут',
      budget: 'Бюджет (в валюте настроек)',
      cost: 'Оценка затрат (в валюте настроек)',
    },
    deadline: {
      legend: 'Дедлайн',
      date: 'Строгий — дата',
      period: 'Нестрогий — период',
    },
    recur: {
      legend: 'Тип задачи',
      oneTime: 'Разовая',
      recurring: 'Регулярная (повторяется)',
      kind: 'Правило повторения',
      interval: 'Интервал, дней',
      weekdays: 'Дни недели',
      monthlyDay: 'День месяца (1–31, без дня — последний)',
    },
  },
  tree: {
    addSubtask: 'Добавить подзадачу',
    promptSubtask: 'Подзадача:',
  },
  task: {
    notFoundTitle: 'Задача не найдена',
    notFoundText: 'Возможно, задача удалена или ссылка устарела.',
    proposalTitle: 'Предложение ИИ',
    proposalHint: 'Проверьте детали и утвердите — задача попадёт в список.',
    description: 'Описание',
    descriptionEmpty: 'Описание пусто — детализируйте задачу.',
    attachments: 'Вложения',
    fields: 'Параметры',
    dates: 'Даты',
    field: {
      project: 'Проект',
      taskType: 'Тип задачи',
      priority: 'Приоритет',
      estimate: 'Оценка времени',
      actual: 'Фактически',
      money: 'Деньги',
      deadline: 'Дедлайн',
      recurrence: 'Повторение',
      created: 'Создана',
      approved: 'Утверждена',
      done: 'Завершена',
    },
    subtasks: 'Подзадачи',
    noSubtasks: 'Подзадач нет',
    statusTitle: 'Статус',
    changeStatus: 'Изменить статус',
    subtaskCreated: 'Подзадача создана — попала в стек на детализацию',
    createdRaw: 'Задача попала в стек — детализируйте её там',
    actions: 'Действия',
    addTag: 'Добавить тег…',
  },
  projectPage: {
    notFoundTitle: 'Проект не найден',
    notFoundText: 'Возможно, проект удалён или ссылка устарела.',
    note: 'Заметка',
    noteEmpty: 'Заметки пока нет — добавьте её через «Редактировать».',
    progress: 'Задачи проекта: {done}/{total}',
    newTask: 'Новая задача',
    taskCreated: 'Задача создана — попала в стек на детализацию',
    promptTask: 'Новая задача проекта:',
    emptyTitle: 'Задач нет',
    emptyText: 'Создайте первую задачу проекта или ослабьте фильтры.',
    tree: 'Дерево проекта',
    stats: 'Статистика',
    total: 'Всего задач',
    doneN: 'Завершено',
    inProgress: 'В работе',
    toDo: 'К выполнению',
    overdue: 'Просрочено',
    taskCount: '{n} задач',
  },
  list: {
    title: 'Список задач',
    count: 'Найдено: {n}',
    emptyTitle: 'Ничего не найдено',
    emptyText: 'Попробуйте ослабить фильтры или закиньте новую задачу в стек.',
    filterStatus: 'Статус',
    filterProject: 'Проект',
    filterTag: 'Тег',
  },
  options: {
    title: '3 варианта',
    done: 'Готово',
    notNow: 'Не сейчас — другие варианты',
    available: 'Доступное время, минут',
    suggest: 'Предложить',
    choose: 'Делаем сейчас',
    emptyTitle: 'Вариантов нет',
    emptyText:
      'Свободных задач под это время не нашлось — закиньте что-нибудь в стек или уменьшите время.',
  },
  projects: {
    title: 'Проекты',
    count: 'Проектов: {n}',
    new: 'Новый проект',
    emptyTitle: 'Проектов нет',
    emptyText:
      'Создайте проект — задачи можно будет группировать и добавлять заметки с ресурсами.',
    prompt: 'Название нового проекта:',
    edit: 'Редактировать',
    delete: 'Удалить проект',
    form: {
      name: 'Название',
      relevance: 'Актуальность',
      priority: 'Приоритет',
      note: 'Заметка (Markdown: ссылки, контекст)',
      preview: 'Предпросмотр',
    },
  },
  settings: {
    title: 'Настройки',
    currencyTitle: 'Валюта бюджетов',
    currencyHint:
      'Единица выбирается один раз и применяется во всех суммах: бюджет задачи, оценка затрат.',
    currencyUnit: 'Единица измерения',
    saved: 'Сохранено — применяется во всех видах.',
    languageTitle: 'Язык интерфейса',
    languageHint:
      'Выбранный язык применяется сразу. «Как в аккаунте» — язык берётся из gnexus auth.',
    languageUnit: 'Язык',
    languageAuto: 'Как в аккаунте (SSO)',
    langRu: 'Русский',
    langEn: 'English',
    langUk: 'Українська',
  },
  md: {
    bold: 'Жирный',
    boldText: 'жирный текст',
    italic: 'Курсив',
    italicText: 'курсивный текст',
    heading: 'Заголовок',
    list: 'Список',
    checklist: 'Чек-лист',
    link: 'Ссылка',
    linkText: 'текст ссылки',
    code: 'Код',
  },
  taskui: {
    priority: {
      very_low: 'Очень низкий',
      low: 'Низкий',
      medium: 'Средний',
      high: 'Высокий',
      urgent: 'Срочно',
    },
    status: {
      to_do: 'К выполнению',
      in_progress: 'В работе',
      done: 'Завершено',
      cancelled: 'Отменено',
      deferred: 'Отложено',
    },
    relevance: {
      active: 'Активен',
      paused: 'Приостановлен',
      archived: 'Закрыт',
    },
    time: {
      hm: '{h} ч {m} м',
      h: '{h} ч',
      m: '{m} м',
    },
    money: {
      budget: 'бюджет {amount}',
      estimate: 'оценка {amount}',
    },
    currency: {
      UAH: '₴ Гривна (UAH)',
      USD: '$ Доллар (USD)',
      EUR: '€ Евро (EUR)',
      GBP: '£ Фунт (GBP)',
      PLN: 'zł Злотый (PLN)',
    },
    deadline: {
      day: 'в течение дня',
      week: 'в течение недели',
      month: 'в течение месяца',
      year: 'в течение года',
      until: 'до {date}',
    },
    recur: {
      kind: {
        interval: 'Каждые N дней',
        weekdays: 'Дни недели',
        monthly: 'День месяца',
      },
      daily: 'ежедневно',
      weekly: 'еженедельно',
      everyN: 'каждые {n} дн.',
      byWeekdays: 'по дням недели',
      monthlyDay: 'ежемесячно {day}-го',
      recurring: 'регулярная',
    },
  },
}