Этап 1b: сайт

- Страницы обоих брендов из блоков Payload (D-029): главная, цены,
  локации, поддержка, 4 юридические, 404 и 500. Коллекции pages
  (черновики и версии) и faq с местами показа, 12 типов блоков; поля
  sites — почта и Telegram поддержки, часы работы, SEO по умолчанию.
- Карта и глобус рисуются на сервере (d3-geo), контуры во внешнем
  SVG через <use>; выбор локации синхронизирован между картой и сеткой.
- Тексты сайта и юридические черновики на 5 языках: de, fr, es —
  перевод с глоссарием; seed создаёт страницы и FAQ, только если их
  нет, SEED_CONTENT=reset пересоздаёт.
- SEO: title и описания, canonical, hreflang с x-default,
  sitemap.xml и robots.txt на каждый домен, картинки для соцсетей.
- Статическая сборка и пересборка через revalidatePath из хуков
  Payload (D-030); /svc/internal/revalidate для проверки.
- 404 — статичная страница со статусом 404 через proxy; на сайте
  только опубликованные страницы.
- Производительность: Client Hints темы Payload только в админке,
  предзагрузка 2 файлов шрифтов вместо 6; Lighthouse mobile 97–99.
- Контраст --ink-3 по WCAG AA, радиокнопки вместо div role=button.
- Документация: итоги 1b, глоссарий de/fr/es, трактовки юридических
  черновиков подтверждены, переносимые вопросы — в этапах 3e–3h.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
andreypr207andClaude Opus 5.5 committed 2026-10-22 04:53:15 +02:00
1 parent 515acfb69d
commit 20491d1ba4
134 files changed
+11232 -212

No files matched your search

+32 -19
View File
@@ -36,10 +36,13 @@
## 5. SEO
1. `hreflang` на все включённые языки и `x-default` на английскую версию.
2. `canonical` на основной домен.
3. `sitemap.xml` для каждого маркетингового домена с вариантами всех языков.
2. `canonical` на основной домен, в том числе с зеркал.
3. `sitemap.xml` для каждого маркетингового домена с вариантами всех языков. `robots.txt` — на каждый домен: индексация разрешена только маркетинговым доменам с флагом `indexable`, остальным закрыто всё. Оба файла proxy переписывает на `/svc/seo/{домен}/…`.
4. Кабинет и MiniApp не индексируются (`noindex`).
5. Атрибут `lang` у `<html>` соответствует языку страницы.
6. `<title>`: у главной — свой заголовок целиком, у остальных страниц — по шаблону сайта `sites.seo.titleTemplate` («%s · Вейликс»). Описание — из `pages.seo`, иначе описание сайта. Плейсхолдеры цен и числа стран в них заполняются.
7. Картинка для соцсетей: своя у страницы (`pages.seo.image`) или сайта (`sites.seo.ogImage`), иначе создаётся `/svc/og/{сайт}/{язык}/{страница}` — 1200×630, заголовок страницы в цветах бренда.
8. 404 отдаётся со статусом 404 и `noindex`.
## 6. Валюта
@@ -59,21 +62,31 @@
## 8. Глоссарий
| RU | EN | Примечание |
|---|---|---|
| Вейликс / ВейликсВПН | Veilix / VeilixVPN | не переводится |
| ключ | key | купленная единица доступа |
| локация | location | |
| тариф | plan | |
| подключение | connection | |
| устройство | device | |
| индивидуальный IP | dedicated IP | |
| RU-адрес | RU address | |
| баланс, счёт | balance | |
| пополнить | top up | |
| продление, автопродление | renewal, auto-renewal | |
| льготный период | grace period | |
| реферальная программа | referral program | |
| установим за 24 часа | ready within 24 hours | статус локации dedicated |
| RU | EN | DE | FR | ES | Примечание |
|---|---|---|---|---|---|
| Вейликс / ВейликсВПН | Veilix / VeilixVPN | Veilix / VeilixVPN | Veilix / VeilixVPN | Veilix / VeilixVPN | не переводится |
| ключ | key | Schlüssel | clé | clave | купленная единица доступа |
| локация | location | Standort | emplacement | ubicación | |
| тариф | plan | Tarif | forfait | plan | |
| подписка | subscription | Abonnement | abonnement | suscripción | у mass на сайте |
| подключение | connection | Verbindung | connexion | conexión | |
| устройство | device | Gerät | appareil | dispositivo | |
| индивидуальный IP | dedicated IP | dedizierte IP-Adresse | IP dédiée | IP dedicada | |
| RU-адрес, российский адрес | RU address, Russian address | RU-Adresse, russische Adresse | adresse RU, adresse russe | dirección RU, dirección rusa | |
| кабинет | account | Kundenkonto | espace client | área de cliente | |
| баланс, счёт | balance | Guthaben | solde | saldo | |
| пополнить | top up | aufladen | recharger | recargar | |
| продление, автопродление | renewal, auto-renewal | Verlängerung, automatische Verlängerung | renouvellement, renouvellement automatique | renovación, renovación automática | |
| льготный период | grace period | Kulanzfrist | délai de grâce | período de gracia | |
| реферальная программа | referral program | Empfehlungsprogramm | programme de parrainage | programa de referidos | |
| серверы в наличии | servers available | Server verfügbar | serveurs disponibles | servidores disponibles | статус локации dedicated |
| установим за 24 часа | ready within 24 hours | in 24 Stunden bereit | prêt sous 24 heures | listo en 24 horas | статус локации dedicated |
| включено | included | inklusive | inclus | incluido | статус локации mass |
| скоро | coming soon | in Kürze | bientôt | próximamente | статус локации mass |
| цены | pricing | Preise | Tarifs | Precios | пункт меню и страница; тариф как продукт — по строке «тариф» |
| поддержка | support | Support | Assistance | Soporte | |
| войти | log in | Anmelden | Se connecter | Entrar | кнопка в шапке шириной 78 px |
| счёт и платежи | billing | Guthaben & Zahlungen | Facturation | Saldo y pagos | раздел кабинета |
| документы | legal | Rechtliches | Informations légales | Legal | раздел подвала; во Франции «Mentions légales» — отдельная обязательная страница |
Колонки для de, fr, es добавляются на этапе 1b.
Обращение к пользователю: de — «Sie», fr — «vous», es — «tú» (как принято у потребительских сервисов в Испании и Латинской Америке). Типографика: de — кавычки „…“ и короткое тире « – »; fr — « … » и неразрывный пробел перед `: ; ? !`; es — «…», ¿…? и ¡…!. Длинные немецкие слова в узких местах — с мягким переносом (U+00AD). Названия протоколов и приложений (WireGuard, AmneziaWG, Xray, VLESS, Hysteria2, XHTTP, Happ) не переводятся.