|
|
|
@ -1,6 +1,7 @@
|
|
|
|
|
use std::collections::HashMap;
|
|
|
|
|
use lazy_static::lazy_static;
|
|
|
|
|
use leptos::*;
|
|
|
|
|
use crate::locales::Locales;
|
|
|
|
|
|
|
|
|
|
lazy_static! {
|
|
|
|
|
static ref LANGUAGES: HashMap<&'static str, HashMap<&'static str, &'static str>> = {
|
|
|
|
@ -24,20 +25,8 @@ lazy_static! {
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn get_locales() -> Vec<Option<String>> {
|
|
|
|
|
let (loc, set_loc) = create_signal(Vec::new());
|
|
|
|
|
|
|
|
|
|
create_effect(move |_| {
|
|
|
|
|
let js_locales = window().navigator().languages();
|
|
|
|
|
set_loc.update(|l| *l = js_locales.into_iter().map(|val| val.as_string()).collect::<Vec<_>>());
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
loc.get_untracked()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn get_dictionary() -> Option<&'static HashMap<&'static str, &'static str>> {
|
|
|
|
|
let locs = get_locales();
|
|
|
|
|
|
|
|
|
|
let locs = use_context::<Locales>().unwrap_or(Locales(vec![])).0;
|
|
|
|
|
for loc in locs {
|
|
|
|
|
if let Some(key) = loc {
|
|
|
|
|
if let Some(k) = key.split("-").collect::<Vec<_>>().get(0) {
|
|
|
|
|