Skip to content

Commit 5073e88

Browse files
authored
Added translation banner (#602)
* Added translation banner * Unjankified the code
1 parent c739d07 commit 5073e88

24 files changed

Lines changed: 118 additions & 85 deletions

astro.config.mjs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ export default defineConfig({
5555
logo: {
5656
src: '/src/assets/logo.svg',
5757
},
58+
components: {
59+
Banner: './src/components/TranslationBanner.astro',
60+
},
5861
editLink: {
5962
baseUrl: 'https://github.com/cachyos/wiki/edit/next/',
6063
},
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
---
2+
import DefaultBanner from '@astrojs/starlight/components/Banner.astro';
3+
4+
const { locale, entry, isFallback } = Astro.locals.starlightRoute;
5+
6+
if (!locale || isFallback) return null;
7+
8+
const aiTranslated = entry.data.ai_translated ?? false;
9+
10+
const hasOutdatedBanner = !!entry.data.banner;
11+
---
12+
13+
{hasOutdatedBanner && <DefaultBanner />}
14+
15+
<div id="translation-banner" class="sl-banner" data-pagefind-ignore lang="en" data-ai={String(aiTranslated)} style="display: none;">
16+
<div class="sl-banner-content">
17+
<strong>Translation notice</strong>
18+
<p>This is a community-maintained translation. The English version is the authoritative source.</p>
19+
{aiTranslated && (
20+
<p>This page was translated using generative AI and may not yet have been reviewed by a native speaker.</p>
21+
)}
22+
<p>Found an error? Please open an issue or submit a correction. Community contributions help us keep translations accurate and up to date.</p>
23+
</div>
24+
<button
25+
type="button"
26+
class="sl-dismiss-btn"
27+
aria-label="Dismiss banner"
28+
onclick={`sessionStorage.setItem('banner_dismissed_translation_' + (${aiTranslated} ? 'ai' : 'manual'), 'true');document.getElementById('translation-banner').style.display='none';`}
29+
>×</button>
30+
</div>
31+
32+
<style>
33+
.sl-banner {
34+
padding: var(--sl-nav-pad-y) var(--sl-nav-pad-x);
35+
background-color: var(--sl-color-bg);
36+
border-bottom: 1px solid var(--sl-color-gray-5);
37+
color: var(--sl-color-text);
38+
font-size: 0.8125rem;
39+
display: flex;
40+
justify-content: flex-start;
41+
align-items: center;
42+
position: sticky;
43+
top: var(--sl-nav-height);
44+
z-index: 100;
45+
}
46+
.sl-banner-content {
47+
max-width: 90%;
48+
}
49+
.sl-banner-content strong {
50+
display: block;
51+
font-weight: 600;
52+
margin-bottom: 0.25rem;
53+
color: var(--sl-color-accent);
54+
}
55+
.sl-banner-content p {
56+
margin: 0.25rem 0;
57+
line-height: 1.5;
58+
}
59+
.sl-dismiss-btn {
60+
position: absolute;
61+
top: 0.5rem;
62+
right: 0.5rem;
63+
background: none;
64+
border: none;
65+
color: var(--sl-color-text-muted);
66+
cursor: pointer;
67+
font-size: 1.5rem;
68+
line-height: 1;
69+
opacity: 0.6;
70+
transition: opacity 0.15s;
71+
padding: 0.25rem;
72+
}
73+
.sl-dismiss-btn:hover {
74+
opacity: 1;
75+
}
76+
</style>
77+
78+
<script is:inline>
79+
(function() {
80+
const banner = document.getElementById('translation-banner');
81+
if (!banner) return;
82+
const ai = banner.dataset.ai === 'true';
83+
const key = 'banner_dismissed_translation_' + (ai ? 'ai' : 'manual');
84+
if (!sessionStorage.getItem(key)) banner.style.display = '';
85+
})();
86+
</script>

src/content.config.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,14 @@ import { docsSchema, i18nSchema } from '@astrojs/starlight/schema';
44
import { z } from 'astro/zod';
55

66
export const collections = {
7-
docs: defineCollection({ loader: docsLoader(), schema: docsSchema() }),
7+
docs: defineCollection({
8+
loader: docsLoader(),
9+
schema: docsSchema({
10+
extend: z.object({
11+
ai_translated: z.boolean().optional().default(false),
12+
}),
13+
}),
14+
}),
815
i18n: defineCollection({
916
loader: i18nLoader(),
1017
schema: i18nSchema({

src/content/docs/ru/configuration/automount_with_fstab.mdx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
---
22
title: Автоматическое монтирование дополнительных дисков при загрузке через fstab
33
description: Монтирование дополнительных статических дисков при загрузке с использованием файлов монтирования systemd или файла /etc/fstab
4+
ai_translated: true
45
---
56

67
import { Tabs, TabItem, Steps } from '@astrojs/starlight/components';
78

8-
:::note
9-
Эта страница была переведена с помощью генеративного искусственного интеллекта и предоставляется в целях доступности. Перевод может быть неполным, устаревшим или неточным. Английская версия является авторитетным источником и должна всегда использоваться, когда важна точность.
10-
:::
11-
129
Это руководство описывает основы использования как файлов монтирования systemd, так и файла fstab, расположенного в /etc/, для монтирования статических дисков во время загрузки. Здесь кратко объясняется, как найти UUID раздела или диска, что делают некоторые опции, а также приводятся ссылки для дальнейшего чтения, если предоставленной информации окажется недостаточно.
1310

1411
## Предварительные требования

src/content/docs/ru/configuration/boot_manager_configuration.mdx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
---
22
title: Конфигурация Менеджера Загрузки
33
description: Настройте параметры менеджера загрузки и передайте параметры ядру через командную строку
4+
ai_translated: true
45
---
56

6-
:::note
7-
Эта страница была переведена с помощью генеративного искусственного интеллекта и предоставляется в целях доступности. Перевод может быть неполным, устаревшим или неточным. Английская версия является авторитетным источником и должна всегда использоваться, когда важна точность.
8-
:::
9-
107
## systemd-boot
118

129
systemd-boot использует два типа конфигурационных файлов: один для самого systemd-boot в `/boot/loader/loader.conf` и по одному для каждой

src/content/docs/ru/configuration/btrfs_snapshots.mdx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,13 @@ description: Управление снимками Btrfs в CachyOS
44
tableOfContents:
55
minHeadingLevel: 1
66
maxHeadingLevel: 5
7+
ai_translated: true
78
---
89

910
import { Steps } from '@astrojs/starlight/components';
1011
import ImageComponent from '~/components/image-component.astro';
1112
import MultipleImageComponent from '~/components/multiple-images-component.astro';
1213

13-
:::note
14-
Эта страница была переведена с помощью генеративного искусственного интеллекта и предоставляется в целях доступности. Перевод может быть неполным, устаревшим или неточным. Английская версия является авторитетным источником и должна всегда использоваться, когда важна точность.
15-
:::
16-
1714
## Введение
1815

1916
:::caution

src/content/docs/ru/configuration/desktop_environments/hyprland.mdx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
---
22
title: Настройка Hyprland после установки и комбинации клавиш
33
description: Распространённые задачи после установки и обзор комбинаций клавиш
4+
ai_translated: true
45
---
56

6-
:::note
7-
Эта страница была переведена с помощью генеративного искусственного интеллекта и предоставляется в целях доступности. Перевод может быть неполным, устаревшим или неточным. Английская версия является авторитетным источником и должна всегда использоваться, когда важна точность.
8-
:::
9-
107
import { Kbd } from 'starlight-kbd/components'
118
import ImageComponent from '~/components/image-component.astro';
129
import { Aside } from '@astrojs/starlight/components';

src/content/docs/ru/configuration/dual_gpu.mdx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
---
22
title: Руководство по настройке двух видеокарт
3+
ai_translated: true
34
---
45

56
import ImageComponent from '~/components/image-component.astro';
67

7-
:::note
8-
Эта страница была переведена с помощью генеративного искусственного интеллекта и предоставляется в целях доступности. Перевод может быть неполным, устаревшим или неточным. Английская версия является авторитетным источником и должна всегда использоваться, когда важна точность.
9-
:::
10-
118
## Что такое гибридная графика?
129

1310
Гибридная графика — это аппаратная конфигурация, в которой две видеокарты

src/content/docs/ru/configuration/enabling_hardware_acceleration_in_google_chrome.mdx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
---
22
title: Аппаратное ускорение в браузерах на базе Chromium
33
description: Настройте аппаратное ускорение для декодирования/кодирования видео в браузерах на базе Chromium в CachyOS. Включает настройку для ГП AMD и шаблон для других ГП/браузеров.
4+
ai_translated: true
45
---
56

67
import { Tabs, TabItem, Steps } from '@astrojs/starlight/components';
78

8-
:::note
9-
Эта страница была переведена с помощью генеративного искусственного интеллекта и предоставляется в целях доступности. Перевод может быть неполным, устаревшим или неточным. Английская версия является авторитетным источником и должна всегда использоваться, когда важна точность.
10-
:::
11-
129
Это руководство описывает включение аппаратного ускорения в браузерах на базе Chromium в CachyOS. Это переносит задачи обработки видео/графики на ваш ГП, улучшая производительность.
1310

1411
## Предварительные требования

src/content/docs/ru/configuration/gaming.mdx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,13 @@ description: 'Охватывает установку необходимых п
44
tableOfContents:
55
minHeadingLevel: 1
66
maxHeadingLevel: 4
7+
ai_translated: true
78
---
89

910
import ImageComponent from '~/components/image-component.astro';
1011
import MultipleImageComponent from '~/components/multiple-images-component.astro';
1112
import { Tabs, TabItem, Steps, LinkButton, Icon } from '@astrojs/starlight/components';
1213

13-
:::note
14-
Эта страница была переведена с помощью генеративного искусственного интеллекта и предоставляется в целях доступности. Перевод может быть неполным, устаревшим или неточным. Английская версия является авторитетным источником и должна всегда использоваться, когда важна точность.
15-
:::
16-
1714
Добро пожаловать в руководство по играм в CachyOS! Оно проведёт вас через всё, что вам нужно знать для настройки системы для игр.
1815

1916
*Прежде всего, поймите, что добиться двузначного прироста FPS не всегда возможно. Иногда оптимизации могут привести к незначительным улучшениям или вообще не дать эффекта, в зависимости от игры и конфигурации оборудования.*

0 commit comments

Comments
 (0)