diff --git a/base.php b/base.php
index c0458cf..e31c847 100644
--- a/base.php
+++ b/base.php
@@ -97,7 +97,11 @@ function je($s)
function tr($key)
{
global $_messages;
- return isset($_messages[$key]) ? $_messages[$key] : ('??' . $key . '??');
+ if (isset($_messages[$key])) return $_messages[$key];
+ else {
+ ob_end_clean();
+ die('??' . $key . '??');
+ }
}
/** Like eval, but allows */
diff --git a/js/appcommon.js b/js/appcommon.js
index 61fb689..0f103df 100644
--- a/js/appcommon.js
+++ b/js/appcommon.js
@@ -33,7 +33,11 @@ $.ready(function () {
let h = x.querySelector('h2')
let hdl = function () {
- $(x).toggleClass('expanded')
+ if ($(x).hasClass('d-expanded')) {
+ $(x).removeClass('d-expanded')
+ } else {
+ $(x).toggleClass('expanded')
+ }
}
$(h).on('click', hdl).on('keypress', cr(hdl))
})
diff --git a/lang/en.php b/lang/en.php
index 17b9a7c..9333add 100644
--- a/lang/en.php
+++ b/lang/en.php
@@ -12,10 +12,24 @@ return [
'menu.term' => 'Back to Terminal',
'menu.cfg_system' => 'System Settings',
'menu.cfg_wifi_conn' => 'Connecting to Network',
-
'menu.settings' => 'Settings',
- 'title.term' => 'Terminal',
+ // not used - api etc. Added to suppress warnings
+ 'menu.term_set' => '',
+ 'menu.wifi_connstatus' => '',
+ 'menu.wifi_set' => '',
+ 'menu.wifi_scan' => '',
+ 'menu.network_set' => '',
+ 'menu.system_set' => '',
+ 'menu.write_defaults' => '',
+ 'menu.restore_defaults' => '',
+ 'menu.restore_hard' => '',
+ 'menu.reset_screen' => '',
+ 'menu.index' => '',
+
+ // Terminal page
+
+ 'title.term' => 'Terminal', // page title of the terminal page
'term_nav.config' => 'Config',
'term_nav.wifi' => 'WiFi',
@@ -26,18 +40,14 @@ return [
'term_nav.keybd' => 'Keyboard',
'term_nav.paste_prompt' => 'Paste text to send:',
- 'net.ap' => 'DHCP Server (AP)',
- 'net.sta' => 'DHCP Client (Station)',
- 'net.sta_mac' => 'Station MAC',
- 'net.ap_mac' => 'AP MAC',
- 'net.details' => 'MAC addresses',
+ // Terminal settings page
'term.defaults' => 'Initial Settings',
'term.expert' => 'Expert Options',
'term.explain_initials' => '
Those are the initial settings used after ESPTerm powers on, or when the screen
- reset command is received. They can be changed later by the terminal application
- via control commands.
+ reset command is received (\ec
). They can be changed by the
+ terminal application using escape sequences.
',
'term.explain_expert' => '
Those are advanced config options that usually don\'t need to be changed.
@@ -58,7 +68,7 @@ return [
'term.term_width' => 'Width',
'term.term_height' => 'Height',
'term.buttons' => 'Button labels',
- 'term.theme' => 'Color scheme',
+ 'term.theme' => 'Color palette',
'term.cursor_shape' => 'Cursor style',
'term.parser_tout_ms' => 'Parser timeout',
'term.display_tout_ms' => 'Redraw delay',
@@ -67,13 +77,13 @@ return [
'term.show_config_links' => 'Show nav links',
'term.show_buttons' => 'Show buttons',
'term.loopback' => 'Local Echo (SRM)',
- 'term.crlf_mode' => 'CR+LF enter (LNM)',
+ 'term.crlf_mode' => 'Enter = CR+LF (LNM)',
'term.want_all_fn' => 'Capture all keys
(F5, F11, F12…)',
'term.button_msgs' => 'Button codes
(ASCII, dec, CSV)',
'term.color_fg' => 'Default fg.',
'term.color_bg' => 'Default bg.',
- 'term.color_fg_prev' => 'Fg. colors',
- 'term.color_bg_prev' => 'Bg. colors',
+ 'term.color_fg_prev' => 'Foreground',
+ 'term.color_bg_prev' => 'Background',
'term.colors_preview' => 'Defaults',
'cursor.block_blink' => 'Block, blinking',
@@ -83,23 +93,7 @@ return [
'cursor.bar_blink' => 'I-bar, blinking',
'cursor.bar_steady' => 'I-bar, steady',
-// // terminal color labels
-// 'color.0' => 'Black',
-// 'color.1' => 'Red',
-// 'color.2' => 'Green',
-// 'color.3' => 'Yellow',
-// 'color.4' => 'Blue',
-// 'color.5' => 'Purple',
-// 'color.6' => 'Cyan',
-// 'color.7' => 'Silver',
-// 'color.8' => 'Gray',
-// 'color.9' => 'Light Red',
-// 'color.10' => 'Light Green',
-// 'color.11' => 'Light Yellow',
-// 'color.12' => 'Light Blue',
-// 'color.13' => 'Light Purple',
-// 'color.14' => 'Light Cyan',
-// 'color.15' => 'White',
+ // Network config page
'net.explain_sta' => '
Switch off Dynamic IP to configure the static IP address.',
@@ -118,6 +112,14 @@ return [
'net.sta_addr_mask' => 'Subnet mask',
'net.sta_addr_gw' => 'Gateway IP',
+ 'net.ap' => 'DHCP Server (AP)',
+ 'net.sta' => 'DHCP Client (Station)',
+ 'net.sta_mac' => 'Station MAC',
+ 'net.ap_mac' => 'AP MAC',
+ 'net.details' => 'MAC addresses',
+
+ // Wifi config page
+
'wifi.ap' => 'Built-in Access Point',
'wifi.sta' => 'Join Existing Network',
@@ -143,67 +145,51 @@ return [
'wifi.enter_passwd' => 'Enter password for ":ssid:"',
'wifi.sta_explain' => 'After selecting a network, press Apply to connect.',
- 'wifi.conn.status' => 'Status:',
- 'wifi.conn.back_to_config' => 'Back to WiFi config',
- 'wifi.conn.telemetry_lost' => 'Telemetry lost; something went wrong, or your device disconnected.',
- 'wifi.conn.explain_android_sucks' => '
+ // Wifi connecting status page
+
+ 'wificonn.status' => 'Status:',
+ 'wificonn.back_to_config' => 'Back to WiFi config',
+ 'wificonn.telemetry_lost' => 'Telemetry lost; something went wrong, or your device disconnected.',
+ 'wificonn.explain_android_sucks' => '
If you\'re configuring ESPTerm via a smartphone, or were connected
from another external network, your device may lose connection and this
progress indicator won\'t work. Please wait a while (~ 15 seconds),
then check if the connection succeeded.',
- 'wifi.conn.explain_reset' => '
+ 'wificonn.explain_reset' => '
To force enable the built-in AP, hold the BOOT
button until the blue LED starts flashing. Hold the button longer (until the LED
flashes rapidly) for a "factory reset".',
- 'wifi.conn.disabled' =>"Station mode is disabled.",
- 'wifi.conn.idle' =>"Idle, not connected and has no IP.",
- 'wifi.conn.success' => "Connected! Received IP ",
- 'wifi.conn.working' => "Connecting to selected AP",
- 'wifi.conn.fail' => "Connection failed, check settings & try again. Cause: ",
+ 'wificonn.disabled' =>"Station mode is disabled.",
+ 'wificonn.idle' =>"Idle, not connected and has no IP.",
+ 'wificonn.success' => "Connected! Received IP ",
+ 'wificonn.working' => "Connecting to selected AP",
+ 'wificonn.fail' => "Connection failed, check settings & try again. Cause: ",
- 'system.save_restore' => 'Save & Restore',
- 'system.confirm_restore' => 'Restore all settings to their default values?',
- 'system.confirm_restore_hard' =>
- 'Restore to firmware default settings? This will reset ' .
- 'all active settings and switch to AP mode with the default SSID.',
- 'system.confirm_store_defaults' =>
- 'Enter admin password to confirm you want to overwrite the default settings.',
- 'system.password' => 'Admin password:',
- 'system.restore_defaults' => 'Reset to saved defaults',
- 'system.write_defaults' => 'Save active settings as defaults',
- 'system.restore_hard' => 'Reset active settings to factory defaults',
- 'system.restore_hard_explain' => '(This clears the WiFi config! Does not affect saved defaults or admin password.)',
- 'system.explain_persist' => '
- ESPTerm saves all settings in Flash. The active settings can be copied to
- the "defaults area" and restored later using the blue button below.
- ',
- 'system.uart' => 'Serial Port',
- 'system.explain_uart' => '
- This form controls the communication UART. The debug UART is fixed
- at 115.200 baud, one stop-bit and no parity.
- ',
+ // Access restrictions form
- 'system.security' => 'Access Restrictions',
- 'system.explain_security' => '
+ 'pwlock.title' => 'Access Restrictions',
+ 'pwlock.explain' => '
Some parts, or all of the web interface can be protected by a password prompt.
Leave the new password fields empty if you do not wish to change it.
The default password is "%def_access_pw%".
',
- 'system.pwlock' => 'Protected pages',
- 'system.pwlock.none' => 'None, all open',
- 'system.pwlock.settings_noterm' => 'WiFi, Net & System settings',
- 'system.pwlock.settings' => 'All settings pages',
- 'system.pwlock.menus' => 'This entire menu section',
- 'system.pwlock.all' => 'Everything, even terminal',
- 'system.new_access_pw' => 'New password',
- 'system.new_access_pw2' => 'New pass., repeat',
- 'system.admin_pw' => 'Admin password',
- 'system.access_name' => 'Username',
-
- 'system.change_adminpw' => 'Change Admin Password',
- 'system.explain_adminpw' =>
+ 'pwlock.region' => 'Protected pages',
+ 'pwlock.region.none' => 'None, all open',
+ 'pwlock.region.settings_noterm' => 'WiFi, Net & System settings',
+ 'pwlock.region.settings' => 'All settings pages',
+ 'pwlock.region.menus' => 'This entire menu section',
+ 'pwlock.region.all' => 'Everything, even terminal',
+ 'pwlock.new_access_pw' => 'New password',
+ 'pwlock.new_access_pw2' => 'Repeat',
+ 'pwlock.admin_pw' => 'Admin password',
+ 'pwlock.access_name' => 'Username',
+
+ // Setting admin password
+
+ 'adminpw.title' => 'Change Admin Password',
+ 'adminpw.explain' =>
'
The "admin password" is used to manipulate the stored default settings
and to change access restrictions. This password is not saved as part
@@ -212,10 +198,36 @@ return [
re-gain access is to wipe and re-flash the chip.
The default admin password is "%def_admin_pw%".
',
- 'system.new_admin_pw' => 'New admin pass.',
- 'system.new_admin_pw2' => 'New pass., repeat',
- 'system.old_admin_pw' => 'Old admin pass.',
+ 'adminpw.new_admin_pw' => 'New admin password',
+ 'adminpw.new_admin_pw2' => 'Repeat',
+ 'adminpw.old_admin_pw' => 'Old admin password',
+
+ // Persist form
+ 'persist.title' => 'Save & Restore',
+ 'persist.explain' => '
+ ESPTerm saves all settings in Flash. The active settings can be copied to
+ the "defaults area" and restored later using the blue button below.
+ ',
+ 'persist.confirm_restore' => 'Restore all settings to their default values?',
+ 'persist.confirm_restore_hard' =>
+ 'Restore to firmware default settings? This will reset ' .
+ 'all active settings and switch to AP mode with the default SSID.',
+ 'persist.confirm_store_defaults' =>
+ 'Enter admin password to confirm you want to overwrite the default settings.',
+ 'persist.password' => 'Admin password:',
+ 'persist.restore_defaults' => 'Reset to saved defaults',
+ 'persist.write_defaults' => 'Save active settings as defaults',
+ 'persist.restore_hard' => 'Reset active settings to factory defaults',
+ 'persist.restore_hard_explain' => '(This clears the WiFi config! Does not affect saved defaults or admin password.)',
+
+ // UART settings form
+
+ 'uart.title' => 'Serial Port Parameters',
+ 'uart.explain' => '
+ This form controls the communication UART. The debug UART is fixed
+ at 115.200 baud, one stop-bit and no parity.
+ ',
'uart.baud' => 'Baud rate',
'uart.parity' => 'Parity',
'uart.parity.none' => 'None',
@@ -226,6 +238,19 @@ return [
'uart.stop_bits.one_and_half' => 'One and half',
'uart.stop_bits.two' => 'Two',
+ // HW tuning form
+
+ 'hwtuning.title' => 'Hardware Tuning',
+ 'hwtuning.explain' => '
+ ESP8266 can be overclocked from 80 MHz to 160 MHz.
+ This will make it more responsive and allow faster screen updates
+ at the expense of slightly higher power consumption. This can also make
+ it more susceptible to interference. Use with care.
+ ',
+ 'hwtuning.overclock' => 'Overclock to 160MHz',
+
+ // Generic button / dialog labels
+
'apply' => 'Apply!',
'enabled' => 'Enabled',
'disabled' => 'Disabled',
diff --git a/pages/cfg_network.php b/pages/cfg_network.php
index d9b602d..7116b04 100644
--- a/pages/cfg_network.php
+++ b/pages/cfg_network.php
@@ -2,6 +2,7 @@
$ipmask='pattern="^([0-9]{1,3}\.){3}[0-9]{1,3}$"';
?>
+