use crate::{assets::OnceCell, map_loader::Map, LangID, MapLoader};
use std::hash::BuildHasher;
impl<S: BuildHasher> MapLoader<S> {
pub fn new(map: Map<S>) -> Self {
Self {
id: lang_id::sys_lang::current(),
map,
chain: OnceCell::new(),
}
}
pub fn with_language_id(id: LangID, map: Map<S>) -> Self {
Self {
id,
map,
chain: OnceCell::new(),
}
}
}
#[cfg(test)]
mod tests {
use crate::{fallback::FallbackChain, GetText};
#[test]
fn new_map_loader() {
use crate::{
assets::localisation::locale_hashmap, fallback::FallbackChain,
map_loader::MapLoader,
};
let loader = MapLoader::new(locale_hashmap());
let _err_msg = loader.get("error", "text-not-found");
loader.show_chain();
let zh = unsafe { lang_id::consts::get_zh() };
let map = &loader.get_map().get(&zh);
map.map(|s| println!("{s:?}"));
}
#[test]
fn from_lang_id_and_map() {
use crate::{
assets::{lang_id_consts, localisation::locale_hashmap},
MapLoader,
};
let id = unsafe { lang_id_consts::get_el() };
let loader = MapLoader::with_language_id(id, locale_hashmap());
loader.show_chain();
let msg = loader.get_or_default("test", "not-found");
println!("{msg}");
}
#[test]
fn new_loader() {
use crate::assets::localisation::locale_hashmap;
let loader = crate::MapLoader::new(locale_hashmap());
loader.show_chain();
let msg = loader.get_or_default("test", "hello");
println!("{msg}");
}
}