Як долучитися
Усе відбувається на GitHub. Немає жодного іншого форуму, чату чи облікового запису, який треба створювати.
| Щоб зробити це | Використовуйте |
|---|---|
| Запропонувати застосунок чи сервіс | Створіть issue «Suggest» |
| Повідомити про неправильну відповідь чи непрацююче посилання | Створіть issue «Correction» або скористайтеся кнопкою «Повідомити про виправлення» на будь-якій сторінці рейтингу |
| Запропонувати або змінити критерії | Створіть issue «Criteria change» |
| Виправити самостійно | Скористайтеся кнопкою «Редагувати на GitHub» на будь-якій сторінці рейтингу або створіть pull request |
| Поставити запитання чи обговорити наш вибір | GitHub Discussions |
Редагування рейтингу
Кожен застосунок чи сервіс — це один файл Markdown у ratings/<category>/<name>.md. Верхня частина файлу — YAML. Усе нижче — необов’язкові примітки в Markdown, що показуються на сторінці.
---
name: Example Mail
description: >-
One or two plain sentences about what it is.
website: https://example.com
source: https://github.com/example/example # необов’язково
platforms: [web, android, ios] # необов’язково
jurisdiction: CH # необов’язково, код країни з jurisdictions.yml
mainstream: true # необов’язково, додає сторінку «альтернативи»
aliases: [Example Office, Example Docs] # необов’язково, інші назви, за якими шукають
also_in: [macos-hardening] # необов’язково, також показує запис у таблиці іншої категорії
alternatives_page: true # необов’язково, додає сторінку «альтернативи» без mainstream
domain: mail.example.com # лише сервіси, використовується для автоматичних тестів
mail_domain: example.com # лише поштові категорії
imap_host: imap.example.com # лише поштові сервіси; false, якщо не пропонується
pop3_host: pop3.example.com # необов’язково, за відсутності береться з SRV-записів
smtp_host: smtp.example.com # необов’язково, за відсутності береться з SRV-записів
criteria:
open_source:
answer: partial
evidence: https://github.com/example/example/blob/main/LICENSE
note: Apps are open source. The server is not.
no_ads:
answer: yes
evidence: https://example.com/pricing
---
Optional notes in Markdown.
Правила (автоматично перевіряються командою npm test):
answer— одне зyes,partial,no,unknownабоn/a.yesіpartialпотребують посилання вevidence.noпотребуєnoteабоevidence.- Доказ має бути першоджерелом: офіційна документація, вихідний код, файл ліцензії, звіт аудиту або відтворюваний тест. Не огляди, дописи на форумах чи маркетингові сторінки без подробиць.
- Посилання мають починатися з
https://і не повинні містити реферальних параметрів чи параметрів стеження. - Автоматичні критерії (
tls,security_headers,web_standards,mail_standards,imap_standards,pop3_standards,smtp_standards,transport_security) заповнюються тестами. Не задавайте їх вручну. no_trackersтакож перевіряється тестом на трекери. Якщо головна сторінка завантажує сторонній трекер, відповідь стає «ні», незалежно від того, що зазначено у файлі.- Пропускайте будь-який критерій, для якого ще немає доказів. Він вважається
unknown. jurisdiction— це місце юридичної реєстрації компанії (а не розташування її серверів). Додайте країну доjurisdictions.yml, якщо її там немає. Кожна примітка там потребує джерела.- Лише супровідники додають
pick,pick_reasonіdisclosure. Використовуйтеpick: 1іpick: 2, щоб упорядкувати два варіанти вибору. Див. GOVERNANCE.md. imported_nameзберігає назву, яку запис мав в Awesome Privacy, після перейменування, щоб щомісячний імпорт не додав його знову. Щоб назавжди виключити запис Awesome Privacy, додайте його доimport-skip.ymlіз зазначенням причини.
Критерії для кожної категорії та значення кожної відповіді наведено в criteria/ і на сторінці критеріїв.
Додавання застосунку чи сервісу
npm ci
npm run new -- vpns "Example VPN" https://example.com
Це створює файл, у якому кожен критерій позначено як unknown. Заповніть те, що можете довести, видаліть решту, потім запустіть npm test.
Стиль написання
- Проста, нейтральна мова. Описуйте, що робить продукт, а не наскільки він чудовий.
- Короткі речення. Описи — до 300 символів.
- Без першої особи, без дат у тексті, без маркетингових заяв.
- Називайте речі так, як їх називає постачальник.
Локальний запуск сайту
Потрібен Node.js 18 або новішої версії.
npm ci
npm test # перевірити дані та зібрати сайт
npm run serve # попередній перегляд на http://localhost:8080
Додавання сторінки
Покладіть файл Markdown із title і description у pages/. Його буде опубліковано за адресою /<file-name>/ разом із копією в Markdown, структурованими даними та записом у карті сайту.
Додавання категорії чи критерію
- Додайте категорію до
categories.ymlу відповідну групу. - За бажанням додайте
criteria/<category-id>.ymlіз критеріями, специфічними для категорії. Скопіюйте формат з наявного файлу. - Створіть
ratings/<category-id>/і додайте записи. - Зміни критеріїв проходять перевірку за правилами з GOVERNANCE.md.
Переклади
Сайт публікується 25 мовами. Англійська є мовою оригіналу, а кожна інша мова розміщена в i18n/<code>/:
| Файл | Містить |
|---|---|
ui.json |
Текст інтерфейсу: заголовки, кнопки та речення з {placeholders} |
data.json |
Назви категорій, критерії, посібники та примітки щодо країн |
entries.json |
Описи рейтингів, обґрунтування вибору та розкриття інформації |
pages/*.md |
Цілі документи, як-от цей |
Кожен файл JSON зіставляє англійський текст із його перекладом. Коли англійський текст змінюється, старий переклад більше не відповідає йому, тому показується англійський текст, доки хтось не перекладе новий. Застарілий текст ніколи не показується.
- Виконайте
npm run build. Команда записує поточні англійські списки вi18n/source/. - Виконайте
npm run i18n:check, щоб побачити, чого бракує в кожній мові, абоnode scripts/i18n-check.js de ui, щоб отримати подробиці щодо однієї мови та файлу. - Додайте або виправте переклади, зберігаючи кожен
{placeholder}точно без змін. - Для документа скопіюйте англійський текст із
i18n/source/pages/, збережіть його перший рядок (<!-- source: … -->, який прив’язує переклад до цієї версії англійського тексту) і перекладіть решту.
Примітки та докази до окремих відповідей залишаються англійською. Порівняння та більшість окремих рейтингів доступні лише англійською; вибір редакції, категорії, посібники, альтернативи, списки відкритого коду, юрисдикції та документи перекладаються. Меню мов і автоматичне перенаправлення використовують посилання hreflang на кожній сторінці.
Контрольний список для pull request
-
npm testпроходить. - Кожна змінена відповідь має посилання на докази.
- Якщо ви працюєте на сервіс, який змінили, або пов’язані з ним, ви зазначили це в pull request.