mirror of
https://github.com/arabianq/pipewire-soundpad.git
synced 2026-07-26 21:57:05 +00:00
feat(gui): let the UI language be chosen manually (#179)
The interface followed the system locale with no way to override it. Settings now carry a language picker, stored as forced_lang in gui.json, with "System" listed first so the choice stays undoable. rust-i18n keeps the current locale in a process-wide atomic and t! reads it on every lookup, so switching takes effect on the next frame without a restart. Languages are listed by their own name rather than a translated one, since that is what a reader looking for their language recognises. A test asserts every shipped locale has such a name, so adding a translation without naming it fails rather than silently showing a bare language code. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
7b87dc02dd
commit
389640ee0a
@@ -85,6 +85,8 @@ pub struct GuiConfig {
|
||||
pub dirs_settings: HashMap<PathBuf, DirSettings>,
|
||||
|
||||
pub preferred_theme: PreferredTheme,
|
||||
/// UI language code, or `None` to follow the system locale.
|
||||
pub forced_lang: Option<String>,
|
||||
}
|
||||
|
||||
impl SortOrder {
|
||||
@@ -130,6 +132,7 @@ impl Default for GuiConfig {
|
||||
|
||||
preferred_theme: PreferredTheme::System,
|
||||
dirs_settings: HashMap::new(),
|
||||
forced_lang: None,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user