From 633c338c165d3a2b68b80245e530150af13ac3cc Mon Sep 17 00:00:00 2001 From: k1ngsterr1 Date: Thu, 21 May 2026 23:51:49 +0500 Subject: [PATCH 1/3] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20=D1=8E=D1=80=D0=B8=D0=B4=D0=B8=D1=87=D0=B5=D1=81=D0=BA?= =?UTF-8?q?=D0=B8=D0=B9=20=D1=84=D1=83=D1=82=D0=B5=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 4 +++- src/components/DownloadCenter/DownloadCenter.tsx | 8 ++++---- src/components/FeaturesGrid/FeaturesGrid.tsx | 13 +++++++------ src/components/Footer/Footer.module.css | 9 +++++++++ src/components/Footer/Footer.tsx | 16 ++++++++++++++++ 5 files changed, 39 insertions(+), 11 deletions(-) create mode 100644 src/components/Footer/Footer.module.css create mode 100644 src/components/Footer/Footer.tsx diff --git a/src/App.tsx b/src/App.tsx index 1584ba2..cfc00f4 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -7,6 +7,7 @@ import { FeaturesGrid } from './components/FeaturesGrid/FeaturesGrid'; import { SEO } from './components/SEO/SEO'; import './style.css' import { MessageSteps } from './components/MessageSteps/MessageSteps'; +import { Footer } from './components/Footer/Footer'; export default function App() { @@ -17,6 +18,7 @@ export default function App() { + ) -} \ No newline at end of file +} diff --git a/src/components/DownloadCenter/DownloadCenter.tsx b/src/components/DownloadCenter/DownloadCenter.tsx index 6cf1c24..3a48575 100644 --- a/src/components/DownloadCenter/DownloadCenter.tsx +++ b/src/components/DownloadCenter/DownloadCenter.tsx @@ -33,14 +33,14 @@ interface UpdateItem { const fetchUpdates = async (): Promise => { try { 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, arch: item.arch, version: item.version, 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 archOrder = ['arm64', 'x64', 'universal'] const platformComparison = platformOrder.indexOf(a.platform) - platformOrder.indexOf(b.platform); @@ -174,4 +174,4 @@ export function DownloadCenter() { ); -} \ No newline at end of file +} diff --git a/src/components/FeaturesGrid/FeaturesGrid.tsx b/src/components/FeaturesGrid/FeaturesGrid.tsx index 31e384f..df27858 100644 --- a/src/components/FeaturesGrid/FeaturesGrid.tsx +++ b/src/components/FeaturesGrid/FeaturesGrid.tsx @@ -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 type { ReactNode } from 'react'; import classes from './FeaturesGrid.module.css'; import { RosettaLogo } from '../RosettaLogo/RosettaLogo'; -export const MOCKDATA = [ +const MOCKDATA = [ { icon: IconGauge, title: 'Performance', @@ -43,9 +44,9 @@ export const MOCKDATA = [ ]; interface FeatureProps { - icon: React.FC; - title: React.ReactNode; - description: React.ReactNode; + icon: TablerIcon; + title: ReactNode; + description: ReactNode; } export function Feature({ icon: Icon, title, description }: FeatureProps) { @@ -94,4 +95,4 @@ export function FeaturesGrid() { ); -} \ No newline at end of file +} diff --git a/src/components/Footer/Footer.module.css b/src/components/Footer/Footer.module.css new file mode 100644 index 0000000..f3fa417 --- /dev/null +++ b/src/components/Footer/Footer.module.css @@ -0,0 +1,9 @@ +.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; +} diff --git a/src/components/Footer/Footer.tsx b/src/components/Footer/Footer.tsx new file mode 100644 index 0000000..43ced14 --- /dev/null +++ b/src/components/Footer/Footer.tsx @@ -0,0 +1,16 @@ +import { 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 ( +
+ + © {currentYear} {LEGAL_NAME}. All rights reserved. + +
+ ); +} From 580a0da008259cc7fcbf70ffb13cd460bb91647a Mon Sep 17 00:00:00 2001 From: k1ngsterr1 Date: Fri, 22 May 2026 00:23:28 +0500 Subject: [PATCH 2/3] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20=D1=8E=D1=80=D0=B8=D0=B4=D0=B8=D1=87=D0=B5=D1=81=D0=BA?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/privacy/index.html | 230 +++++++++++++++++++++ public/terms/index.html | 261 ++++++++++++++++++++++++ src/components/Footer/Footer.module.css | 8 + src/components/Footer/Footer.tsx | 12 +- 4 files changed, 509 insertions(+), 2 deletions(-) create mode 100644 public/privacy/index.html create mode 100644 public/terms/index.html diff --git a/public/privacy/index.html b/public/privacy/index.html new file mode 100644 index 0000000..2308e94 --- /dev/null +++ b/public/privacy/index.html @@ -0,0 +1,230 @@ + + + + + + Политика конфиденциальности Rosetta + + + + + +
+ ← На главную +

Политика конфиденциальности Rosetta

+

Дата последнего обновления: 22 мая 2026 года

+ +

+ Rosetta IM управляется компанией ROSETTA CLOUD SERVICES LIMITED + ("Rosetta", "мы", "нас" или "наш"). Эта Политика конфиденциальности + объясняет, как мы обрабатываем информацию при использовании приложения + Rosetta и сайта https://rosetta.im. +

+ +

1. Какие данные мы обрабатываем

+

+ Rosetta создана с принципом минимизации данных. Для регистрации не + требуется номер телефона, адрес электронной почты или настоящее имя. + Приложение использует криптографические ключи и технические + идентификаторы, необходимые для работы сервиса. +

+
    +
  • + Данные учетной записи и криптографические данные: публичные ключи, + идентификаторы учетной записи и связанные технические данные, + необходимые для идентификации пользователей и доставки зашифрованных + сообщений. Приватные ключи должны оставаться на вашем устройстве. +
  • +
  • + Зашифрованные сообщения и медиа в процессе доставки: текст сообщений, + файлы и медиа шифруются до отправки. Наши серверы предназначены для + ретрансляции зашифрованных данных и зашифрованных ключей сообщений, + а не для чтения содержимого сообщений. +
  • +
  • + Технические данные устройства и приложения: версия приложения, + операционная система, платформа, архитектура, данные запросов на + обновление, IP-адрес, временные метки и серверные журналы, необходимые + для безопасности, надежности, предотвращения злоупотреблений и + доставки обновлений. +
  • +
  • + Обращения в поддержку: если вы связываетесь с нами, мы можем + обработать ваш email, содержание обращения и информацию, которую вы + добровольно предоставили. +
  • +
+ +

2. Реклама и трекинг

+

+ Мы не используем сторонние рекламные SDK, рекламные трекеры или + межсервисное отслеживание. Мы не продаем персональные данные. +

+ +

3. Как мы используем данные

+

Мы используем данные только для того, чтобы:

+
    +
  • предоставлять, поддерживать и защищать Rosetta;
  • +
  • доставлять зашифрованные сообщения между пользователями;
  • +
  • предоставлять загрузки и обновления приложения;
  • +
  • выявлять злоупотребления, предотвращать мошенничество и защищать сервис;
  • +
  • отвечать на обращения в поддержку;
  • +
  • выполнять юридические обязанности.
  • +
+ +

4. Сквозное шифрование

+

+ Rosetta спроектирована так, чтобы содержимое сообщений шифровалось до + попадания на наши серверы. Наши серверы не предназначены для доступа к + расшифрованному содержимому сообщений или медиа. Сообщения хранятся на + устройствах пользователей, а не как читаемая история сообщений на наших + серверах. +

+ +

5. Передача данных третьим лицам

+

Мы можем передавать ограниченную информацию только:

+
    +
  • инфраструктурным и хостинг-провайдерам, которые помогают нам работать;
  • +
  • профессиональным консультантам, если это необходимо;
  • +
  • + государственным органам или другим сторонам, если это требуется + законом или необходимо для защиты прав, безопасности и целостности + сервиса. +
  • +
+ +

6. Срок хранения

+

+ Зашифрованные данные сообщений в процессе доставки обрабатываются только + настолько, насколько это необходимо для работы сервиса. Технические + журналы и обращения в поддержку хранятся только в течение разумного + срока, необходимого для безопасности, надежности, поддержки, юридических + и операционных целей. +

+ +

7. Ваши права

+

+ В зависимости от вашей юрисдикции вы можете иметь право запросить доступ, + исправление, удаление или ограничение обработки персональных данных. Для + запроса свяжитесь с нами по адресу admin@rosetta.im. +

+

+ Поскольку Rosetta минимизирует учетные данные и использует + криптографические идентификаторы, для некоторых запросов может + потребоваться подтверждение контроля над соответствующей учетной записью + или ключами. +

+ +

8. Дети

+

+ Rosetta не предназначена для детей младше 13 лет или минимального + возраста, установленного в вашей юрисдикции. Если мы узнаем, что + получили персональные данные ребенка без необходимого согласия, мы + примем разумные меры для их удаления. +

+ +

9. Международная обработка

+

+ ROSETTA CLOUD SERVICES LIMITED может обрабатывать информацию в странах, + отличных от страны вашего проживания. Когда это требуется, мы применяем + соответствующие меры защиты для международной передачи данных. +

+ +

10. Безопасность

+

+ Мы применяем технические и организационные меры для защиты информации. + Ни одна система не является абсолютно безопасной. Пользователь отвечает + за защиту своего устройства, приватных ключей и доступа к учетной записи. +

+ +

11. Изменения политики

+

+ Мы можем обновлять эту Политику конфиденциальности. При существенных + изменениях мы обновим дату последнего изменения и, при необходимости, + предоставим дополнительное уведомление. +

+ +

12. Контакты

+

ROSETTA CLOUD SERVICES LIMITED +Registered address: +UNIT 704C 7/F BLK 3 NAN FUNG IND CITY +18 TIN HAU RD +TUEN MUN +HONG KONG

+

Email: admin@rosetta.im

+

Phone: +852 2891 0030

+
+ + diff --git a/public/terms/index.html b/public/terms/index.html new file mode 100644 index 0000000..1ec2894 --- /dev/null +++ b/public/terms/index.html @@ -0,0 +1,261 @@ + + + + + + Условия использования Rosetta + + + + + +
+ ← На главную +

Условия использования Rosetta

+

Дата последнего обновления: 22 мая 2026 года

+ +

+ Эти Условия использования и лицензионное соглашение конечного + пользователя ("Условия") регулируют использование Rosetta, приложения для + обмена сообщениями со сквозным шифрованием, которым управляет ROSETTA + CLOUD SERVICES LIMITED ("Rosetta", "мы", "нас" или "наш"). +

+

+ Скачивая, устанавливая или используя Rosetta, вы соглашаетесь с этими + Условиями. +

+ +

1. Соглашение между вами и Rosetta

+

+ Эти Условия заключаются между вами и ROSETTA CLOUD SERVICES LIMITED, а не + с Apple. Мы, а не Apple, несем ответственность за Rosetta и его + содержимое. +

+ +

2. Лицензия

+

+ Мы предоставляем вам ограниченную, неисключительную, непередаваемую и + отзывную лицензию на использование Rosetta для личного или законного + делового общения на устройствах Apple, которыми вы владеете или + управляете, в соответствии с Apple Media Services Terms and Conditions, + включая применимые правила Family Sharing и volume purchasing. +

+

+ Вы не вправе копировать, изменять, осуществлять reverse engineering, + декомпилировать, перепродавать, сублицензировать, сдавать в аренду или + распространять Rosetta, кроме случаев, разрешенных применимым законом. +

+ +

3. Конфиденциальность

+

+ Использование Rosetta также регулируется нашей Политикой + конфиденциальности: https://rosetta.im/privacy/. +

+ +

4. Зашифрованные сообщения

+

+ Rosetta предназначена для end-to-end encrypted коммуникации. Вы отвечаете + за защиту своего устройства, приватных ключей и доступа к учетной записи. + Если вы потеряете доступ к устройству или ключам, мы можем не иметь + возможности восстановить ваши сообщения или учетные данные. +

+ +

5. Допустимое использование

+

Вы соглашаетесь не использовать Rosetta для:

+
    +
  • нарушения законов или нормативных требований;
  • +
  • нарушения прав других лиц;
  • +
  • отправки спама, вредоносного ПО, мошеннических сообщений, угроз, домогательств или незаконного контента;
  • +
  • попыток нарушить работу, перегрузить, скомпрометировать или исследовать инфраструктуру Rosetta неразрешенными способами;
  • +
  • выдачи себя за другое лицо или искажения своей личности;
  • +
  • любой запрещенной или санкционной деятельности.
  • +
+ +

6. Не для экстренной связи

+

+ Rosetta не предназначена для экстренных звонков, экстренных сообщений или + коммуникации, где сбой или задержка могут привести к смерти, травме или + серьезному ущербу. В экстренных ситуациях используйте официальные каналы + связи. +

+ +

7. Пользовательский контент

+

+ Вы сохраняете права на контент, который создаете или отправляете через + Rosetta. Вы предоставляете нам только ограниченные права, необходимые для + работы сервиса, например для маршрутизации зашифрованных сообщений и + поддержания безопасности сервиса. Мы не заявляем права собственности на + ваши сообщения или файлы. +

+ +

8. Обновления и доступность

+

+ Мы можем обновлять, изменять, приостанавливать или прекращать работу + Rosetta или отдельных функций. Некоторые функции могут требовать + подключения к интернету, совместимого устройства и поддерживаемой + операционной системы. +

+ +

9. Платежи

+

+ Rosetta в настоящее время предоставляется бесплатно, если явно не указано + иное. Если в будущем появятся платные функции, подписки или покупки через + Apple, будут применяться платежные и подписочные правила Apple. +

+ +

10. Поддержка и обслуживание

+

+ ROSETTA CLOUD SERVICES LIMITED несет единоличную ответственность за + поддержку и обслуживание Rosetta. Apple не обязана предоставлять + поддержку или обслуживание Rosetta. +

+

Контакт поддержки: admin@rosetta.im

+ +

11. Гарантия

+

+ Rosetta предоставляется "как есть" и "по доступности" в максимальной + степени, разрешенной законом. Если Rosetta не соответствует применимой + гарантии, вы можете уведомить Apple, и Apple может вернуть цену покупки, + если она была уплачена. В максимальной степени, разрешенной законом, + Apple не несет иных гарантийных обязательств в отношении Rosetta. +

+ +

12. Претензии по продукту

+

+ ROSETTA CLOUD SERVICES LIMITED, а не Apple, отвечает за рассмотрение + претензий, связанных с Rosetta, включая претензии по ответственности за + продукт, юридические или регуляторные претензии, а также претензии по + законам о защите прав потребителей. +

+ +

13. Претензии по интеллектуальной собственности

+

+ Если третья сторона заявляет, что Rosetta или ваше использование Rosetta + нарушает права интеллектуальной собственности, ROSETTA CLOUD SERVICES + LIMITED, а не Apple, отвечает за расследование, защиту, урегулирование и + прекращение такой претензии. +

+ +

14. Соблюдение законов

+

+ Вы подтверждаете, что не находитесь в стране, на которую распространяется + эмбарго правительства США или которая определена правительством США как + страна, поддерживающая терроризм, и что вы не включены в списки + запрещенных или ограниченных лиц правительства США. +

+ +

15. Apple как третья сторона-бенефициар

+

+ Apple и дочерние компании Apple являются третьими сторонами-бенефициарами + этих Условий. После принятия вами Условий Apple получает право + обеспечивать исполнение этих Условий против вас как третья + сторона-бенефициар. +

+ +

16. Прекращение доступа

+

+ Мы можем приостановить или прекратить доступ к Rosetta, если вы нарушаете + эти Условия, создаете риск для других пользователей или используете + сервис незаконно. Вы можете прекратить использование Rosetta в любое + время. +

+ +

17. Ограничение ответственности

+

+ В максимальной степени, разрешенной законом, ROSETTA CLOUD SERVICES + LIMITED не несет ответственности за косвенные, случайные, специальные, + последующие или штрафные убытки, а также за потерю данных, прибыли, + деловой репутации или коммерческих возможностей, связанных с + использованием Rosetta. +

+ +

18. Применимое право

+

+ Эти Условия регулируются законодательством Гонконга, если обязательные + нормы защиты потребителей в вашей юрисдикции не требуют иного. +

+ +

19. Контакты

+

ROSETTA CLOUD SERVICES LIMITED +Registered address: +UNIT 704C 7/F BLK 3 NAN FUNG IND CITY +18 TIN HAU RD +TUEN MUN +HONG KONG

+

Email: admin@rosetta.im

+

Phone: +852 2891 0030

+
+ + diff --git a/src/components/Footer/Footer.module.css b/src/components/Footer/Footer.module.css index f3fa417..69bf702 100644 --- a/src/components/Footer/Footer.module.css +++ b/src/components/Footer/Footer.module.css @@ -7,3 +7,11 @@ 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); +} diff --git a/src/components/Footer/Footer.tsx b/src/components/Footer/Footer.tsx index 43ced14..2ce7d7d 100644 --- a/src/components/Footer/Footer.tsx +++ b/src/components/Footer/Footer.tsx @@ -1,4 +1,4 @@ -import { Text } from '@mantine/core'; +import { Anchor, Text } from '@mantine/core'; import classes from './Footer.module.css'; const LEGAL_NAME = 'ROSETTA CLOUD SERVICES LIMITED'; @@ -9,8 +9,16 @@ export function Footer() { return (
- © {currentYear} {LEGAL_NAME}. All rights reserved. + © {currentYear} {LEGAL_NAME}. Все права защищены. +
); } From a26785eb1887bdaa2f8b4ba68f23b0f61c9a5a7f Mon Sep 17 00:00:00 2001 From: k1ngsterr1 Date: Fri, 22 May 2026 00:32:58 +0500 Subject: [PATCH 3/3] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B2=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=B8=20=D1=8E=D1=80=D0=B8=D0=B4=D0=B8=D1=87=D0=B5=D1=81?= =?UTF-8?q?=D0=BA=D0=B8=D0=B5=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86?= =?UTF-8?q?=D1=8B=20=D0=BD=D0=B0=20=D0=B0=D0=BD=D0=B3=D0=BB=D0=B8=D0=B9?= =?UTF-8?q?=D1=81=D0=BA=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/privacy/index.html | 177 +++++++++++++------------- public/terms/index.html | 210 +++++++++++++++---------------- src/components/Footer/Footer.tsx | 8 +- 3 files changed, 194 insertions(+), 201 deletions(-) diff --git a/public/privacy/index.html b/public/privacy/index.html index 2308e94..bb41f3a 100644 --- a/public/privacy/index.html +++ b/public/privacy/index.html @@ -1,12 +1,12 @@ - + - Политика конфиденциальности Rosetta + Privacy Policy for Rosetta