desktop: Internationalize file pickers

This commit is contained in:
Kamil Jarosz 2024-08-21 22:13:01 +02:00 committed by TÖRÖK Attila
parent 490c02bb58
commit 14302b8287
3 changed files with 16 additions and 5 deletions

View File

@ -0,0 +1,3 @@
file-picker-title-open-file = Open a single file
file-picker-filter-flash-files = Flash Files
file-picker-filter-all-files = All Files

View File

@ -66,7 +66,7 @@ impl Dialogs {
window: Weak<winit::window::Window>,
event_loop: EventLoopProxy<RuffleEvent>,
) -> Self {
let picker = FilePicker::new(window);
let picker = FilePicker::new(window, preferences.clone());
Self {
preferences_dialog: None,
bookmarks_dialog: None,

View File

@ -1,3 +1,5 @@
use super::text;
use crate::preferences::GlobalPreferences;
use rfd::AsyncFileDialog;
use std::{
path::PathBuf,
@ -16,14 +18,16 @@ pub struct FilePicker {
struct FilePickerData {
parent: Weak<Window>,
picking: AtomicBool,
preferences: GlobalPreferences,
}
impl FilePicker {
pub fn new(parent: Weak<Window>) -> Self {
pub fn new(parent: Weak<Window>, preferences: GlobalPreferences) -> Self {
Self {
data: Arc::new(FilePickerData {
parent,
picking: AtomicBool::new(false),
preferences,
}),
}
}
@ -34,10 +38,14 @@ impl FilePicker {
return None;
}
let locale = &self.data.preferences.language();
let mut dialog = AsyncFileDialog::new()
.add_filter("Flash Files", &["swf", "spl", "ruf"])
.add_filter("All Files", &["*"])
.set_title("Load a Flash File");
.add_filter(
text(locale, "file-picker-filter-flash-files"),
&["swf", "spl", "ruf"],
)
.add_filter(text(locale, "file-picker-filter-all-files"), &["*"])
.set_title(text(locale, "file-picker-title-open-file"));
if let Some(dir) = dir {
dialog = dialog.set_directory(dir);