Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions docs/src/content/docs/ru/guides/i18n.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -182,8 +182,7 @@ import UIStringsList from '~/components/ui-strings-list.astro';

<LanguagesList startsSentence /> — все переведённые строки пользовательского
интерфейса на указанных языках предоставляются «из коробки», и мы приветствуем
[вклад в добавление дополнительных языков по
умолчанию](https://github.com/withastro/starlight/blob/main/CONTRIBUTING.md).
[вклад в добавление дополнительных языков по умолчанию](https://github.com/withastro/starlight/blob/main/CONTRIBUTING.md).

Вы можете добавить переводы для дополнительных языков, которые вы поддерживаете — или переопределить наши стандартные тексты — через коллекцию данных `i18n`.

Expand Down Expand Up @@ -279,7 +278,7 @@ export const collections = {

Дополнительную информацию о схемах коллекции контента см. в разделе [Определение схемы коллекции](https://docs.astro.build/ru/guides/content-collections/#%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D1%85%D0%B5%D0%BC%D1%8B-%D0%BA%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D0%B8) в документации Astro.

## Использование переводов пользовательского интерфейса
## Использование UI-переводов

Вы можете получить доступ к [встроенным строкам пользовательского интерфейса](/ru/guides/i18n/#перевод-интерфейса-starlight) Starlight, а также к [пользовательским](/ru/guides/i18n/#расширение-схемы-перевода) и [предоставляемым плагинами](/ru/reference/plugins/#injecttranslations) строкам пользовательского интерфейса через единый API на базе [i18next](https://www.i18next.com/).
Это включает поддержку таких функций, как [интерполяция](https://www.i18next.com/translation-function/interpolation) и [плюрализация](https://www.i18next.com/translation-function/plurals).
Expand All @@ -300,6 +299,9 @@ export const GET = (context) => {
};
```

В контексте плагина Starlight вы можете использовать хелпер [`useTranslations()`](/ru/reference/plugins/#usetranslations) для доступа к этому API для конкретного языка.
Дополнительную информацию смотрите в [справочнике по плагинам](/ru/reference/plugins/).

### Рендеринг строки пользовательского интерфейса

Отрисовка строк пользовательского интерфейса с помощью функции `locals.t()`.
Expand Down
42 changes: 17 additions & 25 deletions docs/src/content/docs/ru/guides/overriding-components.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,11 @@ import { Steps } from '@astrojs/starlight/components';
```astro
---
// src/components/EmailLink.astro
import type { Props } from '@astrojs/starlight/props';

const email = '[email protected]';
---

<a href="mailto:[email protected]">
Связаться с нами по электронной почте
</a>
<a href=`mailto:${email}`>Напишите мне</a>
```

3. Сообщите Starlight, что нужно использовать ваш компонент, указав его в параметре конфигурации [`components`](/ru/reference/configuration/#components) в `astro.config.mjs`:
Expand Down Expand Up @@ -72,52 +71,46 @@ import { Steps } from '@astrojs/starlight/components';

Пример ниже показывает компонент, который отображает ссылку на электронную почту наряду со стандартным компонентом `SocialIcons`:

```astro {4,8}
```astro {3,7}
---
// src/components/EmailLink.astro
import type { Props } from '@astrojs/starlight/props';
import Default from '@astrojs/starlight/components/SocialIcons.astro';
---

<a href="mailto:[email protected]"> Связаться с нами по электронной почте </a>
<Default {...Astro.props}><slot /></Default>
<Default><slot /></Default>
```

При использовании встроенного компонента внутри вашего компонента:

- Передайте в него `Astro.props`. Это гарантирует, что он получит все данные, необходимые для отображения.
- Добавьте [`<slot />`](https://docs.astro.build/ru/basics/astro-components/#slots) внутрь компонента по умолчанию. Это гарантирует, что если компоненту передаются какие-либо дочерние элементы, Astro знает, где их отображать.
При рендеринге встроенного компонента внутри пользовательского компонента добавьте [`<slot />`](https://docs.astro.build/ru/basics/astro-components/#%D1%81%D0%BB%D0%BE%D1%82%D1%8B) внутрь компонента по умолчанию. Это гарантирует, что если компоненту переданы дочерние элементы, Astro будет знать, где их отобразить.

Если вы повторно используете компоненты [`PageFrame`](/ru/reference/overrides/#pageframe) или [`TwoColumnContent`](/ru/reference/overrides/#twocolumncontent), содержащие [именованные слоты](https://docs.astro.build/ru/basics/astro-components/#именованые-слоты), вам также необходимо [перенести](https://docs.astro.build/ru/basics/astro-components/#перенос-слотов) эти слоты.

Ниже показан пользовательский компонент, который повторно использует компонент `TwoColumnContent`, содержащий дополнительный именованный слот `right-sidebar`, нуждающийся в переносе:

```astro {9}
```astro {8}
---
// src/components/CustomContent.astro
import type { Props } from '@astrojs/starlight/props';
import Default from '@astrojs/starlight/components/TwoColumnContent.astro';
---

<Default {...Astro.props}>
<Default>
<slot />
<slot name="right-sidebar" slot="right-sidebar" />
</Default>
```

## Использование данных страницы

При переопределении компонента Starlight ваша реализация получает стандартный объект `Astro.props`, содержащий все данные для текущей страницы.
При переопределении компонента Starlight вы можете получить доступ к глобальному объекту [`starlightRoute`](/ru/guides/route-data/), который содержит все данные для текущей страницы.
Это позволяет вам использовать эти значения для управления тем, как ваш компонент будет отображаться.

Например, вы можете прочитать метаданные страницы как `Astro.props.entry.data`. В следующем примере компонент [`PageTitle`](/ru/reference/overrides/#pagetitle) использует этот объект для отображения текущего заголовка страницы:
В следующем примере заменяющий компонент [`PageTitle`](/ru/reference/overrides/#pagetitle) отображает заголовок текущей страницы, установленный в метаданных контента:

```astro {5} "{title}"
```astro {4} "{title}"
---
// src/components/Title.astro
import type { Props } from '@astrojs/starlight/props';

const { title } = Astro.props.entry.data;
const { title } = Astro.locals.starlightRoute.entry.data;
---

<h1 id="_top">{title}</h1>
Expand All @@ -129,32 +122,31 @@ const { title } = Astro.props.entry.data;
</style>
```

Узнайте больше обо всех доступных свойствах в [Справочнике по переопределениям](/ru/reference/overrides/#параметры-компонентов).
Узнайте больше обо всех доступных свойствах в [Справочнике по данным маршрута](/ru/reference/route-data/).

### Переопределение только на определённых страницах

Переопределение компонентов применяется ко всем страницам. Тем не менее, вы можете осуществлять условную отрисовку, используя значения из `Astro.props`, чтобы определить, когда показывать ваш интерфейс, когда показывать интерфейс Starlight, или даже когда показывать что-то совершенно другое.
Переопределение компонентов применяется ко всем страницам. Тем не менее, вы можете осуществлять условную отрисовку, используя значения из `starlightRoute`, чтобы определить, когда показывать ваш интерфейс, когда показывать интерфейс Starlight, или даже когда показывать что-то совершенно другое.

В следующем примере компонент, переопределяющий [`Footer`](/ru/reference/overrides/#footer) от Starlight, отображает надпись «Создано с помощью Starlight 🌟» только на главной странице, а на всех остальных страницах показывает футер по умолчанию:

```astro
---
// src/components/ConditionalFooter.astro
import type { Props } from '@astrojs/starlight/props';
import Default from '@astrojs/starlight/components/Footer.astro';

const isHomepage = Astro.props.slug === '';
const isHomepage = Astro.locals.starlightRoute.id === '';
---

{
isHomepage ? (
<footer>Создано с помощью Starlight 🌟</footer>
) : (
<Default {...Astro.props}>
<Default>
<slot />
</Default>
)
}
```

Узнайте больше об условной отрисовке в руководстве [Синтаксис Astro](https://docs.astro.build/ru/basics/astro-syntax/#динамический-html).
Узнайте больше об отрисовке по условию в руководстве [Синтаксис Astro](https://docs.astro.build/ru/basics/astro-syntax/#динамический-html).
2 changes: 1 addition & 1 deletion docs/src/content/docs/ru/guides/sidebar.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ starlight({
Starlight может автоматически генерировать группу в вашей боковой панели, основываясь на директориях в вашей документации.
Это полезно, когда вы не хотите вручную вводить каждый элемент боковой панели в группе.

По умолчанию страницы сортируются в алфавитном порядке в соответствии со свойством [`slug`](/ru/reference/overrides/#slug) или именем файла.
По умолчанию страницы сортируются в алфавитном порядке в соответствии со свойством [`slug`](/ru/reference/route-data/#slug) или именем файла.

Добавьте автогенерируемую группу, используя объект со свойствами `label` и `autogenerate`. Ваша конфигурация `autogenerate` должна указывать `directory`, которая будет использоваться для записей боковой панели. Например, со следующей конфигурацией:

Expand Down
21 changes: 19 additions & 2 deletions docs/src/content/docs/ru/reference/configuration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -461,8 +461,10 @@ starlight({

Pagefind не может быть включен, если для параметра [`prerender`](#prerender) установлено значение `false`.

Установите `pagefind` в объект, чтобы настроить клиент поиска Pagefind.
Смотрите главу [Настройка ранжирования результатов Pagefind](https://pagefind.app/docs/ranking/) в документации Pagefind для получения дополнительной информации о том, как использовать параметр `pagefind.ranking` для управления расчётом ранжирования результатов поиска.
Установите объект в качестве значения `pagefind` для настройки клиента поиска Pagefind:

- Смотрите [Настройка ранжирования результатов Pagefind (English)](https://pagefind.app/docs/ranking/) в документации Pagefind для получения дополнительных сведений об использовании опции `pagefind.ranking` для управления порядком сортировки результатов поиска.
- Смотрите [Поиск по нескольким сайтам (English)](https://pagefind.app/docs/multisite/) в документации Pagefind для получения дополнительных сведений об использовании опции `pagefind.mergeIndex` для управления поиском по нескольким сайтам.

#### `PagefindOptions`

Expand All @@ -474,6 +476,21 @@ interface PagefindOptions {
termSaturation?: number;
termSimilarity?: number;
};
indexWeight?: number;
mergeIndex?: Array<{
bundlePath: string;
indexWeight?: number;
basePath?: string;
baseUrl?: string;
mergeFilter?: Record<string, string | string[]>;
language?: string;
ranking?: {
pageLength?: number;
termFrequency?: number;
termSaturation?: number;
termSimilarity?: number;
};
}>;
}
```

Expand Down
Loading