diff options
author | metamuffin <metamuffin@disroot.org> | 2024-09-07 12:17:59 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-09-07 12:17:59 +0200 |
commit | 5b602bee672c469e7b8f27d956c7b10c2321b08f (patch) | |
tree | b8af77acc22e4b977eece4fd75580f667d7bffbe /locale/tools | |
parent | 50113d09271aeb9c3be56be0bba729a91f4496a6 (diff) | |
download | hurrycurry-5b602bee672c469e7b8f27d956c7b10c2321b08f.tar hurrycurry-5b602bee672c469e7b8f27d956c7b10c2321b08f.tar.bz2 hurrycurry-5b602bee672c469e7b8f27d956c7b10c2321b08f.tar.zst |
fallback language
Diffstat (limited to 'locale/tools')
-rw-r--r-- | locale/tools/src/main.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/locale/tools/src/main.rs b/locale/tools/src/main.rs index 1082581e..68805b99 100644 --- a/locale/tools/src/main.rs +++ b/locale/tools/src/main.rs @@ -26,6 +26,8 @@ enum Args { ExportPo { #[arg(long)] remap_ids: Option<PathBuf>, + #[arg(long)] + fallback: Option<PathBuf>, input: PathBuf, output: PathBuf, }, @@ -55,9 +57,19 @@ fn main() -> Result<()> { remap_ids: id_map, input, output, + fallback, } => { let mut ini = load_ini(&input)?; let id_map = id_map.map(|path| load_ini(&path)).transpose()?; + if let Some(fallback) = fallback { + let f = load_ini(&fallback)?; + for (k, v) in f { + if !ini.contains_key(&k) { + eprintln!("fallback: key {k:?} is missing"); + ini.insert(k, v); + } + } + } for &(code, name) in NATIVE_LANGUAGE_NAMES { ini.insert(format!("c.settings.ui.language.{code}"), name.to_owned()); |