You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
vitepress/docs/ru/config.ts

328 lines
14 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import { createRequire } from 'module'
import { defineAdditionalConfig, type DefaultTheme } from 'vitepress'
const require = createRequire(import.meta.url)
const pkg = require('vitepress/package.json')
export default defineAdditionalConfig({
description: 'Генератор статических сайтов на основе Vite и Vue.',
themeConfig: {
nav: nav(),
search: { options: searchOptions() },
sidebar: {
'/ru/guide/': { base: '/ru/guide/', items: sidebarGuide() },
'/ru/reference/': { base: '/ru/reference/', items: sidebarReference() }
},
editLink: {
pattern: 'https://github.com/vuejs/vitepress/edit/main/docs/:path',
text: 'Редактировать страницу'
},
footer: {
message: 'Опубликовано под лицензией MIT.',
copyright: '© 2019 настоящее время, Эван Ю'
},
outline: { label: 'Содержание страницы' },
docFooter: {
prev: 'Предыдущая страница',
next: 'Следующая страница'
},
lastUpdated: {
text: 'Обновлено'
},
notFound: {
title: 'СТРАНИЦА НЕ НАЙДЕНА',
quote:
'Но если ты не изменишь направление и продолжишь искать, ты можешь оказаться там, куда направляешься.',
linkLabel: 'перейти на главную',
linkText: 'Отведи меня домой'
},
darkModeSwitchLabel: 'Оформление',
lightModeSwitchTitle: 'Переключить на светлую тему',
darkModeSwitchTitle: 'Переключить на тёмную тему',
sidebarMenuLabel: 'Меню',
returnToTopLabel: 'Вернуться к началу',
langMenuLabel: 'Изменить язык',
skipToContentLabel: 'Перейти к содержимому'
}
})
function nav(): DefaultTheme.NavItem[] {
return [
{
text: 'Руководство',
link: '/ru/guide/what-is-vitepress',
activeMatch: '/ru/guide/'
},
{
text: 'Справочник',
link: '/ru/reference/site-config',
activeMatch: '/ru/reference/'
},
{
text: pkg.version,
items: [
{
text: '1.6.4',
link: 'https://vuejs.github.io/vitepress/v1/ru/'
},
{
text: 'Изменения',
link: 'https://github.com/vuejs/vitepress/blob/main/CHANGELOG.md'
},
{
text: 'Вклад',
link: 'https://github.com/vuejs/vitepress/blob/main/.github/contributing.md'
}
]
}
]
}
function sidebarGuide(): DefaultTheme.SidebarItem[] {
return [
{
text: 'Введение',
collapsed: false,
items: [
{ text: 'Что такое VitePress?', link: 'what-is-vitepress' },
{ text: 'Первые шаги', link: 'getting-started' },
{ text: 'Маршрутизация', link: 'routing' },
{ text: 'Развёртывание', link: 'deploy' }
]
},
{
text: 'Написание',
collapsed: false,
items: [
{ text: 'Расширения Markdown', link: 'markdown' },
{ text: 'Обработка ресурсов', link: 'asset-handling' },
{ text: 'Метаданные', link: 'frontmatter' },
{ text: 'Использование Vue в Markdown', link: 'using-vue' },
{ text: 'Интернационализация', link: 'i18n' }
]
},
{
text: 'Настройка',
collapsed: false,
items: [
{ text: 'Пользовательская тема', link: 'custom-theme' },
{
text: 'Расширение темы по умолчанию',
link: 'extending-default-theme'
},
{
text: 'Загрузка данных в режиме реального времени',
link: 'data-loading'
},
{ text: 'Совместимость с SSR', link: 'ssr-compat' },
{ text: 'Подключение к CMS', link: 'cms' }
]
},
{
text: 'Экспериментально',
collapsed: false,
items: [
{ text: 'Режим MPA', link: 'mpa-mode' },
{ text: 'Генерация карты сайта', link: 'sitemap-generation' }
]
},
{ text: 'Конфигурация и API', base: '/ru/reference/', link: 'site-config' }
]
}
function sidebarReference(): DefaultTheme.SidebarItem[] {
return [
{
text: 'Справочник',
items: [
{ text: 'Конфигурация сайта', link: 'site-config' },
{ text: 'Конфигурация метаданных', link: 'frontmatter-config' },
{ text: 'Runtime API', link: 'runtime-api' },
{ text: 'Командная строка', link: 'cli' },
{
text: 'Тема по умолчанию',
base: '/ru/reference/default-theme-',
items: [
{ text: 'Обзор', link: 'config' },
{ text: 'Навигация', link: 'nav' },
{ text: 'Сайдбар', link: 'sidebar' },
{ text: 'Главная страница', link: 'home-page' },
{ text: 'Футер', link: 'footer' },
{ text: 'Макет', link: 'layout' },
{ text: 'Значки', link: 'badge' },
{ text: 'Страница команды', link: 'team-page' },
{
text: 'Предыдущая и следующая страницы',
link: 'prev-next-links'
},
{ text: 'Ссылка для редактирования', link: 'edit-link' },
{ text: 'Последнее обновление', link: 'last-updated' },
{ text: 'Поиск', link: 'search' },
{ text: 'Carbon Ads (реклама)', link: 'carbon-ads' }
]
}
]
}
]
}
function searchOptions(): Partial<DefaultTheme.AlgoliaSearchOptions> {
return {
translations: {
button: {
buttonText: 'Поиск',
buttonAriaLabel: 'Поиск'
},
modal: {
searchBox: {
clearButtonTitle: 'Очистить',
clearButtonAriaLabel: 'Очистить запрос',
closeButtonText: 'Закрыть',
closeButtonAriaLabel: 'Закрыть',
placeholderText: 'Поиск по документации или задайте вопрос Ask AI',
placeholderTextAskAi: 'Задайте другой вопрос...',
placeholderTextAskAiStreaming: 'Отвечаю...',
searchInputLabel: 'Поиск',
backToKeywordSearchButtonText: 'Назад к поиску по ключевым словам',
backToKeywordSearchButtonAriaLabel:
'Назад к поиску по ключевым словам',
newConversationPlaceholder: 'Задайте вопрос',
conversationHistoryTitle: 'Моя история разговоров',
startNewConversationText: 'Начать новый разговор',
viewConversationHistoryText: 'История разговоров',
threadDepthErrorPlaceholder: 'Достигнут лимит разговора'
},
newConversation: {
newConversationTitle: 'Чем могу помочь сегодня?',
newConversationDescription:
'Я ищу по вашей документации, чтобы быстро помочь найти руководства по настройке, детали функций и советы по устранению неполадок.'
},
footer: {
selectText: 'Выбрать',
submitQuestionText: 'Отправить вопрос',
selectKeyAriaLabel: 'Клавиша Enter',
navigateText: 'Навигация',
navigateUpKeyAriaLabel: 'Стрелка вверх',
navigateDownKeyAriaLabel: 'Стрелка вниз',
closeText: 'Закрыть',
backToSearchText: 'Назад к поиску',
closeKeyAriaLabel: 'Клавиша Escape',
poweredByText: 'При поддержке'
},
errorScreen: {
titleText: 'Не удалось получить результаты',
helpText: 'Возможно, стоит проверить подключение к сети.'
},
startScreen: {
recentSearchesTitle: 'Недавние',
noRecentSearchesText: 'Нет недавних поисков',
saveRecentSearchButtonTitle: 'Сохранить этот поиск',
removeRecentSearchButtonTitle: 'Удалить этот поиск из истории',
favoriteSearchesTitle: 'Избранное',
removeFavoriteSearchButtonTitle: 'Удалить этот поиск из избранного',
recentConversationsTitle: 'Недавние разговоры',
removeRecentConversationButtonTitle:
'Удалить этот разговор из истории'
},
noResultsScreen: {
noResultsText: 'Не найдено результатов для',
suggestedQueryText: 'Попробуйте поискать',
reportMissingResultsText:
'Считаете, что по этому запросу должны быть результаты?',
reportMissingResultsLinkText: 'Сообщите нам.'
},
resultsScreen: {
askAiPlaceholder: 'Спросить ИИ: ',
noResultsAskAiPlaceholder:
'Не нашли в документации? Попросите Ask AI помочь: '
},
askAiScreen: {
disclaimerText:
'Ответы генерируются ИИ и могут содержать ошибки. Проверьте их.',
relatedSourcesText: 'Связанные источники',
thinkingText: 'Думаю...',
copyButtonText: 'Копировать',
copyButtonCopiedText: 'Скопировано!',
copyButtonTitle: 'Копировать',
likeButtonTitle: 'Нравится',
dislikeButtonTitle: 'Не нравится',
thanksForFeedbackText: 'Спасибо за отзыв!',
preToolCallText: 'Ищу...',
duringToolCallText: 'Ищу...',
afterToolCallText: 'Искал',
stoppedStreamingText: 'Вы остановили этот ответ',
errorTitleText: 'Ошибка чата',
threadDepthExceededMessage:
'Этот разговор закрыт, чтобы сохранить точность ответов.',
startNewConversationButtonText: 'Начать новый разговор'
}
}
},
askAi: {
sidePanel: {
button: {
translations: {
buttonText: 'Спросить ИИ',
buttonAriaLabel: 'Спросить ИИ'
}
},
panel: {
translations: {
header: {
title: 'Спросить ИИ',
conversationHistoryTitle: 'Моя история разговоров',
newConversationText: 'Начать новый разговор',
viewConversationHistoryText: 'История разговоров'
},
promptForm: {
promptPlaceholderText: 'Задайте вопрос',
promptAnsweringText: 'Отвечаю...',
promptAskAnotherQuestionText: 'Задайте другой вопрос',
promptDisclaimerText:
'Ответы генерируются ИИ и могут содержать ошибки.',
promptLabelText:
'Нажмите Enter, чтобы отправить, или Shift+Enter для новой строки.',
promptAriaLabelText: 'Ввод запроса'
},
conversationScreen: {
preToolCallText: 'Ищу...',
searchingText: 'Ищу...',
toolCallResultText: 'Искал',
conversationDisclaimer:
'Ответы генерируются ИИ и могут содержать ошибки. Проверьте их.',
reasoningText: 'Рассуждаю...',
thinkingText: 'Думаю...',
relatedSourcesText: 'Связанные источники',
stoppedStreamingText: 'Вы остановили этот ответ',
copyButtonText: 'Копировать',
copyButtonCopiedText: 'Скопировано!',
likeButtonTitle: 'Нравится',
dislikeButtonTitle: 'Не нравится',
thanksForFeedbackText: 'Спасибо за отзыв!',
errorTitleText: 'Ошибка чата'
},
newConversationScreen: {
titleText: 'Чем могу помочь сегодня?',
introductionText:
'Я ищу по вашей документации, чтобы быстро помочь найти руководства по настройке, детали функций и советы по устранению неполадок.'
},
logo: {
poweredByText: 'При поддержке'
}
}
}
}
}
}
}