v0.14.21
This commit is contained in:
@@ -53,7 +53,7 @@ const APP_JS_MODULES: &[&str] = &[
|
||||
];
|
||||
|
||||
fn bundle_app_js(web_dir: &Path) -> String {
|
||||
let js_dir = web_dir.join("js");
|
||||
let js_dir = web_dir.join("js-dynamic");
|
||||
println!("cargo:rerun-if-changed={}", js_dir.display());
|
||||
|
||||
let mut bundle = String::new();
|
||||
@@ -78,12 +78,12 @@ fn main() {
|
||||
println!("cargo:rerun-if-changed={}", lang_dir.display());
|
||||
println!("cargo:rerun-if-changed={}", preset_dir.display());
|
||||
|
||||
let theme_init_path = web_dir.join("theme-init.js");
|
||||
let lang_init_path = web_dir.join("lang-init.js");
|
||||
let styles_path = web_dir.join("styles.css");
|
||||
let theme_init_path = web_dir.join("js/theme-init.js");
|
||||
let lang_init_path = web_dir.join("js/lang-init.js");
|
||||
let styles_path = web_dir.join("css/styles.css");
|
||||
let index_path = web_dir.join("index.html");
|
||||
let not_found_path = web_dir.join("404.html");
|
||||
let sw_path = web_dir.join("sw.js");
|
||||
let sw_path = web_dir.join("js/sw.js");
|
||||
let manifest_path = web_dir.join("manifest.webmanifest");
|
||||
let favicon_path = web_dir.join("favicon.svg");
|
||||
for path in [
|
||||
@@ -143,9 +143,10 @@ fn main() {
|
||||
panic!("no language files found in {}", lang_dir.display());
|
||||
}
|
||||
|
||||
let default_language = "en";
|
||||
let mut assets = Vec::new();
|
||||
let mut manifest_languages = Vec::new();
|
||||
let mut has_english = false;
|
||||
let mut has_default_language = false;
|
||||
|
||||
for path in files {
|
||||
println!("cargo:rerun-if-changed={}", path.display());
|
||||
@@ -193,8 +194,8 @@ fn main() {
|
||||
if !document.get("translations").is_some_and(Value::is_object) {
|
||||
panic!("{filename}: translations must be a JSON object");
|
||||
}
|
||||
if code == "en" {
|
||||
has_english = true;
|
||||
if code == default_language {
|
||||
has_default_language = true;
|
||||
}
|
||||
|
||||
let language_hash = content_hash(source.as_bytes());
|
||||
@@ -208,8 +209,8 @@ fn main() {
|
||||
assets.push((code.to_owned(), path));
|
||||
}
|
||||
|
||||
if !has_english {
|
||||
panic!("lang/en.json is required as the default fallback language");
|
||||
if !has_default_language {
|
||||
panic!("lang/{default_language}.json is required as the default fallback language");
|
||||
}
|
||||
|
||||
let mut preset_files: Vec<PathBuf> = fs::read_dir(&preset_dir)
|
||||
@@ -286,7 +287,7 @@ fn main() {
|
||||
}
|
||||
|
||||
let manifest_json = serde_json::to_string(&json!({
|
||||
"default": "en",
|
||||
"default": default_language,
|
||||
"languages": manifest_languages
|
||||
}))
|
||||
.expect("serialize language manifest");
|
||||
@@ -323,6 +324,10 @@ fn main() {
|
||||
"pub const LANGUAGE_MANIFEST_JSON: &str = {:?};\n",
|
||||
manifest_json
|
||||
));
|
||||
generated.push_str(&format!(
|
||||
"pub const DEFAULT_LANGUAGE_CODE: &str = {:?};\n",
|
||||
default_language
|
||||
));
|
||||
generated.push_str("pub const LANGUAGE_ASSETS: &[(&str, &str)] = &[\n");
|
||||
for (code, path) in assets {
|
||||
generated.push_str(&format!(
|
||||
|
||||
Reference in New Issue
Block a user