#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum UiString {
Copy,
Cut,
Paste,
SelectAll,
Undo,
Redo,
Search,
}
impl UiString {
#[track_caller]
pub fn resolve(self) -> String {
#[cfg(feature = "localization")]
{
crate::localization::localized(&MESSAGES[self as usize], []).into()
}
#[cfg(not(feature = "localization"))]
{
[
"Copy",
"Cut",
"Paste",
"Select all",
"Undo",
"Redo",
"Search",
][self as usize]
.to_owned()
}
}
}
#[cfg(feature = "localization")]
static SOURCE: crate::localization::SourceCatalog =
crate::localization::SourceCatalog::new("en", include_str!("../locales/en/cranpose-ui.ftl"));
#[cfg(feature = "localization")]
static MESSAGES: [crate::localization::Message; 7] = {
use crate::localization::Message;
[
Message::new("cranpose-ui", "copy", &SOURCE),
Message::new("cranpose-ui", "cut", &SOURCE),
Message::new("cranpose-ui", "paste", &SOURCE),
Message::new("cranpose-ui", "select-all", &SOURCE),
Message::new("cranpose-ui", "undo", &SOURCE),
Message::new("cranpose-ui", "redo", &SOURCE),
Message::new("cranpose-ui", "search", &SOURCE),
]
};
#[cfg(feature = "localization")]
pub fn catalog() -> crate::localization::Catalog {
crate::translations!("locales", fallback = "en")
}