feat(happ): add routing editor, optional ad blocking, and LAN bypass preset (#6545)

* feat(happ): make ad blocking optional in routing presets

Add an independent AdBlock toggle for Iran, China, and global presets, applied only when generating routing rules. Update the China preset to Bypass-CN and cover preset behavior and localized controls.

* feat: add visual routing editor with JSON support and localization updates

- Implemented a new modal for editing routing profiles with basic and advanced tabs.
- Added functionality to load, parse, and generate routing profiles in JSON format.
- Enhanced user experience with validation and error handling for JSON input.
- Updated translations for Russian, Turkish, Ukrainian, Vietnamese, Chinese (Simplified and Traditional) to include new routing editor terms.
- Created helper functions for managing routing profiles and generating deep links.
- Added unit tests for routing editor functionalities and JSON handling.

* feat: update routing editor to preserve null lists in profiles and enhance validation messages
This commit is contained in:
NgaiYeanCoi
2026-09-27 04:57:01 +08:00
committed by GitHub
parent 94fa317e76
commit 5e15120cec
22 changed files with 1363 additions and 209 deletions
+15 -4
View File
@@ -1572,9 +1572,11 @@
"subHappPerAppList": "Android Paket Adları",
"subHappPerAppListDesc": "Dahil edilecek veya hariç tutulacak Android uygulamalarının virgülle ayrılmış paket adları (ör. org.telegram.messenger).",
"subHappPresetIran": "İran'ı Atla",
"subHappPresetChina": "Çin Doğrudan",
"subHappPresetAdblock": "AdBlock",
"subHappPresetChina": "Çin Doğrudan (Bypass-CN)",
"subHappIncludeAdblock": "AdBlock ekle",
"subHappApplyPreset": "Hazır ayarı uygula",
"subHappPresetGlobal": "Tam Proxy",
"subHappPresetLocal": "Yerel Ağ Hariç Tüm Trafik için Proxy",
"subHappPresetOff": "Yönlendirmeyi Devre Dışı Bırak (happ://routing/off)",
"subHappColorBlue": "Mavi (Standart / Varsayılan)",
"subHappColorGreen": "Yeşil (Başarılı)",
@@ -1598,9 +1600,18 @@
"subHappPerAppBypass": "Atla (Listelenen Uygulamaları Hariç Tut)",
"subHappPresetApplied": "Happ hazır ayarı yönlendirme kurallarına uygulandı",
"subHappPresets": "Yönlendirme Hazır Ayarları",
"subHappPresetsDesc": "Happ istemcilerine özel, önceden yapılandırılmış yönlendirme kuralı hazır ayarları.",
"subHappPresetsDesc": "Temel bir hazır ayar seçin ve isterseniz reklam engellemeyi etkinleştirin, ardından mevcut yönlendirme kurallarını değiştirmek için uygulayın.",
"subHappVisualBuilder": "Görsel Kural Oluşturucu",
"subHappVisualBuilderDesc": "Alan adı ve IP listelerinden özel yönlendirme derin bağlantısı oluşturur.",
"subHappVisualBuilderDesc": "Mevcut yönlendirme profilini yükleyin ve kurallarını veya JSON içeriğinin tamamını düzenleyin.",
"subHappEditorBasic": "Temel kurallar",
"subHappEditorAdvanced": "Gelişmiş düzenleyici",
"subHappEditorListHint": "Her satıra bir kural yazın. Profilin diğer alanları korunur.",
"subHappEditorAdvancedHint": "JSON profilinin tamamını düzenleyin. Değişiklikler temel kurallar sekmesiyle eşitlenir.",
"subHappEditorInvalidJson": "Bir JSON nesnesi girin. Yönlendirme listeleri varsa metin dizileri veya null olmalıdır.",
"subHappEditorLoadInvalid": "Mevcut kurallar geçerli bir Happ yönlendirme bağlantısı veya JSON profili değil.",
"subHappEditorLoadRemote": "Uzak URL'ler burada yüklenemez. Önce bir Happ yönlendirme bağlantısı veya JSON profili yapıştırın.",
"subHappEditorLoadOff": "Yönlendirme devre dışı. Profil oluşturmak için bir hazır ayar uygulayın veya yönlendirme kurallarını temizleyin.",
"subHappEditorNew": "Mevcut kural yok. Boş bir özel profille başlayın.",
"subHappBuildDeeplink": "Derin Bağlantı Oluştur",
"subHappModalTitle": "Happ Görsel Yönlendirme Kuralı Oluşturucu",
"subHappDirectDomains": "Doğrudan Alan Adları (Atla)",