Skip to content

Commit c7a23bd

Browse files
committed
feat: add Happ Routing Builder and Subscription Settings
- Introduce new Utils section with Happ Routing Builder - Add Subscription Settings page with configuration options - Update localization files for English, Persian, and Russian - Upgrade backend contract to version 0.3.11 - Add new routes and menu sections for Happ Routing and Subscription Settings
1 parent 3f22775 commit c7a23bd

File tree

26 files changed

+1548
-23
lines changed

26 files changed

+1548
-23
lines changed

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
"@mantine/nprogress": "^7.17.1",
4646
"@monaco-editor/react": "^4.7.0",
4747
"@paralleldrive/cuid2": "2.2.2",
48-
"@remnawave/backend-contract": "0.3.7",
48+
"@remnawave/backend-contract": "0.3.11",
4949
"@stablelib/base64": "^2.0.1",
5050
"@stablelib/x25519": "^2.0.1",
5151
"@tabler/icons-react": "^3.31.0",

public/locales/en/remnawave.json

Lines changed: 106 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@
1111
"users": "Users",
1212
"overview": "Overview",
1313
"management": "Management",
14-
"statistics": "Statistics"
14+
"statistics": "Statistics",
15+
"subscription-settings": "Subscription settings",
16+
"utils": "Utils",
17+
"happ-routing-builder": "Happ Routing Builder",
18+
"templates": "Templates",
19+
"subscription": "Subscription"
1520
},
1621
"bandwidth-metrics": {
1722
"current-year": "Current year",
@@ -406,5 +411,105 @@
406411
"description-line-1": "To use this subscription, just add",
407412
"description-line-2": "at the end of your subscription link. Make sure you're using one of the supported apps listed in the table below. Otherwise, subscription will work as usual for requsted client. (e.g. Base64, Mihomo)"
408413
}
414+
},
415+
"happ-routing-builder": {
416+
"widget": {
417+
"copy-link": "Copy link",
418+
"visual-editor": "Visual Editor",
419+
"code-viewer": "Code Viewer",
420+
"encode-happ-link": "Encode Happ Link",
421+
"enter-the-configuration-name": "Enter the configuration name",
422+
"name": "Name",
423+
"russia": "Russia",
424+
"proxy-all-traffic-except-rules": "Proxy all traffic except rules",
425+
"direct-all-traffic-except-rules": "Direct all traffic except rules",
426+
"proxy-all-traffic-except-rules-or-direct-all-traffic-except-rules": "Proxy all traffic except rules, or direct all traffic except rules",
427+
"enable": "Enable",
428+
"disable": "Disable",
429+
"fake-dns-description": "Enable or disable FakeDNS. Recommended to activate when using DoU.",
430+
"choose-doh-dns-over-https-or-dou-dns-over-udp": "Choose DoH (DNS over HTTPS) or DoU (DNS over UDP)",
431+
"remote-dns-type": "Remote DNS type",
432+
"domain-name-for-doh": "Domain name for DoH",
433+
"remote-dns-domain": "Remote DNS Domain",
434+
"server-ip-for-doh-or-dou": "Server IP for DoH or DoU",
435+
"remote-dns-ip": "Remote DNS IP",
436+
"domenstic-dns-type-description": "Choose DoH (DNS over HTTPS) or DoU (DNS over UDP)",
437+
"domestic-dns-type": "Domestic DNS Type",
438+
"domain-name-for-doh-0": "Domain name for DoH",
439+
"domestic-dns-domain": "Domestic DNS Domain",
440+
"server-ip-for-doh-or-dou-0": "Server IP for DoH or DoU",
441+
"domestic-dns-ip": "Domestic DNS IP",
442+
"geoip-description": "Link to the geoip.dat file. Leave this field empty if you want to use the default file.",
443+
"geoip-url": "GeoIP URL",
444+
"geosite-description": "Link to the geosite.dat file. Leave this field empty if you want to use the default file.",
445+
"geosite-url": "GeoSite URL",
446+
"unix-timestamp-description": "Enter the Unix timestamp of the last update to the geoip and geosite files. Leave empty if not available.",
447+
"last-updated": "Last updated",
448+
"select-the-domain-processing-strategy": "Select the domain processing strategy.",
449+
"domain-strategy": "Domain strategy",
450+
"dns-hosts-description": "Enter the DNS hosts in the format: { \"example.com\": \"1.2.3.4\", \"test.org\": \"8.8.8.8\" }",
451+
"dns-hosts": "DNS hosts",
452+
"sites-that-will-use-direct-connection": "Sites that will use direct connection.",
453+
"direct-sites": "Direct sites",
454+
"ip-addresses-that-will-use-direct-connection": "IP addresses that will use direct connection.",
455+
"direct-ip": "Direct IP",
456+
"sites-that-will-be-proxied": "Sites that will be proxied.",
457+
"proxy-sites": "Proxy sites",
458+
"ip-addresses-that-will-be-proxied": "IP addresses that will be proxied.",
459+
"proxy-ip": "Proxy IP",
460+
"sites-that-will-be-blocked": "Sites that will be blocked.",
461+
"blocked-sites": "Blocked sites",
462+
"ip-addresses-that-will-be-blocked": "IP addresses that will be blocked.",
463+
"blocked-ips": "Blocked IPs",
464+
"encoded-happ-link": "Encoded Happ Link",
465+
"copied": "Copied",
466+
"show-qr": "Show QR",
467+
"close": "Close"
468+
},
469+
"page": {
470+
"component": {
471+
"about-happ": "About Happ",
472+
"happ-is-multiplatform-xray-client": "Happ is multiplatform XRay client.",
473+
"about-happ-description-line-2": "Here you can configure routing rules, which you can pass to Happ client.",
474+
"about-happ-description-line-3": "Check out \"Subscription settings\" and check \"Happ Routing\".",
475+
"check-out-happ-website": "Check out Happ website"
476+
}
477+
}
478+
},
479+
"remarks-manager": {
480+
"widget": {
481+
"enter-remark": "Enter remark",
482+
"add-remark": "Add remark"
483+
}
484+
},
485+
"subscription-settings": {
486+
"widget": {
487+
"validation-error": "Validation error",
488+
"you-must-add-at-least-one-remark-with-text": "You must add at least one remark with text",
489+
"subscription-info": "Subscription info",
490+
"this-title-will-be-displayed-as-subscription-name": "This title will be displayed as subscription name.",
491+
"profile-title": "Profile title",
492+
"enter-profile-title": "Enter profile title",
493+
"auto-update-description": "Some of clients may use this interval to auto-update subscription.",
494+
"auto-update-interval-hours": "Auto-Update interval (hours)",
495+
"support-link-description": "Some of clients may show this link in the subscription page, which should leads to the support page.",
496+
"support-link": "Support link",
497+
"happ-settings": "Happ settings",
498+
"happ-announce-description": "Enter Happ Announce, max. 200 characters. Will be displayed in the subscription page.",
499+
"happ-announce": "Happ Announce",
500+
"enter-happ-announce-max-200-characters": "Enter Happ Announce, max. 200 characters",
501+
"happ-routing-description": "Happ routing is a feature that allows you to configure the routing.",
502+
"happ-routing-description-line-2": "Routing must be configured via Happ Routing Builder. Use button below to configure routing.",
503+
"configure-happ-routing": "Configure Happ Routing",
504+
"happ-routing": "Happ routing",
505+
"user-status-remarks": "User status remarks",
506+
"user-status-remarks-description": "This values will be displayed in the subscription page if user is expired, limited or disabled.",
507+
"user-status-remarks-description-line-2": "You can add multiple remarks for each status.",
508+
"user-status-remarks-description-line-3": "Cause expired, limited and disabled users are not able to connect to the server, they will see this remarks instead of empty subscription.",
509+
"expired-users-remarks": "Expired users remarks",
510+
"limited-users-remarks": "Limited users remarks",
511+
"disabled-users-remarks": "Disabled users remarks",
512+
"update-settings": "Update settings"
513+
}
409514
}
410515
}

