Skip to content

Commit 4925834

Browse files
committed
R111C: localize RU route titles
1 parent e13107f commit 4925834

15 files changed

Lines changed: 61 additions & 40 deletions

app/faq/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { JsonLd } from "@/components/JsonLd";
33
import { faqPageSchema } from "@/lib/structured-data";
44
import { WorkshopFaq } from "@/components/workshop/WorkshopFaq";
55
export const metadata: Metadata = {
6-
title: "FAQ",
6+
title: { absolute: "Вопросы и ответы — AI Skill Lab" },
77
description: "11 ответов о занятиях, проектах, оплате и старте AI Skill Lab.",
88
alternates: { canonical: "/faq", languages: { ru: "/faq", en: "/en/faq" } },
99
};

app/privacy/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import Link from "next/link";
33
import { LegalPage } from "@/components/LegalPage";
44
import { site } from "@/lib/site";
55

6-
export const metadata: Metadata = { title: "Конфиденциальность", description: "Как AI Skill Lab обрабатывает данные заявок и защищает приватность несовершеннолетних." };
6+
export const metadata: Metadata = { title: { absolute: "Политика приватности — AI Skill Lab" }, description: "Как AI Skill Lab обрабатывает данные заявок и защищает приватность несовершеннолетних." };
77

88
export default function PrivacyPage() {
99
return <LegalPage path="privacy" title="Конфиденциальность" intro="Как сайт работает с данными в текущем режиме запуска и что изменится, если будет включена собственная форма заявки.">

app/safety/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { Metadata } from "next";
22
import Link from "next/link";
33
import { LegalPage } from "@/components/LegalPage";
44

5-
export const metadata: Metadata = { title: "Безопасность детей и AI", description: "Возрастные правила, приватность, фактчекинг и роль взрослого в программах AI Skill Lab для детей и подростков." };
5+
export const metadata: Metadata = { title: { absolute: "Безопасность детей и подростков — AI Skill Lab" }, description: "Возрастные правила, приватность, фактчекинг и роль взрослого в программах AI Skill Lab для детей и подростков." };
66

77
export default function SafetyPage() {
88
return <LegalPage path="safety" title="Безопасность детей и AI" intro="Правила программы для 8–18 лет: взрослый остаётся в контуре, персональные данные минимизируются, а ответы моделей проверяются.">

app/terms/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { Metadata } from "next";
22
import Link from "next/link";
33
import { LegalPage } from "@/components/LegalPage";
44

5-
export const metadata: Metadata = { title: "Условия обучения", description: "Базовые условия образовательных программ AI Skill Lab." };
5+
export const metadata: Metadata = { title: { absolute: "Условия обучения — AI Skill Lab" }, description: "Базовые условия образовательных программ AI Skill Lab." };
66

77
export default function TermsPage() {
88
return <LegalPage path="terms" title="Условия обучения" intro="Базовые правила использования сайта и заказа индивидуального обучения. Конкретные коммерческие условия фиксируются до оплаты.">

deploy/live/_release.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,8 @@
153153
},
154154
{
155155
"path": "faq.html",
156-
"sha256": "6d0ce7a415249d3beb8f0942b7afc14c4b0c111af5b3b50ea3a209224fabcbb5",
157-
"size": 12065
156+
"sha256": "90611d58287fae9718162be28de5e39bc93019cb3b4084c00de210198de95d86",
157+
"size": 12146
158158
},
159159
{
160160
"path": "favicon.svg",
@@ -223,8 +223,8 @@
223223
},
224224
{
225225
"path": "privacy.html",
226-
"sha256": "8aca25a5300c3687d1a4d0a7b576187d1c6d80bdc2bbdedac209703edcfe536a",
227-
"size": 6657
226+
"sha256": "1aa2c747df561355fa16107d3c0a4b7b10cd4f62bf95912c2199389f69a92bd4",
227+
"size": 6753
228228
},
229229
{
230230
"path": "project-filter.js",
@@ -248,8 +248,8 @@
248248
},
249249
{
250250
"path": "safety.html",
251-
"sha256": "5e6dfd77b54d0492465a270e15cae542047c15f31069867c1a9b318ce2884af8",
252-
"size": 6940
251+
"sha256": "b837e0329543659064c6225f86377a3d3e546093eb0d6c183dc5376ae7765f5b",
252+
"size": 7072
253253
},
254254
{
255255
"path": "site.webmanifest",
@@ -283,8 +283,8 @@
283283
},
284284
{
285285
"path": "terms.html",
286-
"sha256": "4f2a545cf06f07528615f5a1596d7cf9e22d5da044eba44c2599ae46f00e5087",
287-
"size": 6157
286+
"sha256": "92e14a0a5315b1e37cd0ea59b520d8222d2345d8cac7a859240946bb0201d68e",
287+
"size": 6235
288288
},
289289
{
290290
"path": "vercel.json",
@@ -297,7 +297,7 @@
297297
"size": 21797
298298
}
299299
],
300-
"payload_sha256": "96e85146ffdfb3083fbe5ae8f7b6eefcb4d34efa5fa45a8679df408440e9e030",
301-
"release_id": "R111B_BRAND_MARK_FAVICON",
300+
"payload_sha256": "a331dffd13986936f6d2a81ec6f0b96712e40bc9d1dcbffc7dc9692a4040c9f6",
301+
"release_id": "R111C_RU_TITLE_LOCALIZATION",
302302
"schema": "ai-skill-lab.static-release.v1"
303303
}

