package main import ( "encoding/csv" "fmt" "os" "path/filepath" ) func main() { path := filepath.Join(`D:\vpn navi`, "store.csv") f, err := os.Open(path) if err != nil { panic(err) } r := csv.NewReader(f) r.FieldsPerRecord = -1 r.LazyQuotes = true all, err := r.ReadAll() f.Close() if err != nil { panic(err) } if len(all) < 2 { panic("empty csv") } header := all[0] defIdx, enIdx := -1, -1 for i, h := range header { switch h { case "default": defIdx = i case "en": enIdx = i } } if defIdx < 0 || enIdx < 0 { panic(fmt.Sprintf("columns: %v", header)) } ru := map[string]string{ "Description": `EvilFox — приложение для безопасного доступа в интернет на Windows. Защитите данные в публичных Wi‑Fi сетях: EvilFox шифрует трафик, скрывает ваш реальный IP-адрес и помогает предотвратить утечки DNS. Современный интерфейс на русском и английском, светлая и тёмная темы, удобный выбор серверов и понятный статус подключения. Возможности: • Шифрование трафика с поддержкой современных протоколов • Режим прокси и полный режим защиты (TUN) для всего трафика приложений • Защита от утечек (Kill Switch) при обрыве соединения • Автовыбор сервера с наименьшим пингом • Список серверов с флагами стран и группировкой по хосту • Добавление собственной конфигурации по URL • Мониторинг использования трафика и статистика сессий • Интерфейс на русском и английском языках EvilFox подходит для повседневной работы, путешествий и защиты приватности. Конфигурацию подключения вы добавляете самостоятельно; покупки внутри приложения не требуются. Сайт: https://evilfox.win/ Поддержка: 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 := map[string]string{ "Description": `EvilFox is a Windows app for private, secure internet access. 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. Features: • Traffic encryption with modern protocol support • Proxy mode and full protection mode (TUN) for all app traffic • Leak protection (Kill Switch) if the connection drops • Auto-select the server with the lowest ping • Server list with country flags and host grouping • Add your own configuration via URL • Traffic usage monitoring and session stats • English and Russian interface EvilFox is built for everyday browsing, travel, and privacy. You add your own connection configuration; no in-app purchases are required. Website: https://evilfox.win/ 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", } for i := 1; i < len(all); i++ { row := all[i] for len(row) < len(header) { row = append(row, "") } field := row[0] if v, ok := ru[field]; ok { row[defIdx] = v } if v, ok := en[field]; ok { row[enIdx] = v } all[i] = row } out, err := os.Create(path) if err != nil { panic(err) } // UTF-8 BOM for Excel / Partner Center if _, err := out.Write([]byte{0xEF, 0xBB, 0xBF}); err != nil { panic(err) } w := csv.NewWriter(out) if err := w.WriteAll(all); err != nil { panic(err) } w.Flush() out.Close() for _, want := range []string{"Description", "Title", "ShortDescription", "Feature1", "AdditionalLicenseTerms"} { for _, row := range all[1:] { if len(row) > 0 && row[0] == want { fmt.Printf("%s default=%d en=%d\n", want, len(row[defIdx]), len(row[enIdx])) } } } fmt.Println("wrote", path) }