feat: Englische Oberfläche
Alle Oberflächentexte und Fehlermeldungen stehen in t!("…"); der deutsche
Text ist zugleich der Schlüssel für die englische Fassung in
src/i18n/en.rs (430 Einträge). Platzhalter heißen {name}. ink-notes folgt
der Systemsprache (Deutsch bei de…, sonst Englisch); im ☰-Menü lässt sie
sich unter „Sprache / Language“ auf System, Deutsch oder English
festlegen, gespeichert in ui.json.
Ein Test prüft, dass jeder markierte Text übersetzt ist, keine
Übersetzung verwaist und die Platzhalter übereinstimmen.
Konsolenausgaben bleiben deutsch.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ec6a5259d5
commit
6c0db643c4
23 files changed
+1576
-617
No files matched your search
+11
-5
@@ -7,7 +7,9 @@ use std::path::{Path, PathBuf};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::background::{PaperTheme, PatternColor};
|
||||
use crate::i18n::Language;
|
||||
use crate::storage::{self, StorageError};
|
||||
use crate::t;
|
||||
|
||||
/// Fensterseite, an der die Werkzeugleiste angedockt ist.
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default, Serialize, Deserialize)]
|
||||
@@ -177,11 +179,11 @@ impl StylusAction {
|
||||
|
||||
pub fn label(self) -> &'static str {
|
||||
match self {
|
||||
StylusAction::Erase => "Radieren",
|
||||
StylusAction::Select => "Auswählen",
|
||||
StylusAction::Highlighter => "Textmarker",
|
||||
StylusAction::Pen => "Stift",
|
||||
StylusAction::Nothing => "Nichts",
|
||||
StylusAction::Erase => t!("Radieren"),
|
||||
StylusAction::Select => t!("Auswählen"),
|
||||
StylusAction::Highlighter => t!("Textmarker"),
|
||||
StylusAction::Pen => t!("Stift"),
|
||||
StylusAction::Nothing => t!("Nichts"),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -222,6 +224,8 @@ pub struct UiSettings {
|
||||
pub active_text_color: usize,
|
||||
/// Tasten am Stift in der Reihenfolge, in der sie zuerst gedrückt wurden
|
||||
pub stylus_buttons: Vec<StylusButton>,
|
||||
/// Sprache der Oberfläche; ohne Angabe die des Systems
|
||||
pub language: Option<Language>,
|
||||
}
|
||||
|
||||
impl Default for UiSettings {
|
||||
@@ -240,6 +244,7 @@ impl Default for UiSettings {
|
||||
text_colors: DEFAULT_TEXT_COLORS,
|
||||
active_text_color: 0,
|
||||
stylus_buttons: Vec::new(),
|
||||
language: None,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -338,6 +343,7 @@ mod tests {
|
||||
action: StylusAction::Nothing,
|
||||
},
|
||||
],
|
||||
language: Some(Language::English),
|
||||
};
|
||||
settings.save_to(&path).unwrap();
|
||||
assert_eq!(UiSettings::load_from(&path), settings);
|
||||
|
||||
Reference in new issue
Block a user