Skip to content

Commit 98612a8

Browse files
committed
MSG
1 parent aa2c7b3 commit 98612a8

13 files changed

Lines changed: 325 additions & 239 deletions

Cargo.lock

Lines changed: 102 additions & 96 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

krokiet/i18n/en/krokiet.ftl

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,58 @@
11
# In Rust translations
22
rust_loaded_preset = Loaded preset { $preset_idx }
33
rust_cannot_load_preset = Cannot load preset { $preset_idx }, reason: { $reason }
4+
rust_error_moving_to_trash = Error while moving to trash: { $error }
5+
rust_error_removing_file = Error while removing file: { $error }
6+
rust_delete_summary = Deleted { $deleted } items, failed to remove { $failed } items
7+
rust_error_creating_folder = Error while creating folder: { $error }
8+
rust_file_already_exists = File \"{ $file }\" already exists, and will not be overridden
9+
rust_error_removing_file_after_copy = Error while removing file \"{ $file }\" (after copying into different partition), reason: { $reason }
10+
rust_error_copying_file = Error while copying \"{ $input }\" to \"{ $output }\", reason: { $reason }
11+
rust_loading_tags_cache = Loading tags cache
12+
rust_loading_fingerprints_cache = Loading fingerprints cache
13+
rust_saving_tags_cache = Saving tags cache
14+
rust_saving_fingerprints_cache = Saving fingerprints cache
15+
rust_loading_prehash_cache = Loading prehash cache
16+
rust_saving_prehash_cache = Saving prehash cache
17+
rust_loading_hash_cache = Loading hash cache
18+
rust_saving_hash_cache = Saving hash cache
19+
rust_scanning_name = Scanning name of { $entries_checked } file
20+
rust_scanning_size_name = Scanning size and name of { $entries_checked } file
21+
rust_scanning_size = Scanning size of { $entries_checked } file
22+
rust_scanning_file = Scanning { $entries_checked } file
23+
rust_scanning_folder = Scanning { $entries_checked } folder
24+
rust_checked_tags = Checked tags of { $items_stats }
25+
rust_checked_content = Checked content of { $items_stats } ({ $size_stats })
26+
rust_compared_tags = Compared tags of { $items_stats }
27+
rust_compared_content = Compared content of { $items_stats }
28+
rust_hashed_images = Hashed of { $items_stats } image ({ $size_stats })
29+
rust_compared_image_hashes = Compared { $items_stats } image hash
30+
rust_hashed_videos = Hashed of { $items_stats } video
31+
rust_checked_files = Checked { $items_stats } file ({ $size_stats })
32+
rust_checked_files_bad_extensions = Checked { $items_stats } file
33+
rust_analyzed_partial_hash = Analyzed partial hash of { $items_stats } files ({ $size_stats })
34+
rust_analyzed_full_hash = Analyzed full hash of { $items_stats } files ({ $size_stats })
35+
rust_failed_to_rename_file = Failed to rename file { $old_path } to { $new_path } with error { $error }
36+
rust_no_included_directories = Cannot start scan when no included directories are set.
37+
rust_all_dirs_referenced = Cannot start scan when all included directories are set as referenced folders.
38+
rust_found_empty_folders = Found { $items_found } empty folders
39+
rust_found_empty_files = Found { $items_found } empty files
40+
rust_found_similar_images = Found { $items_found } similar image files
41+
rust_found_similar_videos = Found { $items_found } similar video files
42+
rust_no_similarity_method_selected = Cannot find similar music files without any similarity method selected.
43+
rust_found_similar_music_files = Found { $items_found } similar music files
44+
rust_found_invalid_symlinks = Found { $items_found } invalid symlinks
45+
rust_found_temporary_files = Found { $items_found } temporary files
46+
rust_no_file_type_selected = Cannot find broken files without any file type selected.
47+
rust_found_broken_files = Found { $items_found } broken files
48+
rust_found_bad_extensions = Found { $items_found } files with bad extensions
49+
rust_found_duplicate_files = Found { $items_found } similar duplicate files
50+
rust_found_big_files = Found { $items_found } big files
51+
rust_loaded_preset = Loaded preset { $preset_idx }
52+
rust_cannot_load_preset = Cannot change and load preset { $preset_idx } - reason { $reason }
53+
rust_saved_preset = Saved preset { $preset_idx }
54+
rust_cannot_save_preset = Cannot save preset { $preset_idx } - reason { $reason }
55+
rust_reset_preset = Reset preset { $preset_idx }
456
557
# Slint translations
658
yes_button = Yes

