diff --git a/BACKERS.md b/BACKERS.md index a13b2e38..8bfffb72 100644 --- a/BACKERS.md +++ b/BACKERS.md @@ -24,8 +24,9 @@ The following features are currently available exclusively to sponsors. A tangib ✅ [MAC address cloning](https://docs.raspap.com/net-devices/#changing-the-mac-address) ✅ [Network diagnostics](https://docs.raspap.com/net-devices/#diagnostics) ✅ [WireGuard VPN kill switch](https://docs.raspap.com/wireguard/#kill-switch) - ⚙️ Dynamic DNS support (in progress) - + ✅ [Dynamic DNS](https://docs.raspap.com/dynamicdns/) + ✅ [Multiple WireGuard configs](https://docs.raspap.com/wireguard/#multiple-configs) + Look for the list above to grow as we add more exclusive features. Be sure to visit this page from time to time to learn about what's new, check the [Insiders docs page](https://docs.raspap.com/insiders/) and follow [@RaspAP on Twitter](https://twitter.com/rasp_ap) to stay updated. ## Funding targets diff --git a/README.md b/README.md index 05e1429c..59dd657b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ![](https://i.imgur.com/xeKD93p.png) -[![Release 2.9.2](https://img.shields.io/badge/release-v2.9.2-green)](https://github.com/raspap/raspap-webgui/releases) [![Awesome](https://awesome.re/badge.svg)](https://github.com/thibmaek/awesome-raspberry-pi) [![Join Insiders](https://img.shields.io/static/v1?label=Join%20Insiders&message=%E2%9D%A4&logo=GitHub&color=ff69b4)](https://github.com/sponsors/RaspAP) [![Build Status](https://app.travis-ci.com/RaspAP/raspap-webgui.svg?branch=master)](https://app.travis-ci.com/RaspAP/raspap-webgui) [![Crowdin](https://badges.crowdin.net/raspap/localized.svg)](https://crowdin.com/project/raspap) [![Twitter URL](https://img.shields.io/twitter/url?label=%40RaspAP&logoColor=%23d8224c&url=https%3A%2F%2Ftwitter.com%2Frasp_ap)](https://twitter.com/rasp_ap) [![Subreddit subscribers](https://img.shields.io/reddit/subreddit-subscribers/RaspAP?style=social)](https://www.reddit.com/r/RaspAP/) +[![Release 2.9.3](https://img.shields.io/badge/release-v2.9.3-green)](https://github.com/raspap/raspap-webgui/releases) [![Awesome](https://awesome.re/badge.svg)](https://github.com/thibmaek/awesome-raspberry-pi) [![Join Insiders](https://img.shields.io/static/v1?label=Join%20Insiders&message=%E2%9D%A4&logo=GitHub&color=ff69b4)](https://github.com/sponsors/RaspAP) [![Build Status](https://app.travis-ci.com/RaspAP/raspap-webgui.svg?branch=master)](https://app.travis-ci.com/RaspAP/raspap-webgui) [![Crowdin](https://badges.crowdin.net/raspap/localized.svg)](https://crowdin.com/project/raspap) [![Twitter URL](https://img.shields.io/twitter/url?label=%40RaspAP&logoColor=%23d8224c&url=https%3A%2F%2Ftwitter.com%2Frasp_ap)](https://twitter.com/rasp_ap) [![Subreddit subscribers](https://img.shields.io/reddit/subreddit-subscribers/RaspAP?style=social)](https://www.reddit.com/r/RaspAP/) [![Join the chat at https://app.gitter.im/#/room/#RaspAP:gitter.im](https://img.shields.io/badge/chat-on%20gitter-brightgreen)](https://app.gitter.im/#/room/#RaspAP:gitter.im) RaspAP is feature-rich wireless router software that _just works_ on many popular [Debian-based devices](#supported-operating-systems), including the Raspberry Pi. Our popular [Quick installer](#quick-installer) creates a known-good default configuration for all current Raspberry Pis with onboard wireless. A fully responsive, mobile-ready interface gives you control over the relevant services and networking options. Advanced DHCP settings, WireGuard and OpenVPN support, [SSL certificates](https://docs.raspap.com/ssl-quick/), security audits, [captive portal integration](https://docs.raspap.com/captive/), themes and [multilingual options](https://docs.raspap.com/translations/) are included. @@ -32,7 +32,7 @@ We hope you enjoy using RaspAP as much as we do creating it. Tell us how you use - [License](#license) ## Prerequisites -Start with a clean install of the [latest release of Raspberry Pi OS (32-bit) Lite](https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit). The Raspberry Pi OS desktop and 64-bit beta distros are unsupported. +Start with a clean install of the [latest release of Raspberry Pi OS Lite](https://www.raspberrypi.com/software/operating-systems/). Both the 32- and 64-bit Lite versions are supported. The Raspberry Pi OS desktop distro is [unsupported](https://docs.raspap.com/faq/#distros). 1. Update Raspbian, including the kernel and firmware, followed by a reboot: ``` diff --git a/ajax/networking/get_frequencies.php b/ajax/networking/get_frequencies.php index 7fb29990..28d5ecd2 100644 --- a/ajax/networking/get_frequencies.php +++ b/ajax/networking/get_frequencies.php @@ -9,6 +9,7 @@ if (isset($_POST['interface'])) { define( 'NL80211_BAND_24GHZ', 0x1 ); define( 'NL80211_BAND_5GHZ', 0x2 ); $iface = escapeshellcmd($_POST['interface']); + $flags = 0; // get physical device for selected interface exec("iw dev | awk '/$iface/ {print line}{line = $0}'", $return); diff --git a/ajax/networking/get_netcfg.php b/ajax/networking/get_netcfg.php index aa207e1e..aee8e702 100644 --- a/ajax/networking/get_netcfg.php +++ b/ajax/networking/get_netcfg.php @@ -46,6 +46,7 @@ if (isset($interface)) { preg_match('/static\sdomain_name_server=(.*)/', $matched[0], $static_dns); preg_match('/fallback\sstatic_'.$interface.'/', $matched[0], $fallback); preg_match('/(?:no)?gateway/', $matched[0], $gateway); + preg_match('/nohook\swpa_supplicant/', $matched[0], $nohook_wpa_supplicant); $dhcpdata['Metric'] = $metric[1]; $dhcpdata['StaticIP'] = strpos($static_ip[1],'/') ? substr($static_ip[1], 0, strpos($static_ip[1],'/')) : $static_ip[1]; $dhcpdata['SubnetMask'] = cidr2mask($static_ip[1]); @@ -53,6 +54,7 @@ if (isset($interface)) { $dhcpdata['StaticDNS'] = $static_dns[1]; $dhcpdata['FallbackEnabled'] = empty($fallback) ? false: true; $dhcpdata['DefaultRoute'] = $gateway[0] == "gateway"; + $dhcpdata['NoHookWPASupplicant'] = $nohook_wpa_supplicant[0] == "nohook wpa_supplicant"; echo json_encode($dhcpdata); } diff --git a/app/css/material-dark.php b/app/css/material-dark.php new file mode 100644 index 00000000..fef671e8 --- /dev/null +++ b/app/css/material-dark.php @@ -0,0 +1,627 @@ + + + +/* +Theme Name: Material Dark +Author: @marek-guran +Author URI: https://github.com/marek-guran +Description: Inspired by Google's Material You Design +License: GNU General Public License v3.0 +*/ + + + +@import url('all.css'); + +body { + background-color: ; +} + +html * { + font-family: Helvetica,Arial,sans-serif; + color: ; +} + +.nav-item.active .nav-link { + position: relative; + background-color: ; + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); + border-top-right-radius: 18px; + border-bottom-right-radius: 18px; +} + +h2 { + font-size: 2rem !important; +} + +h4 { + font-size: 1.3rem; +} + +h5.card-title { + font-size: 1.2rem; +} + +.page-header { + border-left: .01rem solid ; + border-bottom: .01rem solid ; +} + +.sidebar-light .nav-item.active .nav-link i { + color: ; +} + +.sidebar .nav-item.active .nav-link { + font-weight: 400; +} + +.sidebar .nav-item .nav-link span:hover { + color: !important; +} + +#wrapper #content-wrapper #content { + background-color: ; +} + +.topbar { + background-color: ; +} + +.col { + color: ; +} + +.card-header .col i.fa-tachometer-alt, +.card-header .col i.fa-dot-circle, +.card-header .col i.fa-wifi, +.card-header .col i.fa-exchange-alt, +.card-header .col i.fa-hand-paper, +.card-header .col i.fa-network-wired, +.card-header .col i.fa-key, +.card-header .ra-wireguard, +.card-header .ra-wireguard:before, +.card-header .col i.fa-user-lock, +.card-header .col i.fa-chart-bar, +.card-header .col i.fa-cube, +.card-header .col i.fa-info-circle, +.card-header .col i.fa-globe, +.card-header .col i.fa-shield-alt { + color: ; +} + +i.fa-bars { + color: ; +} + +.nav-tabs { + border-bottom: 1px solid ; +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-link { + font-size: 1.0rem; + border-top-left-radius: 18px; + border-top-right-radius: 18px; +} + +.nav-tabs .nav-link:hover { + border-color: transparent; +} + +.navbar-default .navbar-brand:hover { + color: #d2d2d2; +} + +.navbar-default .navbar-toggle { + border-color: transparent; +} + +.navbar-default .navbar-toggle .icon-bar { + background-color: #d2d2d2; +} + +.navbar-default .navbar-toggle:focus, +.navbar-default .navbar-toggle:hover { + background-color: ; +} + +#content, .navbar, .sidebar, .footer, .sticky-footer { + background-attachment: scroll; + background-repeat: repeat; + background-size: auto; + background-position: 0 0; + background-origin: padding-box; + background-clip: border-box; +} + +.sticky-footer { + background-position: 30px 0; +} + +.sidebar { + background-position: 0 20px; +} + +.nav-tabs .nav-link.active { + color: ; + background-color: ; + border-color: transparent; +} + +a:focus, a:hover { + color: #d2d2d2; +} + +.card>.card-header, .modal-content, .modal-header { + border-color: transparent; + background-color: ; + color: ; + border-radius: 18px; + font-size: 1.0rem; + font-weight: 400; +} + +.modal-body { + background-color: ; +} + +.card-header { + border-bottom-left-radius: 0px!important; + border-bottom-right-radius: 0px!important; + position: relative; + margin-bottom: -18px; +} + +.card>.card-header .fa { + color: ; +} + +.card-header [class^="fa"] { + color: ; + font-size: 1.0rem; +} + +.card, .card-body { + border-color: transparent; + border-radius: 18px; + background-color: ; + box-shadow: 0px -5px 5px rgba(0, 0, 0, 0.1), + 0px 4px 6px rgba(0, 0, 0, 0.1); +} + +.card-body { + padding-top: 36px; /* 18px to move down + 18px space at the top */ + padding-bottom: 36px; /* 18px space at the bottom */ +} + +.unstyled { + background-color: ; + color: ; +} + +hr { + border-top: .01rem solid ; +} + +.sidebar-brand-text { + color: ; +} + +.ra-raspap:before { + color: #ac1b3d !important; +} + +.sidebar-light #sidebarToggle { + background-color: ; + border: 1px solid ; !important +} + +.sidebar-light #sidebarToggle::after { + color: ; +} + +.sidebar-light .nav-item .nav-link:hover i { + color: ; +} + +.sidebar-light #sidebarToggle:hover { + background-color: ; +} + +.sidebar.toggled .nav-item .nav-link span { + display: none; +} + +.sidebar.toggled .nav-item .nav-link { + text-align: center; + padding: .6rem 1rem; + width: 6.5rem; +} + +.card-footer, .modal-footer { + background-color: ; + color: ; + border-top: 0px; + border-bottom-right-radius: 18px!important; + border-bottom-left-radius: 18px!important; + position: relative; + margin-top: -18px; +} + +.modal-footer { + border-radius: 18px; +} + +.card>.card-header::before, .navbar-default::before { + content: " "; + display: block; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + z-index: 2; + background-size: 100% 2px, 3px 100%; + pointer-events: none; +} + +.sidebar-light, .sticky-footer { + background-color: ; +} + +.sidebar-light .nav-item .nav-link i { + color: rgba(230, 230, 230, .3); +} + +.sidebar .nav-item .nav-link { + padding: 0.6rem; + padding-left: 1.2rem; +} + +.sidebar-light hr.sidebar-divider { + border-top: 1px solid ; + padding-top: 0.5rem; +} + +.sidebar .nav-item .nav-link span { + font-size: 1.0rem; +} + +.topbar .topbar-divider { + border-right: 1px solid ; +} + +.label-warning { + background-color: #d2d2d2; +} + +span.label.label-warning { + color: ; +} + +.table>tbody>tr>td, +.table>tbody>tr>th, +.table>tfoot>tr>td, +.table>tfoot>tr>th, +.table>thead>tr>td, +.table>thead>tr>th { + background-color: ; + border-top: .01rem solid ; +} + +.table{ + border-radius: 18px; + overflow: hidden; +} + +.table>thead>tr>th { + vertical-align: bottom; + border-bottom: 0 solid ; +} + +[class*="btn"], [class*="btn"]:focus, [class*="btn"]:disabled { + background-color: ; + border-color: transparent; + border-radius: 18px; + color: ; +} + +[class*="btn"]:hover { + border-radius: 18px; + color: ; + background-color: ; + border-color: transparent; +} + +[class*="btn"]:hover .disabled { + background-color:red; +} + +[class*="alert"] { + border-radius: 18px; + color: ; + background-color: ; + border: 1px solid #404040; +} + +.close { + font-size: 1.2em; + font-weight: 400; + text-shadow: none; + color: ; +} + +.form-control, +.form-control:focus, +.custom-select { + color: ; + background-color: ; + border: 1px solid ; + border-radius: 18px; +} + +.form-control:disabled, +.form-control[readonly] { + background-color: ; + opacity: 0.5; +} + +.form-control::-webkit-input-placeholder { color: #d2d2d2; } +.form-control:-moz-placeholder { color: #d2d2d2; } +.form-control::-moz-placeholder { color: #d2d2d2; } +.form-control:-ms-input-placeholder { color: #d2d2d2; } +.form-control::-ms-input-placeholder { color: #d2d2d2; } + +.form-control option { + font-size: 1em; +} + +input[type="text"]{ +color: ; !important +} + +.progress { + background-color: ; + border-radius: 18px; +} + +.progress-bar { + color: ; +} + +#progressBar { + background-color: !important; +} + +.progress-bar.bg-success { + background-color: !important; + color: !important; +} + +.progress .progress-bar { + padding-left: 5px; +} + +.progress-bar.progress-bar-info.progress-bar-striped.active { + background-color: ; +} + +.figure-img { + filter: opacity(0.7); +} + +.ra-wireguard:before { + color: #404040 !important; +} + +.ra-wireguard:hover:before { + color: #d1d3e2 !important; +} + +.sidebar .nav-item.active .nav-link span.ra-wireguard:before { + color: #d2d2d2 !important; +} + +.custom-control-input:checked ~ .custom-control-label::before { + background-color: ; +} + +.custom-control-input:checked ~ .custom-control-label::before { + background-color: ; + border-color: ; +} + +.wg-keygen { + background-color: ; + border: 1px solid yellow ; + border-top-right-radius: 18px !important; + border-bottom-right-radius: 18px !important; +} + +.btn.btn-outline-secondary.js-add-dhcp-upstream-server { + background-color: ; + border: 1px solid ; + border-top-right-radius: 18px !important; + border-bottom-right-radius: 18px !important; +} + +.btn.btn-outline-success.js-add-dhcp-static-lease { + border: 1px solid ; +} + +.btn.btn-outline-success.js-add-dhcp-static-lease:hover { + background-color: ; +} + +.text-muted { + font-size: 0.8rem; +} + +.fas.fa-circle { + font-size: 0.7rem; +} + +pre { + background-color: ; + border: ; +} + +button.btn.btn-light.js-toggle-password { + border: 1px solid ; +} + +.btn-primary { + border-color: transparent; + background-color: ; +} + +.btn-primary:hover { + background-color: ; + border-color: transparent; +} + +.btn.service-status { + background-color: ; +} + +input.btn.btn-success { + background-color: ; +} + +input.btn.btn-success:hover { + background-color: ; + border-color: transparent; +} + +.signal-icon .signal-bar { + background: ; +} + +.figure-img { + border-radius: 18px; +} + +.logoutput { + border-radius: 18px!important; + background-color: ; + border: 1px solid !important; +} + +.btn-sm { + border-top-right-radius: 18px!important; + border-bottom-right-radius: 18px!important; +} + +.signal-icon .signal-bar { + background: ; +} + +input.btn.btn-warning { + background-color: ; +} + +input.btn.btn-warning:hover { + background-color: ;!important +} + +button.btn.btn-danger { + background-color: ; +} + +button.btn.btn-danger:hover { + background-color: ;!important +} + +.btn-group label.active { + background-color: !important; + border-color:transparent!important; + color: ;!important +} + +.btn-group { + background-color: ;!important +} + +.btn-group:hover { + background-color: ;!important +} + +.btn.btn-outline-secondary#gen_wpa_passphrase { + background-color: ; + border: 1px solid ; + border-top-right-radius: 18px !important; + border-bottom-right-radius: 18px !important; +} + +a.scroll-to-top.rounded { + display: inline; + background-color: ; + border-radius: 18px!important; +} + +a.scroll-to-top.rounded i.fas.fa-angle-up { + color: ; +} + +.btn.btn-sm.btn-outline-secondary.rounded-right { + border: 1px solid ; + background-color: ; +} + +.info-item.col-xs-3 { + color: ; +} + +.text-muted { + color: !important; +} + +.grid-stack-item-content { + width: 100%; + height: 100%; + padding: 5px; + box-sizing: border-box; +} diff --git a/app/css/material-light.php b/app/css/material-light.php new file mode 100644 index 00000000..f2ad6815 --- /dev/null +++ b/app/css/material-light.php @@ -0,0 +1,633 @@ + + + + +/* +Theme Name: Material Light +Author: @marek-guran +Author URI: https://github.com/marek-guran +Description: Inspired by Google's Material You Design +License: GNU General Public License v3.0 +*/ + + + +@import url('all.css'); + +body { + background-color: ; +} + +html * { + font-family: Helvetica,Arial,sans-serif; + color: ; +} + +.nav-item.active .nav-link { + position: relative; + background-color: ; + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); + border-top-right-radius: 18px; + border-bottom-right-radius: 18px; +} + +h2 { + font-size: 2rem !important; +} + +h4 { + font-size: 1.3rem; +} + +h5.card-title { + font-size: 1.2rem; +} + +.page-header { + border-left: .01rem solid ; + border-bottom: .01rem solid ; +} + +.sidebar-light .nav-item.active .nav-link i { + color: ; +} + +.sidebar .nav-item.active .nav-link { + font-weight: 400; + color: ; +} + +#wrapper #content-wrapper #content { + background-color: ; +} + +.topbar { + background-color: ; +} + +.col { + color: ; +} + +.card-header .col i.fa-tachometer-alt, +.card-header .col i.fa-dot-circle, +.card-header .col i.fa-wifi, +.card-header .col i.fa-exchange-alt, +.card-header .col i.fa-hand-paper, +.card-header .col i.fa-network-wired, +.card-header .col i.fa-key, +.card-header .ra-wireguard, +.card-header .ra-wireguard:before, +.card-header .col i.fa-user-lock, +.card-header .col i.fa-chart-bar, +.card-header .col i.fa-cube, +.card-header .col i.fa-info-circle, +.card-header .col i.fa-globe, +.card-header .col i.fa-shield-alt { + color: ; +} + +i.fa-bars { + color: ; +} + +.nav-tabs { + border-bottom: 1px solid ; +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-link { + font-size: 1.0rem; + border-top-left-radius: 18px; + border-top-right-radius: 18px; +} + +.nav-tabs .nav-link:hover { + border-color: transparent; +} + +.navbar-default .navbar-brand:hover { + color: #d2d2d2; +} + +.navbar-default .navbar-toggle { + border-color: transparent; +} + +.navbar-default .navbar-toggle .icon-bar { + background-color: #d2d2d2; +} + +.navbar-default .navbar-toggle:focus, +.navbar-default .navbar-toggle:hover { + background-color: ; +} + +#content, .navbar, .sidebar, .footer, .sticky-footer { + background-attachment: scroll; + background-repeat: repeat; + background-size: auto; + background-position: 0 0; + background-origin: padding-box; + background-clip: border-box; +} + +.sticky-footer { + background-position: 30px 0; +} + +.sidebar { + background-position: 0 20px; +} + +.nav-tabs .nav-link.active { + color: ; + background-color: ; + border-color: transparent; +} + +a:focus, a:hover { + color: #d2d2d2; +} + +.card>.card-header, .modal-content, .modal-header { + border-color: transparent; + background-color: ; + color: ; + border-radius: 18px; + font-size: 1.0rem; + font-weight: 400; +} + +.modal-body { + background-color: ; +} + +.card-header { + border-bottom-left-radius: 0px!important; + border-bottom-right-radius: 0px!important; + position: relative; + margin-bottom: -18px; +} + +.card>.card-header .fa { + color: ; +} + +.card-header [class^="fa"] { + color: ; + font-size: 1.0rem; +} + +.card, .card-body { + border-color: transparent; + border-radius: 18px; + background-color: ; + box-shadow: 0px -5px 5px rgba(0, 0, 0, 0.1), + 0px 4px 6px rgba(0, 0, 0, 0.1); +} + +.card-body { + padding-top: 36px; /* 18px to move down + 18px space at the top */ + padding-bottom: 36px; /* 18px space at the bottom */ +} + +.unstyled { + background-color: ; + color: ; +} + +hr { + border-top: .01rem solid ; +} + +.sidebar-brand-text { + color: ; +} + +.ra-raspap:before { + color: #ac1b3d !important; +} + +.sidebar-light #sidebarToggle { + background-color: ; + border: 1px solid ; !important +} + +.sidebar-light #sidebarToggle::after { + color: ; +} + +.sidebar-light .nav-item .nav-link:hover i { + color: ; +} + +.sidebar-light #sidebarToggle:hover { + background-color: ; +} + +.sidebar.toggled .nav-item .nav-link span { + display: none; +} + +.sidebar.toggled .nav-item .nav-link { + text-align: center; + padding: .6rem 1rem; + width: 6.5rem; +} + +.card-footer, .modal-footer { + background-color: ; + color: ; + border-top: 0px; + border-bottom-right-radius: 18px!important; + border-bottom-left-radius: 18px!important; + position: relative; + margin-top: -18px; +} + +.modal-footer { + border-radius: 18px; +} + +.card>.card-header::before, .navbar-default::before { + content: " "; + display: block; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + z-index: 2; + background-size: 100% 2px, 3px 100%; + pointer-events: none; +} + +.sidebar-light, .sticky-footer { + background-color: ; +} + +.sidebar-light .nav-item .nav-link i { + color: ;; +} + +.sidebar .nav-item .nav-link { + padding: 0.6rem; + padding-left: 1.2rem; +} + +.sidebar-light hr.sidebar-divider { + border-top: 1px solid ; + padding-top: 0.5rem; +} + +.sidebar .nav-item .nav-link span { + font-size: 1.0rem; +} + +.sidebar .nav-item .nav-link span:hover { + color: !important; +} + +.topbar .topbar-divider { + border-right: 1px solid ; +} + +.label-warning { + background-color: #d2d2d2; +} + +span.label.label-warning { + color: ; +} + +.table>tbody>tr>td, +.table>tbody>tr>th, +.table>tfoot>tr>td, +.table>tfoot>tr>th, +.table>thead>tr>td, +.table>thead>tr>th { + background-color: ; + border-top: .01rem solid ; +} + +.table{ + border-radius: 18px; + overflow: hidden; +} + +.table>thead>tr>th { + vertical-align: bottom; + border-bottom: 0 solid ; +} + +[class*="btn"], [class*="btn"]:focus, [class*="btn"]:disabled { + background-color: ; + border-color: transparent; + border-radius: 18px; + color: ; +} + +[class*="btn"]:hover { + border-radius: 18px; + color: ; + background-color: ; + border-color: transparent; +} + +[class*="btn"]:hover .disabled { + background-color:red; +} + +[class*="alert"] { + border-radius: 18px; + color: ; + background-color: ; + border: 1px solid #404040; +} + +.close { + font-size: 1.2em; + font-weight: 400; + text-shadow: none; + color: ; +} + +.form-control, +.form-control:focus, +.custom-select { + color: ; + background-color: ; + border: 1px solid ; + border-radius: 18px; +} + +.form-control:disabled, +.form-control[readonly] { + background-color: ; + opacity: 0.5; +} + +.form-control::-webkit-input-placeholder { color: #d2d2d2; } +.form-control:-moz-placeholder { color: #d2d2d2; } +.form-control::-moz-placeholder { color: #d2d2d2; } +.form-control:-ms-input-placeholder { color: #d2d2d2; } +.form-control::-ms-input-placeholder { color: #d2d2d2; } + +.form-control option { + font-size: 1em; +} + +.form-control::placeholder { + color: ; +} + +input[type="text"]{ +color: ; !important +} + +.progress { + background-color: ; + border-radius: 18px; +} + +.progress-bar { + color: ; +} + +#progressBar { + background-color: !important; +} + +.progress-bar.bg-success { + background-color: !important; + color: !important; +} + +.progress .progress-bar { + padding-left: 5px; +} + +.progress-bar.progress-bar-info.progress-bar-striped.active { + background-color: ; +} + +.figure-img { + filter: opacity(0.7); +} + +.ra-wireguard:before { + color: !important; +} + +.ra-wireguard:hover:before { + color: !important; +} + +.sidebar .nav-item.active .nav-link span.ra-wireguard:before { + color: !important; +} + +.custom-control-input:checked ~ .custom-control-label::before { + background-color: ; +} + +.custom-control-input:checked ~ .custom-control-label::before { + background-color: ; + border-color: ; +} + +.wg-keygen { + background-color: ; + border: 1px solid yellow ; + border-top-right-radius: 18px !important; + border-bottom-right-radius: 18px !important; +} + +.btn.btn-outline-secondary.js-add-dhcp-upstream-server { + background-color: ; + border: 1px solid ; + border-top-right-radius: 18px !important; + border-bottom-right-radius: 18px !important; +} + +.btn.btn-outline-success.js-add-dhcp-static-lease { + border: 1px solid ; +} + +.btn.btn-outline-success.js-add-dhcp-static-lease:hover { + background-color: ; +} + +.text-muted { + font-size: 0.8rem; +} + +.fas.fa-circle { + font-size: 0.7rem; +} + +pre { + background-color: ; + border: ; +} + +button.btn.btn-light.js-toggle-password { + border: 1px solid ; +} + +.btn-primary { + border-color: transparent; + background-color: ; +} + +.btn-primary:hover { + background-color: ; + border-color: transparent; +} + +.btn.service-status { + background-color: ; +} + +input.btn.btn-success { + background-color: ; +} + +input.btn.btn-success:hover { + background-color: ; + border-color: transparent; +} + +.signal-icon .signal-bar { + background: ; +} + +.figure-img { + border-radius: 18px; +} + +.logoutput { + border-radius: 18px!important; + background-color: ; + border: 1px solid !important; +} + +.btn-sm { + border-top-right-radius: 18px!important; + border-bottom-right-radius: 18px!important; +} + +.signal-icon .signal-bar { + background: ; +} + +input.btn.btn-warning { + background-color: ; +} + +input.btn.btn-warning:hover { + background-color: ;!important +} + +button.btn.btn-danger { + background-color: ; +} + +button.btn.btn-danger:hover { + background-color: ;!important +} + +.btn-group label.active { + background-color: !important; + border-color:transparent!important; + color: ;!important +} + +.btn-group { + background-color: ;!important +} + +.btn-group:hover { + background-color: ;!important +} + +.btn.btn-outline-secondary#gen_wpa_passphrase { + background-color: ; + border: 1px solid ; + border-top-right-radius: 18px !important; + border-bottom-right-radius: 18px !important; +} + +a.scroll-to-top.rounded { + display: inline; + background-color: ; + border-radius: 18px!important; +} + +a.scroll-to-top.rounded i.fas.fa-angle-up { + color: ; +} + +.btn.btn-sm.btn-outline-secondary.rounded-right { + border: 1px solid ; + background-color: ; +} + +.info-item.col-xs-3 { + color: ; +} + +.text-muted { + color: !important; +} + +.grid-stack-item-content { + width: 100%; + height: 100%; + padding: 5px; + box-sizing: border-box; +} diff --git a/app/js/custom.js b/app/js/custom.js index 40e181bc..d3fb9b3b 100644 --- a/app/js/custom.js +++ b/app/js/custom.js @@ -216,6 +216,12 @@ function loadInterfaceDHCPSelect() { $('#txtgateway').val(jsonData.StaticRouters); $('#chkfallback')[0].checked = jsonData.FallbackEnabled; $('#default-route').prop('checked', jsonData.DefaultRoute); + if (strInterface.startsWith("wl")) { + $('#nohook-wpa-supplicant').parent().parent().parent().show() + $('#nohook-wpa-supplicant').prop('checked', jsonData.NoHookWPASupplicant); + } else { + $('#nohook-wpa-supplicant').parent().parent().parent().hide() + } $('#txtrangestart').val(jsonData.RangeStart); $('#txtrangeend').val(jsonData.RangeEnd); $('#txtrangeleasetime').val(jsonData.leaseTime); @@ -530,12 +536,27 @@ function set_theme(theme) { } $(function() { + var currentTheme = getCookie('theme'); + // Check if the current theme is a dark theme + var isDarkTheme = currentTheme === 'lightsout.css' || currentTheme === 'material-dark.php'; + + $('#night-mode').prop('checked', isDarkTheme); $('#night-mode').change(function() { var state = $(this).is(':checked'); - if (state == true && getCookie('theme') != 'lightsout.css') { - set_theme('lightsout.css'); + var currentTheme = getCookie('theme'); + + if (state == true) { + if (currentTheme == 'custom.php') { + set_theme('lightsout.css'); + } else if (currentTheme == 'material-light.php') { + set_theme('material-dark.php'); + } } else { - set_theme('custom.php'); + if (currentTheme == 'lightsout.css') { + set_theme('custom.php'); + } else if (currentTheme == 'material-dark.php') { + set_theme('material-light.php'); + } } }); }); @@ -558,6 +579,8 @@ var themes = { "default": "custom.php", "hackernews" : "hackernews.css", "lightsout" : "lightsout.css", + "material-light" : "material-light.php", + "material-dark" : "material-dark.php", } // Toggles the sidebar navigation. diff --git a/app/js/linkquality.js b/app/js/linkquality.js index 40f87a7c..05eff9be 100644 --- a/app/js/linkquality.js +++ b/app/js/linkquality.js @@ -7,6 +7,16 @@ if (theme == 'lightsout.css') { var bgColor2 = '#141414'; var borderColor = 'rgba(37, 153, 63, 1)'; var labelColor = 'rgba(37, 153, 63, 1)'; +} else if (theme == 'material-light.php') { + var bgColor1 = 'rgba(255, 255, 255, 0.5)'; + var bgColor2 = 'rgba(0, 0, 0, 0.5)'; + var borderColor = '#f2f2fb'; + var labelColor = '#f2f2fb'; +} else if (theme == 'material-dark.php') { + var bgColor1 = 'rgba(255, 255, 255, 0.5)'; + var bgColor2 = 'rgba(0, 0, 0, 0.5)'; + var borderColor = '#f2f2fb'; + var labelColor = '#f2f2fb'; } else { var bgColor1 = '#d4edda'; var bgColor2 = '#eaecf4'; diff --git a/app/lib/system.php b/app/lib/system.php index 22f7255a..676c2201 100644 --- a/app/lib/system.php +++ b/app/lib/system.php @@ -40,10 +40,16 @@ class Sysinfo return $uptime; } + public function systime() + { + $systime = exec("date"); + return $systime; + } + public function usedMemory() { $used = shell_exec("free -m | awk 'NR==2{ total=$2 ; used=$3 } END { print used/total*100}'"); - return floor($used); + return floor(intval($used)); } public function processorCount() diff --git a/config/hostapd.conf b/config/hostapd.conf index cdb2a881..b88b5469 100644 --- a/config/hostapd.conf +++ b/config/hostapd.conf @@ -20,5 +20,5 @@ country_code=GB ## RaspAP wireless client AP mode #interface=uap0 -## RaspAP bridge AP mode (disabled by default) +## RaspAP bridge AP mode, disabled by default #bridge=br0 diff --git a/includes/adblock.php b/includes/adblock.php index c61c25f6..bf16bcb7 100755 --- a/includes/adblock.php +++ b/includes/adblock.php @@ -75,8 +75,11 @@ function DisplayAdBlockConfig() $dnsmasq_state = ($dnsmasq[0] > 0); $serviceStatus = $dnsmasq_state && $enabled ? "up" : "down"; - $adblock_custom_content = file_get_contents(RASPI_ADBLOCK_LISTPATH .'custom.txt'); - + if (file_exists(RASPI_ADBLOCK_LISTPATH .'custom.txt')) { + $adblock_custom_content = file_get_contents(RASPI_ADBLOCK_LISTPATH .'custom.txt'); + } else { + $adblock_custom_content = ''; + } $adblock_log = ''; exec('sudo chmod o+r '.RASPI_DHCPCD_LOG); $handle = fopen(RASPI_DHCPCD_LOG, "r"); diff --git a/includes/defaults.php b/includes/defaults.php index d84dbcd4..03e38311 100755 --- a/includes/defaults.php +++ b/includes/defaults.php @@ -6,7 +6,7 @@ if (!defined('RASPI_CONFIG')) { $defaults = [ 'RASPI_BRAND_TEXT' => 'RaspAP', - 'RASPI_VERSION' => '2.9.2', + 'RASPI_VERSION' => '2.9.3', 'RASPI_CONFIG_NETWORK' => RASPI_CONFIG.'/networking/defaults.json', 'RASPI_ADMIN_DETAILS' => RASPI_CONFIG.'/raspap.auth', 'RASPI_WIFI_AP_INTERFACE' => 'wlan0', diff --git a/includes/dhcp.php b/includes/dhcp.php index 9165e8ae..72601374 100755 --- a/includes/dhcp.php +++ b/includes/dhcp.php @@ -187,12 +187,14 @@ function updateDnsmasqConfig($iface,$status) } // Static leases $staticLeases = array(); - for ($i=0; $i < count($_POST["static_leases"]["mac"]); $i++) { - $mac = trim($_POST["static_leases"]["mac"][$i]); - $ip = trim($_POST["static_leases"]["ip"][$i]); - $comment = trim($_POST["static_leases"]["comment"][$i]); - if ($mac != "" && $ip != "") { - $staticLeases[] = array('mac' => $mac, 'ip' => $ip, 'comment' => $comment); + if (isset($_POST["static_leases"]["mac"])) { + for ($i=0; $i < count($_POST["static_leases"]["mac"]); $i++) { + $mac = trim($_POST["static_leases"]["mac"][$i]); + $ip = trim($_POST["static_leases"]["ip"][$i]); + $comment = trim($_POST["static_leases"]["comment"][$i]); + if ($mac != "" && $ip != "") { + $staticLeases[] = array('mac' => $mac, 'ip' => $ip, 'comment' => $comment); + } } } // Sort ascending by IPs @@ -253,24 +255,27 @@ function updateDHCPConfig($iface,$status) { $cfg[] = '# RaspAP '.$iface.' configuration'; $cfg[] = 'interface '.$iface; - if (isset($_POST['StaticIP'])) { + if (isset($_POST['StaticIP']) && $_POST['StaticIP'] !== '') { $mask = ($_POST['SubnetMask'] !== '' && $_POST['SubnetMask'] !== '0.0.0.0') ? '/'.mask2cidr($_POST['SubnetMask']) : null; $cfg[] = 'static ip_address='.$_POST['StaticIP'].$mask; } - if (isset($_POST['DefaultGateway'])) { - $cfg[] = 'static routers='.$_POST['DefaultGateway']; + if (isset($_POST['DefaultGateway']) && $_POST['DefaultGateway'] !== '') { + $cfg[] = 'static routers='.$_POST['DefaultGateway']; } if ($_POST['DNS1'] !== '' || $_POST['DNS2'] !== '') { $cfg[] = 'static domain_name_server='.$_POST['DNS1'].' '.$_POST['DNS2']; } if ($_POST['Metric'] !== '') { - $cfg[] = 'metric '.$_POST['Metric']; + $cfg[] = 'metric '.$_POST['Metric']; } if ($_POST['Fallback'] == 1) { $cfg[] = 'profile static_'.$iface; $cfg[] = 'fallback static_'.$iface; } $cfg[] = $_POST['DefaultRoute'] == '1' ? 'gateway' : 'nogateway'; + if (( substr($iface, 0, 2) === "wl") && $_POST['NoHookWPASupplicant'] == '1') { + $cfg[] = 'nohook wpa_supplicant'; + } $dhcp_cfg = file_get_contents(RASPI_DHCPCD_CONFIG); if (!preg_match('/^interface\s'.$iface.'$/m', $dhcp_cfg)) { $cfg[] = PHP_EOL; diff --git a/includes/functions.php b/includes/functions.php index 35d285cf..ca264ff7 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -52,11 +52,15 @@ function mask2cidr($mask) */ function cidr2mask($cidr) { - $ta = substr ($cidr, strpos ($cidr, '/') + 1) * 1; - $netmask = str_split (str_pad (str_pad ('', $ta, '1'), 32, '0'), 8); - foreach ($netmask as &$element) - $element = bindec ($element); - return join ('.', $netmask); + $ipParts = explode('/', $cidr); + $ip = $ipParts[0]; + $prefixLength = $ipParts[1]; + + $ipLong = ip2long($ip); + $netmaskLong = bindec(str_pad(str_repeat('1', $prefixLength), 32, '0')); + $netmask = long2ip(intval($netmaskLong)); + + return $netmask; } /** @@ -314,23 +318,23 @@ function CSRFMetaTag() */ function CSRFValidate() { - $post_token = $_POST['csrf_token']; - $header_token = $_SERVER['HTTP_X_CSRF_TOKEN']; + if(isset($_POST['csrf_token'])) { + $post_token = $_POST['csrf_token']; + $header_token = $_SERVER['HTTP_X_CSRF_TOKEN']; - if (empty($post_token) && empty($header_token)) { - return false; - } - - $request_token = $post_token; - if (empty($post_token)) { - $request_token = $header_token; - } - - if (hash_equals($_SESSION['csrf_token'], $request_token)) { - return true; - } else { - error_log('CSRF violation'); - return false; + if (empty($post_token) && empty($header_token)) { + return false; + } + $request_token = $post_token; + if (empty($post_token)) { + $request_token = $header_token; + } + if (hash_equals($_SESSION['csrf_token'], $request_token)) { + return true; + } else { + error_log('CSRF violation'); + return false; + } } } @@ -426,8 +430,9 @@ function ParseConfig($arrConfig) continue; } - list($option, $value) = array_map("trim", explode("=", $line, 2)); - + if (strpos($line, "=") !== false) { + list($option, $value) = array_map("trim", explode("=", $line, 2)); + } if (empty($config[$option])) { $config[$option] = $value ?: true; } else { @@ -680,8 +685,10 @@ function getColorOpt() } function getSidebarState() { - if ($_COOKIE['sidebarToggled'] == 'true' ) { - return"toggled"; + if(isset($_COOKIE['sidebarToggled'])) { + if ($_COOKIE['sidebarToggled'] == 'true' ) { + return "toggled"; + } } } diff --git a/includes/hostapd.php b/includes/hostapd.php index 9e50d608..3dbbf6cf 100755 --- a/includes/hostapd.php +++ b/includes/hostapd.php @@ -40,22 +40,25 @@ function DisplayHostAPDConfig() exec($cmd, $txpower); $txpower = intval($txpower[0]); + if (isset($_POST['interface'])) { + $interface = escapeshellarg($_POST['interface']); + } if (!RASPI_MONITOR_ENABLED) { if (isset($_POST['SaveHostAPDSettings'])) { SaveHostAPDConfig($arrSecurity, $arrEncType, $arr80211Standard, $interfaces, $status); } } - $arrHostapdConf = parse_ini_file('/etc/raspap/hostapd.ini'); + $arrHostapdConf = parse_ini_file(RASPI_CONFIG.'/hostapd.ini'); if (!RASPI_MONITOR_ENABLED) { if (isset($_POST['StartHotspot']) || isset($_POST['RestartHotspot'])) { $status->addMessage('Attempting to start hotspot', 'info'); if ($arrHostapdConf['BridgedEnable'] == 1) { - exec('sudo /etc/raspap/hostapd/servicestart.sh --interface br0 --seconds 3', $return); + exec('sudo '.RASPI_CONFIG.'/hostapd/servicestart.sh --interface br0 --seconds 3', $return); } elseif ($arrHostapdConf['WifiAPEnable'] == 1) { - exec('sudo /etc/raspap/hostapd/servicestart.sh --interface uap0 --seconds 3', $return); + exec('sudo '.RASPI_CONFIG.'/hostapd/servicestart.sh --interface uap0 --seconds 3', $return); } else { - exec('sudo /etc/raspap/hostapd/servicestart.sh --seconds 3', $return); + exec('sudo '.RASPI_CONFIG.'/hostapd/servicestart.sh --seconds 3', $return); } foreach ($return as $line) { $status->addMessage($line, 'info'); @@ -69,9 +72,11 @@ function DisplayHostAPDConfig() } } exec('cat '. RASPI_HOSTAPD_CONFIG, $hostapdconfig); - exec('iwgetid '. escapeshellarg($_POST['interface']). ' -r', $wifiNetworkID); - if (!empty($wifiNetworkID[0])) { - $managedModeEnabled = true; + if (isset($interface)) { + exec('iwgetid '. $interface. ' -r', $wifiNetworkID); + if (!empty($wifiNetworkID[0])) { + $managedModeEnabled = true; + } } $hostapdstatus = $system->hostapdStatus(); $serviceStatus = $hostapdstatus[0] == 0 ? "down" : "up"; @@ -98,16 +103,18 @@ function DisplayHostAPDConfig() $arrConfig['country_code'] = $country_code[0]; } // set txpower with iw if value is non-default ('auto') - if (isset($_POST['txpower']) && ($_POST['txpower'] != 'auto')) { - $txpower = intval($_POST['txpower']); - $sdBm = $txpower * 100; - exec('sudo /sbin/iw dev '.escapeshellarg($_POST['interface']).' set txpower fixed '.$sdBm, $return); - $status->addMessage('Setting transmit power to '.$_POST['txpower'].' dBm.', 'success'); - $txpower = $_POST['txpower']; - } elseif ($_POST['txpower'] == 'auto') { - exec('sudo /sbin/iw dev '.escapeshellarg($_POST['interface']).' set txpower auto', $return); - $status->addMessage('Setting transmit power to '.$_POST['txpower'].'.', 'success'); - $txpower = $_POST['txpower']; + if (isset($_POST['txpower'])) { + if ($_POST['txpower'] != 'auto') { + $txpower = intval($_POST['txpower']); + $sdBm = $txpower * 100; + exec('sudo /sbin/iw dev '.$interface.' set txpower fixed '.$sdBm, $return); + $status->addMessage('Setting transmit power to '.$_POST['txpower'].' dBm.', 'success'); + $txpower = $_POST['txpower']; + } elseif ($_POST['txpower'] == 'auto') { + exec('sudo /sbin/iw dev '.$interface.' set txpower auto', $return); + $status->addMessage('Setting transmit power to '.$_POST['txpower'].'.', 'success'); + $txpower = $_POST['txpower']; + } } $countries_5Ghz_max48ch = RASPI_5GHZ_ISO_ALPHA2; @@ -132,6 +139,8 @@ function DisplayHostAPDConfig() if ($selectedHwMode === $hwModeDisabled) { unset($selectedHwMode); } + } else { + $hwModeDisabled = null; } echo renderTemplate( @@ -168,13 +177,16 @@ function DisplayHostAPDConfig() */ function SaveHostAPDConfig($wpa_array, $enc_types, $modes, $interfaces, $status) { - // It should not be possible to send bad data for these fields so clearly - // someone is up to something if they fail. Fail silently. + // It should not be possible to send bad data for these fields. + // If wpa fields are absent, return false and log securely. if (!(array_key_exists($_POST['wpa'], $wpa_array) && array_key_exists($_POST['wpa_pairwise'], $enc_types) && array_key_exists($_POST['hw_mode'], $modes)) ) { - error_log("Attempting to set hostapd config with wpa='".$_POST['wpa']."', wpa_pairwise='".$_POST['wpa_pairwise']."' and hw_mode='".$_POST['hw_mode']."'"); // FIXME: log injection + $err = "Attempting to set hostapd config with wpa='".escapeshellarg($_POST['wpa']); + $err .= "', wpa_pairwise='".$escapeshellarg(_POST['wpa_pairwise']); + $err .= "and hw_mode='".$escapeshellarg(_POST['hw_mode'])."'"; + error_log($err); return false; } // Validate input diff --git a/includes/locale.php b/includes/locale.php index 16bbf45f..a9f07f65 100755 --- a/includes/locale.php +++ b/includes/locale.php @@ -75,6 +75,9 @@ if (empty($_SESSION['locale']) && strlen($_SERVER['HTTP_ACCEPT_LANGUAGE']) >= 2) case "pl": $locale = "pl_PL.UTF-8"; break; + case "sk": + $locale = "sk_SK.UTF-8"; + break; default: $locale = "en_GB.UTF-8"; break; @@ -117,10 +120,10 @@ function getLocales() 'pt_BR.UTF-8' => 'Português', 'ru_RU.UTF-8' => 'Русский', 'ro_RO.UTF-8' => 'Română', + 'sk_SK.UTF-8' => 'Slovenčina', 'sv_SE.UTF-8' => 'Svenska', 'tr_TR.UTF-8' => 'Türkçe', 'vi_VN.UTF-8' => 'Tiếng Việt (Vietnamese)' ); - return $arrLocales; + return $arrLocales; } - diff --git a/includes/openvpn.php b/includes/openvpn.php index a89c3e18..a00cef87 100755 --- a/includes/openvpn.php +++ b/includes/openvpn.php @@ -64,7 +64,7 @@ function DisplayOpenVPNConfig() ftruncate($f, 0); fclose($f); } - } elseif (isset($_POST['log-openvpn']) || filesize('/tmp/openvpn.log') >0) { + } elseif (isset($_POST['log-openvpn']) || file_exists('/tmp/openvpn.log')) { $logEnable = 1; exec("sudo /etc/raspap/openvpn/openvpnlog.sh", $logOutput); $logOutput = file_get_contents('/tmp/openvpn.log'); diff --git a/includes/system.php b/includes/system.php index 774745b9..3babf0c5 100755 --- a/includes/system.php +++ b/includes/system.php @@ -125,7 +125,11 @@ function DisplaySystem(&$extraFooterScripts) exec('cat '. RASPI_LIGHTTPD_CONFIG, $return); $conf = ParseConfig($return); $serverPort = $conf['server.port']; - $serverBind = str_replace('"', '',$conf['server.bind']); + if (isset($conf['server.bind'])) { + $serverBind = str_replace('"', '',$conf['server.bind']); + } else { + $serverBind = ''; + } // define locales $arrLocales = getLocales(); @@ -138,6 +142,7 @@ function DisplaySystem(&$extraFooterScripts) $cores = $system->processorCount(); $os = $system->operatingSystem(); $kernel = $system->kernelVersion(); + $systime = $system->systime(); // mem used $memused = $system->usedMemory(); @@ -189,11 +194,13 @@ function DisplaySystem(&$extraFooterScripts) // theme options $themes = [ "default" => "RaspAP (default)", - "hackernews" => "HackerNews" + "hackernews" => "HackerNews", + "material-light" => "Material" ]; $themeFiles = [ "default" => "custom.php", - "hackernews" => "hackernews.css" + "hackernews" => "hackernews.css", + "material-light" => "material-light.php" ]; $selectedTheme = array_search($_COOKIE['theme'], $themeFiles); @@ -207,6 +214,7 @@ function DisplaySystem(&$extraFooterScripts) "serverBind", "hostname", "uptime", + "systime", "cores", "os", "kernel", @@ -222,6 +230,6 @@ function DisplaySystem(&$extraFooterScripts) "hostapd_status", "hostapd_led", "themes", - "selectedTheme" + "selectedTheme" )); } diff --git a/includes/wifi_functions.php b/includes/wifi_functions.php index 990ff07c..34f8bc58 100755 --- a/includes/wifi_functions.php +++ b/includes/wifi_functions.php @@ -77,44 +77,46 @@ function nearbyWifiStations(&$networks, $cached = true) if ( isset($lastnet['index']) ) $index = $lastnet['index'] + 1; } - array_shift($scan_results); - foreach ($scan_results as $network) { - $arrNetwork = preg_split("/[\t]+/", $network); // split result into array - $ssid = $arrNetwork[4]; + if (is_array($scan_results)) { + array_shift($scan_results); + foreach ($scan_results as $network) { + $arrNetwork = preg_split("/[\t]+/", $network); // split result into array + $ssid = $arrNetwork[4]; - // exclude raspap ssid - if (empty($ssid) || $ssid == $ap_ssid) { - continue; - } + // exclude raspap ssid + if (empty($ssid) || $ssid == $ap_ssid) { + continue; + } - // filter SSID string: unprintable 7bit ASCII control codes, delete or quotes -> ignore network - if (preg_match('[\x00-\x1f\x7f\'\`\´\"]', $ssid)) { - continue; - } + // filter SSID string: unprintable 7bit ASCII control codes, delete or quotes -> ignore network + if (preg_match('[\x00-\x1f\x7f\'\`\´\"]', $ssid)) { + continue; + } - // If network is saved - if (array_key_exists($ssid, $networks)) { - $networks[$ssid]['visible'] = true; - $networks[$ssid]['channel'] = ConvertToChannel($arrNetwork[1]); - // TODO What if the security has changed? - } else { - $networks[$ssid] = array( - 'ssid' => $ssid, - 'configured' => false, - 'protocol' => ConvertToSecurity($arrNetwork[3]), - 'channel' => ConvertToChannel($arrNetwork[1]), - 'passphrase' => '', - 'visible' => true, - 'connected' => false, - 'index' => $index - ); - ++$index; - } + // If network is saved + if (array_key_exists($ssid, $networks)) { + $networks[$ssid]['visible'] = true; + $networks[$ssid]['channel'] = ConvertToChannel($arrNetwork[1]); + // TODO What if the security has changed? + } else { + $networks[$ssid] = array( + 'ssid' => $ssid, + 'configured' => false, + 'protocol' => ConvertToSecurity($arrNetwork[3]), + 'channel' => ConvertToChannel($arrNetwork[1]), + 'passphrase' => '', + 'visible' => true, + 'connected' => false, + 'index' => $index + ); + ++$index; + } - // Save RSSI, if the current value is larger than the already stored - if (array_key_exists(4, $arrNetwork) && array_key_exists($arrNetwork[4], $networks)) { - if (! array_key_exists('RSSI', $networks[$arrNetwork[4]]) || $networks[$ssid]['RSSI'] < $arrNetwork[2]) { - $networks[$ssid]['RSSI'] = $arrNetwork[2]; + // Save RSSI, if the current value is larger than the already stored + if (array_key_exists(4, $arrNetwork) && array_key_exists($arrNetwork[4], $networks)) { + if (! array_key_exists('RSSI', $networks[$arrNetwork[4]]) || $networks[$ssid]['RSSI'] < $arrNetwork[2]) { + $networks[$ssid]['RSSI'] = $arrNetwork[2]; + } } } } diff --git a/index.php b/index.php index 89ba8f25..fff5f50d 100755 --- a/index.php +++ b/index.php @@ -14,7 +14,7 @@ * @author Lawrence Yau * @author Bill Zimmerman * @license GNU General Public License, version 3 (GPL-3.0) - * @version 2.9.2 + * @version 2.9.3 * @link https://github.com/RaspAP/raspap-webgui/ * @link https://raspap.com/ * @see http://sirlagz.net/2013/02/08/raspap-webgui/ diff --git a/installers/common.sh b/installers/common.sh index d7a046af..ff759c05 100755 --- a/installers/common.sh +++ b/installers/common.sh @@ -140,7 +140,13 @@ function _get_linux_distro() { # Sets php package option based on Linux version, abort if unsupported distro function _set_php_package() { case $RELEASE in - 22.04|20.04|18.04|19.10|11*) # Ubuntu Server, Debian 11 & Armbian 22.05 + 23.05|12*) # Debian 12 & Armbian 23.05 + php_package="php8.2-cgi" + phpcgiconf="/etc/php/8.2/cgi/php.ini" ;; + 23.04) # Ubuntu Server 23.04 + php_package="php8.1-cgi" + phpcgiconf="/etc/php/8.1/cgi/php.ini" ;; + 22.04|20.04|18.04|19.10|11*) # Previous Ubuntu Server, Debian & Armbian distros php_package="php7.4-cgi" phpcgiconf="/etc/php/7.4/cgi/php.ini" ;; 10*|11*) @@ -165,6 +171,8 @@ function _set_php_package() { function _manage_systemd_services() { _install_log "Checking for systemd network services" + _check_notify_ubuntu + services=( "systemd-networkd" "systemd-resolved" ) for svc in "${services[@]}"; do # Prompt to disable systemd service @@ -189,10 +197,27 @@ function _manage_systemd_services() { _install_status 0 } +# Notifies Ubuntu users of pre-install requirements +function _check_notify_ubuntu() { + if [ ${OS,,} = "ubuntu" ]; then + _install_status 2 "Ubuntu Server requires manual pre- and post-install steps. See https://docs.raspap.com/manual/" + echo -n "Proceed with installation? [Y/n]: " + read answer < /dev/tty + if [ "$answer" != "${answer#[Nn]}" ]; then + echo "Installation aborted." + exit 0 + else + _install_status 0 + fi + fi +} + # Runs a system software update to make sure we're using all fresh packages function _install_dependencies() { _install_log "Installing required packages" _set_php_package + + # OS-specific packages if [ "$php_package" = "php7.4-cgi" ] && [ ${OS,,} = "ubuntu" ] && [[ ${RELEASE} =~ ^(22.04|20.04|18.04|19.10|11) ]]; then echo "Adding apt-repository ppa:ondrej/php" sudo apt-get install -y software-properties-common || _install_status 1 "Unable to install dependency" @@ -202,11 +227,13 @@ function _install_dependencies() { fi if [ ${OS,,} = "debian" ] || [ ${OS,,} = "ubuntu" ]; then dhcpcd_package="dhcpcd5" + iw_package="iw" fi + # Set dconf-set-selections echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections - sudo apt-get install -y lighttpd git hostapd dnsmasq iptables-persistent $php_package $dhcpcd_package vnstat qrencode || _install_status 1 "Unable to install dependencies" + sudo apt-get install -y lighttpd git hostapd dnsmasq iptables-persistent $php_package $dhcpcd_package $iw_package vnstat qrencode || _install_status 1 "Unable to install dependencies" _install_status 0 } @@ -461,6 +488,10 @@ function _download_latest_files() { fi _install_log "Cloning latest files from github" + if [ "$repo" == "RaspAP/raspap-insiders" ]; then + _install_status 3 + echo "Insiders please read this: https://docs.raspap.com/insiders/#authentication" + fi git clone --branch $branch --depth 1 -c advice.detachedHead=false $git_source_url /tmp/raspap-webgui || _install_status 1 "Unable to download files from github" sudo mv /tmp/raspap-webgui $webroot_dir || _install_status 1 "Unable to move raspap-webgui to web root" @@ -718,11 +749,17 @@ function _optimize_php() { function _install_complete() { _install_log "Installation completed" - echo "Join RaspAP Insiders for early access to exclusive features!" - echo -e "${ANSI_RASPBERRY}" - echo "> https://docs.raspap.com/insiders/" - echo "> https://github.com/sponsors/RaspAP/" - echo -e "${ANSI_RESET}" + if [ "$repo" == "RaspAP/raspap-insiders" ]; then + echo -e "${ANSI_RASPBERRY}" + echo "Thank you for supporting this project as an Insider!" + echo -e "${ANSI_RESET}" + else + echo "Join RaspAP Insiders for early access to exclusive features!" + echo -e "${ANSI_RASPBERRY}" + echo "> https://docs.raspap.com/insiders/" + echo "> https://github.com/sponsors/RaspAP/" + echo -e "${ANSI_RESET}" + fi if [ "$assume_yes" == 0 ]; then # Prompt to reboot if wired ethernet (eth0) is connected. # With default_configuration this will create an active AP on restart. diff --git a/installers/raspbian.sh b/installers/raspbian.sh index 91324d6e..e6a1e9da 100755 --- a/installers/raspbian.sh +++ b/installers/raspbian.sh @@ -234,6 +234,8 @@ function _install_status() { 2) echo -e "[$ANSI_YELLOW \U26A0 warning $ANSI_RESET] $2" ;; + 3) + echo -e "[$ANSI_RASPBERRY ! important $ANSI_RESET] $2" esac } diff --git a/locale/de_DE/LC_MESSAGES/messages.mo b/locale/de_DE/LC_MESSAGES/messages.mo index 18e2ce99..a88e0cb6 100644 Binary files a/locale/de_DE/LC_MESSAGES/messages.mo and b/locale/de_DE/LC_MESSAGES/messages.mo differ diff --git a/locale/de_DE/LC_MESSAGES/messages.po b/locale/de_DE/LC_MESSAGES/messages.po index ca08abb8..ad46bfa4 100644 --- a/locale/de_DE/LC_MESSAGES/messages.po +++ b/locale/de_DE/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: raspap\n" "Report-Msgid-Bugs-To: Bill Zimmerman \n" "POT-Creation-Date: 2017-10-19 08:56+0000\n" -"PO-Revision-Date: 2023-02-22 08:17\n" +"PO-Revision-Date: 2023-06-22 05:56\n" "Last-Translator: Bill Zimmerman \n" "Language-Team: German\n" "Language: de_DE\n" @@ -433,8 +433,8 @@ msgstr "Format" msgid "Choose a hosted server" msgstr "Gehosteten Server auswählen" -msgid "Enable these options to log DHCP server activity." -msgstr "Aktivieren Sie diese Optionen, um die DHCP-Serveraktivität zu protokollieren." +msgid "Enable these options to log dhcpcd and dnsmasq activity." +msgstr "Diese Optionen Aktivieren dhcpcd und dnsmasq Logging." msgid "Log DHCP requests" msgstr "DHCP-Anfragen protokollieren" @@ -485,8 +485,8 @@ msgstr "Sicherheitstyp" msgid "Encryption Type" msgstr "Verschlüsselungstyp" -msgid "Pre-shared key (PSK)" -msgstr "Pre-Shared-Key (PSK)" +msgid "PSK" +msgstr "PSK" msgid "Advanced settings" msgstr "Erweiterte Einstellungen" @@ -606,7 +606,7 @@ msgid "Scan this QR code directly or %s %sprint a sign%s for your users." msgstr "QR-Code direkt scannen oder %s %sein Zeichen drucken%s für die Benutzer." msgid "Printable Wi-Fi sign" -msgstr "" +msgstr "Printable Wi-Fi sign" msgid "To connect with your phone or tablet, scan the QR code above with your camera app." msgstr "Um sich mit dem Telefon oder Tablet zu verbinden, den obigen QR-Code mit der Kamera-App scannen." @@ -617,6 +617,21 @@ msgstr "Für andere Geräte die Anmeldedaten unten verwenden." msgid "Network" msgstr "Netzwerk" +msgid "The selected interface (%s) has support for the 2.4 GHz wireless band only." +msgstr "Die ausgewählte Schnittstelle (%s) unterstützt nur das 2,4 GHz Band." + +msgid "The selected interface (%s) has support for the 2.5 GHz wireless band only." +msgstr "Die ausgewählte Schnittstelle (%s) unterstützt nur das 2,4 GHz Band." + +msgid "The selected interface (%s) has support for both the 2.4 and 5 GHz wireless bands." +msgstr "Die ausgewählte Schnittstelle (%s) unterstützt das 2,4 und 5 GHz Band." + +msgid "The selected interface (%s) does not support wireless mode operation." +msgstr "Die ausgewählte Schnittstelle (%s) hat kein drahtloses Interface." + +msgid "The 802.11ac 5 GHz option is disabled until a compatible wireless regulatory domain is set." +msgstr "Die 5 GHz Option ist deaktiviert, bis eine kompatible Domain gesetzt ist." + #: includes/networking.php msgid "Summary" msgstr "Zusammenfassung" @@ -711,6 +726,12 @@ msgstr "Fehler beim Speichern der Netzwerkkonfiguration" msgid "Unable to detect interface" msgstr "Schnittstelle kann nicht gefunden werden" +msgid "Routing table" +msgstr "Routingtabelle" + +msgid "raw output" +msgstr "Raw Output" + #: includes/system.php msgid "System Information" msgstr "Systeminformationen" @@ -763,6 +784,12 @@ msgstr "Port des Webservers" msgid "Web server bind address" msgstr "Webserver Bindungsadresse" +msgid "OS" +msgstr "Betriebssystem" + +msgid "Kernel" +msgstr "Kernel" + #: includes/themes.php msgid "Theme settings" msgstr "Oberflächendesign Einstellungen" @@ -877,7 +904,7 @@ msgstr "Einstellungen" msgid "Currently available OpenVPN client configurations are displayed below." msgstr "Derzeit verfügbare OpenVPN-Client-Konfigurationen werden unten angezeigt." -msgid "Activating a configuraton will restart the openvpn-client service." +msgid "Activating a configuration will restart the openvpn-client service." msgstr "Die Aktivierung einer Konfiguration startet den Dienst openvpn-client neu." msgid "Delete OpenVPN client" @@ -991,6 +1018,9 @@ msgstr "oben" msgid "down" msgstr "unten" +msgid "Clear log" +msgstr "Log löschen" + msgid "adblock" msgstr "Werbesperre" diff --git a/locale/en_US/LC_MESSAGES/messages.mo b/locale/en_US/LC_MESSAGES/messages.mo index a534b424..c7daa31f 100644 Binary files a/locale/en_US/LC_MESSAGES/messages.mo and b/locale/en_US/LC_MESSAGES/messages.mo differ diff --git a/locale/en_US/LC_MESSAGES/messages.po b/locale/en_US/LC_MESSAGES/messages.po index 2a4672c8..0b72060b 100644 --- a/locale/en_US/LC_MESSAGES/messages.po +++ b/locale/en_US/LC_MESSAGES/messages.po @@ -464,6 +464,15 @@ msgstr "This option adds dhcp-host entries to the dnsmasq configura msgid "This toggles the gateway/nogateway option for this interface in the DHCPCD configuration." msgstr "This toggles the gateway/nogateway option for this interface in the DHCPCD configuration." +msgid "This toggles the nohook wpa_supplicant option for this interface in the DHCPCD configuration." +msgstr "This toggles the nohook wpa_supplicant option for this interface in the DHCPCD configuration." + +msgid "Disable wpa_supplicant dhcp hook for this interface" +msgstr "Disable wpa_supplicant dhcp hook for this interface" + +msgid "If you manage wireless connections with wpa_supplicant itself, the hook may create unwanted connection events. This option disables the hook." +msgstr "If you manage wireless connections with wpa_supplicant itself, the hook may create unwanted connection events. This option disables the hook." + #: includes/hostapd.php msgid "Basic" msgstr "Basic" @@ -728,6 +737,9 @@ msgstr "Pi Revision" msgid "Uptime" msgstr "Uptime" +msgid "System Time" +msgstr "System Time" + msgid "Memory Used" msgstr "Memory Used" @@ -901,8 +913,8 @@ msgstr "Configurations" msgid "Currently available OpenVPN client configurations are displayed below." msgstr "Currently available OpenVPN client configurations are displayed below." -msgid "Activating a configuraton will restart the openvpn-client service." -msgstr "Activating a configuraton will restart the openvpn-client service." +msgid "Activating a configuration will restart the openvpn-client service." +msgstr "Activating a configuration will restart the openvpn-client service." msgid "Delete OpenVPN client" msgstr "Delete OpenVPN client" diff --git a/locale/es_MX/LC_MESSAGES/messages.mo b/locale/es_MX/LC_MESSAGES/messages.mo index e4714928..c2fca8c3 100644 Binary files a/locale/es_MX/LC_MESSAGES/messages.mo and b/locale/es_MX/LC_MESSAGES/messages.mo differ diff --git a/locale/es_MX/LC_MESSAGES/messages.po b/locale/es_MX/LC_MESSAGES/messages.po index 56c7fccf..502296f0 100644 --- a/locale/es_MX/LC_MESSAGES/messages.po +++ b/locale/es_MX/LC_MESSAGES/messages.po @@ -844,7 +844,7 @@ msgstr "Configuraciones" msgid "Currently available OpenVPN client configurations are displayed below." msgstr "Las configuraciones de cliente OpenVPN actualmente disponibles se muestran a continuación." -msgid "Activating a configuraton will restart the openvpn-client service." +msgid "Activating a configuration will restart the openvpn-client service." msgstr "Al activar una configuración, se reiniciará el servicio openvpn-client." msgid "Delete OpenVPN client" diff --git a/locale/fr_FR/LC_MESSAGES/messages.mo b/locale/fr_FR/LC_MESSAGES/messages.mo index 3073b13a..2a5a63cb 100644 Binary files a/locale/fr_FR/LC_MESSAGES/messages.mo and b/locale/fr_FR/LC_MESSAGES/messages.mo differ diff --git a/locale/fr_FR/LC_MESSAGES/messages.po b/locale/fr_FR/LC_MESSAGES/messages.po index 7701eda0..f8bce3db 100644 --- a/locale/fr_FR/LC_MESSAGES/messages.po +++ b/locale/fr_FR/LC_MESSAGES/messages.po @@ -877,7 +877,7 @@ msgstr "Configuration" msgid "Currently available OpenVPN client configurations are displayed below." msgstr "Les configurations des fichiers OpenVPN actuellement disponibles sont affichées ci-dessous." -msgid "Activating a configuraton will restart the openvpn-client service." +msgid "Activating a configuration will restart the openvpn-client service." msgstr "L'activation d'une configuration redémarrera le service openvpn-client." msgid "Delete OpenVPN client" diff --git a/locale/it_IT/LC_MESSAGES/messages.mo b/locale/it_IT/LC_MESSAGES/messages.mo index ff642cb1..f72bc35d 100644 Binary files a/locale/it_IT/LC_MESSAGES/messages.mo and b/locale/it_IT/LC_MESSAGES/messages.mo differ diff --git a/locale/it_IT/LC_MESSAGES/messages.po b/locale/it_IT/LC_MESSAGES/messages.po index 3eb000ff..8c0ba3c9 100644 --- a/locale/it_IT/LC_MESSAGES/messages.po +++ b/locale/it_IT/LC_MESSAGES/messages.po @@ -844,7 +844,7 @@ msgstr "Configurazioni" msgid "Currently available OpenVPN client configurations are displayed below." msgstr "Le configurazioni client OpenVPN attualmente disponibili sono visualizzate di seguito." -msgid "Activating a configuraton will restart the openvpn-client service." +msgid "Activating a configuration will restart the openvpn-client service." msgstr "Attivando la configurazione si riavvierà il servizio openvpn-client." msgid "Delete OpenVPN client" diff --git a/locale/ko_KR/LC_MESSAGES/messages.po b/locale/ko_KR/LC_MESSAGES/messages.po index 5bf210ad..fecc0102 100644 --- a/locale/ko_KR/LC_MESSAGES/messages.po +++ b/locale/ko_KR/LC_MESSAGES/messages.po @@ -844,7 +844,7 @@ msgstr "환경설정" msgid "Currently available OpenVPN client configurations are displayed below." msgstr "" -msgid "Activating a configuraton will restart the openvpn-client service." +msgid "Activating a configuration will restart the openvpn-client service." msgstr "" msgid "Delete OpenVPN client" diff --git a/locale/pt_BR/LC_MESSAGES/messages.mo b/locale/pt_BR/LC_MESSAGES/messages.mo index 48ed7d1a..bbd88db4 100644 Binary files a/locale/pt_BR/LC_MESSAGES/messages.mo and b/locale/pt_BR/LC_MESSAGES/messages.mo differ diff --git a/locale/pt_BR/LC_MESSAGES/messages.po b/locale/pt_BR/LC_MESSAGES/messages.po index b991711c..40968d8d 100644 --- a/locale/pt_BR/LC_MESSAGES/messages.po +++ b/locale/pt_BR/LC_MESSAGES/messages.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: raspap\n" "Report-Msgid-Bugs-To: Bill Zimmerman \n" "POT-Creation-Date: 2017-10-19 08:56+0000\n" -"PO-Revision-Date: 2022-01-05 11:43\n" +"PO-Revision-Date: 2023-08-25 09:56\n" "Last-Translator: Bill Zimmerman \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -40,7 +40,7 @@ msgid "Memory Use" msgstr "Uso da memória" msgid "CPU Temp" -msgstr "Temperatura do CPU" +msgstr "Temp CPU" msgid "Networking" msgstr "Rede" @@ -147,31 +147,31 @@ msgid "Not configured" msgstr "Não configurado" msgid "Connected" -msgstr "" +msgstr "Conectado" msgid "Known" -msgstr "" +msgstr "Conhecido" msgid "Nearby" -msgstr "" +msgstr "Ao redor" msgid "Note: WEP access points appear as 'Open'. RaspAP does not currently support connecting to WEP" msgstr "Nota: pontos de acesso WEP aparecem como 'Open'. Atualmente, o RaspAP não suporta conexão com WEP" msgid "No Wifi stations found" -msgstr "" +msgstr "Nenhuma estação Wi-Fi encontrada" msgid "Reinitializing wpa_supplicant" -msgstr "" +msgstr "Reinicializando wpa_supplicante" msgid "Click 'Rescan' to search for nearby Wifi stations." -msgstr "" +msgstr "Clique em 'Reescanear' para procurar por estações Wi-Fi próximas." msgid "Click 'Reinitialize' to force reinitialize wpa_supplicant." -msgstr "" +msgstr "Clique em 'Reiniciar' para forçar a reinicialização do wpa_supplicant." msgid "Reinitialize" -msgstr "" +msgstr "Reiniciar" #: includes/dashboard.php msgid "Interface Information" @@ -268,58 +268,58 @@ msgid "Connected Devices" msgstr "Dispositivos Conectados" msgid "Client: Ethernet cable" -msgstr "" +msgstr "Cliente: Cabo Ethernet" msgid "Ethernet" -msgstr "" +msgstr "Ethernet" msgid "Client: Smartphone (USB tethering)" -msgstr "" +msgstr "Cliente: Smartphone (ligação USB)" msgid "Smartphone" -msgstr "" +msgstr "Smartphone" msgid "WiFi" -msgstr "" +msgstr "WiFi" msgid "Mobile Data Client" -msgstr "" +msgstr "Cliente de dados móveis" msgid "Mobile Data" -msgstr "" +msgstr "Dados móveis" msgid "No information available" -msgstr "" +msgstr "Nenhuma informação disponível" msgid "Interface name invalid" -msgstr "" +msgstr "Nome da interface inválido" msgid "Required exec function is disabled. Check if exec is not added to php disable_functions." -msgstr "" +msgstr "A função exec necessária está desabilitada. Verifique se o exec não está adicionado ao php disable_functions." msgid "Waiting for the interface to start ..." -msgstr "" +msgstr "Aguardando a interface iniciar..." msgid "Stop the Interface" -msgstr "" +msgstr "Parar a Interface" msgid "Connection mode" -msgstr "" +msgstr "Modo de conexão" msgid "Signal quality" -msgstr "" +msgstr "Qualidade do sinal" msgid "WAN IP" -msgstr "" +msgstr "WAN IP" msgid "Web-GUI" -msgstr "" +msgstr "Web-GUI" msgid "Signal strength" -msgstr "" +msgstr "Intensidade do sinal" msgid "No Client device or not yet configured" -msgstr "" +msgstr "Nenhum dispositivo cliente ou ainda não configurado" #: includes/dhcp.php msgid "DHCP server settings" @@ -332,10 +332,10 @@ msgid "Interface" msgstr "Inteface" msgid "Enable DHCP for this interface" -msgstr "" +msgstr "Habilitar DHCP para esta interface" msgid "Enable this option if you want RaspAP to assign IP addresses on the selected interface." -msgstr "" +msgstr "Habilite esta opção se você deseja que o RaspAP atribua endereços IP na interface selecionada." msgid "DNS Server" msgstr "Servidor DNS" @@ -368,7 +368,7 @@ msgid "MAC Address" msgstr "Endereço MAC" msgid "Optional comment" -msgstr "" +msgstr "Comentário opcional" msgid "Host name" msgstr "Nome de host" @@ -413,55 +413,55 @@ msgid "Dnsmasq is not running" msgstr "Dnsmasq não executando" msgid "Upstream DNS servers" -msgstr "" +msgstr "Servidores DNS Upstream" msgid "Only ever query DNS servers configured below" -msgstr "" +msgstr "Sempre consultar servidores DNS configurados abaixo" msgid "Enable this option if you want RaspAP to send DNS queries to the servers configured below exclusively. By default RaspAP also uses its upstream DHCP server's name servers." -msgstr "" +msgstr "Habilite esta opção se você quiser que o RaspAP envie consultas DNS para os servidores configurados abaixo exclusivamente. Por padrão, o RaspAP também usa seus servidores de nome do servidor DHCP upstream." msgid "This option adds no-resolv to the dnsmasq configuration." -msgstr "" +msgstr "Esta opção adiciona no-resolv na configuração do dnsmasq." msgid "Add upstream DNS server" -msgstr "" +msgstr "Adicionar servidor DNS upstream" msgid "Format" -msgstr "" +msgstr "Formato" msgid "Choose a hosted server" -msgstr "" +msgstr "Escolha um servidor hospedado" -msgid "Enable these options to log DHCP server activity." -msgstr "" +msgid "Enable these options to log dhcpcd and dnsmasq activity." +msgstr "Habilite essas opções para registrar as atividades dhcpcd e dnsmasq." msgid "Log DHCP requests" -msgstr "" +msgstr "Registrar requisições DHCP" msgid "Log DNS queries" -msgstr "" +msgstr "Registrar consultas DNS" msgid "Restrict access" -msgstr "" +msgstr "Acesso restrito" msgid "Limit network access to static clients" -msgstr "" +msgstr "Limitar o acesso da rede a clientes estáticos" msgid "Enable this option if you want RaspAP to ignore any clients which are not specified in the static leases list." -msgstr "" +msgstr "Ative esta opção se você quiser que o RaspAP ignore quaisquer clientes que não são especificados na lista de concessões estáticas." msgid "This option adds dhcp-ignore to the dnsmasq configuration." -msgstr "" +msgstr "Esta opção adiciona dhcp-ignore na configuração do dnsmasq." msgid "Clients with a particular hardware MAC address can always be allocated the same IP address." -msgstr "" +msgstr "Os clientes com um endereço MAC de hardware específico podem sempre ter o mesmo endereço IP." msgid "This option adds dhcp-host entries to the dnsmasq configuration." -msgstr "" +msgstr "Esta opção adiciona entradas dhcp-host na configuração do dnsmasq." msgid "This toggles the gateway/nogateway option for this interface in the DHCPCD configuration." -msgstr "" +msgstr "Isto alterna a opção de gateway/nogateway para essa interface na configuração do DHCPCD." #: includes/hostapd.php msgid "Basic" @@ -486,7 +486,7 @@ msgid "Encryption Type" msgstr "Tipo de Criptografia" msgid "PSK" -msgstr "" +msgstr "PSK" msgid "Advanced settings" msgstr "Configurações avançadas" @@ -546,7 +546,7 @@ msgid "WiFi client AP mode" msgstr "WiFi modo cliente AP" msgid "Bridged AP mode" -msgstr "" +msgstr "Modo AP Bridged" msgid "Hide SSID in broadcast" msgstr "Esconder SSID em transmissão" @@ -555,41 +555,56 @@ msgid "Maximum number of clients" msgstr "Número máximo de clientes" msgid "Configures the max_num_sta option of hostapd. The default and maximum is 2007. If empty or 0, the default applies." -msgstr "" +msgstr "Configura a opção max_num_sta do hostapd. O padrão e máximo é 2007. Se vazio ou 0, o padrão se aplica." msgid "Beacon interval" -msgstr "" +msgstr "Intervalo Beacon" msgid "Disable disassoc_low_ack" -msgstr "" +msgstr "Desabilitar disassoc_low_ack" msgid "Do not disassociate stations based on excessive transmission failures." -msgstr "" +msgstr "Não desassocie estações baseadas em falhas excessivas de transmissão." msgid "Executing RaspAP service start" -msgstr "" +msgstr "Executando o serviço de inicialização RaspAP" msgid "Close" -msgstr "" +msgstr "Fechar" msgid "Enable this option to log hostapd activity." -msgstr "" +msgstr "Habilitar esta opção para registrar a atividade hostapd." msgid "Transmit power (dBm)" -msgstr "" +msgstr "Potência de transmissão (dBm)" msgid "Sets the txpower option for the AP interface and the configured country." -msgstr "" +msgstr "Define a opção txpower para a interface AP e o país configurado." msgid "dBm is a unit of level used to indicate that a power ratio is expressed in decibels (dB) with reference to one milliwatt (mW). 30 dBm is equal to 1000 mW, while 0 dBm equals 1.25 mW." -msgstr "" +msgstr "dBm é uma unidade de nível usada para indicar que uma taxa de potência é expressa em decibéis (dB) com referência a um miliwatt (mW). 30 dBm é igual a 1000 mW, enquanto 0 dBm é igual a 1.25 mW." + +msgid "The selected interface (%s) has support for the 2.4 GHz wireless band only." +msgstr "A interface selecionada (%s) tem suporte apenas para banda sem fio de 2.4 GHz." + +msgid "The selected interface (%s) has support for the 2.5 GHz wireless band only." +msgstr "A interface selecionada (%s) tem suporte apenas para banda sem fio de 2.5 GHz." + +msgid "The selected interface (%s) has support for both the 2.4 and 5 GHz wireless bands." +msgstr "A interface selecionada (%s) tem suporte apenas para as bandas sem fio de 2.4 e 2.5 GHz." + +msgid "The selected interface (%s) does not support wireless mode operation." +msgstr "A interface selecionada (%s) não suporta operar no modo sem fio." + +msgid "The 802.11ac 5 GHz option is disabled until a compatible wireless regulatory domain is set." +msgstr "A opção 802.11ac 5 GHz está desativada até que seja configurada a regulação local." #: includes/networking.php msgid "Summary" msgstr "Sumário" msgid "Internet connection" -msgstr "" +msgstr "Conexão de internet" msgid "Current settings" msgstr "Configurações atuais" @@ -619,7 +634,7 @@ msgid "Static IP Options" msgstr "Opções de IP Estático" msgid "Metric" -msgstr "" +msgstr "Métrica" msgid "Apply settings" msgstr "Aplicar Configurações" @@ -628,55 +643,61 @@ msgid "Information provided by /sys/class/net" msgstr "Informação Provida por /sys/class/net" msgid "Network Devices" -msgstr "" +msgstr "Dispositivos de Rede" msgid "Mobile Data Settings" -msgstr "" +msgstr "Configurações de Dados Móveis" msgid "Properties of network devices" -msgstr "" +msgstr "Propriedades dos dispositivos de rede" msgid "Device" -msgstr "" +msgstr "Dispositivo" msgid "MAC" -msgstr "" +msgstr "MAC" msgid "USB vid/pid" -msgstr "" +msgstr "USB vid/pid" msgid "Device type" -msgstr "" +msgstr "Tipo de dispositivo" msgid "Fixed name" -msgstr "" +msgstr "Nome fixo" msgid "Change" -msgstr "" +msgstr "Alterar" msgid "Settings for Mobile Data Devices" -msgstr "" +msgstr "Configurações para dispositivos de dados móveis" msgid "PIN of SIM card" -msgstr "" +msgstr "PIN do cartão SIM" msgid "APN Settings (Modem device ppp0)" -msgstr "" +msgstr "Configurações do APN (dispositivo Modem ppp0)" msgid "Access Point Name (APN)" -msgstr "" +msgstr "Nome do Ponto de Acesso (APN)" msgid "Password" -msgstr "" +msgstr "Senha" msgid "Successfully Updated Network Configuration" -msgstr "" +msgstr "Configuração de Rede Atualizada com Sucesso" msgid "Error saving network configuration to file" -msgstr "" +msgstr "Erro ao salvar configuração de rede no arquivo" msgid "Unable to detect interface" -msgstr "" +msgstr "Não foi possível detectar a interface" + +msgid "Routing table" +msgstr "Tabela de roteamento" + +msgid "raw output" +msgstr "raw output" #: includes/system.php msgid "System Information" @@ -695,10 +716,10 @@ msgid "Language setting saved" msgstr "Configuração de idioma salva" msgid "Console" -msgstr "" +msgstr "Console" msgid "Hostname" -msgstr "" +msgstr "Nome do Host" msgid "Pi Revision" msgstr "Revisão do Pi" @@ -725,10 +746,16 @@ msgid "System Shutting Down Now!" msgstr "Sistema Desligando Agora!" msgid "Web server port" -msgstr "" +msgstr "Porta do servidor web" msgid "Web server bind address" -msgstr "" +msgstr "Endereço de vinculação do servidor web" + +msgid "OS" +msgstr "OS [Sistema operacional]" + +msgid "Kernel" +msgstr "Kernel" #: includes/themes.php msgid "Theme settings" @@ -738,7 +765,7 @@ msgid "Select a theme" msgstr "Selecione um tema" msgid "Color" -msgstr "" +msgstr "Cor" #: includes/data_usage.php msgid "Data usage" @@ -766,7 +793,7 @@ msgid "Monthly" msgstr "Por mês" msgid "interface" -msgstr "" +msgstr "interface" msgid "date" msgstr "data" @@ -818,7 +845,7 @@ msgid "Diffie Hellman parameters" msgstr "Parâmetros Diffie Hellman" msgid "KeepAlive" -msgstr "" +msgstr "Manter Ativo" msgid "Server log" msgstr "Log do servidor" @@ -839,64 +866,64 @@ msgid "Attempting to stop openvpn" msgstr "Tentando parar openvpn" msgid "Configurations" -msgstr "" +msgstr "Configurações" msgid "Currently available OpenVPN client configurations are displayed below." -msgstr "" +msgstr "Configurações do cliente OpenVPN disponíveis atualmente são exibidas abaixo." -msgid "Activating a configuraton will restart the openvpn-client service." -msgstr "" +msgid "Activating a configuration will restart the openvpn-client service." +msgstr "Ativar a configuração reiniciará o serviço openvpn-client." msgid "Delete OpenVPN client" -msgstr "" +msgstr "Excluir cliente OpenVPN" msgid "Delete client configuration? This cannot be undone." -msgstr "" +msgstr "Excluir configuração de cliente? Esta ação não pode ser desfeita." msgid "Activate OpenVPN client" -msgstr "" +msgstr "Ativar o cliente OpenVPN" msgid "Activate client configuration? This will restart the openvpn-client service." -msgstr "" +msgstr "Ativar configuração do cliente? Isto irá reiniciar o serviço openvpn-cliente." msgid "Activate" -msgstr "" +msgstr "Ativar" msgid "Cancel" -msgstr "" +msgstr "Cancelar" msgid "Enable this option to log openvpn activity." -msgstr "" +msgstr "Habilite esta opção para registrar a atividade openvpn." msgid "Authentification Method" -msgstr "" +msgstr "Método de Autenticação" msgid "Username and password" -msgstr "" +msgstr "Usuário e senha" msgid "Certificates" -msgstr "" +msgstr "Certificados" msgid "Enter username and password" -msgstr "" +msgstr "Insira o usuário e senha" msgid "Certificates in the configuration file" -msgstr "" +msgstr "Certificados no arquivo de configuração" msgid "RaspAP supports certificates by including them in the configuration file." -msgstr "" +msgstr "O RaspAP suporta certificados incluindo-os no arquivo de configuração." msgid "Signing certification authority (CA) certificate (e.g. ca.crt): enclosed in <ca> ... </ca> tags." -msgstr "" +msgstr "Certificado da autoridade certificadora (CA) (por exemplo, ca.crt): anexado em <ca> ... </ca> tags." msgid "Client certificate (public key) (e.g. client.crt): enclosed in <cert> ... </cert> tags." -msgstr "" +msgstr "Certificado de cliente (chave pública) (por exemplo, client.crt): contido em tags <cert> ... </cert>." msgid "Private key of the client certificate (e.g. client.key): enclosed in <key> ... </key> tags." -msgstr "" +msgstr "Chave privada do certificado do cliente (por exemplo, client.key): contido em tags <key> ... </key>." msgid "Configuration File" -msgstr "" +msgstr "Arquivo de configuração" #: includes/torproxy.php msgid "TOR is not running" @@ -906,7 +933,7 @@ msgid "TOR is running" msgstr "TOR está sendo executado" msgid "Relay" -msgstr "" +msgstr "Relay" msgid "Relay settings" msgstr "Configurações de relay" @@ -934,7 +961,7 @@ msgstr "Tentando parar TOR" #: template/dashboard.php msgid "Bridged AP mode is enabled. For Hostname and IP, see your router's admin page." -msgstr "" +msgstr "O modo AP Bridge está ativado. Para o Hostname e IP, consulte a página de administrador do seu roteador." #: common form controls msgid "Save settings" @@ -958,249 +985,252 @@ msgstr "cima" msgid "down" msgstr "baixo" +msgid "Clear log" +msgstr "Limpar o log" + msgid "adblock" -msgstr "" +msgstr "adBlock" msgid "Ad Blocking" -msgstr "" +msgstr "Bloqueador de anúncios" msgid "Start Ad Blocking" -msgstr "" +msgstr "Iniciar o Bloqueador de Anúncios" msgid "Restart Ad Blocking" -msgstr "" +msgstr "Reiniciar o Bloqueador de anúncios" msgid "Blocklist settings" -msgstr "" +msgstr "Configurações da lista de bloqueio" msgid "Enable blocklists" -msgstr "" +msgstr "Habilitar lista de bloqueio" msgid "Enable this option if you want RaspAP to block DNS requests for ads, tracking and other virtual garbage. Blocklists are gathered from multiple, actively maintained sources and automatically updated, cleaned, optimized and moderated on a daily basis." -msgstr "" +msgstr "Ative esta opção se você quiser que o RaspAP bloqueie requisições DNS para anúncios, rastreamento e outros lixo virtuais. As listas de bloqueio são coletadas de múltiplas fontes ativamente mantidas e atualizadas, limpas, otimizadas e moderadas automaticamente." msgid "This option adds conf-file and addn-hosts to the dnsmasq configuration." -msgstr "" +msgstr "Esta opção adiciona conf-file e addn-hosts à configuração do dnsmasq." msgid "Choose a blocklist provider" -msgstr "" +msgstr "Escolha um provedor de lista de bloqueio" msgid "Hostnames blocklist last updated" -msgstr "" +msgstr "Última atualização da lista de bloqueio de hosts" msgid "Domains blocklist last updated" -msgstr "" +msgstr "Última atualização da lista de bloqueio de domínios" msgid "Update now" -msgstr "" +msgstr "Atualizar agora" msgid "Statistics" -msgstr "" +msgstr "Estatísticas" msgid "Information provided by adblock" -msgstr "" +msgstr "Informação disponibilizada por adblock" msgid "Enable custom blocklist" -msgstr "" +msgstr "Habilitar lista de bloqueio personalizada" msgid "Define custom hosts to be blocked by entering an IPv4 or IPv6 address followed by any whitespace (spaces or tabs) and the host name." -msgstr "" +msgstr "Defina hosts personalizados a serem bloqueados digitando um endereço IPv4 ou IPv6 seguido de qualquer espaço em branco (espaços ou abas) e o nome do host." msgid "IPv4 example: 0.0.0.0 badhost.com" -msgstr "" +msgstr "IPv4 example: 0.0.0.0 badhost.com" msgid "This option adds an addn-hosts directive to the dnsmasq configuration." -msgstr "" +msgstr "Esta opção adiciona uma diretiva addn-hosts para a configuração do dnsmasq." msgid "Custom blocklist not defined" -msgstr "" +msgstr "Lista de bloqueio personalizada não definida" msgid "Invalid custom IP address found on line " -msgstr "" +msgstr "Endereço IP personalizado inválido encontrado na linha " msgid "Invalid custom host found on line " -msgstr "" +msgstr "Host personalizado inválido encontrado na linha " msgid "Tunnel settings" -msgstr "" +msgstr "Configurações do túnel" msgid "Configuration Method" -msgstr "" +msgstr "Método de Configuração" msgid "Upload file" -msgstr "" +msgstr "Enviar arquivo" msgid "Create manually" -msgstr "" +msgstr "Criar manualmente" msgid "Upload a WireGuard config" -msgstr "" +msgstr "Enviar uma configuração do WireGuard" msgid "This option uploads and installs an existing WireGuard .conf file on this device." -msgstr "" +msgstr "Esta opção carrega e instala um arquivo existente do WireGuard .conf neste dispositivo." msgid "Apply iptables rules for AP interface" -msgstr "" +msgstr "Aplicar regras do iptables para a interface AP" msgid "Recommended if you wish to forward network traffic from the wg0 interface to clients connected on the AP interface." -msgstr "" +msgstr "Recomendado se você deseja encaminhar tráfego de rede da interface wg0 para os clientes conectados na interface de AP." msgid "This option adds iptables Postup and PostDown rules for the configured AP interface (%s)." -msgstr "" +msgstr "Esta opção adiciona as regras do iptables Postup e PostDown para a interface AP configurada (%s)." msgid "Select WireGuard configuration file (.conf)" -msgstr "" +msgstr "Selecionar arquivo de configuração do WireGuard (.conf)" msgid "Create a local WireGuard config" -msgstr "" +msgstr "Criar uma configuração local do WireGuard" msgid "Enable server" -msgstr "" +msgstr "Habilitar servidor" msgid "Enable this option to secure network traffic by creating an encrypted tunnel between RaspAP and configured peers." -msgstr "" +msgstr "Ative esta opção para proteger o tráfego de rede criando um túnel criptografado entre o RaspAP e os pontos configurados." msgid "This setting generates a new WireGuard .conf file on this device." -msgstr "" +msgstr "Esta configuração gera um novo arquivo do WireGuard .conf neste dispositivo." msgid "Local public key" -msgstr "" +msgstr "Chave pública local" msgid "Local Port" -msgstr "" +msgstr "Porta Local" msgid "IP Address" -msgstr "" +msgstr "Endereço IP" msgid "DNS" -msgstr "" +msgstr "DNS" msgid "Peer" -msgstr "" +msgstr "Ponto" msgid "Enable peer" -msgstr "" +msgstr "Habilitar ponto" msgid "Enable this option to encrypt traffic by creating a tunnel between RaspAP and this peer." -msgstr "" +msgstr "Habilite esta opção para criptografar o tráfego criando um túnel entre o RaspAP e este ponto." msgid "This option adds client.conf to the WireGuard configuration." -msgstr "" +msgstr "Esta opção adiciona client.conf para a configuração do WireGuard." msgid "Peer public key" -msgstr "" +msgstr "Chave pública do ponto" msgid "Endpoint address" -msgstr "" +msgstr "Endereço do Endpoint" msgid "Allowed IPs" -msgstr "" +msgstr "IPs Permitidos" msgid "Persistent keepalive" -msgstr "" +msgstr "Manter persistente" msgid "Enable this option to display an updated wg-quick debug log." -msgstr "" +msgstr "Ative esta opção para exibir um log de depuração atualizado do wg-quick." msgid "WireGuard debug log updated" -msgstr "" +msgstr "Log de depuração do WireGuard atualizado" msgid "Scan this QR code with your client to connect to this tunnel" -msgstr "" +msgstr "Escaneie este código QR com o seu cliente para se conectar a esse túnel" msgid "or download the client.conf file to your device." -msgstr "" +msgstr "ou baixe o arquivo client.conf para o seu dispositivo." msgid "Download" -msgstr "" +msgstr "Baixar" msgid "Start WireGuard" -msgstr "" +msgstr "Iniciar o WireGuard" msgid "Stop WireGuard" -msgstr "" +msgstr "Parar o WireGuard" msgid "Information provided by wireguard" -msgstr "" +msgstr "Informação fornecida por Wireguard" msgid "Attempting to start WireGuard" -msgstr "" +msgstr "Tentando iniciar o WireGuard" msgid "Attempting to stop WireGuard" -msgstr "" +msgstr "Tentando parar o WireGuard" msgid "WireGuard configuration updated successfully" -msgstr "" +msgstr "Configuração do Wireguard atualizada com sucesso" msgid "WireGuard configuration failed to be updated" -msgstr "" +msgstr "A configuração do WireGuard falhou ao ser atualizada" msgid "Client Firewall" -msgstr "" +msgstr "Firewall do Cliente" msgid "Firewall is ENABLED" -msgstr "" +msgstr "O Firewall está ATIVADO" msgid "Firewall is OFF" -msgstr "" +msgstr "O Firewall está DESATIVADO" msgid "The default firewall will only allow outgoing and already established traffic." -msgstr "" +msgstr "O firewall padrão só permitirá tráfego de saída e o tráfego já foi estabelecido." msgid "No incoming UDP traffic is allowed." -msgstr "" +msgstr "Nenhum tráfego UDP de entrada é permitido." msgid "There are no restrictions for the access point %s." -msgstr "" +msgstr "Não há restrições para o ponto de acesso %s. " msgid "Exception: Service" -msgstr "" +msgstr "Exceção: Serviço" msgid "allow SSH access on port 22" -msgstr "" +msgstr "permitir acesso ao SSH na porta 22" msgid "allow access to the RaspAP GUI on port 80 or 443" -msgstr "" +msgstr "permitir acesso à GUI do RaspAP na porta 80 ou 443" msgid "Allow incoming connections for some services from the internet side." -msgstr "" +msgstr "Permitir conexões de entrada para alguns serviços a partir da internet." msgid "Exception: network device" -msgstr "" +msgstr "Exceção: dispositivo de rede" msgid "Exclude device(s)" -msgstr "" +msgstr "Excluir dispositivo(s)" msgid "Exclude the given network device(s) (separated by a blank or comma) from firewall rules." -msgstr "" +msgstr "Excluir o(s) dispositivo(s) de rede especificado(s) (separados por um espaço ou vírgula) das regras do firewall." msgid "Current client devices: %s" -msgstr "" +msgstr "Dispositivos do cliente atual: %s" msgid "The access point %s is per default excluded." -msgstr "" +msgstr "O ponto de acesso %s está excluído por padrão." msgid "Exception: IP-Address" -msgstr "" +msgstr "Exceção: Endereço IP" msgid "Allow incoming connections from" -msgstr "" +msgstr "Permitir conexões de entrada de" msgid "For the given IP-addresses (separated by a blank or comma) the incoming connection (via TCP and UDP) is accepted." -msgstr "" +msgstr "Para os endereços IP fornecidos (separados por um espaço ou vírgula) a conexão de entrada (via TCP e UDP) é aceita." msgid "This is required for an OpenVPN via UDP or Wireguard connection." -msgstr "" +msgstr "Isto é necessário para uma conexão OpenVPN via UDP ou uma conexão WireGuard." msgid "The list of configured VPN server IP addresses: %s" -msgstr "" +msgstr "A lista de endereços IP do servidor VPN configurado: %s" msgid "Disable Firewall" -msgstr "" +msgstr "Desativar Firewall" msgid "Enable Firewall" -msgstr "" +msgstr "Ativar Firewall" msgid "Apply changes" -msgstr "" +msgstr "Aplicar alterações" diff --git a/locale/ro_RO/LC_MESSAGES/messages.mo b/locale/ro_RO/LC_MESSAGES/messages.mo index 13768252..89f9c1dd 100644 Binary files a/locale/ro_RO/LC_MESSAGES/messages.mo and b/locale/ro_RO/LC_MESSAGES/messages.mo differ diff --git a/locale/ro_RO/LC_MESSAGES/messages.po b/locale/ro_RO/LC_MESSAGES/messages.po index 3003a48f..46788802 100644 --- a/locale/ro_RO/LC_MESSAGES/messages.po +++ b/locale/ro_RO/LC_MESSAGES/messages.po @@ -844,7 +844,7 @@ msgstr "Configurații" msgid "Currently available OpenVPN client configurations are displayed below." msgstr "Configurațiile clientului OpenVPN disponibile sunt afișate mai jos." -msgid "Activating a configuraton will restart the openvpn-client service." +msgid "Activating a configuration will restart the openvpn-client service." msgstr "Activarea unei configurații va reporni serviciul openvpn-client." msgid "Delete OpenVPN client" diff --git a/locale/sk_SK/LC_MESSAGES/messages.mo b/locale/sk_SK/LC_MESSAGES/messages.mo new file mode 100644 index 00000000..87c647da Binary files /dev/null and b/locale/sk_SK/LC_MESSAGES/messages.mo differ diff --git a/locale/sk_SK/LC_MESSAGES/messages.po b/locale/sk_SK/LC_MESSAGES/messages.po new file mode 100644 index 00000000..09fa9831 --- /dev/null +++ b/locale/sk_SK/LC_MESSAGES/messages.po @@ -0,0 +1,1236 @@ +msgid "" +msgstr "" +"Project-Id-Version: raspap\n" +"Report-Msgid-Bugs-To: Bill Zimmerman \n" +"POT-Creation-Date: 2017-10-19 08:56+0000\n" +"PO-Revision-Date: 2023-08-03 15:53\n" +"Last-Translator: Bill Zimmerman \n" +"Language-Team: Slovak\n" +"Language: sk_SK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n" +"X-Crowdin-Project: raspap\n" +"X-Crowdin-Project-ID: 395801\n" +"X-Crowdin-Language: sk\n" +"X-Crowdin-File: /master/locale/en_US/LC_MESSAGES/messages.po\n" +"X-Crowdin-File-ID: 10\n" + +#: index.php +msgid "RaspAP Wifi Configuration Portal" +msgstr "RaspAP WiFi Konfiguračný Portál" + +msgid "Toggle navigation" +msgstr "Spustiť navigáciu" + +msgid "RaspAP Wifi Portal" +msgstr "RaspAP WiFi Portál" + +msgid "Dashboard" +msgstr "Prehľad" + +msgid "WiFi client" +msgstr "WiFi klient" + +msgid "Hotspot" +msgstr "Hotspot" + +msgid "Memory Use" +msgstr "Využitie Pamäte" + +msgid "CPU Temp" +msgstr "Teplota CPU" + +msgid "Networking" +msgstr "Sieť" + +msgid "DHCP Server" +msgstr "Server DHCP" + +msgid "OpenVPN" +msgstr "OpenVPN" + +msgid "TOR proxy" +msgstr "TOR proxy" + +msgid "Authentication" +msgstr "Autentifikácia" + +msgid "Change Theme" +msgstr "Zmeniť Motív" + +msgid "System" +msgstr "Systém" + +msgid "About RaspAP" +msgstr "O RaspAP" + +#: includes/admin.php +msgid "Authentication settings" +msgstr "Nastavenia autentifikácie" + +msgid "New passwords do not match" +msgstr "Nové heslá sa nezhodujú" + +msgid "Username must not be empty" +msgstr "Užívateľské meno nesmie byť prázdne" + +msgid "Admin password updated" +msgstr "Administrátorské heslo bolo aktualizované" + +msgid "Failed to update admin password" +msgstr "Nastala chyba pri zmene administrátorskeho hesla" + +msgid "Old password does not match" +msgstr "Staré heslo sa nezhoduje" + +msgid "Username" +msgstr "Používateľské meno" + +msgid "Old password" +msgstr "Staré heslo" + +msgid "New password" +msgstr "Nové heslo" + +msgid "Repeat new password" +msgstr "Zopakujte nové heslo" + +#: includes/configure_client.php +msgid "Client settings" +msgstr "Nastavenia klienta" + +msgid "SSID" +msgstr "SSID" + +msgid "Channel" +msgstr "Kanál" + +msgid "Security" +msgstr "Zabezpečenie" + +msgid "Passphrase" +msgstr "Heslo" + +msgid "Wifi settings updated successfully" +msgstr "Nastavenia WiFi boli úspešne aktualizované" + +msgid "Wifi settings updated but cannot restart (cannot execute 'wpa_cli reconfigure')" +msgstr "WiFi nastavenia boli aktualizované ale neaplikované (nebolo možné spustiť 'wpa_cli reconfigure')" + +msgid "Wifi settings failed to be updated" +msgstr "Aktualizácia nastavenia WiFi bola neúspešná" + +msgid "Failed to update wifi settings" +msgstr "Nebolo možné aktualizovať nastavenia WiFi" + +msgid "Rescan" +msgstr "Znova skenovať" + +msgid "Update" +msgstr "Aktualizovať" + +msgid "Add" +msgstr "Pridať" + +msgid "Delete" +msgstr "Odstrániť" + +msgid "Show" +msgstr "Ukázať" + +msgid "Hide" +msgstr "Skryť" + +msgid "Not configured" +msgstr "Nenakonfigurované" + +msgid "Connected" +msgstr "Pripojené" + +msgid "Known" +msgstr "Známe" + +msgid "Nearby" +msgstr "V blízkosti" + +msgid "Note: WEP access points appear as 'Open'. RaspAP does not currently support connecting to WEP" +msgstr "Poznámka: WEP prístupové body sú zobrazené, ako 'Otvorené'. RaspAP momentálne nepodporuje pripojenie k WEP sieťam" + +msgid "No Wifi stations found" +msgstr "Nenašli sa žiadne WiFi siete" + +msgid "Reinitializing wpa_supplicant" +msgstr "Opätovná inicializácia wpa_supplicant" + +msgid "Click 'Rescan' to search for nearby Wifi stations." +msgstr "Kliknutím 'Skenovať' sa vyhľadajú blízke WiFi siete." + +msgid "Click 'Reinitialize' to force reinitialize wpa_supplicant." +msgstr "Kliknutím 'Znovu inicializovať' vynútiť novú inicializáciu wpa_supplicant." + +msgid "Reinitialize" +msgstr "Resetovať" + +#: includes/dashboard.php +msgid "Interface Information" +msgstr "Informácie o rozhraní" + +msgid "Interface Name" +msgstr "Názov Rozhrania" + +msgid "IPv4 Address" +msgstr "IPv4 Adresa" + +msgid "IPv6 Address" +msgstr "IPv6 Adresa" + +msgid "Subnet Mask" +msgstr "Maska Podsiete" + +msgid "Mac Address" +msgstr "Mac Adresa" + +msgid "Interface Statistics" +msgstr "Štatistiky Rozhrania" + +msgid "Received Packets" +msgstr "Prijaté Pakety" + +msgid "Received Bytes" +msgstr "Prijatých Bajtov" + +msgid "Transferred Packets" +msgstr "Prenesených Paketov" + +msgid "Transferred Bytes" +msgstr "Prenesených Bajtov" + +msgid "Wireless Client" +msgstr "Bezdrôtový Klient" + +msgid "Connected To" +msgstr "Pripojené k" + +msgid "AP Mac Address" +msgstr "AP Mac Adresa" + +msgid "Bitrate" +msgstr "Bitrate" + +msgid "Signal Level" +msgstr "Sila Signálu" + +msgid "Transmit Power" +msgstr "Výkon Prenosu" + +msgid "Frequency" +msgstr "Frekvencia" + +msgid "Link Quality" +msgstr "Kvalita Spojenia" + +msgid "Information provided by ip and iw and from system" +msgstr "Informácie sú poskytnuté cez ip, iw a od systému" + +msgid "No MAC Address Found" +msgstr "Nenašla sa MAC Adresa" + +msgid "No IP Address Found" +msgstr "Nenašla sa IP Adresa" + +msgid "No Subnet Mask Found" +msgstr "Nenašla sa Maska Podsiete" + +msgid "No Data" +msgstr "Žiadne Dáta" + +msgid "Not connected" +msgstr "Nepripojené" + +msgid "Interface is up" +msgstr "Rozhranie je zapnuté" + +msgid "Interface is down" +msgstr "Rozhranie je vypnuté" + +msgid "Interface already down" +msgstr "Rozhranie je už vypnuté" + +msgid "Start wlan0" +msgstr "Spustiť wlan0" + +msgid "Stop wlan0" +msgstr "Vypnúť wlan0" + +msgid "Connected Devices" +msgstr "Pripojené Zariadenia" + +msgid "Client: Ethernet cable" +msgstr "Klient: Ethernetový kábel" + +msgid "Ethernet" +msgstr "Ethernet" + +msgid "Client: Smartphone (USB tethering)" +msgstr "Klient: Smartfón (USB tethering)" + +msgid "Smartphone" +msgstr "Smartfón" + +msgid "WiFi" +msgstr "WiFi" + +msgid "Mobile Data Client" +msgstr "Mobilný Dátový Klient" + +msgid "Mobile Data" +msgstr "Mobilné Dáta" + +msgid "No information available" +msgstr "Nie sú k dispozícii žiadne informácie" + +msgid "Interface name invalid" +msgstr "Názov rozhrania nie je platný" + +msgid "Required exec function is disabled. Check if exec is not added to php disable_functions." +msgstr "Požadovaná funkcia exec je zakázaná. Skontrolujte, či nie je exec pridaný do php disable_functions." + +msgid "Waiting for the interface to start ..." +msgstr "Čaká sa na zapnutie rozhrania..." + +msgid "Stop the Interface" +msgstr "Vypnúť Rozhranie" + +msgid "Connection mode" +msgstr "Mód pripojenia" + +msgid "Signal quality" +msgstr "Kvalita signálu" + +msgid "WAN IP" +msgstr "WAN IP" + +msgid "Web-GUI" +msgstr "Webové Rozhranie" + +msgid "Signal strength" +msgstr "Sila signálu" + +msgid "No Client device or not yet configured" +msgstr "Žiadne zariadenie klienta alebo zatiaľ ešte nie je nastavené" + +#: includes/dhcp.php +msgid "DHCP server settings" +msgstr "Nastavenia servera DHCP" + +msgid "Client list" +msgstr "Klienti" + +msgid "Interface" +msgstr "Rozhranie" + +msgid "Enable DHCP for this interface" +msgstr "Povoliť DHCP pre toto rozhranie" + +msgid "Enable this option if you want RaspAP to assign IP addresses on the selected interface." +msgstr "Ak chcete, aby RaspAP prideľoval IP adresy na vybranom rozhraní, povoľte túto možnosť." + +msgid "DNS Server" +msgstr "DNS server" + +msgid "Starting IP Address" +msgstr "Začínajúca IP Adresa" + +msgid "Ending IP Address" +msgstr "Posledná IP Adresa" + +msgid "Static Leases" +msgstr "Statické Adresy" + +msgid "Add static DHCP lease" +msgstr "Pridať statickú DHCP adresu" + +msgid "Lease Time" +msgstr "Čas prenájmu adresy" + +msgid "Interval" +msgstr "Interval" + +msgid "Active DHCP leases" +msgstr "Aktívne prenájmy adries DHCP" + +msgid "Expire time" +msgstr "Čas expirácie" + +msgid "MAC Address" +msgstr "MAC adresa" + +msgid "Optional comment" +msgstr "Voliteľná poznámka" + +msgid "Host name" +msgstr "Názov Zariadenia" + +msgid "Client ID" +msgstr "ID klienta" + +msgid "Information provided by Dnsmasq" +msgstr "Informácie poskytnuté cez Dnsmasq" + +msgid "Stop dnsmasq" +msgstr "Zastaviť dnsmasq" + +msgid "Start dnsmasq" +msgstr "Spustiť dnsmasq" + +msgid "Dnsmasq configuration updated successfully" +msgstr "Konfigurácia dnsmasq bola úspešná" + +msgid "dnsmasq already running" +msgstr "dnsmasq je už spustená" + +msgid "Successfully started dnsmasq" +msgstr "Dnsmasq bolo úspešne spustené" + +msgid "Failed to start dnsmasq" +msgstr "Nebolo možné spustiť dnsmasq" + +msgid "Successfully stopped dnsmasq" +msgstr "Dnsmasq bolo zastavené" + +msgid "Failed to stop dnsmasq" +msgstr "Nebolo možné zastaviť dnsmasq" + +msgid "dnsmasq already stopped" +msgstr "dnsmasq je už zastavené" + +msgid "Dnsmasq is running" +msgstr "Dnsmasq je spustené" + +msgid "Dnsmasq is not running" +msgstr "Dnsmasq nie je spustené" + +msgid "Upstream DNS servers" +msgstr "Nadriadené DNS servery" + +msgid "Only ever query DNS servers configured below" +msgstr "Vždy používaj len DNS servery nastavené nižšie" + +msgid "Enable this option if you want RaspAP to send DNS queries to the servers configured below exclusively. By default RaspAP also uses its upstream DHCP server's name servers." +msgstr "Povoľte túto možnosť, ak chcete aby RaspAP posielalo exkluzívne DNS požiadavky len dole nastaveným serverom. V predvolenom nastavení RaspAP používa DNS servery nadriadeného DHCP servera." + +msgid "This option adds no-resolv to the dnsmasq configuration." +msgstr "Táto možnosť pridá no-resolv do konfigurácie dnsmasq." + +msgid "Add upstream DNS server" +msgstr "Pridať nadriadený DNS server" + +msgid "Format" +msgstr "Formát" + +msgid "Choose a hosted server" +msgstr "Vyberte poskytovaný server" + +msgid "Enable these options to log dhcpcd and dnsmasq activity." +msgstr "Povoľte tieto možnosti pre ukladanie aktivity dhcpcd a dnsmasq." + +msgid "Log DHCP requests" +msgstr "Ukladať históriu DHCP požiadaviek" + +msgid "Log DNS queries" +msgstr "Ukladať DNS požiadavky" + +msgid "Restrict access" +msgstr "Zakázať prístup" + +msgid "Limit network access to static clients" +msgstr "Obmedziť prístup na sieť, aby k nej mali prístup iba statický klienti" + +msgid "Enable this option if you want RaspAP to ignore any clients which are not specified in the static leases list." +msgstr "Ak chcete, aby RaspAP ignorovalo ktorékoľvek zariadenie klienta, ktoré nie je uvedené v zozname statických priradení, povoľte túto možnosť." + +msgid "This option adds dhcp-ignore to the dnsmasq configuration." +msgstr "Táto možnosť pridá dhcp-ignore do konfigurácie dnsmasq." + +msgid "Clients with a particular hardware MAC address can always be allocated the same IP address." +msgstr "Klientom s konkrétnou hardvérovou MAC adresou môže byť vždy pridelená rovnaká IP adresa." + +msgid "This option adds dhcp-host entries to the dnsmasq configuration." +msgstr "Táto možnosť pridá dhcp-host požiadavky do konfigurácie dnsmasq." + +msgid "This toggles the gateway/nogateway option for this interface in the DHCPCD configuration." +msgstr "Týmto povolíte gateway/nogateway pre toto rozhranie v konfigurácii DHCPCD." + +#: includes/hostapd.php +msgid "Basic" +msgstr "Základné" + +msgid "Advanced" +msgstr "Pokročilé" + +msgid "Basic settings" +msgstr "Základné nastavenia" + +msgid "Wireless Mode" +msgstr "Režim" + +msgid "Security settings" +msgstr "Nastavenia zabezpečenia" + +msgid "Security type" +msgstr "Typ zabezpečenia" + +msgid "Encryption Type" +msgstr "Typ šifrovania" + +msgid "PSK" +msgstr "PSK" + +msgid "Advanced settings" +msgstr "Pokročilé nastavenia" + +msgid "Country Code" +msgstr "Kód Krajiny" + +msgid "Information provided by hostapd" +msgstr "Informácie poskytnuté cez hostapd" + +msgid "Attempting to start hotspot" +msgstr "Hotspot sa spúšťa" + +msgid "Attempting to stop hotspot" +msgstr "Vypínanie hotspotu" + +msgid "HostAPD is not running" +msgstr "HostAPD nie je zapnuté" + +msgid "HostAPD is running" +msgstr "HostAPD je zapnuté" + +msgid "SSID must be between 1 and 32 characters" +msgstr "SSID názov musí mať aspoň 1 znak a maximálne 32 znakov" + +msgid "WPA passphrase must be between 8 and 63 characters" +msgstr "WPA heslo musí mať minimálne 8 znakov a maximálne 63 znakov" + +msgid "Unknown interface" +msgstr "Neznáme rozhranie" + +msgid "Country code must be blank or two characters" +msgstr "Kód krajiny musí byť buď prázdny alebo obsahovať dva znaky" + +msgid "Wifi Hotspot settings saved" +msgstr "Nastavenia WiFi Hotspotu boli uložené" + +msgid "Unable to save wifi hotspot settings" +msgstr "Nebolo možné uložiť nastavenia wifi hotspotu" + +msgid "Start hotspot" +msgstr "Spustiť hotspot" + +msgid "Stop hotspot" +msgstr "Vypnúť hotspot" + +msgid "Restart hotspot" +msgstr "Reštartovať hotspot" + +msgid "Enable logging" +msgstr "Povoliť logovanie" + +msgid "Logfile output" +msgstr "Výstup logov" + +msgid "WiFi client AP mode" +msgstr "WiFi klient v režime AP" + +msgid "Bridged AP mode" +msgstr "Režim mostu AP" + +msgid "Hide SSID in broadcast" +msgstr "Skryť SSID" + +msgid "Maximum number of clients" +msgstr "Maximálny počet pripojených zariadení" + +msgid "Configures the max_num_sta option of hostapd. The default and maximum is 2007. If empty or 0, the default applies." +msgstr "Nastavuje možnosť max_num_sta v hostapd. Predvolená hodnota a maximum je 2007. Ak je prázdne alebo 0, použije sa predvolená hodnota." + +msgid "Beacon interval" +msgstr "Interval vysielania" + +msgid "Disable disassoc_low_ack" +msgstr "Vypnúť disassoc_low_ack" + +msgid "Do not disassociate stations based on excessive transmission failures." +msgstr "Nerušiť stanice na základe nadmerného počtu neúspešných prenosov." + +msgid "Executing RaspAP service start" +msgstr "Spúšťam službu RaspAP" + +msgid "Close" +msgstr "Zatvoriť" + +msgid "Enable this option to log hostapd activity." +msgstr "Povoľte túto možnosť pre logovanie aktivity hostapd." + +msgid "Transmit power (dBm)" +msgstr "Výkon prenosu (dBm)" + +msgid "Sets the txpower option for the AP interface and the configured country." +msgstr "Nastaví txpower možnosť pre AP rozhranie na základe nastavenej krajiny." + +msgid "dBm is a unit of level used to indicate that a power ratio is expressed in decibels (dB) with reference to one milliwatt (mW). 30 dBm is equal to 1000 mW, while 0 dBm equals 1.25 mW." +msgstr "dBm je jednotka úrovne používaná na vyjadrenie pomeru výkonu v decibeloch (dB) s ohľadom na jeden miliwatt (mW). 30 dBm je rovnaké ako 1000 mW, zatiaľ čo 0 dBm je rovné 1,25 mW." + +msgid "The selected interface (%s) has support for the 2.4 GHz wireless band only." +msgstr "Vybrané rozhranie (%s) podporuje iba 2.4 GHz pásmo." + +msgid "The selected interface (%s) has support for the 2.5 GHz wireless band only." +msgstr "Vybrané rozhranie (%s) podporuje iba 2.5 GHz pásmo." + +msgid "The selected interface (%s) has support for both the 2.4 and 5 GHz wireless bands." +msgstr "Vybrané rozhranie (%s) podporuje obe 2.4 a 5 GHz pásma." + +msgid "The selected interface (%s) does not support wireless mode operation." +msgstr "Vybrané rozhranie (%s) nepodporuje bezdrôtové operácie." + +msgid "The 802.11ac 5 GHz option is disabled until a compatible wireless regulatory domain is set." +msgstr "Voľba 802.11ac 5 GHz je zakázaná, kým nie je nastavená kompatibilná bezdrôtová regulačná oblasť." + +#: includes/networking.php +msgid "Summary" +msgstr "Súhrn" + +msgid "Internet connection" +msgstr "Internetové pripojenie" + +msgid "Current settings" +msgstr "Aktuálne nastavenia" + +msgid "Default Gateway" +msgstr "Predvolená Brána" + +msgid "Alternate DNS Server" +msgstr "Náhradný DNS server" + +msgid "Adapter IP Address Settings" +msgstr "Nastavenia IP adresy adaptéra" + +msgid "Enable Fallback to Static Option" +msgstr "Povoliť statické nastavenie pre prípad zlyhania" + +msgid "Static IP" +msgstr "Statická IP" + +msgid "Enabled" +msgstr "Povolené" + +msgid "Disabled" +msgstr "Nepovolené" + +msgid "Static IP Options" +msgstr "Nastavenia statickej IP" + +msgid "Metric" +msgstr "Metrika" + +msgid "Apply settings" +msgstr "Použiť nastavenia" + +msgid "Information provided by /sys/class/net" +msgstr "Informácie poskytnuté cez /sys/class/net" + +msgid "Network Devices" +msgstr "Sieťové Zariadenia" + +msgid "Mobile Data Settings" +msgstr "Nastavenia Mobilných Dát" + +msgid "Properties of network devices" +msgstr "Nastavenia sieťových zariadení" + +msgid "Device" +msgstr "Zariadenie" + +msgid "MAC" +msgstr "MAC" + +msgid "USB vid/pid" +msgstr "USB vid/pid" + +msgid "Device type" +msgstr "Typ zariadenia" + +msgid "Fixed name" +msgstr "Priradené meno" + +msgid "Change" +msgstr "Zmeniť" + +msgid "Settings for Mobile Data Devices" +msgstr "Nastavenia pre mobilné dátové zariadenia" + +msgid "PIN of SIM card" +msgstr "PIN kód SIM karty" + +msgid "APN Settings (Modem device ppp0)" +msgstr "APN Nastavenia (Modem ppp0)" + +msgid "Access Point Name (APN)" +msgstr "Názov Prístupového Bodu (APN)" + +msgid "Password" +msgstr "Heslo" + +msgid "Successfully Updated Network Configuration" +msgstr "Úspešne Aktualizovaná Konfigurácia Siete" + +msgid "Error saving network configuration to file" +msgstr "Vyskytla sa chyba pri ukladaní konfigurácie pre sieť do súboru" + +msgid "Unable to detect interface" +msgstr "Rozhranie nebolo možné nájsť" + +msgid "Routing table" +msgstr "Mapa smerovania" + +msgid "raw output" +msgstr "nespracovaný výstup" + +#: includes/system.php +msgid "System Information" +msgstr "Systémové Informácie" + +msgid "Language" +msgstr "Jazyk" + +msgid "Language settings" +msgstr "Nastavenia jazyka" + +msgid "Select a language" +msgstr "Vybrať jazyk" + +msgid "Language setting saved" +msgstr "Nastavenia jazyka boli uložené" + +msgid "Console" +msgstr "Konzola" + +msgid "Hostname" +msgstr "Názov Zariadenia" + +msgid "Pi Revision" +msgstr "Pi Revízia" + +msgid "Uptime" +msgstr "Čas spustenia" + +msgid "Memory Used" +msgstr "Využitá Pamäť" + +msgid "CPU Load" +msgstr "Využitie CPU" + +msgid "Reboot" +msgstr "Reštartovať" + +msgid "Shutdown" +msgstr "Vypnúť" + +msgid "System Rebooting Now!" +msgstr "Systém sa Reštartuje!" + +msgid "System Shutting Down Now!" +msgstr "Systém sa Vypína!" + +msgid "Web server port" +msgstr "Port webového servera" + +msgid "Web server bind address" +msgstr "Adresa spojenia webového servera" + +msgid "OS" +msgstr "OS" + +msgid "Kernel" +msgstr "Jadro" + +#: includes/themes.php +msgid "Theme settings" +msgstr "Nastavenia Tém" + +msgid "Select a theme" +msgstr "Vybrať tému" + +msgid "Color" +msgstr "Farba" + +#: includes/data_usage.php +msgid "Data usage" +msgstr "Využitie dát" + +msgid "Data usage monitoring" +msgstr "Monitorovanie využitia dát" + +msgid "Hourly traffic amount" +msgstr "Hodinové využitie" + +msgid "Daily traffic amount" +msgstr "Denné využitie" + +msgid "Monthly traffic amount" +msgstr "Mesačné využitie" + +msgid "Hourly" +msgstr "Každú Hodinu" + +msgid "Daily" +msgstr "Denne" + +msgid "Monthly" +msgstr "Mesačne" + +msgid "interface" +msgstr "rozhranie" + +msgid "date" +msgstr "dátum" + +msgid "Send MB" +msgstr "Odoslaných MB" + +msgid "Receive MB" +msgstr "Prijatých MB" + +msgid "Information provided by vnstat" +msgstr "Informácie poskytnuté cez vnstat" + +msgid "Loading {0} bandwidth chart" +msgstr "Načítava sa {0} graf šírky pásma" + +msgid "Showing {0} to {1} of {2} entries" +msgstr "Zobrazuje sa {0} až {1} z {2} záznamov" + +#: includes/openvpn.php +msgid "OpenVPN is not running" +msgstr "OpenVPN nie je zapnuté" + +msgid "OpenVPN is running" +msgstr "OpenVPN je zapnuté" + +msgid "Server settings" +msgstr "Nastavenia servera" + +msgid "Select OpenVPN configuration file (.ovpn)" +msgstr "Vyberte konfiguračný súbor OpenVPN (.ovpn)" + +msgid "Client Log" +msgstr "Záznam Klienta" + +msgid "Port" +msgstr "Port" + +msgid "Protocol" +msgstr "Protokol" + +msgid "Root CA certificate" +msgstr "Certifikát CA" + +msgid "Server certificate" +msgstr "Certifikát servera" + +msgid "Diffie Hellman parameters" +msgstr "Diffie Hellman parametre" + +msgid "KeepAlive" +msgstr "KeepAlive" + +msgid "Server log" +msgstr "Logy servera" + +msgid "Start OpenVPN" +msgstr "Spustiť OpenVPN" + +msgid "Stop OpenVPN" +msgstr "Vypnúť OpenVPN" + +msgid "Information provided by openvpn" +msgstr "Informácie poskytnuté cez openvpn" + +msgid "Attempting to start openvpn" +msgstr "Spúšťam openvpn" + +msgid "Attempting to stop openvpn" +msgstr "Vypínam openvpn" + +msgid "Configurations" +msgstr "Konfigurácie" + +msgid "Currently available OpenVPN client configurations are displayed below." +msgstr "Aktuálne dostupné konfigurácie klienta OpenVPN sú zobrazené nižšie." + +msgid "Activating a configuration will restart the openvpn-client service." +msgstr "Aktivácia konfigurácie spôsobí reštart služby openvpn-client." + +msgid "Delete OpenVPN client" +msgstr "Zmazať OpenVPN klienta" + +msgid "Delete client configuration? This cannot be undone." +msgstr "Zmazať konfiguráciu klienta? Táto akcia nemôže byť vrátená späť." + +msgid "Activate OpenVPN client" +msgstr "Aktivovať OpenVPN klienta" + +msgid "Activate client configuration? This will restart the openvpn-client service." +msgstr "Aktivovať konfiguráciu klienta? Týmto sa reštartuje služba openvpn-client." + +msgid "Activate" +msgstr "Aktivovať" + +msgid "Cancel" +msgstr "Zrušiť" + +msgid "Enable this option to log openvpn activity." +msgstr "Povoľte túto možnosť na zaznamenávanie aktivity openvpn." + +msgid "Authentification Method" +msgstr "Metóda Autentifikácie" + +msgid "Username and password" +msgstr "Používateľské meno a heslo" + +msgid "Certificates" +msgstr "Certifikáty" + +msgid "Enter username and password" +msgstr "Zadajte používateľské meno a heslo" + +msgid "Certificates in the configuration file" +msgstr "Certifikáty v konfiguračnom súbore" + +msgid "RaspAP supports certificates by including them in the configuration file." +msgstr "RaspAP podporuje certifikáty zahrnutím ich do konfiguračného súboru." + +msgid "Signing certification authority (CA) certificate (e.g. ca.crt): enclosed in <ca> ... </ca> tags." +msgstr "Podpisová certifikačná autorita (CA) certifikátov (napr. ca.crt): zahrnutý v značkách <ca> ... </ca>." + +msgid "Client certificate (public key) (e.g. client.crt): enclosed in <cert> ... </cert> tags." +msgstr "Klientský certifikát (verejný kľúč) (napr. client.crt): zahrnutý v značkách <cert> ... </cert>." + +msgid "Private key of the client certificate (e.g. client.key): enclosed in <key> ... </key> tags." +msgstr "Súkromný kľúč klientského certifikátu (napr. client.key): zahrnutý v značkách <key> ... </key>." + +msgid "Configuration File" +msgstr "Konfiguračný Súbor" + +#: includes/torproxy.php +msgid "TOR is not running" +msgstr "TOR je vypnutý" + +msgid "TOR is running" +msgstr "TOR je zapnutý" + +msgid "Relay" +msgstr "Relé" + +msgid "Relay settings" +msgstr "Nastavenia relé" + +msgid "Nickname" +msgstr "Prezývka" + +msgid "Address" +msgstr "Adresa" + +msgid "Start TOR" +msgstr "Zapnúť TOR" + +msgid "Stop TOR" +msgstr "Vypnúť TOR" + +msgid "Information provided by tor" +msgstr "Informácie poskytnuté cez tor" + +msgid "Attempting to start TOR" +msgstr "Spúšťam TOR" + +msgid "Attempting to stop TOR" +msgstr "Vypínam TOR" + +#: template/dashboard.php +msgid "Bridged AP mode is enabled. For Hostname and IP, see your router's admin page." +msgstr "Režim mostového prístupového bodu (Bridged AP) je povolený. Pre názov hostiteľa a IP adresu pozrite administrátorskú stránku vášho routeru." + +#: common form controls +msgid "Save settings" +msgstr "Uložiť nastavenia" + +msgid "Refresh" +msgstr "Obnoviť" + +msgid "running" +msgstr "spustené" + +msgid "stopped" +msgstr "vypnuté" + +msgid "Remove" +msgstr "Odstrániť" + +msgid "up" +msgstr "beží" + +msgid "down" +msgstr "dole" + +msgid "Clear log" +msgstr "Vyčistiť záznam" + +msgid "adblock" +msgstr "adblock" + +msgid "Ad Blocking" +msgstr "Blokovanie Reklám" + +msgid "Start Ad Blocking" +msgstr "Spustiť Blokovanie Reklám" + +msgid "Restart Ad Blocking" +msgstr "Reštartovať Blokovanie Reklám" + +msgid "Blocklist settings" +msgstr "Nastavenia zoznamu blokovaných" + +msgid "Enable blocklists" +msgstr "Povoliť zoznam zablokovaných" + +msgid "Enable this option if you want RaspAP to block DNS requests for ads, tracking and other virtual garbage. Blocklists are gathered from multiple, actively maintained sources and automatically updated, cleaned, optimized and moderated on a daily basis." +msgstr "Povoľte túto možnosť, ak chcete, aby RaspAP blokovalo DNS požiadavky na reklamy, sledovanie a ďalší virtuálny odpad. Zoznamy blokovacích pravidiel sa zhromažďujú z viacerých aktívne udržiavaných zdrojov a denne sa automaticky aktualizujú, čistia, optimalizujú a moderujú." + +msgid "This option adds conf-file and addn-hosts to the dnsmasq configuration." +msgstr "Táto možnosť pridá conf-file a addn-hosts do konfigurácie dnsmasq." + +msgid "Choose a blocklist provider" +msgstr "Vyberte poskytovateľa blokovacieho listu" + +msgid "Hostnames blocklist last updated" +msgstr "Posledná aktualizácia zoznamu blokovaných názvov hostiteľov" + +msgid "Domains blocklist last updated" +msgstr "Posledná aktualizácia zoznamu blokovaných domén" + +msgid "Update now" +msgstr "Aktualizovať" + +msgid "Statistics" +msgstr "Štatistiky" + +msgid "Information provided by adblock" +msgstr "Informácie poskytnuté od adblock" + +msgid "Enable custom blocklist" +msgstr "Povoliť vlastný blokovací list" + +msgid "Define custom hosts to be blocked by entering an IPv4 or IPv6 address followed by any whitespace (spaces or tabs) and the host name." +msgstr "Definujte vlastné hostiteľské názvy, ktoré majú byť blokované, zadajte IPv4 alebo IPv6 adresu a za nimi akýkoľvek biely znak (medzery alebo tabulátory) a názov hostiteľa." + +msgid "IPv4 example: 0.0.0.0 badhost.com" +msgstr "IPv4 príklad: 0.0.0.0 badhost.com" + +msgid "This option adds an addn-hosts directive to the dnsmasq configuration." +msgstr "Táto možnosť pridáva direktívu addn-hosts do konfigurácie dnsmasq." + +msgid "Custom blocklist not defined" +msgstr "Nie je definovaný vlastný zoznam blokovaných" + +msgid "Invalid custom IP address found on line " +msgstr "Bola nájdená neplatná vlastná IP adresa na riadku " + +msgid "Invalid custom host found on line " +msgstr "Bol nájdený neplatný vlastný hostiteľ na riadku " + +msgid "Tunnel settings" +msgstr "Nastavenia tunela" + +msgid "Configuration Method" +msgstr "Spôsob Konfigurácie" + +msgid "Upload file" +msgstr "Nahrať súbor" + +msgid "Create manually" +msgstr "Vytvoriť manuálne" + +msgid "Upload a WireGuard config" +msgstr "Nahrať konfiguračný súbor WireGuard" + +msgid "This option uploads and installs an existing WireGuard .conf file on this device." +msgstr "Táto možnosť nahrá a nainštaluje existujúci súbor .conf pre WireGuard na tomto zariadení." + +msgid "Apply iptables rules for AP interface" +msgstr "Aplikovať pravidlá iptables pre rozhranie prístupového bodu" + +msgid "Recommended if you wish to forward network traffic from the wg0 interface to clients connected on the AP interface." +msgstr "Odporúčané, ak chcete preposielať dátový tok z rozhrania wg0 na klientov pripojených cez rozhranie prístupového bodu." + +msgid "This option adds iptables Postup and PostDown rules for the configured AP interface (%s)." +msgstr "Táto možnosť pridáva iptables pravidlá Postup a PostDown pre nakonfigurované rozhranie AP (%s)." + +msgid "Select WireGuard configuration file (.conf)" +msgstr "Vyberte konfiguračný súbor WireGuard (.conf)" + +msgid "Create a local WireGuard config" +msgstr "Vytvoriť lokálny konfiguračný súbor WireGuard" + +msgid "Enable server" +msgstr "Povoliť server" + +msgid "Enable this option to secure network traffic by creating an encrypted tunnel between RaspAP and configured peers." +msgstr "Povoľte túto možnosť na zabezpečenie sieťového prevodu vytvorením šifrovaného tunela medzi RaspAP a nakonfigurovanými uzlami." + +msgid "This setting generates a new WireGuard .conf file on this device." +msgstr "Táto nastavenie vytvorí nový súbor .conf pre WireGuard na tomto zariadení." + +msgid "Local public key" +msgstr "Lokálny verejný kľúč" + +msgid "Local Port" +msgstr "Lokálny Port" + +msgid "IP Address" +msgstr "IP Adresa" + +msgid "DNS" +msgstr "DNS" + +msgid "Peer" +msgstr "Uzol" + +msgid "Enable peer" +msgstr "Povoliť uzol" + +msgid "Enable this option to encrypt traffic by creating a tunnel between RaspAP and this peer." +msgstr "Povoľte túto možnosť na zašifrovanie prevádzky vytvorením tunela medzi RaspAP a týmto uzlom." + +msgid "This option adds client.conf to the WireGuard configuration." +msgstr "Táto možnosť pridá súbor client.conf do konfigurácie WireGuard." + +msgid "Peer public key" +msgstr "Verejný kľúč uzla" + +msgid "Endpoint address" +msgstr "Adresa koncového bodu" + +msgid "Allowed IPs" +msgstr "Povolené IP adresy" + +msgid "Persistent keepalive" +msgstr "Perzistentný keepalive" + +msgid "Enable this option to display an updated wg-quick debug log." +msgstr "Povoľte túto možnosť na zobrazenie aktualizovaného debugovacieho protokolu wg-quick." + +msgid "WireGuard debug log updated" +msgstr "Aktualizovaný debugovací protokol WireGuard" + +msgid "Scan this QR code with your client to connect to this tunnel" +msgstr "Naskenujte tento QR kód so svojím zariadením aby ste sa pripojili k tomuto tunelu" + +msgid "or download the client.conf file to your device." +msgstr "alebo stiahnite súbor client.conf na vaše zariadenie." + +msgid "Download" +msgstr "Stiahnuť" + +msgid "Start WireGuard" +msgstr "Spustiť WireGuard" + +msgid "Stop WireGuard" +msgstr "Vypnúť WireGuard" + +msgid "Information provided by wireguard" +msgstr "Informácie poskytnuté cez wireguard" + +msgid "Attempting to start WireGuard" +msgstr "Spúšťam WireGuard" + +msgid "Attempting to stop WireGuard" +msgstr "Ukončujem WireGuard" + +msgid "WireGuard configuration updated successfully" +msgstr "Konfigurácia WireGuard bola úspešne aktualizovaná" + +msgid "WireGuard configuration failed to be updated" +msgstr "Aktualizácia konfigurácie WireGuard zlyhala" + +msgid "Client Firewall" +msgstr "Firewall Klienta" + +msgid "Firewall is ENABLED" +msgstr "Firewall je POVOLENÝ" + +msgid "Firewall is OFF" +msgstr "Firewall je VYPNUTÝ" + +msgid "The default firewall will only allow outgoing and already established traffic." +msgstr "Predvolené nastavenia firewallu budú povoľovať iba odchádzajúci a už naviazaný sieťový prevod." + +msgid "No incoming UDP traffic is allowed." +msgstr "Nie je povolená prichádzajúca UDP sieťová prevádzka." + +msgid "There are no restrictions for the access point %s." +msgstr "Nie sú žiadne obmedzenia pre prístupový bod %s." + +msgid "Exception: Service" +msgstr "Výnimka: Služba" + +msgid "allow SSH access on port 22" +msgstr "povoliť SSH prístup cez port 22" + +msgid "allow access to the RaspAP GUI on port 80 or 443" +msgstr "povoliť prístup k RaspAP GUI na porte 80 alebo 443" + +msgid "Allow incoming connections for some services from the internet side." +msgstr "Povoliť prichádzajúce pripojenia pre niektoré služby zo strany internetu." + +msgid "Exception: network device" +msgstr "Výnimka: sieťové zariadenie" + +msgid "Exclude device(s)" +msgstr "Vylúčiť zariadenie(-ia)" + +msgid "Exclude the given network device(s) (separated by a blank or comma) from firewall rules." +msgstr "Vylúčiť zadané sieťové zariadenie(-ia) (oddelené medzerou alebo čiarkou) z pravidiel firewallu." + +msgid "Current client devices: %s" +msgstr "Aktuálne pripojené zariadenia klienta: %s" + +msgid "The access point %s is per default excluded." +msgstr "Prístupový bod %s je predvolene vylúčený." + +msgid "Exception: IP-Address" +msgstr "Výnimka: IP Adresa" + +msgid "Allow incoming connections from" +msgstr "Povoliť prichádzajúce pripojenia z" + +msgid "For the given IP-addresses (separated by a blank or comma) the incoming connection (via TCP and UDP) is accepted." +msgstr "Pre zadané IP adresy (oddelené medzerou alebo čiarkou) sú pripojenia (cez TCP a UDP) akceptované." + +msgid "This is required for an OpenVPN via UDP or Wireguard connection." +msgstr "Toto je vyžadované pre OpenVPN cez UDP alebo WireGuard pripojenie." + +msgid "The list of configured VPN server IP addresses: %s" +msgstr "Zoznam nakonfigurovaných IP adries servera VPN: %s" + +msgid "Disable Firewall" +msgstr "Vypnúť Firewall" + +msgid "Enable Firewall" +msgstr "Zapnúť Firewall" + +msgid "Apply changes" +msgstr "Použiť zmeny" + diff --git a/templates/about/general.php b/templates/about/general.php index 144bd51b..2a6da8f3 100644 --- a/templates/about/general.php +++ b/templates/about/general.php @@ -8,13 +8,14 @@ with the contributions of our developer community and language translators. Learn more about joining the project as a code contributor, - translator or financial sponsor with immediate access to exclusive features available to Insiders. + translator or financial sponsor with immediate access to exclusive features available to Insiders.
Project documentation is available at https://docs.raspap.com/
diff --git a/templates/dhcp/general.php b/templates/dhcp/general.php index 47c802f5..5f257c02 100644 --- a/templates/dhcp/general.php +++ b/templates/dhcp/general.php @@ -67,6 +67,19 @@ +
+
+
+ + + +
+

+ nohook wpa_supplicant option for this interface in the DHCPCD configuration.") ?> +

+
+
+
DHCP options
diff --git a/templates/openvpn/configs.php b/templates/openvpn/configs.php index c3e578ee..4f7827a0 100644 --- a/templates/openvpn/configs.php +++ b/templates/openvpn/configs.php @@ -4,7 +4,7 @@

-
openvpn-client service.") ?> +
openvpn-client service.") ?>

+
+
+