diff options
Diffstat (limited to 'applications')
80 files changed, 1796 insertions, 1446 deletions
diff --git a/applications/luci-app-adblock/luasrc/view/adblock/blocklist.htm b/applications/luci-app-adblock/luasrc/view/adblock/blocklist.htm index b4b62db5f..424a72f6f 100644 --- a/applications/luci-app-adblock/luasrc/view/adblock/blocklist.htm +++ b/applications/luci-app-adblock/luasrc/view/adblock/blocklist.htm @@ -51,37 +51,37 @@ table.cbi-section-table td, <%- end %> <div class="cbi-section-descr"><%=self.description%></div> <div class="cbi-section-node"> - <table class="cbi-section-table"> - <tr class="cbi-section-table-titles"> + <div class="table cbi-section-table"> + <div class="tr cbi-section-table-titles"> <%- if self.sectionhead then -%> - <th class="cbi-section-table-cell"><%=self.sectionhead%></th> + <div class="th cbi-section-table-cell"><%=self.sectionhead%></div> <%- else -%> - <th> </th> + <div class="th"> </div> <%- end -%> <%- for i, k in pairs(self.children) do -%> - <th class="cbi-section-table-cell"<%=width(k)%>> + <div class="th cbi-section-table-cell"<%=width(k)%>> <%-=k.title-%> - </th> + </div> <%- end -%> - </tr> + </div> <%- local isempty = true for i, k in ipairs(self:cfgsections()) do section = k isempty = false scope = { valueheader = "cbi/cell_valueheader", valuefooter = "cbi/cell_valuefooter" } -%> - <tr class="cbi-section-table-row" id="cbi-<%=self.config%>-<%=section%>"> - <th><%=k%></th> + <div class="tr cbi-section-table-row" id="cbi-<%=self.config%>-<%=section%>"> + <div class="th"><%=k%></div> <%- for k, node in ipairs(self.children) do node:render(section, scope or {}) end if not scope.cbid:match("adb_src_cat") then -%> - <td class="cbi-value-field"> </td> + <div class="td cbi-value-field"> </div> <%- end -%> - </tr> + </div> <%- end -%> - </table> + </div> </div> </fieldset> diff --git a/applications/luci-app-adblock/po/it/adblock.po b/applications/luci-app-adblock/po/it/adblock.po index 0a1b65ac3..7c64468e6 100644 --- a/applications/luci-app-adblock/po/it/adblock.po +++ b/applications/luci-app-adblock/po/it/adblock.po @@ -17,6 +17,11 @@ msgstr "" msgid "-------" msgstr "" +msgid "" +"<b>Caution:</b> To prevent OOM exceptions on low memory devices with less " +"than 64 MB free RAM, please only select a few of them!" +msgstr "" + msgid "Adblock" msgstr "Adblock" @@ -35,9 +40,6 @@ msgstr "Tempo addizionale in secondi di attesa prima che adblock si avvii." msgid "Advanced" msgstr "Avanzato" -msgid "Available blocklist sources." -msgstr "Fonti lista di blocco disponibili." - msgid "Backup Directory" msgstr "Directory del Backup" @@ -52,9 +54,7 @@ msgid "" "domains except those listed in the whitelist file.<br />" msgstr "" -msgid "" -"Caution: To prevent OOM exceptions on low memory devices with less than 64 " -"MB free RAM, please do not select more than five blocklist sources!" +msgid "Categories" msgstr "" msgid "" @@ -100,12 +100,6 @@ msgstr "" msgid "Download Utility (SSL Library)" msgstr "" -msgid "" -"During opkg package installation use the '--force-maintainer' option to " -"overwrite the pre-existing config file or download a fresh default config " -"from <a href=\"%s\" target=\"_blank\">here</a>" -msgstr "" - msgid "Edit Blacklist" msgstr "Modifica Lista Nera" @@ -182,13 +176,6 @@ msgid "Last Run" msgstr "Ultimo Avvio" msgid "" -"List URLs and Shallalist category selections are configurable in the " -"'Advanced' section.<br />" -msgstr "" -"Le selezioni degli URL delle liste e categorie Shallalist sono configurabili " -"nella sezione 'Avanzato'.<br />" - -msgid "" "List of available network interfaces. Usually the startup will be triggered " "by the 'wan' interface.<br />" msgstr "" @@ -239,9 +226,6 @@ msgid "" "Please note: this needs additional 'msmtp' package installation and setup." msgstr "" -msgid "Please update your adblock config file to use this package.<br />" -msgstr "" - msgid "Query" msgstr "Interrogazione" @@ -296,10 +280,8 @@ msgstr "" msgid "Target directory for the generated blocklist 'adb_list.overall'." msgstr "Directory per la lista di blocco generata 'adb_list.overall'." -msgid "The file size is too large for online editing in LuCI (> 512 KB)." +msgid "The file size is too large for online editing in LuCI (≥ 100 KB)." msgstr "" -"La grandezza del file è troppo grande per modificarla online in LuCI (> " -"512 KB)." msgid "" "This form allows you to modify the content of the adblock blacklist (%s)." @@ -336,9 +318,6 @@ msgstr "" "Questo form mostra l'output del registro, prefiltrato per messaggi relativi " "solo ad adblock." -msgid "This section contains no values yet" -msgstr "" - msgid "" "To overwrite the default path use the 'DNS Directory' option in the extra " "section below." @@ -392,6 +371,21 @@ msgstr "in pausa" msgid "running" msgstr "" +#~ msgid "Available blocklist sources." +#~ msgstr "Fonti lista di blocco disponibili." + +#~ msgid "" +#~ "List URLs and Shallalist category selections are configurable in the " +#~ "'Advanced' section.<br />" +#~ msgstr "" +#~ "Le selezioni degli URL delle liste e categorie Shallalist sono " +#~ "configurabili nella sezione 'Avanzato'.<br />" + +#~ msgid "The file size is too large for online editing in LuCI (> 512 KB)." +#~ msgstr "" +#~ "La grandezza del file è troppo grande per modificarla online in LuCI " +#~ "(> 512 KB)." + #~ msgid "" #~ "For SSL protected blocklist sources you need a suitable SSL library, e.g. " #~ "'libustream-ssl' or the wget 'built-in'." diff --git a/applications/luci-app-adblock/po/ja/adblock.po b/applications/luci-app-adblock/po/ja/adblock.po index dfd72cbf6..5276f6962 100644 --- a/applications/luci-app-adblock/po/ja/adblock.po +++ b/applications/luci-app-adblock/po/ja/adblock.po @@ -8,7 +8,7 @@ msgstr "" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.0.7\n" "Language: ja\n" msgid "'Jail' Blocklist Creation" @@ -17,6 +17,13 @@ msgstr "'Jail' ブロックリストの作成" msgid "-------" msgstr "(利用不可)" +msgid "" +"<b>Caution:</b> To prevent OOM exceptions on low memory devices with less " +"than 64 MB free RAM, please only select a few of them!" +msgstr "" +"<b>警告:</b> RAM の空き容量が 64MB に満たないメモリー容量の小さいデバイスで" +"は、 OutOfMemory (OOM) 例外を防ぐために少数のみを選択してください。" + msgid "Adblock" msgstr "Adblock" @@ -35,9 +42,6 @@ msgstr "Adblock の処理が開始されるまでの、追加の遅延時間( msgid "Advanced" msgstr "詳細設定" -msgid "Available blocklist sources." -msgstr "利用可能なブロックリスト提供元です。" - msgid "Backup Directory" msgstr "バックアップ先 ディレクトリ" @@ -54,13 +58,8 @@ msgstr "" "ホワイトリストに存在しない全ドメインへのアクセスをブロックするために、追加で " "'Jail' リスト (/tmp/adb_list.jail) を作成します。<br />" -msgid "" -"Caution: To prevent OOM exceptions on low memory devices with less than 64 " -"MB free RAM, please do not select more than five blocklist sources!" -msgstr "" -"警告: RAM の空き容量が 64MB に満たないメモリー容量の小さいデバイスでは、 " -"OutOfMemory (OOM) 例外を防ぐために、5個よりも多くのリストを選択しないようにし" -"てください。" +msgid "Categories" +msgstr "カテゴリー" msgid "" "Choose 'none' to disable automatic startups, 'timed' to use a classic " @@ -109,15 +108,6 @@ msgstr "ダウンロード ユーティリティ" msgid "Download Utility (SSL Library)" msgstr "ダウンロード ユーティリティ(SSL ライブラリ)" -msgid "" -"During opkg package installation use the '--force-maintainer' option to " -"overwrite the pre-existing config file or download a fresh default config " -"from <a href=\"%s\" target=\"_blank\">here</a>" -msgstr "" -"opkg でパッケージをインストールする際に '--force-maintainer' オプションを使用" -"して既存の設定ファイルを上書きするか、 <a href=\"%s\" target=\"_blank\">ここ" -"</a> からデフォルトの設定ファイルをダウンロードしてください。" - msgid "Edit Blacklist" msgstr "ブラックリストの編集" @@ -202,13 +192,6 @@ msgid "Last Run" msgstr "最終実行" msgid "" -"List URLs and Shallalist category selections are configurable in the " -"'Advanced' section.<br />" -msgstr "" -"リストの URL 及び \"Shalla\" リストのカテゴリー設定は、'詳細設定' セクション" -"で設定することができます。<br />" - -msgid "" "List of available network interfaces. Usually the startup will be triggered " "by the 'wan' interface.<br />" msgstr "" @@ -260,11 +243,6 @@ msgid "" msgstr "" "注意: これには、追加で 'msmtp' のインストールとセットアップが必要です。" -msgid "Please update your adblock config file to use this package.<br />" -msgstr "" -"このパッケージを使用するには、既存の Adblock 設定ファイルを更新してください。" -"<br />" - msgid "Query" msgstr "検索" @@ -326,10 +304,10 @@ msgstr "" msgid "Target directory for the generated blocklist 'adb_list.overall'." msgstr "生成されたブロックリスト 'adb_list.overall' の保存先ディレクトリです。" -msgid "The file size is too large for online editing in LuCI (> 512 KB)." +msgid "The file size is too large for online editing in LuCI (≥ 100 KB)." msgstr "" -"ファイル サイズが大きすぎる(512 KB超)ため、 LuCI 上でオンライン編集できませ" -"ん。" +"LuCI上でのオンライン編集を行うには、ファイルサイズが大きすぎます (≥ 100 " +"KB)。" msgid "" "This form allows you to modify the content of the adblock blacklist (%s)." @@ -366,9 +344,6 @@ msgstr "" "このフォームには、システムログ内の Adblock に関連するメッセージのみが表示され" "ます。" -msgid "This section contains no values yet" -msgstr "このセクションには、まだ値がありません" - msgid "" "To overwrite the default path use the 'DNS Directory' option in the extra " "section below." diff --git a/applications/luci-app-adblock/po/pt-br/adblock.po b/applications/luci-app-adblock/po/pt-br/adblock.po index c0d9d816d..6e8098a39 100644 --- a/applications/luci-app-adblock/po/pt-br/adblock.po +++ b/applications/luci-app-adblock/po/pt-br/adblock.po @@ -18,6 +18,11 @@ msgstr "" msgid "-------" msgstr "" +msgid "" +"<b>Caution:</b> To prevent OOM exceptions on low memory devices with less " +"than 64 MB free RAM, please only select a few of them!" +msgstr "" + msgid "Adblock" msgstr "Adblock" @@ -38,9 +43,6 @@ msgstr "" msgid "Advanced" msgstr "Avançado" -msgid "Available blocklist sources." -msgstr "Fontes de listas de bloqueio disponíveis." - msgid "Backup Directory" msgstr "Diretório da cópia de segurança" @@ -55,9 +57,7 @@ msgid "" "domains except those listed in the whitelist file.<br />" msgstr "" -msgid "" -"Caution: To prevent OOM exceptions on low memory devices with less than 64 " -"MB free RAM, please do not select more than five blocklist sources!" +msgid "Categories" msgstr "" msgid "" @@ -101,12 +101,6 @@ msgstr "" msgid "Download Utility (SSL Library)" msgstr "Utilitário de Download (Biblioteca SSL)" -msgid "" -"During opkg package installation use the '--force-maintainer' option to " -"overwrite the pre-existing config file or download a fresh default config " -"from <a href=\"%s\" target=\"_blank\">here</a>" -msgstr "" - msgid "Edit Blacklist" msgstr "Editar Lista de Bloqueio" @@ -182,11 +176,6 @@ msgid "Last Run" msgstr "" msgid "" -"List URLs and Shallalist category selections are configurable in the " -"'Advanced' section.<br />" -msgstr "" - -msgid "" "List of available network interfaces. Usually the startup will be triggered " "by the 'wan' interface.<br />" msgstr "" @@ -232,9 +221,6 @@ msgid "" "Please note: this needs additional 'msmtp' package installation and setup." msgstr "" -msgid "Please update your adblock config file to use this package.<br />" -msgstr "" - msgid "Query" msgstr "Consulta" @@ -288,9 +274,8 @@ msgstr "" msgid "Target directory for the generated blocklist 'adb_list.overall'." msgstr "" -msgid "The file size is too large for online editing in LuCI (> 512 KB)." +msgid "The file size is too large for online editing in LuCI (≥ 100 KB)." msgstr "" -"O tamanho do arquivo é muito grande para edição online no LuCI (> 512 KB)." msgid "" "This form allows you to modify the content of the adblock blacklist (%s)." @@ -327,9 +312,6 @@ msgstr "" "Esse formulário mostra a saída do syslog, pré-filtrado para mensagens do " "adblock apenas." -msgid "This section contains no values yet" -msgstr "" - msgid "" "To overwrite the default path use the 'DNS Directory' option in the extra " "section below." @@ -381,6 +363,14 @@ msgstr "" msgid "running" msgstr "" +#~ msgid "Available blocklist sources." +#~ msgstr "Fontes de listas de bloqueio disponíveis." + +#~ msgid "The file size is too large for online editing in LuCI (> 512 KB)." +#~ msgstr "" +#~ "O tamanho do arquivo é muito grande para edição online no LuCI (> 512 " +#~ "KB)." + #~ msgid "" #~ "For SSL protected blocklist sources you need a suitable SSL library, e.g. " #~ "'libustream-ssl' or the wget 'built-in'." diff --git a/applications/luci-app-adblock/po/ru/adblock.po b/applications/luci-app-adblock/po/ru/adblock.po index 17f39fdd8..24f42a776 100644 --- a/applications/luci-app-adblock/po/ru/adblock.po +++ b/applications/luci-app-adblock/po/ru/adblock.po @@ -21,6 +21,11 @@ msgstr "Создание Черного<br />списка 'Jail'" msgid "-------" msgstr "-------" +msgid "" +"<b>Caution:</b> To prevent OOM exceptions on low memory devices with less " +"than 64 MB free RAM, please only select a few of them!" +msgstr "" + msgid "Adblock" msgstr "AdBlock" @@ -39,9 +44,6 @@ msgstr "Дополнительная задержка в секундах до msgid "Advanced" msgstr "Дополнительно" -msgid "Available blocklist sources." -msgstr "Источники списков блокировки. " - msgid "Backup Directory" msgstr "Папка для бэкапа" @@ -59,13 +61,8 @@ msgstr "" "заблокировать доступ ко всем доменам, кроме тех что перечислены в файле " "Белого списка.<br />" -msgid "" -"Caution: To prevent OOM exceptions on low memory devices with less than 64 " -"MB free RAM, please do not select more than five blocklist sources!" +msgid "Categories" msgstr "" -"ВНИМАНИЕ: Для предотвращения возможного программного сбоя и перезагрузки, на " -"устройствах с объемом оперативной памяти менее 64MB, не выбирайте больше 5 " -"списков." msgid "" "Choose 'none' to disable automatic startups, 'timed' to use a classic " @@ -113,15 +110,6 @@ msgstr "Скачать утилиту" msgid "Download Utility (SSL Library)" msgstr "Загрузить утилиту (библиотека SSL)" -msgid "" -"During opkg package installation use the '--force-maintainer' option to " -"overwrite the pre-existing config file or download a fresh default config " -"from <a href=\"%s\" target=\"_blank\">here</a>" -msgstr "" -"Устанавливая пакет с помощью opkg, используйте '--force-maintainer', чтобы " -"перезаписать существующий config файл или загрузить новый дефолтный config " -"файл <a href=\"%s\" target=\"_blank\">здесь</a>" - msgid "Edit Blacklist" msgstr "Редактировать Черный список" @@ -205,13 +193,6 @@ msgid "Last Run" msgstr "Последнее время запуска" msgid "" -"List URLs and Shallalist category selections are configurable in the " -"'Advanced' section.<br />" -msgstr "" -"Список URL-адресов и настройка списка использования, настраиваются на " -"странице 'Дополнительно'.<br />" - -msgid "" "List of available network interfaces. Usually the startup will be triggered " "by the 'wan' interface.<br />" msgstr "" @@ -263,9 +244,6 @@ msgid "" "Please note: this needs additional 'msmtp' package installation and setup." msgstr "Внимание: это потребует дополнительной установки пакета 'msmtp'." -msgid "Please update your adblock config file to use this package.<br />" -msgstr "Обновите config файл Adblock, чтобы использовать этот пакет.<br />" - msgid "Query" msgstr "Запрос" @@ -328,9 +306,8 @@ msgstr "" msgid "Target directory for the generated blocklist 'adb_list.overall'." msgstr "Назначить папку для создания списка блокировки 'adb_list.overall'." -msgid "The file size is too large for online editing in LuCI (> 512 KB)." +msgid "The file size is too large for online editing in LuCI (≥ 100 KB)." msgstr "" -"Размер файла слишком большой, для онлайн редактирования в LuCI (> 512 KB)." msgid "" "This form allows you to modify the content of the adblock blacklist (%s)." @@ -363,9 +340,6 @@ msgid "" "only." msgstr "Страница системного журнала. Только сообщения связанные с Adblock." -msgid "This section contains no values yet" -msgstr "Здесь не содержатся необходимые значения" - msgid "" "To overwrite the default path use the 'DNS Directory' option in the extra " "section below." @@ -422,3 +396,41 @@ msgstr "остановлено" msgid "running" msgstr "работает" + +#~ msgid "Available blocklist sources." +#~ msgstr "Источники списков блокировки. " + +#~ msgid "" +#~ "Caution: To prevent OOM exceptions on low memory devices with less than " +#~ "64 MB free RAM, please do not select more than five blocklist sources!" +#~ msgstr "" +#~ "ВНИМАНИЕ: Для предотвращения возможного программного сбоя и перезагрузки, " +#~ "на устройствах с объемом оперативной памяти менее 64MB, не выбирайте " +#~ "больше 5 списков." + +#~ msgid "" +#~ "During opkg package installation use the '--force-maintainer' option to " +#~ "overwrite the pre-existing config file or download a fresh default config " +#~ "from <a href=\"%s\" target=\"_blank\">here</a>" +#~ msgstr "" +#~ "Устанавливая пакет с помощью opkg, используйте '--force-maintainer', " +#~ "чтобы перезаписать существующий config файл или загрузить новый дефолтный " +#~ "config файл <a href=\"%s\" target=\"_blank\">здесь</a>" + +#~ msgid "" +#~ "List URLs and Shallalist category selections are configurable in the " +#~ "'Advanced' section.<br />" +#~ msgstr "" +#~ "Список URL-адресов и настройка списка использования, настраиваются на " +#~ "странице 'Дополнительно'.<br />" + +#~ msgid "Please update your adblock config file to use this package.<br />" +#~ msgstr "Обновите config файл Adblock, чтобы использовать этот пакет.<br />" + +#~ msgid "The file size is too large for online editing in LuCI (> 512 KB)." +#~ msgstr "" +#~ "Размер файла слишком большой, для онлайн редактирования в LuCI (> 512 " +#~ "KB)." + +#~ msgid "This section contains no values yet" +#~ msgstr "Здесь не содержатся необходимые значения" diff --git a/applications/luci-app-adblock/po/sv/adblock.po b/applications/luci-app-adblock/po/sv/adblock.po index d875a69f9..349d0cc49 100644 --- a/applications/luci-app-adblock/po/sv/adblock.po +++ b/applications/luci-app-adblock/po/sv/adblock.po @@ -7,6 +7,11 @@ msgstr "" msgid "-------" msgstr "-------" +msgid "" +"<b>Caution:</b> To prevent OOM exceptions on low memory devices with less " +"than 64 MB free RAM, please only select a few of them!" +msgstr "" + msgid "Adblock" msgstr "Adblock" @@ -25,9 +30,6 @@ msgstr "" msgid "Advanced" msgstr "Avancerat" -msgid "Available blocklist sources." -msgstr "Tillgängliga källor för blockeringslistor" - msgid "Backup Directory" msgstr "Säkerhetskopiera mapp" @@ -42,9 +44,7 @@ msgid "" "domains except those listed in the whitelist file.<br />" msgstr "" -msgid "" -"Caution: To prevent OOM exceptions on low memory devices with less than 64 " -"MB free RAM, please do not select more than five blocklist sources!" +msgid "Categories" msgstr "" msgid "" @@ -91,12 +91,6 @@ msgstr "" msgid "Download Utility (SSL Library)" msgstr "Nerladdningsprogram (SSL-bibliotek)" -msgid "" -"During opkg package installation use the '--force-maintainer' option to " -"overwrite the pre-existing config file or download a fresh default config " -"from <a href=\"%s\" target=\"_blank\">here</a>" -msgstr "" - msgid "Edit Blacklist" msgstr "Redigera svartlista" @@ -173,11 +167,6 @@ msgid "Last Run" msgstr "Kördes senast" msgid "" -"List URLs and Shallalist category selections are configurable in the " -"'Advanced' section.<br />" -msgstr "" - -msgid "" "List of available network interfaces. Usually the startup will be triggered " "by the 'wan' interface.<br />" msgstr "" @@ -221,9 +210,6 @@ msgid "" "Please note: this needs additional 'msmtp' package installation and setup." msgstr "" -msgid "Please update your adblock config file to use this package.<br />" -msgstr "" - msgid "Query" msgstr "Fråga" @@ -256,8 +242,8 @@ msgid "" msgstr "" msgid "" -"Size of the download queue to handle downloads & list processing in parallel " -"(default '4').<br />" +"Size of the download queue to handle downloads & list processing in " +"parallel (default '4').<br />" msgstr "" msgid "Startup Trigger" @@ -277,8 +263,8 @@ msgstr "" msgid "Target directory for the generated blocklist 'adb_list.overall'." msgstr "" -msgid "The file size is too large for online editing in LuCI (> 512 KB)." -msgstr "Filstorleken är för stor för online-redigering i LuCi (> 512 KB)." +msgid "The file size is too large for online editing in LuCI (≥ 100 KB)." +msgstr "" msgid "" "This form allows you to modify the content of the adblock blacklist (%s)." @@ -311,9 +297,6 @@ msgid "" "only." msgstr "" -msgid "This section contains no values yet" -msgstr "" - msgid "" "To overwrite the default path use the 'DNS Directory' option in the extra " "section below." @@ -365,6 +348,13 @@ msgstr "pausad" msgid "running" msgstr "" +#~ msgid "Available blocklist sources." +#~ msgstr "Tillgängliga källor för blockeringslistor" + +#~ msgid "The file size is too large for online editing in LuCI (> 512 KB)." +#~ msgstr "" +#~ "Filstorleken är för stor för online-redigering i LuCi (> 512 KB)." + #~ msgid "" #~ "Caution: Please don't select big lists or many lists at once on low " #~ "memory devices to prevent OOM exceptions!" diff --git a/applications/luci-app-adblock/po/templates/adblock.pot b/applications/luci-app-adblock/po/templates/adblock.pot index 6fbaa652a..67c52eaac 100644 --- a/applications/luci-app-adblock/po/templates/adblock.pot +++ b/applications/luci-app-adblock/po/templates/adblock.pot @@ -7,6 +7,11 @@ msgstr "" msgid "-------" msgstr "" +msgid "" +"<b>Caution:</b> To prevent OOM exceptions on low memory devices with less " +"than 64 MB free RAM, please only select a few of them!" +msgstr "" + msgid "Adblock" msgstr "" @@ -25,9 +30,6 @@ msgstr "" msgid "Advanced" msgstr "" -msgid "Available blocklist sources." -msgstr "" - msgid "Backup Directory" msgstr "" @@ -42,9 +44,7 @@ msgid "" "domains except those listed in the whitelist file.<br />" msgstr "" -msgid "" -"Caution: To prevent OOM exceptions on low memory devices with less than 64 " -"MB free RAM, please do not select more than five blocklist sources!" +msgid "Categories" msgstr "" msgid "" @@ -84,12 +84,6 @@ msgstr "" msgid "Download Utility (SSL Library)" msgstr "" -msgid "" -"During opkg package installation use the '--force-maintainer' option to " -"overwrite the pre-existing config file or download a fresh default config " -"from <a href=\"%s\" target=\"_blank\">here</a>" -msgstr "" - msgid "Edit Blacklist" msgstr "" @@ -165,11 +159,6 @@ msgid "Last Run" msgstr "" msgid "" -"List URLs and Shallalist category selections are configurable in the " -"'Advanced' section.<br />" -msgstr "" - -msgid "" "List of available network interfaces. Usually the startup will be triggered " "by the 'wan' interface.<br />" msgstr "" @@ -213,9 +202,6 @@ msgid "" "Please note: this needs additional 'msmtp' package installation and setup." msgstr "" -msgid "Please update your adblock config file to use this package.<br />" -msgstr "" - msgid "Query" msgstr "" @@ -269,7 +255,7 @@ msgstr "" msgid "Target directory for the generated blocklist 'adb_list.overall'." msgstr "" -msgid "The file size is too large for online editing in LuCI (> 512 KB)." +msgid "The file size is too large for online editing in LuCI (≥ 100 KB)." msgstr "" msgid "" @@ -297,9 +283,6 @@ msgid "" "only." msgstr "" -msgid "This section contains no values yet" -msgstr "" - msgid "" "To overwrite the default path use the 'DNS Directory' option in the extra " "section below." diff --git a/applications/luci-app-adblock/po/zh-cn/adblock.po b/applications/luci-app-adblock/po/zh-cn/adblock.po index e26c44c4d..42bf0c04b 100644 --- a/applications/luci-app-adblock/po/zh-cn/adblock.po +++ b/applications/luci-app-adblock/po/zh-cn/adblock.po @@ -21,6 +21,11 @@ msgstr "" msgid "-------" msgstr "-------" +msgid "" +"<b>Caution:</b> To prevent OOM exceptions on low memory devices with less " +"than 64 MB free RAM, please only select a few of them!" +msgstr "" + msgid "Adblock" msgstr "Adblock" @@ -39,9 +44,6 @@ msgstr "触发 Adblock 开始处理前的额外延迟(以秒为单位)。" msgid "Advanced" msgstr "高级" -msgid "Available blocklist sources." -msgstr "可用的 blocklist 来源。" - msgid "Backup Directory" msgstr "备份目录" @@ -56,9 +58,7 @@ msgid "" "domains except those listed in the whitelist file.<br />" msgstr "" -msgid "" -"Caution: To prevent OOM exceptions on low memory devices with less than 64 " -"MB free RAM, please do not select more than five blocklist sources!" +msgid "Categories" msgstr "" msgid "" @@ -100,12 +100,6 @@ msgstr "" msgid "Download Utility (SSL Library)" msgstr "下载实用程序(SSL 库)" -msgid "" -"During opkg package installation use the '--force-maintainer' option to " -"overwrite the pre-existing config file or download a fresh default config " -"from <a href=\"%s\" target=\"_blank\">here</a>" -msgstr "" - msgid "Edit Blacklist" msgstr "编辑黑名单" @@ -181,11 +175,6 @@ msgid "Last Run" msgstr "最后运行" msgid "" -"List URLs and Shallalist category selections are configurable in the " -"'Advanced' section.<br />" -msgstr "列表 URL 和 Shallalist 类别选择可在“高级”选项卡中配置。<br />" - -msgid "" "List of available network interfaces. Usually the startup will be triggered " "by the 'wan' interface.<br />" msgstr "" @@ -231,9 +220,6 @@ msgid "" "Please note: this needs additional 'msmtp' package installation and setup." msgstr "" -msgid "Please update your adblock config file to use this package.<br />" -msgstr "" - msgid "Query" msgstr "查询" @@ -266,8 +252,8 @@ msgid "" msgstr "" msgid "" -"Size of the download queue to handle downloads & list processing in parallel " -"(default '4').<br />" +"Size of the download queue to handle downloads & list processing in " +"parallel (default '4').<br />" msgstr "" msgid "Startup Trigger" @@ -287,8 +273,8 @@ msgstr "" msgid "Target directory for the generated blocklist 'adb_list.overall'." msgstr "生成的 blocklist 'adb_list.overall'的目标目录。" -msgid "The file size is too large for online editing in LuCI (> 512 KB)." -msgstr "文件大小太大,无法在 LuCI(> 512 KB)中进行在线编辑。" +msgid "The file size is too large for online editing in LuCI (≥ 100 KB)." +msgstr "" msgid "" "This form allows you to modify the content of the adblock blacklist (%s)." @@ -315,9 +301,6 @@ msgid "" "only." msgstr "此表单显示系统日志输出,仅针对 adblock 相关的消息进行了预筛选。" -msgid "This section contains no values yet" -msgstr "" - msgid "" "To overwrite the default path use the 'DNS Directory' option in the extra " "section below." @@ -369,3 +352,13 @@ msgstr "已暂停" msgid "running" msgstr "" +#~ msgid "Available blocklist sources." +#~ msgstr "可用的 blocklist 来源。" + +#~ msgid "" +#~ "List URLs and Shallalist category selections are configurable in the " +#~ "'Advanced' section.<br />" +#~ msgstr "列表 URL 和 Shallalist 类别选择可在“高级”选项卡中配置。<br />" + +#~ msgid "The file size is too large for online editing in LuCI (> 512 KB)." +#~ msgstr "文件大小太大,无法在 LuCI(> 512 KB)中进行在线编辑。" diff --git a/applications/luci-app-adblock/po/zh-tw/adblock.po b/applications/luci-app-adblock/po/zh-tw/adblock.po index 417fc6bcc..f42d1b380 100644 --- a/applications/luci-app-adblock/po/zh-tw/adblock.po +++ b/applications/luci-app-adblock/po/zh-tw/adblock.po @@ -21,6 +21,11 @@ msgstr "" msgid "-------" msgstr "-------" +msgid "" +"<b>Caution:</b> To prevent OOM exceptions on low memory devices with less " +"than 64 MB free RAM, please only select a few of them!" +msgstr "" + msgid "Adblock" msgstr "Adblock" @@ -39,9 +44,6 @@ msgstr "觸發 Adblock 開始處理前的額外延遲(以秒為單位)。" msgid "Advanced" msgstr "高階" -msgid "Available blocklist sources." -msgstr "可用的 blocklist 來源。" - msgid "Backup Directory" msgstr "備份目錄" @@ -56,9 +58,7 @@ msgid "" "domains except those listed in the whitelist file.<br />" msgstr "" -msgid "" -"Caution: To prevent OOM exceptions on low memory devices with less than 64 " -"MB free RAM, please do not select more than five blocklist sources!" +msgid "Categories" msgstr "" msgid "" @@ -100,12 +100,6 @@ msgstr "" msgid "Download Utility (SSL Library)" msgstr "下載實用程式(SSL 庫)" -msgid "" -"During opkg package installation use the '--force-maintainer' option to " -"overwrite the pre-existing config file or download a fresh default config " -"from <a href=\"%s\" target=\"_blank\">here</a>" -msgstr "" - msgid "Edit Blacklist" msgstr "編輯黑名單" @@ -181,11 +175,6 @@ msgid "Last Run" msgstr "最後執行" msgid "" -"List URLs and Shallalist category selections are configurable in the " -"'Advanced' section.<br />" -msgstr "列表 URL 和 Shallalist 類別選擇可在“高階”選項卡中配置。<br />" - -msgid "" "List of available network interfaces. Usually the startup will be triggered " "by the 'wan' interface.<br />" msgstr "" @@ -231,9 +220,6 @@ msgid "" "Please note: this needs additional 'msmtp' package installation and setup." msgstr "" -msgid "Please update your adblock config file to use this package.<br />" -msgstr "" - msgid "Query" msgstr "查詢" @@ -266,8 +252,8 @@ msgid "" msgstr "" msgid "" -"Size of the download queue to handle downloads & list processing in parallel " -"(default '4').<br />" +"Size of the download queue to handle downloads & list processing in " +"parallel (default '4').<br />" msgstr "" msgid "Startup Trigger" @@ -287,8 +273,8 @@ msgstr "" msgid "Target directory for the generated blocklist 'adb_list.overall'." msgstr "生成的 blocklist 'adb_list.overall'的目標目錄。" -msgid "The file size is too large for online editing in LuCI (> 512 KB)." -msgstr "檔案大小太大,無法在 LuCI(> 512 KB)中進行線上編輯。" +msgid "The file size is too large for online editing in LuCI (≥ 100 KB)." +msgstr "" msgid "" "This form allows you to modify the content of the adblock blacklist (%s)." @@ -315,9 +301,6 @@ msgid "" "only." msgstr "此表單顯示系統日誌輸出,僅針對 adblock 相關的訊息進行了預篩選。" -msgid "This section contains no values yet" -msgstr "" - msgid "" "To overwrite the default path use the 'DNS Directory' option in the extra " "section below." @@ -369,3 +352,13 @@ msgstr "已暫停" msgid "running" msgstr "" +#~ msgid "Available blocklist sources." +#~ msgstr "可用的 blocklist 來源。" + +#~ msgid "" +#~ "List URLs and Shallalist category selections are configurable in the " +#~ "'Advanced' section.<br />" +#~ msgstr "列表 URL 和 Shallalist 類別選擇可在“高階”選項卡中配置。<br />" + +#~ msgid "The file size is too large for online editing in LuCI (> 512 KB)." +#~ msgstr "檔案大小太大,無法在 LuCI(> 512 KB)中進行線上編輯。" diff --git a/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/advanced_reboot.htm b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/advanced_reboot.htm index 0629c84b3..5f7429dfd 100644 --- a/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/advanced_reboot.htm +++ b/applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/advanced_reboot.htm @@ -21,24 +21,24 @@ <%- if device_name then -%> <fieldset class="cbi-section"> <legend><%=device_name%><%: Partitions%></legend> - <table class="cbi-section-table" id="partitions"> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell"><%:Partition%></th> - <th class="cbi-section-table-cell"><%:Status%></th> - <th class="cbi-section-table-cell"><%:Firmware/OS (Kernel)%></th> - <th class="cbi-section-table-cell"><%:Action%></th> - </tr> - <tr class="cbi-section-table-row"> - <td> + <div class="table cbi-section-table" id="partitions"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell"><%:Partition%></div> + <div class="th cbi-section-table-cell"><%:Status%></div> + <div class="th cbi-section-table-cell"><%:Firmware/OS (Kernel)%></div> + <div class="th cbi-section-table-cell"><%:Action%></div> + </div> + <div class="tr cbi-section-table-row"> + <div class="td"> <%=string.format("%X", boot_envvar1_partition_one)%> - </td> - <td> + </div> + <div class="td"> <%- if boot_envvar1_partition_one == current_partition then -%><%:Current%><%- else -%><%:Alternative%><%- end -%> - </td> - <td> + </div> + <div class="td"> <%=partition_one_os%> - </td> - <td> + </div> + <div class="td"> <%- if boot_envvar1_partition_one == current_partition then -%> <form method="post" action="<%=url('admin/system/advanced_reboot/reboot')%>"> <input type="hidden" name="token" value="<%=token%>" /> @@ -50,19 +50,19 @@ <input id="altreboot-button" type="submit" class="cbi-button cbi-button-apply" value="<%:Reboot to alternative partition...%>" /> </form> <%- end -%> - </td> - </tr> - <tr class="cbi-section-table-row"> - <td> + </div> + </div> + <div class="tr cbi-section-table-row"> + <div class="td"> <%=string.format("%X", boot_envvar1_partition_two)%> - </td> - <td> + </div> + <div class="td"> <%- if boot_envvar1_partition_two == current_partition then -%><%:Current%><%- else -%><%:Alternative%><%- end -%> - </td> - <td> + </div> + <div class="td"> <%=partition_two_os%> - </td> - <td> + </div> + <div class="td"> <%- if boot_envvar1_partition_two == current_partition then -%> <form method="post" action="<%=url('admin/system/advanced_reboot/reboot')%>"> <input type="hidden" name="token" value="<%=token%>" /> @@ -74,9 +74,9 @@ <input id="altreboot-button" type="submit" class="cbi-button cbi-button-apply" value="<%:Reboot to alternative partition...%>" /> </form> <%- end -%> - </td> - </tr> - </table> + </div> + </div> + </div> </fieldset> <%- else -%> <p class="alert-message warning"><%:Warning: This system does not have two partitions!%></p> diff --git a/applications/luci-app-ahcp/luasrc/view/ahcp_status.htm b/applications/luci-app-ahcp/luasrc/view/ahcp_status.htm index 946828953..ab25f862b 100644 --- a/applications/luci-app-ahcp/luasrc/view/ahcp_status.htm +++ b/applications/luci-app-ahcp/luasrc/view/ahcp_status.htm @@ -7,29 +7,21 @@ if (st && tb && tx) { /* clear all rows */ - while( tb.rows.length > 1 ) - tb.deleteRow(1); + while (tb.firstElementChild !== tb.lastElementChild) + tb.removeChild(tb.lastElementChild); - for( var i = 0; i < st.leases.length; i++ ) + for (var i = 0; i < st.leases.length; i++) { - var tr = tb.insertRow(-1); - tr.className = 'cbi-section-table-row cbi-rowstyle-' + ((i % 2) + 1); - - tr.insertCell(-1).innerHTML = st.leases[i].addr; - tr.insertCell(-1).innerHTML = String.format('%t', st.leases[i].age); + tb.appendChild(E('<div class="tr cbi-section-table-row cbi-rowstyle-%d">'.format((i % 2) + 1), [ + E('<div class="td">', st.leases[i].addr), + E('<div class="td">', '%t'.format(st.leases[i].age)) + ])); } - if( tb.rows.length == 1 ) - { - var tr = tb.insertRow(-1); - tr.className = 'cbi-section-table-row'; - - var td = tr.insertCell(-1); - td.colSpan = 2; - td.innerHTML = '<em><br /><%:There are no active leases.%></em>'; - } + if (tb.firstElementChild === tb.lastElementChild) + tb.appendChild(E('<div class="tr cbi-section-table-row"><div class="td"><em><br /><%:There are no active leases.%></em></div></div>')); - if( st.uid == '00:00:00:00:00:00:00:00' ) + if (st.uid == '00:00:00:00:00:00:00:00') tx.innerHTML = '<%:The AHCP Service is not running.%>'; else tx.innerHTML = String.format('<%:The AHCP Service is running with ID %s.%>', st.uid); @@ -41,13 +33,13 @@ <fieldset class="cbi-section"> <legend><%:Active AHCP Leases%></legend> <p id="ahcpd_status_text"></p> - <table class="cbi-section-table" id="ahcpd_status_table"> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell"><%:Address%></th> - <th class="cbi-section-table-cell"><%:Age%></th> - </tr> - <tr class="cbi-section-table-row"> - <td colspan="5"><em><br /><%:Collecting data...%></em></td> - </tr> - </table> + <div class="table cbi-section-table" id="ahcpd_status_table"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell"><%:Address%></div> + <div class="th cbi-section-table-cell"><%:Age%></div> + </div> + <div class="tr cbi-section-table-row"> + <div class="td" colspan="5"><em><br /><%:Collecting data...%></em></div> + </div> + </div> </fieldset> diff --git a/applications/luci-app-asterisk/luasrc/view/asterisk/dialplans.htm b/applications/luci-app-asterisk/luasrc/view/asterisk/dialplans.htm index 9f644ba07..fb40335f9 100644 --- a/applications/luci-app-asterisk/luasrc/view/asterisk/dialplans.htm +++ b/applications/luci-app-asterisk/luasrc/view/asterisk/dialplans.htm @@ -79,23 +79,23 @@ <% for i, plan in pairs(ast.dialplan.plans()) do %> <div class="cbi-section-node"> - <table class="cbi-section-table"> - <tr class="cbi-section-table-titles"> - <th style="text-align: left; padding: 3px" class="cbi-section-table-cell"> + <div class="table cbi-section-table"> + <div class="tr cbi-section-table-titles"> + <div style="text-align: left; padding: 3px" class="th cbi-section-table-cell"> <big>Dialplan <em><%=plan.name%></em></big> - </th> - <td> + </div> + <div class="td"> <a href="<%=url('admin/asterisk/dialplans')%>?delplan=<%=plan.name%>"> <img style="border:none" alt="Remove this dialplan" title="Remove this dialplan" src="/luci-static/resources/cbi/remove.gif" /> </a> - </td> - </tr> + </div> + </div> <!-- dialzones --> <% local zones_used = { }; local row = 0 %> <% for i, zone in ipairs(plan.zones) do zones_used[zone.name] = true %> - <tr class="cbi-section-table-row <%=rowstyle(row)%>"> - <td style="text-align: left; padding: 3px" class="cbi-section-table-cell"> + <div class="tr cbi-section-table-row <%=rowstyle(row)%>"> + <div style="text-align: left; padding: 3px" class="td cbi-section-table-cell"> <strong>└ Dialzone <em><%=zone.name%></em></strong> (<%=zone.description%>) <p style="padding-left: 1em; margin-bottom:0"> Lines: @@ -107,24 +107,24 @@ Matches: <%=format_matches(zone)%> </p> - </td> - <td style="width:5%" class="cbi-value-field"> + </div> + <div style="width:5%" class="td cbi-value-field"> <a href="<%=url('admin/asterisk/dialplans/out', zone.name)%>"> <img style="border:none" alt="Edit dialzone" title="Edit dialzone" src="/luci-static/resources/cbi/edit.gif" /> </a> <a href="<%=url('admin/asterisk/dialplans')%>?delzone.<%=plan.name%>=<%=zone.name%>"> <img style="border:none" alt="Remove from this dialplan" title="Remove from this dialplan" src="/luci-static/resources/cbi/remove.gif" /> </a> - </td> - </tr> + </div> + </div> <% row = row + 1; end %> <!-- /dialzones --> <!-- voicemail --> <% local boxes_used = { } %> <% for ext, box in luci.util.kspairs(plan.voicemailboxes) do boxes_used[box.id] = true %> - <tr class="cbi-section-table-row <%=rowstyle(row)%>"> - <td style="text-align: left; padding: 3px" class="cbi-section-table-cell"> + <div class="tr cbi-section-table-row <%=rowstyle(row)%>"> + <div style="text-align: left; padding: 3px" class="td cbi-section-table-cell"> <strong>└ Voicemailbox <em><%=box.id%></em></strong> (<%=box.name%>) <p style="padding-left: 1em; margin-bottom:0"> Owner: <%=box.name%> | @@ -132,44 +132,44 @@ Pager: <%=#box.page > 0 and box.page or 'n/a'%><br /> Matches: <%=format_matches(ext)%> </p> - </td> - <td style="width:5%" class="cbi-value-field"> + </div> + <div style="width:5%" class="td cbi-value-field"> <a href="<%=url('admin/asterisk/voicemail/mailboxes')%>"> <img style="border:none" alt="Manage mailboxes ..." title="Manage mailboxes ..." src="/luci-static/resources/cbi/edit.gif" /> </a> <a href="<%=url('admin/asterisk/dialplans')%>?delvbox.<%=plan.name%>=<%=ext%>"> <img style="border:none" alt="Remove from this dialplan" title="Remove from this dialplan" src="/luci-static/resources/cbi/remove.gif" /> </a> - </td> - </tr> + </div> + </div> <% row = row + 1; end %> <!-- /voicemail --> <!-- meetme --> <% local rooms_used = { } %> <% for ext, room in luci.util.kspairs(plan.meetmerooms) do rooms_used[room.room] = true %> - <tr class="cbi-section-table-row <%=rowstyle(row)%>"> - <td style="text-align: left; padding: 3px" class="cbi-section-table-cell"> + <div class="tr cbi-section-table-row <%=rowstyle(row)%>"> + <div style="text-align: left; padding: 3px" class="td cbi-section-table-cell"> <strong>└ MeetMe Room <em><%=room.room%></em></strong> <% if room.description and #room.description > 0 then %> (<%=room.description%>)<% end %> <p style="padding-left: 1em; margin-bottom:0"> Matches: <%=format_matches(ext)%> </p> - </td> - <td style="width:5%" class="cbi-value-field"> + </div> + <div style="width:5%" class="td cbi-value-field"> <a href="<%=url('admin/asterisk/meetme/rooms')%>"> <img style="border:none" alt="Manage conferences ..." title="Manage conferences ..." src="/luci-static/resources/cbi/edit.gif" /> </a> <a href="<%=url('admin/asterisk/dialplans')%>?delmeetme.<%=plan.name%>=<%=ext%>"> <img style="border:none" alt="Remove from this dialplan" title="Remove from this dialplan" src="/luci-static/resources/cbi/remove.gif" /> </a> - </td> - </tr> + </div> + </div> <% row = row + 1; end %> <!-- /meetme --> - <tr class="cbi-section-table-row"> - <td style="text-align: left; padding: 3px" class="cbi-section-table-cell" colspan="2"> + <div class="tr cbi-section-table-row"> + <div style="text-align: left; padding: 3px" class="td cbi-section-table-cell" colspan="2"> <hr style="margin-bottom:0.5em; border-width:0 0 1px 0" /> Add Dialzone:<br /> @@ -213,10 +213,10 @@ <br /><br /> <input type="submit" class="cbi-button cbi-button-add" value="Add item »" title="Add item ..."/> - </td> - </tr> + </div> + </div> - </table> + </div> <div class="cbi-section-create cbi-tblsection-create"></div> </div> diff --git a/applications/luci-app-asterisk/luasrc/view/asterisk/dialzones.htm b/applications/luci-app-asterisk/luasrc/view/asterisk/dialzones.htm index ffdbbcf35..e48da608a 100644 --- a/applications/luci-app-asterisk/luasrc/view/asterisk/dialzones.htm +++ b/applications/luci-app-asterisk/luasrc/view/asterisk/dialzones.htm @@ -66,59 +66,59 @@ <!-- tblsection --> <fieldset class="cbi-section" id="cbi-asterisk-sip"> <div class="cbi-section-node"> - <table class="cbi-section-table"> - <tr class="cbi-section-table-titles"> - <th style="text-align: left; padding: 3px" class="cbi-section-table-cell" colspan="6"> + <div class="table cbi-section-table"> + <div class="tr cbi-section-table-titles"> + <div style="text-align: left; padding: 3px" class="th cbi-section-table-cell" colspan="6"> <h3>Dialzone Overview</h3> - </th> - </tr> - - <tr class="cbi-section-table-descr"> - <th style="width: 5%; text-align:right" class="cbi-section-table-cell">Name</th> - <th style="width: 5%; text-align:right" class="cbi-section-table-cell">Prepend</th> - <th style="width: 20%; text-align:left" class="cbi-section-table-cell">- Match</th> - <th style="text-align:left" class="cbi-section-table-cell">Trunk</th> - <th style="width: 35%; text-align:left" class="cbi-section-table-cell">Description</th> - <th style="width: 4%; text-align:left" class="cbi-section-table-cell"></th> - </tr> + </div> + </div> + + <div class="tr cbi-section-table-descr"> + <div style="width: 5%; text-align:right" class="th cbi-section-table-cell">Name</div> + <div style="width: 5%; text-align:right" class="th cbi-section-table-cell">Prepend</div> + <div style="width: 20%; text-align:left" class="th cbi-section-table-cell">- Match</div> + <div style="text-align:left" class="th cbi-section-table-cell">Trunk</div> + <div style="width: 35%; text-align:left" class="th cbi-section-table-cell">Description</div> + <div style="width: 4%; text-align:left" class="th cbi-section-table-cell"></div> + </div> <% for i, rule in pairs(ast.dialzone.zones()) do %> - <tr class="cbi-section-table-row <%=rowstyle(i)%>"> - <td style="text-align:right" class="cbi-value-field"> + <div class="tr cbi-section-table-row <%=rowstyle(i)%>"> + <div style="text-align:right" class="td cbi-value-field"> <%=rule.name%> - </td> - <td style="text-align:right" class="cbi-value-field"> + </div> + <div style="text-align:right" class="td cbi-value-field"> <% for _ in ipairs(rule.matches) do %> <%=rule.addprefix and digit_pattern(rule.addprefix)%> <br /> <% end %> - </td> - <td style="text-align:left" class="cbi-value-field"> + </div> + <div style="text-align:left" class="td cbi-value-field"> <% for _, m in ipairs(rule.matches) do %> <%=rule.localprefix and "%s " % digit_pattern(rule.localprefix)%> <%=digit_pattern(m)%><br /> <% end %> - </td> - <td style="text-align:left" class="cbi-value-field"> + </div> + <div style="text-align:left" class="td cbi-value-field"> <%=ast.tools.hyperlinks( rule.trunks, function(v) return luci.dispatcher.build_url("admin", "asterisk", "trunks", "%s") % v:lower() end )%> - </td> - <td style="text-align:left" class="cbi-value-field"> + </div> + <div style="text-align:left" class="td cbi-value-field"> <%=rule.description or rule.name%> - </td> - <td style="text-align:left" class="cbi-value-field"> + </div> + <div style="text-align:left" class="td cbi-value-field"> <a href="<%=url('admin/asterisk/dialplans/out', rule.name)%>"> <img style="border:none" alt="Edit entry" title="Edit entry" src="/luci-static/resources/cbi/edit.gif" /> </a> <a href="<%=url('admin/asterisk/dialplans/zones')%>?delzone=<%=rule.name%>"> <img style="border:none" alt="Delete entry" title="Delete entry" src="/luci-static/resources/cbi/remove.gif" /> </a> - </td> - </tr> + </div> + </div> <% end %> - </table> + </div> <div class="cbi-section-create cbi-tblsection-create"></div> </div> <br /> @@ -133,26 +133,26 @@ <br /><span style="color:red">Invalid name given!</span><br /> <% end -%> - <table> - <tr> - <td style="padding:3px"> + <div class="table"> + <div class="tr"> + <div class="td" style="padding:3px"> <label for="create1">1) Name</label><br /> <input type="text" class="cbi-section-create-name" id="create1" name="newzone_name" style="width:200px" /> <br /><br /> <label for="create2">2) Number Match</label><br /> <input type="text" class="cbi-section-create-name" id="create2" name="newzone_match" style="width:200px" /> - </td> - <td style="padding:3px"> + </div> + <div class="td" style="padding:3px"> <label for="create3">3) Trunks</label><br /> <select class="cbi-input-select" multiple="multiple" id="create3" name="newzone_uses" size="4" style="width:200px"> <% for i, t in ipairs(find_trunks()) do %> <option value="<%=t[1]%>"><%=t[2]%></option> <% end %> </select> - </td> - </tr> - </table> + </div> + </div> + </div> <br /> <input type="submit" class="cbi-button cbi-button-add" name="newzone" value="Add entry" title="Add entry"/> diff --git a/applications/luci-app-ddns/Makefile b/applications/luci-app-ddns/Makefile index bd6ddeb1b..886b266b0 100644 --- a/applications/luci-app-ddns/Makefile +++ b/applications/luci-app-ddns/Makefile @@ -16,7 +16,7 @@ PKG_VERSION:=2.4.9 # Release == build # increase on changes of translation files -PKG_RELEASE:=3 +PKG_RELEASE:=4 PKG_LICENSE:=Apache-2.0 PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com> diff --git a/applications/luci-app-ddns/luasrc/controller/ddns.lua b/applications/luci-app-ddns/luasrc/controller/ddns.lua index 5f4a5118c..bfd7a2a41 100755 --- a/applications/luci-app-ddns/luasrc/controller/ddns.lua +++ b/applications/luci-app-ddns/luasrc/controller/ddns.lua @@ -21,7 +21,6 @@ luci_helper = "/usr/lib/ddns/dynamic_dns_lucihelper.sh" local srv_name = "ddns-scripts" local srv_ver_min = "2.7.7" -- minimum version of service required -local srv_ver_cmd = luci_helper .. [[ -V | awk {'print $2'}]] local app_name = "luci-app-ddns" local app_title = "Dynamic DNS" local app_version = "2.4.9-1" @@ -29,7 +28,6 @@ local app_version = "2.4.9-1" function index() local nxfs = require "nixio.fs" -- global definitions not available local sys = require "luci.sys" -- in function index() - local ddns = require "luci.tools.ddns" -- ddns multiused functions local muci = require "luci.model.uci" -- no config create an empty one @@ -81,26 +79,41 @@ end -- Standardized application/service functions function app_title_main() - return [[<a href="javascript:alert(']] - .. I18N.translate("Version Information") - .. [[\n\n]] .. app_name - .. [[\n\t]] .. I18N.translate("Version") .. [[:\t]] .. app_version - .. [[\n\n]] .. srv_name .. [[ ]] .. I18N.translate("required") .. [[:]] - .. [[\n\t]] .. I18N.translate("Version") .. [[:\t]] - .. srv_ver_min .. [[ ]] .. I18N.translate("or higher") - .. [[\n\n]] .. srv_name .. [[ ]] .. I18N.translate("installed") .. [[:]] - .. [[\n\t]] .. I18N.translate("Version") .. [[:\t]] - .. (service_version() or I18N.translate("NOT installed")) - .. [[\n\n]] - .. [[')">]] - .. I18N.translate(app_title) - .. [[</a>]] + tmp = {} + tmp[#tmp+1] = [[<a href="javascript:alert(']] + tmp[#tmp+1] = I18N.translate("Version Information") + tmp[#tmp+1] = [[\n\n]] .. app_name + tmp[#tmp+1] = [[\n\t]] .. I18N.translate("Version") .. [[:\t]] .. app_version + tmp[#tmp+1] = [[\n\n]] .. srv_name .. [[ ]] .. I18N.translate("required") .. [[:]] + tmp[#tmp+1] = [[\n\t]] .. I18N.translate("Version") .. [[:\t]] + tmp[#tmp+1] = srv_ver_min .. [[ ]] .. I18N.translate("or higher") + tmp[#tmp+1] = [[\n\n]] .. srv_name .. [[ ]] .. I18N.translate("installed") .. [[:]] + tmp[#tmp+1] = [[\n\t]] .. I18N.translate("Version") .. [[:\t]] + tmp[#tmp+1] = (service_version() or I18N.translate("NOT installed")) + tmp[#tmp+1] = [[\n\n]] + tmp[#tmp+1] = [[')">]] + tmp[#tmp+1] = I18N.translate(app_title) + tmp[#tmp+1] = [[</a>]] + + return table.concat(tmp) end function service_version() - local ver = nil + local nxfs = require "nixio.fs" + + local ver = nil + local ver_helper + + if nxfs.access("/bin/opkg") then + ver_helper = "/bin/opkg info " .. srv_name .. " | grep 'Version'" + else + ver_helper = luci_helper .. " -V" + end + + local srv_ver_cmd = ver_helper .. " | awk {'print $2'} " + ver = UTIL.exec(srv_ver_cmd) - if #ver > 0 then return ver end + if ver and #ver > 0 then return ver end IPKG.list_installed(srv_name, function(n, v, d) if v and (#v > 0) then ver = v end @@ -108,6 +121,7 @@ function service_version() ) return ver end + function service_ok() return IPKG.compare_versions((service_version() or "0"), ">=", srv_ver_min) end diff --git a/applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua b/applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua index 977dbe34b..10d39c718 100644 --- a/applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua +++ b/applications/luci-app-ddns/luasrc/model/cbi/ddns/detail.lua @@ -292,6 +292,10 @@ function luh.parse(self, section, novld) end -- use_ipv6 -- ################################################################ + +--We call it globally as it's called 11 times even outside specific function, saves 11 os.execute slow command! +local has_ipv6 = DDNS.env_info("has_ipv6") + usev6 = ns:taboption("basic", ListValue, "use_ipv6", translate("IP address version"), translate("Defines which IP address 'IPv4/IPv6' is send to the DDNS provider") ) @@ -300,16 +304,16 @@ usev6.default = "0" usev6:value("0", translate("IPv4-Address") ) function usev6.cfgvalue(self, section) local value = AbstractValue.cfgvalue(self, section) or "0" - if DDNS.has_ipv6 or (value == "1" and not DDNS.has_ipv6) then + if has_ipv6 or (value == "1" and not has_ipv6) then self:value("1", translate("IPv6-Address") ) end - if value == "1" and not DDNS.has_ipv6 then + if value == "1" and not has_ipv6 then self.description = err_ipv6_basic end return value end function usev6.validate(self, value) - if (value == "1" and DDNS.has_ipv6) or value == "0" then + if (value == "1" and has_ipv6) or value == "0" then return value end return nil, err_tab_basic(self) .. err_ipv6_plain @@ -360,7 +364,7 @@ svc6 = ns:taboption("basic", ListValue, "ipv6_service_name", translate("DDNS Service provider") .. " [IPv6]" ) svc6.default = "-" svc6:depends("use_ipv6", "1") -- only show on IPv6 -if not DDNS.has_ipv6 then +if not has_ipv6 then svc6.description = err_ipv6_basic end function svc6.cfgvalue(self, section) @@ -374,7 +378,7 @@ function svc6.cfgvalue(self, section) end function svc6.validate(self, value) if usev6:formvalue(section) == "1" then -- do only on IPv6 - if DDNS.has_ipv6 then return value end + if has_ipv6 then return value end return nil, err_tab_basic(self) .. err_ipv6_plain else return "" -- suppress validate error @@ -586,13 +590,17 @@ end svc6:value("-", translate("-- custom --") ) -- IPv4/IPv6 - use_https -- ################################################### -if DDNS.has_ssl or ( ( m:get(section, "use_https") or "0" ) == "1" ) then + +--We call it globally as it's called 4 times outside specific function. +local has_ssl = DDNS.env_info("has_ssl") + +if has_ssl or ( ( m:get(section, "use_https") or "0" ) == "1" ) then https = ns:taboption("basic", Flag, "use_https", translate("Use HTTP Secure") ) https.orientation = "horizontal" function https.cfgvalue(self, section) local value = AbstractValue.cfgvalue(self, section) - if not DDNS.has_ssl and value == "1" then + if not has_ssl and value == "1" then self.description = bold_on .. font_red .. translate("HTTPS not supported") .. font_off .. "<br />" .. translate("please disable") .. " !" .. bold_off @@ -602,7 +610,7 @@ if DDNS.has_ssl or ( ( m:get(section, "use_https") or "0" ) == "1" ) then return value end function https.validate(self, value) - if (value == "1" and DDNS.has_ssl ) or value == "0" then return value end + if (value == "1" and has_ssl ) or value == "0" then return value end return nil, err_tab_basic(self) .. translate("HTTPS not supported") .. " !" end function https.write(self, section, value) @@ -616,7 +624,7 @@ if DDNS.has_ssl or ( ( m:get(section, "use_https") or "0" ) == "1" ) then end -- IPv4/IPv6 - cacert -- ###################################################### -if DDNS.has_ssl then +if has_ssl then cert = ns:taboption("basic", Value, "cacert", translate("Path to CA-Certificate"), translate("directory or path/file") .. "<br />" .. @@ -706,7 +714,7 @@ src6:value("network", translate("Network")) src6:value("web", translate("URL")) src6:value("interface", translate("Interface")) src6:value("script", translate("Script")) -if not DDNS.has_ipv6 then +if not has_ipv6 then src6.description = err_ipv6_other end function src6.cfgvalue(self, section) @@ -715,7 +723,7 @@ end function src6.validate(self, value) if usev6:formvalue(section) ~= "1" then return "" -- ignore on IPv4 selected - elseif not DDNS.has_ipv6 then + elseif not has_ipv6 then return nil, err_tab_adv(self) .. err_ipv6_plain elseif not _verify_ip_source() then return nil, err_tab_adv(self) .. @@ -794,7 +802,7 @@ ipn6 = ns:taboption("advanced", ListValue, "ipv6_network", ipn6:depends("ipv6_source", "network") ipn6.default = "wan6" WADM.cbi_add_networks(ipn6) -if DDNS.has_ipv6 then +if has_ipv6 then ipn6.description = translate("Defines the network to read systems IPv6-Address from") else ipn6.description = err_ipv6_other @@ -808,7 +816,7 @@ function ipn6.validate(self, value) -- ignore if IPv4 selected OR -- ignore everything except "network" return "" - elseif DDNS.has_ipv6 then + elseif has_ipv6 then return value else return nil, err_tab_adv(self) .. err_ipv6_plain @@ -881,7 +889,7 @@ iurl6 = ns:taboption("advanced", Value, "ipv6_url", translate("URL to detect") .. " [IPv6]" ) iurl6:depends("ipv6_source", "web") iurl6.default = "http://checkipv6.dyndns.com" -if DDNS.has_ipv6 then +if has_ipv6 then iurl6.description = translate("Defines the Web page to read systems IPv6-Address from") else iurl6.description = err_ipv6_other @@ -895,7 +903,7 @@ function iurl6.validate(self, value) -- ignore if IPv4 selected OR -- ignore everything except "web" return "" - elseif not DDNS.has_ipv6 then + elseif not has_ipv6 then return nil, err_tab_adv(self) .. err_ipv6_plain elseif not value or #value == 0 then return nil, err_tab_adv(self) .. translate("missing / required") @@ -1051,7 +1059,7 @@ eif6:depends("ipv6_source", "web") eif6:depends("ipv6_source", "script") eif6.default = "wan6" WADM.cbi_add_networks(eif6) -if not DDNS.has_ipv6 then +if not has_ipv6 then eif6.description = err_ipv6_other else eif6.description = translate("Network on which the ddns-updater scripts will be started") @@ -1065,7 +1073,7 @@ function eif6.validate(self, value) or fsrc6 == "network" or fsrc6 == "interface" then return "" -- ignore IPv4, network, interface - elseif not DDNS.has_ipv6 then + elseif not has_ipv6 then return nil, err_tab_adv(self) .. err_ipv6_plain else return value @@ -1084,10 +1092,13 @@ function eif6.write(self, section, value) end function eif6.parse(self, section, novld) DDNS.value_parse(self, section, novld) -end +end -- IPv4/IPv6 - bind_network -- ################################################ -if DDNS.has_bindnet or ( ( m:get(section, "bind_network") or "" ) ~= "" ) then + +local has_bindnet = DDNS.env_info("has_bindnet") + +if has_bindnet or ( ( m:get(section, "bind_network") or "" ) ~= "" ) then bnet = ns:taboption("advanced", ListValue, "bind_network", translate("Bind Network") ) bnet:depends("ipv4_source", "web") @@ -1097,7 +1108,7 @@ if DDNS.has_bindnet or ( ( m:get(section, "bind_network") or "" ) ~= "" ) then WADM.cbi_add_networks(bnet) function bnet.cfgvalue(self, section) local value = AbstractValue.cfgvalue(self, section) - if not DDNS.has_bindnet and value ~= "" then + if not has_bindnet and value ~= "" then self.description = bold_on .. font_red .. translate("Binding to a specific network not supported") .. font_off .. "<br />" .. translate("please set to 'default'") .. " !" .. bold_off @@ -1108,7 +1119,7 @@ if DDNS.has_bindnet or ( ( m:get(section, "bind_network") or "" ) ~= "" ) then return value end function bnet.validate(self, value) - if ( (value ~= "") and DDNS.has_bindnet ) or (value == "") then return value end + if ( (value ~= "") and has_bindnet ) or (value == "") then return value end return nil, err_tab_adv(self) .. translate("Binding to a specific network not supported") .. " !" end function bnet.parse(self, section, novld) @@ -1119,13 +1130,16 @@ end -- IPv4 + IPv6 - force_ipversion -- ########################################### -- optional to force wget/curl and host to use only selected IP version -- command parameter "-4" or "-6" -if DDNS.has_forceip or ( ( m:get(section, "force_ipversion") or "0" ) ~= "0" ) then + +local has_forceip = DDNS.env_info("has_forceip") + +if has_forceip or ( ( m:get(section, "force_ipversion") or "0" ) ~= "0" ) then fipv = ns:taboption("advanced", Flag, "force_ipversion", translate("Force IP Version") ) fipv.orientation = "horizontal" function fipv.cfgvalue(self, section) local value = AbstractValue.cfgvalue(self, section) - if not DDNS.has_forceip and value ~= "0" then + if not has_forceip and value ~= "0" then self.description = bold_on .. font_red .. translate("Force IP Version not supported") .. font_off .. "<br />" .. translate("please disable") .. " !" .. bold_off @@ -1135,14 +1149,17 @@ if DDNS.has_forceip or ( ( m:get(section, "force_ipversion") or "0" ) ~= "0" ) t return value end function fipv.validate(self, value) - if (value == "1" and DDNS.has_forceip) or value == "0" then return value end + if (value == "1" and has_forceip) or value == "0" then return value end return nil, err_tab_adv(self) .. translate("Force IP Version not supported") end end -- IPv4 + IPv6 - dns_server -- ################################################ -- optional DNS Server to use resolving my IP -if DDNS.has_dnsserver or ( ( m:get(section, "dns_server") or "" ) ~= "" ) then + +local has_dnsserver = DDNS.env_info("has_dnsserver") + +if has_dnsserver or ( ( m:get(section, "dns_server") or "" ) ~= "" ) then dns = ns:taboption("advanced", Value, "dns_server", translate("DNS-Server"), translate("OPTIONAL: Use non-default DNS-Server to detect 'Registered IP'.") .. "<br />" .. @@ -1152,7 +1169,7 @@ if DDNS.has_dnsserver or ( ( m:get(section, "dns_server") or "" ) ~= "" ) then -- if .datatype is set, then it is checked before calling this function if not value or (#value == 0) then return "" -- ignore on empty - elseif not DDNS.has_dnsserver then + elseif not has_dnsserver then return nil, err_tab_adv(self) .. translate("Specifying a DNS-Server is not supported") elseif not DTYP.host(value) then return nil, err_tab_adv(self) .. translate("use hostname, FQDN, IPv4- or IPv6-Address") @@ -1179,13 +1196,16 @@ if DDNS.has_dnsserver or ( ( m:get(section, "dns_server") or "" ) ~= "" ) then end -- IPv4 + IPv6 - force_dnstcp -- ############################################## -if DDNS.has_bindhost or ( ( m:get(section, "force_dnstcp") or "0" ) ~= "0" ) then + +local has_bindhost = DDNS.env_info("has_bindhost") + +if has_bindhost or ( ( m:get(section, "force_dnstcp") or "0" ) ~= "0" ) then tcp = ns:taboption("advanced", Flag, "force_dnstcp", translate("Force TCP on DNS") ) tcp.orientation = "horizontal" function tcp.cfgvalue(self, section) local value = AbstractValue.cfgvalue(self, section) - if not DDNS.has_bindhost and value ~= "0" then + if not has_bindhost and value ~= "0" then self.description = bold_on .. font_red .. translate("DNS requests via TCP not supported") .. font_off .. "<br />" .. translate("please disable") .. " !" .. bold_off @@ -1195,7 +1215,7 @@ if DDNS.has_bindhost or ( ( m:get(section, "force_dnstcp") or "0" ) ~= "0" ) the return value end function tcp.validate(self, value) - if (value == "1" and DDNS.has_bindhost ) or value == "0" then + if (value == "1" and has_bindhost ) or value == "0" then return value end return nil, err_tab_adv(self) .. translate("DNS requests via TCP not supported") @@ -1204,13 +1224,16 @@ end -- IPv4 + IPv6 - proxy -- ##################################################### -- optional Proxy to use for http/https requests [user:password@]proxyhost[:port] -if DDNS.has_proxy or ( ( m:get(section, "proxy") or "" ) ~= "" ) then + +local has_proxy = DDNS.env_info("has_proxy") + +if has_proxy or ( ( m:get(section, "proxy") or "" ) ~= "" ) then pxy = ns:taboption("advanced", Value, "proxy", translate("PROXY-Server") ) pxy.placeholder="user:password@myproxy.lan:8080" function pxy.cfgvalue(self, section) local value = AbstractValue.cfgvalue(self, section) - if not DDNS.has_proxy and value ~= "" then + if not has_proxy and value ~= "" then self.description = bold_on .. font_red .. translate("PROXY-Server not supported") .. font_off .. "<br />" .. translate("please remove entry") .. "!" .. bold_off @@ -1226,7 +1249,7 @@ if DDNS.has_proxy or ( ( m:get(section, "proxy") or "" ) ~= "" ) then -- if .datatype is set, then it is checked before calling this function if not value or (#value == 0) then return "" -- ignore on empty - elseif DDNS.has_proxy then + elseif has_proxy then local ipv6 = usev6:formvalue(section) or "0" local force = fipv:formvalue(section) or "0" local command = CTRL.luci_helper .. [[ -]] diff --git a/applications/luci-app-ddns/luasrc/model/cbi/ddns/hints.lua b/applications/luci-app-ddns/luasrc/model/cbi/ddns/hints.lua index df39a3a7e..419201548 100644 --- a/applications/luci-app-ddns/luasrc/model/cbi/ddns/hints.lua +++ b/applications/luci-app-ddns/luasrc/model/cbi/ddns/hints.lua @@ -48,7 +48,7 @@ if not SYS.init.enabled("ddns") then end -- No IPv6 support -if not DDNS.has_ipv6 then +if not DDNS.env_info("has_ipv6") then local v6 = s:option(DummyValue, "_no_ipv6") v6.titleref = 'http://www.openwrt.org" target="_blank' v6.rawhtml = true @@ -60,7 +60,7 @@ if not DDNS.has_ipv6 then end -- No HTTPS support -if not DDNS.has_ssl then +if not DDNS.env_info("has_ssl") then local sl = s:option(DummyValue, "_no_https") sl.titleref = DISP.build_url("admin", "system", "packages") sl.rawhtml = true @@ -74,7 +74,7 @@ if not DDNS.has_ssl then end -- No bind_network -if not DDNS.has_bindnet then +if not DDNS.env_info("has_bindnet") then local bn = s:option(DummyValue, "_no_bind_network") bn.titleref = DISP.build_url("admin", "system", "packages") bn.rawhtml = true @@ -90,7 +90,7 @@ if not DDNS.has_bindnet then end -- currently only cURL possibly without proxy support -if not DDNS.has_proxy then +if not DDNS.env_info("has_proxy") then local px = s:option(DummyValue, "_no_proxy") px.titleref = DISP.build_url("admin", "system", "packages") px.rawhtml = true @@ -104,7 +104,7 @@ if not DDNS.has_proxy then end -- "Force IP Version not supported" -if not DDNS.has_forceip then +if not DDNS.env_info("has_forceip") then local fi = s:option(DummyValue, "_no_force_ip") fi.titleref = DISP.build_url("admin", "system", "packages") fi.rawhtml = true @@ -112,11 +112,11 @@ if not DDNS.has_forceip then translate("Force IP Version not supported") .. bold_off local value = translate("BusyBox's nslookup and Wget do not support to specify " .. "the IP version to use for communication with DDNS Provider!") - if not (DDNS.has_wgetssl or DDNS.has_curl or DDNS.has_fetch) then + if not (DDNS.env_info("has_wgetssl") or DDNS.env_info("has_curl") or DDNS.env_info("has_fetch")) then value = value .. "<br />- " .. translate("You should install 'wget' or 'curl' or 'uclient-fetch' package.") end - if not DDNS.has_bindhost then + if not DDNS.env_info("has_bindhost") then value = value .. "<br />- " .. translate("You should install 'bind-host' or 'knot-host' or 'drill' package for DNS requests.") end @@ -124,7 +124,7 @@ if not DDNS.has_forceip then end -- "DNS requests via TCP not supported" -if not DDNS.has_bindhost then +if not DDNS.env_info("has_bindhost") then local dt = s:option(DummyValue, "_no_dnstcp") dt.titleref = DISP.build_url("admin", "system", "packages") dt.rawhtml = true @@ -137,7 +137,7 @@ if not DDNS.has_bindhost then end -- nslookup compiled with musl produce problems when using -if not DDNS.has_dnsserver then +if not DDNS.env_info("has_dnsserver") then local ds = s:option(DummyValue, "_no_dnsserver") ds.titleref = DISP.build_url("admin", "system", "packages") ds.rawhtml = true @@ -151,7 +151,7 @@ if not DDNS.has_dnsserver then end -- certificates installed -if DDNS.has_ssl and not DDNS.has_cacerts then +if DDNS.env_info("has_ssl") and not DDNS.env_info("has_cacerts") then local ca = s:option(DummyValue, "_no_certs") ca.titleref = DISP.build_url("admin", "system", "packages") ca.rawhtml = true diff --git a/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua b/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua index 114f831c1..11f73800e 100644 --- a/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua +++ b/applications/luci-app-ddns/luasrc/model/cbi/ddns/overview.lua @@ -1,21 +1,20 @@ -- Copyright 2014-2018 Christian Schoenebeck <christian dot schoenebeck at gmail dot com> -- Licensed to the public under the Apache License 2.0. -local NXFS = require "nixio.fs" local DISP = require "luci.dispatcher" local HTTP = require "luci.http" local SYS = require "luci.sys" local CTRL = require "luci.controller.ddns" -- this application's controller local DDNS = require "luci.tools.ddns" -- ddns multiused functions -local show_hints = not (DDNS.has_ipv6 -- IPv6 support - and DDNS.has_ssl -- HTTPS support - and DDNS.has_proxy -- Proxy support - and DDNS.has_bindhost -- DNS TCP support - and DDNS.has_forceip -- Force IP version - and DDNS.has_dnsserver -- DNS server support - and DDNS.has_bindnet -- Bind to network/interface - and DDNS.has_cacerts -- certificates installed at /etc/ssl/certs +local show_hints = not (DDNS.env_info("has_ipv6") -- IPv6 support + and DDNS.env_info("has_ssl") -- HTTPS support + and DDNS.env_info("has_proxy") -- Proxy support + and DDNS.env_info("has_bindhost") -- DNS TCP support + and DDNS.env_info("has_forceip") -- Force IP version + and DDNS.env_info("has_dnsserver") -- DNS server support + and DDNS.env_info("has_bindnet") -- Bind to network/interface + and DDNS.env_info("has_cacerts") -- certificates installed at /etc/ssl/certs ) local not_enabled = not SYS.init.enabled("ddns") local need_update = not CTRL.service_ok() diff --git a/applications/luci-app-ddns/luasrc/tools/ddns.lua b/applications/luci-app-ddns/luasrc/tools/ddns.lua index 690b9b30c..57913a51f 100755 --- a/applications/luci-app-ddns/luasrc/tools/ddns.lua +++ b/applications/luci-app-ddns/luasrc/tools/ddns.lua @@ -5,36 +5,134 @@ module("luci.tools.ddns", package.seeall) local NX = require "nixio" local NXFS = require "nixio.fs" -local OPKG = require "luci.model.ipkg" local UCI = require "luci.model.uci" local SYS = require "luci.sys" -local UTIL = require "luci.util" -local function _check_certs() - local _, v = NXFS.glob("/etc/ssl/certs/*.crt") - if ( v == 0 ) then _, v = NXFS.glob("/etc/ssl/certs/*.pem") end - return (v > 0) -end +function env_info(type) + + if ( type == "has_ssl" ) or ( type == "has_proxy" ) or ( type == "has_forceip" ) + or ( type == "has_bindnet" ) or ( type == "has_fetch" ) + or ( type == "has_wgetssl" ) or ( type == "has_curl" ) + or ( type == "has_curlssl" ) or ( type == "has_curlpxy" ) + or ( type == "has_fetchssl" ) or ( type == "has_bbwget" ) then + + local function has_wgetssl() + return (SYS.call( [[which wget-ssl >/dev/null 2>&1]] ) == 0) -- and true or nil + end + + local function has_curlssl() + return (SYS.call( [[$(which curl) -V 2>&1 | grep "Protocols:" | grep -qF "https"]] ) ~= 0) + end + + local function has_fetch() + return (SYS.call( [[which uclient-fetch >/dev/null 2>&1]] ) == 0) + end + + local function has_fetchssl() + return NXFS.access("/lib/libustream-ssl.so") + end + + local function has_curl() + return (SYS.call( [[which curl >/dev/null 2>&1]] ) == 0) + end + + local function has_curlpxy() + return (SYS.call( [[grep -i "all_proxy" /usr/lib/libcurl.so* >/dev/null 2>&1]] ) == 0) + end + + local function has_bbwget() + return (SYS.call( [[$(which wget) -V 2>&1 | grep -iqF "busybox"]] ) == 0) + end + + if type == "has_wgetssl" then + return has_wgetssl() + + elseif type == "has_curl" then + return has_curl() + + elseif type == "has_curlssl" then + return has_curlssl() + + elseif type == "has_curlpxy" then + return has_curlpxy() + + elseif type == "has_fetch" then + return has_fetch() + + elseif type == "has_fetchssl" then + return has_fetchssl() + + elseif type == "has_bbwget" then + return has_bbwget() + + elseif type == "has_ssl" then + if has_wgetssl() then return true end + if has_curlssl() then return true end + if (has_fetch() and has_fetchssl()) then return true end + return false + + elseif type == "has_proxy" then + if has_wgetssl() then return true end + if has_curlpxy() then return true end + if has_fetch() then return true end + if has_bbwget() then return true end + return false + + elseif type == "has_forceip" then + if has_wgetssl() then return true end + if has_curl() then return true end + if has_fetch() then return true end -- only really needed for transfer + return false + + elseif type == "has_bindnet" then + if has_curl() then return true end + if has_wgetssl() then return true end + return false + end + + elseif ( type == "has_dnsserver" ) or ( type == "has_bindhost" ) or ( type == "has_hostip" ) or ( type == "has_nslookup" ) then + local function has_bindhost() + if (SYS.call( [[which host >/dev/null 2>&1]] ) == 0) then return true end + if (SYS.call( [[which host >/dev/null 2>&1]] ) == 0) then return true end + if (SYS.call( [[which khost >/dev/null 2>&1]] ) == 0) then return true end + if (SYS.call( [[which drill >/dev/null 2>&1]] ) == 0) then return true end + return false + end + + local function has_hostip() + return (SYS.call( [[which hostip >/dev/null 2>&1]] ) == 0) + end + + local function has_nslookup() + return (SYS.call( [[$(which nslookup) localhost 2>&1 | grep -qF "(null)"]] ) ~= 0) + end + + if type == "has_bindhost" then + return has_bindhost() + elseif type == "has_hostip" then + return has_hostip() + elseif type == "has_nslookup" then + return has_nslookup() + elseif tyep == "has_dnsserver" then + if has_bindhost() then return true end + if has_hostip() then return true end + if has_nslookup() then return true end + return false + end + + elseif type == "has_ipv6" then + return (NXFS.access("/proc/net/ipv6_route") and NXFS.access("/usr/sbin/ip6tables")) + + elseif type == "has_cacerts" then + --old _check_certs() local function + local _, v = NXFS.glob("/etc/ssl/certs/*.crt") + if ( v == 0 ) then _, v = NXFS.glob("/etc/ssl/certs/*.pem") end + return (v > 0) + else + return + end -has_wgetssl = (SYS.call( [[which wget-ssl >/dev/null 2>&1]] ) == 0) -- and true or nil -has_curl = (SYS.call( [[which curl >/dev/null 2>&1]] ) == 0) -has_curlssl = (SYS.call( [[$(which curl) -V 2>&1 | grep "Protocols:" | grep -qF "https"]] ) ~= 0) -has_curlpxy = (SYS.call( [[grep -i "all_proxy" /usr/lib/libcurl.so* >/dev/null 2>&1]] ) == 0) -has_fetch = (SYS.call( [[which uclient-fetch >/dev/null 2>&1]] ) == 0) -has_fetchssl = NXFS.access("/lib/libustream-ssl.so") -has_bbwget = (SYS.call( [[$(which wget) -V 2>&1 | grep -iqF "busybox"]] ) == 0) -has_bindhost = (SYS.call( [[which host >/dev/null 2>&1]] ) == 0) - or (SYS.call( [[which khost >/dev/null 2>&1]] ) == 0) - or (SYS.call( [[which drill >/dev/null 2>&1]] ) == 0) -has_hostip = (SYS.call( [[which hostip >/dev/null 2>&1]] ) == 0) -has_nslookup = (SYS.call( [[$(which nslookup) localhost 2>&1 | grep -qF "(null)"]] ) ~= 0) -has_ipv6 = (NXFS.access("/proc/net/ipv6_route") and NXFS.access("/usr/sbin/ip6tables")) -has_ssl = (has_wgetssl or has_curlssl or (has_fetch and has_fetchssl)) -has_proxy = (has_wgetssl or has_curlpxy or has_fetch or has_bbwget) -has_forceip = (has_wgetssl or has_curl or has_fetch) -- only really needed for transfer -has_dnsserver = (has_bindhost or has_hostip or has_nslookup) -has_bindnet = (has_wgetssl or has_curl) -has_cacerts = _check_certs() +end -- function to calculate seconds from given interval and unit function calc_seconds(interval, unit) diff --git a/applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua b/applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua index 500e5078f..2c5083a01 100644 --- a/applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua +++ b/applications/luci-app-firewall/luasrc/model/cbi/firewall/zones.lua @@ -3,6 +3,7 @@ local ds = require "luci.dispatcher" local fw = require "luci.model.firewall" +local fs = require "nixio.fs" local m, s, o, p, i, v @@ -32,6 +33,28 @@ for i, v in ipairs(p) do v:value("ACCEPT", translate("accept")) end +-- Netfilter flow offload support + +local offload = fs.access("/sys/module/xt_FLOWOFFLOAD/refcnt") + +if offload then + s:option(DummyValue, "offload_advice", + translate("Routing/NAT Offloading"), + translate("Experimental feature. Not fully compatible with QoS/SQM.")) + + o = s:option(Flag, "flow_offloading", + translate("Software flow offloading"), + translate("Software based offloading for routing/NAT")) + o.optional = true + + o = s:option(Flag, "flow_offloading_hw", + translate("Hardware flow offloading"), + translate("Requires hardware NAT support. Implemented at least for mt7621")) + o.optional = true + o:depends( "flow_offloading", 1) +end + +-- Firewall zones s = m:section(TypedSection, "zone", translate("Zones")) s.template = "cbi/tblsection" diff --git a/applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm b/applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm index b3079f3a4..279b6e06d 100644 --- a/applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm +++ b/applications/luci-app-firewall/luasrc/view/firewall/cbi_addforward.htm @@ -20,58 +20,58 @@ -%> <div class="cbi-section-create cbi-tblsection-create"> <br /> - <table class="cbi-section-table" style="width:810px; margin-left:5px"> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell" colspan="8"><%:New port forward%>:</th> - </tr> - <tr class="cbi-section-table-descr"> - <th class="cbi-section-table-cell"><%:Name%></th> - <th class="cbi-section-table-cell"><%:Protocol%></th> - <th class="cbi-section-table-cell"><%:External zone%></th> - <th class="cbi-section-table-cell"><%:External port%></th> - <th class="cbi-section-table-cell"><%:Internal zone%></th> - <th class="cbi-section-table-cell"><%:Internal IP address%></th> - <th class="cbi-section-table-cell"><%:Internal port%></th> - <th class="cbi-section-table-cell"></th> - </tr> - <tr class="cbi-section-table-row"> - <td class="cbi-section-table-cell"> + <div class="table cbi-section-table" style="width:810px; margin-left:5px"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell" colspan="8"><%:New port forward%>:</div> + </div> + <div class="tr cbi-section-table-descr"> + <div class="th cbi-section-table-cell"><%:Name%></div> + <div class="th cbi-section-table-cell"><%:Protocol%></div> + <div class="th cbi-section-table-cell"><%:External zone%></div> + <div class="th cbi-section-table-cell"><%:External port%></div> + <div class="th cbi-section-table-cell"><%:Internal zone%></div> + <div class="th cbi-section-table-cell"><%:Internal IP address%></div> + <div class="th cbi-section-table-cell"><%:Internal port%></div> + <div class="th cbi-section-table-cell"></div> + </div> + <div class="tr cbi-section-table-row"> + <div class="td cbi-section-table-cell"> <input type="text" class="cbi-input-text" id="_newfwd.name" name="_newfwd.name" placeholder="<%:New port forward%>" /> - </td> - <td class="cbi-section-table-cell" style="width:110px"> + </div> + <div class="td cbi-section-table-cell" style="width:110px"> <select class="cbi-input-select" id="_newfwd.proto" name="_newfwd.proto"> <option value="tcp udp">TCP+UDP</option> <option value="tcp">TCP</option> <option value="udp">UDP</option> <option value="other"><%:Other...%></option> </select> - </td> - <td class="cbi-section-table-cell" style="width:55px"> + </div> + <div class="td cbi-section-table-cell" style="width:55px"> <select class="cbi-input-select" id="_newfwd.extzone" name="_newfwd.extzone"> <% for _, z in ipairs(ezl) do -%><option value="<%=z:name()%>"><%=z:name()%></option><%- end %> </select> - </td> - <td class="cbi-section-table-cell" style="width:110px"> + </div> + <div class="td cbi-section-table-cell" style="width:110px"> <input type="text" class="cbi-input-text" id="_newfwd.extport" name="_newfwd.extport" data-type="portrange" data-optional="true" /> - </td> - <td class="cbi-section-table-cell" style="width:55px"> + </div> + <div class="td cbi-section-table-cell" style="width:55px"> <select class="cbi-input-select" id="_newfwd.intzone" name="_newfwd.intzone"> <% for _, z in ipairs(izl) do -%><option value="<%=z:name()%>"><%=z:name()%></option><%- end %> </select> - </td> - <td class="cbi-section-table-cell" style="width:110px"> + </div> + <div class="td cbi-section-table-cell" style="width:110px"> <input type="text" class="cbi-input-text" id="_newfwd.intaddr" name="_newfwd.intaddr" data-type="host" data-optional="true"<%= ifattr(#keys > 0, "data-choices", {keys, vals}) %>/> - </td> - <td class="cbi-section-table-cell" style="width:110px"> + </div> + <div class="td cbi-section-table-cell" style="width:110px"> <input type="text" class="cbi-input-text" id="_newfwd.intport" name="_newfwd.intport" data-type="portrange" data-optional="true" /> - </td> - <td class="cbi-section-table-cell"> + </div> + <div class="td cbi-section-table-cell"> <input type="submit" class="cbi-button cbi-button-add" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" value="<%:Add%>" /> - </td> - </tr> - </table> + </div> + </div> + </div> <script type="text/javascript">//<![CDATA[ cbi_bind(document.getElementById('_newfwd.extport'), 'blur', diff --git a/applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm b/applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm index b06fac3de..c99ecaca3 100644 --- a/applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm +++ b/applications/luci-app-firewall/luasrc/view/firewall/cbi_addrule.htm @@ -8,71 +8,71 @@ <div class="cbi-section-create cbi-tblsection-create"> <% if wz then %> <br /> - <table class="cbi-section-table" style="margin-left:5px"> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell left" colspan="4"><%:Open ports on router%>:</th> - </tr> - <tr class="cbi-section-table-descr"> - <th class="cbi-section-table-cell"><%:Name%></th> - <th class="cbi-section-table-cell"><%:Protocol%></th> - <th class="cbi-section-table-cell"><%:External port%></th> - <th class="cbi-section-table-cell"></th> - </tr> - <tr class="cbi-section-table-row"> - <td class="cbi-section-table-cell" style="width:130px"> + <div class="table cbi-section-table" style="margin-left:5px"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell left" colspan="4"><%:Open ports on router%>:</div> + </div> + <div class="tr cbi-section-table-descr"> + <div class="th cbi-section-table-cell"><%:Name%></div> + <div class="th cbi-section-table-cell"><%:Protocol%></div> + <div class="th cbi-section-table-cell"><%:External port%></div> + <div class="th cbi-section-table-cell"></div> + </div> + <div class="tr cbi-section-table-row"> + <div class="td cbi-section-table-cell" style="width:130px"> <input type="text" class="cbi-input-text" id="_newopen.name" name="_newopen.name" placeholder="<%:New input rule%>" /> - </td> - <td class="cbi-section-table-cell" style="width:110px"> + </div> + <div class="td cbi-section-table-cell" style="width:110px"> <select class="cbi-input-select" id="_newopen.proto" name="_newopen.proto"> <option value="tcp udp">TCP+UDP</option> <option value="tcp">TCP</option> <option value="udp">UDP</option> <option value="other"><%:Other...%></option> </select> - </td> - <td class="cbi-section-table-cell" style="width:110px"> + </div> + <div class="td cbi-section-table-cell" style="width:110px"> <input type="text" class="cbi-input-text" id="_newopen.extport" name="_newopen.extport" /> - </td> - <td class="cbi-section-table-cell left"> + </div> + <div class="td cbi-section-table-cell left"> <input type="submit" class="cbi-button cbi-button-add" name="_newopen.submit" value="<%:Add%>" /> - </td> - </tr> - </table> + </div> + </div> + </div> <% end %> <% if #zones > 1 then %> - <table class="cbi-section-table" style="margin-left:5px"> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell left" colspan="6"><br /><%:New forward rule%>:</th> - </tr> - <tr class="cbi-section-table-descr"> - <th class="cbi-section-table-cell"><%:Name%></th> - <th class="cbi-section-table-cell"><%:Source zone%></th> - <th class="cbi-section-table-cell"><%:Destination zone%></th> - <th class="cbi-section-table-cell"></th> - </tr> - <tr class="cbi-section-table-row"> - <td class="cbi-section-table-cell" style="width:130px"> + <div class="table cbi-section-table" style="margin-left:5px"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell left" colspan="6"><br /><%:New forward rule%>:</div> + </div> + <div class="tr cbi-section-table-descr"> + <div class="th cbi-section-table-cell"><%:Name%></div> + <div class="th cbi-section-table-cell"><%:Source zone%></div> + <div class="th cbi-section-table-cell"><%:Destination zone%></div> + <div class="th cbi-section-table-cell"></div> + </div> + <div class="tr cbi-section-table-row"> + <div class="td cbi-section-table-cell" style="width:130px"> <input type="text" class="cbi-input-text" id="_newfwd.name" name="_newfwd.name" placeholder="<%:New forward rule%>" /> - </td> - <td class="cbi-section-table-cell" style="width:110px"> + </div> + <div class="td cbi-section-table-cell" style="width:110px"> <select class="cbi-input-text" id="_newfwd.src" name="_newfwd.src"> <% local k, v; for k, v in ipairs(fw:get_zones()) do -%> <option<%=ifattr(v:name() == "wan", "selected", "selected")%> value="<%=v:name()%>"><%=v:name()%></option> <%- end %> </select> - </td> - <td class="cbi-section-table-cell" style="width:110px"> + </div> + <div class="td cbi-section-table-cell" style="width:110px"> <select class="cbi-input-text" id="_newfwd.dest" name="_newfwd.dest"> <% local k, v; for k, v in ipairs(fw:get_zones()) do -%> <option<%=ifattr(v:name() == "lan", "selected", "selected")%> value="<%=v:name()%>"><%=v:name()%></option> <%- end %> </select> - </td> - <td class="cbi-section-table-cell left"> + </div> + <div class="td cbi-section-table-cell left"> <input type="submit" class="cbi-button cbi-button-link" name="_newfwd.submit" value="<%:Add and edit...%>" /> - </td> - </tr> - </table> + </div> + </div> + </div> <% else %> <input type="submit" class="cbi-button cbi-button-add" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" value="<%:Add%>" /> <% end %> diff --git a/applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm b/applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm index 0a5913fc0..b2775cf69 100644 --- a/applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm +++ b/applications/luci-app-firewall/luasrc/view/firewall/cbi_addsnat.htm @@ -15,49 +15,49 @@ <div class="cbi-section-create cbi-tblsection-create"> <% if #zones > 1 then %> <br /> - <table class="cbi-section-table" style="width:700px; margin-left:5px"> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell left" colspan="6"><%:New source NAT%>:</th> - </tr> - <tr class="cbi-section-table-descr"> - <th class="cbi-section-table-cell"><%:Name%></th> - <th class="cbi-section-table-cell"><%:Source zone%></th> - <th class="cbi-section-table-cell"><%:Destination zone%></th> - <th class="cbi-section-table-cell"><%:To source IP%></th> - <th class="cbi-section-table-cell"><%:To source port%></th> - <th class="cbi-section-table-cell"></th> - </tr> - <tr class="cbi-section-table-row"> - <td class="cbi-section-table-cell"> + <div class="table cbi-section-table" style="width:700px; margin-left:5px"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell left" colspan="6"><%:New source NAT%>:</div> + </div> + <div class="tr cbi-section-table-descr"> + <div class="th cbi-section-table-cell"><%:Name%></div> + <div class="th cbi-section-table-cell"><%:Source zone%></div> + <div class="th cbi-section-table-cell"><%:Destination zone%></div> + <div class="th cbi-section-table-cell"><%:To source IP%></div> + <div class="th cbi-section-table-cell"><%:To source port%></div> + <div class="th cbi-section-table-cell"></div> + </div> + <div class="tr cbi-section-table-row"> + <div class="td cbi-section-table-cell"> <input type="text" class="cbi-input-text" id="_newsnat.name" name="_newsnat.name" placeholder="<%:New SNAT rule%>" /> - </td> - <td class="cbi-section-table-cell" style="width:110px"> + </div> + <div class="td cbi-section-table-cell" style="width:110px"> <select class="cbi-input-text" id="_newsnat.src" name="_newsnat.src"> <% local k, v; for k, v in ipairs(fw:get_zones()) do -%> <option<%=ifattr(v:name() == "lan", "selected", "selected")%> value="<%=v:name()%>"><%=v:name()%></option> <%- end %> </select> - </td> - <td class="cbi-section-table-cell" style="width:110px"> + </div> + <div class="td cbi-section-table-cell" style="width:110px"> <select class="cbi-input-text" id="_newsnat.dest" name="_newsnat.dest"> <% local k, v; for k, v in ipairs(fw:get_zones()) do -%> <option<%=ifattr(v:name() == "wan", "selected", "selected")%> value="<%=v:name()%>"><%=v:name()%></option> <%- end %> </select> - </td> - <td class="cbi-section-table-cell" style="width:110px"> + </div> + <div class="td cbi-section-table-cell" style="width:110px"> <input type="text" class="cbi-input-text" id="_newsnat.dip" name="_newsnat.dip" placeholder="<%:Do not rewrite%>" data-type="ip4addr" data-optional="true"<%= ifattr(#keys > 0, "data-choices", { keys, vals }) %> /> - </td> - <td class="cbi-section-table-cell" style="width:110px"> + </div> + <div class="td cbi-section-table-cell" style="width:110px"> <input type="text" class="cbi-input-text" id="_newsnat.dport" name="_newsnat.dport" placeholder="<%:Do not rewrite%>" data-type="portrange" data-optional="true" /> - </td> - <td class="cbi-section-table-cell"> + </div> + <div class="td cbi-section-table-cell"> <input type="submit" class="cbi-button cbi-button-link" name="_newsnat.submit" value="<%:Add and edit...%>" /> - </td> - </tr> - </table> + </div> + </div> + </div> <% else %> <input type="submit" class="cbi-button cbi-button-add" name="cbi.cts.<%=self.config%>.<%=self.sectiontype%>.<%=section%>" value="<%:Add%>" /> <% end %> diff --git a/applications/luci-app-firewall/po/ca/firewall.po b/applications/luci-app-firewall/po/ca/firewall.po index ff43427ee..2ccffca9a 100644 --- a/applications/luci-app-firewall/po/ca/firewall.po +++ b/applications/luci-app-firewall/po/ca/firewall.po @@ -130,6 +130,9 @@ msgstr "Habilita protecció contra la inundació SYN" msgid "Enable logging on this zone" msgstr "Habilita el registre d'aquesta zona" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "Adreça IP extern" @@ -181,6 +184,9 @@ msgstr "Des de %s en %s amb orígens %s i %s" msgid "General Settings" msgstr "Ajusts generals" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -337,6 +343,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -365,6 +374,9 @@ msgstr "Reescriu a l'origen %s" msgid "Rewrite to source %s, %s" msgstr "Reescriu als orígens %s, %s" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -380,6 +392,12 @@ msgstr "Port SNAT" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "Adreça IP d'origen" diff --git a/applications/luci-app-firewall/po/cs/firewall.po b/applications/luci-app-firewall/po/cs/firewall.po index caa7e1998..4cbf356d0 100644 --- a/applications/luci-app-firewall/po/cs/firewall.po +++ b/applications/luci-app-firewall/po/cs/firewall.po @@ -125,6 +125,9 @@ msgstr "Povolit ochranu proti SYN-flood" msgid "Enable logging on this zone" msgstr "Povolit logování v této oblasti" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "Vnější IP adresa" @@ -176,6 +179,9 @@ msgstr "Z %s v %s se zdrojovou %s a %s" msgid "General Settings" msgstr "Obecné nastavení" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -334,6 +340,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -362,6 +371,9 @@ msgstr "Přepsat na zdrojovou %s" msgid "Rewrite to source %s, %s" msgstr "Přepsat na zdrojovou %s, %s" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -377,6 +389,12 @@ msgstr "Port SNATu" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "Zdrojová IP adresa" diff --git a/applications/luci-app-firewall/po/de/firewall.po b/applications/luci-app-firewall/po/de/firewall.po index fcf8bec67..0ee6007dd 100644 --- a/applications/luci-app-firewall/po/de/firewall.po +++ b/applications/luci-app-firewall/po/de/firewall.po @@ -128,6 +128,9 @@ msgstr "Schutz vor SYN-flood-Attacken" msgid "Enable logging on this zone" msgstr "Protokollierung innerhalb der Zone aktivieren" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "Externe IP-Adresse" @@ -179,6 +182,9 @@ msgstr "Von %s in %s mit Quell-%s und %s" msgid "General Settings" msgstr "Allgemein" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -334,6 +340,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -362,6 +371,9 @@ msgstr "Schreibe um auf Quell-%s" msgid "Rewrite to source %s, %s" msgstr "Schreibe um auf Quell-%s, %s" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -377,6 +389,12 @@ msgstr "SNAT-Port" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "Quell-IP-Adresse" diff --git a/applications/luci-app-firewall/po/el/firewall.po b/applications/luci-app-firewall/po/el/firewall.po index 598927557..9ddd4c9db 100644 --- a/applications/luci-app-firewall/po/el/firewall.po +++ b/applications/luci-app-firewall/po/el/firewall.po @@ -126,6 +126,9 @@ msgstr "Προστασία SYN-flood" msgid "Enable logging on this zone" msgstr "" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "Εξωτερική διεύθυνση IP" @@ -177,6 +180,9 @@ msgstr "" msgid "General Settings" msgstr "Γενικές Ρυθμίσεις" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -327,6 +333,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -353,6 +362,9 @@ msgstr "" msgid "Rewrite to source %s, %s" msgstr "" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -368,6 +380,12 @@ msgstr "" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + #, fuzzy msgid "Source IP address" msgstr "Διεύθυνση MAC πηγής" diff --git a/applications/luci-app-firewall/po/en/firewall.po b/applications/luci-app-firewall/po/en/firewall.po index df1ed4a08..f0fe0b378 100644 --- a/applications/luci-app-firewall/po/en/firewall.po +++ b/applications/luci-app-firewall/po/en/firewall.po @@ -122,6 +122,9 @@ msgstr "Enable SYN-flood protection" msgid "Enable logging on this zone" msgstr "" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "" @@ -177,6 +180,9 @@ msgstr "" msgid "General Settings" msgstr "" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -327,6 +333,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -353,6 +362,9 @@ msgstr "" msgid "Rewrite to source %s, %s" msgstr "" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -368,6 +380,12 @@ msgstr "" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Generated from applications/luci-fw/luasrc/model/cbi/luci_fw/rrule.lua # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # diff --git a/applications/luci-app-firewall/po/es/firewall.po b/applications/luci-app-firewall/po/es/firewall.po index bae8b693d..000853e9b 100644 --- a/applications/luci-app-firewall/po/es/firewall.po +++ b/applications/luci-app-firewall/po/es/firewall.po @@ -129,6 +129,9 @@ msgstr "Activar protección a inundación-SYN" msgid "Enable logging on this zone" msgstr "Activar registro en esta zona" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "Dirección IP externa" @@ -180,6 +183,9 @@ msgstr "Desde %s en %s con origen %s y %s" msgid "General Settings" msgstr "Configuración general" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -336,6 +342,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -364,6 +373,9 @@ msgstr "Reescribir a origen %s" msgid "Rewrite to source %s, %s" msgstr "Reescribir a origen %s, %s" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -379,6 +391,12 @@ msgstr "Puerto SNAT" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "Dirección IP origen" diff --git a/applications/luci-app-firewall/po/fr/firewall.po b/applications/luci-app-firewall/po/fr/firewall.po index 281999b55..74c28b883 100644 --- a/applications/luci-app-firewall/po/fr/firewall.po +++ b/applications/luci-app-firewall/po/fr/firewall.po @@ -124,6 +124,9 @@ msgstr "Activer la protection contre le SYN-flood" msgid "Enable logging on this zone" msgstr "Activer les traces (logs) sur cette zone" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "Adresse IP externe" @@ -179,6 +182,9 @@ msgstr "" msgid "General Settings" msgstr "Paramètres généraux" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -332,6 +338,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -362,6 +371,9 @@ msgstr "" msgid "Rewrite to source %s, %s" msgstr "" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -377,6 +389,12 @@ msgstr "Port SNAT" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # applications/luci-fw/luasrc/model/cbi/luci_fw/rrule.lua # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # diff --git a/applications/luci-app-firewall/po/he/firewall.po b/applications/luci-app-firewall/po/he/firewall.po index 06952d490..0416661c2 100644 --- a/applications/luci-app-firewall/po/he/firewall.po +++ b/applications/luci-app-firewall/po/he/firewall.po @@ -119,6 +119,9 @@ msgstr "" msgid "Enable logging on this zone" msgstr "" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "" @@ -170,6 +173,9 @@ msgstr "" msgid "General Settings" msgstr "" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -317,6 +323,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -343,6 +352,9 @@ msgstr "" msgid "Rewrite to source %s, %s" msgstr "" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -358,6 +370,12 @@ msgstr "" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "" diff --git a/applications/luci-app-firewall/po/hu/firewall.po b/applications/luci-app-firewall/po/hu/firewall.po index 29aa32418..33a305ce8 100644 --- a/applications/luci-app-firewall/po/hu/firewall.po +++ b/applications/luci-app-firewall/po/hu/firewall.po @@ -126,6 +126,9 @@ msgstr "SYN-flood védelem engedélyezése" msgid "Enable logging on this zone" msgstr "Naplózás engeélyezése ezen a zónán" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "Külső IP cím" @@ -177,6 +180,9 @@ msgstr "%s felől %s-ben %s és %s forrással" msgid "General Settings" msgstr "Általános beállítások" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -338,6 +344,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -366,6 +375,9 @@ msgstr "Átírás %s forrásra" msgid "Rewrite to source %s, %s" msgstr "Átírás %s, %s forrásra" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -381,6 +393,12 @@ msgstr "SNAT port" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "Forrás IP cím" diff --git a/applications/luci-app-firewall/po/it/firewall.po b/applications/luci-app-firewall/po/it/firewall.po index 43b90a9e9..4808d1247 100644 --- a/applications/luci-app-firewall/po/it/firewall.po +++ b/applications/luci-app-firewall/po/it/firewall.po @@ -128,6 +128,9 @@ msgstr "Attiva protezione SYN-flood" msgid "Enable logging on this zone" msgstr "Attiva registro su questa zona" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "Indirizzo IP Esterno" @@ -179,6 +182,9 @@ msgstr "Da %s a %s con sorgente %s e %s" msgid "General Settings" msgstr "Opzioni Generali" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -334,6 +340,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "Riavvia Firewall" @@ -362,6 +371,9 @@ msgstr "Riscrivi alla sorgente %s" msgid "Rewrite to source %s, %s" msgstr "Riscrivi alla sorgente %s, %s" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -377,6 +389,12 @@ msgstr "Porta SNAT" msgid "Saturday" msgstr "Sabato" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Generated from applications/luci-fw/luasrc/model/cbi/luci_fw/rrule.lua # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # diff --git a/applications/luci-app-firewall/po/ja/firewall.po b/applications/luci-app-firewall/po/ja/firewall.po index 2d252797f..27109904b 100644 --- a/applications/luci-app-firewall/po/ja/firewall.po +++ b/applications/luci-app-firewall/po/ja/firewall.po @@ -3,14 +3,14 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-03-30 17:00+0200\n" -"PO-Revision-Date: 2018-01-15 14:56+0900\n" +"PO-Revision-Date: 2018-05-27 21:24+0900\n" "Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 2.0.5\n" +"X-Generator: Poedit 2.0.7\n" "Language-Team: \n" msgid "%s in %s" @@ -129,6 +129,9 @@ msgstr "SYN-Floodプロテクションを有効にする" msgid "Enable logging on this zone" msgstr "このゾーンのログ記録を有効にする" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "実験的な機能です。 QoS/SQM との完全な互換性はありません。" + msgid "External IP address" msgstr "外部IPアドレス" @@ -180,6 +183,9 @@ msgstr "送信元 %s (%s) , 送信元 %s, 送信元 %s" msgid "General Settings" msgstr "一般設定" +msgid "Hardware flow offloading" +msgstr "ハードウェア フローオフロード" + msgid "IP" msgstr "IP" @@ -343,6 +349,10 @@ msgstr "転送を拒否" msgid "Refuse input" msgstr "入力を拒否" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" +"ハードウェア NAT サポートが必要です。 mt7621 のみにおいて実装されています。" + msgid "Restart Firewall" msgstr "ファイアウォールの再起動" @@ -372,6 +382,9 @@ msgstr "送信元 %s にリライト" msgid "Rewrite to source %s, %s" msgstr "送信元 %s, %s にリライト" +msgid "Routing/NAT Offloading" +msgstr "ルーティング/NAT オフロード" + msgid "Rule is disabled" msgstr "ルールは無効です" @@ -387,6 +400,12 @@ msgstr "SNAT ポート" msgid "Saturday" msgstr "土曜日" +msgid "Software based offloading for routing/NAT" +msgstr "ルーティング/NAT のための、ソフトウェアベースのオフロードです。" + +msgid "Software flow offloading" +msgstr "ソフトウェア フローオフロード" + # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Generated from applications/luci-fw/luasrc/model/cbi/luci_fw/rrule.lua # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # diff --git a/applications/luci-app-firewall/po/ko/firewall.po b/applications/luci-app-firewall/po/ko/firewall.po index bfe94d04a..dd4f96197 100644 --- a/applications/luci-app-firewall/po/ko/firewall.po +++ b/applications/luci-app-firewall/po/ko/firewall.po @@ -127,6 +127,9 @@ msgstr "SYN-flood protection 활성화" msgid "Enable logging on this zone" msgstr "zone 의 logging 활성화" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "외부 IP 주소" @@ -178,6 +181,9 @@ msgstr "" msgid "General Settings" msgstr "" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -327,6 +333,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -353,6 +362,9 @@ msgstr "" msgid "Rewrite to source %s, %s" msgstr "" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -368,6 +380,12 @@ msgstr "" msgid "Saturday" msgstr "토요일" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "Source IP 주소" diff --git a/applications/luci-app-firewall/po/ms/firewall.po b/applications/luci-app-firewall/po/ms/firewall.po index c6ab19791..58aea1fd0 100644 --- a/applications/luci-app-firewall/po/ms/firewall.po +++ b/applications/luci-app-firewall/po/ms/firewall.po @@ -118,6 +118,9 @@ msgstr "" msgid "Enable logging on this zone" msgstr "" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "" @@ -169,6 +172,9 @@ msgstr "" msgid "General Settings" msgstr "" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -316,6 +322,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -342,6 +351,9 @@ msgstr "" msgid "Rewrite to source %s, %s" msgstr "" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -357,6 +369,12 @@ msgstr "" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "" diff --git a/applications/luci-app-firewall/po/no/firewall.po b/applications/luci-app-firewall/po/no/firewall.po index e9ecb2b63..2a13b6b3c 100644 --- a/applications/luci-app-firewall/po/no/firewall.po +++ b/applications/luci-app-firewall/po/no/firewall.po @@ -122,6 +122,9 @@ msgstr "Aktiver SYN-flood beskyttelse" msgid "Enable logging on this zone" msgstr "Aktiver logging av denne sonen" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "Ekstern IP adressse" @@ -174,6 +177,9 @@ msgstr "Fra %s i %s med kilde %s og %s" msgid "General Settings" msgstr "Generelle Innstillinger" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -333,6 +339,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -361,6 +370,9 @@ msgstr "Omskriv til kilde %s" msgid "Rewrite to source %s, %s" msgstr "Omskriv til kilde %s, %s" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -376,6 +388,12 @@ msgstr "SNAT port" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "Kilde IP adresse" diff --git a/applications/luci-app-firewall/po/pl/firewall.po b/applications/luci-app-firewall/po/pl/firewall.po index fe4806023..a08a1e560 100644 --- a/applications/luci-app-firewall/po/pl/firewall.po +++ b/applications/luci-app-firewall/po/pl/firewall.po @@ -129,6 +129,9 @@ msgstr "Włącz ochronę przed atakiem SYN-flood" msgid "Enable logging on this zone" msgstr "Włącz logowanie na tej strefy" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "Zewnętrzne adresy IP" @@ -183,6 +186,9 @@ msgstr "Z %s w %s ze źródłem %s i %s" msgid "General Settings" msgstr "Ustawienia ogólne" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -342,6 +348,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -374,6 +383,9 @@ msgstr "Przepisz do źródła %s" msgid "Rewrite to source %s, %s" msgstr "Przepisz do źródła %s, %s" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -389,6 +401,12 @@ msgstr "Port SNAT" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "Źródłowy adres IP" diff --git a/applications/luci-app-firewall/po/pt-br/firewall.po b/applications/luci-app-firewall/po/pt-br/firewall.po index b49adccdd..7da028bee 100644 --- a/applications/luci-app-firewall/po/pt-br/firewall.po +++ b/applications/luci-app-firewall/po/pt-br/firewall.po @@ -127,6 +127,9 @@ msgstr "Habilite proteção contra SYN-flood" msgid "Enable logging on this zone" msgstr "Habilite o registro nesta zona" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "Endereço IP externo" @@ -178,6 +181,9 @@ msgstr "Vindo de %s em %s com origem %s e %s" msgid "General Settings" msgstr "Configurações Gerais" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -337,6 +343,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "Reiniciar o Firewall" @@ -365,6 +374,9 @@ msgstr "Reescrever para a origem %s" msgid "Rewrite to source %s, %s" msgstr "Reescrever para a origem %s, %s" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -380,6 +392,12 @@ msgstr "Porta da SNAT" msgid "Saturday" msgstr "Sábado" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "Endereço IP de origem" diff --git a/applications/luci-app-firewall/po/pt/firewall.po b/applications/luci-app-firewall/po/pt/firewall.po index 29a7c7c2c..543489e1a 100644 --- a/applications/luci-app-firewall/po/pt/firewall.po +++ b/applications/luci-app-firewall/po/pt/firewall.po @@ -128,6 +128,9 @@ msgstr "Ativar a Proteção SYN-flood" msgid "Enable logging on this zone" msgstr "Ativar registo nesta zona" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "Endereço IP externo" @@ -179,6 +182,9 @@ msgstr "De %s em %s com origem %s e %s" msgid "General Settings" msgstr "Definições Gerais" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -339,6 +345,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -365,6 +374,9 @@ msgstr "Re-escrever para a origem %s" msgid "Rewrite to source %s, %s" msgstr "Re-escrever para a origem %s, %s" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -380,6 +392,12 @@ msgstr "Porta SNAT" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "Endereço IP de origem" diff --git a/applications/luci-app-firewall/po/ro/firewall.po b/applications/luci-app-firewall/po/ro/firewall.po index cc4d7a62a..937efe722 100644 --- a/applications/luci-app-firewall/po/ro/firewall.po +++ b/applications/luci-app-firewall/po/ro/firewall.po @@ -123,6 +123,9 @@ msgstr "Activează protecţia SYN-flood" msgid "Enable logging on this zone" msgstr "Activeaza log in aceasta zona" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "Adresă IP externă" @@ -174,6 +177,9 @@ msgstr "" msgid "General Settings" msgstr "Setari generale" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -321,6 +327,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -347,6 +356,9 @@ msgstr "" msgid "Rewrite to source %s, %s" msgstr "" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -362,6 +374,12 @@ msgstr "" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "Sursă adresă IP" diff --git a/applications/luci-app-firewall/po/ru/firewall.po b/applications/luci-app-firewall/po/ru/firewall.po index b8611af78..528756d7e 100644 --- a/applications/luci-app-firewall/po/ru/firewall.po +++ b/applications/luci-app-firewall/po/ru/firewall.po @@ -130,6 +130,9 @@ msgstr "Включить защиту<br />от SYN-flood атак" msgid "Enable logging on this zone" msgstr "Включить журналирование в этой зоне" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "Внешний IP-адрес" @@ -181,6 +184,9 @@ msgstr "Из %s в %s с источниками %s и %s" msgid "General Settings" msgstr "Основные настройки" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "IP-адрес" @@ -346,6 +352,9 @@ msgstr "Сбрасывать перенаправление" msgid "Refuse input" msgstr "Сбрасывать входящий трафик" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "Перезапустить межсетевой экран" @@ -374,6 +383,9 @@ msgstr "Перенаправлять к источнику %s" msgid "Rewrite to source %s, %s" msgstr "Перенаправлять к источнику %s, %s" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "Правило отключено" @@ -389,6 +401,12 @@ msgstr "Порт SNAT" msgid "Saturday" msgstr "Суббота" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "IP-адрес источника" diff --git a/applications/luci-app-firewall/po/sk/firewall.po b/applications/luci-app-firewall/po/sk/firewall.po index a185625a0..a382bde7d 100644 --- a/applications/luci-app-firewall/po/sk/firewall.po +++ b/applications/luci-app-firewall/po/sk/firewall.po @@ -119,6 +119,9 @@ msgstr "" msgid "Enable logging on this zone" msgstr "" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "" @@ -170,6 +173,9 @@ msgstr "" msgid "General Settings" msgstr "" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -317,6 +323,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -343,6 +352,9 @@ msgstr "" msgid "Rewrite to source %s, %s" msgstr "" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -358,6 +370,12 @@ msgstr "" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "" diff --git a/applications/luci-app-firewall/po/sv/firewall.po b/applications/luci-app-firewall/po/sv/firewall.po index c98eafa09..d5f6a2d8a 100644 --- a/applications/luci-app-firewall/po/sv/firewall.po +++ b/applications/luci-app-firewall/po/sv/firewall.po @@ -120,6 +120,9 @@ msgstr "" msgid "Enable logging on this zone" msgstr "Aktivera loggning i den här zonen" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "Extern IP-adress" @@ -171,6 +174,9 @@ msgstr "Från %s i %s med källa %s och %s" msgid "General Settings" msgstr "Generella inställningar" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -323,6 +329,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "Starta om brandvägg" @@ -349,6 +358,9 @@ msgstr "Skriv om igen till källan %s" msgid "Rewrite to source %s, %s" msgstr "" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -364,6 +376,12 @@ msgstr "SNAT-port" msgid "Saturday" msgstr "Lördag" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "IP-adress för källa" diff --git a/applications/luci-app-firewall/po/templates/firewall.pot b/applications/luci-app-firewall/po/templates/firewall.pot index 62c4a2e84..6ff4c3ca0 100644 --- a/applications/luci-app-firewall/po/templates/firewall.pot +++ b/applications/luci-app-firewall/po/templates/firewall.pot @@ -112,6 +112,9 @@ msgstr "" msgid "Enable logging on this zone" msgstr "" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "" @@ -163,6 +166,9 @@ msgstr "" msgid "General Settings" msgstr "" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -310,6 +316,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -336,6 +345,9 @@ msgstr "" msgid "Rewrite to source %s, %s" msgstr "" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -351,6 +363,12 @@ msgstr "" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "" diff --git a/applications/luci-app-firewall/po/tr/firewall.po b/applications/luci-app-firewall/po/tr/firewall.po index f23d10aaf..1dd1e6f9c 100644 --- a/applications/luci-app-firewall/po/tr/firewall.po +++ b/applications/luci-app-firewall/po/tr/firewall.po @@ -119,6 +119,9 @@ msgstr "" msgid "Enable logging on this zone" msgstr "" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "" @@ -170,6 +173,9 @@ msgstr "" msgid "General Settings" msgstr "" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -317,6 +323,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -343,6 +352,9 @@ msgstr "" msgid "Rewrite to source %s, %s" msgstr "" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -358,6 +370,12 @@ msgstr "" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "" diff --git a/applications/luci-app-firewall/po/uk/firewall.po b/applications/luci-app-firewall/po/uk/firewall.po index de72ec6e0..86ff65edf 100644 --- a/applications/luci-app-firewall/po/uk/firewall.po +++ b/applications/luci-app-firewall/po/uk/firewall.po @@ -127,6 +127,9 @@ msgstr "Увімкнути захист від SYN-flood" msgid "Enable logging on this zone" msgstr "Увімкнути реєстрування у цій зоні" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "Зовнішня IP-адреса" @@ -178,6 +181,9 @@ msgstr "%s у %s з вихідним %s та %s" msgid "General Settings" msgstr "Загальні настройки" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -337,6 +343,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -365,6 +374,9 @@ msgstr "перезапис на вихідний %s" msgid "Rewrite to source %s, %s" msgstr "перезапис на вихідний %s, %s" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -380,6 +392,12 @@ msgstr "Порт SNAT" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "IP-адреса джерела" diff --git a/applications/luci-app-firewall/po/vi/firewall.po b/applications/luci-app-firewall/po/vi/firewall.po index 24452ff1c..bd33afcd0 100644 --- a/applications/luci-app-firewall/po/vi/firewall.po +++ b/applications/luci-app-firewall/po/vi/firewall.po @@ -126,6 +126,9 @@ msgstr "SYN-flood bảo vệ " msgid "Enable logging on this zone" msgstr "" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "" @@ -177,6 +180,9 @@ msgstr "" msgid "General Settings" msgstr "" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -327,6 +333,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "" @@ -353,6 +362,9 @@ msgstr "" msgid "Rewrite to source %s, %s" msgstr "" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -368,6 +380,12 @@ msgstr "" msgid "Saturday" msgstr "" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + #, fuzzy msgid "Source IP address" msgstr "Đỉa chỉ MAC nguồn" diff --git a/applications/luci-app-firewall/po/zh-cn/firewall.po b/applications/luci-app-firewall/po/zh-cn/firewall.po index 9e9c64d67..46da547c0 100644 --- a/applications/luci-app-firewall/po/zh-cn/firewall.po +++ b/applications/luci-app-firewall/po/zh-cn/firewall.po @@ -124,6 +124,9 @@ msgstr "启用 SYN-flood 防御" msgid "Enable logging on this zone" msgstr "启用此区域的日志记录" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "实验特性。与 QoS/SQM 不完全兼容。" + msgid "External IP address" msgstr "外部 IP 地址" @@ -175,6 +178,9 @@ msgstr "来自 %s 位于 %s 源端口 %s 源 MAC %s" msgid "General Settings" msgstr "基本设置" +msgid "Hardware flow offloading" +msgstr "硬件流量卸载" + msgid "IP" msgstr "IP" @@ -323,6 +329,9 @@ msgstr "拒绝转发" msgid "Refuse input" msgstr "拒绝入站" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "需要硬件 NAT 支持。目前 mt7621 已实现" + msgid "Restart Firewall" msgstr "重启防火墙" @@ -349,6 +358,9 @@ msgstr "源地址改写成 %s" msgid "Rewrite to source %s, %s" msgstr "源地址改写成 %s, %s" +msgid "Routing/NAT Offloading" +msgstr "Routing/NAT 卸载" + msgid "Rule is disabled" msgstr "规则已禁用" @@ -364,6 +376,12 @@ msgstr "SNAT 端口" msgid "Saturday" msgstr "星期六" +msgid "Software based offloading for routing/NAT" +msgstr "基于软件的 Routing/NAT 卸载" + +msgid "Software flow offloading" +msgstr "软件流量卸载" + msgid "Source IP address" msgstr "源 IP 地址" diff --git a/applications/luci-app-firewall/po/zh-tw/firewall.po b/applications/luci-app-firewall/po/zh-tw/firewall.po index afc9c4e33..1fbe970dd 100644 --- a/applications/luci-app-firewall/po/zh-tw/firewall.po +++ b/applications/luci-app-firewall/po/zh-tw/firewall.po @@ -124,6 +124,9 @@ msgstr "啟用 SYN-flood 防禦" msgid "Enable logging on this zone" msgstr "啟用此區域的日誌記錄" +msgid "Experimental feature. Not fully compatible with QoS/SQM." +msgstr "" + msgid "External IP address" msgstr "外部 IP 位址" @@ -175,6 +178,9 @@ msgstr "來自 %s 位於 %s 源埠 %s 源 MAC %s" msgid "General Settings" msgstr "基本設定" +msgid "Hardware flow offloading" +msgstr "" + msgid "IP" msgstr "" @@ -322,6 +328,9 @@ msgstr "" msgid "Refuse input" msgstr "" +msgid "Requires hardware NAT support. Implemented at least for mt7621" +msgstr "" + msgid "Restart Firewall" msgstr "重啟防火牆" @@ -348,6 +357,9 @@ msgstr "源位址改寫成 %s" msgid "Rewrite to source %s, %s" msgstr "源位址改寫成 %s, %s" +msgid "Routing/NAT Offloading" +msgstr "" + msgid "Rule is disabled" msgstr "" @@ -363,6 +375,12 @@ msgstr "SNAT 埠" msgid "Saturday" msgstr "星期六" +msgid "Software based offloading for routing/NAT" +msgstr "" + +msgid "Software flow offloading" +msgstr "" + msgid "Source IP address" msgstr "源 IP 位址" diff --git a/applications/luci-app-ltqtapi/luasrc/view/telephony_status.htm b/applications/luci-app-ltqtapi/luasrc/view/telephony_status.htm index d861ef9fc..2fd7168bd 100644 --- a/applications/luci-app-ltqtapi/luasrc/view/telephony_status.htm +++ b/applications/luci-app-ltqtapi/luasrc/view/telephony_status.htm @@ -5,13 +5,12 @@ XHR.poll(5, '<%=url('admin/telephony/status')%>', null, var tb = document.getElementById('telephony_status_table'); if (st && tb) { - tb.deleteRow(1); - var tr = tb.insertRow(-1); - tr.className = 'cbi-section-table-row cbi-rowstyle-1'; - - tr.insertCell(-1).innerHTML = st.status; - tr.insertCell(-1).innerHTML = st.line1; - tr.insertCell(-1).innerHTML = st.line2; + tb.removeChild(tb.firstChild); + tb.appendChild(E('<div class="tr cbi-section-table-row cbi-rowstyle-1">', [ + E('<div class="td">', st.status), + E('<div class="td">', st.line1), + E('<div class="td">', st.line2) + ])); } } ); @@ -19,14 +18,14 @@ XHR.poll(5, '<%=url('admin/telephony/status')%>', null, <fieldset class="cbi-section"> <legend><%:Current Telephony State%></legend> - <table class="cbi-section-table" id="telephony_status_table"> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell"><%:Uplink%></th> - <th class="cbi-section-table-cell"><%:Port1%></th> - <th class="cbi-section-table-cell"><%:Port2%></th> - </tr> - <tr class="cbi-section-table-row"> - <td colspan="5"><em><br /><%:Collecting data...%></em></td> - </tr> - </table> + <div class="table cbi-section-table" id="telephony_status_table"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell"><%:Uplink%></div> + <div class="th cbi-section-table-cell"><%:Port1%></div> + <div class="th cbi-section-table-cell"><%:Port2%></div> + </div> + <div class="tr cbi-section-table-row"> + <div class="td" colspan="5"><em><br /><%:Collecting data...%></em></div> + </div> + </div> </fieldset> diff --git a/applications/luci-app-mwan3/po/ja/mwan3.po b/applications/luci-app-mwan3/po/ja/mwan3.po index 6ee351c4c..a5826926d 100644 --- a/applications/luci-app-mwan3/po/ja/mwan3.po +++ b/applications/luci-app-mwan3/po/ja/mwan3.po @@ -7,7 +7,7 @@ msgstr "" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.3\n" +"X-Generator: Poedit 2.0.7\n" "Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n" "Plural-Forms: nplurals=1; plural=0;\n" "Language: ja\n" @@ -43,6 +43,9 @@ msgstr "利用可能な値: 1-256。空欄の場合のデフォルトは1です msgid "Check IP rules" msgstr "IP ルールのチェック" +msgid "Check link quality" +msgstr "リンク品質のチェック" + msgid "Check routing table" msgstr "ルーティング テーブルのチェック" @@ -56,7 +59,7 @@ msgid "Destination port" msgstr "宛先ポート" msgid "Detail" -msgstr "" +msgstr "詳細" msgid "Diagnostics" msgstr "診断機能" @@ -77,7 +80,7 @@ msgid "Enter value in hex, starting with <code>0x</code>" msgstr "<code>0x</code> で始まる16進数の値を入力してください。" msgid "Execute" -msgstr "" +msgstr "実行" msgid "Expect interface state on up event" msgstr "Up イベント時に予想されるインターフェースの状態です。" @@ -89,10 +92,12 @@ msgid "Firewall mask" msgstr "ファイアウォール マスク" msgid "Flush conntrack table" -msgstr "" +msgstr "conntrack テーブルのクリア" msgid "Flush global firewall conntrack table on interface events" msgstr "" +"インターフェース イベント時にグローバル ファイアウォール conntrack テーブルを" +"クリアします。" msgid "Globals" msgstr "全般" @@ -104,7 +109,7 @@ msgid "Hotplug ifup" msgstr "ホットプラグ ifup" msgid "INFO: MWAN not running" -msgstr "" +msgstr "情報: MWAN は実行されていません" msgid "IPset" msgstr "IPset" @@ -157,28 +162,28 @@ msgid "Local source interface" msgstr "" msgid "MWAN - Globals" -msgstr "" +msgstr "MWAN - グローバル" msgid "MWAN - Interfaces" -msgstr "" +msgstr "MWAN - インターフェース" msgid "MWAN - Members" -msgstr "" +msgstr "MWAN - メンバー" msgid "MWAN - Notification" -msgstr "" +msgstr "MWAN - 通知" msgid "MWAN - Policies" -msgstr "" +msgstr "MWAN - ポリシー" msgid "MWAN - Rules" -msgstr "" +msgstr "MWAN - ルール" msgid "MWAN Interface Configuration - %s" msgstr "MWAN インターフェース設定 - %s" msgid "MWAN Interfaces" -msgstr "" +msgstr "MWAN インターフェース" msgid "MWAN Member Configuration - %s" msgstr "MWAN メンバー設定 - %s" @@ -190,13 +195,13 @@ msgid "MWAN Rule Configuration - %s" msgstr "MWAN ルール設定 - %s" msgid "MWAN Status - Detail" -msgstr "" +msgstr "MWAN ステータス - 詳細" msgid "MWAN Status - Diagnostics" -msgstr "" +msgstr "MWAN ステータス - 診断" msgid "MWAN Status - Troubleshooting" -msgstr "" +msgstr "MWAN ステータス - トラブルシューティング" msgid "" "MWAN supports up to 252 physical and/or logical interfaces<br />MWAN " @@ -214,6 +219,12 @@ msgstr "" "スは使用できません。<br />インターフェースには、設定済みのメンバーやポリ" "シー、ルールと同じ名前を使用することはできません。" +msgid "Max packet latency [ms]" +msgstr "最大パケットレイテンシ [ms]" + +msgid "Max packet loss [%]" +msgstr "最大パケットロス [%]" + msgid "" "May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or " "as a portrange (eg \"1024:2048\") without quotes" @@ -246,6 +257,12 @@ msgstr "アサイン済みメンバー" msgid "Metric" msgstr "メトリック" +msgid "Min packet latency [ms]" +msgstr "最小パケットレイテンシ [ms]" + +msgid "Min packet loss [%]" +msgstr "最小パケットロス [%]" + msgid "" "Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/" "youtube.com/youtube\")" @@ -260,7 +277,7 @@ msgid "No MWAN interfaces found" msgstr "MWAN インターフェースが見つかりません" msgid "Notification" -msgstr "" +msgstr "通知" msgid "Offline" msgstr "オフライン" @@ -342,6 +359,16 @@ msgid "" "z, 0-9, _ and no spaces<br />Rules may not share the same name as configured " "interfaces, members or policies" msgstr "" +"ルールは、どのトラフィックが特定の MWAN ポリシーを使用するかを指定します<br /" +">ルールは IP アドレスやポート、プロトコルに基づいています<br />ルールは上から" +"下へマッチングが行われます<br />合致したルールより下のルールは無視されます" +"<br />いずれのルールにもマッチしないトラフィックは、メインのルーティングテー" +"ブルを使用してルーティングされます<br />既知(デフォルト以外)のネットワーク" +"へのトラフィックは、メインのルーティングテーブルによって制御されます<br />ト" +"ラフィックがルールに合致しても、全 WAN インターフェースが down の場合は " +"blackhole 状態となります<br />名前は A-Z, a-z, 0-9, _ を含むことができます" +"が、スペースは使用できません<br />ルールは、設定済みのインターフェースやメン" +"バー、ポリシーと同じ名前を使用することはできません。" msgid "Seconds. Acceptable values: 1-1000000. Defaults to 600 if not set" msgstr "秒。利用可能な値: 1-1000000。空欄の場合のデフォルト値は600です。" @@ -362,7 +389,7 @@ msgid "Supports CIDR notation (eg \"192.168.100.0/24\") without quotes" msgstr "CIDR 表記のサポート(例: \"192.168.100.0/24\")" msgid "Task" -msgstr "" +msgstr "タスク" msgid "There are currently %d of %d supported interfaces configured" msgstr "現在、%d 個中 %d 個のサポートされたインターフェースが設定済みです。" @@ -397,6 +424,21 @@ msgid "" "Physical device name which interface went up or down (e.g. \"eth0\" or " "\"wwan0\")<br /><br />" msgstr "" +"このセクションでは、 \"/etc/mwan3.user\" の内容を変更することができます。" +"<br />このファイルも sysupgrade の際に保持されます。<br /><br />注意: <br />" +"このファイルはシェルスクリプトとして解釈されます。<br />最初の行は "#!/" +"bin/sh" である必要があります(クォーテーション不要)。<br /># で始まる行" +"はコメントであり、実行されません。<br />mwan3 のカスタム動作をここに入力して" +"ください。<br />これらは、mwan3 で有効なインターフェースの<br /> netifd " +"hotplug インターフェース イベント毎に実行されます。<br /><br />このスクリプト" +"に受け渡される主に3つの環境変数が利用できます。<br /><br />$ACTION<br />* " +"\"ifup\" は netifd と mwan3track により呼び出されます<br />* \"ifdown\" は " +"netifd と mwan3track により呼び出されます<br />* \"connected\" はトラッキング" +"が成功した際に mwan3track にのみにより呼び出されます<br />* \"disconnected\" " +"は トラッキングが失敗した際に mwan3track のみにより呼び出されます<br />" +"$INTERFACE up または down したインターフェース名(例: \"wan\" や \"wwan\")" +"<br />$DEVICE up または down したインターフェースの物理デバイス名(例: " +"\"eth0\" や \"wwan0\")<br /><br />" msgid "Tracking hostname or IP address" msgstr "追跡ホスト名または IP アドレス" @@ -426,36 +468,42 @@ msgstr "" "インターフェースの IP アドレスが使用されます。" msgid "View the content of /etc/protocols for protocol description" -msgstr "" +msgstr "プロトコルの説明については、 /etc/protocols の内容を確認してください" msgid "WARNING: %d interfaces are configured exceeding the maximum of %d!" msgstr "" "警告: %d 個のインターフェースが、最大個数の %d 個 を超えて設定されています!" msgid "WARNING: Interface %s are not found in /etc/config/network" -msgstr "" +msgstr "警告: インターフェース %s が /etc/config/network に見つかりません" msgid "WARNING: Interface %s has a duplicate metric %s configured" -msgstr "" +msgstr "警告: インターフェース %s に重複するメトリック %s が設定されています" msgid "" "WARNING: Interface %s has a higher reliability requirement than tracking " "hosts (%d)" msgstr "" +"警告: インターフェース %s は追跡ホスト数 (%d) よりも高い追跡信頼性の値が設定" +"されています" msgid "WARNING: Interface %s has no default route in the main routing table" msgstr "" +"警告: インターフェース %s はメインのルーティング テーブル内でデフォルトルート" +"がありません" msgid "WARNING: Policy %s has exceeding the maximum name of 15 characters" -msgstr "" +msgstr "警告: ポリシー %s の名前は15文字の最大文字数を超えています" msgid "" "WARNING: Rule %s have a port configured with no or improper protocol " "specified!" msgstr "" +"警告: ルール %s はプロトコル指定が不適切、または無いポートが設定されていま" +"す!" msgid "Waiting for command to complete..." -msgstr "" +msgstr "コマンドを実行中です..." msgid "Weight" msgstr "ウエイト" @@ -489,289 +537,3 @@ msgstr "never" msgid "unreachable (reject)" msgstr "unreachable (reject)" - -#~ msgid "Online (tracking active)" -#~ msgstr "オンライン(追跡実行中)" - -#~ msgid "MWAN Interface Live Status" -#~ msgstr "MWAN インターフェース Live ステータス" - -#~ msgid "Online (tracking off)" -#~ msgstr "オンライン(追跡オフ)" - -#~ msgid "" -#~ "This section allows you to modify the content of \"/etc/mwan3.user\".<br /" -#~ ">The file is also preserved during sysupgrade.<br /><br />Notes:<br /" -#~ ">This file is interpreted as a shell script.<br />The first line of the " -#~ "script must be "#!/bin/sh" without quotes.<br />Lines beginning " -#~ "with # are comments and are not executed.<br />Put your custom mwan3 " -#~ "action here, they will<br />be executed with each netifd hotplug " -#~ "interface event<br />on interfaces for which mwan3 is enabled.<br /><br /" -#~ ">There are three main environment variables that are passed to this " -#~ "script.<br /><br />$ACTION Either \"ifup\" or \"ifdown\"<br />$INTERFACE " -#~ "Name of the interface which went up or down (e.g. \"wan\" or \"wwan" -#~ "\")<br />$DEVICE Physical device name which interface went up or down (e." -#~ "g. \"eth0\" or \"wwan0\")<br /><br />" -#~ msgstr "" -#~ "このセクションでは、 \"/etc/mwan3.user\" の内容を変更することができます。" -#~ "<br />このファイルは、 sysupgrade 時に保持されます。<br /><br />注意: " -#~ "<br />このファイルは、シェルスクリプトとして解釈されます。<br />スクリプト" -#~ "の1行目は、"#!bin/sh" である必要があります(クォーテーション不" -#~ "要)。<br /># で始まる行はコメントであり、実行されません。<br />mwan3 のカ" -#~ "スタム動作をここに入力してください。これらは、 mwan3 が有効なインター" -#~ "フェースの<br />netifd ホットプラグ インターフェース イベント毎に実行され" -#~ "ます。<br /><br />主に3つの環境変数が利用可能です。<br /><br />$ACTION - " -#~ "\"ifup\" および \"ifdown\"<br />$INTERFACE - Up または Down が行われたイン" -#~ "ターフェース名(例: \"wan\" や \"wwan\")<br />$DEVICE - Up または Down が" -#~ "行われた物理デバイス名(例: \"eth0\" や \"wwan0\")<br /><br />" - -#~ msgid "Currently Configured Interfaces" -#~ msgstr "設定済みインターフェース" - -#~ msgid "Currently Configured Members" -#~ msgstr "設定済みメンバー" - -#~ msgid "Currently Configured Policies" -#~ msgstr "設定済みポリシー" - -#~ msgid "Detailed Status" -#~ msgstr "詳細ステータス" - -#~ msgid "Diagnostic Results" -#~ msgstr "診断結果" - -#~ msgid "Error collecting troubleshooting information" -#~ msgstr "トラブルシューティング情報の収集エラー" - -#~ msgid "Errors" -#~ msgstr "エラー" - -#~ msgid "Globals mwan3 options" -#~ msgstr "MWAN3 全般オプション" - -#~ msgid "Interface Status" -#~ msgstr "インターフェース ステータス" - -#~ msgid "Last 50 MWAN systemlog entries. Newest entries sorted at the top :" -#~ msgstr "直近の MWAN システムログ(50行)です。一番上が最新の行です:" - -#~ msgid "MWAN Detailed Status" -#~ msgstr "MWAN 詳細ステータス" - -#~ msgid "MWAN Interface Configuration" -#~ msgstr "MWAN インターフェース設定" - -#~ msgid "MWAN Interface Diagnostics" -#~ msgstr "MWAN インターフェース診断" - -#~ msgid "MWAN Interface Systemlog" -#~ msgstr "MWAN インターフェース システムログ" - -#~ msgid "MWAN Member Configuration" -#~ msgstr "MWAN メンバー設定" - -#~ msgid "MWAN Policy Configuration" -#~ msgstr "MWAN ポリシー設定" - -#~ msgid "MWAN Rule Configuration" -#~ msgstr "MWAN ルール設定" - -#~ msgid "MWAN Service Control" -#~ msgstr "MWAN サービス コントロール" - -#~ msgid "No MWAN systemlog history found" -#~ msgstr "MWAN システムログの履歴が見つかりません" - -#~ msgid "No detailed status information available" -#~ msgstr "詳細ステータス情報は利用できません" - -#~ msgid "No diagnostic results returned" -#~ msgstr "診断結果がありません" - -#~ msgid "No protocol specified" -#~ msgstr "プロトコルが設定されていません" - -#~ msgid "Restart MWAN" -#~ msgstr "MWAN の再起動" - -#~ msgid "" -#~ "Rules specify which traffic will use a particular MWAN policy based on IP " -#~ "address, port or protocol<br />Rules are matched from top to bottom. " -#~ "Rules below a matching rule are ignored. Traffic not matching any rule is " -#~ "routed using the main routing table<br />Traffic destined for known " -#~ "(other than default) networks is handled by the main routing table. " -#~ "Traffic matching a rule, but all WAN interfaces for that policy are down " -#~ "will be blackholed<br />Names may contain characters A-Z, a-z, 0-9, _ and " -#~ "no spaces<br />Rules may not share the same name as configured " -#~ "interfaces, members or policies" -#~ msgstr "" -#~ "ルールは IP アドレスやポート、プロトコルを基に、トラフィックがどの MWAN ポ" -#~ "リシーを使用するかを設定します。<br />ルールは上から下へマッチングが行わ" -#~ "れ、合致したルールより下のルールは無視されます。全てのルールに合致しないト" -#~ "ラフィックは、メインのルーティング テーブルを使用してルートが決定されま" -#~ "す。<br />既知(デフォルト以外)のネットワークへのトラフィックは、メインの" -#~ "ルーティング テーブルによって制御されます。ルールに合致したトラフィックで" -#~ "も、当該ポリシーの全 WAN インターフェースが Down 状態の場合は blackhole 状" -#~ "態となります。<br />名前は A-Z, a-z, 0-9, _ を含むことができますが、スペー" -#~ "スは使用できません。<br />ルールは、設定済みのインターフェースやメンバー、" -#~ "ポリシーと同じ名前を使用することはできません。" - -#~ msgid "Start MWAN" -#~ msgstr "MWAN の起動" - -#~ msgid "Stop MWAN" -#~ msgstr "MWAN の停止" - -#~ msgid "Tracking IP" -#~ msgstr "追跡 IP" - -#~ msgid "Traffic Rules" -#~ msgstr "トラフィック ルール" - -#~ msgid "Troubleshooting Data" -#~ msgstr "トラブルシューティング データ" - -#~ msgid "View the contents of /etc/protocols for protocol descriptions" -#~ msgstr "" -#~ "プロトコルの説明については、 /etc/protocols の内容を確認してください。" - -#~ msgid "" -#~ "WARNING: Some interfaces are configured incorrectly or not at all in /etc/" -#~ "config/network!" -#~ msgstr "" -#~ "警告: 設定を誤っているか、もしくは完全に設定されていないインターフェースが" -#~ "あります!" - -#~ msgid "" -#~ "WARNING: Some interfaces have a higher reliability requirement than there " -#~ "are tracking IP addresses!" -#~ msgstr "" -#~ "警告: 追跡 IP アドレスの個数より大きい追跡信頼性の値が設定されたインター" -#~ "フェースがあります!" - -#~ msgid "" -#~ "WARNING: Some interfaces have duplicate metrics configured in /etc/config/" -#~ "network!" -#~ msgstr "" -#~ "警告: /etc/config/network で、重複するメトリックを設定されているインター" -#~ "フェースがあります!" - -#~ msgid "" -#~ "WARNING: Some interfaces have no default route in the main routing table!" -#~ msgstr "" -#~ "警告: メインのルーティング テーブルで、デフォルト ルートを設定されていない" -#~ "インターフェースがあります!" - -#~ msgid "" -#~ "WARNING: Some interfaces have no metric configured in /etc/config/network!" -#~ msgstr "" -#~ "警告: /etc/config/network で、メトリックを設定されていないインターフェース" -#~ "があります!" - -#~ msgid "" -#~ "WARNING: Some policies have names exceeding the maximum of 15 characters!" -#~ msgstr "" -#~ "警告: 最大文字数の 15 文字を超える名前が設定されているポリシーがあります!" - -#~ msgid "" -#~ "WARNING: Some rules have a port configured with no or improper protocol " -#~ "specified! Please configure a specific protocol!" -#~ msgstr "" -#~ "警告: 不適切なプロトコルが指定されている、または何も指定されていないポート" -#~ "を設定されたルールがあります!プロトコルを指定し直してください!" - -#~ msgid "" -#~ "WARNING: This and other interfaces have duplicate metrics configured in /" -#~ "etc/config/network!" -#~ msgstr "" -#~ "警告: これと他のインターフェースで重複するメトリックが /etc/config/" -#~ "network に設定されています!" - -#~ msgid "" -#~ "WARNING: This interface has a higher reliability requirement than there " -#~ "are tracking IP addresses!" -#~ msgstr "" -#~ "警告: このインターフェースは、追跡 IP アドレスの個数より大きい追跡信頼性の" -#~ "値を設定されています!" - -#~ msgid "" -#~ "WARNING: This interface has no default route in the main routing table!" -#~ msgstr "" -#~ "警告: このインターフェースは、メインのルーティング テーブルにデフォルト " -#~ "ルートが設定されていません!" - -#~ msgid "" -#~ "WARNING: This interface has no metric configured in /etc/config/network!" -#~ msgstr "" -#~ "警告: このインターフェースは、 /etc/config/network でメトリックが設定され" -#~ "ていません!" - -#~ msgid "" -#~ "WARNING: This interface is configured incorrectly or not at all in /etc/" -#~ "config/network!" -#~ msgstr "" -#~ "警告: このインターフェースは /etc/config/network で設定が誤っているか、も" -#~ "しくは完全に設定されていません!" - -#~ msgid "" -#~ "WARNING: This policy's name is %d characters exceeding the maximum of 15!" -#~ msgstr "" -#~ "警告: このポリシーの名前は、最大文字数 15 文字を超える %d 文字が設定されて" -#~ "います!" - -#~ msgid "" -#~ "WARNING: This rule is incorrectly configured with no or improper protocol " -#~ "specified! Please configure a specific protocol!" -#~ msgstr "" -#~ "警告: このルールは不適切なプロトコルが指定されているか、または何も指定され" -#~ "ていません!プロトコルを指定し直してください!" - -#~ msgid "Waiting for MWAN to %s..." -#~ msgstr "MWAN の %s を待っています..." - -#~ msgid "Waiting for diagnostic results..." -#~ msgstr "診断結果を待っています..." - -#~ msgid "restart" -#~ msgstr "再起動" - -#~ msgid "start" -#~ msgstr "起動" - -#~ msgid "stop" -#~ msgstr "停止" - -#~ msgid "Advanced" -#~ msgstr "詳細設定" - -#~ msgid "Configuration" -#~ msgstr "設定" - -#~ msgid "Hotplug Script" -#~ msgstr "ホットプラグ スクリプト" - -#~ msgid "MWAN Config" -#~ msgstr "MWAN 設定" - -#~ msgid "Network Config" -#~ msgstr "ネットワーク設定" - -#~ msgid "Overview" -#~ msgstr "概要" - -#~ msgid "This section allows you to modify the contents of /etc/config/mwan3" -#~ msgstr "" -#~ "このセクションでは、 /etc/config/mwan3 の内容を変更することができます。" - -#~ msgid "" -#~ "This section allows you to modify the contents of /etc/config/network" -#~ msgstr "" -#~ "このセクションでは、 /etc/config/network の内容を変更することができます。" - -#~ msgid "" -#~ "This section allows you to modify the contents of /etc/config/wireless" -#~ msgstr "" -#~ "このセクションでは、 /etc/config/wireless の内容を変更することができます。" - -#~ msgid "Wireless Config" -#~ msgstr "無線設定" diff --git a/applications/luci-app-mwan3/po/ru/mwan3.po b/applications/luci-app-mwan3/po/ru/mwan3.po index 11721ecc5..140c537e7 100644 --- a/applications/luci-app-mwan3/po/ru/mwan3.po +++ b/applications/luci-app-mwan3/po/ru/mwan3.po @@ -46,6 +46,9 @@ msgstr "Допустимые значения: 1-256 По умолчанию 1, msgid "Check IP rules" msgstr "Проверить правила IP" +msgid "Check link quality" +msgstr "" + msgid "Check routing table" msgstr "Проверить таблицу маршрутизации" @@ -216,6 +219,12 @@ msgstr "" "символы A-Z, a-z, 0-9, _ и пробелы.<br />Интерфейсы не могут иметь " "одинаковые имена с настроенными узлами, политиками или правилами." +msgid "Max packet latency [ms]" +msgstr "" + +msgid "Max packet loss [%]" +msgstr "" + msgid "" "May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or " "as a portrange (eg \"1024:2048\") without quotes" @@ -247,6 +256,12 @@ msgstr "Назначенные узлы" msgid "Metric" msgstr "Метрика" +msgid "Min packet latency [ms]" +msgstr "" + +msgid "Min packet loss [%]" +msgstr "" + msgid "" "Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/" "youtube.com/youtube\")" diff --git a/applications/luci-app-mwan3/po/templates/mwan3.pot b/applications/luci-app-mwan3/po/templates/mwan3.pot index f6b3a1b38..bcc5e977a 100644 --- a/applications/luci-app-mwan3/po/templates/mwan3.pot +++ b/applications/luci-app-mwan3/po/templates/mwan3.pot @@ -30,6 +30,9 @@ msgstr "" msgid "Check IP rules" msgstr "" +msgid "Check link quality" +msgstr "" + msgid "Check routing table" msgstr "" @@ -190,6 +193,12 @@ msgid "" "rules" msgstr "" +msgid "Max packet latency [ms]" +msgstr "" + +msgid "Max packet loss [%]" +msgstr "" + msgid "" "May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or " "as a portrange (eg \"1024:2048\") without quotes" @@ -216,6 +225,12 @@ msgstr "" msgid "Metric" msgstr "" +msgid "Min packet latency [ms]" +msgstr "" + +msgid "Min packet loss [%]" +msgstr "" + msgid "" "Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/" "youtube.com/youtube\")" diff --git a/applications/luci-app-mwan3/po/zh-cn/mwan3.po b/applications/luci-app-mwan3/po/zh-cn/mwan3.po index ef5933986..4a92c7abd 100644 --- a/applications/luci-app-mwan3/po/zh-cn/mwan3.po +++ b/applications/luci-app-mwan3/po/zh-cn/mwan3.po @@ -41,6 +41,9 @@ msgstr "取值范围:1-256。如果不填写,默认值为 1" msgid "Check IP rules" msgstr "检查 IP 规则" +msgid "Check link quality" +msgstr "" + msgid "Check routing table" msgstr "检查路由表" @@ -205,6 +208,12 @@ msgstr "" "的接口名称匹配。<br />名称允许包括 A-Z、a-z、0-9、_ 但是不能有空格。<br />接" "口不应该与成员、策略、规则中的任意一个设置项使用相同的名称" +msgid "Max packet latency [ms]" +msgstr "" + +msgid "Max packet loss [%]" +msgstr "" + msgid "" "May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or " "as a portrange (eg \"1024:2048\") without quotes" @@ -236,6 +245,12 @@ msgstr "分配的成员" msgid "Metric" msgstr "跃点数" +msgid "Min packet latency [ms]" +msgstr "" + +msgid "Min packet loss [%]" +msgstr "" + msgid "" "Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/" "youtube.com/youtube\")" diff --git a/applications/luci-app-mwan3/po/zh-tw/mwan3.po b/applications/luci-app-mwan3/po/zh-tw/mwan3.po index 6af9fae7e..9fa526342 100644 --- a/applications/luci-app-mwan3/po/zh-tw/mwan3.po +++ b/applications/luci-app-mwan3/po/zh-tw/mwan3.po @@ -41,6 +41,9 @@ msgstr "取值範圍:1-256。如果不填寫,預設值為 1" msgid "Check IP rules" msgstr "檢查 IP 規則" +msgid "Check link quality" +msgstr "" + msgid "Check routing table" msgstr "檢查路由表" @@ -205,6 +208,12 @@ msgstr "" "中的介面名稱匹配。<br />名稱允許包括 A-Z、a-z、0-9、_ 但是不能有空格。<br />" "介面不應該與成員、策略、規則中的任意一個設定項使用相同的名稱" +msgid "Max packet latency [ms]" +msgstr "" + +msgid "Max packet loss [%]" +msgstr "" + msgid "" "May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or " "as a portrange (eg \"1024:2048\") without quotes" @@ -236,6 +245,12 @@ msgstr "分配的成員" msgid "Metric" msgstr "躍點數" +msgid "Min packet latency [ms]" +msgstr "" + +msgid "Min packet loss [%]" +msgstr "" + msgid "" "Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/" "youtube.com/youtube\")" diff --git a/applications/luci-app-noddos/luasrc/view/noddos/clients.htm b/applications/luci-app-noddos/luasrc/view/noddos/clients.htm index f2fb9312a..4caf3e04e 100644 --- a/applications/luci-app-noddos/luasrc/view/noddos/clients.htm +++ b/applications/luci-app-noddos/luasrc/view/noddos/clients.htm @@ -38,70 +38,70 @@ <fieldset class="cbi-section"> <legend><%:Recognized Clients%></legend> <div class="cbi-section-node"> - <table class="cbi-section-table"> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell"><%:Hostname%></th> - <th class="cbi-section-table-cell"><%:IPv4%></th> - <th class="cbi-section-table-cell"><%:MAC%></th> - <th class="cbi-section-table-cell"><%:Manufacturer%></th> - <th class="cbi-section-table-cell"><%:Model%></th> - <th class="cbi-section-table-cell"><%:Class%></th> - </tr> + <div class="table cbi-section-table"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell"><%:Hostname%></div> + <div class="th cbi-section-table-cell"><%:IPv4%></div> + <div class="th cbi-section-table-cell"><%:MAC%></div> + <div class="th cbi-section-table-cell"><%:Manufacturer%></div> + <div class="th cbi-section-table-cell"><%:Model%></div> + <div class="th cbi-section-table-cell"><%:Class%></div> + </div> <% for i,v in ipairs(devdump) do if v.DeviceProfileUuid ~= "" then %> - <tr class="cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>"> - <td class="cbi-value-field"><%=v.Hostname%></td> - <td class="cbi-value-field"><%=v.Ipv4Address%></td> - <td class="cbi-value-field"><a href="/cgi-bin/clientdetails?mac=<%=v.MacAddress%>"><%=v.MacAddress%></a></td> - <td class="cbi-value-field"><%=devicevalues[v.DeviceProfileUuid].Manufacturer%></td> - <td class="cbi-value-field"><%=devicevalues[v.DeviceProfileUuid].Model%></td> - <td class="cbi-value-field"><%=devicevalues[v.DeviceProfileUuid].ThingClass%></td> - </tr> + <div class="tr cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>"> + <div class="td cbi-value-field"><%=v.Hostname%></div> + <div class="td cbi-value-field"><%=v.Ipv4Address%></div> + <div class="td cbi-value-field"><a href="/cgi-bin/clientdetails?mac=<%=v.MacAddress%>"><%=v.MacAddress%></a></div> + <div class="td cbi-value-field"><%=devicevalues[v.DeviceProfileUuid].Manufacturer%></div> + <div class="td cbi-value-field"><%=devicevalues[v.DeviceProfileUuid].Model%></div> + <div class="td cbi-value-field"><%=devicevalues[v.DeviceProfileUuid].ThingClass%></div> + </div> <% style=false end end %> - </table> + </div> </div> </fieldset> <br /> <fieldset class="cbi-section"> <legend><%:Unrecognized Clients%></legend> <div class="cbi-section-node"> - <table class="cbi-section-table"> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell"><%:Hostname%></th> - <th class="cbi-section-table-cell"><%:IPv4%></th> - <th class="cbi-section-table-cell"><%:MAC%></th> - <th class="cbi-section-table-cell"><%:Manufacturer%></th> - <th class="cbi-section-table-cell"><%:Model%></th> - <th class="cbi-section-table-cell"><%:DhcpVendor%></th> - <th class="cbi-section-table-cell"><%:DhcpHostname%></th> - </tr> + <div class="table cbi-section-table"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell"><%:Hostname%></div> + <div class="th cbi-section-table-cell"><%:IPv4%></div> + <div class="th cbi-section-table-cell"><%:MAC%></div> + <div class="th cbi-section-table-cell"><%:Manufacturer%></div> + <div class="th cbi-section-table-cell"><%:Model%></div> + <div class="th cbi-section-table-cell"><%:DhcpVendor%></div> + <div class="th cbi-section-table-cell"><%:DhcpHostname%></div> + </div> <% for i,v in ipairs(devdump) do if v.DeviceProfileUuid == "" then %> - <tr class="cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>"> - <td class="cbi-value-field"><%=v.Hostname%></td> - <td class="cbi-value-field"><%=v.Ipv4Address%></td> - <td class="cbi-value-field"><a href="/cgi-bin/clientdetails?mac=<%=v.MacAddress%>"><%=v.MacAddress%></a></td> - <td class="cbi-value-field"><%=v.SsdpManufacturer%></td> - <td class="cbi-value-field"><%=v.SsdpModelName%></td> - <td class="cbi-value-field"><%=v.DhcpVendor1%></td> - <td class="cbi-value-field"><%=v.DhcpHostname%></td> - </tr> + <div class="tr cbi-section-table-row cbi-rowstyle-<%=(style and 1 or 2)%>"> + <div class="td cbi-value-field"><%=v.Hostname%></div> + <div class="td cbi-value-field"><%=v.Ipv4Address%></div> + <div class="td cbi-value-field"><a href="/cgi-bin/clientdetails?mac=<%=v.MacAddress%>"><%=v.MacAddress%></a></div> + <div class="td cbi-value-field"><%=v.SsdpManufacturer%></div> + <div class="td cbi-value-field"><%=v.SsdpModelName%></div> + <div class="td cbi-value-field"><%=v.DhcpVendor1%></div> + <div class="td cbi-value-field"><%=v.DhcpHostname%></div> + </div> <% style=false end end %> - </table> + </div> </div> </fieldset> diff --git a/applications/luci-app-ocserv/luasrc/view/ocserv_status.htm b/applications/luci-app-ocserv/luasrc/view/ocserv_status.htm index 03a9ed70e..66e44e967 100644 --- a/applications/luci-app-ocserv/luasrc/view/ocserv_status.htm +++ b/applications/luci-app-ocserv/luasrc/view/ocserv_status.htm @@ -5,8 +5,8 @@ function(x) { var tb = document.getElementById('ocserv_status_table'); - if (tb && (idx < tb.rows.length)) - tb.rows[0].parentNode.removeChild(tb.rows[idx]); + if (tb && (idx + 1 < tb.childNodes.length)) + tb.removeChild(tb.childNodes[idx + 1]); } ); } @@ -18,38 +18,28 @@ if (st && tb) { /* clear all rows */ - while( tb.rows.length > 1 ) - tb.deleteRow(1); + while (tb.firstElementChild !== tb.lastElementChild) + tb.removeChild(tb.lastElementChild); - for( var i = 0; i < st.length; i++ ) + for (var i = 0; i < st.length; i++) { - var tr = tb.insertRow(-1); - tr.className = 'cbi-section-table-row cbi-rowstyle-' + ((i % 2) + 1); - - tr.insertCell(-1).innerHTML = st[i].user; - tr.insertCell(-1).innerHTML = st[i].group; - tr.insertCell(-1).innerHTML = st[i].vpn_ip; - tr.insertCell(-1).innerHTML = st[i].ip; - tr.insertCell(-1).innerHTML = st[i].device; - tr.insertCell(-1).innerHTML = st[i].time; - tr.insertCell(-1).innerHTML = st[i].cipher; - tr.insertCell(-1).innerHTML = st[i].status; - - tr.insertCell(-1).innerHTML = String.format( - '<input class="cbi-button cbi-input-remove" type="button" value="<%:Disconnect%>" onclick="ocserv_disconnect(%d)" />', - st[i].id - ); + tb.appendChild(E('<div class="tr cbi-section-table-row cbi-rowstyle-%d">'.format((i % 2) + 1), [ + E('<div class="td">', st[i].user), + E('<div class="td">', st[i].group), + E('<div class="td">', st[i].vpn_ip), + E('<div class="td">', st[i].ip), + E('<div class="td">', st[i].device), + E('<div class="td">', st[i].time), + E('<div class="td">', st[i].cipher), + E('<div class="td">', st[i].status), + E('<div class="td">', + E('<input class="cbi-button cbi-input-remove" type="button" value="<%:Disconnect%>" onclick="ocserv_disconnect(%d)" />' + .format(st[i].id))) + ])); } - if( tb.rows.length == 1 ) - { - var tr = tb.insertRow(-1); - tr.className = 'cbi-section-table-row'; - - var td = tr.insertCell(-1); - td.colSpan = 5; - td.innerHTML = '<em><br /><%:There are no active users.%></em>'; - } + if (tb.firstElementChild === tb.lastElementChild) + tb.appendChild(E('<div class="tr cbi-section-table-row"><div class="td"><em><br /><%:There are no active users.%></em></div></div>')); } } ); @@ -57,20 +47,21 @@ <fieldset class="cbi-section"> <legend><%:Active OpenConnect Users%></legend> - <table class="cbi-section-table" id="ocserv_status_table"> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell"><%:User%></th> - <th class="cbi-section-table-cell"><%:Group%></th> - <th class="cbi-section-table-cell"><%:IP Address%></th> - <th class="cbi-section-table-cell"><%:VPN IP Address%></th> - <th class="cbi-section-table-cell"><%:Device%></th> - <th class="cbi-section-table-cell"><%:Time%></th> - <th class="cbi-section-table-cell"><%:Cipher%></th> - <th class="cbi-section-table-cell"><%:Status%></th> - <th class="cbi-section-table-cell"> </th> - </tr> - <tr class="cbi-section-table-row"> - <td colspan="5"><em><br /><%:Collecting data...%></em></td> - </tr> - </table> + <div class="table cbi-section-table" id="ocserv_status_table"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell"><%:User%></div> + <div class="th cbi-section-table-cell"><%:Group%></div> + <div class="th cbi-section-table-cell"><%:IP Address%></div> + <div class="th cbi-section-table-cell"><%:VPN IP Address%></div> + <div class="th cbi-section-table-cell"><%:Device%></div> + <div class="th cbi-section-table-cell"><%:Time%></div> + <div class="th cbi-section-table-cell"><%:Cipher%></div> + <div class="th cbi-section-table-cell"><%:Status%></div> + <div class="th cbi-section-table-cell"> </div> + </div> + <div class="tr cbi-section-table-row"> + <div class="td" colspan="5"><em><br /><%:Collecting data...%></em></div> + </div> + </div> </fieldset> + diff --git a/applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm b/applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm index 476150dd2..150ed87da 100644 --- a/applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm +++ b/applications/luci-app-olsr-services/luasrc/view/freifunk-services/services.htm @@ -132,11 +132,11 @@ end { var service = info[idx]; s += String.format( - '<tr class="cbi-section-table-row cbi-rowstyle-'+(1 + (idx % 2))+'">' + - '<td class="cbi-section-table-titles"><a href="%s">%s</a></td>' + - '<td class="cbi-section-table-titles">%s</td>' + - '<td class="cbi-section-table-titles"><a href="http://%s/cgi-bin-status.html">%s</a></td>' + - '</tr>', + '<div class="tr cbi-section-table-row cbi-rowstyle-'+(1 + (idx % 2))+'">' + + '<div class="td cbi-section-table-titles"><a href="%s">%s</a></div>' + + '<div class="td cbi-section-table-titles">%s</div>' + + '<div class="td cbi-section-table-titles"><a href="http://%s/cgi-bin-status.html">%s</a></div>' + + '</div>', service.url, service.descr, service.proto, service.origin_link, service.origin || '?' ); } @@ -153,16 +153,16 @@ end <fieldset class="cbi-section"> <legend><%:Internal services%></legend> - <table class="cbi-section-table"> - <thead> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell"><%:Url%></th> - <th class="cbi-section-table-cell"><%:Protocol%></th> - <th class="cbi-section-table-cell"><%:Source%></th> - </tr> - </thead> - - <tbody id="olsr_services"> + <div class="table cbi-section-table"> + <div class="thead"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell"><%:Url%></div> + <div class="th cbi-section-table-cell"><%:Protocol%></div> + <div class="th cbi-section-table-cell"><%:Source%></div> + </div> + </div> + + <div class="tbody" id="olsr_services"> <% for k, line in ipairs(services) do local field = {} @@ -178,15 +178,15 @@ end local url, proto, descr, origin = pcdata(field[1]), pcdata(field[2]), utl.trim(pcdata(field[3])), pcdata(field[4]) %> - <tr class="cbi-section-table-row cbi-rowstyle-<%=i%>"> - <td class="cbi-section-table-titles"><a href="<%=url%>"><%=descr%></a></td> - <td class="cbi-section-table-titles"><%=proto%></td> - <td class="cbi-section-table-titles"><a href="http://<%=origin_link%>/cgi-bin-status.html"><%=origin%></a></td> - </tr> + <div class="tr cbi-section-table-row cbi-rowstyle-<%=i%>"> + <div class="td cbi-section-table-titles"><a href="<%=url%>"><%=descr%></a></div> + <div class="td cbi-section-table-titles"><%=proto%></div> + <div class="td cbi-section-table-titles"><a href="http://<%=origin_link%>/cgi-bin-status.html"><%=origin%></a></div> + </div> <% i = ((i % 2) + 1) end %> - </tbody> - </table> + </div> + </div> <br /> <%=last_update%> </fieldset> diff --git a/applications/luci-app-olsr/luasrc/view/status-olsr/hna.htm b/applications/luci-app-olsr/luasrc/view/status-olsr/hna.htm index 5ea7b74e4..2dc4ce173 100644 --- a/applications/luci-app-olsr/luasrc/view/status-olsr/hna.htm +++ b/applications/luci-app-olsr/luasrc/view/status-olsr/hna.htm @@ -41,7 +41,7 @@ XHR.poll(10, '<%=REQUEST_URI%>', { status: 1 }, { var hna = info[idx]; var linkgw = '' - s += '<tr class="cbi-section-table-row cbi-rowstyle-'+(1 + (idx % 2))+' proto-' + hna.proto + '">' + s += '<div class="tr cbi-section-table-row cbi-rowstyle-'+(1 + (idx % 2))+' proto-' + hna.proto + '">' if (hna.proto == '6') { linkgw = '<a href="http://[' + hna.gateway + ']/cgi-bin-status.html">' + hna.gateway + '</a>' } else { @@ -61,11 +61,11 @@ XHR.poll(10, '<%=REQUEST_URI%>', { status: 1 }, } s += String.format( - '<td class="cbi-section-table-cell">%s</td>' + - '<td class="cbi-section-table-cell">%s</td>' + - '<td class="cbi-section-table-cell">%s</td>', hna.destination + '/' + hna.genmask, linkgw + hostname, validity + '<div class="td cbi-section-table-cell">%s</div>' + + '<div class="td cbi-section-table-cell">%s</div>' + + '<div class="td cbi-section-table-cell">%s</div>', hna.destination + '/' + hna.genmask, linkgw + hostname, validity ) - s += '</tr>' + s += '</div>' } hnadiv.innerHTML = s; } @@ -79,21 +79,21 @@ XHR.poll(10, '<%=REQUEST_URI%>', { status: 1 }, <fieldset class="cbi-section"> <legend><%:Overview of currently active OLSR host net announcements%></legend> - <table class="cbi-section-table"> - <thead> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell"><%:Announced network%></th> - <th class="cbi-section-table-cell"><%:OLSR gateway%></th> - <th class="cbi-section-table-cell"><%:Validity Time%></th> - </tr> + <div class="table cbi-section-table"> + <div class="thead"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell"><%:Announced network%></div> + <div class="th cbi-section-table-cell"><%:OLSR gateway%></div> + <div class="th cbi-section-table-cell"><%:Validity Time%></div> + </div> - </thead> - <tbody id="olsrd_hna"> + </div> + <div class="tbody" id="olsrd_hna"> <% for k, route in ipairs(hna) do %> - <tr class="cbi-section-table-row cbi-rowstyle-<%=i%> proto-<%=hna[k].proto%>"> - <td class="cbi-section-table-cell"><%=hna[k].destination%>/<%=hna[k].genmask%> </td> - <td class="cbi-section-table-cell"> + <div class="tr cbi-section-table-row cbi-rowstyle-<%=i%> proto-<%=hna[k].proto%>"> + <div class="td cbi-section-table-cell"><%=hna[k].destination%>/<%=hna[k].genmask%> </div> + <div class="td cbi-section-table-cell"> <% if hna[k].proto == '6' then %> <a href="http://[<%=hna[k].gateway%>]/cgi-bin-status.html"><%=hna[k].gateway%></a> <% else %> @@ -102,20 +102,20 @@ XHR.poll(10, '<%=REQUEST_URI%>', { status: 1 }, <% if hna[k].hostname then %> / <a href="http://<%=hna[k].hostname%>/cgi-bin-status.html"><%=hna[k].hostname%></a> <% end %> - </td> + </div> <% if hna[k].validityTime then validity = hna[k].validityTime .. 's' else validity = '-' end %> - <td class="cbi-section-table-cell"><%=validity%></td> - </tr> + <div class="td cbi-section-table-cell"><%=validity%></div> + </div> <% i = ((i % 2) + 1) end %> - </tbody> - </table> + </div> + </div> </fieldset> <%+status-olsr/common_js%> diff --git a/applications/luci-app-olsr/luasrc/view/status-olsr/interfaces.htm b/applications/luci-app-olsr/luasrc/view/status-olsr/interfaces.htm index 81d0a3dd3..e3ccd0c23 100644 --- a/applications/luci-app-olsr/luasrc/view/status-olsr/interfaces.htm +++ b/applications/luci-app-olsr/luasrc/view/status-olsr/interfaces.htm @@ -18,31 +18,31 @@ local i = 1 <fieldset class="cbi-section"> <legend><%:Overview of interfaces where OLSR is running%></legend> - <table class="cbi-section-table"> - <tr> - <th class="cbi-section-table-cell"><%:Interface%></th> - <th class="cbi-section-table-cell"><%:State%></th> - <th class="cbi-section-table-cell"><%:MTU%></th> - <th class="cbi-section-table-cell"><%:WLAN%></th> - <th class="cbi-section-table-cell"><%:Source address%></th> - <th class="cbi-section-table-cell"><%:Netmask%></th> - <th class="cbi-section-table-cell"><%:Broadcast address%></th> - </tr> + <div class="table cbi-section-table"> + <div class="tr"> + <div class="th cbi-section-table-cell"><%:Interface%></div> + <div class="th cbi-section-table-cell"><%:State%></div> + <div class="th cbi-section-table-cell"><%:MTU%></div> + <div class="th cbi-section-table-cell"><%:WLAN%></div> + <div class="th cbi-section-table-cell"><%:Source address%></div> + <div class="th cbi-section-table-cell"><%:Netmask%></div> + <div class="th cbi-section-table-cell"><%:Broadcast address%></div> + </div> <% for k, iface in ipairs(iface) do %> - <tr class="cbi-section-table-row cbi-rowstyle-<%=i%> proto-<%=iface.proto%>"> - <td class="cbi-section-table-cell"><%=iface.name%></td> - <td class="cbi-section-table-cell"><%=iface.state%></td> - <td class="cbi-section-table-cell"><%=iface.olsrMTU%></td> - <td class="cbi-section-table-cell"><%=iface.wireless and luci.i18n.translate('yes') or luci.i18n.translate('no')%></td> - <td class="cbi-section-table-cell"><%=iface.ipv4Address or iface.ipv6Address%></td> - <td class="cbi-section-table-cell"><%=iface.netmask%></td> - <td class="cbi-section-table-cell"><%=iface.broadcast or iface.multicast%></td> - </tr> + <div class="tr cbi-section-table-row cbi-rowstyle-<%=i%> proto-<%=iface.proto%>"> + <div class="td cbi-section-table-cell"><%=iface.name%></div> + <div class="td cbi-section-table-cell"><%=iface.state%></div> + <div class="td cbi-section-table-cell"><%=iface.olsrMTU%></div> + <div class="td cbi-section-table-cell"><%=iface.wireless and luci.i18n.translate('yes') or luci.i18n.translate('no')%></div> + <div class="td cbi-section-table-cell"><%=iface.ipv4Address or iface.ipv6Address%></div> + <div class="td cbi-section-table-cell"><%=iface.netmask%></div> + <div class="td cbi-section-table-cell"><%=iface.broadcast or iface.multicast%></div> + </div> <% i = ((i % 2) + 1) end %> - </table> + </div> </fieldset> <%+status-olsr/common_js%> <%+footer%> diff --git a/applications/luci-app-olsr/luasrc/view/status-olsr/mid.htm b/applications/luci-app-olsr/luasrc/view/status-olsr/mid.htm index f658288fc..8c9f63af0 100644 --- a/applications/luci-app-olsr/luasrc/view/status-olsr/mid.htm +++ b/applications/luci-app-olsr/luasrc/view/status-olsr/mid.htm @@ -15,11 +15,11 @@ local i = 1 <div id="togglebuttons"></div> <fieldset class="cbi-section"> <legend><%:Overview of known multiple interface announcements%></legend> - <table class="cbi-section-table"> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell"><%:OLSR node%></th> - <th class="cbi-section-table-cell" ><%:Secondary OLSR interfaces%></th> - </tr> + <div class="table cbi-section-table"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell"><%:OLSR node%></div> + <div class="th cbi-section-table-cell" ><%:Secondary OLSR interfaces%></div> + </div> <% for k, mid in ipairs(mids) do local aliases = '' @@ -37,14 +37,14 @@ local i = 1 end %> - <tr class="cbi-section-table-row cbi-rowstyle-<%=i%> proto-<%=mid.proto%>"> - <td class="cbi-section-table-cell"><a href="http://<%=host%>/cgi-bin-status.html"><%=mid.ipAddress%></a></td> - <td class="cbi-section-table-cell"><%=aliases%></td> - </tr> + <div class="tr cbi-section-table-row cbi-rowstyle-<%=i%> proto-<%=mid.proto%>"> + <div class="td cbi-section-table-cell"><a href="http://<%=host%>/cgi-bin-status.html"><%=mid.ipAddress%></a></div> + <div class="td cbi-section-table-cell"><%=aliases%></div> + </div> <% i = ((i % 2) + 1) end %> - </table> + </div> </fieldset> <%+status-olsr/common_js%> <%+footer%> diff --git a/applications/luci-app-olsr/luasrc/view/status-olsr/neighbors.htm b/applications/luci-app-olsr/luasrc/view/status-olsr/neighbors.htm index c077c2048..ab0986586 100644 --- a/applications/luci-app-olsr/luasrc/view/status-olsr/neighbors.htm +++ b/applications/luci-app-olsr/luasrc/view/status-olsr/neighbors.htm @@ -64,36 +64,36 @@ end if (neigh.proto == '6') { s += String.format( - '<tr class="cbi-section-table-row cbi-rowstyle-'+(1 + (idx % 2))+' proto-%s">' + - '<td class="cbi-section-table-titles" style="background-color:%s"><a href="http://[%s]/cgi-bin-status.html">%s</a></td>', + '<div class="tr cbi-section-table-row cbi-rowstyle-'+(1 + (idx % 2))+' proto-%s">' + + '<div class="td cbi-section-table-titles" style="background-color:%s"><a href="http://[%s]/cgi-bin-status.html">%s</a></div>', neigh.proto, neigh.dfgcolor, neigh.rip, neigh.rip ); } else { s += String.format( - '<tr class="cbi-section-table-row cbi-rowstyle-'+(1 + (idx % 2))+' proto-%s">' + - '<td class="cbi-section-table-titles" style="background-color:%s"><a href="http://%s/cgi-bin-status.html">%s</a></td>', + '<div class="tr cbi-section-table-row cbi-rowstyle-'+(1 + (idx % 2))+' proto-%s">' + + '<div class="td cbi-section-table-titles" style="background-color:%s"><a href="http://%s/cgi-bin-status.html">%s</a></div>', neigh.proto, neigh.dfgcolor, neigh.rip, neigh.rip ); } if (neigh.hn) { s += String.format( - '<td class="cbi-section-table-titles" style="background-color:%s"><a href="http://%s/cgi-bin-status.html">%s</a></td>', + '<div class="td cbi-section-table-titles" style="background-color:%s"><a href="http://%s/cgi-bin-status.html">%s</a></div>', neigh.dfgcolor, neigh.hn, neigh.hn ); } else { s += String.format( - '<td class="cbi-section-table-titles" style="background-color:%s">?</td>', + '<div class="td cbi-section-table-titles" style="background-color:%s">?</div>', neigh.dfgcolor ); } s += String.format( - '<td class="cbi-section-table-titles" style="background-color:%s">%s</td>' + - '<td class="cbi-section-table-titles" style="background-color:%s">%s</td>' + - '<td class="cbi-section-table-titles" style="background-color:%s">%s</td>' + - '<td class="cbi-section-table-titles" style="background-color:%s">%s</td>' + - '<td class="cbi-section-table-titles" style="background-color:%s">%s</td>' + - '<td class="cbi-section-table-titles" style="background-color:%s" title="Signal: %s Noise: %s">%s</td>' + - '</tr>', + '<div class="td cbi-section-table-titles" style="background-color:%s">%s</div>' + + '<div class="td cbi-section-table-titles" style="background-color:%s">%s</div>' + + '<div class="td cbi-section-table-titles" style="background-color:%s">%s</div>' + + '<div class="td cbi-section-table-titles" style="background-color:%s">%s</div>' + + '<div class="td cbi-section-table-titles" style="background-color:%s">%s</div>' + + '<div class="td cbi-section-table-titles" style="background-color:%s" title="Signal: %s Noise: %s">%s</div>' + + '</div>', neigh.dfgcolor, neigh.ifn, neigh.dfgcolor, neigh.lip, neigh.dfgcolor, neigh.lq, neigh.dfgcolor, neigh.nlq, neigh.color, neigh.cost, neigh.snr_color, neigh.signal, neigh.noise, neigh.snr || '?' ); } @@ -112,21 +112,21 @@ end <fieldset class="cbi-section"> <legend><%:Overview of currently established OLSR connections%></legend> - <table class="cbi-section-table"> - <thead> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell"><%:Neighbour IP%></th> - <th class="cbi-section-table-cell"><%:Hostname%></th> - <th class="cbi-section-table-cell"><%:Interface%></th> - <th class="cbi-section-table-cell"><%:Local interface IP%></th> - <th class="cbi-section-table-cell">LQ</th> - <th class="cbi-section-table-cell">NLQ</th> - <th class="cbi-section-table-cell">ETX</th> - <th class="cbi-section-table-cell">SNR</th> - </tr> - </thead> + <div class="table cbi-section-table"> + <div class="thead"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell"><%:Neighbour IP%></div> + <div class="th cbi-section-table-cell"><%:Hostname%></div> + <div class="th cbi-section-table-cell"><%:Interface%></div> + <div class="th cbi-section-table-cell"><%:Local interface IP%></div> + <div class="th cbi-section-table-cell">LQ</div> + <div class="th cbi-section-table-cell">NLQ</div> + <div class="th cbi-section-table-cell">ETX</div> + <div class="th cbi-section-table-cell">SNR</div> + </div> + </div> - <tbody id="olsr_neigh_table"> + <div class="tbody" id="olsr_neigh_table"> <% local i = 1 for k, link in ipairs(links) do link.linkCost = tonumber(link.linkCost) or 0 @@ -147,25 +147,25 @@ end end %> - <tr class="cbi-section-table-row cbi-rowstyle-<%=i%> proto-<%=link.proto%>"> + <div class="tr cbi-section-table-row cbi-rowstyle-<%=i%> proto-<%=link.proto%>"> <% if link.proto == "6" then %> - <td class="cbi-section-table-titles" style="background-color:<%=defaultgw_color%>"><a href="http://[<%=link.remoteIP%>]/cgi-bin-status.html"><%=link.remoteIP%></a></td> + <div class="td cbi-section-table-titles" style="background-color:<%=defaultgw_color%>"><a href="http://[<%=link.remoteIP%>]/cgi-bin-status.html"><%=link.remoteIP%></a></div> <% else %> - <td class="cbi-section-table-titles" style="background-color:<%=defaultgw_color%>"><a href="http://<%=link.remoteIP%>/cgi-bin-status.html"><%=link.remoteIP%></a></td> + <div class="td cbi-section-table-titles" style="background-color:<%=defaultgw_color%>"><a href="http://<%=link.remoteIP%>/cgi-bin-status.html"><%=link.remoteIP%></a></div> <% end %> - <td class="cbi-section-table-titles" style="background-color:<%=defaultgw_color%>"><a href="http://<%=link.hostname%>/cgi-bin-status.html"><%=link.hostname%></a></td> - <td class="cbi-section-table-titles" style="background-color:<%=defaultgw_color%>"><%=link.interface%></td> - <td class="cbi-section-table-titles" style="background-color:<%=defaultgw_color%>"><%=link.localIP%></td> - <td class="cbi-section-table-titles" style="background-color:<%=defaultgw_color%>"><%=string.format("%.3f", link.linkQuality)%></td> - <td class="cbi-section-table-titles" style="background-color:<%=defaultgw_color%>"><%=string.format("%.3f", link.neighborLinkQuality)%></td> - <td class="cbi-section-table-titles" style="background-color:<%=color%>"><%=string.format("%.3f", link.linkCost)%></td> - <td class="cbi-section-table-titles" style="background-color:<%=snr_color%>" title="Signal: <%=link.signal%> Noise: <%=link.noise%>"><%=link.snr%></td> - </tr> + <div class="td cbi-section-table-titles" style="background-color:<%=defaultgw_color%>"><a href="http://<%=link.hostname%>/cgi-bin-status.html"><%=link.hostname%></a></div> + <div class="td cbi-section-table-titles" style="background-color:<%=defaultgw_color%>"><%=link.interface%></div> + <div class="td cbi-section-table-titles" style="background-color:<%=defaultgw_color%>"><%=link.localIP%></div> + <div class="td cbi-section-table-titles" style="background-color:<%=defaultgw_color%>"><%=string.format("%.3f", link.linkQuality)%></div> + <div class="td cbi-section-table-titles" style="background-color:<%=defaultgw_color%>"><%=string.format("%.3f", link.neighborLinkQuality)%></div> + <div class="td cbi-section-table-titles" style="background-color:<%=color%>"><%=string.format("%.3f", link.linkCost)%></div> + <div class="td cbi-section-table-titles" style="background-color:<%=snr_color%>" title="Signal: <%=link.signal%> Noise: <%=link.noise%>"><%=link.snr%></div> + </div> <% i = ((i % 2) + 1) end %> - </tbody> - </table> + </div> + </div> <br /> <%+status-olsr/legend%> diff --git a/applications/luci-app-olsr/luasrc/view/status-olsr/overview.htm b/applications/luci-app-olsr/luasrc/view/status-olsr/overview.htm index 61e17b3b2..832a27aed 100644 --- a/applications/luci-app-olsr/luasrc/view/status-olsr/overview.htm +++ b/applications/luci-app-olsr/luasrc/view/status-olsr/overview.htm @@ -160,48 +160,48 @@ XHR.poll(10, '<%=REQUEST_URI%>/json', { }, <fieldset class="cbi-section"> <legend><%:Network%></legend> - <table width="100%" cellspacing="10"> - <tr><td width="33%"><%:Interfaces%></td><td> + <div class="table" width="100%" cellspacing="10"> + <div class="tr"><div class="td" width="33%"><%:Interfaces%></div><div class="td"> <a href="<%=REQUEST_URI%>/interfaces"> <span id="nr_ifaces">-<span> </a> - </td></tr> - <tr><td width="33%"><%:Neighbors%></td><td> + </div></div> + <div class="tr"><div class="td" width="33%"><%:Neighbors%></div><div class="td"> <a href="<%=REQUEST_URI%>/neighbors"> <span id="nr_neigh">-</span> </a> - </td></tr> - <tr><td width="33%"><%:Nodes%></td><td> + </div></div> + <div class="tr"><div class="td" width="33%"><%:Nodes%></div><div class="td"> <a href="<%=REQUEST_URI%>/topology"> <span id="nr_nodes">-</span> </a> - </td></tr> - <tr><td width="33%"><%:HNA%></td><td> + </div></div> + <div class="tr"><div class="td" width="33%"><%:HNA%></div><div class="td"> <a href="<%=REQUEST_URI%>/hna"> <span id="nr_hna">-</span> </a> - </td></tr> - <tr><td width="33%"><%:Links total%></td><td> + </div></div> + <div class="tr"><div class="td" width="33%"><%:Links total%></div><div class="td"> <a href="<%=REQUEST_URI%>/topology"> <span id="nr_topo">-</span> </a> - </td></tr> - <tr><td width="33%"><%:Links per node (average)%></td><td> + </div></div> + <div class="tr"><div class="td" width="33%"><%:Links per node (average)%></div><div class="td"> <span id="meshfactor">-</span> - </td></tr> + </div></div> - </table> + </div> </fieldset> <fieldset class="cbi-section"> <legend>OLSR <%:Configuration%></legend> - <table width="100%" cellspacing="10"> - <tr><td width="33%"><%:Version%></td><td> + <div class="table" width="100%" cellspacing="10"> + <div class="tr"><div class="td" width="33%"><%:Version%></div><div class="td"> <span id="version">-<span> - </td></tr> - <tr><td width="33%"><%:Download Config%></td><td> + </div></div> + <div class="tr"><div class="td" width="33%"><%:Download Config%></div><div class="td"> <% if has_ipv4_conf then %> <a href="<%=REQUEST_URI%>?openwrt_v4">OpenWrt (IPv4)</a>, <% end %> @@ -214,8 +214,8 @@ XHR.poll(10, '<%=REQUEST_URI%>/json', { }, <% if has_ipv6_conf then %> <a href="<%=REQUEST_URI%>?conf_v6">OLSRD (IPv6)</a> <% end %> - </td></tr> - </table> + </div></div> + </div> </fieldset> <%+footer%> diff --git a/applications/luci-app-olsr/luasrc/view/status-olsr/routes.htm b/applications/luci-app-olsr/luasrc/view/status-olsr/routes.htm index 8e46daa02..c75b94fce 100644 --- a/applications/luci-app-olsr/luasrc/view/status-olsr/routes.htm +++ b/applications/luci-app-olsr/luasrc/view/status-olsr/routes.htm @@ -50,9 +50,9 @@ XHR.poll(20, '<%=REQUEST_URI%>', { status: 1 }, var route = info[idx]; s += String.format( - '<tr class="cbi-section-table-row cbi-rowstyle-'+(1 + (idx % 2))+' proto-%s">' + - '<td class="cbi-section-table-cell">%s/%s</td>' + - '<td class="cbi-section-table-cell">' + + '<div class="tr cbi-section-table-row cbi-rowstyle-'+(1 + (idx % 2))+' proto-%s">' + + '<div class="td cbi-section-table-cell">%s/%s</div>' + + '<div class="td cbi-section-table-cell">' + '<a href="http://%s/cgi-bin-status.html">%s</a>', route.proto, route.dest, route.genmask, route.gw, route.gw ) @@ -72,11 +72,11 @@ XHR.poll(20, '<%=REQUEST_URI%>', { status: 1 }, } s += String.format( - '</td>' + - '<td class="cbi-section-table-cell">%s</td>' + - '<td class="cbi-section-table-cell">%s</td>' + - '<td class="cbi-section-table-cell" style="background-color:%s">%s</td>' + - '</tr>', + '</div>' + + '<div class="td cbi-section-table-cell">%s</div>' + + '<div class="td cbi-section-table-cell">%s</div>' + + '<div class="td cbi-section-table-cell" style="background-color:%s">%s</div>' + + '</div>', route.interface, route.metric, route.color, route.etx || '?' ); } @@ -96,27 +96,27 @@ XHR.poll(20, '<%=REQUEST_URI%>', { status: 1 }, <fieldset class="cbi-section"> <legend><%:Overview of currently known routes to other OLSR nodes%></legend> -<table class="cbi-section-table"> - <thead> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell"><%:Announced network%></th> - <th class="cbi-section-table-cell"><%:OLSR gateway%></th> - <th class="cbi-section-table-cell"><%:Interface%></th> - <th class="cbi-section-table-cell"><%:Metric%></th> - <th class="cbi-section-table-cell">ETX</th> - </tr> - </thead> +<div class="table cbi-section-table"> + <div class="thead"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell"><%:Announced network%></div> + <div class="th cbi-section-table-cell"><%:OLSR gateway%></div> + <div class="th cbi-section-table-cell"><%:Interface%></div> + <div class="th cbi-section-table-cell"><%:Metric%></div> + <div class="th cbi-section-table-cell">ETX</div> + </div> + </div> - <tbody id="olsrd_routes"> + <div class="tbody" id="olsrd_routes"> <% for k, route in ipairs(routes) do ETX = tonumber(route.rtpMetricCost)/1024 or '0' color = olsrtools.etx_color(ETX) %> - <tr class="cbi-section-table-row cbi-rowstyle-<%=i%> proto-<%=route.proto%>"> - <td class="cbi-section-table-cell"><%=route.destination%>/<%=route.genmask%></td> - <td class="cbi-section-table-cell"> + <div class="tr cbi-section-table-row cbi-rowstyle-<%=i%> proto-<%=route.proto%>"> + <div class="td cbi-section-table-cell"><%=route.destination%>/<%=route.genmask%></div> + <div class="td cbi-section-table-cell"> <% if route.proto == '6' then %> <a href="http://[<%=route.gateway%>]/cgi-bin-status.html"><%=route.gateway%></a> <% else %> @@ -125,16 +125,16 @@ XHR.poll(20, '<%=REQUEST_URI%>', { status: 1 }, <% if route.hostname then %> / <a href="http://<%=route.Hostname%>/cgi-bin-status.html"><%=route.hostname%></a> <% end %> - </td> - <td class="cbi-section-table-cell"><%=route.networkInterface%></td> - <td class="cbi-section-table-cell"><%=route.metric%></td> - <td class="cbi-section-table-cell" style="background-color:<%=color%>"><%=string.format("%.3f", ETX)%></td> - </tr> + </div> + <div class="td cbi-section-table-cell"><%=route.networkInterface%></div> + <div class="td cbi-section-table-cell"><%=route.metric%></div> + <div class="td cbi-section-table-cell" style="background-color:<%=color%>"><%=string.format("%.3f", ETX)%></div> + </div> <% i = ((i % 2) + 1) end %> - </tbody> -</table> + </div> +</div> <%+status-olsr/legend%> </fieldset> diff --git a/applications/luci-app-olsr/luasrc/view/status-olsr/smartgw.htm b/applications/luci-app-olsr/luasrc/view/status-olsr/smartgw.htm index 6aa7a7546..7ca66816a 100644 --- a/applications/luci-app-olsr/luasrc/view/status-olsr/smartgw.htm +++ b/applications/luci-app-olsr/luasrc/view/status-olsr/smartgw.htm @@ -56,7 +56,7 @@ XHR.poll(10, '<%=REQUEST_URI%>', { status: 1 }, for (var idx = 0; idx < info.length; idx++) { var smartgw = info[idx]; - s += '<tr class="cbi-section-table-row cbi-rowstyle-'+(1 + (idx % 2))+' proto-' + smartgw.proto + '">' + s += '<div class="tr cbi-section-table-row cbi-rowstyle-'+(1 + (idx % 2))+' proto-' + smartgw.proto + '">' if (smartgw.proto == '6') { linkgw = '<a href="http://[' + smartgw.ipAddress + ']/cgi-bin-status.html">' + smartgw.ipAddress + '</a>' } else { @@ -64,18 +64,18 @@ XHR.poll(10, '<%=REQUEST_URI%>', { status: 1 }, } s += String.format( - '<td class="cbi-section-table-cell">%s</td>' + - '<td class="cbi-section-table-cell">%s</td>' + - '<td class="cbi-section-table-cell">%s</td>' + - '<td class="cbi-section-table-cell">%s</td>' + - '<td class="cbi-section-table-cell">%s</td>' + - '<td class="cbi-section-table-cell">%s</td>' + - '<td class="cbi-section-table-cell">%s</td>' + - '<td class="cbi-section-table-cell">%s</td>' + - '<td class="cbi-section-table-cell">%s</td>', + '<div class="td cbi-section-table-cell">%s</div>' + + '<div class="td cbi-section-table-cell">%s</div>' + + '<div class="td cbi-section-table-cell">%s</div>' + + '<div class="td cbi-section-table-cell">%s</div>' + + '<div class="td cbi-section-table-cell">%s</div>' + + '<div class="td cbi-section-table-cell">%s</div>' + + '<div class="td cbi-section-table-cell">%s</div>' + + '<div class="td cbi-section-table-cell">%s</div>' + + '<div class="td cbi-section-table-cell">%s</div>', linkgw, smartgw.status, smartgw.tcPathCost, smartgw.hopCount, smartgw.uplinkSpeed, smartgw.downlinkSpeed, smartgw.v4, smartgw.v6, smartgw.externalPrefix ) - s += '</tr>' + s += '</div>' } smartgwdiv.innerHTML = s; } @@ -94,23 +94,23 @@ XHR.poll(10, '<%=REQUEST_URI%>', { status: 1 }, <fieldset class="cbi-section"> <legend><%:Overview of smart gateways in this network%></legend> - <table class="cbi-section-table"> - <thead> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell"><%:Gateway%></th> - <th class="cbi-section-table-cell"><%:Status%></th> - <th class="cbi-section-table-cell"><%:ETX%></th> - <th class="cbi-section-table-cell"><%:Hops%></th> - <th class="cbi-section-table-cell"><%:Uplink%></th> - <th class="cbi-section-table-cell"><%:Downlink%></th> - <th class="cbi-section-table-cell"><%:IPv4%></th> - <th class="cbi-section-table-cell"><%:IPv6%></th> - <th class="cbi-section-table-cell"><%:Prefix%></th> - - </tr> - </thead> - - <tbody id="olsrd_smartgw"> + <div class="table cbi-section-table"> + <div class="thead"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell"><%:Gateway%></div> + <div class="th cbi-section-table-cell"><%:Status%></div> + <div class="th cbi-section-table-cell"><%:ETX%></div> + <div class="th cbi-section-table-cell"><%:Hops%></div> + <div class="th cbi-section-table-cell"><%:Uplink%></div> + <div class="th cbi-section-table-cell"><%:Downlink%></div> + <div class="th cbi-section-table-cell"><%:IPv4%></div> + <div class="th cbi-section-table-cell"><%:IPv6%></div> + <div class="th cbi-section-table-cell"><%:Prefix%></div> + + </div> + </div> + + <div class="tbody" id="olsrd_smartgw"> <% for k, gw in ipairs(gws) do gw.tcPathCost = tonumber(gw.tcPathCost)/1024 or 0 @@ -119,27 +119,27 @@ XHR.poll(10, '<%=REQUEST_URI%>', { status: 1 }, end %> - <tr class="cbi-section-table-row cbi-rowstyle-<%=i%> proto-<%=proto%>"> + <div class="tr cbi-section-table-row cbi-rowstyle-<%=i%> proto-<%=proto%>"> <% if gw.proto == '6' then %> - <td class="cbi-section-table-cell"><a href="http://[<%=gw.ipAddress%>]/cgi-bin-status.html"><%=gw.ipAddress%></a></td> + <div class="td cbi-section-table-cell"><a href="http://[<%=gw.ipAddress%>]/cgi-bin-status.html"><%=gw.ipAddress%></a></div> <% else %> - <td class="cbi-section-table-cell"><a href="http://<%=gw.ipAddress%>/cgi-bin-status.html"><%=gw.ipAddress%></a></td> + <div class="td cbi-section-table-cell"><a href="http://<%=gw.ipAddress%>/cgi-bin-status.html"><%=gw.ipAddress%></a></div> <% end %> - <td class="cbi-section-table-cell"><%=gw.ipv4Status or gw.ipv6Status or '-' %></td> - <td class="cbi-section-table-cell"><%=string.format("%.3f", gw.tcPathCost)%></td> - <td class="cbi-section-table-cell"><%=gw.hopCount%></td> - <td class="cbi-section-table-cell"><%=gw.uplinkSpeed%></td> - <td class="cbi-section-table-cell"><%=gw.downlinkSpeed%></td> - <td class="cbi-section-table-cell"><%=gw.ipv4 and luci.i18n.translate('yes') or luci.i18n.translate('no')%></td> - <td class="cbi-section-table-cell"><%=gw.ipv6 and luci.i18n.translate('yes') or luci.i18n.translate('no')%></td> - <td class="cbi-section-table-cell"><%=gw.externalPrefix%></td> - </tr> + <div class="td cbi-section-table-cell"><%=gw.ipv4Status or gw.ipv6Status or '-' %></div> + <div class="td cbi-section-table-cell"><%=string.format("%.3f", gw.tcPathCost)%></div> + <div class="td cbi-section-table-cell"><%=gw.hopCount%></div> + <div class="td cbi-section-table-cell"><%=gw.uplinkSpeed%></div> + <div class="td cbi-section-table-cell"><%=gw.downlinkSpeed%></div> + <div class="td cbi-section-table-cell"><%=gw.ipv4 and luci.i18n.translate('yes') or luci.i18n.translate('no')%></div> + <div class="td cbi-section-table-cell"><%=gw.ipv6 and luci.i18n.translate('yes') or luci.i18n.translate('no')%></div> + <div class="td cbi-section-table-cell"><%=gw.externalPrefix%></div> + </div> <% i = ((i % 2) + 1) end %> - </tbody> - </table> + </div> + </div> </fieldset> <% else %> diff --git a/applications/luci-app-olsr/luasrc/view/status-olsr/topology.htm b/applications/luci-app-olsr/luasrc/view/status-olsr/topology.htm index b3abeaecb..02fdfddac 100644 --- a/applications/luci-app-olsr/luasrc/view/status-olsr/topology.htm +++ b/applications/luci-app-olsr/luasrc/view/status-olsr/topology.htm @@ -17,14 +17,14 @@ local olsrtools = require "luci.tools.olsr" <fieldset class="cbi-section"> <legend><%:Overview of currently known OLSR nodes%></legend> - <table class="cbi-section-table"> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell"><%:OLSR node%></th> - <th class="cbi-section-table-cell"><%:Last hop%></th> - <th class="cbi-section-table-cell"><%:LQ%></th> - <th class="cbi-section-table-cell"><%:NLQ%></th> - <th class="cbi-section-table-cell"><%:ETX%></th> - </tr> + <div class="table cbi-section-table"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell"><%:OLSR node%></div> + <div class="th cbi-section-table-cell"><%:Last hop%></div> + <div class="th cbi-section-table-cell"><%:LQ%></div> + <div class="th cbi-section-table-cell"><%:NLQ%></div> + <div class="th cbi-section-table-cell"><%:ETX%></div> + </div> <% for k, route in ipairs(routes) do local cost = string.format("%.3f", tonumber(route.tcEdgeCost/1024) or 0) @@ -33,28 +33,28 @@ local olsrtools = require "luci.tools.olsr" local nlq = string.format("%.3f", tonumber(route.neighborLinkQuality) or 0) %> - <tr class="cbi-section-table-row cbi-rowstyle-<%=i%> proto-<%=route.proto%>"> + <div class="tr cbi-section-table-row cbi-rowstyle-<%=i%> proto-<%=route.proto%>"> <% if route.proto == "6" then %> - <td class="cbi-section-table-cell"><a href="http://[<%=route.destinationIP%>]/cgi-bin-status.html"><%=route.destinationIP%></a></td> - <td class="cbi-section-table-cell"><a href="http://[<%=route.lastHopIP%>]/cgi-bin-status.html"><%=route.lastHopIP%></a></td> + <div class="td cbi-section-table-cell"><a href="http://[<%=route.destinationIP%>]/cgi-bin-status.html"><%=route.destinationIP%></a></div> + <div class="td cbi-section-table-cell"><a href="http://[<%=route.lastHopIP%>]/cgi-bin-status.html"><%=route.lastHopIP%></a></div> <% else %> - <td class="cbi-section-table-cell"><a href="http://<%=route.destinationIP%>/cgi-bin-status.html"><%=route.destinationIP%></a></td> - <td class="cbi-section-table-cell"><a href="http://<%=route.lastHopIP%>/cgi-bin-status.html"><%=route.lastHopIP%></a></td> + <div class="td cbi-section-table-cell"><a href="http://<%=route.destinationIP%>/cgi-bin-status.html"><%=route.destinationIP%></a></div> + <div class="td cbi-section-table-cell"><a href="http://<%=route.lastHopIP%>/cgi-bin-status.html"><%=route.lastHopIP%></a></div> <%end%> - <td class="cbi-section-table-cell"><%=lq%></td> - <td class="cbi-section-table-cell"><%=nlq%></td> - <td class="cbi-section-table-cell" style="background-color:<%=color%>"><%=cost%></td> - </tr> + <div class="td cbi-section-table-cell"><%=lq%></div> + <div class="td cbi-section-table-cell"><%=nlq%></div> + <div class="td cbi-section-table-cell" style="background-color:<%=color%>"><%=cost%></div> + </div> <% i = ((i % 2) + 1) end %> - </table> + </div> <%+status-olsr/legend%> </fieldset> diff --git a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn.lua b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn.lua index d2b5d32c0..a6b0e1dd9 100644 --- a/applications/luci-app-openvpn/luasrc/model/cbi/openvpn.lua +++ b/applications/luci-app-openvpn/luasrc/model/cbi/openvpn.lua @@ -56,7 +56,7 @@ function s.create(self, name) luci.cbi.CREATE_PREFIX .. self.config .. "." .. self.sectiontype .. ".text" ) - if string.len(name)>3 and not name:match("[^a-zA-Z0-9_]") then + if #name > 3 and not name:match("[^a-zA-Z0-9_]") then uci:section( "openvpn", "openvpn", name, uci:get_all( "openvpn_recipes", recipe ) @@ -67,9 +67,11 @@ function s.create(self, name) uci:save("openvpn") luci.http.redirect( self.extedit:format(name) ) - else + elseif #name > 0 then self.invalid_cts = true end + + return 0 end @@ -103,10 +105,7 @@ function updown.cfgvalue(self, section) end function updown.write(self, section, value) if self.option == "stop" then - local pid = s.getPID(section) - if pid ~= nil then - sys.process.signal(pid,15) - end + luci.sys.call("/etc/init.d/openvpn stop %s" % section) else luci.sys.call("/etc/init.d/openvpn start %s" % section) end @@ -126,5 +125,8 @@ function proto.cfgvalue(self, section) return val or "udp" end +function m.on_after_commit(self,map) + require("luci.sys").call('/etc/init.d/openvpn reload') +end return m diff --git a/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua b/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua index af1a75b6f..5fc20c52b 100644 --- a/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua +++ b/applications/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua @@ -23,7 +23,7 @@ function values_actions(o) end function values_redir(o, xmode) - o.map.uci.foreach("shadowsocks-libev", "ss_redir", function(sdata) + o.map.uci:foreach("shadowsocks-libev", "ss_redir", function(sdata) local disabled = ucival_to_bool(sdata["disabled"]) local sname = sdata[".name"] local mode = sdata["mode"] or "tcp_only" @@ -37,7 +37,7 @@ function values_redir(o, xmode) end function values_serverlist(o) - o.map.uci.foreach("shadowsocks-libev", "server", function(sdata) + o.map.uci:foreach("shadowsocks-libev", "server", function(sdata) local sname = sdata[".name"] local server = sdata["server"] local server_port = sdata["server_port"] diff --git a/applications/luci-app-shadowsocks-libev/luasrc/view/shadowsocks-libev/add_instance.htm b/applications/luci-app-shadowsocks-libev/luasrc/view/shadowsocks-libev/add_instance.htm index 219d89b07..80b95564d 100644 --- a/applications/luci-app-shadowsocks-libev/luasrc/view/shadowsocks-libev/add_instance.htm +++ b/applications/luci-app-shadowsocks-libev/luasrc/view/shadowsocks-libev/add_instance.htm @@ -1,8 +1,8 @@ <div class="cbi-section-create cbi-tblsection-create"> <br /> - <table class="cbi-section-table"> - <tr class="cbi-section-table-row"> - <td class="cbi-section-table-cell" style="width:140px"> + <div class="table cbi-section-table"> + <div class="tr cbi-section-table-row"> + <div class="td cbi-section-table-cell" style="width:140px"> <select class="cbi-input-select" id="_newinst.type" name="_newinst.type"> <option value="_dummy">-- instance type --</option> <option value="ss_local">ss-local</option> @@ -10,15 +10,15 @@ <option value="ss_redir">ss-redir</option> <option value="ss_server">ss-server</option> </select> - </td> - <td class="cbi-section-table-cell" style="width:110px"> + </div> + <div class="td cbi-section-table-cell" style="width:110px"> <input type="text" class="cbi-input-text" id="_newinst.name" name="_newinst.name" placeholder="<%:Name%>"/> - </td> - <td class="cbi-section-table-cell left"> + </div> + <div class="td cbi-section-table-cell left"> <input type="submit" class="cbi-button cbi-button-add" name="cbi.cts.<%=self.config%>" value="<%:Add%>" /> - </td> - </tr> - </table> + </div> + </div> + </div> </div> <script type="text/javascript">//<![CDATA[ XHR.poll(5, '<%=url('admin/services/shadowsocks-libev/status')%>', null, diff --git a/applications/luci-app-splash/luasrc/view/admin_status/splash.htm b/applications/luci-app-splash/luasrc/view/admin_status/splash.htm index 37f67776a..aad330791 100644 --- a/applications/luci-app-splash/luasrc/view/admin_status/splash.htm +++ b/applications/luci-app-splash/luasrc/view/admin_status/splash.htm @@ -145,19 +145,19 @@ end { var s = ''; if (info.length == undefined) { - s += '<tr class="cbi-section-table-row"><td colspan="7" class="cbi-section-table-cell"><br /><em><%:No clients connected%></em><br /></td></tr>' + s += '<div class="tr cbi-section-table-row"><div colspan="7" class="td cbi-section-table-cell"><br /><em><%:No clients connected%></em><br /></div></div>' }; for (var idx = 0; idx < info.length; idx++) { var splash = info[idx]; s += String.format( - '<tr class="cbi-section-table-row cbi-rowstyle-'+(1 + (idx % 2))+'">' + - '<td class="cbi-section-table-cell">%s</td>' + - '<td class="cbi-section-table-cell">%s</td>' + - '<td class="cbi-section-table-cell">%s</td>' + - '<td class="cbi-section-table-cell">%s</td>' + - '<td class="cbi-section-table-cell">%s/%s</td>' + - '<td class="cbi-section-table-cell">', + '<div class="tr cbi-section-table-row cbi-rowstyle-'+(1 + (idx % 2))+'">' + + '<div class="td cbi-section-table-cell">%s</div>' + + '<div class="td cbi-section-table-cell">%s</div>' + + '<div class="td cbi-section-table-cell">%s</div>' + + '<div class="td cbi-section-table-cell">%s</div>' + + '<div class="td cbi-section-table-cell">%s/%s</div>' + + '<div class="td cbi-section-table-cell">', splash.hostname, splash.ip, splash.mac, splash.timeleft, splash.trafficin, splash.trafficout); <% if is_admin then %> @@ -185,7 +185,7 @@ end <% else %> s += String.format('%s', splash.policy); <% end %> - s += '</td></tr>' + s += '</div></div>' } tbody.innerHTML = s; } @@ -200,18 +200,18 @@ end <legend><%:Active Clients%></legend> <div class="cbi-section-node"> <% if is_admin then %><form action="<%=REQUEST_URI%>" method="post"><input type="hidden" name="token" value="<%=token%>" /><% end %> - <table class="cbi-section-table"> - <thead> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell"><%:Hostname%></th> - <th class="cbi-section-table-cell"><%:IP Address%></th> - <th class="cbi-section-table-cell"><%:MAC Address%></th> - <th class="cbi-section-table-cell"><%:Time remaining%></th> - <th class="cbi-section-table-cell"><%:Traffic in/out%></th> - <th class="cbi-section-table-cell"><%:Policy%></th> - </tr> - </thead> - <tbody id="splash_table"> + <div class="table cbi-section-table"> + <div class="thead"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell"><%:Hostname%></div> + <div class="th cbi-section-table-cell"><%:IP Address%></div> + <div class="th cbi-section-table-cell"><%:MAC Address%></div> + <div class="th cbi-section-table-cell"><%:Time remaining%></div> + <div class="th cbi-section-table-cell"><%:Traffic in/out%></div> + <div class="th cbi-section-table-cell"><%:Policy%></div> + </div> + </div> + <div class="tbody" id="splash_table"> <%- local count = 0 @@ -227,16 +227,16 @@ end if c.ip then count = count + 1 -%> - <tr class="cbi-section-table-row cbi-rowstyle-<%=2-(count%2)%>"> - <td class="cbi-section-table-cell"><%=c.hostname or "<em>" .. translate("unknown") .. "</em>"%></td> - <td class="cbi-section-table-cell"><%=c.ip or "<em>" .. translate("unknown") .. "</em>"%></td> - <td class="cbi-section-table-cell"><%=showmac(c.mac)%></td> - <td class="cbi-section-table-cell"><%= + <div class="tr cbi-section-table-row cbi-rowstyle-<%=2-(count%2)%>"> + <div class="td cbi-section-table-cell"><%=c.hostname or "<em>" .. translate("unknown") .. "</em>"%></div> + <div class="td cbi-section-table-cell"><%=c.ip or "<em>" .. translate("unknown") .. "</em>"%></div> + <div class="td cbi-section-table-cell"><%=showmac(c.mac)%></div> + <div class="td cbi-section-table-cell"><%= (c.limit >= os.time()) and wat.date_format(c.limit-os.time()) or (c.policy ~= "normal") and "-" or "<em>" .. translate("expired") .. "</em>" - %></td> - <td class="cbi-section-table-cell"><%=wat.byte_format(c.bytes_in)%> / <%=wat.byte_format(c.bytes_out)%></td> - <td class="cbi-section-table-cell"> + %></div> + <div class="td cbi-section-table-cell"><%=wat.byte_format(c.bytes_in)%> / <%=wat.byte_format(c.bytes_out)%></div> + <div class="td cbi-section-table-cell"> <% if is_admin then %> <select name="policy.<%=c.mac:lower()%>" style="width:200px"> <option value="whitelist"<%=c.policy=="whitelist" and ' selected="selected"'%>><%:whitelisted%></option> @@ -250,21 +250,21 @@ end <% else %> <%=c.policy%> <% end %> - </td> - </tr> + </div> + </div> <%- end end if count == 0 then -%> - <tr class="cbi-section-table-row"> - <td colspan="7" class="cbi-section-table-cell"> + <div class="tr cbi-section-table-row"> + <div colspan="7" class="td cbi-section-table-cell"> <br /><em><%:No clients connected%></em><br /> - </td> - </tr> + </div> + </div> <%- end -%> - </tbody> - </table> + </div> + </div> <% if is_admin then %></form><% end %> </div> </fieldset> diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm index f76b52e9c..bee6fcb36 100644 --- a/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm +++ b/applications/luci-app-travelmate/luasrc/view/travelmate/stations.htm @@ -17,14 +17,14 @@ This is free software, licensed under the Apache License, Version 2.0 </div> <fieldset class="cbi-section"> - <table class="cbi-section-table" style="empty-cells:hide"> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell" style="text-align:left"><%:Device%></th> - <th class="cbi-section-table-cell" style="text-align:left"><%:SSID%></th> - <th class="cbi-section-table-cell" style="text-align:left"><%:BSSID%></th> - <th class="cbi-section-table-cell" style="text-align:left"><%:Encryption%></th> - <th class="cbi-section-table-cell" style="text-align:center" colspan="2"><%:Actions%></th> - </tr> + <div class="table cbi-section-table" style="empty-cells:hide"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell" style="text-align:left"><%:Device%></div> + <div class="th cbi-section-table-cell" style="text-align:left"><%:SSID%></div> + <div class="th cbi-section-table-cell" style="text-align:left"><%:BSSID%></div> + <div class="th cbi-section-table-cell" style="text-align:left"><%:Encryption%></div> + <div class="th cbi-section-table-cell" style="text-align:center" colspan="2"><%:Actions%></div> + </div> <% uci:foreach("wireless", "wifi-iface", function(s) local iface = s.network or "" @@ -40,25 +40,25 @@ This is free software, licensed under the Apache License, Version 2.0 style = "text-align:left;color:#0069d6;font-weight:bold" end %> - <tr class="cbi-section-table-row cbi-rowstyle-1" style="<%=style%>"> - <td style="<%=style%>"><%=device%></td> - <td style="<%=style%>"><%=ssid%></td> - <td style="<%=style%>"><%=bssid%></td> - <td style="<%=style%>"><%=encryption%></td> - <td class="cbi-value-field" style="width:80px"> - <input class="cbi-button cbi-button-up" type="button" value="" onclick="location.href='<%=luci.dispatcher.build_url('admin/services/travelmate/wifiorder')%>?cfg=<%=section%>&dir=up'" alt="<%:Move up%>" title="<%:Move up%>"/> - <input class="cbi-button cbi-button-down" type="button" value="" onclick="location.href='<%=luci.dispatcher.build_url('admin/services/travelmate/wifiorder')%>?cfg=<%=section%>&dir=down'" alt="<%:Move down%>" title="<%:Move down%>"/> - </td> - <td class="cbi-value-field" style="width:150px"> + <div class="tr cbi-section-table-row cbi-rowstyle-1" style="<%=style%>"> + <div class="td" style="<%=style%>"><%=device%></div> + <div class="td" style="<%=style%>"><%=ssid%></div> + <div class="td" style="<%=style%>"><%=bssid%></div> + <div class="td" style="<%=style%>"><%=encryption%></div> + <div class="td cbi-value-field" style="width:80px"> + <input class="cbi-button cbi-button-up" type="button" value="" onclick="location.href='<%=luci.dispatcher.build_url('admin/services/travelmate/wifiorder')%>?cfg=<%=section%>&dir=up'" alt="<%:Move up%>" title="<%:Move up%>"/> + <input class="cbi-button cbi-button-down" type="button" value="" onclick="location.href='<%=luci.dispatcher.build_url('admin/services/travelmate/wifiorder')%>?cfg=<%=section%>&dir=down'" alt="<%:Move down%>" title="<%:Move down%>"/> + </div> + <div class="td cbi-value-field" style="width:150px"> <input type="button" class="cbi-button cbi-button-edit" onclick="location.href='<%=luci.dispatcher.build_url('admin/services/travelmate/wifiedit')%>?cfg=<%=section%>'" title="<%:Edit this Uplink%>" value="<%:Edit%>"/> <input type="button" class="cbi-button cbi-button-remove" onclick="location.href='<%=luci.dispatcher.build_url('admin/services/travelmate/wifidelete')%>?cfg=<%=section%>'" title="<%:Delete this Uplink%>" value="<%:Delete%>"/> - </td> - </tr> + </div> + </div> <% end end) %> - </table> + </div> </fieldset> <div class="cbi-page-actions right"> <% diff --git a/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm b/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm index a8f63a17e..81182b99b 100644 --- a/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm +++ b/applications/luci-app-travelmate/luasrc/view/travelmate/wifi_scan.htm @@ -42,28 +42,28 @@ This is free software, licensed under the Apache License, Version 2.0 <div class="cbi-map"> <h2 name="content"><%:Wireless Scan%></h2> <fieldset class="cbi-section"> - <table class="cbi-section-table" style="empty-cells:hide"> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell" style="text-align:left"><%:Uplink SSID%></th> - <th class="cbi-section-table-cell" style="text-align:left"><%:Uplink BSSID%></th> - <th class="cbi-section-table-cell" style="text-align:left"><%:Encryption%></th> - <th class="cbi-section-table-cell" style="text-align:left" colspan="2"><%:Signal strength%></th> - </tr> + <div class="table cbi-section-table" style="empty-cells:hide"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell" style="text-align:left"><%:Uplink SSID%></div> + <div class="th cbi-section-table-cell" style="text-align:left"><%:Uplink BSSID%></div> + <div class="th cbi-section-table-cell" style="text-align:left"><%:Encryption%></div> + <div class="th cbi-section-table-cell" style="text-align:left" colspan="2"><%:Signal strength%></div> + </div> <% for i, net in ipairs(iw.scanlist or { }) do %> - <tr class="cbi-section-table-row cbi-rowstyle-1"> - <td class="cbi-value-field" style="text-align:left"> + <div class="tr cbi-section-table-row cbi-rowstyle-1"> + <div class="td cbi-value-field" style="text-align:left"> <%=net.ssid and utl.pcdata(net.ssid) or "<em>%s</em>" % translate("hidden")%> - </td> - <td class="cbi-value-field" style="text-align:left"> + </div> + <div class="td cbi-value-field" style="text-align:left"> <%=net.bssid and utl.pcdata(net.bssid)%> - </td> - <td class="cbi-value-field" style="text-align:left"> + </div> + <div class="td cbi-value-field" style="text-align:left"> <%=format_wifi_encryption(net.encryption)%> - </td> - <td class="cbi-value-field" style="text-align:left"> + </div> + <div class="td cbi-value-field" style="text-align:left"> <%=percent_wifi_signal(net)%> % - </td> - <td class="cbi-value-field" style="width:100px;text-align:right"> + </div> + <div class="td cbi-value-field" style="width:100px;text-align:right"> <form class="inline" action="<%=luci.dispatcher.build_url('admin/services/travelmate/wifiadd')%>" method="post"> <input type="hidden" name="token" value="<%=token%>"/> <input type="hidden" name="device" value="<%=utl.pcdata(dev)%>"/> @@ -76,10 +76,10 @@ This is free software, licensed under the Apache License, Version 2.0 <% end %> <input class="cbi-button cbi-button-apply" type="submit" value="<%:Add Uplink%>"/> </form> - </td> - </tr> + </div> + </div> <% end %> - </table> + </div> </fieldset> <div class="cbi-page-actions right"> <form class="inline" action="<%=luci.dispatcher.build_url('admin/services/travelmate/wifiscan')%>" method="post"> diff --git a/applications/luci-app-travelmate/po/ja/travelmate.po b/applications/luci-app-travelmate/po/ja/travelmate.po index 535a9db26..6a46ea3c8 100644 --- a/applications/luci-app-travelmate/po/ja/travelmate.po +++ b/applications/luci-app-travelmate/po/ja/travelmate.po @@ -7,7 +7,7 @@ msgstr "" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.0.7\n" "Last-Translator: INAGAKI Hiroshi <musashino.open@gmail.com>\n" "Plural-Forms: nplurals=1; plural=0;\n" "Language: ja\n" @@ -15,9 +15,6 @@ msgstr "" msgid "Actions" msgstr "操作" -msgid "Add Interface" -msgstr "インターフェースの追加" - msgid "Add Uplink" msgstr "アップリンクの追加" @@ -71,7 +68,7 @@ msgstr "" msgid "Connection Limit" msgstr "接続制限" -msgid "Create Uplink Interface" +msgid "Create Uplink interface" msgstr "アップリンク インターフェースの作成" msgid "" @@ -202,7 +199,7 @@ msgid "Overall Timeout" msgstr "実行間隔" msgid "Overall retry timeout in seconds." -msgstr "" +msgstr "全体的な再試行タイムアウト(秒)です。" msgid "Overview" msgstr "概要" @@ -283,6 +280,8 @@ msgstr "ステーション電波" msgid "" "The BSSID information '%s' is optional and only required for hidden networks" msgstr "" +"BSSID 情報 '%s' はオプションであり、ステルス化されたネットワークにのみ必要で" +"す。" msgid "" "This form allows you to modify the content of the main firewall " @@ -319,6 +318,9 @@ msgstr "" "このフォームには、システムログ内の Travelmate に関するメッセージのみが表示さ" "れます。" +msgid "This step has only to be done once." +msgstr "この手順は、一度だけ実行される必要があります。" + msgid "Travelmate" msgstr "Travelmate" @@ -346,9 +348,6 @@ msgstr "アップリンク BSSID" msgid "Uplink SSID" msgstr "アップリンク SSID" -msgid "Uplink interface" -msgstr "アップリンク インターフェース" - msgid "View AP QR-Codes" msgstr "AP QR-コードを確認" @@ -379,37 +378,11 @@ msgstr "無線スキャン" msgid "Wireless Stations" msgstr "無線ステーション" -msgid "" -"add it to the wan zone of the firewall. This step has only to be done once." -msgstr "" -"ファイアウォールの wan ゾーンに追加します。このステップは、一度だけ実行される" -"必要があります。" +msgid "add it to the wan zone of the firewall.<br />" +msgstr "ファイアウォールの wan ゾーンに追加します。<br />" msgid "hidden" -msgstr "(不明)" +msgstr "(ステルス)" msgid "n/a" msgstr "利用不可" - -#~ msgid "Enable 'automatic' mode" -#~ msgstr "'automatic' モードの有効化" - -#~ msgid "Force a manual uplink rescan / reconnect in 'trigger' mode." -#~ msgstr "" -#~ "'trigger' モード時に、手動でアップリンクの再スキャンと再接続を行います。" - -#~ msgid "" -#~ "Keep travelmate in an active state. Check every n seconds the connection " -#~ "status, i.e. the uplink availability." -#~ msgstr "" -#~ "Travelmate をアクティブ状態で維持します。\"実行間隔\" で設定された時間毎" -#~ "(秒)に、アップリンクの可用性を確認するために接続状態をチェックします" - -#~ msgid "Manual Rescan" -#~ msgstr "手動再スキャン" - -#~ msgid "Rescan" -#~ msgstr "再スキャン" - -#~ msgid "Timeout in seconds between retries in 'automatic' mode." -#~ msgstr "'automatic' モード時に接続を確認または再試行する間隔(秒)です。" diff --git a/applications/luci-app-travelmate/po/pt-br/travelmate.po b/applications/luci-app-travelmate/po/pt-br/travelmate.po index 5ea4d4a0d..6bf65b937 100644 --- a/applications/luci-app-travelmate/po/pt-br/travelmate.po +++ b/applications/luci-app-travelmate/po/pt-br/travelmate.po @@ -15,9 +15,6 @@ msgstr "" msgid "Actions" msgstr "" -msgid "Add Interface" -msgstr "" - msgid "Add Uplink" msgstr "" @@ -67,7 +64,7 @@ msgstr "" msgid "Connection Limit" msgstr "" -msgid "Create Uplink Interface" +msgid "Create Uplink interface" msgstr "" msgid "" @@ -292,6 +289,9 @@ msgid "" "messages only." msgstr "" +msgid "This step has only to be done once." +msgstr "" + msgid "Travelmate" msgstr "Travelmate" @@ -319,9 +319,6 @@ msgstr "" msgid "Uplink SSID" msgstr "" -msgid "Uplink interface" -msgstr "" - msgid "View AP QR-Codes" msgstr "" @@ -352,8 +349,7 @@ msgstr "" msgid "Wireless Stations" msgstr "" -msgid "" -"add it to the wan zone of the firewall. This step has only to be done once." +msgid "add it to the wan zone of the firewall.<br />" msgstr "" msgid "hidden" diff --git a/applications/luci-app-travelmate/po/ru/travelmate.po b/applications/luci-app-travelmate/po/ru/travelmate.po index fad31bb84..8b25e9b13 100644 --- a/applications/luci-app-travelmate/po/ru/travelmate.po +++ b/applications/luci-app-travelmate/po/ru/travelmate.po @@ -18,9 +18,6 @@ msgstr "" msgid "Actions" msgstr "Действия" -msgid "Add Interface" -msgstr "Добавить интерфейс" - msgid "Add Uplink" msgstr "Подключение к сети" @@ -70,8 +67,8 @@ msgstr "" msgid "Connection Limit" msgstr "Ограничение соединений" -msgid "Create Uplink Interface" -msgstr "Создать интерфейс сети" +msgid "Create Uplink interface" +msgstr "" msgid "" "Create a new wireless wan uplink interface, configure it to use dhcp and" @@ -315,6 +312,9 @@ msgstr "" "Страница просмотра системного журнала, показаны только события связанные с " "работой утилиты TravelMate." +msgid "This step has only to be done once." +msgstr "" + msgid "Travelmate" msgstr "TravelMate" @@ -342,9 +342,6 @@ msgstr "BSSID внешней сети" msgid "Uplink SSID" msgstr "SSID внешней сети" -msgid "Uplink interface" -msgstr "Интерфейс внешней сети" - msgid "View AP QR-Codes" msgstr "" @@ -375,9 +372,8 @@ msgstr "Найденные точки доступа Wi-Fi" msgid "Wireless Stations" msgstr "Клиенты беспроводной сети" -msgid "" -"add it to the wan zone of the firewall. This step has only to be done once." -msgstr "добавить в wan зону межсетевого экрана. Можно сделать только один раз." +msgid "add it to the wan zone of the firewall.<br />" +msgstr "" msgid "hidden" msgstr "скрытый" @@ -385,6 +381,21 @@ msgstr "скрытый" msgid "n/a" msgstr "нет данных" +#~ msgid "Add Interface" +#~ msgstr "Добавить интерфейс" + +#~ msgid "Create Uplink Interface" +#~ msgstr "Создать интерфейс сети" + +#~ msgid "Uplink interface" +#~ msgstr "Интерфейс внешней сети" + +#~ msgid "" +#~ "add it to the wan zone of the firewall. This step has only to be done " +#~ "once." +#~ msgstr "" +#~ "добавить в wan зону межсетевого экрана. Можно сделать только один раз." + #~ msgid "Enable 'automatic' mode" #~ msgstr "Включить режим 'автоматически'" diff --git a/applications/luci-app-travelmate/po/templates/travelmate.pot b/applications/luci-app-travelmate/po/templates/travelmate.pot index 8ba17668e..f4f341842 100644 --- a/applications/luci-app-travelmate/po/templates/travelmate.pot +++ b/applications/luci-app-travelmate/po/templates/travelmate.pot @@ -4,9 +4,6 @@ msgstr "Content-Type: text/plain; charset=UTF-8" msgid "Actions" msgstr "" -msgid "Add Interface" -msgstr "" - msgid "Add Uplink" msgstr "" @@ -56,7 +53,7 @@ msgstr "" msgid "Connection Limit" msgstr "" -msgid "Create Uplink Interface" +msgid "Create Uplink interface" msgstr "" msgid "" @@ -281,6 +278,9 @@ msgid "" "messages only." msgstr "" +msgid "This step has only to be done once." +msgstr "" + msgid "Travelmate" msgstr "" @@ -308,9 +308,6 @@ msgstr "" msgid "Uplink SSID" msgstr "" -msgid "Uplink interface" -msgstr "" - msgid "View AP QR-Codes" msgstr "" @@ -341,8 +338,7 @@ msgstr "" msgid "Wireless Stations" msgstr "" -msgid "" -"add it to the wan zone of the firewall. This step has only to be done once." +msgid "add it to the wan zone of the firewall.<br />" msgstr "" msgid "hidden" diff --git a/applications/luci-app-unbound/luasrc/model/cbi/unbound/configure.lua b/applications/luci-app-unbound/luasrc/model/cbi/unbound/configure.lua index bf2b65a0a..256bbb839 100644 --- a/applications/luci-app-unbound/luasrc/model/cbi/unbound/configure.lua +++ b/applications/luci-app-unbound/luasrc/model/cbi/unbound/configure.lua @@ -9,7 +9,7 @@ local rlh, rpv, vld, nvd, eds, prt, tlm local ctl, dlk, dom, dty, lfq, wfq, exa local dp6, d64, pfx, qry, qrs local pro, tgr, rsc, rsn, ag2, stt -local rpn, din, dfw +local rpn, din, dfw, ath local ucl = luci.model.uci.cursor() local valman = ucl:get_first("unbound", "unbound", "manual_conf") @@ -100,15 +100,6 @@ if valman ~= "1" then pfx.optional = true pfx:depends({ dns64 = true }) - qry = s1:taboption("basic", Flag, "query_minimize", translate("Query Minimize:"), - translate("Break down query components for limited added privacy")) - qry.rmempty = false - - qrs = s1:taboption("basic", Flag, "query_min_strict", translate("Strict Minimize:"), - translate("Strict version of 'query minimize' but it can break DNS")) - qrs.rmempty = false - qrs:depends({ query_minimize = true }) - prt = s1:taboption("basic", Value, "listen_port", translate("Listening Port:"), translate("Choose Unbounds listening port")) prt.datatype = "port" @@ -216,26 +207,43 @@ if valman ~= "1" then pro = s1:taboption("resource", ListValue, "protocol", translate("Recursion Protocol:"), translate("Chose the protocol recursion queries leave on")) - pro:value("mixed", translate("IP4 and IP6")) - pro:value("ip6_prefer", translate("IP6 Preferred")) + pro:value("default", translate("Default")) pro:value("ip4_only", translate("IP4 Only")) pro:value("ip6_only", translate("IP6 Only")) + pro:value("ip6_prefer", translate("IP6 Preferred")) + pro:value("mixed", translate("IP4 and IP6")) pro.rmempty = false + rsc = s1:taboption("resource", ListValue, "resource", translate("Memory Resource:"), + translate("Use menu System/Processes to observe any memory growth")) + rsc:value("default", translate("Default")) + rsc:value("tiny", translate("Tiny")) + rsc:value("small", translate("Small")) + rsc:value("medium", translate("Medium")) + rsc:value("large", translate("Large")) + rsc.rmempty = false + rsn = s1:taboption("resource", ListValue, "recursion", translate("Recursion Strength:"), translate("Recursion activity affects memory growth and CPU load")) - rsn:value("aggressive", translate("Aggressive")) rsn:value("default", translate("Default")) rsn:value("passive", translate("Passive")) + rsn:value("aggressive", translate("Aggressive")) rsn.rmempty = false - rsc = s1:taboption("resource", ListValue, "resource", translate("Memory Resource:"), - translate("Use menu System/Processes to observe any memory growth")) - rsc:value("large", translate("Large")) - rsc:value("medium", translate("Medium")) - rsc:value("small", translate("Small")) - rsc:value("tiny", translate("Tiny")) - rsc.rmempty = false + qry = s1:taboption("resource", Flag, "query_minimize", translate("Query Minimize:"), + translate("Break down query components for limited added privacy")) + qry.rmempty = false + qry:depends({ recursion = "passive" }) + qry:depends({ recursion = "aggressive" }) + + qrs = s1:taboption("resource", Flag, "query_min_strict", translate("Strict Minimize:"), + translate("Strict version of 'query minimize' but it can break DNS")) + qrs.rmempty = false + qrs:depends({ query_minimize = true }) + + ath = s1:taboption("resource", Flag, "prefetch_root", translate("Prefetch Root:"), + translate("Obtain complete root zone files and install in auth-zone: clause")) + ath.rmempty = false eds = s1:taboption("resource", Value, "edns_size", translate("EDNS Size:"), translate("Limit extended DNS packet size")) diff --git a/applications/luci-app-upnp/luasrc/view/upnp_status.htm b/applications/luci-app-upnp/luasrc/view/upnp_status.htm index 89fdb5e21..1e0922579 100644 --- a/applications/luci-app-upnp/luasrc/view/upnp_status.htm +++ b/applications/luci-app-upnp/luasrc/view/upnp_status.htm @@ -4,8 +4,8 @@ function(x) { var tb = document.getElementById('upnp_status_table'); - if (tb && (idx < tb.rows.length)) - tb.rows[0].parentNode.removeChild(tb.rows[idx]); + if (tb && (idx + 1 < tb.childNodes.length)) + tb.removeChild(tb.childNodes[idx + 1]); } ); } @@ -17,35 +17,21 @@ if (st && tb) { /* clear all rows */ - while( tb.rows.length > 1 ) - tb.deleteRow(1); + while (tb.firstElementChild !== tb.lastElementChild) + tb.removeChild(tb.lastElementChild); - for( var i = 0; i < st.length; i++ ) - { - var tr = tb.insertRow(-1); - tr.className = 'cbi-section-table-row cbi-rowstyle-' + ((i % 2) + 1); + for (var i = 0; i < st.length; i++) + tb.appendChild(E('<div class="tr cbi-section-table-row cbi-rowstyle-%d">'.format((i % 2) + 1), [ + E('<div class="td">', st[i].proto), + E('<div class="td">', st[i].extport), + E('<div class="td">', st[i].intaddr), + E('<div class="td">', st[i].intport), + E('<div class="td">', st[i].descr), + E('<input class="cbi-button cbi-input-remove" type="button" value="<%:Delete%>" onclick="upnp_delete_fwd(%d)" />'.format(st[i].num)) + ])); - tr.insertCell(-1).innerHTML = st[i].proto; - tr.insertCell(-1).innerHTML = st[i].extport; - tr.insertCell(-1).innerHTML = st[i].intaddr; - tr.insertCell(-1).innerHTML = st[i].intport; - tr.insertCell(-1).innerHTML = st[i].descr; - - tr.insertCell(-1).innerHTML = String.format( - '<input class="cbi-button cbi-input-remove" type="button" value="<%:Delete%>" onclick="upnp_delete_fwd(%d)" />', - st[i].num - ); - } - - if( tb.rows.length == 1 ) - { - var tr = tb.insertRow(-1); - tr.className = 'cbi-section-table-row'; - - var td = tr.insertCell(-1); - td.colSpan = 5; - td.innerHTML = '<em><br /><%:There are no active redirects.%></em>'; - } + if (tb.firstElementChild === tb.lastElementChild) + tb.appendChild(E('<div class="tr cbi-section-table-row"><div class="td"><em><br /><%:There are no active redirects.%></em></div></div>')); } } ); @@ -53,17 +39,17 @@ <fieldset class="cbi-section"> <legend><%:Active UPnP Redirects%></legend> - <table class="cbi-section-table" id="upnp_status_table"> - <tr class="cbi-section-table-titles"> - <th class="cbi-section-table-cell"><%:Protocol%></th> - <th class="cbi-section-table-cell"><%:External Port%></th> - <th class="cbi-section-table-cell"><%:Client Address%></th> - <th class="cbi-section-table-cell"><%:Client Port%></th> - <th class="cbi-section-table-cell"><%:Description%></th> - <th class="cbi-section-table-cell"> </th> - </tr> - <tr class="cbi-section-table-row"> - <td colspan="5"><em><br /><%:Collecting data...%></em></td> - </tr> - </table> + <div class="table cbi-section-table" id="upnp_status_table"> + <div class="tr cbi-section-table-titles"> + <div class="th cbi-section-table-cell"><%:Protocol%></div> + <div class="th cbi-section-table-cell"><%:External Port%></div> + <div class="th cbi-section-table-cell"><%:Client Address%></div> + <div class="th cbi-section-table-cell"><%:Client Port%></div> + <div class="th cbi-section-table-cell"><%:Description%></div> + <div class="th cbi-section-table-cell"> </div> + </div> + <div class="tr cbi-section-table-row"> + <div class="td" colspan="5"><em><br /><%:Collecting data...%></em></div> + </div> + </div> </fieldset> diff --git a/applications/luci-app-wireguard/luasrc/view/wireguard.htm b/applications/luci-app-wireguard/luasrc/view/wireguard.htm index 5af6232ae..64d995529 100644 --- a/applications/luci-app-wireguard/luasrc/view/wireguard.htm +++ b/applications/luci-app-wireguard/luasrc/view/wireguard.htm @@ -164,43 +164,43 @@ for ikey, iface in pairs(data) do -%> <legend><%:Interface%> <%=ikey%></legend> - <table width="100%" cellspacing="10"> - <tr> - <td width="33%" style="vertical-align:top"><%:Configuration%></td> - <td> - <table> - <tr> - <td id="<%=ikey%>_icon" style="width:16px; text-align:center; padding:3px"> + <div class="table" width="100%" cellspacing="10"> + <div class="tr"> + <div class="td" width="33%" style="vertical-align:top"><%:Configuration%></div> + <div class="td"> + <div class="table"> + <div class="tr"> + <div class="td" id="<%=ikey%>_icon" style="width:16px; text-align:center; padding:3px"> - </td> - <td id="<%=ikey%>_info" style="vertical-align:middle; padding: 3px"> + </div> + <div class="td" id="<%=ikey%>_info" style="vertical-align:middle; padding: 3px"> <em><%:Collecting data...%></em> - </td> - </tr></table> - </td> - </tr> + </div> + </div></div> + </div> + </div> <%- for pkey, peer in pairs(iface.peers) do -%> - <tr> - <td width="33%" style="vertical-align:top"><%:Peer%></td> - <td> - <table> - <tr> - <td id="<%=ikey%>_<%=peer.public_key%>_icon" style="width:16px; text-align:center; padding:3px"> + <div class="tr"> + <div class="td" width="33%" style="vertical-align:top"><%:Peer%></div> + <div class="td"> + <div class="table"> + <div class="tr"> + <div class="td" id="<%=ikey%>_<%=peer.public_key%>_icon" style="width:16px; text-align:center; padding:3px"> <img src="<%=resource%>/icons/tunnel_disabled.png" /><br /> <small>?</small> - </td> - <td id="<%=ikey%>_<%=peer.public_key%>_info" style="vertical-align:middle; padding: 3px"> + </div> + <div class="td" id="<%=ikey%>_<%=peer.public_key%>_info" style="vertical-align:middle; padding: 3px"> <em><%:Collecting data...%></em> - </td> - </tr></table> - </td> - </tr> + </div> + </div></div> + </div> + </div> <%- end -%> - </table> + </div> <%- end -%> |