2021-12-12 04:16:14 +13:00
|
|
|
use crate::language_functions::get_language_from_combo_box_text;
|
|
|
|
use crate::GuiData;
|
|
|
|
use gtk::prelude::*;
|
|
|
|
use i18n_embed::unic_langid::LanguageIdentifier;
|
|
|
|
// use i18n_embed::{DesktopLanguageRequester, Localizer};
|
|
|
|
|
|
|
|
pub fn connect_change_language(gui_data: &GuiData) {
|
|
|
|
change_language(gui_data);
|
|
|
|
|
|
|
|
let combo_box_settings_language = gui_data.settings.combo_box_settings_language.clone();
|
|
|
|
let gui_data = gui_data.clone();
|
|
|
|
combo_box_settings_language.connect_changed(move |_| {
|
|
|
|
change_language(&gui_data);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
fn change_language(gui_data: &GuiData) {
|
|
|
|
let localizers = vec![("czkawka_gui", czkawka_core::localizer::localizer())];
|
|
|
|
|
|
|
|
let lang_short = get_language_from_combo_box_text(gui_data.settings.combo_box_settings_language.active_text().unwrap().to_string()).short_text;
|
|
|
|
|
|
|
|
let lang_identifier = vec![LanguageIdentifier::from_bytes(lang_short.as_bytes()).unwrap()];
|
|
|
|
// let available_languages = Localizer::available_languages();
|
|
|
|
// println!("{:?}", available_languages);
|
|
|
|
for (lib, localizer) in localizers {
|
|
|
|
if let Err(error) = localizer.select(&lang_identifier) {
|
|
|
|
eprintln!("Error while loadings languages for {} {:?}", lib, error);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
gui_data.update_language();
|
|
|
|
|
2021-12-13 00:02:53 +13:00
|
|
|
// Try to use default OS language
|
2021-12-12 04:16:14 +13:00
|
|
|
// let requested_languages = DesktopLanguageRequester::requested_languages();
|
|
|
|
// let localizers = vec![("czkawka_gui", crate::localizer::localizer())];
|
|
|
|
//
|
|
|
|
// println!("Requested Languages{:?}", requested_languages);
|
|
|
|
//
|
|
|
|
// let lang_identifier = LanguageIdentifier::from_bytes("pl".as_bytes());
|
|
|
|
// // let available_languages = Localizer::available_languages();
|
|
|
|
// // println!("{:?}", available_languages);
|
|
|
|
// for (lib, localizer) in localizers {
|
|
|
|
// if let Err(error) = localizer.select(&requested_languages) {
|
|
|
|
// eprintln!("Error while loadings languages for {} {:?}", lib, error);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
}
|