public/locales/fa/remnawave.json

Lines changed: 107 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@
1111
"users": "کاربرها",
1212
"overview": "نمای کلی",
1313
"management": "مدیریت",
14-
"statistics": "آمار"
14+
"statistics": "آمار",
15+
"subscription-settings": "Subscription settings",
16+
"utils": "Utils",
17+
"happ-routing-builder": "Happ Routing Builder",
18+
"templates": "Templates",
19+
"subscription": "Subscription"
1520
},
1621
"bandwidth-metrics": {
1722
"current-year": "امسال",
@@ -406,5 +411,105 @@
406411
"description-line-2": "در انتهای لینک اشتراک خود. \nاطمینان حاصل کنید که از یکی از برنامه های پشتیبانی شده ذکر شده در جدول زیر استفاده می کنید.",
407412
"importing-json-subscription": "وارد کردن اشتراک JSON"
408413
}
414+
},
415+
"happ-routing-builder": {
416+
"widget": {
417+
"copy-link": "Copy link",
418+
"visual-editor": "Visual Editor",
419+
"code-viewer": "Code Viewer",
420+
"encode-happ-link": "Encode Happ Link",
421+
"enter-the-configuration-name": "Enter the configuration name",
422+
"name": "Name",
423+
"russia": "Russia",
424+
"proxy-all-traffic-except-rules": "Proxy all traffic except rules",
425+
"direct-all-traffic-except-rules": "Direct all traffic except rules",
426+
"proxy-all-traffic-except-rules-or-direct-all-traffic-except-rules": "Proxy all traffic except rules, or direct all traffic except rules",
427+
"enable": "Enable",
428+
"disable": "Disable",
429+
"fake-dns-description": "Enable or disable FakeDNS. Recommended to activate when using DoU.",
430+
"choose-doh-dns-over-https-or-dou-dns-over-udp": "Choose DoH (DNS over HTTPS) or DoU (DNS over UDP)",
431+
"remote-dns-type": "Remote DNS type",
432+
"domain-name-for-doh": "Domain name for DoH",
433+
"remote-dns-domain": "Remote DNS Domain",
434+
"server-ip-for-doh-or-dou": "Server IP for DoH or DoU",
435+
"remote-dns-ip": "Remote DNS IP",
436+
"domenstic-dns-type-description": "Choose DoH (DNS over HTTPS) or DoU (DNS over UDP)",
437+
"domestic-dns-type": "Domestic DNS Type",
438+
"domain-name-for-doh-0": "Domain name for DoH",
439+
"domestic-dns-domain": "Domestic DNS Domain",
440+
"server-ip-for-doh-or-dou-0": "Server IP for DoH or DoU",
441+
"domestic-dns-ip": "Domestic DNS IP",
442+
"geoip-description": "Link to the geoip.dat file. Leave this field empty if you want to use the default file.",
443+
"geoip-url": "GeoIP URL",
444+
"geosite-description": "Link to the geosite.dat file. Leave this field empty if you want to use the default file.",
445+
"geosite-url": "GeoSite URL",
446+
"unix-timestamp-description": "Enter the Unix timestamp of the last update to the geoip and geosite files. Leave empty if not available.",
447+
"last-updated": "Last updated",
448+
"select-the-domain-processing-strategy": "Select the domain processing strategy.",
449+
"domain-strategy": "Domain strategy",
450+
"dns-hosts-description": "Enter the DNS hosts in the format: { \"example.com\": \"1.2.3.4\", \"test.org\": \"8.8.8.8\" }",
451+
"dns-hosts": "DNS hosts",
452+
"sites-that-will-use-direct-connection": "Sites that will use direct connection.",
453+
"direct-sites": "Direct sites",
454+
"ip-addresses-that-will-use-direct-connection": "IP addresses that will use direct connection.",
455+
"direct-ip": "Direct IP",
456+
"sites-that-will-be-proxied": "Sites that will be proxied.",
457+
"proxy-sites": "Proxy sites",
458+
"ip-addresses-that-will-be-proxied": "IP addresses that will be proxied.",
459+
"proxy-ip": "Proxy IP",
460+
"sites-that-will-be-blocked": "Sites that will be blocked.",
461+
"blocked-sites": "Blocked sites",
462+
"ip-addresses-that-will-be-blocked": "IP addresses that will be blocked.",
463+
"blocked-ips": "Blocked IPs",
464+
"encoded-happ-link": "Encoded Happ Link",
465+
"copied": "Copied",
466+
"show-qr": "Show QR",
467+
"close": "Close"
468+
},
469+
"page": {
470+
"component": {
471+
"about-happ": "About Happ",
472+
"happ-is-multiplatform-xray-client": "Happ is multiplatform XRay client.",
473+
"about-happ-description-line-2": "Here you can configure routing rules, which you can pass to Happ client.",
474+
"about-happ-description-line-3": "Check out \"Subscription settings\" and check \"Happ Routing\".",
475+
"check-out-happ-website": "Check out Happ website"
476+
}
477+
}
478+
},
479+
"remarks-manager": {
480+
"widget": {
481+
"enter-remark": "Enter remark",
482+
"add-remark": "Add remark"
483+
}
484+
},
485+
"subscription-settings": {
486+
"widget": {
487+
"validation-error": "Validation error",
488+
"you-must-add-at-least-one-remark-with-text": "You must add at least one remark with text",
489+
"subscription-info": "Subscription info",
490+
"this-title-will-be-displayed-as-subscription-name": "This title will be displayed as subscription name.",
491+
"profile-title": "Profile title",
492+
"enter-profile-title": "Enter profile title",
493+
"auto-update-description": "Some of clients may use this interval to auto-update subscription.",
494+
"auto-update-interval-hours": "Auto-Update interval (hours)",
495+
"support-link-description": "Some of clients may show this link in the subscription page, which should leads to the support page.",
496+
"support-link": "Support link",
497+
"happ-settings": "Happ settings",
498+
"happ-announce-description": "Enter Happ Announce, max. 200 characters. Will be displayed in the subscription page.",
499+
"happ-announce": "Happ Announce",
500+
"enter-happ-announce-max-200-characters": "Enter Happ Announce, max. 200 characters",
501+
"happ-routing-description": "Happ routing is a feature that allows you to configure the routing.",
502+
"happ-routing-description-line-2": "Routing must be configured via Happ Routing Builder. Use button below to configure routing.",
503+
"configure-happ-routing": "Configure Happ Routing",
504+
"happ-routing": "Happ routing",
505+
"user-status-remarks": "User status remarks",
506+
"user-status-remarks-description": "This values will be displayed in the subscription page if user is expired, limited or disabled.",
507+
"user-status-remarks-description-line-2": "You can add multiple remarks for each status.",
508+
"user-status-remarks-description-line-3": "Cause expired, limited and disabled users are not able to connect to the server, they will see this remarks instead of empty subscription.",
509+
"expired-users-remarks": "Expired users remarks",
510+
"limited-users-remarks": "Limited users remarks",
511+
"disabled-users-remarks": "Disabled users remarks",
512+
"update-settings": "Update settings"
513+
}
409514
}
410-
}
515+
}

0 commit comments

Comments
 (0)