language code support for checking prefix instead of full string

pull/29/head
Paul Shapiro 6 years ago
parent dd28854917
commit 4032bc1dec

@ -120,31 +120,37 @@ namespace monero_wallet_utils
{ {
optional<WalletDescription> optl__desc = boost::none; optional<WalletDescription> optl__desc = boost::none;
}; };
inline optional<string> mnemonic_language_from_code(const string &language_code) inline bool is_prefixed_by(const string &haystack, const string &needle)
{ {
if (language_code == "en") { auto res = std::mismatch(needle.begin(), needle.end(), haystack.begin());
//
return res.first == needle.end();
}
inline optional<string> mnemonic_language_from_code(const string &language_code)
{ // using is_prefixed_by so that e.g. en-US would match as en
if (is_prefixed_by(language_code, "en")) {
return string("English"); return string("English");
} else if (language_code == "nl") { // Dutch language } else if (is_prefixed_by(language_code, "nl")) { // Dutch language
return string("Nederlands"); return string("Nederlands");
} else if (language_code == "fr") { } else if (is_prefixed_by(language_code, "fr")) {
return string("Français"); return string("Français");
} else if (language_code == "es") { } else if (is_prefixed_by(language_code, "es")) {
return string("Español"); return string("Español");
} else if (language_code == "pt") { } else if (is_prefixed_by(language_code, "pt")) {
return string("Português"); return string("Português");
} else if (language_code == "ja") { } else if (is_prefixed_by(language_code, "ja")) {
return string("日本語"); return string("日本語");
} else if (language_code == "it") { } else if (is_prefixed_by(language_code, "it")) {
return string("Italiano"); return string("Italiano");
} else if (language_code == "de") { } else if (is_prefixed_by(language_code, "de")) {
return string("Deutsch"); return string("Deutsch");
} else if (language_code == "ru") { } else if (is_prefixed_by(language_code, "ru")) {
return string("русский язык"); return string("русский язык");
} else if (language_code == "zh") { // Chinese language, simplified } else if (is_prefixed_by(language_code, "zh")) { // Chinese language, simplified
return string("简体中文 (中国)"); return string("简体中文 (中国)");
} else if (language_code == "eo" || language_code == "epo") { } else if (is_prefixed_by(language_code, "eo") || is_prefixed_by(language_code, "epo")) {
return string("Esperanto"); return string("Esperanto");
} else if (language_code == "jbo") { } else if (is_prefixed_by(language_code, "jbo")) {
return string("Lojban"); return string("Lojban");
} else { } else {
return none; // error .. possibly throw? return none; // error .. possibly throw?

@ -619,7 +619,7 @@ BOOST_AUTO_TEST_CASE(bridged__new_wallet)
// //
boost::property_tree::ptree root; boost::property_tree::ptree root;
root.put("nettype_string", string_from_nettype(MAINNET)); root.put("nettype_string", string_from_nettype(MAINNET));
root.put("locale_language_code", "en"); root.put("locale_language_code", "en-US");
// //
auto ret_string = serial_bridge::newly_created_wallet(args_string_from_root(root)); auto ret_string = serial_bridge::newly_created_wallet(args_string_from_root(root));
stringstream ret_stream; stringstream ret_stream;

Loading…
Cancel
Save