forked from Rosetta/landing
Compare commits
2 Commits
8efaafb833
...
580a0da008
| Author | SHA1 | Date | |
|---|---|---|---|
| 580a0da008 | |||
| 633c338c16 |
230
public/privacy/index.html
Normal file
230
public/privacy/index.html
Normal file
@@ -0,0 +1,230 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="ru">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>Политика конфиденциальности Rosetta</title>
|
||||||
|
<meta
|
||||||
|
name="description"
|
||||||
|
content="Политика конфиденциальности Rosetta: как ROSETTA CLOUD SERVICES LIMITED обрабатывает данные в end-to-end encrypted messenger."
|
||||||
|
/>
|
||||||
|
<link rel="canonical" href="https://rosetta.im/privacy/" />
|
||||||
|
<style>
|
||||||
|
:root {
|
||||||
|
color-scheme: light dark;
|
||||||
|
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
||||||
|
line-height: 1.6;
|
||||||
|
color: #1f2937;
|
||||||
|
background: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
background: linear-gradient(180deg, rgba(0, 102, 255, 0.04), rgba(255, 255, 255, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
main {
|
||||||
|
width: min(880px, calc(100% - 40px));
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 56px 0 72px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #0066ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
margin: 0 0 8px;
|
||||||
|
font-size: clamp(32px, 5vw, 48px);
|
||||||
|
line-height: 1.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
margin-top: 36px;
|
||||||
|
font-size: 22px;
|
||||||
|
line-height: 1.25;
|
||||||
|
}
|
||||||
|
|
||||||
|
p,
|
||||||
|
li {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.muted {
|
||||||
|
color: #6b7280;
|
||||||
|
}
|
||||||
|
|
||||||
|
.back {
|
||||||
|
display: inline-block;
|
||||||
|
margin-bottom: 28px;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.address {
|
||||||
|
white-space: pre-line;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
color: #f3f4f6;
|
||||||
|
background: #101113;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background: linear-gradient(180deg, rgba(0, 102, 255, 0.12), rgba(16, 17, 19, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
.muted {
|
||||||
|
color: #a1a1aa;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<main>
|
||||||
|
<a class="back" href="/">← На главную</a>
|
||||||
|
<h1>Политика конфиденциальности Rosetta</h1>
|
||||||
|
<p class="muted">Дата последнего обновления: 22 мая 2026 года</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Rosetta IM управляется компанией ROSETTA CLOUD SERVICES LIMITED
|
||||||
|
("Rosetta", "мы", "нас" или "наш"). Эта Политика конфиденциальности
|
||||||
|
объясняет, как мы обрабатываем информацию при использовании приложения
|
||||||
|
Rosetta и сайта https://rosetta.im.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>1. Какие данные мы обрабатываем</h2>
|
||||||
|
<p>
|
||||||
|
Rosetta создана с принципом минимизации данных. Для регистрации не
|
||||||
|
требуется номер телефона, адрес электронной почты или настоящее имя.
|
||||||
|
Приложение использует криптографические ключи и технические
|
||||||
|
идентификаторы, необходимые для работы сервиса.
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
Данные учетной записи и криптографические данные: публичные ключи,
|
||||||
|
идентификаторы учетной записи и связанные технические данные,
|
||||||
|
необходимые для идентификации пользователей и доставки зашифрованных
|
||||||
|
сообщений. Приватные ключи должны оставаться на вашем устройстве.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Зашифрованные сообщения и медиа в процессе доставки: текст сообщений,
|
||||||
|
файлы и медиа шифруются до отправки. Наши серверы предназначены для
|
||||||
|
ретрансляции зашифрованных данных и зашифрованных ключей сообщений,
|
||||||
|
а не для чтения содержимого сообщений.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Технические данные устройства и приложения: версия приложения,
|
||||||
|
операционная система, платформа, архитектура, данные запросов на
|
||||||
|
обновление, IP-адрес, временные метки и серверные журналы, необходимые
|
||||||
|
для безопасности, надежности, предотвращения злоупотреблений и
|
||||||
|
доставки обновлений.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Обращения в поддержку: если вы связываетесь с нами, мы можем
|
||||||
|
обработать ваш email, содержание обращения и информацию, которую вы
|
||||||
|
добровольно предоставили.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>2. Реклама и трекинг</h2>
|
||||||
|
<p>
|
||||||
|
Мы не используем сторонние рекламные SDK, рекламные трекеры или
|
||||||
|
межсервисное отслеживание. Мы не продаем персональные данные.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>3. Как мы используем данные</h2>
|
||||||
|
<p>Мы используем данные только для того, чтобы:</p>
|
||||||
|
<ul>
|
||||||
|
<li>предоставлять, поддерживать и защищать Rosetta;</li>
|
||||||
|
<li>доставлять зашифрованные сообщения между пользователями;</li>
|
||||||
|
<li>предоставлять загрузки и обновления приложения;</li>
|
||||||
|
<li>выявлять злоупотребления, предотвращать мошенничество и защищать сервис;</li>
|
||||||
|
<li>отвечать на обращения в поддержку;</li>
|
||||||
|
<li>выполнять юридические обязанности.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>4. Сквозное шифрование</h2>
|
||||||
|
<p>
|
||||||
|
Rosetta спроектирована так, чтобы содержимое сообщений шифровалось до
|
||||||
|
попадания на наши серверы. Наши серверы не предназначены для доступа к
|
||||||
|
расшифрованному содержимому сообщений или медиа. Сообщения хранятся на
|
||||||
|
устройствах пользователей, а не как читаемая история сообщений на наших
|
||||||
|
серверах.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>5. Передача данных третьим лицам</h2>
|
||||||
|
<p>Мы можем передавать ограниченную информацию только:</p>
|
||||||
|
<ul>
|
||||||
|
<li>инфраструктурным и хостинг-провайдерам, которые помогают нам работать;</li>
|
||||||
|
<li>профессиональным консультантам, если это необходимо;</li>
|
||||||
|
<li>
|
||||||
|
государственным органам или другим сторонам, если это требуется
|
||||||
|
законом или необходимо для защиты прав, безопасности и целостности
|
||||||
|
сервиса.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>6. Срок хранения</h2>
|
||||||
|
<p>
|
||||||
|
Зашифрованные данные сообщений в процессе доставки обрабатываются только
|
||||||
|
настолько, насколько это необходимо для работы сервиса. Технические
|
||||||
|
журналы и обращения в поддержку хранятся только в течение разумного
|
||||||
|
срока, необходимого для безопасности, надежности, поддержки, юридических
|
||||||
|
и операционных целей.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>7. Ваши права</h2>
|
||||||
|
<p>
|
||||||
|
В зависимости от вашей юрисдикции вы можете иметь право запросить доступ,
|
||||||
|
исправление, удаление или ограничение обработки персональных данных. Для
|
||||||
|
запроса свяжитесь с нами по адресу admin@rosetta.im.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Поскольку Rosetta минимизирует учетные данные и использует
|
||||||
|
криптографические идентификаторы, для некоторых запросов может
|
||||||
|
потребоваться подтверждение контроля над соответствующей учетной записью
|
||||||
|
или ключами.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>8. Дети</h2>
|
||||||
|
<p>
|
||||||
|
Rosetta не предназначена для детей младше 13 лет или минимального
|
||||||
|
возраста, установленного в вашей юрисдикции. Если мы узнаем, что
|
||||||
|
получили персональные данные ребенка без необходимого согласия, мы
|
||||||
|
примем разумные меры для их удаления.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>9. Международная обработка</h2>
|
||||||
|
<p>
|
||||||
|
ROSETTA CLOUD SERVICES LIMITED может обрабатывать информацию в странах,
|
||||||
|
отличных от страны вашего проживания. Когда это требуется, мы применяем
|
||||||
|
соответствующие меры защиты для международной передачи данных.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>10. Безопасность</h2>
|
||||||
|
<p>
|
||||||
|
Мы применяем технические и организационные меры для защиты информации.
|
||||||
|
Ни одна система не является абсолютно безопасной. Пользователь отвечает
|
||||||
|
за защиту своего устройства, приватных ключей и доступа к учетной записи.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>11. Изменения политики</h2>
|
||||||
|
<p>
|
||||||
|
Мы можем обновлять эту Политику конфиденциальности. При существенных
|
||||||
|
изменениях мы обновим дату последнего изменения и, при необходимости,
|
||||||
|
предоставим дополнительное уведомление.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>12. Контакты</h2>
|
||||||
|
<p class="address">ROSETTA CLOUD SERVICES LIMITED
|
||||||
|
Registered address:
|
||||||
|
UNIT 704C 7/F BLK 3 NAN FUNG IND CITY
|
||||||
|
18 TIN HAU RD
|
||||||
|
TUEN MUN
|
||||||
|
HONG KONG</p>
|
||||||
|
<p>Email: <a href="mailto:admin@rosetta.im">admin@rosetta.im</a></p>
|
||||||
|
<p>Phone: <a href="tel:+85228910030">+852 2891 0030</a></p>
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
261
public/terms/index.html
Normal file
261
public/terms/index.html
Normal file
@@ -0,0 +1,261 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="ru">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>Условия использования Rosetta</title>
|
||||||
|
<meta
|
||||||
|
name="description"
|
||||||
|
content="Условия использования и лицензионное соглашение Rosetta для приложения ROSETTA CLOUD SERVICES LIMITED."
|
||||||
|
/>
|
||||||
|
<link rel="canonical" href="https://rosetta.im/terms/" />
|
||||||
|
<style>
|
||||||
|
:root {
|
||||||
|
color-scheme: light dark;
|
||||||
|
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
||||||
|
line-height: 1.6;
|
||||||
|
color: #1f2937;
|
||||||
|
background: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
background: linear-gradient(180deg, rgba(0, 102, 255, 0.04), rgba(255, 255, 255, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
main {
|
||||||
|
width: min(880px, calc(100% - 40px));
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 56px 0 72px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #0066ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
margin: 0 0 8px;
|
||||||
|
font-size: clamp(32px, 5vw, 48px);
|
||||||
|
line-height: 1.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
margin-top: 36px;
|
||||||
|
font-size: 22px;
|
||||||
|
line-height: 1.25;
|
||||||
|
}
|
||||||
|
|
||||||
|
p,
|
||||||
|
li {
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.muted {
|
||||||
|
color: #6b7280;
|
||||||
|
}
|
||||||
|
|
||||||
|
.back {
|
||||||
|
display: inline-block;
|
||||||
|
margin-bottom: 28px;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.address {
|
||||||
|
white-space: pre-line;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
color: #f3f4f6;
|
||||||
|
background: #101113;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background: linear-gradient(180deg, rgba(0, 102, 255, 0.12), rgba(16, 17, 19, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
.muted {
|
||||||
|
color: #a1a1aa;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<main>
|
||||||
|
<a class="back" href="/">← На главную</a>
|
||||||
|
<h1>Условия использования Rosetta</h1>
|
||||||
|
<p class="muted">Дата последнего обновления: 22 мая 2026 года</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Эти Условия использования и лицензионное соглашение конечного
|
||||||
|
пользователя ("Условия") регулируют использование Rosetta, приложения для
|
||||||
|
обмена сообщениями со сквозным шифрованием, которым управляет ROSETTA
|
||||||
|
CLOUD SERVICES LIMITED ("Rosetta", "мы", "нас" или "наш").
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Скачивая, устанавливая или используя Rosetta, вы соглашаетесь с этими
|
||||||
|
Условиями.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>1. Соглашение между вами и Rosetta</h2>
|
||||||
|
<p>
|
||||||
|
Эти Условия заключаются между вами и ROSETTA CLOUD SERVICES LIMITED, а не
|
||||||
|
с Apple. Мы, а не Apple, несем ответственность за Rosetta и его
|
||||||
|
содержимое.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>2. Лицензия</h2>
|
||||||
|
<p>
|
||||||
|
Мы предоставляем вам ограниченную, неисключительную, непередаваемую и
|
||||||
|
отзывную лицензию на использование Rosetta для личного или законного
|
||||||
|
делового общения на устройствах Apple, которыми вы владеете или
|
||||||
|
управляете, в соответствии с Apple Media Services Terms and Conditions,
|
||||||
|
включая применимые правила Family Sharing и volume purchasing.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Вы не вправе копировать, изменять, осуществлять reverse engineering,
|
||||||
|
декомпилировать, перепродавать, сублицензировать, сдавать в аренду или
|
||||||
|
распространять Rosetta, кроме случаев, разрешенных применимым законом.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>3. Конфиденциальность</h2>
|
||||||
|
<p>
|
||||||
|
Использование Rosetta также регулируется нашей Политикой
|
||||||
|
конфиденциальности: <a href="/privacy/">https://rosetta.im/privacy/</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>4. Зашифрованные сообщения</h2>
|
||||||
|
<p>
|
||||||
|
Rosetta предназначена для end-to-end encrypted коммуникации. Вы отвечаете
|
||||||
|
за защиту своего устройства, приватных ключей и доступа к учетной записи.
|
||||||
|
Если вы потеряете доступ к устройству или ключам, мы можем не иметь
|
||||||
|
возможности восстановить ваши сообщения или учетные данные.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>5. Допустимое использование</h2>
|
||||||
|
<p>Вы соглашаетесь не использовать Rosetta для:</p>
|
||||||
|
<ul>
|
||||||
|
<li>нарушения законов или нормативных требований;</li>
|
||||||
|
<li>нарушения прав других лиц;</li>
|
||||||
|
<li>отправки спама, вредоносного ПО, мошеннических сообщений, угроз, домогательств или незаконного контента;</li>
|
||||||
|
<li>попыток нарушить работу, перегрузить, скомпрометировать или исследовать инфраструктуру Rosetta неразрешенными способами;</li>
|
||||||
|
<li>выдачи себя за другое лицо или искажения своей личности;</li>
|
||||||
|
<li>любой запрещенной или санкционной деятельности.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>6. Не для экстренной связи</h2>
|
||||||
|
<p>
|
||||||
|
Rosetta не предназначена для экстренных звонков, экстренных сообщений или
|
||||||
|
коммуникации, где сбой или задержка могут привести к смерти, травме или
|
||||||
|
серьезному ущербу. В экстренных ситуациях используйте официальные каналы
|
||||||
|
связи.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>7. Пользовательский контент</h2>
|
||||||
|
<p>
|
||||||
|
Вы сохраняете права на контент, который создаете или отправляете через
|
||||||
|
Rosetta. Вы предоставляете нам только ограниченные права, необходимые для
|
||||||
|
работы сервиса, например для маршрутизации зашифрованных сообщений и
|
||||||
|
поддержания безопасности сервиса. Мы не заявляем права собственности на
|
||||||
|
ваши сообщения или файлы.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>8. Обновления и доступность</h2>
|
||||||
|
<p>
|
||||||
|
Мы можем обновлять, изменять, приостанавливать или прекращать работу
|
||||||
|
Rosetta или отдельных функций. Некоторые функции могут требовать
|
||||||
|
подключения к интернету, совместимого устройства и поддерживаемой
|
||||||
|
операционной системы.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>9. Платежи</h2>
|
||||||
|
<p>
|
||||||
|
Rosetta в настоящее время предоставляется бесплатно, если явно не указано
|
||||||
|
иное. Если в будущем появятся платные функции, подписки или покупки через
|
||||||
|
Apple, будут применяться платежные и подписочные правила Apple.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>10. Поддержка и обслуживание</h2>
|
||||||
|
<p>
|
||||||
|
ROSETTA CLOUD SERVICES LIMITED несет единоличную ответственность за
|
||||||
|
поддержку и обслуживание Rosetta. Apple не обязана предоставлять
|
||||||
|
поддержку или обслуживание Rosetta.
|
||||||
|
</p>
|
||||||
|
<p>Контакт поддержки: <a href="mailto:admin@rosetta.im">admin@rosetta.im</a></p>
|
||||||
|
|
||||||
|
<h2>11. Гарантия</h2>
|
||||||
|
<p>
|
||||||
|
Rosetta предоставляется "как есть" и "по доступности" в максимальной
|
||||||
|
степени, разрешенной законом. Если Rosetta не соответствует применимой
|
||||||
|
гарантии, вы можете уведомить Apple, и Apple может вернуть цену покупки,
|
||||||
|
если она была уплачена. В максимальной степени, разрешенной законом,
|
||||||
|
Apple не несет иных гарантийных обязательств в отношении Rosetta.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>12. Претензии по продукту</h2>
|
||||||
|
<p>
|
||||||
|
ROSETTA CLOUD SERVICES LIMITED, а не Apple, отвечает за рассмотрение
|
||||||
|
претензий, связанных с Rosetta, включая претензии по ответственности за
|
||||||
|
продукт, юридические или регуляторные претензии, а также претензии по
|
||||||
|
законам о защите прав потребителей.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>13. Претензии по интеллектуальной собственности</h2>
|
||||||
|
<p>
|
||||||
|
Если третья сторона заявляет, что Rosetta или ваше использование Rosetta
|
||||||
|
нарушает права интеллектуальной собственности, ROSETTA CLOUD SERVICES
|
||||||
|
LIMITED, а не Apple, отвечает за расследование, защиту, урегулирование и
|
||||||
|
прекращение такой претензии.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>14. Соблюдение законов</h2>
|
||||||
|
<p>
|
||||||
|
Вы подтверждаете, что не находитесь в стране, на которую распространяется
|
||||||
|
эмбарго правительства США или которая определена правительством США как
|
||||||
|
страна, поддерживающая терроризм, и что вы не включены в списки
|
||||||
|
запрещенных или ограниченных лиц правительства США.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>15. Apple как третья сторона-бенефициар</h2>
|
||||||
|
<p>
|
||||||
|
Apple и дочерние компании Apple являются третьими сторонами-бенефициарами
|
||||||
|
этих Условий. После принятия вами Условий Apple получает право
|
||||||
|
обеспечивать исполнение этих Условий против вас как третья
|
||||||
|
сторона-бенефициар.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>16. Прекращение доступа</h2>
|
||||||
|
<p>
|
||||||
|
Мы можем приостановить или прекратить доступ к Rosetta, если вы нарушаете
|
||||||
|
эти Условия, создаете риск для других пользователей или используете
|
||||||
|
сервис незаконно. Вы можете прекратить использование Rosetta в любое
|
||||||
|
время.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>17. Ограничение ответственности</h2>
|
||||||
|
<p>
|
||||||
|
В максимальной степени, разрешенной законом, ROSETTA CLOUD SERVICES
|
||||||
|
LIMITED не несет ответственности за косвенные, случайные, специальные,
|
||||||
|
последующие или штрафные убытки, а также за потерю данных, прибыли,
|
||||||
|
деловой репутации или коммерческих возможностей, связанных с
|
||||||
|
использованием Rosetta.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>18. Применимое право</h2>
|
||||||
|
<p>
|
||||||
|
Эти Условия регулируются законодательством Гонконга, если обязательные
|
||||||
|
нормы защиты потребителей в вашей юрисдикции не требуют иного.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>19. Контакты</h2>
|
||||||
|
<p class="address">ROSETTA CLOUD SERVICES LIMITED
|
||||||
|
Registered address:
|
||||||
|
UNIT 704C 7/F BLK 3 NAN FUNG IND CITY
|
||||||
|
18 TIN HAU RD
|
||||||
|
TUEN MUN
|
||||||
|
HONG KONG</p>
|
||||||
|
<p>Email: <a href="mailto:admin@rosetta.im">admin@rosetta.im</a></p>
|
||||||
|
<p>Phone: <a href="tel:+85228910030">+852 2891 0030</a></p>
|
||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -7,6 +7,7 @@ import { FeaturesGrid } from './components/FeaturesGrid/FeaturesGrid';
|
|||||||
import { SEO } from './components/SEO/SEO';
|
import { SEO } from './components/SEO/SEO';
|
||||||
import './style.css'
|
import './style.css'
|
||||||
import { MessageSteps } from './components/MessageSteps/MessageSteps';
|
import { MessageSteps } from './components/MessageSteps/MessageSteps';
|
||||||
|
import { Footer } from './components/Footer/Footer';
|
||||||
|
|
||||||
|
|
||||||
export default function App() {
|
export default function App() {
|
||||||
@@ -17,6 +18,7 @@ export default function App() {
|
|||||||
<FeaturesGrid></FeaturesGrid>
|
<FeaturesGrid></FeaturesGrid>
|
||||||
<MessageSteps></MessageSteps>
|
<MessageSteps></MessageSteps>
|
||||||
<DownloadCenter></DownloadCenter>
|
<DownloadCenter></DownloadCenter>
|
||||||
|
<Footer></Footer>
|
||||||
</MantineProvider>
|
</MantineProvider>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -33,14 +33,14 @@ interface UpdateItem {
|
|||||||
const fetchUpdates = async (): Promise<DownloadFeature[]> => {
|
const fetchUpdates = async (): Promise<DownloadFeature[]> => {
|
||||||
try {
|
try {
|
||||||
const response = await fetch('https://sdu.rosetta.im/updates/all');
|
const response = await fetch('https://sdu.rosetta.im/updates/all');
|
||||||
const data = await response.json();
|
const data = (await response.json()) as { items?: UpdateItem[] };
|
||||||
|
|
||||||
return (data.items || []).map((item: UpdateItem) => ({
|
return (data.items || []).map((item) => ({
|
||||||
platform: item.platform,
|
platform: item.platform,
|
||||||
arch: item.arch,
|
arch: item.arch,
|
||||||
version: item.version,
|
version: item.version,
|
||||||
link: new URL(item.downloadUrl, 'https://sdu.rosetta.im').toString(),
|
link: new URL(item.downloadUrl, 'https://sdu.rosetta.im').toString(),
|
||||||
})).sort((a : any, b : any) => {
|
})).sort((a, b) => {
|
||||||
const platformOrder = ['darwin', 'linux', 'win32', 'android'];
|
const platformOrder = ['darwin', 'linux', 'win32', 'android'];
|
||||||
const archOrder = ['arm64', 'x64', 'universal']
|
const archOrder = ['arm64', 'x64', 'universal']
|
||||||
const platformComparison = platformOrder.indexOf(a.platform) - platformOrder.indexOf(b.platform);
|
const platformComparison = platformOrder.indexOf(a.platform) - platformOrder.indexOf(b.platform);
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
import { IconGauge, IconLock, IconMessage2, IconServer, IconUser, IconUsersGroup } from '@tabler/icons-react';
|
import { IconGauge, IconLock, IconMessage2, IconServer, IconUser, IconUsersGroup, type TablerIcon } from '@tabler/icons-react';
|
||||||
import { Container, Flex, SimpleGrid, Text, ThemeIcon, Title } from '@mantine/core';
|
import { Container, Flex, SimpleGrid, Text, ThemeIcon, Title } from '@mantine/core';
|
||||||
|
import type { ReactNode } from 'react';
|
||||||
import classes from './FeaturesGrid.module.css';
|
import classes from './FeaturesGrid.module.css';
|
||||||
import { RosettaLogo } from '../RosettaLogo/RosettaLogo';
|
import { RosettaLogo } from '../RosettaLogo/RosettaLogo';
|
||||||
|
|
||||||
export const MOCKDATA = [
|
const MOCKDATA = [
|
||||||
{
|
{
|
||||||
icon: IconGauge,
|
icon: IconGauge,
|
||||||
title: 'Performance',
|
title: 'Performance',
|
||||||
@@ -43,9 +44,9 @@ export const MOCKDATA = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
interface FeatureProps {
|
interface FeatureProps {
|
||||||
icon: React.FC<any>;
|
icon: TablerIcon;
|
||||||
title: React.ReactNode;
|
title: ReactNode;
|
||||||
description: React.ReactNode;
|
description: ReactNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function Feature({ icon: Icon, title, description }: FeatureProps) {
|
export function Feature({ icon: Icon, title, description }: FeatureProps) {
|
||||||
|
|||||||
17
src/components/Footer/Footer.module.css
Normal file
17
src/components/Footer/Footer.module.css
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
.footer {
|
||||||
|
padding: var(--mantine-spacing-xl) var(--mantine-spacing-md);
|
||||||
|
border-top: 1px solid light-dark(var(--mantine-color-gray-2), var(--mantine-color-dark-5));
|
||||||
|
}
|
||||||
|
|
||||||
|
.legal {
|
||||||
|
max-width: 720px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.links {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
gap: var(--mantine-spacing-md);
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin-top: var(--mantine-spacing-xs);
|
||||||
|
}
|
||||||
24
src/components/Footer/Footer.tsx
Normal file
24
src/components/Footer/Footer.tsx
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
import { Anchor, Text } from '@mantine/core';
|
||||||
|
import classes from './Footer.module.css';
|
||||||
|
|
||||||
|
const LEGAL_NAME = 'ROSETTA CLOUD SERVICES LIMITED';
|
||||||
|
|
||||||
|
export function Footer() {
|
||||||
|
const currentYear = new Date().getFullYear();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<footer className={classes.footer}>
|
||||||
|
<Text c="dimmed" fz="sm" ta="center" className={classes.legal}>
|
||||||
|
© {currentYear} {LEGAL_NAME}. Все права защищены.
|
||||||
|
</Text>
|
||||||
|
<nav className={classes.links} aria-label="Юридическая информация">
|
||||||
|
<Anchor href="/privacy/" size="sm" c="dimmed">
|
||||||
|
Политика конфиденциальности
|
||||||
|
</Anchor>
|
||||||
|
<Anchor href="/terms/" size="sm" c="dimmed">
|
||||||
|
Условия использования
|
||||||
|
</Anchor>
|
||||||
|
</nav>
|
||||||
|
</footer>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user