Skip to content

Commit bab4420

Browse files
authored
Add language DE (#1829)
* Add language DE * Update README.md with language compile flag * Update WiFiManager.h for language settings
1 parent 32655b7 commit bab4420

File tree

4 files changed

+582
-4
lines changed

4 files changed

+582
-4
lines changed

README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,21 @@ lib_deps =
188188

189189
## Documentation
190190

191+
#### Switch languages for the configuration website
192+
You can switch the language for configuration website during compile time. Default is `LANG_EN` for an english setup. Within PlatformIO add the following compile parameter:
193+
```ini
194+
[env]
195+
build_flags = -D LANG_EN
196+
```
197+
Currently the following language codes are available:
198+
```ini
199+
LANG_DE
200+
LANG_EN
201+
LANG_ES
202+
LANG_FR
203+
```
204+
205+
191206
#### Password protect the configuration Access Point
192207
You can and should password protect the configuration access point. Simply add the password as a second parameter to `autoConnect`.
193208
A short password seems to have unpredictable results so use one that's around 8 characters or more in length.

WiFiManager.h

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,11 +134,18 @@
134134

135135

136136
// Include wm strings vars
137-
// Pass in strings env override via WM_STRINGS_FILE
138-
#ifndef WM_STRINGS_FILE
139-
#define WM_STRINGS_FILE "wm_strings_en.h" // this includes constants as dependency
137+
// Pass in strings env override via LANG_XX
138+
#if defined(LANG_DE)
139+
#include "wm_strings_de.h"
140+
#elif defined(LANG_ES)
141+
#include "wm_strings_es.h"
142+
#elif defined(LANG_EN)
143+
#include "wm_strings_en.h"
144+
#elif defined(LANG_FR)
145+
#include "wm_strings_fr.h"
146+
#else
147+
#include "wm_strings_en.h"
140148
#endif
141-
#include WM_STRINGS_FILE
142149

143150
// prep string concat vars
144151
#define WM_STRING2(x) #x

wm_consts_de.h

Lines changed: 279 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,279 @@
1+
/**
2+
* wm_consts_de.h
3+
* internal const strings/tokens
4+
* WiFiManager, a library for the ESP8266/Arduino platform
5+
* for configuration of WiFi credentials using a Captive Portal
6+
*
7+
* @author Creator tzapu
8+
* @author tablatronix
9+
* @author Sascha Münch
10+
* @version 0.0.0
11+
* @license MIT
12+
*/
13+
14+
#ifndef _WM_CONSTS_H
15+
#define _WM_CONSTS_H
16+
17+
18+
// -----------------------------------------------------------------------------------------------
19+
// TOKENS
20+
21+
const char WM_VERSION_STR[] PROGMEM = "v2.0.17";
22+
23+
static const char _wifi_token[] PROGMEM = "wifi";
24+
static const char _wifinoscan_token[] PROGMEM = "wifinoscan";
25+
static const char _info_token[] PROGMEM = "info";
26+
static const char _param_token[] PROGMEM = "param";
27+
static const char _close_token[] PROGMEM = "close";
28+
static const char _restart_token[] PROGMEM = "restart";
29+
static const char _exit_token[] PROGMEM = "exit";
30+
static const char _erase_token[] PROGMEM = "erase";
31+
static const char _update_token[] PROGMEM = "update";
32+
static const char _sep_token[] PROGMEM = "sep";
33+
static const char _custom_token[] PROGMEM = "custom";
34+
static PGM_P _menutokens[] PROGMEM = {
35+
_wifi_token,
36+
_wifinoscan_token,
37+
_info_token,
38+
_param_token,
39+
_close_token,
40+
_restart_token,
41+
_exit_token,
42+
_erase_token,
43+
_update_token,
44+
_sep_token,
45+
_custom_token
46+
};
47+
const uint8_t _nummenutokens = (sizeof(_menutokens) / sizeof(PGM_P));
48+
49+
50+
// Routes
51+
const char R_root[] PROGMEM = "/";
52+
const char R_wifi[] PROGMEM = "/wifi";
53+
const char R_wifinoscan[] PROGMEM = "/0wifi";
54+
const char R_wifisave[] PROGMEM = "/wifisave";
55+
const char R_info[] PROGMEM = "/info";
56+
const char R_param[] PROGMEM = "/param";
57+
const char R_paramsave[] PROGMEM = "/paramsave";
58+
const char R_restart[] PROGMEM = "/restart";
59+
const char R_exit[] PROGMEM = "/exit";
60+
const char R_close[] PROGMEM = "/close";
61+
const char R_erase[] PROGMEM = "/erase";
62+
const char R_status[] PROGMEM = "/status";
63+
const char R_update[] PROGMEM = "/update";
64+
const char R_updatedone[] PROGMEM = "/u";
65+
66+
67+
// Classes
68+
const char C_root[] PROGMEM = "home";
69+
const char C_wifi[] PROGMEM = "wifi";
70+
const char C_info[] PROGMEM = "info";
71+
const char C_param[] PROGMEM = "param";
72+
const char C_close[] PROGMEM = "close";
73+
const char C_restart[] PROGMEM = "restart";
74+
const char C_exit[] PROGMEM = "exit";
75+
const char C_erase[] PROGMEM = "erase";
76+
const char C_update[] PROGMEM = "update";
77+
78+
79+
//Strings
80+
const char S_ip[] PROGMEM = "ip";
81+
const char S_gw[] PROGMEM = "gw";
82+
const char S_sn[] PROGMEM = "sn";
83+
const char S_dns[] PROGMEM = "dns";
84+
85+
86+
87+
//Tokens
88+
//@todo consolidate and reduce
89+
const char T_ss[] PROGMEM = "{"; // token start sentinel
90+
const char T_es[] PROGMEM = "}"; // token end sentinel
91+
const char T_1[] PROGMEM = "{1}"; // @token 1
92+
const char T_2[] PROGMEM = "{2}"; // @token 2
93+
const char T_3[] PROGMEM = "{3}"; // @token 2
94+
const char T_v[] PROGMEM = "{v}"; // @token v
95+
const char T_V[] PROGMEM = "{V}"; // @token v
96+
const char T_I[] PROGMEM = "{I}"; // @token I
97+
const char T_i[] PROGMEM = "{i}"; // @token i
98+
const char T_n[] PROGMEM = "{n}"; // @token n
99+
const char T_p[] PROGMEM = "{p}"; // @token p
100+
const char T_t[] PROGMEM = "{t}"; // @token t
101+
const char T_l[] PROGMEM = "{l}"; // @token l
102+
const char T_c[] PROGMEM = "{c}"; // @token c
103+
const char T_e[] PROGMEM = "{e}"; // @token e
104+
const char T_q[] PROGMEM = "{q}"; // @token q
105+
const char T_r[] PROGMEM = "{r}"; // @token r
106+
const char T_R[] PROGMEM = "{R}"; // @token R
107+
const char T_h[] PROGMEM = "{h}"; // @token h
108+
109+
// http
110+
const char HTTP_HEAD_CL[] PROGMEM = "Content-Length";
111+
const char HTTP_HEAD_CT[] PROGMEM = "text/html";
112+
const char HTTP_HEAD_CT2[] PROGMEM = "text/plain";
113+
const char HTTP_HEAD_CORS[] PROGMEM = "Access-Control-Allow-Origin";
114+
const char HTTP_HEAD_CORS_ALLOW_ALL[] PROGMEM = "*";
115+
116+
const char * const WIFI_STA_STATUS[] PROGMEM
117+
{
118+
"WL_IDLE_STATUS", // 0 STATION_IDLE
119+
"WL_NO_SSID_AVAIL", // 1 STATION_NO_AP_FOUND
120+
"WL_SCAN_COMPLETED", // 2
121+
"WL_CONNECTED", // 3 STATION_GOT_IP
122+
"WL_CONNECT_FAILED", // 4 STATION_CONNECT_FAIL, STATION_WRONG_PASSWORD(NI)
123+
"WL_CONNECTION_LOST", // 5
124+
"WL_DISCONNECTED", // 6
125+
"WL_STATION_WRONG_PASSWORD" // 7 KLUDGE
126+
};
127+
128+
#ifdef ESP32
129+
const char * const AUTH_MODE_NAMES[] PROGMEM
130+
{
131+
"OPEN",
132+
"WEP",
133+
"WPA_PSK",
134+
"WPA2_PSK",
135+
"WPA_WPA2_PSK",
136+
"WPA2_ENTERPRISE",
137+
"MAX"
138+
};
139+
#elif defined(ESP8266)
140+
const char * const AUTH_MODE_NAMES[] PROGMEM
141+
{
142+
"",
143+
"",
144+
"WPA_PSK", // 2 ENC_TYPE_TKIP
145+
"",
146+
"WPA2_PSK", // 4 ENC_TYPE_CCMP
147+
"WEP", // 5 ENC_TYPE_WEP
148+
"",
149+
"OPEN", //7 ENC_TYPE_NONE
150+
"WPA_WPA2_PSK", // 8 ENC_TYPE_AUTO
151+
};
152+
#endif
153+
154+
const char* const WIFI_MODES[] PROGMEM = { "NULL", "STA", "AP", "STA+AP" };
155+
156+
157+
#ifdef ESP32
158+
// as 2.5.2
159+
// typedef struct {
160+
// char cc[3]; /**< country code string */
161+
// uint8_t schan; /**< start channel */
162+
// uint8_t nchan; /**< total channel number */
163+
// int8_t max_tx_power; /**< This field is used for getting WiFi maximum transmitting power, call esp_wifi_set_max_tx_power to set the maximum transmitting power. */
164+
// wifi_country_policy_t policy; /**< country policy */
165+
// } wifi_country_t;
166+
const wifi_country_t WM_COUNTRY_US{"US",1,11,CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER,WIFI_COUNTRY_POLICY_AUTO};
167+
const wifi_country_t WM_COUNTRY_CN{"CN",1,13,CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER,WIFI_COUNTRY_POLICY_AUTO};
168+
const wifi_country_t WM_COUNTRY_JP{"JP",1,14,CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER,WIFI_COUNTRY_POLICY_AUTO};
169+
#elif defined(ESP8266) && !defined(WM_NOCOUNTRY)
170+
// typedef struct {
171+
// char cc[3]; /**< country code string */
172+
// uint8_t schan; /**< start channel */
173+
// uint8_t nchan; /**< total channel number */
174+
// uint8_t policy; /**< country policy */
175+
// } wifi_country_t;
176+
const wifi_country_t WM_COUNTRY_US{"US",1,11,WIFI_COUNTRY_POLICY_AUTO};
177+
const wifi_country_t WM_COUNTRY_CN{"CN",1,13,WIFI_COUNTRY_POLICY_AUTO};
178+
const wifi_country_t WM_COUNTRY_JP{"JP",1,14,WIFI_COUNTRY_POLICY_AUTO};
179+
#endif
180+
181+
182+
/*
183+
* ESP32 WiFi Events
184+
185+
0 SYSTEM_EVENT_WIFI_READY < ESP32 WiFi ready
186+
1 SYSTEM_EVENT_SCAN_DONE < ESP32 finish scanning AP
187+
2 SYSTEM_EVENT_STA_START < ESP32 station start
188+
3 SYSTEM_EVENT_STA_STOP < ESP32 station stop
189+
4 SYSTEM_EVENT_STA_CONNECTED < ESP32 station connected to AP
190+
5 SYSTEM_EVENT_STA_DISCONNECTED < ESP32 station disconnected from AP
191+
6 SYSTEM_EVENT_STA_AUTHMODE_CHANGE < the auth mode of AP connected by ESP32 station changed
192+
7 SYSTEM_EVENT_STA_GOT_IP < ESP32 station got IP from connected AP
193+
8 SYSTEM_EVENT_STA_LOST_IP < ESP32 station lost IP and the IP is reset to 0
194+
9 SYSTEM_EVENT_STA_WPS_ER_SUCCESS < ESP32 station wps succeeds in enrollee mode
195+
10 SYSTEM_EVENT_STA_WPS_ER_FAILED < ESP32 station wps fails in enrollee mode
196+
11 SYSTEM_EVENT_STA_WPS_ER_TIMEOUT < ESP32 station wps timeout in enrollee mode
197+
12 SYSTEM_EVENT_STA_WPS_ER_PIN < ESP32 station wps pin code in enrollee mode
198+
13 SYSTEM_EVENT_AP_START < ESP32 soft-AP start
199+
14 SYSTEM_EVENT_AP_STOP < ESP32 soft-AP stop
200+
15 SYSTEM_EVENT_AP_STACONNECTED < a station connected to ESP32 soft-AP
201+
16 SYSTEM_EVENT_AP_STADISCONNECTED < a station disconnected from ESP32 soft-AP
202+
17 SYSTEM_EVENT_AP_STAIPASSIGNED < ESP32 soft-AP assign an IP to a connected station
203+
18 SYSTEM_EVENT_AP_PROBEREQRECVED < Receive probe request packet in soft-AP interface
204+
19 SYSTEM_EVENT_GOT_IP6 < ESP32 station or ap or ethernet interface v6IP addr is preferred
205+
20 SYSTEM_EVENT_ETH_START < ESP32 ethernet start
206+
21 SYSTEM_EVENT_ETH_STOP < ESP32 ethernet stop
207+
22 SYSTEM_EVENT_ETH_CONNECTED < ESP32 ethernet phy link up
208+
23 SYSTEM_EVENT_ETH_DISCONNECTED < ESP32 ethernet phy link down
209+
24 SYSTEM_EVENT_ETH_GOT_IP < ESP32 ethernet got IP from connected AP
210+
25 SYSTEM_EVENT_MAX
211+
212+
213+
typedef enum {
214+
ARDUINO_EVENT_WIFI_READY = 0,
215+
ARDUINO_EVENT_WIFI_SCAN_DONE,
216+
ARDUINO_EVENT_WIFI_STA_START,
217+
ARDUINO_EVENT_WIFI_STA_STOP,
218+
ARDUINO_EVENT_WIFI_STA_CONNECTED,
219+
ARDUINO_EVENT_WIFI_STA_DISCONNECTED,
220+
ARDUINO_EVENT_WIFI_STA_AUTHMODE_CHANGE,
221+
ARDUINO_EVENT_WIFI_STA_GOT_IP,
222+
ARDUINO_EVENT_WIFI_STA_GOT_IP6,
223+
ARDUINO_EVENT_WIFI_STA_LOST_IP,
224+
ARDUINO_EVENT_WIFI_AP_START,
225+
ARDUINO_EVENT_WIFI_AP_STOP,
226+
ARDUINO_EVENT_WIFI_AP_STACONNECTED,
227+
ARDUINO_EVENT_WIFI_AP_STADISCONNECTED,
228+
ARDUINO_EVENT_WIFI_AP_STAIPASSIGNED,
229+
ARDUINO_EVENT_WIFI_AP_PROBEREQRECVED,
230+
ARDUINO_EVENT_WIFI_AP_GOT_IP6,
231+
ARDUINO_EVENT_WIFI_FTM_REPORT,
232+
ARDUINO_EVENT_ETH_START,
233+
ARDUINO_EVENT_ETH_STOP,
234+
ARDUINO_EVENT_ETH_CONNECTED,
235+
ARDUINO_EVENT_ETH_DISCONNECTED,
236+
ARDUINO_EVENT_ETH_GOT_IP,
237+
ARDUINO_EVENT_ETH_GOT_IP6,
238+
ARDUINO_EVENT_WPS_ER_SUCCESS,
239+
ARDUINO_EVENT_WPS_ER_FAILED,
240+
ARDUINO_EVENT_WPS_ER_TIMEOUT,
241+
ARDUINO_EVENT_WPS_ER_PIN,
242+
ARDUINO_EVENT_WPS_ER_PBC_OVERLAP,
243+
ARDUINO_EVENT_SC_SCAN_DONE,
244+
ARDUINO_EVENT_SC_FOUND_CHANNEL,
245+
ARDUINO_EVENT_SC_GOT_SSID_PSWD,
246+
ARDUINO_EVENT_SC_SEND_ACK_DONE,
247+
ARDUINO_EVENT_PROV_INIT,
248+
ARDUINO_EVENT_PROV_DEINIT,
249+
ARDUINO_EVENT_PROV_START,
250+
ARDUINO_EVENT_PROV_END,
251+
ARDUINO_EVENT_PROV_CRED_RECV,
252+
ARDUINO_EVENT_PROV_CRED_FAIL,
253+
ARDUINO_EVENT_PROV_CRED_SUCCESS,
254+
ARDUINO_EVENT_MAX
255+
} arduino_event_id_t;
256+
257+
typedef union {
258+
wifi_event_sta_scan_done_t wifi_scan_done;
259+
wifi_event_sta_authmode_change_t wifi_sta_authmode_change;
260+
wifi_event_sta_connected_t wifi_sta_connected;
261+
wifi_event_sta_disconnected_t wifi_sta_disconnected;
262+
wifi_event_sta_wps_er_pin_t wps_er_pin;
263+
wifi_event_sta_wps_fail_reason_t wps_fail_reason;
264+
wifi_event_ap_probe_req_rx_t wifi_ap_probereqrecved;
265+
wifi_event_ap_staconnected_t wifi_ap_staconnected;
266+
wifi_event_ap_stadisconnected_t wifi_ap_stadisconnected;
267+
wifi_event_ftm_report_t wifi_ftm_report;
268+
ip_event_ap_staipassigned_t wifi_ap_staipassigned;
269+
ip_event_got_ip_t got_ip;
270+
ip_event_got_ip6_t got_ip6;
271+
smartconfig_event_got_ssid_pswd_t sc_got_ssid_pswd;
272+
esp_eth_handle_t eth_connected;
273+
wifi_sta_config_t prov_cred_recv;
274+
wifi_prov_sta_fail_reason_t prov_fail_reason;
275+
} arduino_event_info_t;
276+
277+
*/
278+
279+
#endif

0 commit comments

Comments
 (0)