krokiet/i18n/pl/krokiet.ftl

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,60 @@
1+
# In Rust translations
2+
rust_loaded_preset = Wczytano preset { $preset_idx }
3+
rust_cannot_load_preset = Nie można wczytać presetu { $preset_idx }, powód: { $reason }
4+
rust_error_moving_to_trash = Błąd podczas przenoszenia do kosza: { $error }
5+
rust_error_removing_file = Błąd podczas usuwania pliku: { $error }
6+
rust_delete_summary = Usunięto { $deleted } elementów, nie udało się usunąć { $failed } elementów
7+
rust_error_creating_folder = Błąd podczas tworzenia folderu: { $error }
8+
rust_file_already_exists = Plik \"{ $file }\" już istnieje i nie zostanie nadpisany
9+
rust_error_removing_file_after_copy = Błąd podczas usuwania pliku \"{ $file }\" (po skopiowaniu do innej partycji), powód: { $reason }
10+
rust_error_copying_file = Błąd podczas kopiowania \"{ $input }\" do \"{ $output }\", powód: { $reason }
11+
rust_loading_tags_cache = Ładowanie pamięci podręcznej tagów
12+
rust_loading_fingerprints_cache = Ładowanie pamięci podręcznej odcisków palców
13+
rust_saving_tags_cache = Zapisywanie pamięci podręcznej tagów
14+
rust_saving_fingerprints_cache = Zapisywanie pamięci podręcznej odcisków palców
15+
rust_loading_prehash_cache = Ładowanie pamięci podręcznej wstępnych hashy
16+
rust_saving_prehash_cache = Zapisywanie pamięci podręcznej wstępnych hashy
17+
rust_loading_hash_cache = Ładowanie pamięci podręcznej hashy
18+
rust_saving_hash_cache = Zapisywanie pamięci podręcznej hashy
19+
rust_scanning_name = Skanowanie nazwy { $entries_checked } pliku
20+
rust_scanning_size_name = Skanowanie rozmiaru i nazwy { $entries_checked } pliku
21+
rust_scanning_size = Skanowanie rozmiaru { $entries_checked } pliku
22+
rust_scanning_file = Skanowanie { $entries_checked } pliku
23+
rust_scanning_folder = Skanowanie { $entries_checked } folderu
24+
rust_checked_tags = Sprawdzono tagi { $items_stats }
25+
rust_checked_content = Sprawdzono zawartość { $items_stats } ({ $size_stats })
26+
rust_compared_tags = Porównano tagi { $items_stats }
27+
rust_compared_content = Porównano zawartość { $items_stats }
28+
rust_hashed_images = Wygenerowano hash { $items_stats } obrazu ({ $size_stats })
29+
rust_compared_image_hashes = Porównano hash { $items_stats } obrazu
30+
rust_hashed_videos = Wygenerowano hash { $items_stats } wideo
31+
rust_checked_files = Sprawdzono { $items_stats } plik ({ $size_stats })
32+
rust_checked_files_bad_extensions = Sprawdzono { $items_stats } plik
33+
rust_analyzed_partial_hash = Przeanalizowano częściowy hash { $items_stats } plików ({ $size_stats })
34+
rust_analyzed_full_hash = Przeanalizowano pełny hash { $items_stats } plików ({ $size_stats })
35+
rust_failed_to_rename_file = Nie udało się zmienić nazwy pliku { $old_path } na { $new_path }, błąd: { $error }
36+
rust_no_included_directories = Nie można rozpocząć skanowania, gdy nie ustawiono żadnych uwzględnionych katalogów.
37+
rust_all_dirs_referenced = Nie można rozpocząć skanowania, gdy wszystkie uwzględnione katalogi są ustawione jako katalogi referencyjne.
38+
rust_found_empty_folders = Znaleziono { $items_found } pustych folderów
39+
rust_found_empty_files = Znaleziono { $items_found } pustych plików
40+
rust_found_similar_images = Znaleziono { $items_found } podobnych plików obrazów
41+
rust_found_similar_videos = Znaleziono { $items_found } podobnych plików wideo
42+
rust_no_similarity_method_selected = Nie można znaleźć podobnych plików muzycznych bez wybrania metody podobieństwa.
43+
rust_found_similar_music_files = Znaleziono { $items_found } podobnych plików muzycznych
44+
rust_found_invalid_symlinks = Znaleziono { $items_found } nieprawidłowych dowiązań symbolicznych
45+
rust_found_temporary_files = Znaleziono { $items_found } plików tymczasowych
46+
rust_no_file_type_selected = Nie można znaleźć uszkodzonych plików bez wybrania typu pliku.
47+
rust_found_broken_files = Znaleziono { $items_found } uszkodzonych plików
48+
rust_found_bad_extensions = Znaleziono { $items_found } plików ze złymi rozszerzeniami
49+
rust_found_duplicate_files = Znaleziono { $items_found } podobnych zduplikowanych plików
50+
rust_found_big_files = Znaleziono { $items_found } dużych plików
51+
rust_loaded_preset = Wczytano preset { $preset_idx }
52+
rust_cannot_load_preset = Nie można zmienić i wczytać presetu { $preset_idx } - powód: { $reason }
53+
rust_saved_preset = Zapisano preset { $preset_idx }
54+
rust_cannot_save_preset = Nie można zapisać presetu { $preset_idx } - powód: { $reason }
55+
rust_reset_preset = Zresetowano preset { $preset_idx }
56+
57+
# Slint translations
158
yes_button = Tak
259
no_button = Nie
360
ok_button = Ok

