Skip to content
API Documentation
BastionGuard™
main.cpp File Reference

Go to the source code of this file.

Functions

static std::string normalize_language (const std::string &val)
static std::string read_saved_language ()
static std::string locale_for_language (const std::string &lang)
int main (int argc, char *argv[])

Function Documentation

◆ locale_for_language()

std::string locale_for_language ( const std::string & lang)
static

Definition at line 44 of file main.cpp.

44 {
45 if (lang == "it") return "it_IT.UTF-8";
46 if (lang == "en") return "en_US.UTF-8";
47 if (lang == "de") return "de_DE.UTF-8";
48 if (lang == "es") return "es_ES.UTF-8";
49 if (lang == "fr") return "fr_FR.UTF-8";
50 if (lang == "ja") return "ja_JP.UTF-8";
51 if (lang == "nl") return "nl_NL.UTF-8";
52 if (lang == "pl") return "pl_PL.UTF-8";
53 if (lang == "pt") return "pt_PT.UTF-8";
54 if (lang == "ru") return "ru_RU.UTF-8";
55 if (lang == "ar") return "ar_SA.UTF-8";
56 return "en_US.UTF-8";
57}

References locale_for_language().

Referenced by locale_for_language(), and main().

◆ main()

int main ( int argc,
char * argv[] )

Definition at line 59 of file main.cpp.

59 {
60 const std::string lang = read_saved_language();
61 const std::string locale = locale_for_language(lang);
62
63 setenv("LANGUAGE", lang.c_str(), 1);
64 setenv("LANG", locale.c_str(), 1);
65 setenv("LC_ALL", locale.c_str(), 1);
66
67 init_i18n();
68
69 auto app = Gtk::Application::create("com.bastionguard.recoverydata");
70 return app->make_window_and_run<MainWindow>(argc, argv);
71}
void init_i18n()
Definition i18n.cpp:11
static std::string locale_for_language(const std::string &lang)
Definition main.cpp:44
static std::string read_saved_language()
Definition main.cpp:30

References init_i18n(), locale_for_language(), main(), and read_saved_language().

◆ normalize_language()

std::string normalize_language ( const std::string & val)
static

Definition at line 12 of file main.cpp.

12 {
13 static const std::unordered_set<std::string> supported = {
14 "en",
15 "it",
16 "de",
17 "es",
18 "fr",
19 "ja",
20 "nl",
21 "pl",
22 "pt",
23 "ru",
24 "ar"
25 };
26
27 return supported.count(val) ? val : "en";
28}

References normalize_language().

Referenced by normalize_language(), and read_saved_language().

◆ read_saved_language()

std::string read_saved_language ( )
static

Definition at line 30 of file main.cpp.

30 {
31 const std::string path =
32 Glib::get_home_dir() + "/.config/bastionguard-recovery-data/lang.conf";
33
34 std::ifstream f(path);
35 if (!f.is_open()) {
36 return "en";
37 }
38
39 std::string val;
40 f >> val;
41 return normalize_language(val);
42}
static std::string normalize_language(const std::string &val)
Definition main.cpp:12

References normalize_language(), and read_saved_language().

Referenced by main(), and read_saved_language().