Add site contacts/FAQ and accept AWG 2.0 / naive pastes in Add config.
ImportSubscription no longer requires only http(s): paste awg://, AWG .conf/JSON, or naive links; subscription parser also reads hosted AWG and Clash wireguard/naive. Site lists support emails and FAQ; Store listing texts/tools updated. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,218 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Fill Microsoft Store listing CSV text fields (default=RU, en=EN)."""
|
||||
import csv
|
||||
from pathlib import Path
|
||||
|
||||
path = Path(__file__).resolve().parents[1] / "store.csv"
|
||||
|
||||
ru = {
|
||||
"Description": (
|
||||
"EvilFox — приложение для безопасного доступа в интернет на Windows.\n"
|
||||
"\n"
|
||||
"Защитите данные в публичных Wi‑Fi сетях: EvilFox шифрует трафик, "
|
||||
"скрывает ваш реальный IP-адрес и помогает предотвратить утечки DNS. "
|
||||
"Современный интерфейс на русском и английском, светлая и тёмная темы, "
|
||||
"удобный выбор серверов и понятный статус подключения.\n"
|
||||
"\n"
|
||||
"Возможности:\n"
|
||||
"• Шифрование трафика с поддержкой современных протоколов\n"
|
||||
"• Режим прокси и полный режим защиты (TUN) для всего трафика приложений\n"
|
||||
"• Защита от утечек (Kill Switch) при обрыве соединения\n"
|
||||
"• Автовыбор сервера с наименьшим пингом\n"
|
||||
"• Список серверов с флагами стран и группировкой по хосту\n"
|
||||
"• Добавление собственной конфигурации по URL\n"
|
||||
"• Мониторинг использования трафика и статистика сессий\n"
|
||||
"• Интерфейс на русском и английском языках\n"
|
||||
"\n"
|
||||
"EvilFox подходит для повседневной работы, путешествий и защиты приватности. "
|
||||
"Конфигурацию подключения вы добавляете самостоятельно; "
|
||||
"покупки внутри приложения не требуются.\n"
|
||||
"\n"
|
||||
"Сайт: https://evilfox.win/\n"
|
||||
"Поддержка: https://t.me/evilfox100Bot"
|
||||
),
|
||||
"ReleaseNotes": (
|
||||
"Обновление 4.2: улучшенный интерфейс для Microsoft Store, "
|
||||
"переключатель языка RU/EN, светлая тема по умолчанию, "
|
||||
"группировка серверов по IP с отображением доступных протоколов, "
|
||||
"исправления переключателей темы и языка, реальные флаги стран (SVG), "
|
||||
"Kill Switch и статистика."
|
||||
),
|
||||
"Title": "EvilFox",
|
||||
"ShortTitle": "EvilFox",
|
||||
"SortTitle": "EvilFox",
|
||||
"VoiceTitle": "Evil Fox",
|
||||
"ShortDescription": (
|
||||
"Безопасный доступ в интернет: шифрование трафика, скрытие IP, "
|
||||
"защита от утечек DNS. Русский и английский. Современные протоколы, "
|
||||
"Kill Switch, удобный выбор серверов."
|
||||
),
|
||||
"DevStudio": "EvilFox",
|
||||
"CopyrightTrademarkInformation": (
|
||||
"© EvilFox. All rights reserved. EvilFox and the EvilFox logo "
|
||||
"are trademarks of their respective owners."
|
||||
),
|
||||
"AdditionalLicenseTerms": (
|
||||
"Proprietary software. By installing EvilFox you agree to use the "
|
||||
"application in accordance with applicable laws. The app provides a "
|
||||
"client for encrypted network connections; server configurations are "
|
||||
"supplied by the user. See https://evilfox.win/ for support and terms."
|
||||
),
|
||||
"Feature1": "Шифрование трафика и скрытие IP-адреса",
|
||||
"Feature2": "Режим прокси и полный режим защиты (TUN)",
|
||||
"Feature3": "Kill Switch — блокировка трафика при обрыве VPN",
|
||||
"Feature4": "Автовыбор сервера с лучшим пингом",
|
||||
"Feature5": "Серверы с флагами стран и группировкой протоколов",
|
||||
"Feature6": "Добавление конфигурации по URL",
|
||||
"Feature7": "Статистика трафика и сессий",
|
||||
"Feature8": "Интерфейс на русском и английском",
|
||||
"Feature9": "Светлая и тёмная темы оформления",
|
||||
"Feature10": "Защита от утечек DNS",
|
||||
"MinimumHardwareReq1": "Windows 10 version 1809 or later (x64)",
|
||||
"MinimumHardwareReq2": "Internet connection",
|
||||
"MinimumHardwareReq3": "100 MB free disk space",
|
||||
"RecommendedHardwareReq1": "Windows 11 (x64)",
|
||||
"RecommendedHardwareReq2": "Stable broadband connection",
|
||||
"SearchTerm1": "VPN",
|
||||
"SearchTerm2": "privacy",
|
||||
"SearchTerm3": "secure internet",
|
||||
"SearchTerm4": "encrypt traffic",
|
||||
"SearchTerm5": "EvilFox",
|
||||
"SearchTerm6": "proxy client",
|
||||
"SearchTerm7": "kill switch",
|
||||
"DesktopScreenshotCaption1": "Главный экран: подключение и статус защиты",
|
||||
"DesktopScreenshotCaption2": "Список серверов с флагами и пингом",
|
||||
"DesktopScreenshotCaption3": "Настройки: тема, язык, Kill Switch",
|
||||
"DesktopScreenshotCaption4": "Статистика использования",
|
||||
}
|
||||
|
||||
en = {
|
||||
"Description": (
|
||||
"EvilFox is a Windows app for private, secure internet access.\n"
|
||||
"\n"
|
||||
"Protect your data on public Wi‑Fi: EvilFox encrypts your traffic, "
|
||||
"hides your real IP address, and helps prevent DNS leaks. "
|
||||
"A modern interface in English and Russian, light and dark themes, "
|
||||
"an easy server list, and a clear connection status.\n"
|
||||
"\n"
|
||||
"Features:\n"
|
||||
"• Traffic encryption with modern protocol support\n"
|
||||
"• Proxy mode and full protection mode (TUN) for all app traffic\n"
|
||||
"• Leak protection (Kill Switch) if the connection drops\n"
|
||||
"• Auto-select the server with the lowest ping\n"
|
||||
"• Server list with country flags and host grouping\n"
|
||||
"• Add your own configuration via URL\n"
|
||||
"• Traffic usage monitoring and session stats\n"
|
||||
"• English and Russian interface\n"
|
||||
"\n"
|
||||
"EvilFox is built for everyday browsing, travel, and privacy. "
|
||||
"You add your own connection configuration; no in-app purchases are required.\n"
|
||||
"\n"
|
||||
"Website: https://evilfox.win/\n"
|
||||
"Support: https://t.me/evilfox100Bot"
|
||||
),
|
||||
"ReleaseNotes": (
|
||||
"Version 4.2: Microsoft Store–ready UI polish, RU/EN language switch, "
|
||||
"light theme by default, servers grouped by IP with available protocols, "
|
||||
"theme/language toggle fixes, real country flags (SVG), Kill Switch, "
|
||||
"and usage statistics."
|
||||
),
|
||||
"Title": "EvilFox",
|
||||
"ShortTitle": "EvilFox",
|
||||
"SortTitle": "EvilFox",
|
||||
"VoiceTitle": "Evil Fox",
|
||||
"ShortDescription": (
|
||||
"Secure internet access: encrypt traffic, hide your IP, help prevent "
|
||||
"DNS leaks. English & Russian. Modern protocols, Kill Switch, "
|
||||
"easy server selection."
|
||||
),
|
||||
"DevStudio": "EvilFox",
|
||||
"CopyrightTrademarkInformation": (
|
||||
"© EvilFox. All rights reserved. EvilFox and the EvilFox logo "
|
||||
"are trademarks of their respective owners."
|
||||
),
|
||||
"AdditionalLicenseTerms": (
|
||||
"Proprietary software. By installing EvilFox you agree to use the "
|
||||
"application in accordance with applicable laws. The app provides a "
|
||||
"client for encrypted network connections; server configurations are "
|
||||
"supplied by the user. See https://evilfox.win/ for support and terms."
|
||||
),
|
||||
"Feature1": "Encrypt traffic and hide your IP address",
|
||||
"Feature2": "Proxy mode and full protection mode (TUN)",
|
||||
"Feature3": "Kill Switch blocks traffic if VPN drops",
|
||||
"Feature4": "Auto-select the lowest-ping server",
|
||||
"Feature5": "Servers with country flags and protocol grouping",
|
||||
"Feature6": "Add configuration via URL",
|
||||
"Feature7": "Traffic and session statistics",
|
||||
"Feature8": "English and Russian interface",
|
||||
"Feature9": "Light and dark themes",
|
||||
"Feature10": "DNS leak protection",
|
||||
"MinimumHardwareReq1": "Windows 10 version 1809 or later (x64)",
|
||||
"MinimumHardwareReq2": "Internet connection",
|
||||
"MinimumHardwareReq3": "100 MB free disk space",
|
||||
"RecommendedHardwareReq1": "Windows 11 (x64)",
|
||||
"RecommendedHardwareReq2": "Stable broadband connection",
|
||||
"SearchTerm1": "VPN",
|
||||
"SearchTerm2": "privacy",
|
||||
"SearchTerm3": "secure internet",
|
||||
"SearchTerm4": "encrypt traffic",
|
||||
"SearchTerm5": "EvilFox",
|
||||
"SearchTerm6": "proxy client",
|
||||
"SearchTerm7": "kill switch",
|
||||
"DesktopScreenshotCaption1": "Home: connect and protection status",
|
||||
"DesktopScreenshotCaption2": "Server list with flags and ping",
|
||||
"DesktopScreenshotCaption3": "Settings: theme, language, Kill Switch",
|
||||
"DesktopScreenshotCaption4": "Usage statistics",
|
||||
}
|
||||
|
||||
|
||||
def main() -> None:
|
||||
with path.open("r", encoding="utf-8-sig", newline="") as f:
|
||||
reader = csv.reader(f)
|
||||
header = next(reader)
|
||||
rows = []
|
||||
for r in reader:
|
||||
while len(r) < len(header):
|
||||
r.append("")
|
||||
rows.append(r)
|
||||
|
||||
# Field, ID, Type, default, en
|
||||
default_idx = header.index("default")
|
||||
en_idx = header.index("en")
|
||||
|
||||
for r in rows:
|
||||
if not r or not r[0]:
|
||||
continue
|
||||
field = r[0]
|
||||
if field in ru:
|
||||
r[default_idx] = ru[field]
|
||||
if field in en:
|
||||
r[en_idx] = en[field]
|
||||
|
||||
with path.open("w", encoding="utf-8-sig", newline="") as f:
|
||||
w = csv.writer(f, lineterminator="\n")
|
||||
w.writerow(header)
|
||||
w.writerows(rows)
|
||||
|
||||
with path.open("r", encoding="utf-8-sig", newline="") as f:
|
||||
for row in csv.DictReader(f):
|
||||
if row["Field"] in (
|
||||
"Description",
|
||||
"Title",
|
||||
"ShortDescription",
|
||||
"Feature1",
|
||||
"AdditionalLicenseTerms",
|
||||
"SearchTerm1",
|
||||
):
|
||||
print(
|
||||
row["Field"],
|
||||
"default_len=",
|
||||
len(row.get("default") or ""),
|
||||
"en_len=",
|
||||
len(row.get("en") or ""),
|
||||
)
|
||||
print("wrote", path)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user