mirror of https://codeberg.org/topola/topola.git
feat(egui,wasm): set `lang` attribute to current language
This commit is contained in:
parent
98d237270d
commit
20e682243d
|
|
@ -125,6 +125,25 @@ impl App {
|
||||||
|
|
||||||
ControlFlow::Break(())
|
ControlFlow::Break(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(not(target_arch = "wasm32"))]
|
||||||
|
fn update_locale(&mut self) {
|
||||||
|
// I don't know any equivalent of changing the lang property in desktop.
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(target_arch = "wasm32")]
|
||||||
|
fn update_locale(&mut self) {
|
||||||
|
use eframe::wasm_bindgen::JsCast;
|
||||||
|
|
||||||
|
let document_element = eframe::web_sys::window()
|
||||||
|
.expect("No window")
|
||||||
|
.document()
|
||||||
|
.expect("No document")
|
||||||
|
.document_element()
|
||||||
|
.expect("No document element");
|
||||||
|
|
||||||
|
document_element.set_attribute("lang", &self.translator.langid().to_string());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl eframe::App for App {
|
impl eframe::App for App {
|
||||||
|
|
@ -172,6 +191,8 @@ impl eframe::App for App {
|
||||||
self.viewport
|
self.viewport
|
||||||
.update(ctx, &self.menu_bar, self.maybe_workspace.as_mut());
|
.update(ctx, &self.menu_bar, self.maybe_workspace.as_mut());
|
||||||
|
|
||||||
|
self.update_locale();
|
||||||
|
|
||||||
if ctx.input(|i| i.key_pressed(egui::Key::Escape)) {
|
if ctx.input(|i| i.key_pressed(egui::Key::Escape)) {
|
||||||
ctx.send_viewport_cmd(egui::ViewportCommand::Close);
|
ctx.send_viewport_cmd(egui::ViewportCommand::Close);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
use derive_getters::Getters;
|
||||||
use fluent_templates::{static_loader, Loader};
|
use fluent_templates::{static_loader, Loader};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use unic_langid::LanguageIdentifier;
|
use unic_langid::LanguageIdentifier;
|
||||||
|
|
@ -9,7 +10,7 @@ static_loader! {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
#[derive(Debug, Serialize, Deserialize, Getters)]
|
||||||
pub struct Translator {
|
pub struct Translator {
|
||||||
langid: LanguageIdentifier,
|
langid: LanguageIdentifier,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue