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:
haraldandClaude Opus 5.5 committed 2026-10-09 15:37:41 +02:00
1 parent ec6a5259d5
commit 6c0db643c4
23 files changed
+1576 -617

No files matched your search

+16 -15
View File
@@ -9,6 +9,7 @@ use std::f32::consts::PI;
use crate::canvas::InkVertex;
use crate::document::{Aabb, Stroke, StylusSample};
use crate::t;
/// Arten der geometrischen Primitiven.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
@@ -104,26 +105,26 @@ impl RecognizedShape {
pub fn name(&self) -> &'static str {
match self {
Self::Line { .. } => "Gerade",
Self::Circle { .. } => "Kreis",
Self::Ellipse { .. } => "Ellipse",
Self::Arrow { double: false, .. } => "Pfeil",
Self::Arrow { double: true, .. } => "Doppelpfeil",
Self::Rectangle { .. } => "Rechteck",
Self::Line { .. } => t!("Gerade"),
Self::Circle { .. } => t!("Kreis"),
Self::Ellipse { .. } => t!("Ellipse"),
Self::Arrow { double: false, .. } => t!("Pfeil"),
Self::Arrow { double: true, .. } => t!("Doppelpfeil"),
Self::Rectangle { .. } => t!("Rechteck"),
Self::CoordinateSystem {
negative_ends: Some(_),
..
} => "Achsenkreuz",
Self::CoordinateSystem { .. } => "Koordinatensystem",
Self::Triangle { .. } => "Dreieck",
Self::Rhombus { .. } => "Raute (Rhombus)",
} => t!("Achsenkreuz"),
Self::CoordinateSystem { .. } => t!("Koordinatensystem"),
Self::Triangle { .. } => t!("Dreieck"),
Self::Rhombus { .. } => t!("Raute (Rhombus)"),
Self::Polygon { vertices } => match vertices.len() {
5 => "Fünfeck (Pentagon)",
6 => "Sechseck (Hexagon)",
8 => "Achteck (Oktagon)",
_ => "Polygon",
5 => t!("Fünfeck (Pentagon)"),
6 => t!("Sechseck (Hexagon)"),
8 => t!("Achteck (Oktagon)"),
_ => t!("Polygon"),
},
Self::Octahedron { .. } => "Oktaeder (3D-Kantenmodell)",
Self::Octahedron { .. } => t!("Oktaeder (3D-Kantenmodell)"),
}
}