deploy/live/faq.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

deploy/live/privacy.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<!doctype html><html lang="ru"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="description" content="Политика приватности AI Skill Lab для публичной формы заявки и прямых каналов связи."><meta name="theme-color" content="#0b0d10"><title>Privacy — AI Skill Lab</title><link rel="canonical" href="https://aiskillab.work/privacy"><link rel="alternate" hreflang="ru" href="https://aiskillab.work/privacy"><link rel="alternate" hreflang="en" href="https://aiskillab.work/en/privacy"><link rel="alternate" hreflang="x-default" href="https://aiskillab.work/privacy"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="manifest" href="/site.webmanifest"><meta property="og:type" content="website"><meta property="og:site_name" content="AI Skill Lab"><meta property="og:title" content="Privacy — AI Skill Lab"><meta property="og:description" content="Политика приватности AI Skill Lab для публичной формы заявки и прямых каналов связи."><meta property="og:url" content="https://aiskillab.work/privacy"><meta property="og:image" content="https://aiskillab.work/og.png"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Privacy — AI Skill Lab"><meta name="twitter:description" content="Политика приватности AI Skill Lab для публичной формы заявки и прямых каналов связи."><meta name="twitter:image" content="https://aiskillab.work/og.png"><link rel="stylesheet" href="/workshop.css"></head><body><div class="workshopPage"><a class="skip" href="#main">К содержанию</a><header class="workshopHeader"><a class="workshopBrand" href="/" aria-label="AI Skill Lab — Home"><span class="workshopMark" aria-hidden="true"><svg viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 1 23 23H1Zm-1 9h2L16 14H8Zm-1.5 6h5L19 23H5Z"/></svg></span><span>AI SKILL LAB</span></a><nav class="workshopMenu" aria-label="Основная навигация"><a href="/personal">Взрослые</a><a href="/teens">Подростки</a><a href="/kids">Дети</a><a href="/business">Бизнес</a><a href="/studio">Studio</a><a href="/pricing">Цены</a></nav><div class="workshopActions"><a class="workshopUtility" href="/proof" aria-label="Proof Lab">LAB</a><button class="workshopUtility" type="button" data-lab-command-open aria-haspopup="dialog" aria-controls="lab-command" aria-keyshortcuts="Control+K Meta+K" aria-label="Open Lab Command">⌘K</button><a class="workshopUtility" href="/en/privacy">EN</a><a class="workshopPrimary" href="/start">Начать</a></div></header><main id="main"><section class="hero"><div class="wrap"><span class="tag">Privacy</span><h1>Минимум данных.<br><span>Понятный маршрут.</span></h1><p class="lead">На публичном /start включена собственная форма заявки; прямые каналы связи остаются доступны.</p></div></section><section class="section"><div class="wrap legal"><h2>Что собирает форма</h2><p>Форма может передавать имя совершеннолетнего заявителя или взрослого, организующего обучение, контакт для связи, выбранную аудиторию, описание цели, язык страницы и путь источника заявки. Сервис также создаёт технический request ID и отметку времени.</p><h2>Куда отправляется заявка</h2><p>Браузер отправляет заявку на same-origin /api/lead. Vercel проксирует этот путь в изолированный ingress AI Skill Lab; ingress проверяет Origin и данные, подписывает запрос и передаёт его в настроенный оператором HTTPS webhook. После подтверждённого сохранения сервис может отправить оператору техническое уведомление в Telegram только с request ID, временем заявки, выбранной аудиторией и языком страницы. Имя, контакт, описание цели, программа и путь источника в это уведомление не включаются. Секрет подписи не хранится в публичном сайте.</p><h2>Оператор и срок хранения</h2><p>Оператор: Dumanyan Robert. Юрисдикция: Thailand. Privacy-контакт: robert@aiskillab.work. Настроенный срок хранения заявок — 30 дней.</p><h2>Прямые каналы</h2><p>Telegram, email, WhatsApp и LINE остаются альтернативными каналами. После перехода во внешний сервис дальнейшая обработка регулируется его условиями и информацией, которую пользователь решит отправить.</p><h2>Несовершеннолетние</h2><p>Мы не просим ребёнка самостоятельно оставлять контактные данные. Для youth-программ заявка и организационная коммуникация идут только через контакт взрослого; форма требует подтверждение взрослого для parent/teen сценариев.</p><div class="notice">Не отправляйте документы, пароли, API keys, платёжные данные или прямой контакт ребёнка. На публичной форме нет checkout и рекламных пикселей.</div></div></section></main><footer class="workshopFooter"><div><strong>AI Skill Lab</strong><span>Практический AI · online / Phuket</span></div><nav aria-label="Подвал"><a href="/faq">FAQ</a><a href="/about">О проекте</a><a href="/challenge">Challenge</a><a href="/build">Build Log</a><a href="/proof">Proof Lab</a></nav><span>© 2026</span></footer><dialog class="labDialog" id="lab-command" aria-label="Open Lab Command"></dialog><script src="/lab-command.js" defer></script></div></body></html>
1+
<!doctype html><html lang="ru"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="description" content="Политика приватности AI Skill Lab для публичной формы заявки и прямых каналов связи."><meta name="theme-color" content="#0b0d10"><title>Политика приватности — AI Skill Lab</title><link rel="canonical" href="https://aiskillab.work/privacy"><link rel="alternate" hreflang="ru" href="https://aiskillab.work/privacy"><link rel="alternate" hreflang="en" href="https://aiskillab.work/en/privacy"><link rel="alternate" hreflang="x-default" href="https://aiskillab.work/privacy"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="manifest" href="/site.webmanifest"><meta property="og:type" content="website"><meta property="og:site_name" content="AI Skill Lab"><meta property="og:title" content="Политика приватности — AI Skill Lab"><meta property="og:description" content="Политика приватности AI Skill Lab для публичной формы заявки и прямых каналов связи."><meta property="og:url" content="https://aiskillab.work/privacy"><meta property="og:image" content="https://aiskillab.work/og.png"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Политика приватности — AI Skill Lab"><meta name="twitter:description" content="Политика приватности AI Skill Lab для публичной формы заявки и прямых каналов связи."><meta name="twitter:image" content="https://aiskillab.work/og.png"><link rel="stylesheet" href="/workshop.css"></head><body><div class="workshopPage"><a class="skip" href="#main">К содержанию</a><header class="workshopHeader"><a class="workshopBrand" href="/" aria-label="AI Skill Lab — Home"><span class="workshopMark" aria-hidden="true"><svg viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 1 23 23H1Zm-1 9h2L16 14H8Zm-1.5 6h5L19 23H5Z"/></svg></span><span>AI SKILL LAB</span></a><nav class="workshopMenu" aria-label="Основная навигация"><a href="/personal">Взрослые</a><a href="/teens">Подростки</a><a href="/kids">Дети</a><a href="/business">Бизнес</a><a href="/studio">Studio</a><a href="/pricing">Цены</a></nav><div class="workshopActions"><a class="workshopUtility" href="/proof" aria-label="Proof Lab">LAB</a><button class="workshopUtility" type="button" data-lab-command-open aria-haspopup="dialog" aria-controls="lab-command" aria-keyshortcuts="Control+K Meta+K" aria-label="Open Lab Command">⌘K</button><a class="workshopUtility" href="/en/privacy">EN</a><a class="workshopPrimary" href="/start">Начать</a></div></header><main id="main"><section class="hero"><div class="wrap"><span class="tag">Privacy</span><h1>Минимум данных.<br><span>Понятный маршрут.</span></h1><p class="lead">На публичном /start включена собственная форма заявки; прямые каналы связи остаются доступны.</p></div></section><section class="section"><div class="wrap legal"><h2>Что собирает форма</h2><p>Форма может передавать имя совершеннолетнего заявителя или взрослого, организующего обучение, контакт для связи, выбранную аудиторию, описание цели, язык страницы и путь источника заявки. Сервис также создаёт технический request ID и отметку времени.</p><h2>Куда отправляется заявка</h2><p>Браузер отправляет заявку на same-origin /api/lead. Vercel проксирует этот путь в изолированный ingress AI Skill Lab; ingress проверяет Origin и данные, подписывает запрос и передаёт его в настроенный оператором HTTPS webhook. После подтверждённого сохранения сервис может отправить оператору техническое уведомление в Telegram только с request ID, временем заявки, выбранной аудиторией и языком страницы. Имя, контакт, описание цели, программа и путь источника в это уведомление не включаются. Секрет подписи не хранится в публичном сайте.</p><h2>Оператор и срок хранения</h2><p>Оператор: Dumanyan Robert. Юрисдикция: Thailand. Privacy-контакт: robert@aiskillab.work. Настроенный срок хранения заявок — 30 дней.</p><h2>Прямые каналы</h2><p>Telegram, email, WhatsApp и LINE остаются альтернативными каналами. После перехода во внешний сервис дальнейшая обработка регулируется его условиями и информацией, которую пользователь решит отправить.</p><h2>Несовершеннолетние</h2><p>Мы не просим ребёнка самостоятельно оставлять контактные данные. Для youth-программ заявка и организационная коммуникация идут только через контакт взрослого; форма требует подтверждение взрослого для parent/teen сценариев.</p><div class="notice">Не отправляйте документы, пароли, API keys, платёжные данные или прямой контакт ребёнка. На публичной форме нет checkout и рекламных пикселей.</div></div></section></main><footer class="workshopFooter"><div><strong>AI Skill Lab</strong><span>Практический AI · online / Phuket</span></div><nav aria-label="Подвал"><a href="/faq">FAQ</a><a href="/about">О проекте</a><a href="/challenge">Challenge</a><a href="/build">Build Log</a><a href="/proof">Proof Lab</a></nav><span>© 2026</span></footer><dialog class="labDialog" id="lab-command" aria-label="Open Lab Command"></dialog><script src="/lab-command.js" defer></script></div></body></html>

0 commit comments

Comments
 (0)