This commit is contained in:
Mateusz Gruszczyński
2026-08-27 23:18:03 +02:00
parent 7465de4b55
commit 016aac0f8d
19 changed files with 147 additions and 52 deletions
+8
View File
@@ -41,6 +41,14 @@ fn main() {
.unwrap_or_else(|error| panic!("cannot read {}: {error}", path.display()));
let document: Value = serde_json::from_str(&source)
.unwrap_or_else(|error| panic!("{filename}: invalid JSON: {error}"));
let root_object = document.as_object().unwrap_or_else(|| panic!("{filename}: language pack root must be an object"));
let unexpected: Vec<&str> = root_object.keys()
.filter(|key| key.as_str() != "meta" && key.as_str() != "translations")
.map(|key| key.as_str())
.collect();
if !unexpected.is_empty() {
panic!("{filename}: unexpected top-level keys {:?}; translation keys must be inside 'translations'", unexpected);
}
let meta = document.get("meta").unwrap_or_else(|| panic!("{filename}: missing meta object"));
let code = required_string(meta, "code", filename);
let name = required_string(meta, "name", filename);