mirror of https://github.com/dswd/zvault
First translation code
This commit is contained in:
parent
aa6a450e43
commit
24e28e6bcc
|
@ -352,6 +352,11 @@ dependencies = [
|
||||||
"serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "runtime-fmt"
|
||||||
|
version = "0.3.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde"
|
name = "serde"
|
||||||
version = "1.0.27"
|
version = "1.0.27"
|
||||||
|
@ -581,11 +586,11 @@ dependencies = [
|
||||||
"log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"murmurhash3 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
"murmurhash3 0.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"pbr 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"pbr 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
||||||
"quick-error 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"quick-error 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"regex 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"regex 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"rmp-serde 0.13.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
"rmp-serde 0.13.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"runtime-fmt 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_bytes 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_bytes 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_utils 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_utils 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -644,6 +649,7 @@ dependencies = [
|
||||||
"checksum remove_dir_all 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b5d2f806b0fcdabd98acd380dc8daef485e22bcb7cddc811d1337967f2528cf5"
|
"checksum remove_dir_all 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b5d2f806b0fcdabd98acd380dc8daef485e22bcb7cddc811d1337967f2528cf5"
|
||||||
"checksum rmp 0.8.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a3d45d7afc9b132b34a2479648863aa95c5c88e98b32285326a6ebadc80ec5c9"
|
"checksum rmp 0.8.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a3d45d7afc9b132b34a2479648863aa95c5c88e98b32285326a6ebadc80ec5c9"
|
||||||
"checksum rmp-serde 0.13.7 (registry+https://github.com/rust-lang/crates.io-index)" = "011e1d58446e9fa3af7cdc1fb91295b10621d3ac4cb3a85cc86385ee9ca50cd3"
|
"checksum rmp-serde 0.13.7 (registry+https://github.com/rust-lang/crates.io-index)" = "011e1d58446e9fa3af7cdc1fb91295b10621d3ac4cb3a85cc86385ee9ca50cd3"
|
||||||
|
"checksum runtime-fmt 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "647a821d66049faccc993fc3c379d1181b81a484097495cda79ffdb17b55b87f"
|
||||||
"checksum serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)" = "db99f3919e20faa51bb2996057f5031d8685019b5a06139b1ce761da671b8526"
|
"checksum serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)" = "db99f3919e20faa51bb2996057f5031d8685019b5a06139b1ce761da671b8526"
|
||||||
"checksum serde_bytes 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)" = "52b678af90a3aebc4484c22d639bf374eb7d598988edb33fa73c4febd6046a59"
|
"checksum serde_bytes 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)" = "52b678af90a3aebc4484c22d639bf374eb7d598988edb33fa73c4febd6046a59"
|
||||||
"checksum serde_utils 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f6e0edb364c93646633800df969086bc7c5c25fb3f1eb57349990d1cb4cae4bc"
|
"checksum serde_utils 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f6e0edb364c93646633800df969086bc7c5c25fb3f1eb57349990d1cb4cae4bc"
|
||||||
|
|
|
@ -33,12 +33,10 @@ pbr = "1.0"
|
||||||
users = "0.6"
|
users = "0.6"
|
||||||
time = "*"
|
time = "*"
|
||||||
libc = "0.2"
|
libc = "0.2"
|
||||||
|
runtime-fmt = "0.3"
|
||||||
index = {path="index"}
|
index = {path="index"}
|
||||||
chunking = {path="chunking"}
|
chunking = {path="chunking"}
|
||||||
|
|
||||||
[build-dependencies]
|
|
||||||
pkg-config = "0.3"
|
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = []
|
default = []
|
||||||
bench = []
|
bench = []
|
||||||
|
|
|
@ -38,7 +38,10 @@ extern crate libc;
|
||||||
extern crate tar;
|
extern crate tar;
|
||||||
extern crate index;
|
extern crate index;
|
||||||
extern crate chunking;
|
extern crate chunking;
|
||||||
|
#[macro_use]
|
||||||
|
extern crate runtime_fmt;
|
||||||
|
|
||||||
|
#[macro_use] mod translation;
|
||||||
pub mod util;
|
pub mod util;
|
||||||
mod bundledb;
|
mod bundledb;
|
||||||
mod repository;
|
mod repository;
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
use std::borrow::Cow;
|
||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
type TransStr = Cow<'static, str>;
|
||||||
|
|
||||||
|
pub struct Translation(HashMap<TransStr, TransStr>);
|
||||||
|
|
||||||
|
impl Translation {
|
||||||
|
pub fn new() -> Self {
|
||||||
|
Translation(Default::default())
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn set<O: Into<TransStr>, T: Into<TransStr>>(&mut self, orig: O, trans: T) {
|
||||||
|
self.0.insert(orig.into(), trans.into());
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn get<O: Into<TransStr>>(&self, orig: O) -> TransStr {
|
||||||
|
let orig = orig.into();
|
||||||
|
self.0.get(&orig).cloned().unwrap_or(orig)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
lazy_static! {
|
||||||
|
static ref TRANS: Translation = {
|
||||||
|
let mut trans = Translation::new();
|
||||||
|
trans.set("Hello", "Hallo");
|
||||||
|
trans
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#[macro_export] macro_rules! tr {
|
||||||
|
($fmt:tt) => (::translation::TRANS.get($fmt));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[macro_export] macro_rules! tr_format {
|
||||||
|
($fmt:tt) => (tr!($fmt));
|
||||||
|
($fmt:tt, $($arg:tt)*) => (rt_format!(tr!($fmt), $($arg)*).expect("invalid format"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[macro_export] macro_rules! tr_println {
|
||||||
|
($fmt:tt) => (println!("{}", tr!($fmt)));
|
||||||
|
($fmt:tt, $($arg:tt)*) => (rt_println!(tr!($fmt), $($arg)*).expect("invalid format"));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[macro_export] macro_rules! tr_info {
|
||||||
|
($($arg:tt)*) => (info!("{}", tr_format!($($arg)*)));
|
||||||
|
}
|
Loading…
Reference in New Issue