added support for language files
This commit is contained in:
@@ -34,4 +34,40 @@ macro_rules! errln {
|
||||
);
|
||||
std::process::exit(1);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! lang {
|
||||
($key:expr) => {
|
||||
{
|
||||
use crate::{LANG, errln};
|
||||
let value = unsafe {
|
||||
LANG
|
||||
.as_ref()
|
||||
.expect("LANG must be initialized before use")
|
||||
.get($key)
|
||||
};
|
||||
|
||||
if value.is_none() { errln!("Key not found in LANG JSON: \"{}\"", $key); }
|
||||
|
||||
value.unwrap().as_str().expect("LANG JSON value is not a string!").to_string()
|
||||
}
|
||||
};
|
||||
($key:expr, $($arg:expr),*) => {{
|
||||
use crate::{LANG, errln};
|
||||
use formatx::formatx;
|
||||
|
||||
let value = unsafe {
|
||||
LANG
|
||||
.as_ref()
|
||||
.expect("LANG must be initialized before use")
|
||||
.get($key)
|
||||
};
|
||||
|
||||
if value.is_none() { errln!("Key not found in LANG JSON: \"{}\"", $key); }
|
||||
|
||||
let format_str = value.unwrap().as_str().expect("LANG JSON value is not a string!");
|
||||
formatx!(format_str, $($arg),*).unwrap()
|
||||
}};
|
||||
}
|
||||
Reference in New Issue
Block a user