+/// Return language allowed in the GUI without dialect and proper casing
+string const languageonly(string const & lang)
+{
+ string const locase = ascii_lowercase(trim(lang, "{}"));
+ string const all_languages = ascii_lowercase(allowed_languages) + "\n";
+ string language = (lang.at(0) == '[') ? locase + "\n"
+ : string("]") + locase + "\n";
+ size_t i = all_languages.find(language);
+ if (i == string::npos && lang.at(0) != '[') {
+ language[0] = '\n';
+ i = all_languages.find(language);
+ }
+ if (i == string::npos)
+ return lang;
+ if (all_languages.at(i) == '[')
+ i = all_languages.find(']', i);
+ if (i == string::npos)
+ return lang;
+ size_t j = all_languages.find('\n', i + 1);
+ if (j == string::npos)
+ return lang;
+ return string(allowed_languages).substr(i + 1, j - i - 1);
+}
+
+