authenticator/
main.rs

1#![doc(
2    html_logo_url = "https://gitlab.gnome.org/World/Authenticator/-/raw/master/data/icons/com.belmoussaoui.Authenticator.svg?inline=false",
3    html_favicon_url = "https://gitlab.gnome.org/World/Authenticator/-/raw/master/data/icons/com.belmoussaoui.Authenticator-symbolic.svg?inline=false"
4)]
5
6use gtk::{gio, glib};
7
8mod utils;
9use gettextrs::*;
10mod application;
11mod backup;
12mod config;
13mod models;
14mod schema;
15mod widgets;
16
17use application::Application;
18
19fn init_i18n() -> anyhow::Result<()> {
20    setlocale(LocaleCategory::LcAll, "");
21    bindtextdomain(config::GETTEXT_PACKAGE, config::LOCALEDIR)?;
22    textdomain(config::GETTEXT_PACKAGE)?;
23
24    Ok(())
25}
26
27fn main() -> glib::ExitCode {
28    tracing_subscriber::fmt::init();
29    gtk::init().expect("failed to init gtk");
30    aperture::init(config::APP_ID);
31
32    if let Err(err) = init_i18n() {
33        tracing::error!("Failed to initialize i18n {}", err);
34    }
35
36    let res = gio::Resource::load(config::PKGDATADIR.to_owned() + "/authenticator.gresource")
37        .expect("Could not load resources");
38    gio::resources_register(&res);
39
40    glib::set_application_name(&gettext("Authenticator"));
41
42    Application::run()
43}