krokiet/src/connect_delete.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use slint::{ComponentHandle, ModelRc, VecModel};
66
use crate::common::{get_is_header_mode, get_tool_model, set_tool_model};
77
use crate::connect_row_selection::reset_selection;
88
use crate::model_operations::{collect_full_path_from_model, deselect_all_items, filter_out_checked_items};
9-
use crate::{Callabler, CurrentTab, GuiState, MainListModel, MainWindow, Settings};
9+
use crate::{Callabler, CurrentTab, GuiState, MainListModel, MainWindow, Settings, flk};
1010

1111
pub fn connect_delete_button(app: &MainWindow) {
1212
let a = app.as_weak();
@@ -40,8 +40,7 @@ fn handle_delete_items(app: &MainWindow, items: &ModelRc<MainListModel>, active_
4040
let vec_items_to_remove = collect_full_path_from_model(&entries_to_delete, active_tab);
4141
let errors = remove_selected_items(vec_items_to_remove, active_tab, remove_to_trash);
4242
deselect_all_items(&mut entries_left); // TODO - this now probably is not needed, because selected items were removed
43-
app.set_text_summary_text(format!("Deleted {} items, failed to remove {} items", entries_to_delete.len() - errors.len(), errors.len()).into());
44-
43+
app.set_text_summary_text(flk!("rust_delete_summary", deleted = (entries_to_delete.len() - errors.len()), failed = errors.len()).into());
4544
let r = ModelRc::new(VecModel::from(entries_left)); // TODO here maybe should also stay old model if entries cannot be removed
4645
return (errors, Some(r));
4746
}
@@ -64,11 +63,11 @@ fn remove_selected_items(items_to_remove: Vec<String>, active_tab: CurrentTab, r
6463
.filter_map(|item| {
6564
if remove_to_trash {
6665
if let Err(e) = trash::delete(item) {
67-
return Some(format!("Error while moving to trash: {e}"));
66+
return Some(flk!("rust_error_moving_to_trash", error = e.to_string()));
6867
}
6968
} else {
7069
if let Err(e) = std::fs::remove_file(item) {
71-
return Some(format!("Error while removing file: {e}"));
70+
return Some(flk!("rust_error_removing_file", error = e.to_string()));
7271
}
7372
}
7473
None

krokiet/src/connect_move.rs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use slint::{ComponentHandle, ModelRc, VecModel};
99
use crate::common::{get_is_header_mode, get_tool_model, set_tool_model};
1010
use crate::connect_row_selection::reset_selection;
1111
use crate::model_operations::{collect_path_name_from_model, deselect_all_items, filter_out_checked_items};
12-
use crate::{Callabler, CurrentTab, GuiState, MainListModel, MainWindow};
12+
use crate::{Callabler, CurrentTab, GuiState, MainListModel, MainWindow, flk};
1313

1414
pub fn connect_move(app: &MainWindow) {
1515
let a = app.as_weak();
@@ -63,7 +63,7 @@ fn move_operation(
6363

6464
fn move_selected_items(items_to_move: Vec<(String, String)>, preserve_structure: bool, copy_mode: bool, output_folder: &str) -> Vec<String> {
6565
if let Err(err) = fs::create_dir_all(output_folder) {
66-
return vec![format!("Error while creating folder: {err}")];
66+
return vec![flk!("rust_error_creating_folder", error = err.to_string())];
6767
}
6868

6969
// TODO option to override files
@@ -74,7 +74,7 @@ fn move_selected_items(items_to_move: Vec<(String, String)>, preserve_structure:
7474
let (input_file, output_file) = collect_path_and_create_folders(&path, &name, output_folder, preserve_structure);
7575

7676
if output_file.exists() {
77-
return Some(format!("File {output_file:?} already exists, and will not be overridden"));
77+
return Some(flk!("rust_file_already_exists", file = output_file.to_string_lossy().to_string()));
7878
}
7979
try_to_copy_item(&input_file, &output_file)?;
8080
None
@@ -87,7 +87,7 @@ fn move_selected_items(items_to_move: Vec<(String, String)>, preserve_structure:
8787
let (input_file, output_file) = collect_path_and_create_folders(&path, &name, output_folder, preserve_structure);
8888

8989
if output_file.exists() {
90-
return Some(format!("File {output_file:?} already exists, and will not be overridden"));
90+
return Some(flk!("rust_file_already_exists", file = output_file.to_string_lossy().to_string()));
9191
}
9292

9393
// Try to rename file, may fail due various reasons
@@ -100,7 +100,11 @@ fn move_selected_items(items_to_move: Vec<(String, String)>, preserve_structure:
100100
try_to_copy_item(&input_file, &output_file)?;
101101

102102
if let Err(e) = fs::remove_file(&input_file) {
103-
return Some(format!("Error while removing file {input_file:?}(after copying into different partition), reason {e}"));
103+
return Some(flk!(
104+
"rust_error_removing_file_after_copy",
105+
file = input_file.to_string_lossy().to_string(),
106+
reason = e.to_string()
107+
));
104108
}
105109

106110
None
@@ -119,7 +123,12 @@ fn try_to_copy_item(input_file: &Path, output_file: &Path) -> Option<String> {
119123
fs_extra::file::copy(input_file, output_file, &options)
120124
};
121125
if let Err(e) = res {
122-
return Some(format!("Error while copying {input_file:?} to {output_file:?}, reason {e}"));
126+
return Some(flk!(
127+
"rust_error_copying_file",
128+
input = input_file.to_string_lossy().to_string(),
129+
output = output_file.to_string_lossy().to_string(),
130+
reason = e.to_string()
131+
));
123132
}
124133
None
125134
}

krokiet/src/connect_progress_receiver.rs

Lines changed: 25 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use czkawka_core::progress_data::{CurrentStage, ProgressData};
66
use humansize::{BINARY, format_size};
77
use slint::ComponentHandle;
88

9-
use crate::{MainWindow, ProgressToSend};
9+
use crate::{MainWindow, ProgressToSend, flk};
1010

1111
pub fn connect_progress_gathering(app: &MainWindow, progress_receiver: Receiver<ProgressData>) {
1212
let a = app.as_weak();
@@ -35,14 +35,14 @@ pub fn connect_progress_gathering(app: &MainWindow, progress_receiver: Receiver<
3535

3636
fn progress_save_load_cache(item: &ProgressData) -> ProgressToSend {
3737
let step_name = match item.sstage {
38-
CurrentStage::SameMusicCacheLoadingTags => "Loading tags cache",
39-
CurrentStage::SameMusicCacheLoadingFingerprints => "Loading fingerprints cache",
40-
CurrentStage::SameMusicCacheSavingTags => "Saving tags cache",
41-
CurrentStage::SameMusicCacheSavingFingerprints => "Saving fingerprints cache",
42-
CurrentStage::DuplicatePreHashCacheLoading => "Loading prehash cache",
43-
CurrentStage::DuplicatePreHashCacheSaving => "Saving prehash cache",
44-
CurrentStage::DuplicateCacheLoading => "Loading hash cache",
45-
CurrentStage::DuplicateCacheSaving => "Saving hash cache",
38+
CurrentStage::SameMusicCacheLoadingTags => flk!("rust_loading_tags_cache"),
39+
CurrentStage::SameMusicCacheLoadingFingerprints => flk!("rust_loading_fingerprints_cache"),
40+
CurrentStage::SameMusicCacheSavingTags => flk!("rust_saving_tags_cache"),
41+
CurrentStage::SameMusicCacheSavingFingerprints => flk!("rust_saving_fingerprints_cache"),
42+
CurrentStage::DuplicatePreHashCacheLoading => flk!("rust_loading_prehash_cache"),
43+
CurrentStage::DuplicatePreHashCacheSaving => flk!("rust_saving_prehash_cache"),
44+
CurrentStage::DuplicateCacheLoading => flk!("rust_loading_hash_cache"),
45+
CurrentStage::DuplicateCacheSaving => flk!("rust_saving_hash_cache"),
4646
_ => unreachable!(),
4747
};
4848
let (all_progress, current_progress, current_progress_size) = common_get_data(item);
@@ -56,20 +56,14 @@ fn progress_save_load_cache(item: &ProgressData) -> ProgressToSend {
5656

5757
fn progress_collect_items(item: &ProgressData, files: bool) -> ProgressToSend {
5858
let step_name = match item.sstage {
59-
CurrentStage::DuplicateScanningName => {
60-
format!("Scanning name of {} file", item.entries_checked)
61-
}
62-
CurrentStage::DuplicateScanningSizeName => {
63-
format!("Scanning size and name of {} file", item.entries_checked)
64-
}
65-
CurrentStage::DuplicateScanningSize => {
66-
format!("Scanning size of {} file", item.entries_checked)
67-
}
59+
CurrentStage::DuplicateScanningName => flk!("rust_scanning_name", entries_checked = item.entries_checked),
60+
CurrentStage::DuplicateScanningSizeName => flk!("rust_scanning_size_name", entries_checked = item.entries_checked),
61+
CurrentStage::DuplicateScanningSize => flk!("rust_scanning_size", entries_checked = item.entries_checked),
6862
_ => {
6963
if files {
70-
format!("Scanning {} file", item.entries_checked)
64+
flk!("rust_scanning_file", entries_checked = item.entries_checked)
7165
} else {
72-
format!("Scanning {} folder", item.entries_checked)
66+
flk!("rust_scanning_folder", entries_checked = item.entries_checked)
7367
}
7468
}
7569
};
@@ -86,17 +80,17 @@ fn progress_default(item: &ProgressData) -> ProgressToSend {
8680
let items_stats = format!("{}/{}", item.entries_checked, item.entries_to_check);
8781
let size_stats = format!("{}/{}", format_size(item.bytes_checked, BINARY), format_size(item.bytes_to_check, BINARY));
8882
let step_name = match item.sstage {
89-
CurrentStage::SameMusicReadingTags => format!("Checked tags of {items_stats}"),
90-
CurrentStage::SameMusicCalculatingFingerprints => format!("Checked content of {items_stats} ({size_stats})"),
91-
CurrentStage::SameMusicComparingTags => format!("Compared tags of {items_stats}"),
92-
CurrentStage::SameMusicComparingFingerprints => format!("Compared content of {items_stats}"),
93-
CurrentStage::SimilarImagesCalculatingHashes => format!("Hashed of {items_stats} image ({size_stats})"),
94-
CurrentStage::SimilarImagesComparingHashes => format!("Compared {items_stats} image hash"),
95-
CurrentStage::SimilarVideosCalculatingHashes => format!("Hashed of {items_stats} video"),
96-
CurrentStage::BrokenFilesChecking => format!("Checked {items_stats} file ({size_stats})"),
97-
CurrentStage::BadExtensionsChecking => format!("Checked {items_stats} file"),
98-
CurrentStage::DuplicatePreHashing => format!("Analyzed partial hash of {items_stats} files ({size_stats})"),
99-
CurrentStage::DuplicateFullHashing => format!("Analyzed full hash of {items_stats} files ({size_stats})"),
83+
CurrentStage::SameMusicReadingTags => flk!("rust_checked_tags", items_stats = items_stats),
84+
CurrentStage::SameMusicCalculatingFingerprints => flk!("rust_checked_content", items_stats = items_stats, size_stats = size_stats),
85+
CurrentStage::SameMusicComparingTags => flk!("rust_compared_tags", items_stats = items_stats),
86+
CurrentStage::SameMusicComparingFingerprints => flk!("rust_compared_content", items_stats = items_stats),
87+
CurrentStage::SimilarImagesCalculatingHashes => flk!("rust_hashed_images", items_stats = items_stats, size_stats = size_stats),
88+
CurrentStage::SimilarImagesComparingHashes => flk!("rust_compared_image_hashes", items_stats = items_stats),
89+
CurrentStage::SimilarVideosCalculatingHashes => flk!("rust_hashed_videos", items_stats = items_stats),
90+
CurrentStage::BrokenFilesChecking => flk!("rust_checked_files", items_stats = items_stats, size_stats = size_stats),
91+
CurrentStage::BadExtensionsChecking => flk!("rust_checked_files_bad_extensions", items_stats = items_stats),
92+
CurrentStage::DuplicatePreHashing => flk!("rust_analyzed_partial_hash", items_stats = items_stats, size_stats = size_stats),
93+
CurrentStage::DuplicateFullHashing => flk!("rust_analyzed_full_hash", items_stats = items_stats, size_stats = size_stats),
10094

10195
_ => unreachable!(),
10296
};

0 commit comments

Comments
 (0)