mirror of
https://github.com/revspace/operame
synced 2024-12-04 21:57:30 +00:00
29d873d268
Also moved startup order around so module error message can be localized with user language.
167 lines
5.3 KiB
C++
167 lines
5.3 KiB
C++
#include <map>
|
|
#include <vector>
|
|
#include <list>
|
|
|
|
namespace OperameLanguage {
|
|
|
|
struct Texts {
|
|
const char
|
|
*error_mqtt,
|
|
*error_driver,
|
|
*error_module,
|
|
*error_timeout,
|
|
*error_sensor,
|
|
*error_wifi,
|
|
*error_format,
|
|
*config_wifi,
|
|
*config_ota,
|
|
*config_co2_warning,
|
|
*config_co2_critical,
|
|
*config_co2_blink,
|
|
*config_mqtt,
|
|
*config_mqtt_server,
|
|
*config_mqtt_port,
|
|
*config_max_failures,
|
|
*config_mqtt_topic,
|
|
*config_mqtt_interval,
|
|
*config_mqtt_template,
|
|
*config_template_info,
|
|
*connecting,
|
|
*wait
|
|
;
|
|
std::vector<std::list<String>> portal_instructions;
|
|
std::list<String> first_run;
|
|
};
|
|
|
|
std::map<const String, const String> languages {
|
|
// Ordered alphabetically
|
|
{ "en", "English" },
|
|
{ "nl", "Nederlands" },
|
|
};
|
|
|
|
bool available(const String& language) {
|
|
return languages.count(language) == 1;
|
|
}
|
|
|
|
bool select(Texts& T, String language) {
|
|
if (! available(language)) {
|
|
if (available("en")) language = "en";
|
|
else language = languages.begin()->first;
|
|
}
|
|
|
|
if (language == "en") {
|
|
T.error_mqtt = "MQTT unreachable";
|
|
T.error_driver = "driver error";
|
|
T.error_module = "module turned around!";
|
|
T.error_timeout = "Time's up";
|
|
T.error_sensor = "sensor error";
|
|
T.error_wifi = "WiFi failed!";
|
|
T.error_format = "Formatting failed";
|
|
T.wait = "wait...";
|
|
T.config_wifi = "Use WiFi connection";
|
|
T.config_ota = "Enable wireless reprogramming. (Uses portal password!)";
|
|
T.config_co2_warning = "Yellow from [ppm]";
|
|
T.config_co2_critical = "Red from [ppm]";
|
|
T.config_co2_blink = "Blink from [ppm]";
|
|
T.config_mqtt = "Publish measurements via the MQTT protocol";
|
|
T.config_mqtt_server = "Broker"; // probably should not be translated
|
|
T.config_mqtt_port = "Broker TCP port";
|
|
T.config_max_failures = "Number of failed connections before automatic restart";
|
|
T.config_mqtt_topic = "Topic"; // probably should not be translated
|
|
T.config_mqtt_interval = "Publication interval [s]";
|
|
T.config_mqtt_template = "Message template";
|
|
T.config_template_info = "The {} in the template is replaced by the measurement value.";
|
|
T.connecting = "Connecting to WiFi...";
|
|
T.portal_instructions = {
|
|
{
|
|
"For configuration,",
|
|
"connect to WiFi",
|
|
"\"{ssid}\"",
|
|
"with a smartphone."
|
|
},
|
|
{
|
|
"Follow instructions",
|
|
"on your smartphone.",
|
|
"(log in notification)"
|
|
},
|
|
{
|
|
"Change settings",
|
|
"and click \"Save\".",
|
|
"(bottom right)"
|
|
},
|
|
{
|
|
"Change settings",
|
|
"and click \"Save\".",
|
|
"Or \"Restart device\"",
|
|
"when you're done."
|
|
}
|
|
};
|
|
T.first_run = {
|
|
"DO NOT TURN OFF",
|
|
"Initializing",
|
|
"flash memory.",
|
|
};
|
|
return true;
|
|
}
|
|
|
|
if(language == "nl") {
|
|
T.error_mqtt = "MQTT onbereikbaar";
|
|
T.error_driver = "driverfout";
|
|
T.error_module = "module verkeerd om!";
|
|
T.error_timeout = "Tijd verstreken";
|
|
T.error_sensor = "sensorfout";
|
|
T.error_wifi = "WiFi mislukt!";
|
|
T.error_format = "Formatteren mislukt";
|
|
T.wait = "wacht...";
|
|
T.config_wifi = "WiFi-verbinding gebruiken";
|
|
T.config_ota = "Draadloos herprogrammeren inschakelen. (Gebruikt portaalwachtwoord!)";
|
|
T.config_co2_warning = "Geel vanaf [ppm]";
|
|
T.config_co2_critical = "Rood vanaf [ppm]";
|
|
T.config_co2_blink = "Knipperen vanaf [ppm]";
|
|
T.config_mqtt = "Metingen via het MQTT-protocol versturen";
|
|
T.config_mqtt_server = "Broker"; // zo heet dat in MQTT
|
|
T.config_mqtt_port = "Broker TCP-poort";
|
|
T.config_max_failures = "Aantal verbindingsfouten voor automatische herstart";
|
|
T.config_mqtt_topic = "Topic"; // zo heet dat in MQTT
|
|
T.config_mqtt_interval = "Publicatie-interval [s]";
|
|
T.config_mqtt_template = "Berichtsjabloon";
|
|
T.config_template_info = "De {} in het sjabloon wordt vervangen door de gemeten waarde.";
|
|
T.connecting = "Verbinden met WiFi...";
|
|
T.portal_instructions = {
|
|
{
|
|
"Voor configuratie,",
|
|
"verbind met WiFi",
|
|
"\"{ssid}\"",
|
|
"met een smartphone."
|
|
},
|
|
{
|
|
"Volg instructies op",
|
|
"uw smartphone.",
|
|
"(inlog-notificatie)"
|
|
},
|
|
{
|
|
"Wijzig instellingen",
|
|
"en klik op \"Opslaan\".",
|
|
"(rechtsonder)"
|
|
},
|
|
{
|
|
"Wijzig instellingen",
|
|
"en klik op \"Opslaan\".",
|
|
"Of \"Herstarten\"",
|
|
"als u klaar bent."
|
|
}
|
|
};
|
|
T.first_run = {
|
|
"NIET",
|
|
"UITSCHAKELEN",
|
|
"Flashgeheugen",
|
|
"wordt voorbereid."
|
|
};
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
} // namespace
|