feat(i18n): complete Japanese localization and eliminate UI hardcoded strings (#753)

Completes the Japanese catalog (all commands, panels, dialogs and preferences) and routes the remaining hard-coded UI labels through the translation lookup. English stays the default.
This commit is contained in:
Mithril_MEX authored and GitHub committed 2026-10-13 13:24:24 -04:00
1 parent a8b3b21fd0
commit d437c21368
35 files changed
+2219 -265

No files matched your search

+5 -5
View File
@@ -57,30 +57,30 @@ pub fn show(app: &mut SolveApp, ctx: &egui::Context) {
let dir = app.autosave.as_ref().map(|a| a.dir.clone()).or_else(recovery::default_dir);
let mut act: Option<(Entry, bool)> = None;
let mut later = false;
crate::frame::window(ctx, RichText::new("Recover unsaved design?").strong().size(13.0), crate::frame::Width::Normal)
crate::frame::window(ctx, RichText::new(crate::i18n::tr_label("Recover unsaved design?")).strong().size(13.0), crate::frame::Width::Normal)
.collapsible(false)
.resizable(false)
.min_width(420.0)
.anchor(egui::Align2::CENTER_CENTER, egui::vec2(0.0, 0.0))
.show(ctx, |ui| {
ui.label("SolidCraft closed before these designs were saved. Their last autosave can be opened.");
ui.label(crate::i18n::tr_label("SolidCraft closed before these designs were saved. Their last autosave can be opened."));
ui.add_space(6.0);
for e in app.recoverable.iter().take(20) {
ui.label(RichText::new(&e.name).strong());
let file = e.path.clone().unwrap_or_else(|| "never saved".into());
ui.label(RichText::new(format!("{file} · {} features · autosaved {}", e.features, ago(e.saved_at))).small().weak());
ui.horizontal(|ui| {
if ui.button("Recover").clicked() {
if ui.button(crate::i18n::tr_label("Recover")).clicked() {
act = Some((e.clone(), true));
}
if ui.button("Discard").clicked() {
if ui.button(crate::i18n::tr_label("Discard")).clicked() {
act = Some((e.clone(), false));
}
});
ui.separator();
}
ui.horizontal(|ui| {
if ui.button("Later").on_hover_text("Keep them; ask again next launch").clicked() {
if ui.button(crate::i18n::tr_label("Later")).on_hover_text("Keep them; ask again next launch").clicked() {
later = true;
}
});