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}