// acetone, 2025 // I hate copyright of any kind. This is a public domain. // Original source: http://git.community.i2p/acetone/i2pdtunnelwizard #pragma once #include "tunneltype.h" #include class Notepad { public: Notepad() = delete; enum class Lang { en, ru }; static std::string langToString(Lang lang); static Lang stringToLang(const std::string& string); static std::string langToCode(Lang lang); struct ConfigComment { static const std::u8string type(Lang lang, TunnelType type); static const char8_t* clientAddress(Lang lang); static const char8_t* clientPort(Lang lang); static const char8_t* clientDestination(Lang lang); static const char8_t* clientDestinationPort(Lang lang); static const char8_t* clientKeepAlive(Lang lang); static const char8_t* serverAddress(Lang lang); static const char8_t* serverHost(Lang lang); static const char8_t* serverPort(Lang lang); static const char8_t* serverInport(Lang lang); static const char8_t* serverBlinded(Lang lang); static const char8_t* serverBlindedWithPsk(Lang lang); static const char8_t* serverBlindedWithDh(Lang lang); static const char8_t* serverBlindedWithDhPrivateKey(Lang lang); static const char8_t* serverBlindedWithPassword(Lang lang); static const char8_t* inbound(Lang lang); static const char8_t* outbound(Lang lang); static const char8_t* length(Lang lang); static const char8_t* quantity(Lang lang); static const char8_t* variance(Lang lang); static const char8_t* keysTransient(Lang lang); static const char8_t* keys(Lang lang); static const char8_t* ssl(Lang lang); static const char8_t* hostoverride(Lang lang); static const char8_t* maxStreamCount(Lang lang); static const char8_t* httpOutproxy(Lang lang); static const char8_t* socksOutproxy(Lang lang); static const char8_t* ircPassword(Lang lang); static const char8_t* b33ClientKey(Lang lang); static const std::u8string footer(Lang lang, bool isBlinded, const std::string& tunnelname); }; struct SetterError { static const char8_t* name(Lang lang); static const char8_t* length(Lang lang); static const char8_t* variance(Lang lang); static const char8_t* quantity(Lang lang); static const char8_t* maxStreamCount(Lang lang); static const char8_t* b33UserCount(Lang lang); }; struct WebUi { static const char8_t* errorNoRequiredParams(Lang lang); static const char8_t* toStartTitle(Lang lang); static const char8_t* goBack(Lang lang); static const char8_t* tunnelType(Lang lang, TunnelType type); static const char8_t* tagline(Lang lang); static const char8_t* error(Lang lang); static const char8_t* startSelectTunnelType(Lang lang); static const char8_t* startConfirm(Lang lang); static const char8_t* startAbout(Lang lang); static const char8_t* startDropdownClientTCP(Lang lang); static const char8_t* startDropdownClientUDP(Lang lang); static const char8_t* startDropdownServerTCP(Lang lang); static const char8_t* startDropdownServerUDP(Lang lang); static const char8_t* startDropdownServerHTTP(Lang lang); static const char8_t* startDropdownServerIRC(Lang lang); static const char8_t* startDropdownSOCKSProxy(Lang lang); static const char8_t* startDropdownHTTPProxy(Lang lang); static const char8_t* mainThOption(Lang lang); static const char8_t* mainThInput(Lang lang); static const char8_t* mainTunnelName(Lang lang); static const char8_t* mainTunnelNamePlaceholder(Lang lang); static const char8_t* mainTunnelType(Lang lang); static const char8_t* mainInbound(Lang lang); static const char8_t* mainOutbound(Lang lang); static const char8_t* mainLength(Lang lang); static const char8_t* mainQuantity(Lang lang); static const char8_t* mainVariance(Lang lang); static const char8_t* mainTransient(Lang lang); static const char8_t* mainKeepalive(Lang lang); static const char8_t* mainSsl(Lang lang); static const char8_t* mainB33KeysServer(Lang lang); static const char8_t* mainB33PasswordServer(Lang lang); static const char8_t* mainHostoverride(Lang lang); static const char8_t* mainWebIrcPasswordServer(Lang lang); static const char8_t* mainHttpOutproxyClient(Lang lang); static const char8_t* mainSocksOutproxyClient(Lang lang); static const char8_t* mainClientB33(Lang lang); static const char8_t* mainComments(Lang lang); static const char8_t* mainGenerate(Lang lang); static const char8_t* configToStart(Lang lang); static const char8_t* b33TaglineServer(Lang lang); static const std::u8string b33AboutServer(Lang lang, TunnelType type); static const char8_t* b33ThOption(Lang lang); static const char8_t* b33ThInput(Lang lang); static const char8_t* b33NoneServer(Lang lang); static const char8_t* b33NoneShort(Lang lang); static const char8_t* b33SimpleServer(Lang lang); static const char8_t* b33SimpleShort(Lang lang); static const char8_t* b33PasswordServer(Lang lang); static const char8_t* b33PasswordShort(Lang lang); static const char8_t* b33KeysServer(Lang lang); static const char8_t* b33KeysShort(Lang lang); static const char8_t* b33Confirm(Lang lang); }; private: static const char8_t* tunnelTypeDescription(Lang lang, TunnelType type); };