diff --git a/luci-app-omr-bypass/po/templates/omr-bypass.pot b/luci-app-omr-bypass/po/templates/omr-bypass.pot
index c4126fb6f..a41486127 100644
--- a/luci-app-omr-bypass/po/templates/omr-bypass.pot
+++ b/luci-app-omr-bypass/po/templates/omr-bypass.pot
@@ -1,110 +1,111 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:64
-msgid "MAC-Address"
-msgstr ""
-
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:100
-msgid "ASN"
-msgstr ""
-
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:52
-msgid "ALL"
-msgstr ""
-
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:105
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:148
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:153
msgid "ASN"
msgstr ""
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:9
-msgid "Bypass"
-msgstr ""
-
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:150
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:151
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:152
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:153
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:154
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:155
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:156
-msgid "Default"
-msgstr ""
-
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:16
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:31
msgid "Domain"
msgstr ""
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:11
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:26
msgid "Domains"
msgstr ""
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:9
-msgid ""
-"Here you can bypass ShadowSocks and VPN. If you set Interface to Default "
-"this use any working interface."
+#: luci-app-omr-bypass/root/usr/share/rpcd/acl.d/luci-app-omr-bypass.json:3
+msgid "Grant access to ndpi resources"
msgstr ""
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:31
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:47
msgid "IP"
msgstr ""
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:90
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:130
msgid "IP Address"
msgstr ""
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:26
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:42
msgid "IPs and Networks"
msgstr ""
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:21
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:36
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:59
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:80
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:95
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:109
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:137
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:34
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:50
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:73
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:96
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:117
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:140
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:156
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:197
msgid "Interface"
msgstr ""
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:24
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:39
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:62
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:83
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:98
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:112
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:140
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:104
+msgid "MAC-Address"
+msgstr ""
+
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:39
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:55
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:78
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:101
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:122
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:145
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:161
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:202
msgid "Note"
msgstr ""
-#: luci-app-omr-bypass/luasrc/controller/omr-bypass.lua:6
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:24
+#: luci-app-omr-bypass/root/usr/share/luci/menu.d/luci-app-omr-bypass.json:3
msgid "OMR-Bypass"
msgstr ""
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:42
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:24
+msgid "OpenMPTCProuter IP must be used as DNS."
+msgstr ""
+
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:58
msgid "Ports destination"
msgstr ""
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:51
-msgid "Protocol"
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:81
+msgid "Ports source"
msgstr ""
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:119
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:169
msgid "Protocol/Service"
msgstr ""
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:114
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:164
msgid "Protocols and services"
msgstr ""
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:69
-msgid "Source MAC-Address"
-msgstr ""
-
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:85
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:125
msgid "Source lan IP address or network"
msgstr ""
-#: luci-app-omr-bypass/luasrc/model/cbi/omr-bypass.lua:47
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:34
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:50
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:73
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:96
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:117
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:140
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:156
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:197
+msgid "When none selected, MPTCP master interface is used."
+msgstr ""
+
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:63
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:86
msgid "port"
msgstr ""
+
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:66
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:89
+msgid "protocol"
+msgstr ""
+
+#: luci-app-omr-bypass/htdocs/luci-static/resources/view/services/omr-bypass.js:109
+msgid "source MAC-Address"
+msgstr ""