1
0
Fork 0
mirror of synced 2024-05-17 19:03:08 +12:00

Windows hardlinking problem (#881)

* Clippy 1

* Nightly Clippy

* Disable hardlink button when on windows test of hardlinking failed

* Import things for new function
This commit is contained in:
Rafał Mikrut 2022-12-21 08:44:26 +01:00 committed by GitHub
parent e6b19270a6
commit c9e9a65cc9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
47 changed files with 802 additions and 603 deletions

212
Cargo.lock generated
View file

@ -77,9 +77,9 @@ dependencies = [
[[package]] [[package]]
name = "anyhow" name = "anyhow"
version = "1.0.66" version = "1.0.68"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61"
[[package]] [[package]]
name = "arrayref" name = "arrayref"
@ -246,9 +246,9 @@ dependencies = [
[[package]] [[package]]
name = "cairo-rs" name = "cairo-rs"
version = "0.16.3" version = "0.16.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "247e1183fa769ac22121f92276dae52f89acaf297f24b1320019f439b6e3b46f" checksum = "f3125b15ec28b84c238f6f476c6034016a5f6cc0221cb514ca46c532139fc97d"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"cairo-sys-rs", "cairo-sys-rs",
@ -271,9 +271,9 @@ dependencies = [
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.0.77" version = "1.0.78"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4" checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"
[[package]] [[package]]
name = "cfb" name = "cfb"
@ -484,9 +484,9 @@ dependencies = [
[[package]] [[package]]
name = "cxx" name = "cxx"
version = "1.0.83" version = "1.0.85"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bdf07d07d6531bfcdbe9b8b739b104610c6508dcc4d63b410585faf338241daf" checksum = "5add3fc1717409d029b20c5b6903fc0c0b02fa6741d820054f4a2efa5e5816fd"
dependencies = [ dependencies = [
"cc", "cc",
"cxxbridge-flags", "cxxbridge-flags",
@ -496,9 +496,9 @@ dependencies = [
[[package]] [[package]]
name = "cxx-build" name = "cxx-build"
version = "1.0.83" version = "1.0.85"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2eb5b96ecdc99f72657332953d4d9c50135af1bac34277801cc3937906ebd39" checksum = "b4c87959ba14bc6fbc61df77c3fcfe180fc32b93538c4f1031dd802ccb5f2ff0"
dependencies = [ dependencies = [
"cc", "cc",
"codespan-reporting", "codespan-reporting",
@ -511,15 +511,15 @@ dependencies = [
[[package]] [[package]]
name = "cxxbridge-flags" name = "cxxbridge-flags"
version = "1.0.83" version = "1.0.85"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac040a39517fd1674e0f32177648334b0f4074625b5588a64519804ba0553b12" checksum = "69a3e162fde4e594ed2b07d0f83c6c67b745e7f28ce58c6df5e6b6bef99dfb59"
[[package]] [[package]]
name = "cxxbridge-macro" name = "cxxbridge-macro"
version = "1.0.83" version = "1.0.85"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1362b0ddcfc4eb0a1f57b68bd77dd99f0e826958a96abd0ae9bd092e114ffed6" checksum = "3e7e2adeb6a0d4a282e581096b06e1791532b7d576dcde5ccd9382acf55db8e6"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -699,9 +699,9 @@ dependencies = [
[[package]] [[package]]
name = "enumn" name = "enumn"
version = "0.1.5" version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "038b1afa59052df211f9efd58f8b1d84c242935ede1c3dbaed26b018a9e06ae2" checksum = "e88bcb3a067a6555d577aba299e75eff9942da276e6506fc6274327daa026132"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -985,9 +985,9 @@ dependencies = [
[[package]] [[package]]
name = "gdk-pixbuf" name = "gdk-pixbuf"
version = "0.16.4" version = "0.16.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3094f2b8578136d1929cade4e0fff82f573521b579e96cfc24af2458431f176" checksum = "c3578c60dee9d029ad86593ed88cb40f35c1b83360e12498d055022385dd9a05"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"gdk-pixbuf-sys", "gdk-pixbuf-sys",
@ -1011,9 +1011,9 @@ dependencies = [
[[package]] [[package]]
name = "gdk4" name = "gdk4"
version = "0.5.3" version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "237d840e2017e61a8f528261e3397f378b579aeb8c7b798b29bbec6d4890c843" checksum = "272db1bbb9b152ea1fea946f9d464085c86cfe14cafba450d7defa433caff8ec"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"cairo-rs", "cairo-rs",
@ -1027,9 +1027,9 @@ dependencies = [
[[package]] [[package]]
name = "gdk4-sys" name = "gdk4-sys"
version = "0.5.3" version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b5dafeabcbabda52b39b28e0641c5767d56cd47f273291d1bf1bb846176a6a0" checksum = "45b571f36b889ab529b2e173248dafe83d75c703f5685b9845e490c7994ae309"
dependencies = [ dependencies = [
"cairo-sys-rs", "cairo-sys-rs",
"gdk-pixbuf-sys", "gdk-pixbuf-sys",
@ -1044,15 +1044,15 @@ dependencies = [
[[package]] [[package]]
name = "generator" name = "generator"
version = "0.7.1" version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc184cace1cea8335047a471cc1da80f18acf8a76f3bab2028d499e328948ec7" checksum = "d266041a359dfa931b370ef684cceb84b166beb14f7f0421f4a6a3d0c446d12e"
dependencies = [ dependencies = [
"cc", "cc",
"libc", "libc",
"log", "log",
"rustversion", "rustversion",
"windows 0.32.0", "windows 0.39.0",
] ]
[[package]] [[package]]
@ -1090,9 +1090,9 @@ dependencies = [
[[package]] [[package]]
name = "gio" name = "gio"
version = "0.16.3" version = "0.16.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d4a17d999e6e4e05d87c2bb05b7140d47769bc53211711a33e2f91536458714" checksum = "2a1c84b4534a290a29160ef5c6eff2a9c95833111472e824fc5cb78b513dd092"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"futures-channel", "futures-channel",
@ -1123,9 +1123,9 @@ dependencies = [
[[package]] [[package]]
name = "glib" name = "glib"
version = "0.16.5" version = "0.16.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0cd04d150a2c63e6779f43aec7e04f5374252479b7bed5f45146d9c0e821f161" checksum = "ddd4df61a866ed7259d6189b8bcb1464989a77f1d85d25d002279bbe9dd38b2f"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"futures-channel", "futures-channel",
@ -1210,9 +1210,9 @@ dependencies = [
[[package]] [[package]]
name = "gsk4" name = "gsk4"
version = "0.5.3" version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e349ef4df495fe0e3ed926294bace13dc560ac97fe0943c6646349fd4208d9ca" checksum = "4053293b79099bdfecd9ab0d811d118a0eafce613dfe0b26075419d955f1f652"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"cairo-rs", "cairo-rs",
@ -1226,9 +1226,9 @@ dependencies = [
[[package]] [[package]]
name = "gsk4-sys" name = "gsk4-sys"
version = "0.5.3" version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0118e5fcfbcb8dbd16b50dc79781c1cd520f1cf620c09a973d08023ca89d719" checksum = "08e0642edffdb35028d7d67b830678da98844216b6442e11eee52c91ad2a6dc2"
dependencies = [ dependencies = [
"cairo-sys-rs", "cairo-sys-rs",
"gdk4-sys", "gdk4-sys",
@ -1242,9 +1242,9 @@ dependencies = [
[[package]] [[package]]
name = "gtk4" name = "gtk4"
version = "0.5.3" version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2568accd16cfbeecaf961bd762d88888ee9f4bb161ab5d5cfc9517d62bdb4155" checksum = "8954da3659ff1cb35aa95110021b33fadcd8e306e8fe41f32146ffa009665a79"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"cairo-rs", "cairo-rs",
@ -1265,9 +1265,9 @@ dependencies = [
[[package]] [[package]]
name = "gtk4-macros" name = "gtk4-macros"
version = "0.5.3" version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ed8c00535fa1cb4b6d0e6548b0077148076c5ed8d46fc6e685cff5ee635529f" checksum = "58138cd3c595e04f82df050390aa7d2bd093795ce569e5f1d49eb496ef67fe7b"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"proc-macro-crate", "proc-macro-crate",
@ -1279,9 +1279,9 @@ dependencies = [
[[package]] [[package]]
name = "gtk4-sys" name = "gtk4-sys"
version = "0.5.3" version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6bc9fe486789d3a43c1e2bf9f547964ec0181e5df5b9cdc214f88d335f8257ed" checksum = "ef29e09e055b2f2550eb1882caa6961a1ae3c971a70bcb25cb9d5ab6cbd63821"
dependencies = [ dependencies = [
"cairo-sys-rs", "cairo-sys-rs",
"gdk-pixbuf-sys", "gdk-pixbuf-sys",
@ -1323,15 +1323,6 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
[[package]]
name = "hermit-abi"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
dependencies = [
"libc",
]
[[package]] [[package]]
name = "hermit-abi" name = "hermit-abi"
version = "0.2.6" version = "0.2.6"
@ -1582,11 +1573,11 @@ dependencies = [
[[package]] [[package]]
name = "is-terminal" name = "is-terminal"
version = "0.4.1" version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "927609f78c2913a6f6ac3c27a4fe87f43e2a35367c0c4b0f8265e8f49a104330" checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189"
dependencies = [ dependencies = [
"hermit-abi 0.2.6", "hermit-abi",
"io-lifetimes", "io-lifetimes",
"rustix", "rustix",
"windows-sys", "windows-sys",
@ -1603,9 +1594,9 @@ dependencies = [
[[package]] [[package]]
name = "itoa" name = "itoa"
version = "1.0.4" version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
[[package]] [[package]]
name = "jpeg-decoder" name = "jpeg-decoder"
@ -1676,9 +1667,9 @@ checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb"
[[package]] [[package]]
name = "link-cplusplus" name = "link-cplusplus"
version = "1.0.7" version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"
dependencies = [ dependencies = [
"cc", "cc",
] ]
@ -1921,11 +1912,11 @@ dependencies = [
[[package]] [[package]]
name = "num_cpus" name = "num_cpus"
version = "1.14.0" version = "1.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
dependencies = [ dependencies = [
"hermit-abi 0.1.19", "hermit-abi",
"libc", "libc",
] ]
@ -2069,9 +2060,9 @@ dependencies = [
[[package]] [[package]]
name = "paste" name = "paste"
version = "1.0.9" version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1de2e551fb905ac83f73f7aedf2f0cb4a0da7e35efa24a202a936269f1f18e1" checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba"
[[package]] [[package]]
name = "pathdiff" name = "pathdiff"
@ -2248,18 +2239,18 @@ dependencies = [
[[package]] [[package]]
name = "proc-macro2" name = "proc-macro2"
version = "1.0.47" version = "1.0.49"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5"
dependencies = [ dependencies = [
"unicode-ident", "unicode-ident",
] ]
[[package]] [[package]]
name = "quote" name = "quote"
version = "1.0.21" version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
] ]
@ -2311,11 +2302,10 @@ dependencies = [
[[package]] [[package]]
name = "rayon" name = "rayon"
version = "1.6.0" version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e060280438193c554f654141c9ea9417886713b7acd75974c85b18a69a88e0b" checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7"
dependencies = [ dependencies = [
"crossbeam-deque",
"either", "either",
"rayon-core", "rayon-core",
] ]
@ -2442,7 +2432,7 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
dependencies = [ dependencies = [
"semver 1.0.14", "semver 1.0.16",
] ]
[[package]] [[package]]
@ -2508,15 +2498,15 @@ dependencies = [
[[package]] [[package]]
name = "rustversion" name = "rustversion"
version = "1.0.9" version = "1.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70"
[[package]] [[package]]
name = "ryu" name = "ryu"
version = "1.0.11" version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
[[package]] [[package]]
name = "same-file" name = "same-file"
@ -2547,9 +2537,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
[[package]] [[package]]
name = "scratch" name = "scratch"
version = "1.0.2" version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2"
[[package]] [[package]]
name = "self_cell" name = "self_cell"
@ -2568,9 +2558,9 @@ dependencies = [
[[package]] [[package]]
name = "semver" name = "semver"
version = "1.0.14" version = "1.0.16"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a"
[[package]] [[package]]
name = "semver-parser" name = "semver-parser"
@ -2583,18 +2573,18 @@ dependencies = [
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.149" version = "1.0.151"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "256b9932320c590e707b94576e3cc1f7c9024d0ee6612dfbcf1cb106cbe8e055" checksum = "97fed41fc1a24994d044e6db6935e69511a1153b52c15eb42493b26fa87feba0"
dependencies = [ dependencies = [
"serde_derive", "serde_derive",
] ]
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.149" version = "1.0.151"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4eae9b04cbffdfd550eb462ed33bc6a1b68c935127d008b27444d08380f94e4" checksum = "255abe9a125a985c05190d687b320c12f9b1f0b99445e608c21ba0782c719ad8"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -2603,9 +2593,9 @@ dependencies = [
[[package]] [[package]]
name = "serde_json" name = "serde_json"
version = "1.0.89" version = "1.0.91"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db" checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883"
dependencies = [ dependencies = [
"itoa", "itoa",
"ryu", "ryu",
@ -2924,9 +2914,9 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "1.0.105" version = "1.0.107"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908" checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -2971,18 +2961,18 @@ dependencies = [
[[package]] [[package]]
name = "thiserror" name = "thiserror"
version = "1.0.37" version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
dependencies = [ dependencies = [
"thiserror-impl", "thiserror-impl",
] ]
[[package]] [[package]]
name = "thiserror-impl" name = "thiserror-impl"
version = "1.0.37" version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -3009,9 +2999,9 @@ dependencies = [
[[package]] [[package]]
name = "tiff" name = "tiff"
version = "0.8.0" version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f17def29300a156c19ae30814710d9c63cd50288a49c6fd3a10ccfbe4cf886fd" checksum = "7449334f9ff2baf290d55d73983a7d6fa15e01198faef72af07e2a8db851e471"
dependencies = [ dependencies = [
"flate2", "flate2",
"jpeg-decoder 0.3.0", "jpeg-decoder 0.3.0",
@ -3082,9 +3072,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
[[package]] [[package]]
name = "toml" name = "toml"
version = "0.5.9" version = "0.5.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" checksum = "1333c76748e868a4d9d1017b5ab53171dfd095f70c712fdb4653a406547f598f"
dependencies = [ dependencies = [
"serde", "serde",
] ]
@ -3240,9 +3230,9 @@ checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
[[package]] [[package]]
name = "unicode-ident" name = "unicode-ident"
version = "1.0.5" version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
[[package]] [[package]]
name = "unicode-normalization" name = "unicode-normalization"
@ -3427,15 +3417,15 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]] [[package]]
name = "windows" name = "windows"
version = "0.32.0" version = "0.39.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbedf6db9096bc2364adce0ae0aa636dcd89f3c3f2cd67947062aaf0ca2a10ec" checksum = "f1c4bd0a50ac6020f65184721f758dba47bb9fbc2133df715ec74a237b26794a"
dependencies = [ dependencies = [
"windows_aarch64_msvc 0.32.0", "windows_aarch64_msvc 0.39.0",
"windows_i686_gnu 0.32.0", "windows_i686_gnu 0.39.0",
"windows_i686_msvc 0.32.0", "windows_i686_msvc 0.39.0",
"windows_x86_64_gnu 0.32.0", "windows_x86_64_gnu 0.39.0",
"windows_x86_64_msvc 0.32.0", "windows_x86_64_msvc 0.39.0",
] ]
[[package]] [[package]]
@ -3476,9 +3466,9 @@ checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
[[package]] [[package]]
name = "windows_aarch64_msvc" name = "windows_aarch64_msvc"
version = "0.32.0" version = "0.39.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" checksum = "ec7711666096bd4096ffa835238905bb33fb87267910e154b18b44eaabb340f2"
[[package]] [[package]]
name = "windows_aarch64_msvc" name = "windows_aarch64_msvc"
@ -3488,9 +3478,9 @@ checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
[[package]] [[package]]
name = "windows_i686_gnu" name = "windows_i686_gnu"
version = "0.32.0" version = "0.39.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" checksum = "763fc57100a5f7042e3057e7e8d9bdd7860d330070251a73d003563a3bb49e1b"
[[package]] [[package]]
name = "windows_i686_gnu" name = "windows_i686_gnu"
@ -3500,9 +3490,9 @@ checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
[[package]] [[package]]
name = "windows_i686_msvc" name = "windows_i686_msvc"
version = "0.32.0" version = "0.39.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" checksum = "7bc7cbfe58828921e10a9f446fcaaf649204dcfe6c1ddd712c5eebae6bda1106"
[[package]] [[package]]
name = "windows_i686_msvc" name = "windows_i686_msvc"
@ -3512,9 +3502,9 @@ checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
[[package]] [[package]]
name = "windows_x86_64_gnu" name = "windows_x86_64_gnu"
version = "0.32.0" version = "0.39.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" checksum = "6868c165637d653ae1e8dc4d82c25d4f97dd6605eaa8d784b5c6e0ab2a252b65"
[[package]] [[package]]
name = "windows_x86_64_gnu" name = "windows_x86_64_gnu"
@ -3530,9 +3520,9 @@ checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
[[package]] [[package]]
name = "windows_x86_64_msvc" name = "windows_x86_64_msvc"
version = "0.32.0" version = "0.39.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" checksum = "5e4d40883ae9cae962787ca76ba76390ffa29214667a111db9e0a1ad8377e809"
[[package]] [[package]]
name = "windows_x86_64_msvc" name = "windows_x86_64_msvc"

View file

@ -36,7 +36,7 @@ fn main() {
set_default_number_of_threads(); set_default_number_of_threads();
println!("Set thread number to {}", get_number_of_threads()); println!("Set thread number to {}", get_number_of_threads());
#[cfg(debug_assertions)] #[cfg(debug_assertions)]
println!("{:?}", command); println!("{command:?}");
match command { match command {
Commands::Duplicates(duplicates_args) => duplicates(duplicates_args), Commands::Duplicates(duplicates_args) => duplicates(duplicates_args),

View file

@ -12,7 +12,7 @@ repository = "https://github.com/qarmin/czkawka"
[dependencies] [dependencies]
humansize = "2.1.2" humansize = "2.1.2"
rayon = "1.6.0" rayon = "1.6.1"
crossbeam-channel = "0.5.6" crossbeam-channel = "0.5.6"
# For saving/loading config files to specific directories # For saving/loading config files to specific directories
@ -48,9 +48,9 @@ vid_dup_finder_lib = "0.1.1"
ffmpeg_cmdline_utils = "0.1.2" ffmpeg_cmdline_utils = "0.1.2"
# Saving/Loading Cache # Saving/Loading Cache
serde = "1.0.149" serde = "1.0"
bincode = "1.3.3" bincode = "1.3.3"
serde_json = "1.0.89" serde_json = "1.0"
# Language # Language
i18n-embed = { version = "0.13.4", features = ["fluent-system", "desktop-requester"] } i18n-embed = { version = "0.13.4", features = ["fluent-system", "desktop-requester"] }
@ -66,11 +66,11 @@ imagepipe = "0.5.0"
mime_guess = "2.0.4" mime_guess = "2.0.4"
infer = "0.11.0" infer = "0.11.0"
num_cpus = "1.14.0" num_cpus = "1.15.0"
# Heif/Heic # Heif/Heic
libheif-rs = { version = "0.15.1", optional = true } libheif-rs = { version = "0.15.1", optional = true }
anyhow = { version = "1.0.66", optional = true } anyhow = { version = "1.0", optional = true }
state="0.5.3" state="0.5.3"

View file

@ -1,5 +1,5 @@
# Core # Core
core_similarity_original = Ursprünglich core_similarity_original = Original
core_similarity_very_high = Sehr Hoch core_similarity_very_high = Sehr Hoch
core_similarity_high = Hoch core_similarity_high = Hoch
core_similarity_medium = Mittel core_similarity_medium = Mittel
@ -10,8 +10,8 @@ core_cannot_open_dir = Verzeichnis { $dir } kann nicht geöffnet werden, Grund {
core_cannot_read_entry_dir = Kann Eintrag in Verzeichnis { $dir } nicht lesen, Grund { $reason } core_cannot_read_entry_dir = Kann Eintrag in Verzeichnis { $dir } nicht lesen, Grund { $reason }
core_cannot_read_metadata_dir = Metadaten können in Verzeichnis { $dir } nicht gelesen werden, Grund { $reason } core_cannot_read_metadata_dir = Metadaten können in Verzeichnis { $dir } nicht gelesen werden, Grund { $reason }
core_file_not_utf8_name = Datei { $name } hat keinen gültigen UTF-8-Namen (einige Zeichen könnten nicht angezeigt werden) core_file_not_utf8_name = Datei { $name } hat keinen gültigen UTF-8-Namen (einige Zeichen könnten nicht angezeigt werden)
core_file_modified_before_epoch = Datei { $name } scheint vor dem Unix-Epoch geändert worden zu sein core_file_modified_before_epoch = Datei { $name } scheint vor dieser Unix-Epoche geändert worden zu sein
core_folder_modified_before_epoch = Ordner { $name } scheint vor dem Unix-Epoch geändert worden zu sein core_folder_modified_before_epoch = Ordner { $name } scheint vor dieser Unix-Epoche geändert worden zu sein
core_file_no_modification_date = Konnte das Änderungsdatum von Datei { $name } nicht abrufen, Grund { $reason } core_file_no_modification_date = Konnte das Änderungsdatum von Datei { $name } nicht abrufen, Grund { $reason }
core_folder_no_modification_date = Konnte das Änderungsdatum aus dem Ordner { $name } nicht abrufen, Grund { $reason } core_folder_no_modification_date = Konnte das Änderungsdatum aus dem Ordner { $name } nicht abrufen, Grund { $reason }
core_missing_no_chosen_included_directory = Mindestens ein Verzeichnis muss angegeben werden core_missing_no_chosen_included_directory = Mindestens ein Verzeichnis muss angegeben werden
@ -19,10 +19,10 @@ core_directory_wildcard_no_supported = Verzeichnisse: Wildcards im Pfad werden n
core_directory_relative_path = Verzeichnisse: Relativer Pfad wird nicht unterstützt, { $path } wird ignoriert core_directory_relative_path = Verzeichnisse: Relativer Pfad wird nicht unterstützt, { $path } wird ignoriert
core_directory_must_exists = Verzeichnisse: Der angegebene Ordnerpfad muss existieren, { $path } wird ignoriert core_directory_must_exists = Verzeichnisse: Der angegebene Ordnerpfad muss existieren, { $path } wird ignoriert
core_directory_must_be_directory = Verzeichnisse: Der angegebene Pfad muss auf das Verzeichnis zeigen, { $path } wird ignoriert core_directory_must_be_directory = Verzeichnisse: Der angegebene Pfad muss auf das Verzeichnis zeigen, { $path } wird ignoriert
core_included_directory_zero_valid_directories = Inklusive Verzeichnis-FEHLER: Nicht einmal einen korrekten Pfad zu inkludiert, der erforderlich ist core_included_directory_zero_valid_directories = Einbezogenes Verzeichnis-FEHLER: Kein korrekter Pfad gefunden, welcher einbezogen werden soll, was erforderlich ist
core_excluded_directory_pointless_slash = Verzeichnisse: / auszuschließen ist sinnlos, weil somit keine Dateien gescannt werden core_excluded_directory_pointless_slash = Verzeichnisse: / auszuschließen ist sinnlos, weil somit keine Dateien gescannt werden
core_directory_overlap = Verzeichnisse: Alle zu durchsuchende Verzeichnisse überlappen mit den ausgeschlossenen Verzeichnissen core_directory_overlap = Verzeichnisse: Alle zu durchsuchende Verzeichnisse überlappen mit den ausgeschlossenen Verzeichnissen
core_directory_unable_to_get_device_id = Verzeichnisse: Geräte-Id kann nicht aus dem Ordner { $path } geholt werden core_directory_unable_to_get_device_id = Verzeichnisse: Geräte-ID kann nicht aus dem Ordner { $path } geholt werden
core_ffmpeg_not_found = Keine richtige Installation von FFmpeg gefunden core_ffmpeg_not_found = Keine richtige Installation von FFmpeg gefunden
core_ffmpeg_not_found_windows = Stellen Sie sicher, dass ffmpeg.exe und ffprobe.exe in PATH verfügbar sind oder direkt in den gleichen Ordner gelegt werden, in dem die App ausführbar ist core_ffmpeg_not_found_windows = Stellen Sie sicher, dass ffmpeg.exe und ffprobe.exe in PATH verfügbar sind oder direkt in den gleichen Ordner gelegt werden, in dem die App ausführbar ist
core_ffmpeg_missing_in_snap = Ähnliche Videos funktionieren derzeit nicht mit Snap, wenn du Hilfe möchtest, besuche - { $url } core_ffmpeg_missing_in_snap = Ähnliche Videos funktionieren derzeit nicht mit Snap, wenn du Hilfe möchtest, besuche - { $url }

View file

@ -1,11 +1,11 @@
# Core # Core
core_similarity_original = 원본 core_similarity_original = 원본
core_similarity_very_high = 유사도 매우 높음 core_similarity_very_high = 매우 높음
core_similarity_high = 유사도 높음 core_similarity_high = 높음
core_similarity_medium = 유사도 보통 core_similarity_medium = 보통
core_similarity_small = 유사도 적 core_similarity_small =
core_similarity_very_small = 유사도 매우 적 core_similarity_very_small = 매우 낮
core_similarity_minimal = 유사도 거의 없음 core_similarity_minimal = 최소
core_cannot_open_dir = { $dir } 디렉터리를 열 수 없습니다. 이유: { $reason } core_cannot_open_dir = { $dir } 디렉터리를 열 수 없습니다. 이유: { $reason }
core_cannot_read_entry_dir = { $dir } 디렉터리를 열 수 없습니다. 이유: { $reason } core_cannot_read_entry_dir = { $dir } 디렉터리를 열 수 없습니다. 이유: { $reason }
core_cannot_read_metadata_dir = { $dir } 디렉터리의 메타데이터를 열 수 없습니다. 이유: { $reason } core_cannot_read_metadata_dir = { $dir } 디렉터리의 메타데이터를 열 수 없습니다. 이유: { $reason }

View file

@ -9,7 +9,7 @@ core_similarity_minimal = Minimalne
core_cannot_open_dir = Nie można otworzyć folderu { $dir }, powód { $reason } core_cannot_open_dir = Nie można otworzyć folderu { $dir }, powód { $reason }
core_cannot_read_entry_dir = Nie można odczytać danych z folderu { $dir }, powód { $reason } core_cannot_read_entry_dir = Nie można odczytać danych z folderu { $dir }, powód { $reason }
core_cannot_read_metadata_dir = Nie można odczytać metadanych folderu { $dir }, powód { $reason } core_cannot_read_metadata_dir = Nie można odczytać metadanych folderu { $dir }, powód { $reason }
core_file_not_utf8_name = Plik { $name } nie posiada nazwy zakodowanej za pomocą UTF-8 (niektóre znaki mogą się nie wyświetlać) core_file_not_utf8_name = Plik { $name } nie posiada nazwy zakodowanej za pomocą UTF-8(niektóre znaki mogą się nie wyświetlać)
core_file_modified_before_epoch = Plik { $name } ma datę modyfikacji sprzed epoki unixa core_file_modified_before_epoch = Plik { $name } ma datę modyfikacji sprzed epoki unixa
core_folder_modified_before_epoch = Folder { $name } ma datę modyfikacji sprzed epoki unixa core_folder_modified_before_epoch = Folder { $name } ma datę modyfikacji sprzed epoki unixa
core_file_no_modification_date = Nie udało się pobrać daty modyfikacji z pliku { $name }, powód { $reason } core_file_no_modification_date = Nie udało się pobrać daty modyfikacji z pliku { $name }, powód { $reason }

View file

@ -1,5 +1,5 @@
# Core # Core
core_similarity_original = Оригинал core_similarity_original = Оригинальное
core_similarity_very_high = Очень высокое core_similarity_very_high = Очень высокое
core_similarity_high = Высокое core_similarity_high = Высокое
core_similarity_medium = Среднее core_similarity_medium = Среднее

View file

@ -1,30 +1,30 @@
# Core # Core
core_similarity_original = Orijinal core_similarity_original = Asıl
core_similarity_very_high = Çok Yüksek core_similarity_very_high = Çok Yüksek
core_similarity_high = Akşam vakti core_similarity_high = Yüksek
core_similarity_medium = Orta core_similarity_medium = Orta
core_similarity_small = Küçük core_similarity_small = Düşük
core_similarity_very_small = Çok Küçük core_similarity_very_small = Çok Düşük
core_similarity_minimal = En az core_similarity_minimal = ırı Düşük
core_cannot_open_dir = Cannot open dir { $dir }, reason { $reason } core_cannot_open_dir = { $dir } dizini açılamıyor, nedeni: { $reason }
core_cannot_read_entry_dir = Cannot read entry in dir { $dir }, reason { $reason } core_cannot_read_entry_dir = { $dir } dizinindeki girdi okunamıyor, nedeni: { $reason }
core_cannot_read_metadata_dir = Cannot read metadata in dir { $dir }, reason { $reason } core_cannot_read_metadata_dir = { $dir } dizinindeki metaveri okunamıyor, nedei: { $reason }
core_file_not_utf8_name = File { $name } does not have a valid UTF-8 name (some characters may not be shown) core_file_not_utf8_name = { $name } dosyasının geçerli bir UTF-8 adı yok (kimi karakterler gösterilemeyebilir)
core_file_modified_before_epoch = File { $name } seems to be modified before Unix Epoch core_file_modified_before_epoch = { $name } dosyası Unix Epoch'tan önce değiştirilmiş gibi görünüyor.
core_folder_modified_before_epoch = Folder { $name } seems to be modified before Unix Epoch core_folder_modified_before_epoch = { $name } klasörü Unix Epoch'tan önce değiştirilmiş gibi görünüyor.
core_file_no_modification_date = Unable to get modification date from file { $name }, reason { $reason } core_file_no_modification_date = { $name } dosyasının değişiklik tarihine erişilemiyor, nedeni: { $reason }
core_folder_no_modification_date = Unable to get modification date from folder { $name }, reason { $reason } core_folder_no_modification_date = { $name } klasörünün değişiklik tarihine erişilemiyor, nedeni: { $reason }
core_missing_no_chosen_included_directory = At least one directory must be provided core_missing_no_chosen_included_directory = "Aranacak Dizinler" listesinde en az bir dizin yer almalıdır.
core_directory_wildcard_no_supported = Directories: Wildcards in path are not supported, ignoring { $path } core_directory_wildcard_no_supported = Dizinler: Yol adında joker karakterler desteklenmez, { $path } yok sayıldı.
core_directory_relative_path = Directories: Relative path are not supported, ignoring { $path } core_directory_relative_path = Dizinler: Göreli yol desteklenmez, { $path } yok sayıldı.
core_directory_must_exists = Directories: Provided folder path must exist, ignoring { $path } core_directory_must_exists = Dizinler: Girilen klasör yolu var olmalı, { $path } yok sayıldı.
core_directory_must_be_directory = Directories: Provided path must point at the directory, ignoring { $path } core_directory_must_be_directory = Dizinler: Girilen yol bir dizini göstermelidir, { $path } yok sayıldı.
core_included_directory_zero_valid_directories = Included Directory ERROR: Not found even one correct path to included which is required core_included_directory_zero_valid_directories = "Aranacak Dizinler" listesinde HATA: Tarama yapılması için gerekli olan tek bir doğru yol bile bulunamadı.
core_excluded_directory_pointless_slash = Directories: Excluding / is pointless, because it means that no files will be scanned core_excluded_directory_pointless_slash = Dizinler: "/" kök dizinini hariç tutmak anlamsızdır, çünkü bu hiçbir dosyanın taranmayacağı anlamına gelir.
core_directory_overlap = Directories: All directories to search overlaps with excluded directories core_directory_overlap = Dizinler: Aranacak tüm dizinler, hariç tutulan dizinlerle çakışıyor.
core_directory_unable_to_get_device_id = Directories: Unable to get device id from folder { $path } core_directory_unable_to_get_device_id = Dizinler: { $path } klasörünün aygıt kimliği bilgisine erişilemiyor.
core_ffmpeg_not_found = Cannot find proper installation of FFmpeg core_ffmpeg_not_found = FFmpeg'in uygun kurulumu bulunamıyor.
core_ffmpeg_not_found_windows = Be sure that ffmpeg.exe and ffprobe.exe are available in PATH or are put directly to same folder where is app executable core_ffmpeg_not_found_windows = "ffmpeg(.exe)" ve "ffprobe(.exe)" uygulamalarının PATH dizininde ya da uygulamanın doğrudan yürütüldüğü dizinde yer aldığından ve 'yürütülebilir' olarak işaretlendiğinden emin olun.
core_ffmpeg_missing_in_snap = Similar Videos don't work currently with snap, if you want help look at - { $url } core_ffmpeg_missing_in_snap = Benzer Videolar şu anda snap ile çalışmıyor, eğer yardım istiyorsanız - { $url }
core_saving_to_cache = Saved to file { $number } cache entries core_saving_to_cache = { $number } adet SUÇ kaydı önbellek dosyasına yazıldı. ;-)
core_loading_from_cache = Loaded from cache { $number } entries core_loading_from_cache = Önbellek dosyasından { $number } adet SUÇ kaydı okundu. ;-)

View file

@ -424,7 +424,7 @@ impl BadExtensions {
} }
} }
let mut guessed_multiple_extensions = format!("({}) - ", proper_extension); let mut guessed_multiple_extensions = format!("({proper_extension}) - ");
for ext in &all_available_extensions { for ext in &all_available_extensions {
guessed_multiple_extensions.push_str(ext); guessed_multiple_extensions.push_str(ext);
guessed_multiple_extensions.push(','); guessed_multiple_extensions.push(',');
@ -523,7 +523,7 @@ impl SaveResults for BadExtensions {
let file_handler = match File::create(&file_name) { let file_handler = match File::create(&file_name) {
Ok(t) => t, Ok(t) => t,
Err(e) => { Err(e) => {
self.text_messages.errors.push(format!("Failed to create file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to create file {file_name}, reason {e}"));
return false; return false;
} }
}; };
@ -534,7 +534,7 @@ impl SaveResults for BadExtensions {
"Results of searching {:?} with excluded directories {:?} and excluded items {:?}", "Results of searching {:?} with excluded directories {:?} and excluded items {:?}",
self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items
) { ) {
self.text_messages.errors.push(format!("Failed to save results to file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to save results to file {file_name}, reason {e}"));
return false; return false;
} }

View file

@ -449,7 +449,7 @@ impl SaveResults for BigFile {
let file_handler = match File::create(&file_name) { let file_handler = match File::create(&file_name) {
Ok(t) => t, Ok(t) => t,
Err(e) => { Err(e) => {
self.text_messages.errors.push(format!("Failed to create file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to create file {file_name}, reason {e}"));
return false; return false;
} }
}; };
@ -460,7 +460,7 @@ impl SaveResults for BigFile {
"Results of searching {:?} with excluded directories {:?} and excluded items {:?}", "Results of searching {:?} with excluded directories {:?} and excluded items {:?}",
self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items
) { ) {
self.text_messages.errors.push(format!("Failed to save results to file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to save results to file {file_name}, reason {e}"));
return false; return false;
} }

View file

@ -663,7 +663,7 @@ impl SaveResults for BrokenFiles {
let file_handler = match File::create(&file_name) { let file_handler = match File::create(&file_name) {
Ok(t) => t, Ok(t) => t,
Err(e) => { Err(e) => {
self.text_messages.errors.push(format!("Failed to create file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to create file {file_name}, reason {e}"));
return false; return false;
} }
}; };
@ -674,7 +674,7 @@ impl SaveResults for BrokenFiles {
"Results of searching {:?} with excluded directories {:?} and excluded items {:?}", "Results of searching {:?} with excluded directories {:?} and excluded items {:?}",
self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items
) { ) {
self.text_messages.errors.push(format!("Failed to save results to file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to save results to file {file_name}, reason {e}"));
return false; return false;
} }

View file

@ -212,10 +212,10 @@ impl Common {
path = Path::new(entry); path = Path::new(entry);
if path.is_dir() { if path.is_dir() {
if let Err(e) = fs::remove_dir_all(entry) { if let Err(e) = fs::remove_dir_all(entry) {
warnings.push(format!("Failed to remove folder {}, reason {}", entry, e)); warnings.push(format!("Failed to remove folder {entry}, reason {e}"));
} }
} else if let Err(e) = fs::remove_file(entry) { } else if let Err(e) = fs::remove_file(entry) {
warnings.push(format!("Failed to remove file {}, reason {}", entry, e)); warnings.push(format!("Failed to remove file {entry}, reason {e}"));
} }
} }
warnings warnings
@ -225,10 +225,10 @@ impl Common {
let mut warning: String = String::from(""); let mut warning: String = String::from("");
if path.is_dir() { if path.is_dir() {
if let Err(e) = fs::remove_dir_all(entry) { if let Err(e) = fs::remove_dir_all(entry) {
warning = format!("Failed to remove folder {}, reason {}", entry, e) warning = format!("Failed to remove folder {entry}, reason {e}")
} }
} else if let Err(e) = fs::remove_file(entry) { } else if let Err(e) = fs::remove_file(entry) {
warning = format!("Failed to remove file {}, reason {}", entry, e) warning = format!("Failed to remove file {entry}, reason {e}")
} }
warning warning
} }

View file

@ -31,18 +31,18 @@ impl Extensions {
} }
if !extension.starts_with('.') { if !extension.starts_with('.') {
extension = format!(".{}", extension); extension = format!(".{extension}");
} }
if extension[1..].contains('.') { if extension[1..].contains('.') {
text_messages.warnings.push(format!("{} is not valid extension because contains dot inside", extension)); text_messages.warnings.push(format!("{extension} is not valid extension because contains dot inside"));
continue; continue;
} }
if extension[1..].contains(' ') { if extension[1..].contains(' ') {
text_messages text_messages
.warnings .warnings
.push(format!("{} is not valid extension because contains empty space inside", extension)); .push(format!("{extension} is not valid extension because contains empty space inside"));
continue; continue;
} }

View file

@ -1003,7 +1003,7 @@ impl SaveResults for DuplicateFinder {
let file_handler = match File::create(&file_name) { let file_handler = match File::create(&file_name) {
Ok(t) => t, Ok(t) => t,
Err(e) => { Err(e) => {
self.text_messages.errors.push(format!("Failed to create file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to create file {file_name}, reason {e}"));
return false; return false;
} }
}; };
@ -1014,7 +1014,7 @@ impl SaveResults for DuplicateFinder {
"Results of searching {:?} with excluded directories {:?} and excluded items {:?}", "Results of searching {:?} with excluded directories {:?} and excluded items {:?}",
self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items
) { ) {
self.text_messages.errors.push(format!("Failed to save results to file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to save results to file {file_name}, reason {e}"));
return false; return false;
} }
match self.check_method { match self.check_method {
@ -1117,7 +1117,7 @@ impl PrintResults for DuplicateFinder {
number_of_files += i.1.len() as u64; number_of_files += i.1.len() as u64;
number_of_groups += 1; number_of_groups += 1;
} }
println!("Found {} files in {} groups with same name(may have different content)", number_of_files, number_of_groups,); println!("Found {number_of_files} files in {number_of_groups} groups with same name(may have different content)",);
for (name, vector) in &self.files_with_identical_names { for (name, vector) in &self.files_with_identical_names {
println!("Name - {} - {} files ", name, vector.len()); println!("Name - {} - {} files ", name, vector.len());
for j in vector { for j in vector {
@ -1282,7 +1282,7 @@ pub fn save_hashes_to_file(hashmap: &BTreeMap<String, FileEntry>, text_messages:
if file_entry.size >= minimal_cache_file_size { if file_entry.size >= minimal_cache_file_size {
let string: String = format!("{}//{}//{}//{}", file_entry.path.display(), file_entry.size, file_entry.modified_date, file_entry.hash); let string: String = format!("{}//{}//{}//{}", file_entry.path.display(), file_entry.size, file_entry.modified_date, file_entry.hash);
if let Err(e) = writeln!(writer, "{}", string) { if let Err(e) = writeln!(writer, "{string}") {
text_messages text_messages
.warnings .warnings
.push(format!("Failed to save some data to cache file {}, reason {}", cache_file.display(), e)); .push(format!("Failed to save some data to cache file {}, reason {}", cache_file.display(), e));
@ -1411,7 +1411,7 @@ fn hash_calculation(buffer: &mut [u8], file_entry: &FileEntry, hash_type: &HashT
fn get_file_hash_name(type_of_hash: &HashType, is_prehash: bool) -> String { fn get_file_hash_name(type_of_hash: &HashType, is_prehash: bool) -> String {
let prehash_str = if is_prehash { "_prehash" } else { "" }; let prehash_str = if is_prehash { "_prehash" } else { "" };
format!("cache_duplicates_{:?}{}.txt", type_of_hash, prehash_str) format!("cache_duplicates_{type_of_hash:?}{prehash_str}.txt")
} }
impl MyHasher for blake3::Hasher { impl MyHasher for blake3::Hasher {

View file

@ -222,7 +222,7 @@ impl SaveResults for EmptyFiles {
let file_handler = match File::create(&file_name) { let file_handler = match File::create(&file_name) {
Ok(t) => t, Ok(t) => t,
Err(e) => { Err(e) => {
self.text_messages.errors.push(format!("Failed to create file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to create file {file_name}, reason {e}"));
return false; return false;
} }
}; };
@ -233,7 +233,7 @@ impl SaveResults for EmptyFiles {
"Results of searching {:?} with excluded directories {:?} and excluded items {:?}", "Results of searching {:?} with excluded directories {:?} and excluded items {:?}",
self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items
) { ) {
self.text_messages.errors.push(format!("Failed to save results to file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to save results to file {file_name}, reason {e}"));
return false; return false;
} }

View file

@ -213,7 +213,7 @@ impl SaveResults for EmptyFolder {
let file_handler = match File::create(&file_name) { let file_handler = match File::create(&file_name) {
Ok(t) => t, Ok(t) => t,
Err(e) => { Err(e) => {
self.text_messages.errors.push(format!("Failed to create file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to create file {file_name}, reason {e}"));
return false; return false;
} }
}; };
@ -224,7 +224,7 @@ impl SaveResults for EmptyFolder {
"Results of searching {:?} with excluded directories {:?}", "Results of searching {:?} with excluded directories {:?}",
self.directories.included_directories, self.directories.excluded_directories self.directories.included_directories, self.directories.excluded_directories
) { ) {
self.text_messages.errors.push(format!("Failed to save results to file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to save results to file {file_name}, reason {e}"));
return false; return false;
} }

View file

@ -218,7 +218,7 @@ impl SaveResults for InvalidSymlinks {
let file_handler = match File::create(&file_name) { let file_handler = match File::create(&file_name) {
Ok(t) => t, Ok(t) => t,
Err(e) => { Err(e) => {
self.text_messages.errors.push(format!("Failed to create file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to create file {file_name}, reason {e}"));
return false; return false;
} }
}; };
@ -229,7 +229,7 @@ impl SaveResults for InvalidSymlinks {
"Results of searching {:?} with excluded directories {:?} and excluded items {:?}", "Results of searching {:?} with excluded directories {:?} and excluded items {:?}",
self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items
) { ) {
self.text_messages.errors.push(format!("Failed to save results to file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to save results to file {file_name}, reason {e}"));
return false; return false;
} }

View file

@ -445,7 +445,7 @@ impl SameMusic {
let minutes = length_number / 1000; let minutes = length_number / 1000;
let seconds = (length_number % 1000) * 6 / 100; let seconds = (length_number % 1000) * 6 / 100;
if minutes != 0 || seconds != 0 { if minutes != 0 || seconds != 0 {
length = format!("{}:{:02}", minutes, seconds); length = format!("{minutes}:{seconds:02}");
} else if old_length_number > 0 { } else if old_length_number > 0 {
// That means, that audio have length smaller that second, but length is properly read // That means, that audio have length smaller that second, but length is properly read
length = "0:01".to_string(); length = "0:01".to_string();
@ -897,7 +897,7 @@ impl SaveResults for SameMusic {
let file_handler = match File::create(&file_name) { let file_handler = match File::create(&file_name) {
Ok(t) => t, Ok(t) => t,
Err(e) => { Err(e) => {
self.text_messages.errors.push(format!("Failed to create file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to create file {file_name}, reason {e}"));
return false; return false;
} }
}; };
@ -908,7 +908,7 @@ impl SaveResults for SameMusic {
"Results of searching {:?} with excluded directories {:?} and excluded items {:?}", "Results of searching {:?} with excluded directories {:?} and excluded items {:?}",
self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items
) { ) {
self.text_messages.errors.push(format!("Failed to save results to file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to save results to file {file_name}, reason {e}"));
return false; return false;
} }

View file

@ -159,7 +159,7 @@ impl SimilarImages {
self.hash_size = match hash_size { self.hash_size = match hash_size {
8 | 16 | 32 | 64 => hash_size, 8 | 16 | 32 | 64 => hash_size,
e => { e => {
panic!("Invalid value of hash size {}", e); panic!("Invalid value of hash size {e}");
} }
} }
} }
@ -961,12 +961,12 @@ impl SimilarImages {
let mut found = false; let mut found = false;
for (_hash, vec_file_entry) in collected_similar_images.iter() { for (_hash, vec_file_entry) in collected_similar_images.iter() {
if vec_file_entry.is_empty() { if vec_file_entry.is_empty() {
println!("Empty Element {:?}", vec_file_entry); println!("Empty Element {vec_file_entry:?}");
found = true; found = true;
continue; continue;
} }
if vec_file_entry.len() == 1 { if vec_file_entry.len() == 1 {
println!("Single Element {:?}", vec_file_entry); println!("Single Element {vec_file_entry:?}");
found = true; found = true;
continue; continue;
} }
@ -974,7 +974,7 @@ impl SimilarImages {
let st = file_entry.path.to_string_lossy().to_string(); let st = file_entry.path.to_string_lossy().to_string();
if result_hashset.contains(&st) { if result_hashset.contains(&st) {
found = true; found = true;
println!("Duplicated Element {}", st); println!("Duplicated Element {st}");
} else { } else {
result_hashset.insert(st); result_hashset.insert(st);
} }
@ -1161,7 +1161,7 @@ impl SaveResults for SimilarImages {
let file_handler = match File::create(&file_name) { let file_handler = match File::create(&file_name) {
Ok(t) => t, Ok(t) => t,
Err(e) => { Err(e) => {
self.text_messages.errors.push(format!("Failed to create file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to create file {file_name}, reason {e}"));
return false; return false;
} }
}; };
@ -1172,7 +1172,7 @@ impl SaveResults for SimilarImages {
"Results of searching {:?} with excluded directories {:?} and excluded items {:?}", "Results of searching {:?} with excluded directories {:?} and excluded items {:?}",
self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items
) { ) {
self.text_messages.errors.push(format!("Failed to save results to file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to save results to file {file_name}, reason {e}"));
return false; return false;
} }
@ -1471,7 +1471,7 @@ fn debug_check_for_duplicated_things(
for i in all_hashed_images.get(*hash).unwrap() { for i in all_hashed_images.get(*hash).unwrap() {
let name = i.path.to_string_lossy().to_string(); let name = i.path.to_string_lossy().to_string();
if hashmap_names.contains(&name) { if hashmap_names.contains(&name) {
println!("------1--NAME--{} {:?}", numm, name); println!("------1--NAME--{numm} {name:?}");
found_broken_thing = true; found_broken_thing = true;
} }
hashmap_names.insert(name); hashmap_names.insert(name);
@ -1488,7 +1488,7 @@ fn debug_check_for_duplicated_things(
for i in all_hashed_images.get(*hash).unwrap() { for i in all_hashed_images.get(*hash).unwrap() {
let name = i.path.to_string_lossy().to_string(); let name = i.path.to_string_lossy().to_string();
if hashmap_names.contains(&name) { if hashmap_names.contains(&name) {
println!("------2--NAME--{} {:?}", numm, name); println!("------2--NAME--{numm} {name:?}");
found_broken_thing = true; found_broken_thing = true;
} }
hashmap_names.insert(name); hashmap_names.insert(name);

View file

@ -519,7 +519,7 @@ impl SimilarVideos {
Ok(t) => t, Ok(t) => t,
Err(e) => { Err(e) => {
return { return {
file_entry.error = format!("Failed to hash file, reason {}", e); file_entry.error = format!("Failed to hash file, reason {e}");
Some(file_entry) Some(file_entry)
}; };
} }
@ -694,7 +694,7 @@ impl SaveResults for SimilarVideos {
let file_handler = match File::create(&file_name) { let file_handler = match File::create(&file_name) {
Ok(t) => t, Ok(t) => t,
Err(e) => { Err(e) => {
self.text_messages.errors.push(format!("Failed to create file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to create file {file_name}, reason {e}"));
return false; return false;
} }
}; };
@ -705,7 +705,7 @@ impl SaveResults for SimilarVideos {
"Results of searching {:?} with excluded directories {:?} and excluded items {:?}", "Results of searching {:?} with excluded directories {:?} and excluded items {:?}",
self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items
) { ) {
self.text_messages.errors.push(format!("Failed to save results to file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to save results to file {file_name}, reason {e}"));
return false; return false;
} }

View file

@ -396,7 +396,7 @@ impl SaveResults for Temporary {
let file_handler = match File::create(&file_name) { let file_handler = match File::create(&file_name) {
Ok(t) => t, Ok(t) => t,
Err(e) => { Err(e) => {
self.text_messages.errors.push(format!("Failed to create file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to create file {file_name}, reason {e}"));
return false; return false;
} }
}; };
@ -407,7 +407,7 @@ impl SaveResults for Temporary {
"Results of searching {:?} with excluded directories {:?} and excluded items {:?}", "Results of searching {:?} with excluded directories {:?} and excluded items {:?}",
self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items self.directories.included_directories, self.directories.excluded_directories, self.excluded_items.items
) { ) {
self.text_messages.errors.push(format!("Failed to save results to file {}, reason {}", file_name, e)); self.text_messages.errors.push(format!("Failed to save results to file {file_name}, reason {e}"));
return false; return false;
} }

View file

@ -10,8 +10,8 @@ homepage = "https://github.com/qarmin/czkawka"
repository = "https://github.com/qarmin/czkawka" repository = "https://github.com/qarmin/czkawka"
[dependencies] [dependencies]
gdk4 = "0.5.3" gdk4 = "0.5.4"
glib = "0.16.5" glib = "0.16.7"
humansize = "2.1.2" humansize = "2.1.2"
chrono = "0.4.23" chrono = "0.4.23"
@ -53,7 +53,7 @@ once_cell = "1.16.0"
winapi = { version = "0.3.9", features = ["combaseapi", "objbase", "shobjidl_core", "windef", "winerror", "wtypesbase", "winuser"] } winapi = { version = "0.3.9", features = ["combaseapi", "objbase", "shobjidl_core", "windef", "winerror", "wtypesbase", "winuser"] }
[dependencies.gtk4] [dependencies.gtk4]
version = "0.5.3" version = "0.5.4"
default-features = false default-features = false
features = ["v4_6"] features = ["v4_6"]

View file

@ -45,7 +45,7 @@ duplicate_check_method_tooltip =
image_hash_size_tooltip = image_hash_size_tooltip =
Každý zkontrolovaný obrázek vytváří speciální hash, který lze vzájemně porovnávat, a malý rozdíl mezi nimi znamená, že tyto obrázky jsou podobné. Každý zkontrolovaný obrázek vytváří speciální hash, který lze vzájemně porovnávat, a malý rozdíl mezi nimi znamená, že tyto obrázky jsou podobné.
8 hash velikost je docela dobrá k nalezení obrázků, které jsou jen málo podobné originálům. S větší sadou obrázků (>1000) bude produkovat velké množství falešných pozitivních výsledků, takže doporučuji použít pro takovou částku větší hash velikosti. 8 hash velikost je docela dobrá k nalezení obrázků, které jsou jen málo podobné originálům. S větší sadou obrázků(>1000) bude produkovat velké množství falešných pozitivních výsledků, takže doporučuji použít pro takovou částku větší hash velikosti.
16 je výchozí velikost hash, což je docela dobrý kompromis mezi nalezením i trochu podobných obrázků a malým množstvím srážek hash. 16 je výchozí velikost hash, což je docela dobrý kompromis mezi nalezením i trochu podobných obrázků a malým množstvím srážek hash.
@ -225,6 +225,11 @@ bottom_hardlink_button_tooltip =
Vytvořit hardwarové odkazy. Vytvořit hardwarové odkazy.
Funguje pouze tehdy, pokud jsou vybrány alespoň dva výsledky ve skupině. Funguje pouze tehdy, pokud jsou vybrány alespoň dva výsledky ve skupině.
Nejprve je nezměněna a druhé a později jsou těžce propojeny s prvními. Nejprve je nezměněna a druhé a později jsou těžce propojeny s prvními.
bottom_hardlink_button_not_available_tooltip =
Create hardlinks.
Button is disabled, because hardlinks cannot be created.
Hardlinks only works with administrator privileges on Windows, so be sure to run app as administrator.
If app already works with such privileges check for similar issues on Github.
bottom_move_button_tooltip = bottom_move_button_tooltip =
Přesune soubory do vybraného adresáře. Přesune soubory do vybraného adresáře.
Zkopíruje všechny soubory do adresáře bez uchování stromu adresáře. Zkopíruje všechny soubory do adresáře bez uchování stromu adresáře.
@ -252,6 +257,9 @@ header_about_button_tooltip = Otevře dialog s informacemi o aplikaci.
## General ## General
settings_number_of_threads = Number of used threads
settings_number_of_threads_tooltip = Number of used threads, 0 means that all available threads will be used.
settings_label_restart = You need to restart app to apply settings!
settings_ignore_other_filesystems = Ignorovat další souborové systémy (pouze Linux) settings_ignore_other_filesystems = Ignorovat další souborové systémy (pouze Linux)
settings_ignore_other_filesystems_tooltip = settings_ignore_other_filesystems_tooltip =
ignoruje soubory, které nejsou ve stejném souborovém systému jako prohledávané adresáře. ignoruje soubory, které nejsou ve stejném souborovém systému jako prohledávané adresáře.

View file

@ -15,10 +15,10 @@ music_genre_checkbox = Genre
music_length_checkbox = Dauer music_length_checkbox = Dauer
music_comparison_checkbox = Ungefährer Vergleich music_comparison_checkbox = Ungefährer Vergleich
music_comparison_checkbox_tooltip = music_comparison_checkbox_tooltip =
Mit Hilfe von einer KI, die maschinelles Lernen nutzt, um Klammern aus Phrasen zu entfernen, wird nach ähnlichen Musikdateien gesucht. Wenn die Option aktiviert ist, werden die folgenden Dateien zum Beispiel als Duplikate betrachtet: Mit Hilfe von einer KI, die maschinelles Lernen nutzt, um Klammern aus Sätzen zu entfernen, wird nach ähnlichen Musikdateien gesucht. Wenn die Option aktiviert ist, werden die folgenden Dateien zum Beispiel als Duplikate betrachtet:
Świędziżłób --- Świędziżłób (Remix Lato 2021) Świędziżłób --- Świędziżłób (Remix Lato 2021)
duplicate_case_sensitive_name = Gross- /kleinschreibung beachtend duplicate_case_sensitive_name = Gross-/Kleinschreibung beachten
duplicate_case_sensitive_name_tooltip = duplicate_case_sensitive_name_tooltip =
Wenn aktiviert, gruppieren Sie nur Datensätze, wenn sie genau denselben Namen haben, z. żoŁD <-> Żołd Wenn aktiviert, gruppieren Sie nur Datensätze, wenn sie genau denselben Namen haben, z. żoŁD <-> Żołd
Deaktivieren dieser Option gruppiert Namen ohne zu überprüfen, ob jeder Buchstabe die gleiche Größe wie żoŁD <-> Żołd Deaktivieren dieser Option gruppiert Namen ohne zu überprüfen, ob jeder Buchstabe die gleiche Größe wie żoŁD <-> Żołd
@ -66,15 +66,15 @@ image_hash_alg_tooltip =
big_files_mode_combobox_tooltip = Erlaubt die Suche nach kleinsten/größten Dateien big_files_mode_combobox_tooltip = Erlaubt die Suche nach kleinsten/größten Dateien
big_files_mode_label = Überprüfte Dateien big_files_mode_label = Überprüfte Dateien
big_files_mode_smallest_combo_box = Die kleinsten big_files_mode_smallest_combo_box = Die kleinsten
big_files_mode_biggest_combo_box = Die Größten big_files_mode_biggest_combo_box = Die größten
main_notebook_duplicates = Dateien duplizieren main_notebook_duplicates = Doppelte Dateien
main_notebook_empty_directories = Leere Verzeichnisse main_notebook_empty_directories = Leere Verzeichnisse
main_notebook_big_files = Große Dateien main_notebook_big_files = Große Dateien
main_notebook_empty_files = Leere Dateien main_notebook_empty_files = Leere Dateien
main_notebook_temporary = Temporäre Dateien main_notebook_temporary = Temporäre Dateien
main_notebook_similar_images = Ähnliche Bilder main_notebook_similar_images = Ähnliche Bilder
main_notebook_similar_videos = Ähnliche Videos main_notebook_similar_videos = Ähnliche Videos
main_notebook_same_music = Musik Duplikate main_notebook_same_music = Gleiche Musik
main_notebook_symlinks = Ungültige Symlinks main_notebook_symlinks = Ungültige Symlinks
main_notebook_broken_files = Defekte Dateien main_notebook_broken_files = Defekte Dateien
main_notebook_bad_extensions = Falsche Erweiterungen main_notebook_bad_extensions = Falsche Erweiterungen
@ -139,10 +139,10 @@ upper_manual_add_excluded_button_tooltip =
/home/roman;/home/krokiet wird zwei Verzeichnisse /home/roman und /home/keokiet hinzufügen /home/roman;/home/krokiet wird zwei Verzeichnisse /home/roman und /home/keokiet hinzufügen
upper_add_excluded_button_tooltip = Verzeichnis hinzufügen, das bei der Suche ausgeschlossen werden soll. upper_add_excluded_button_tooltip = Verzeichnis hinzufügen, das bei der Suche ausgeschlossen werden soll.
upper_remove_excluded_button_tooltip = Verzeichnis von ausgeschlossen löschen. upper_remove_excluded_button_tooltip = Ausgeschlossene Verzeichnisse löschen.
upper_notebook_items_configuration = Artikelkonfiguration upper_notebook_items_configuration = Suchbedingungen
upper_notebook_excluded_directories = Ausgeschlossene Verzeichnisse upper_notebook_excluded_directories = Ausgeschlossene Verzeichnisse
upper_notebook_included_directories = Inklusive Verzeichnisse upper_notebook_included_directories = Einbezogene Verzeichnisse
upper_allowed_extensions_tooltip = upper_allowed_extensions_tooltip =
Erlaubte Erweiterungen müssen durch Kommas getrennt werden (standardmäßig sind alle verfügbar). Erlaubte Erweiterungen müssen durch Kommas getrennt werden (standardmäßig sind alle verfügbar).
@ -224,6 +224,11 @@ bottom_hardlink_button_tooltip =
Erstelle Hardlinks. Erstelle Hardlinks.
Funktioniert nur, wenn mindestens zwei Ergebnisse einer Gruppe ausgewählt sind. Funktioniert nur, wenn mindestens zwei Ergebnisse einer Gruppe ausgewählt sind.
Das Erste bleibt dabei unverändert, und das Zweite und alle Weiteren werden zu Hardlinks auf das Erste umgewandelt. Das Erste bleibt dabei unverändert, und das Zweite und alle Weiteren werden zu Hardlinks auf das Erste umgewandelt.
bottom_hardlink_button_not_available_tooltip =
Create hardlinks.
Button is disabled, because hardlinks cannot be created.
Hardlinks only works with administrator privileges on Windows, so be sure to run app as administrator.
If app already works with such privileges check for similar issues on Github.
bottom_move_button_tooltip = bottom_move_button_tooltip =
Verschiebt Dateien in den ausgewählten Ordner. Verschiebt Dateien in den ausgewählten Ordner.
Kopiert alle Dateien in den Ordner, ohne den Verzeichnisbaum zu erhalten. Kopiert alle Dateien in den Ordner, ohne den Verzeichnisbaum zu erhalten.
@ -251,6 +256,9 @@ header_about_button_tooltip = Öffnet den Dialog mit Informationen über die App
## General ## General
settings_number_of_threads = Number of used threads
settings_number_of_threads_tooltip = Number of used threads, 0 means that all available threads will be used.
settings_label_restart = You need to restart app to apply settings!
settings_ignore_other_filesystems = Andere Dateisysteme ignorieren (nur Linux) settings_ignore_other_filesystems = Andere Dateisysteme ignorieren (nur Linux)
settings_ignore_other_filesystems_tooltip = settings_ignore_other_filesystems_tooltip =
ignoriert Dateien, die nicht im selben Dateisystem sind wie durchsuchte Verzeichnisse. ignoriert Dateien, die nicht im selben Dateisystem sind wie durchsuchte Verzeichnisse.
@ -375,7 +383,7 @@ progress_scanning_music_tags = Lese Tags von { $file_checked }/{ $all_files } Mu
progress_scanning_empty_folders = Scanne { $folder_number } Ordner progress_scanning_empty_folders = Scanne { $folder_number } Ordner
progress_scanning_size = Scanne Größe der { $file_number } Datei progress_scanning_size = Scanne Größe der { $file_number } Datei
progress_scanning_name = Scanne Name der { $file_number } Datei progress_scanning_name = Scanne Name der { $file_number } Datei
progress_analyzed_partial_hash = Analysierter Teilhash von { $file_checked }/{ $all_files } Dateien progress_analyzed_partial_hash = Teilhash von { $file_checked }/{ $all_files } Dateien analysiert
progress_analyzed_full_hash = Analysiert voller Hash von { $file_checked }/{ $all_files } Dateien progress_analyzed_full_hash = Analysiert voller Hash von { $file_checked }/{ $all_files } Dateien
progress_current_stage = Aktuelle Stufe:{ " " } progress_current_stage = Aktuelle Stufe:{ " " }
progress_all_stages = Alle Stufen:{ " " } progress_all_stages = Alle Stufen:{ " " }
@ -384,9 +392,9 @@ saving_loading_saving_success = Konfiguration in Datei { $name } gespeichert.
saving_loading_saving_failure = Konfigurationsdaten konnten nicht in Datei { $name } gespeichert werden. saving_loading_saving_failure = Konfigurationsdaten konnten nicht in Datei { $name } gespeichert werden.
saving_loading_reset_configuration = Aktuelle Konfiguration wurde gelöscht. saving_loading_reset_configuration = Aktuelle Konfiguration wurde gelöscht.
saving_loading_loading_success = Richtig geladene App-Konfiguration. saving_loading_loading_success = Richtig geladene App-Konfiguration.
saving_loading_invalid_string = Für Schlüssel "{ $key }" fand ungültiges Ergebnis - "{ $result }" das keine Zeichenkette ist. saving_loading_invalid_string = Für Schlüssel "{ $key }" ungültiges Ergebnis gefunden: "{ $result }", welches keine Zeichenkette ist.
saving_loading_invalid_int = Für Schlüssel "{ $key }" fand ungültiges Ergebnis - "{ $result }" das keine ganze Zahl ist. saving_loading_invalid_int = Für Schlüssel "{ $key }" ungültiges Ergebnis gefunden: "{ $result }", welches keine ganze Zahl ist.
saving_loading_invalid_bool = Für Schlüssel "{ $key }" fand ungültiges Ergebnis - "{ $result }" das kein Bool. saving_loading_invalid_bool = Für Schlüssel "{ $key }" ungültiges Ergebnis gefunden: "{ $result }", welches kein Boolean ist.
saving_loading_decode_problem_bool = Fehler beim Dekodieren des Bools von Schlüssel "{ $key }" gefunden "{ $result }" aber erlaubte Werte sind 0, 1, true oder false. saving_loading_decode_problem_bool = Fehler beim Dekodieren des Bools von Schlüssel "{ $key }" gefunden "{ $result }" aber erlaubte Werte sind 0, 1, true oder false.
saving_loading_saving_same_keys = Versucht die Einstellung mit doppelter Taste "{ $key } " zu speichern. saving_loading_saving_same_keys = Versucht die Einstellung mit doppelter Taste "{ $key } " zu speichern.
saving_loading_failed_to_get_home_directory = Home-Verzeichnis konnte nicht zum Öffnen und Speichern der Konfigurationsdatei geladen werden. saving_loading_failed_to_get_home_directory = Home-Verzeichnis konnte nicht zum Öffnen und Speichern der Konfigurationsdatei geladen werden.
@ -406,7 +414,7 @@ searching_for_data = Suche nach Daten, es kann eine Weile dauern, bitte warten..
text_view_messages = NACHRICHT text_view_messages = NACHRICHT
text_view_warnings = WARNUNGEN text_view_warnings = WARNUNGEN
text_view_errors = FEHLER text_view_errors = FEHLER
about_window_motto = Dieses Programm ist kostenlos zu benutzen und wird es immer sein. about_window_motto = Dieses Programm ist kostenlos zu benutzen und wird immer frei sein.
# Various dialog # Various dialog
dialogs_ask_next_time = Nächstes Mal fragen dialogs_ask_next_time = Nächstes Mal fragen
delete_file_failed = Fehler beim Entfernen der Datei { $name }, aufgrund von { $reason } delete_file_failed = Fehler beim Entfernen der Datei { $name }, aufgrund von { $reason }
@ -436,10 +444,10 @@ search_not_choosing_any_broken_files = FEHLER: Sie müssen mindestens ein Kontro
include_folders_dialog_title = Einbezogene Ordner include_folders_dialog_title = Einbezogene Ordner
exclude_folders_dialog_title = Ausgeschlossene Ordner exclude_folders_dialog_title = Ausgeschlossene Ordner
include_manually_directories_dialog_title = Verzeichnis manuell hinzufügen include_manually_directories_dialog_title = Verzeichnis manuell hinzufügen
cache_properly_cleared = Richtig geleerter Cache cache_properly_cleared = Cache vollständig geleert
cache_clear_duplicates_title = Leere Duplikaten-Cache cache_clear_duplicates_title = Leere Duplikate-Cache
cache_clear_similar_images_title = Leere ähnlichen Bildercache cache_clear_similar_images_title = Leere Bilder-Cache
cache_clear_similar_videos_title = Lösche ähnlichen Videocache cache_clear_similar_videos_title = Leere Video-Cache
cache_clear_message_label_1 = Wollen Sie veraltete Einträge aus dem Cache löschen? cache_clear_message_label_1 = Wollen Sie veraltete Einträge aus dem Cache löschen?
cache_clear_message_label_2 = Dieser Vorgang entfernt alle Cache-Einträge, die auf ungültige Dateien verweisen. cache_clear_message_label_2 = Dieser Vorgang entfernt alle Cache-Einträge, die auf ungültige Dateien verweisen.
cache_clear_message_label_3 = Dies kann das Laden und Speichern zum Cache leicht beschleunigen. cache_clear_message_label_3 = Dies kann das Laden und Speichern zum Cache leicht beschleunigen.

View file

@ -263,6 +263,11 @@ bottom_hardlink_button_tooltip =
Create hardlinks. Create hardlinks.
Only works when at least two results in a group are selected. Only works when at least two results in a group are selected.
First is unchanged and second and later are hardlinked to first. First is unchanged and second and later are hardlinked to first.
bottom_hardlink_button_not_available_tooltip =
Create hardlinks.
Button is disabled, because hardlinks cannot be created.
Hardlinks only works with administrator privileges on Windows, so be sure to run app as administrator.
If app already works with such privileges check for similar issues on Github.
bottom_move_button_tooltip = bottom_move_button_tooltip =
Moves files to chosen directory. Moves files to chosen directory.
It copies all files to the directory without preserving the directory tree. It copies all files to the directory without preserving the directory tree.

View file

@ -45,7 +45,7 @@ duplicate_check_method_tooltip =
image_hash_size_tooltip = image_hash_size_tooltip =
Cada imagen comprobada produce un hash especial que se puede comparar entre sí, y la pequeña diferencia entre ellas significa que estas imágenes son similares. Cada imagen comprobada produce un hash especial que se puede comparar entre sí, y la pequeña diferencia entre ellas significa que estas imágenes son similares.
El tamaño de 8 hash es bastante bueno para encontrar imágenes que son poco similares a las originales. Con un conjunto más grande de imágenes (>1000) producirá una gran cantidad de falsos positivos, así que recomiendo usar para tal cantidad mayor de tamaño de hash. El tamaño de 8 hash es bastante bueno para encontrar imágenes que son poco similares a las originales. Con un conjunto más grande de imágenes(>1000) producirá una gran cantidad de falsos positivos, así que recomiendo usar para tal cantidad mayor de tamaño de hash.
16 es el tamaño predeterminado del hash, lo cual es bastante bueno entre encontrar incluso un poco de imágenes similares y tener una pequeña cantidad de colisiones hash. 16 es el tamaño predeterminado del hash, lo cual es bastante bueno entre encontrar incluso un poco de imágenes similares y tener una pequeña cantidad de colisiones hash.
@ -225,6 +225,11 @@ bottom_hardlink_button_tooltip =
Crear enlaces hardlinks. Crear enlaces hardlinks.
Solo funciona cuando al menos dos resultados en grupo son seleccionados. Solo funciona cuando al menos dos resultados en grupo son seleccionados.
El primero no ha cambiado y el segundo y más tarde están enlazados por hardlinks a la primera. El primero no ha cambiado y el segundo y más tarde están enlazados por hardlinks a la primera.
bottom_hardlink_button_not_available_tooltip =
Create hardlinks.
Button is disabled, because hardlinks cannot be created.
Hardlinks only works with administrator privileges on Windows, so be sure to run app as administrator.
If app already works with such privileges check for similar issues on Github.
bottom_move_button_tooltip = bottom_move_button_tooltip =
Mover los archivos a la carpeta elegida. Mover los archivos a la carpeta elegida.
Copia todos los archivos a la carpeta sin preservar el árbol de directorios. Copia todos los archivos a la carpeta sin preservar el árbol de directorios.
@ -252,6 +257,9 @@ header_about_button_tooltip = Abre el diálogo con información sobre la aplicac
## General ## General
settings_number_of_threads = Number of used threads
settings_number_of_threads_tooltip = Number of used threads, 0 means that all available threads will be used.
settings_label_restart = You need to restart app to apply settings!
settings_ignore_other_filesystems = Ignorar otros sistemas de ficheros (sólo Linux) settings_ignore_other_filesystems = Ignorar otros sistemas de ficheros (sólo Linux)
settings_ignore_other_filesystems_tooltip = settings_ignore_other_filesystems_tooltip =
ignora los archivos que no están en el mismo sistema de archivos que los directorios buscados. ignora los archivos que no están en el mismo sistema de archivos que los directorios buscados.

View file

@ -45,7 +45,7 @@ duplicate_check_method_tooltip =
image_hash_size_tooltip = image_hash_size_tooltip =
Chaque image vérifiée produit un hachage spécial qui peut être comparé entre les autres, et une petite différence entre elles signifie que ces images sont similaires. Chaque image vérifiée produit un hachage spécial qui peut être comparé entre les autres, et une petite différence entre elles signifie que ces images sont similaires.
La taille de 8 hachages est assez bonne pour trouver des images qui ne sont que peu similaires à l'original. Avec un plus grand ensemble d'images (>1000) produira une grande quantité de faux positifs, je recommande donc d'utiliser pour une telle quantité plus grande taille de hachage. La taille de 8 hachages est assez bonne pour trouver des images qui ne sont que peu similaires à l'original. Avec un plus grand ensemble d'images(>1000) produira une grande quantité de faux positifs, je recommande donc d'utiliser pour une telle quantité plus grande taille de hachage.
16 est la taille de hachage par défaut, ce qui est assez bon compromis entre trouver même un peu d'images similaires et avoir peu de collisions de hachage. 16 est la taille de hachage par défaut, ce qui est assez bon compromis entre trouver même un peu d'images similaires et avoir peu de collisions de hachage.
@ -225,6 +225,11 @@ bottom_hardlink_button_tooltip =
Créer des liens durs. Créer des liens durs.
Ne fonctionne que si au moins deux résultats dans un groupe sont sélectionnés. Ne fonctionne que si au moins deux résultats dans un groupe sont sélectionnés.
Le premier est inchangé et le second et plus tard sont hardliés au premier. Le premier est inchangé et le second et plus tard sont hardliés au premier.
bottom_hardlink_button_not_available_tooltip =
Create hardlinks.
Button is disabled, because hardlinks cannot be created.
Hardlinks only works with administrator privileges on Windows, so be sure to run app as administrator.
If app already works with such privileges check for similar issues on Github.
bottom_move_button_tooltip = bottom_move_button_tooltip =
Déplace les fichiers vers le répertoire choisi. Déplace les fichiers vers le répertoire choisi.
Il copie tous les fichiers dans le répertoire sans préserver l'arborescence des répertoires. Il copie tous les fichiers dans le répertoire sans préserver l'arborescence des répertoires.
@ -252,6 +257,9 @@ header_about_button_tooltip = Ouvre la boîte de dialogue avec les informations
## General ## General
settings_number_of_threads = Number of used threads
settings_number_of_threads_tooltip = Number of used threads, 0 means that all available threads will be used.
settings_label_restart = You need to restart app to apply settings!
settings_ignore_other_filesystems = Ignorer les autres systèmes de fichiers (uniquement Linux) settings_ignore_other_filesystems = Ignorer les autres systèmes de fichiers (uniquement Linux)
settings_ignore_other_filesystems_tooltip = settings_ignore_other_filesystems_tooltip =
ignore les fichiers qui ne sont pas dans le même système de fichiers que les répertoires recherchés. ignore les fichiers qui ne sont pas dans le même système de fichiers que les répertoires recherchés.

View file

@ -224,6 +224,11 @@ bottom_hardlink_button_tooltip =
Crea collegamenti fisici. Crea collegamenti fisici.
Funziona solo quando sono selezionati almeno due risultati in un gruppo. Funziona solo quando sono selezionati almeno due risultati in un gruppo.
Il primo è invariato e il secondo e poi sono hardlinked al primo. Il primo è invariato e il secondo e poi sono hardlinked al primo.
bottom_hardlink_button_not_available_tooltip =
Create hardlinks.
Button is disabled, because hardlinks cannot be created.
Hardlinks only works with administrator privileges on Windows, so be sure to run app as administrator.
If app already works with such privileges check for similar issues on Github.
bottom_move_button_tooltip = bottom_move_button_tooltip =
Sposta i file nella directory scelta. Sposta i file nella directory scelta.
Copia tutti i file nella directory senza conservare l'albero delle directory. Copia tutti i file nella directory senza conservare l'albero delle directory.
@ -251,6 +256,9 @@ header_about_button_tooltip = Apre la finestra delle informazioni sul programma.
## General ## General
settings_number_of_threads = Number of used threads
settings_number_of_threads_tooltip = Number of used threads, 0 means that all available threads will be used.
settings_label_restart = You need to restart app to apply settings!
settings_ignore_other_filesystems = Ignora altri filesystem (solo Linux) settings_ignore_other_filesystems = Ignora altri filesystem (solo Linux)
settings_ignore_other_filesystems_tooltip = settings_ignore_other_filesystems_tooltip =
ignora i file che non sono nello stesso file system delle directory cercate. ignora i file che non sono nello stesso file system delle directory cercate.

View file

@ -101,7 +101,7 @@ main_tree_view_column_proper_extensions = 適切な拡張
main_label_check_method = メソッドのチェック main_label_check_method = メソッドのチェック
main_label_hash_type = ハッシュ方式 main_label_hash_type = ハッシュ方式
main_label_hash_size = ハッシュサイズ main_label_hash_size = ハッシュサイズ
main_label_size_bytes = サイズ (バイト) main_label_size_bytes = サイズ(バイト)
main_label_min_size = 最小値 main_label_min_size = 最小値
main_label_max_size = 最大値 main_label_max_size = 最大値
main_label_shown_files = 表示するファイルの数 main_label_shown_files = 表示するファイルの数
@ -225,6 +225,11 @@ bottom_hardlink_button_tooltip =
ハードリンクを作成します。 ハードリンクを作成します。
グループ内の2つ以上の結果が選択されている場合にのみ機能します。 グループ内の2つ以上の結果が選択されている場合にのみ機能します。
最初の結果は変更されず、2番目以降の結果が最初の結果にハードリンクされます。 最初の結果は変更されず、2番目以降の結果が最初の結果にハードリンクされます。
bottom_hardlink_button_not_available_tooltip =
Create hardlinks.
Button is disabled, because hardlinks cannot be created.
Hardlinks only works with administrator privileges on Windows, so be sure to run app as administrator.
If app already works with such privileges check for similar issues on Github.
bottom_move_button_tooltip = bottom_move_button_tooltip =
選択したフォルダにファイルを移動します。 選択したフォルダにファイルを移動します。
ディレクトリツリーを維持したまま、すべてのファイルをフォルダにコピーします。 ディレクトリツリーを維持したまま、すべてのファイルをフォルダにコピーします。
@ -252,7 +257,10 @@ header_about_button_tooltip = アプリに関する情報を含むダイアロ
## General ## General
settings_ignore_other_filesystems = 他のファイルシステムを無視 (Linuxのみ) settings_number_of_threads = Number of used threads
settings_number_of_threads_tooltip = Number of used threads, 0 means that all available threads will be used.
settings_label_restart = You need to restart app to apply settings!
settings_ignore_other_filesystems = 他のファイルシステムを無視(Linuxのみ)
settings_ignore_other_filesystems_tooltip = settings_ignore_other_filesystems_tooltip =
検索されたディレクトリと同じファイルシステムにないファイルを無視します。 検索されたディレクトリと同じファイルシステムにないファイルを無視します。
@ -314,7 +322,7 @@ settings_duplicates_minimal_size_entry_tooltip =
値を小さくするとキャッシュが生成されるレコードが増え検索が高速化しますが、キャッシュの読み込みと保存が遅くなります。 値を小さくするとキャッシュが生成されるレコードが増え検索が高速化しますが、キャッシュの読み込みと保存が遅くなります。
settings_duplicates_prehash_checkbutton_tooltip = settings_duplicates_prehash_checkbutton_tooltip =
プレハッシュ (ファイルの一部から計算したハッシュ) のキャッシュを有効にし、重複していない検索結果をより早く捨てられるようにします。 プレハッシュ(ファイルの一部から計算したハッシュ) のキャッシュを有効にし、重複していない検索結果をより早く捨てられるようにします。
いくつかの場面では低速化の要因になりうるので、この機能はデフォルトでは無効になっています。 いくつかの場面では低速化の要因になりうるので、この機能はデフォルトでは無効になっています。

View file

@ -47,7 +47,7 @@ image_hash_size_tooltip =
해시 크기 8은 원본과 유사도가 낮은 이미지까지 찾는 데 좋습니다. 하지만 1,000개를 넘어가는 이미지들을 서로 비교할 경우, 거짓 양성 반응이 나타날 가능성이 큽니다. 따라서 그런 경우에는 적당히 큰 값을 사용하는 것이 좋습니다. 해시 크기 8은 원본과 유사도가 낮은 이미지까지 찾는 데 좋습니다. 하지만 1,000개를 넘어가는 이미지들을 서로 비교할 경우, 거짓 양성 반응이 나타날 가능성이 큽니다. 따라서 그런 경우에는 적당히 큰 값을 사용하는 것이 좋습니다.
해시 크기 32와 64는 오로지 매우 비슷한 이미지만 찾아내며, 거짓 양성 반응이 거의 나타나지 않습니다 (다만 알파 채널을 가진 이미지의 경우 나타날 수 있습니다). 해시 크기 32와 64는 오로지 매우 비슷한 이미지만 찾아내며, 거짓 양성 반응이 거의 나타나지 않습니다(다만 알파 채널을 가진 이미지의 경우 나타날 수 있습니다).
image_resize_filter_tooltip = image_resize_filter_tooltip =
이미지의 해시를 계산하기 위해서, 먼저 이미지의 크기를 조절해야 합니다. 이미지의 해시를 계산하기 위해서, 먼저 이미지의 크기를 조절해야 합니다.
@ -143,13 +143,13 @@ upper_notebook_items_configuration = 항목 설정
upper_notebook_excluded_directories = 제외할 디렉터리 upper_notebook_excluded_directories = 제외할 디렉터리
upper_notebook_included_directories = 검색할 디렉터리 upper_notebook_included_directories = 검색할 디렉터리
upper_allowed_extensions_tooltip = upper_allowed_extensions_tooltip =
허용할 확장자는 콤마 (',') 를 통해 구분해야 합니다. (기본값인 경우 모든 확장자를 허용합니다.) 허용할 확장자는 콤마(',')를 통해 구분해야 합니다. (기본값인 경우 모든 확장자를 허용합니다.)
IMAGE, VIDEO, MUSIC, TEXT를 입력할 경우 해당하는 파일을 모두 지칭할 수 있습니다. IMAGE, VIDEO, MUSIC, TEXT를 입력할 경우 해당하는 파일을 모두 지칭할 수 있습니다.
예시: ".exe, IMAGE, VIDEO, .rar, 7z" - 이와 같이 입력하면, 이미지 파일 (예. jpg, png), 영상 파일 (예. avi, mp4), exe, rar, 그리고 7z 파일을 검색합니다. 예시: ".exe, IMAGE, VIDEO, .rar, 7z" - 이와 같이 입력하면, 이미지 파일(예. jpg, png), 영상 파일(예. avi, mp4), exe, rar, 그리고 7z 파일을 검색합니다.
upper_excluded_items_tooltip = upper_excluded_items_tooltip =
제외할 항목은 반드시 '*' 와일드카드 문자를 사용해서 추가해야 하며, 콤마 (',') 로 구분되어야 합니다. 제외할 항목은 반드시 '*' 와일드카드 문자를 사용해서 추가해야 하며, 콤마(',')로 구분되어야 합니다.
디렉터리를 직접 제외하는 것보다 느립니다. 주의해서 사용하세요. 디렉터리를 직접 제외하는 것보다 느립니다. 주의해서 사용하세요.
upper_excluded_items = 제외할 항목: upper_excluded_items = 제외할 항목:
upper_allowed_extensions = 허용할 확장자: upper_allowed_extensions = 허용할 확장자:
@ -223,6 +223,11 @@ bottom_hardlink_button_tooltip =
하드 링크를 생성합니다. 하드 링크를 생성합니다.
그룹 내에서 최소한 2개의 파일이 선택되어 있어야 합니다. 그룹 내에서 최소한 2개의 파일이 선택되어 있어야 합니다.
첫 번째 파일은 그대로 남으며, 두 번째 이후 파일은 첫 번째 파일로 향하는 하드 링크가 됩니다. 첫 번째 파일은 그대로 남으며, 두 번째 이후 파일은 첫 번째 파일로 향하는 하드 링크가 됩니다.
bottom_hardlink_button_not_available_tooltip =
Create hardlinks.
Button is disabled, because hardlinks cannot be created.
Hardlinks only works with administrator privileges on Windows, so be sure to run app as administrator.
If app already works with such privileges check for similar issues on Github.
bottom_move_button_tooltip = bottom_move_button_tooltip =
선택된 디렉터리로 파일을 이동합니다. 선택된 디렉터리로 파일을 이동합니다.
이 동작은 원본이 위치한 경로를 전부 무시하고, 선택한 경로로 파일을 전부 복사합니다. 이 동작은 원본이 위치한 경로를 전부 무시하고, 선택한 경로로 파일을 전부 복사합니다.
@ -250,7 +255,10 @@ header_about_button_tooltip = 이 앱에 대한 정보창을 엽니다.
## General ## General
settings_ignore_other_filesystems = 다른 파일시스템 무시 (Linux에서만) settings_number_of_threads = Number of used threads
settings_number_of_threads_tooltip = Number of used threads, 0 means that all available threads will be used.
settings_label_restart = You need to restart app to apply settings!
settings_ignore_other_filesystems = 다른 파일시스템 무시(Linux에서만)
settings_ignore_other_filesystems_tooltip = settings_ignore_other_filesystems_tooltip =
검색할 디렉터리와 파일시스템이 다른 디렉터리를 무시합니다. 검색할 디렉터리와 파일시스템이 다른 디렉터리를 무시합니다.
@ -282,7 +290,7 @@ settings_multiple_delete_outdated_cache_checkbutton = 만료된 파일을 캐시
settings_multiple_delete_outdated_cache_checkbutton_tooltip = settings_multiple_delete_outdated_cache_checkbutton_tooltip =
더 이상 존재하지 않는 파일에 대한 정보를 캐시에서 삭제합니다. 더 이상 존재하지 않는 파일에 대한 정보를 캐시에서 삭제합니다.
이 옵션이 켜져 있으면, 프로그램은 존재하는 파일만이 캐시에 남도록 할 것입니다 (망가진 파일은 무시됩니다). 이 옵션이 켜져 있으면, 프로그램은 존재하는 파일만이 캐시에 남도록 할 것입니다(망가진 파일은 무시됩니다).
이 옵션을 끄는 것은 외장 저장장치에 존재하는 파일을 스캔했을 때, 외장 저장장치에 있는 파일에 대한 캐시를 보존하는 데 도움이 됩니다. 이 옵션을 끄는 것은 외장 저장장치에 존재하는 파일을 스캔했을 때, 외장 저장장치에 있는 파일에 대한 캐시를 보존하는 데 도움이 됩니다.
@ -312,7 +320,7 @@ settings_duplicates_minimal_size_entry_tooltip =
이 값이 작을 수록 더 많은 파일이 캐시에 저장됩니다. 이 경우 검색은 더 빨라지지만, 캐시 저장 및 불러오기는 느려집니다. 이 값이 작을 수록 더 많은 파일이 캐시에 저장됩니다. 이 경우 검색은 더 빨라지지만, 캐시 저장 및 불러오기는 느려집니다.
settings_duplicates_prehash_checkbutton_tooltip = settings_duplicates_prehash_checkbutton_tooltip =
사전 해시 (파일 일부만으로 계산되는 해시) 에 대한 캐싱을 허용하여, 중복이 아닌 파일을 더 빠르게 결과에서 제거합니다. 사전 해시(파일 일부만으로 계산되는 해시)에 대한 캐싱을 허용하여, 중복이 아닌 파일을 더 빠르게 결과에서 제거합니다.
이 옵션은 일부 상황에서 검색을 느리게 하기 때문에, 기본적으로 꺼져 있습니다. 이 옵션은 일부 상황에서 검색을 느리게 하기 때문에, 기본적으로 꺼져 있습니다.

View file

@ -45,7 +45,7 @@ duplicate_check_method_tooltip =
image_hash_size_tooltip = image_hash_size_tooltip =
Hvert avmerket bilde produserer spesielle hash som kan sammenlignes med hverandre, og en liten forskjell mellom dem betyr at dette bildet er likt. Hvert avmerket bilde produserer spesielle hash som kan sammenlignes med hverandre, og en liten forskjell mellom dem betyr at dette bildet er likt.
8 hash-størrelse er ganske bra for å finne bilder som er lite likt original. Med et større sett med bilder (>1000) vil jeg gi store mengder falske positive, så jeg anbefaler å bruke for så mye større hash-størrelse. 8 hash-størrelse er ganske bra for å finne bilder som er lite likt original. Med et større sett med bilder(>1000) vil jeg gi store mengder falske positive, så jeg anbefaler å bruke for så mye større hash-størrelse.
16 er standard hash-størrelse som er ganske godt kompromiss mellom å finne enda litt lignende bilder og å ha en liten mengde hash-kollisjoner. 16 er standard hash-størrelse som er ganske godt kompromiss mellom å finne enda litt lignende bilder og å ha en liten mengde hash-kollisjoner.
@ -225,6 +225,11 @@ bottom_hardlink_button_tooltip =
Opprette fastkoblinger. Opprette fastkoblinger.
Virker bare når minst to resultater i en gruppe er valgt. Virker bare når minst to resultater i en gruppe er valgt.
Først er uendret og annet og senere er vanskelig knyttet til først. Først er uendret og annet og senere er vanskelig knyttet til først.
bottom_hardlink_button_not_available_tooltip =
Create hardlinks.
Button is disabled, because hardlinks cannot be created.
Hardlinks only works with administrator privileges on Windows, so be sure to run app as administrator.
If app already works with such privileges check for similar issues on Github.
bottom_move_button_tooltip = bottom_move_button_tooltip =
Flytter filer til valgt mappe. Flytter filer til valgt mappe.
Den kopierer alle filer til mappen uten å lagre mappetreet. Den kopierer alle filer til mappen uten å lagre mappetreet.
@ -252,6 +257,9 @@ header_about_button_tooltip = Åpner dialog med info om app.
## General ## General
settings_number_of_threads = Number of used threads
settings_number_of_threads_tooltip = Number of used threads, 0 means that all available threads will be used.
settings_label_restart = You need to restart app to apply settings!
settings_ignore_other_filesystems = Ignorer andre filsystemer (bare Linux) settings_ignore_other_filesystems = Ignorer andre filsystemer (bare Linux)
settings_ignore_other_filesystems_tooltip = settings_ignore_other_filesystems_tooltip =
ignorerer filer som ikke er i samme filsystem som søk-kataloger. ignorerer filer som ikke er i samme filsystem som søk-kataloger.

View file

@ -27,13 +27,13 @@ duplicate_mode_name_combo_box = Nazwa
duplicate_mode_size_combo_box = Rozmiar duplicate_mode_size_combo_box = Rozmiar
duplicate_mode_hash_combo_box = Hash duplicate_mode_hash_combo_box = Hash
duplicate_hash_type_tooltip = duplicate_hash_type_tooltip =
Czkawka oferuje 3 typy hashów: Czkawka oferuje 3 rodzaje hashów:
Blake3 - kryptograficzna funkcja skrótu. Domyślnie używane, ponieważ jest bardzo szybkie. Blake3 - kryptograficzna funkcja skrótu. Jest to wartość domyślna, ponieważ jest bardzo szybka.
CRC32 - prosta funkcja haszująca. Powinna być szybsza niż Blake3, lecz bardzo rzadko może prowadzić do kolizji haszów. CRC32 - prosta funkcja haszująca. Powinno to być szybsze od Blake3, ale bardzo rzadko może to prowadzić do kolizji.
XXH3 - bardzo podobna pod względem wydajności i jakości do Blake3 (lecz nie jest kryptograficzna). XXH3 - bardzo podobna pod względem wydajności i jakości hashu do Blake3 (ale niekryptograficzna). Tak więc takie tryby mogą być łatwo wymienione.
duplicate_check_method_tooltip = duplicate_check_method_tooltip =
Na razie Czkawka oferuje trzy typy metod do znalezienia duplikatów przez: Na razie Czkawka oferuje trzy typy metod do znalezienia duplikatów przez:
@ -41,17 +41,17 @@ duplicate_check_method_tooltip =
Rozmiar - Znajduje pliki o tym samym rozmiarze. Rozmiar - Znajduje pliki o tym samym rozmiarze.
Hash - Znajduje pliki, które mają tę samą zawartość. Ten tryb haszuje plik, a następnie porównuje utworzony skrót (hash) aby znaleźć duplikaty. Ten tryb jest najbezpieczniejszym sposobem na znalezienie duplikatów. Aplikacja używa pamięci podręcznej, więc drugie i kolejne skanowanie tych samych danych powinno być dużo szybsze niż za pierwszym razem. Hash - Znajduje pliki, które mają tę samą zawartość. Ten tryb haszuje plik, a następnie porównuje utworzony skrót(hash) aby znaleźć duplikaty. Ten tryb jest najbezpieczniejszym sposobem na znalezienie duplikatów. Aplikacja używa pamięci podręcznej, więc drugie i kolejne skanowanie tych samych danych powinno być dużo szybsze niż za pierwszym razem.
image_hash_size_tooltip = image_hash_size_tooltip =
Każdy sprawdzony obraz generuje hash, który można porównać z innymi a niewielka różnica między nimi oznacza, że te obrazy są podobne. Każdy sprawdzony obraz generuje hash, który można porównać z innymi a niewielka różnica między nimi oznacza, że te obrazy są podobne.
Hash wielkości 8 jest dość dobry do wyszukiwania obrazów, które są tylko niewiele podobne do oryginału. Z większą ilością obrazów (>1000) będzie generować dużą ilość niepoprawnych wyników, więc w takim przypadku zalecam użycie większego hashu. Hash wielkości 8 jest dość dobry do wyszukiwania obrazów, które są tylko niewiele podobne do oryginału. Z większą ilością obrazów(>1000) będzie generować dużą ilość niepoprawnych wyników, więc w takim przypadku zalecam użycie większego hashu.
16 to domyślny rozmiar hashu, który jest całkiem dobrym kompromisem między znalezieniem nawet nieco podobnych obrazów a niewielkim poziomem kolizji pomiędzy nimi. 16 to domyślny rozmiar hashu, który jest całkiem dobrym kompromisem między znalezieniem nawet nieco podobnych obrazów a niewielkim poziomem kolizji pomiędzy nimi.
32 i 64 znajdują tylko bardzo podobne zdjęcia, ale prawie nie powinny mieć kolizji (może z wyjątkiem niektórych obrazów z kanałem alfa (przezroczystością)). 32 i 64 znajdują tylko bardzo podobne zdjęcia, ale prawie nie powinny mieć kolizji (może z wyjątkiem niektórych obrazów z kanałem alfa(przezroczystością)).
image_resize_filter_tooltip = image_resize_filter_tooltip =
Aby obliczyć hash obrazu, biblioteka musi najpierw zmienić (zwykle zmniejszyć) jego rozmiar. Aby obliczyć hash obrazu, biblioteka musi najpierw zmienić(zwykle zmniejszyć) jego rozmiar.
W zależności od wybranego algorytmu, zmiejszony obraz użyty do obliczenia skrótu może wyglądać nieco inaczej. W zależności od wybranego algorytmu, zmiejszony obraz użyty do obliczenia skrótu może wyglądać nieco inaczej.
@ -63,7 +63,7 @@ image_hash_alg_tooltip =
Każdy ma zarówno mocniejsze jak i słabsze punkty i czasami daje lepsze a czasami gorsze wyniki dla różnych obrazów. Każdy ma zarówno mocniejsze jak i słabsze punkty i czasami daje lepsze a czasami gorsze wyniki dla różnych obrazów.
Najlepiej jest samemu potestować jaki algorytm ma najlepsze wyniki (może to nie być zawsze dobrze widoczne). Najlepiej jest samemu potestować jaki algorytm ma najlepsze wyniki(może to nie być zawsze dobrze widoczne).
big_files_mode_combobox_tooltip = Pozwala na wyszukiwanie najmniejszych lub największych plików big_files_mode_combobox_tooltip = Pozwala na wyszukiwanie najmniejszych lub największych plików
big_files_mode_label = Sprawdzane pliki big_files_mode_label = Sprawdzane pliki
big_files_mode_smallest_combo_box = Najmniejsze big_files_mode_smallest_combo_box = Najmniejsze
@ -180,7 +180,7 @@ popover_custom_name_check_button_entry_tooltip =
popover_custom_regex_check_button_entry_tooltip = popover_custom_regex_check_button_entry_tooltip =
Wybierz rekordy według określonego Regexa. Wybierz rekordy według określonego Regexa.
W tym trybie wyszukiwanym tekstem jest pełna ścieżka (wraz z nazwą). W tym trybie wyszukiwanym tekstem jest pełna ścieżka(wraz z nazwą).
Przykładowe użycie: Przykładowe użycie:
/usr/bin/ziemniak. xt można znaleźć za pomocą /ziem[a-z]+ /usr/bin/ziemniak. xt można znaleźć za pomocą /ziem[a-z]+
@ -225,6 +225,11 @@ bottom_hardlink_button_tooltip =
Tworzenie twardych linków. Tworzenie twardych linków.
Działa tylko wtedy, gdy wybrano co najmniej dwa rekordy w grupie. Działa tylko wtedy, gdy wybrano co najmniej dwa rekordy w grupie.
Pierwszy jest niezmieniony, drugi i następny jest dowiązywany z pierwszym. Pierwszy jest niezmieniony, drugi i następny jest dowiązywany z pierwszym.
bottom_hardlink_button_not_available_tooltip =
Tworzenie twardych dowiązań.
Przycisk jest zablokowany, gdyż stworzenie twardego dowiązania nie jest możliwe.
Dowiązanie tego rodzaju może tworzyć administrator w systemie Windows, więc należy upewnić się że aplikacja jest uruchomiona przez z tymi uprawnieniami.
Jeśli aplikacja działa z nimi, należy przeszukać issues w Githubie celem znalezienia możliwych rozwiązań danego problemu.
bottom_move_button_tooltip = bottom_move_button_tooltip =
Przenosi pliki do wybranego katalogu. Przenosi pliki do wybranego katalogu.
Kopiuje wszystkie pliki do katalogu bez zachowania struktury plików. Kopiuje wszystkie pliki do katalogu bez zachowania struktury plików.
@ -241,7 +246,7 @@ about_instruction_button_tooltip = Link do strony z instrukcją.
about_translation_button_tooltip = Link do strony Crowdin z tłumaczeniami aplikacji. Oficialnie wspierany jest język polski i angielski. about_translation_button_tooltip = Link do strony Crowdin z tłumaczeniami aplikacji. Oficialnie wspierany jest język polski i angielski.
about_repository_button = Repozytorium about_repository_button = Repozytorium
about_donation_button = Dotacje about_donation_button = Dotacje
about_instruction_button = Instrukcja (ENG) about_instruction_button = Instrukcja(ENG)
about_translation_button = Tłumaczenie about_translation_button = Tłumaczenie
# Header # Header
header_setting_button_tooltip = Otwórz okno z ustawieniami programu. header_setting_button_tooltip = Otwórz okno z ustawieniami programu.
@ -252,6 +257,9 @@ header_about_button_tooltip = Otwórz okno z informacjami o programie.
## General ## General
settings_number_of_threads = Liczba używanych wątków
settings_number_of_threads_tooltip = Liczba używanych wątków, 0 oznacza, że zostaną użyte wszystkie dostępne wątki.
settings_label_restart = Musisz ponownie uruchomić aplikację, aby aplikacja zaciągnęła nowe ustawienia!
settings_ignore_other_filesystems = Ignoruj inne systemy plików (tylko Linux) settings_ignore_other_filesystems = Ignoruj inne systemy plików (tylko Linux)
settings_ignore_other_filesystems_tooltip = settings_ignore_other_filesystems_tooltip =
ignoruje pliki, które nie są w tym samym systemie plików co przeszukiwane katalogi. ignoruje pliki, które nie są w tym samym systemie plików co przeszukiwane katalogi.

View file

@ -225,6 +225,11 @@ bottom_hardlink_button_tooltip =
Criar links hardlinks. Criar links hardlinks.
Só funciona quando pelo menos dois resultados em um grupo são selecionados. Só funciona quando pelo menos dois resultados em um grupo são selecionados.
O primeiro é inalterado e o segundo e posterior são vinculados ao primeiro. O primeiro é inalterado e o segundo e posterior são vinculados ao primeiro.
bottom_hardlink_button_not_available_tooltip =
Create hardlinks.
Button is disabled, because hardlinks cannot be created.
Hardlinks only works with administrator privileges on Windows, so be sure to run app as administrator.
If app already works with such privileges check for similar issues on Github.
bottom_move_button_tooltip = bottom_move_button_tooltip =
Move arquivos para o diretório escolhido. Move arquivos para o diretório escolhido.
Ele copia todos os arquivos para o diretório sem preservar a árvore de diretório. Ele copia todos os arquivos para o diretório sem preservar a árvore de diretório.
@ -252,6 +257,9 @@ header_about_button_tooltip = Abre diálogo com informações sobre o aplicativo
## General ## General
settings_number_of_threads = Number of used threads
settings_number_of_threads_tooltip = Number of used threads, 0 means that all available threads will be used.
settings_label_restart = You need to restart app to apply settings!
settings_ignore_other_filesystems = Ignorar outros sistemas de arquivos (somente Linux) settings_ignore_other_filesystems = Ignorar outros sistemas de arquivos (somente Linux)
settings_ignore_other_filesystems_tooltip = settings_ignore_other_filesystems_tooltip =
ignora arquivos que não estão no mesmo sistema de arquivos que os diretórios pesquisados. ignora arquivos que não estão no mesmo sistema de arquivos que os diretórios pesquisados.

View file

@ -225,6 +225,11 @@ bottom_hardlink_button_tooltip =
Создать жёсткие ссылки. Создать жёсткие ссылки.
Работает, только когда выбрано не менее двух результатов в группе. Работает, только когда выбрано не менее двух результатов в группе.
Первый результат оставляется, а второй и последующие делаются жёсткими ссылками на первый. Первый результат оставляется, а второй и последующие делаются жёсткими ссылками на первый.
bottom_hardlink_button_not_available_tooltip =
Create hardlinks.
Button is disabled, because hardlinks cannot be created.
Hardlinks only works with administrator privileges on Windows, so be sure to run app as administrator.
If app already works with such privileges check for similar issues on Github.
bottom_move_button_tooltip = bottom_move_button_tooltip =
Перемещение файлов в выбранный каталог. Перемещение файлов в выбранный каталог.
Копирует все файлы в папку без сохранения структуры дерева каталогов. Копирует все файлы в папку без сохранения структуры дерева каталогов.
@ -252,6 +257,9 @@ header_about_button_tooltip = Открыть окно с информацией
## General ## General
settings_number_of_threads = Number of used threads
settings_number_of_threads_tooltip = Number of used threads, 0 means that all available threads will be used.
settings_label_restart = You need to restart app to apply settings!
settings_ignore_other_filesystems = Игнорировать другие файловые системы (только Linux) settings_ignore_other_filesystems = Игнорировать другие файловые системы (только Linux)
settings_ignore_other_filesystems_tooltip = settings_ignore_other_filesystems_tooltip =
игнорирует файлы, которые находятся в той же файловой системе, что и поисковые директории. игнорирует файлы, которые находятся в той же файловой системе, что и поисковые директории.
@ -353,7 +361,7 @@ settings_folder_settings_open = Открыть папку настроек
# Compute results # Compute results
compute_stopped_by_user = Поиск был остановлен пользователем compute_stopped_by_user = Поиск был остановлен пользователем
compute_found_duplicates_hash_size = Найдено дубликатов: { $number_files } (групп: { $number_groups }), размер: { $size } compute_found_duplicates_hash_size = Найдено дубликатов: { $number_files } (групп: { $number_groups }), размер: { $size }
compute_found_duplicates_name = Найдено: { $number_files } дубликат (а/ов) (групп: { $number_groups }) compute_found_duplicates_name = Найдено: { $number_files } дубликат(а/ов) (групп: { $number_groups })
compute_found_empty_folders = Найдено пустых папок: { $number_files } compute_found_empty_folders = Найдено пустых папок: { $number_files }
compute_found_empty_files = Найдено пустых файлов: { $number_files } compute_found_empty_files = Найдено пустых файлов: { $number_files }
compute_found_big_files = Найдено больших файлов: { $number_files } compute_found_big_files = Найдено больших файлов: { $number_files }

View file

@ -225,6 +225,11 @@ bottom_hardlink_button_tooltip =
Skapa hardlinks. Skapa hardlinks.
Fungerar endast när minst två resultat i en grupp är valda. Fungerar endast när minst två resultat i en grupp är valda.
Först är oförändrad och andra och senare är hårt länkade till först. Först är oförändrad och andra och senare är hårt länkade till först.
bottom_hardlink_button_not_available_tooltip =
Create hardlinks.
Button is disabled, because hardlinks cannot be created.
Hardlinks only works with administrator privileges on Windows, so be sure to run app as administrator.
If app already works with such privileges check for similar issues on Github.
bottom_move_button_tooltip = bottom_move_button_tooltip =
Flyttar filer till vald katalog. Flyttar filer till vald katalog.
Det kopierar alla filer till katalogen utan att bevara katalogträdet. Det kopierar alla filer till katalogen utan att bevara katalogträdet.
@ -252,6 +257,9 @@ header_about_button_tooltip = Öppnar dialog med info om app.
## General ## General
settings_number_of_threads = Number of used threads
settings_number_of_threads_tooltip = Number of used threads, 0 means that all available threads will be used.
settings_label_restart = You need to restart app to apply settings!
settings_ignore_other_filesystems = Ignorera andra filsystem (endast Linux) settings_ignore_other_filesystems = Ignorera andra filsystem (endast Linux)
settings_ignore_other_filesystems_tooltip = settings_ignore_other_filesystems_tooltip =
ignorerar filer som inte finns i samma filsystem som sökta kataloger. ignorerar filer som inte finns i samma filsystem som sökta kataloger.

View file

@ -1,8 +1,8 @@
# Window titles # Window titles
window_settings_title = Ayarlar window_settings_title = Ayarlar
window_main_title = Czkawka (Hiccup) window_main_title = Czkawka (Hıçkırık)
window_progress_title = Taranıyor window_progress_title = Taranıyor...
window_compare_images = Compare Images window_compare_images = Resimleri Karşılaştır
# General # General
general_ok_button = Tamam general_ok_button = Tamam
general_close_button = Kapat general_close_button = Kapat
@ -10,445 +10,495 @@ general_close_button = Kapat
music_title_checkbox = Başlık music_title_checkbox = Başlık
music_artist_checkbox = Sanatçı music_artist_checkbox = Sanatçı
music_year_checkbox = Yıl music_year_checkbox = Yıl
music_bitrate_checkbox = Bit hızı music_bitrate_checkbox = Bit-hızı
music_genre_checkbox = Müzik Türü music_genre_checkbox = Müzik Türü
music_length_checkbox = Yükseklik music_length_checkbox = Uzunluk
music_comparison_checkbox = Approximate Comparison music_comparison_checkbox = Yaklaşık Karşılaştırma
music_comparison_checkbox_tooltip = music_comparison_checkbox_tooltip =
It searches for similar music files using AI, which uses machine learning to remove parentheses from a phrase. For example, with this option enabled, the files in question will be considered duplicates: Yapay zeka kullanarak benzer müzik dosyalarını arar.
Örneğin, bir tümcenin parantezlerini kaldırmak için makine öğrenimini kullanır.
Bu seçenek etkinleştirildiğinde, söz konusu dosyalar kopya olarak kabul edilecektir:
Świędziżłób --- Świędziżłób (Remix Lato 2021) Geççek <--> Geççek (Tarkan 2022)
duplicate_case_sensitive_name = Büyük/Küçük harfe duyarlı duplicate_case_sensitive_name = Büyük/Küçük harfe Duyarlı
duplicate_case_sensitive_name_tooltip = duplicate_case_sensitive_name_tooltip =
When enabled, group only records when they have exactly same name e.g. Żołd <-> Żołd Etkinleştirilse, dosya adları tam olarak aynı olduğunda eşleştirilir
ve bir grup oluşturulur.
Disabling such option will group names without checking if each letter is same size e.g. żoŁD <-> Żołd fatih.kavalci <--> fatih.kavalci
duplicate_mode_name_combo_box = Ad
duplicate_mode_size_combo_box = Boyut Etkisizleştirilirse, her bir harfin büyük/küçük yazılıp yazılmadığını
duplicate_mode_hash_combo_box = Karma denetlemeden aynı adları eşleyip grup oluşturur.
fatih.kavalci <--> FatiH.KaVaLCi
duplicate_mode_name_combo_box = Ad Karşılaştırma
duplicate_mode_size_combo_box = Boyut Karşılaştırma
duplicate_mode_hash_combo_box = SUÇ (hash) Karşılaştırma
duplicate_hash_type_tooltip = duplicate_hash_type_tooltip =
Czkawka offers 3 types of hashes: Czkawka, 3 tür Sabit Uzunlukta Çıktı (SUÇ) üretimi sunar:
Blake3 - cryptographic hash function. This is the default because it is very fast. Blake3 - kriptografik SUÇ üretim işlevi. Bu varsayılandır çünkü çok hızlıdır.
CRC32 - simple hash function. This should be faster than Blake3, but may very rarely have some collisions. CRC32 - basit SUÇ üretim işlevi. Bu, Blake3'ten daha hızlı olmalıdır,
ancak kimi zaman çakışmalar olabilir.
XXH3 - very similar in performance and hash quality to Blake3 (but non-cryptographic). So, such modes can be easily interchanged. XXH3 - performans ve benzersiz SUÇ üretim kalitesi açısından Blake3'e çok benzer
(ancak kriptografik değildir). Böylece, bu tür modlar kolayca değiştirilebilir.
duplicate_check_method_tooltip = duplicate_check_method_tooltip =
For now, Czkawka offers three types of method to find duplicates by: Czkawka, eş dosyaları bulmak için şimdilik üç tür yöntem sunar:
Name - Finds files which have the same name. Ad Karşılaştırma - Aynı ada sahip dosyaları bulur.
Size - Finds files which have the same size. Boyut Karşılaştırma - Aynı boyuta sahip dosyaları bulur.
Hash - Finds files which have the same content. This mode hashes the file and later compares this hash to find duplicates. This mode is the safest way to find duplicates. App heavily uses cache, so second and further scans of the same data should be a lot of faster than the first. Hash (SUÇ) Karşılaştırma - Aynı içeriğe sahip dosyaları bulur. Bu mod her dosya için
veri analizi sonucu sabit uzunlukta benzersiz birer çıktı üretir ve daha sonra eş doşyaları
bulmak için bu çıktıları karşılaştırır. Bu mod, eş dosyaları bulmanın en güvenli yoludur.
Czkawka, önbelleği yoğun olarak kullanır. Bu nedenle aynı verilerin ikinci ve sonraki taramaları
ilkinden çok daha hızlı olmalıdır.
image_hash_size_tooltip = image_hash_size_tooltip =
Each checked image produce special hash which can be compared with every other, and small difference between them means that this images are similar. Resim dosyalarının karşılaştırılması için her resim dosyasından özel bir hash
(Sabit Uzunluklu Resim Çıktısı : SURÇ) üretilmelidir. İki resmin SURÇ farkı küçük ise
bu resimlerin benzer olduğu anlamına gelir.
8 hash size is quite good to find images that are only little similar to original. With bigger set of images (>1000) will produce big amount of false positives, so I recommend to use for such amount bigger hash size. 8'lik SURÇ boyutu aslına çok az benzeyen resimleri bulmak için oldukça iyidir.
Büyük (>1000) resim kümelerinde çok sayıda hatalı eşleştirme yapacaktır. Bu nedenlenle
büyük resim kümeleri ile çalışırken daha büyük bir SURÇ boyutu kullanmanız önerilir.
16 is default hash size which is quite good compromise between finding even a little similar images and having small amount of hash collisions. 16'lık varsayılan SURÇ boyutu kısa sürede az miktarda hatalı eşleştirme ile
birbirine biraz benzer resimler bulmak için en uygun seçenektir.
32 and 64 hashes finds only very similar images, but almost should not have any false positives (maybe except some images with alpha channel). 32 ve 64'lük SURÇ boyutları yalnızca bir birine çok benzeyen resimleri eşleştirir
ve neredeyse (alfa kanallı kimi resimler dışında) hatalı eşleştirme yapmaz.
image_resize_filter_tooltip = image_resize_filter_tooltip =
To compute hash of image, library must first resize it. Benzer resim dosyaları farklı biçimlerde, farklı boyutlarda, farklı sıkıştırma oranlarında olabilir.
Sabit Uzunluklu Resim Çıktısı (SURÇ) üretimi öncesinde bir algoritma aracılığı ile yeniden boyutlandırılmalıdır.
Depend on chosen algorithm, resulted image used to calculate hash will may looks little different. Seçilen algoritmaya bağlı olarak, elde edilen son görüntü biraz farklı görünecektir.
The fastest algorithm to use, but also one which gives the worst results is Nearest, it is enabled by default, because with 16x16 hash size, lower quality it is not really visible. Kullanılacak en hızlı aynı zamanda en kötü sonuçları veren algoritma Nearest'tir. Yine de varsayılan
olarak etkindir. Çünkü kalite kaybı, 16x16 boyutluk SURÇ üretiminde gerçekten fark edilmez.
With 8x8 hash size is recommended to use different algorithm than Nearest, to have better groups of images. 8x8 boyutluk SURÇ üretimi ile daha iyi eşleştirilmiş resim gruplarına sahip olmak için
Nearest'ten farklı bir algoritma kullanmanız önerilir.
image_hash_alg_tooltip = image_hash_alg_tooltip =
Users can choose from one of many algorithms of calculating the hash. Kullanıcılar, SURÇ oluşturmanın birçok algoritmasından birini seçebilir.
Her birinin hem güçlü hem de zayıf noktaları vardır ve farklı görüntüler için
Each has both strong and weaker points and will sometimes give better and sometimes worse results for different images. bazen daha iyi, bazen daha kötü sonuçlar verir. Bu nedenle, size göre en iyisini belirlemek için
elle test gereklidir.
So, to determine the best one for you, manual testing is required. big_files_mode_combobox_tooltip = Boyut bakımından En Büyük/En Küçük dosyaları aramaya izin verir.
big_files_mode_combobox_tooltip = Allows to search for smallest/biggest files big_files_mode_label = Denetim şekli
big_files_mode_label = Checked files big_files_mode_smallest_combo_box = En Küçük
big_files_mode_smallest_combo_box = The Smallest big_files_mode_biggest_combo_box = En Büyük
big_files_mode_biggest_combo_box = The Biggest main_notebook_duplicates = Eş Dosyalar
main_notebook_duplicates = Duplicate Files main_notebook_empty_directories = Boş Dizinler
main_notebook_empty_directories = Empty Directories main_notebook_big_files = Büyük/Küçük Dosyalar
main_notebook_big_files = Büyük Dosyalar main_notebook_empty_files = Boş Dosyalar
main_notebook_empty_files = Empty Files main_notebook_temporary = Geçici Dosyalar
main_notebook_temporary = Temporary Files main_notebook_similar_images = Benzer Resimler
main_notebook_similar_images = Similar Images
main_notebook_similar_videos = Benzer Videolar main_notebook_similar_videos = Benzer Videolar
main_notebook_same_music = Music Duplicates main_notebook_same_music = Müzik Kopyaları
main_notebook_symlinks = Invalid Symlinks main_notebook_symlinks = Geçersiz Sembolik Bağlar
main_notebook_broken_files = Broken Files main_notebook_broken_files = Bozuk Dosyalar
main_notebook_bad_extensions = Bad Extensions main_notebook_bad_extensions = Hatalı Uzantılar
main_tree_view_column_file_name = Dosya Adı main_tree_view_column_file_name = Dosya Adı
main_tree_view_column_folder_name = Folder Name main_tree_view_column_folder_name = Klasör Adı
main_tree_view_column_path = Yol main_tree_view_column_path = Yol
main_tree_view_column_modification = Değiştirilme tarihi main_tree_view_column_modification = Düzenleme Tarihi
main_tree_view_column_size = Size main_tree_view_column_size = Boyut
main_tree_view_column_similarity = Benzerlik main_tree_view_column_similarity = Benzerlik
main_tree_view_column_dimensions = Boyutlar main_tree_view_column_dimensions = En x Boy
main_tree_view_column_title = Başlık main_tree_view_column_title = Başlık
main_tree_view_column_artist = Sanatçı main_tree_view_column_artist = Sanatçı
main_tree_view_column_year = Yıl main_tree_view_column_year = Yıl
main_tree_view_column_bitrate = Bit hızı main_tree_view_column_bitrate = Bit-hızı
main_tree_view_column_length = Yükseklik main_tree_view_column_length = Uzunluk
main_tree_view_column_genre = Müzik Türü main_tree_view_column_genre = Tür
main_tree_view_column_symlink_file_name = Symlink File Name main_tree_view_column_symlink_file_name = Sembolik Bağ Dosyası Adı
main_tree_view_column_symlink_folder = Symlink Folder main_tree_view_column_symlink_folder = Sembolik Bağlantı Klasörü
main_tree_view_column_destination_path = Hedef Yolu main_tree_view_column_destination_path = Hedef Yol
main_tree_view_column_type_of_error = Type Of Error main_tree_view_column_type_of_error = Hata türü
main_tree_view_column_current_extension = Current Extension main_tree_view_column_current_extension = Geçerli Uzantı
main_tree_view_column_proper_extensions = Proper Extension main_tree_view_column_proper_extensions = Uygun Uzantı
main_label_check_method = Check method main_label_check_method = Denetim yöntemi:
main_label_hash_type = Hash type main_label_hash_type = SUÇ türü:
main_label_hash_size = Hash size main_label_hash_size = SURÇ boyutu:
main_label_size_bytes = Boyut (bayt) main_label_size_bytes = Boyut (bayt):
main_label_min_size = En az main_label_min_size = Min
main_label_max_size = Azami main_label_max_size = Max
main_label_shown_files = Number of shown files main_label_shown_files = Gösterilecek Dosya Sayısı:
main_label_resize_algorithm = Resize algorithm main_label_resize_algorithm = Yeniden boyutlandırma algoritması:
main_label_similarity = Similarity{ " " } main_label_similarity = Benzerlik: { " " }
main_check_box_broken_files_audio = Audio main_check_box_broken_files_audio = Ses
main_check_box_broken_files_pdf = Pdf main_check_box_broken_files_pdf = Pdf
main_check_box_broken_files_archive = Archive main_check_box_broken_files_archive = Arşiv
main_check_box_broken_files_image = Image main_check_box_broken_files_image = Resim
check_button_general_same_size = Ignore same size check_button_general_same_size = Aynı boyutu yok say
check_button_general_same_size_tooltip = Ignore from results, files which have identical size - usually this are 1:1 duplicates check_button_general_same_size_tooltip = Aynı boyuta sahip dosyalar -genellikle 1'e 1 eştir- sonuçlarda gösterilmez.
main_label_size_bytes_tooltip = Size of files which will be used in scan main_label_size_bytes_tooltip = Taramada kullanılacak dosyaların boyutu
# Upper window # Upper window
upper_tree_view_included_folder_column_title = Folders to Search upper_tree_view_included_folder_column_title = Aranacak Klasörler
upper_tree_view_included_reference_column_title = Reference Folders upper_tree_view_included_reference_column_title = Başvuru Klasörleri
upper_recursive_button = Recursive upper_recursive_button = Özyinelemeli
upper_recursive_button_tooltip = If selected, search also for files which are not placed directly under chosen folders. upper_recursive_button_tooltip = Seçilirse, doğrudan "Aranacak Klasörler" listesindeki dizin altında yer almayan (alt dizinlerdeki dosyaları da) arar.
upper_manual_add_included_button = Manual Add upper_manual_add_included_button = Dizin Gir...
upper_add_included_button = Eklemek upper_add_included_button = Ekle
upper_remove_included_button = Kaldır upper_remove_included_button = Kaldır
upper_manual_add_excluded_button = Manual Add upper_manual_add_excluded_button = Dizin Gir...
upper_add_excluded_button = Eklemek upper_add_excluded_button = Ekle
upper_remove_excluded_button = Kaldır upper_remove_excluded_button = Kaldır
upper_manual_add_included_button_tooltip = upper_manual_add_included_button_tooltip =
Add directory name to search by hand. Arama yapılacak dizin yolunu doğrudan yazın.
To add multiple paths at once, separate them by ; Aynı anda birden fazla girdi eklemek için bunları ";" ile ayırın.
/home/roman;/home/rozkaz will add two directories /home/roman and /home/rozkaz /home/fatih;/home/kavalci girdisi biri /home/fatih öteki /home/kavalci
upper_add_included_button_tooltip = Add new directory to search. olmak üzere iki dizin ekleyecektir.
upper_remove_included_button_tooltip = Delete directory from search. upper_add_included_button_tooltip = "Aranacak Klasörler" listesine yeni bir dizin ekler.
upper_remove_included_button_tooltip = Seçili dizini "Aranacak Klasörler" listesinden kaldırır.
upper_manual_add_excluded_button_tooltip = upper_manual_add_excluded_button_tooltip =
Add excluded directory name by hand. Hariç tutulacak dizin yolunu doğrudan yazın.
To add multiple paths at once, separate them by ; Aynı anda birden fazla girdi eklemek için bunları ";" ile ayırın.
/home/roman;/home/krokiet will add two directories /home/roman and /home/keokiet /home/fatih;/home/kavalci girdisi biri /home/fatih öteki /home/kavalci
upper_add_excluded_button_tooltip = Add directory to be excluded in search. olmak üzere iki dizin ekleyecektir.
upper_remove_excluded_button_tooltip = Delete directory from excluded. upper_add_excluded_button_tooltip = "Hariç Tutulacak Klasörler" listesine yeni bir dizin ekler.
upper_notebook_items_configuration = Items Configuration upper_remove_excluded_button_tooltip = Seçili dizini "Hariç Tutulacak Klasörler" listesinden kaldırır.
upper_notebook_excluded_directories = Excluded Directories upper_notebook_items_configuration = Öğe Yapılandırması
upper_notebook_included_directories = Included Directories upper_notebook_excluded_directories = Hariç Tutulan Dizinler
upper_notebook_included_directories = Aranacak Dizinler
upper_allowed_extensions_tooltip = upper_allowed_extensions_tooltip =
Allowed extensions must be separated by commas (by default all are available). İzin verilen uzantılar virgülle ayrılmalıdır (varsayılan olarak her uzantı kullanılır).
The following Macros, which add multiple extensions at once, are also available: IMAGE, VIDEO, MUSIC, TEXT. Aynı anda birden fazla (aynı tür) uzantı ekleyen makrolar da kullanılabilir: IMAGE, VIDEO, MUSIC, TEXT.
Usage example ".exe, IMAGE, VIDEO, .rar, 7z" - this means that images (e.g. jpg, png), videos (e.g. avi, mp4), exe, rar, and 7z files will be scanned. Kullanım örneği: ".exe, IMAGE, VIDEO, .rar, .7z" -- Bu girdi, resimlerin (ör. jpg, png ...),
videoların (ör. avi, mp4 ...), exe, rar ve 7z dosyalarının taranacağı anlamına gelir.
upper_excluded_items_tooltip = upper_excluded_items_tooltip =
Excluded items must contain * wildcard and should be separated by commas. Hariç tutulan öğeler * joker karakterini içermeli ve virgülle ayrılmalıdır.
This is slower than Excluded Directories, so use it carefully. Bu işlev, Hariç Tutulan Dizinlerden daha yavaştır, bu yüzden dikkatli kullanın.
upper_excluded_items = Excluded Items: upper_excluded_items = Hariç Tutulan Öğeler:
upper_allowed_extensions = Allowed Extensions: upper_allowed_extensions = İzin Verilen Uzantılar:
# Popovers # Popovers
popover_select_all = Tümünü seç popover_select_all = Tümünü seç
popover_unselect_all = Tümünün seçimini kaldır popover_unselect_all = Tümünün seçimini kaldır
popover_reverse = Reverse Selection popover_reverse = Seçimi Ters Çevir
popover_select_all_except_oldest = Select all except oldest popover_select_all_except_oldest = En eski olan hariç hepsini seç
popover_select_all_except_newest = Select all except newest popover_select_all_except_newest = En yeni olan hariç hepsini seç
popover_select_one_oldest = Select one oldest popover_select_one_oldest = En eski olanı seç
popover_select_one_newest = Select one newest popover_select_one_newest = En yeni olanı seç
popover_select_custom = Select custom popover_select_custom = Özel girdi ile seçim yap
popover_unselect_custom = Unselect custom popover_unselect_custom = Özel girdi ile seçimi kaldır
popover_select_all_images_except_biggest = Select all except biggest popover_select_all_images_except_biggest = En büyük olan hariç hepsini seç
popover_select_all_images_except_smallest = Select all except smallest popover_select_all_images_except_smallest = En küçük olan hariç hepsini seç
popover_custom_path_check_button_entry_tooltip = popover_custom_path_check_button_entry_tooltip =
Select records by path. Kayıtları, kısmi yol girdisine göre seçer.
Example usage: Örnek kullanım:
/home/pimpek/rzecz.txt can be found with /home/pim* /home/fatih/kavalci.txt dosyası, /home/fat* girdisi ile bulunabilir
popover_custom_name_check_button_entry_tooltip = popover_custom_name_check_button_entry_tooltip =
Select records by file names. Kayıtları, kısmi dosya adı girdisine göre seçer.
Example usage: Örnek kullanım:
/usr/ping/pong.txt can be found with *ong* /home/fatih/kavalci.txt dosyası, *val* girdisi ile bulunabilir
popover_custom_regex_check_button_entry_tooltip = popover_custom_regex_check_button_entry_tooltip =
Select records by specified Regex. Kayıtları, belirtilen Regex girdisine göre seçer.
With this mode, searched text is Path with Name. Bu mod ile aranan metin, tam yol dosya adıdır.
Example usage: Örnek kullanım:
/usr/bin/ziemniak.txt can be found with /ziem[a-z]+ /home/fatih/kavalcı.txt dosyası, h/ka[a-z]+ ile bulunabilir
This uses the default Rust regex implementation. You can read more about it here: https://docs.rs/regex. Bu işlev, varsayılan Rust regex uygulamasını kullanır.
Daha fazla bilgi için bakınız: https://docs.rs/regex.
popover_custom_case_sensitive_check_button_tooltip = popover_custom_case_sensitive_check_button_tooltip =
Enables case-sensitive detection. Büyük/Küçük harfe duyarlı algılamayı etkinleştirir.
When disabled /home/* finds both /HoMe/roman and /home/roman. Etkisizleştirilir ise;
/home/fatih/* girdisi, hem /home/fatih/ hem de /home/FaTiH dizinlerini algılar.
popover_custom_not_all_check_button_tooltip = popover_custom_not_all_check_button_tooltip =
Prevents selecting all records in group. Gruptaki tüm kayıtların seçilmesini engeller.
This is enabled by default, because in most situations, you don't want to delete both original and duplicates files, but want to leave at least one file. Bu varsayılan olarak etkindir. Çünkü, çoğu durumda hem asıl dosyayı hem de kopyaları
silmek istemezsiniz. En az bir dosya bırakmak istersiniz.
WARNING: This setting doesn't work if you have already manually selected all results in a group. UYARI: Bir gruptaki tüm sonuçlar zaten elle seçilmiş ise bu ayar çalışmaz.
popover_custom_regex_path_label = Yol popover_custom_regex_path_label = Yol
popover_custom_regex_name_label = Ad popover_custom_regex_name_label = Ad
popover_custom_regex_regex_label = Regex Path + Name popover_custom_regex_regex_label = Regex Yolu + Adı
popover_custom_case_sensitive_check_button = Büyük/küçük harf duyarlı popover_custom_case_sensitive_check_button = Büyük/Küçük harfe duyarlı
popover_custom_all_in_group_label = Don't select all records in group popover_custom_all_in_group_label = Gruptaki tüm kayıtları seçme
popover_custom_mode_unselect = Unselect Custom popover_custom_mode_unselect = Özel Girdi ile Seçimi Kaldır
popover_custom_mode_select = Özeli Seçin popover_custom_mode_select = Özel Girdi ile Seç
popover_invalid_regex = Regex is invalid popover_invalid_regex = Regex geçersiz (hatalı)
popover_valid_regex = Regex is valid popover_valid_regex = Regex geçerli (doğru)
# Bottom buttons # Bottom buttons
bottom_search_button = Ara bottom_search_button = Ara
bottom_select_button = Seç bottom_select_button = Seç
bottom_delete_button = Sil bottom_delete_button = Sil
bottom_save_button = Save bottom_save_button = Kaydet
bottom_symlink_button = Sembolik link bottom_symlink_button = Sembolik bağlantı
bottom_hardlink_button = Hardlink bottom_hardlink_button = Sabit bağlantı
bottom_move_button = Taşı bottom_move_button = Taşı
bottom_search_button_tooltip = Aramayı başlat bottom_search_button_tooltip = Aramayı başlatır.
bottom_select_button_tooltip = Select records. Only selected files/folders can be later processed. bottom_select_button_tooltip = Kayıtları seçer. Yalnızca seçilen dosyalara/klasörlere işlem uygulanabilir.
bottom_delete_button_tooltip = Delete selected files/folders. bottom_delete_button_tooltip = Seçili dosyaları/klasörleri siler.
bottom_save_button_tooltip = Save data about search to file bottom_save_button_tooltip = Aramayla ilgili verileri dosyaya kaydeder.
bottom_symlink_button_tooltip = bottom_symlink_button_tooltip =
Create symbolic links. Sembolik bağlantılar oluşturur.
Only works when at least two results in a group are selected. Yalnızca bir gruptaki en az iki sonuç seçildiğinde çalışır.
First is unchanged and second and later are symlinked to first. Birincisi değişmez, ikincisi ve sonrası birinciye sembolik olarak bağlanır.
bottom_hardlink_button_tooltip = bottom_hardlink_button_tooltip =
Sabit bağlantılar oluşturur.
Yalnızca bir gruptaki en az iki sonuç seçildiğinde çalışır.
Birincisi değişmez, ikincisi ve sonrası birinciye sabit olarak bağlanır.
bottom_hardlink_button_not_available_tooltip =
Create hardlinks. Create hardlinks.
Only works when at least two results in a group are selected. Button is disabled, because hardlinks cannot be created.
First is unchanged and second and later are hardlinked to first. Hardlinks only works with administrator privileges on Windows, so be sure to run app as administrator.
If app already works with such privileges check for similar issues on Github.
bottom_move_button_tooltip = bottom_move_button_tooltip =
Moves files to chosen directory. Dosyaları seçilen dizine taşır.
It copies all files to the directory without preserving the directory tree. Dizin ağacını korumadan tüm dosyaları dizine taşır.
When trying to move two files with identical name to folder, second will fail and show error. Aynı ada sahip iki dosyayı klasöre taşımaya çalışırken, ikincisi başarısız olur ve hata gösterir.
bottom_show_errors_tooltip = Show/Hide bottom text panel. bottom_show_errors_tooltip = Alt çıktı panelini göster/gizle.
bottom_show_upper_notebook_tooltip = Show/Hide upper notebook panel. bottom_show_upper_notebook_tooltip = Üst denetim panelini göster/gizle.
# Progress Window # Progress Window
progress_stop_button = Dur progress_stop_button = Durdur
progress_stop_additional_message = Stop requested progress_stop_additional_message = İşlem durduruldu.
# About Window # About Window
about_repository_button_tooltip = Link to repository page with source code. about_repository_button_tooltip = Kaynak kodu depo sayfasına bağlanır.
about_donation_button_tooltip = Link to donation page. about_donation_button_tooltip = Bağış sayfasına bağlanır.
about_instruction_button_tooltip = Link to instruction page. about_instruction_button_tooltip = Kullanım yönergeleri sayfasına bağlanır.
about_translation_button_tooltip = Link to Crowdin page with app translations. Officially Polish and English are supported. about_translation_button_tooltip = Czkawka çevirileriyle Crowdin sayfasına bağlanır. Resmi olarak Lehçe ve İngilizce desteklenmektedir.
about_repository_button = Veri Havuzu about_repository_button = Depo
about_donation_button = Bağış yap about_donation_button = Bağış
about_instruction_button = Talimatlar about_instruction_button = Yönerge
about_translation_button = Çeviri about_translation_button = Çeviri
# Header # Header
header_setting_button_tooltip = Opens settings dialog. header_setting_button_tooltip = Ayarlar iletişim kutusunu açar.
header_about_button_tooltip = Opens dialog with info about app. header_about_button_tooltip = Czkawka hakkında bilgi içeren iletişim kutusunu açar.
# Settings # Settings
## General ## General
settings_ignore_other_filesystems = Ignore other filesystems (only Linux) settings_number_of_threads = Number of used threads
settings_number_of_threads_tooltip = Number of used threads, 0 means that all available threads will be used.
settings_label_restart = You need to restart app to apply settings!
settings_ignore_other_filesystems = Öteki dosya sistemlerini yoksay (sadece Linux)
settings_ignore_other_filesystems_tooltip = settings_ignore_other_filesystems_tooltip =
ignores files that are not in the same file system as searched directories. Aranan dizinlerle aynı dosya sisteminde olmayan dosyaları yoksayar.
Works same like -xdev option in find command on Linux Linux'ta find komutundaki -xdev seçeneği ile aynı şekilde çalışır.
settings_save_at_exit_button_tooltip = Save configuration to file when closing app. settings_save_at_exit_button_tooltip = Uygulamayı kapatırken yapılandırmayı dosyaya kaydeder.
settings_load_at_start_button_tooltip = settings_load_at_start_button_tooltip =
Load configuration from file when opening app. Uygulamayı açarken yapılandırmayı dosyadan yükler.
If not enabled, default settings will be used. Etkinleştirilmezse, varsayılan ayarlar kullanılır.
settings_confirm_deletion_button_tooltip = Show confirmation dialog when clicking the delete button. settings_confirm_deletion_button_tooltip = Sil düğmesine tıklandığında onay iletişim kutusunu gösterir.
settings_confirm_link_button_tooltip = Show confirmation dialog when clicking the hard/symlink button. settings_confirm_link_button_tooltip = Sabit/sembolik bağlantı düğmesine tıklandığında onay iletişim kutusunu göster.
settings_confirm_group_deletion_button_tooltip = Show warning dialog when trying to delete all records from the group. settings_confirm_group_deletion_button_tooltip = Gruptan tüm kayıtları silmeye çalışırken uyarı iletişim kutusunu gösterir.
settings_show_text_view_button_tooltip = Show text panel at the bottom of the user interface. settings_show_text_view_button_tooltip = Kullanıcı arayüzünün altında çıktı panelini gösterir.
settings_use_cache_button_tooltip = Use file cache. settings_use_cache_button_tooltip = Dosya önbelleğini kullanır.
settings_save_also_as_json_button_tooltip = Save cache to (human readable) JSON format. It is possible to modify its content. Cache from this file will be read automatically by app if binary format cache (with bin extension) is missing. settings_save_also_as_json_button_tooltip =
settings_use_trash_button_tooltip = Moves files to trash instead deleting them permanently. Önbelleği (kullanıcı tarafından okunabilir) JSON biçiminde kaydeder.
settings_language_label_tooltip = Language for user interface. İçeriğini değiştirmek mümkündür. İkili biçim önbelleği (bin uzantılı) eksikse,
settings_save_at_exit_button = Save configuration when closing app bu dosyadaki önbellek uygulama tarafından otomatik olarak okunacaktır.
settings_load_at_start_button = Load configuration when opening app settings_use_trash_button_tooltip = Dosyaları kalıcı olarak silmek yerine çöp kutusuna taşır.
settings_confirm_deletion_button = Show confirm dialog when deleting any files settings_language_label_tooltip = Kullanıcı arayüzü dilini değiştirir.
settings_confirm_link_button = Show confirm dialog when hard/symlinks any files settings_save_at_exit_button = Uygulamayı kapatırken yapılandırmayı kaydet
settings_confirm_group_deletion_button = Show confirm dialog when deleting all files in group settings_load_at_start_button = Uygulamayı açarken yapılandırmayı yükle
settings_show_text_view_button = Show bottom text panel settings_confirm_deletion_button = Herhangi bir dosyayı silerken onay iletişim kutusunu göster
settings_use_cache_button = Önbellek kullan settings_confirm_link_button = Herhangi bir dosyaya sabit/sembolik bağlantı yapıldığında onay iletişim kutusunu göster
settings_save_also_as_json_button = Also save cache as JSON file settings_confirm_group_deletion_button = Gruptaki tüm dosyaları silerken onay iletişim kutusunu göster
settings_use_trash_button = Move deleted files to trash settings_show_text_view_button = Alt çıktı panelini göster
settings_use_cache_button = Önbelleği kullan
settings_save_also_as_json_button = Önbelleği JSON dosyası olarak da kaydet
settings_use_trash_button = Silinen dosyaları çöp kutusuna taşı
settings_language_label = Dil settings_language_label = Dil
settings_multiple_delete_outdated_cache_checkbutton = Delete outdated cache entries automatically settings_multiple_delete_outdated_cache_checkbutton = Güncel olmayan önbellek girişlerini otomatik olarak sil
settings_multiple_delete_outdated_cache_checkbutton_tooltip = settings_multiple_delete_outdated_cache_checkbutton_tooltip =
Delete outdated cache results which point to non-existent files. Var olmayan dosyalara işaret eden eski önbellek girdilerini siler.
When enabled, app makes sure when loading records, that all records point to valid files (broken ones are ignored). Etkinleştirildiğinde, uygulama kayıtları yüklerken tüm kayıtların geçerli dosyalara
işaret etmesini sağlar (bozuk olanlar yoksayılır).
Disabling this will help when scanning files on external drives, so cache entries about them will not be purged in the next scan. Bunu devre dışı bırakmak, harici sürücülerdeki dosyaları tararken yardımcı olacaktır,
bu nedenle bunlarla ilgili önbellek girdileri bir sonraki taramada temizlenmez.
In the case of having hundred of thousands records in cache, it is suggested to enable this, which will speedup cache loading/saving at start/end of the scan. Önbellekte yüzbinlerce kayıt olması durumunda, taramanın başlangıcında/sonunda
önbellek yükleme/kaydetme işlemini hızlandıracak olan bu özelliği etkinleştirmeniz önerilir.
settings_notebook_general = Genel settings_notebook_general = Genel
settings_notebook_duplicates = Tekrarlar settings_notebook_duplicates = Eş Dosyalar
settings_notebook_images = Similar Images settings_notebook_images = Benzer Resimler
settings_notebook_videos = Similar Video settings_notebook_videos = Benzer Videolar
## Multiple - settings used in multiple tabs ## Multiple - settings used in multiple tabs
settings_multiple_image_preview_checkbutton_tooltip = Shows preview at right side (when selecting an image file). settings_multiple_image_preview_checkbutton_tooltip = Sağ tarafta önizlemeyi gösterir (bir resim dosyası seçiliyken).
settings_multiple_image_preview_checkbutton = Show image preview settings_multiple_image_preview_checkbutton = Resim önizlemesini göster
settings_multiple_clear_cache_button_tooltip = settings_multiple_clear_cache_button_tooltip =
Manually clear the cache of outdated entries. Güncel olmayan girişlerin önbelleğini el ile temizleyin.
This should only be used if automatic clearing has been disabled. Bu, yalnızca otomatik temizleme devre dışı bırakılmışsa kullanılmalıdır.
settings_multiple_clear_cache_button = Remove outdated results from images cache settings_multiple_clear_cache_button = Güncel olmayan girdileri resim önbelleğinden kaldır
## Duplicates ## Duplicates
settings_duplicates_hide_hard_link_button_tooltip = settings_duplicates_hide_hard_link_button_tooltip =
Hides all files except one, if all point to the same data (are hardlinked). Hepsi aynı verilere işaret ediyorsa (sabit bağlantılıysa), biri dışındaki tüm dosyaları gizler.
Example: In the case where there are (on disk) seven files which are hardlinked to specific data and one different file with same data but a different inode, then in duplicate finder, only one unique file and one file from hardlinked ones will be shown. Örnek: (Diskte) belirli verilere sabit bağlantılı yedi dosya ve aynı veriye ancak farklı
bir düğüme sahip bir farklı dosya olması durumunda, yinelenen bulucuda yalnızca bir benzersiz dosya ve
sabit bağlantılı dosyalardan bir dosya gösterilecektir.
settings_duplicates_minimal_size_entry_tooltip = settings_duplicates_minimal_size_entry_tooltip =
Set the minimal file size which will be cached. Önbelleğe alınacak minimum dosya boyutunu ayarlayın.
Choosing a smaller value will generate more records. This will speedup search, but slowdown cache loading/saving. Daha küçük bir değer seçmek daha fazla kayıt üretecektir.
Bu, aramayı hızlandıracak, ancak önbellek yüklemeyi/kaydetmeyi yavaşlatacaktır.
settings_duplicates_prehash_checkbutton_tooltip = settings_duplicates_prehash_checkbutton_tooltip =
Enables caching of prehash (a hash computed from a small part of the file) which allows earlier dismissal of non-duplicated results. Yinelenmeyen sonuçların daha önce reddedilmesine izin veren kısmi-SUÇ
(dosyanın küçük bir bölümünden hesaplanan bir SUÇ) değerinin önbelleğe alınmasını sağlar.
It is disabled by default because it can cause slowdowns in some situations. Bazı durumlarda yavaşlamaya neden olabileceğinden varsayılan olarak devre dışıdır.
It is highly recommended to use it when scanning hundred of thousands or million files, because it can speedup search by multiple times. Aramayı birden çok kez hızlandırabileceğinden, yüz binlerce veya milyonlarca dosyayı
settings_duplicates_prehash_minimal_entry_tooltip = Minimal size of cached entry. tararken kullanılması şiddetle tavsiye edilir.
settings_duplicates_hide_hard_link_button = Hide hard links (only Linux and macOS) settings_duplicates_prehash_minimal_entry_tooltip = Önbelleğe alınacak girişlerin minimum boyutu.
settings_duplicates_prehash_checkbutton = Use prehash cache settings_duplicates_hide_hard_link_button = Sabit bağlantıları gizle (yalnızca Linux ve macOS)
settings_duplicates_minimal_size_cache_label = Minimal size of files (in bytes) saved to cache settings_duplicates_prehash_checkbutton = kısmi-SUÇ önbelleği kullan
settings_duplicates_minimal_size_cache_prehash_label = Minimal size of files (in bytes) saved to prehash cache settings_duplicates_minimal_size_cache_label = Önbelleğe kaydedilen minimum dosya boyutu (bayt cinsinden):
settings_duplicates_minimal_size_cache_prehash_label = kısmi-SUÇ önbelleğine kaydedilen minimum dosya boyutu (bayt cinsinden):
## Saving/Loading settings ## Saving/Loading settings
settings_saving_button_tooltip = Save the current settings configuration to file. settings_saving_button_tooltip = Geçerli ayar yapılandırmasını dosyaya kaydeder.
settings_loading_button_tooltip = Load settings from file and replace the current configuration with them. settings_loading_button_tooltip = Dosyadan ayarları yükler ve geçerli yapılandırmayı bunlarla değiştirir.
settings_reset_button_tooltip = Reset the current configuration to the default one. settings_reset_button_tooltip = Geçerli yapılandırmayı varsayılana sıfırlar.
settings_saving_button = Yapılandırmayı kaydet settings_saving_button = Yapılandırmayı kaydet
settings_loading_button = Yapılandırmayı yükleyin settings_loading_button = Yapılandırma yükle
settings_reset_button = Yapılandırmayı sıfırla settings_reset_button = Yapılandırmayı sıfırla
## Opening cache/config folders ## Opening cache/config folders
settings_folder_cache_open_tooltip = settings_folder_cache_open_tooltip =
Opens the folder where the cache txt files are stored. Önbellek txt dosyalarının depolandığı klasörü açar.
Modifying the cache files may cause invalid results to be shown. However, modifying path may save time when moving a big amount of files to a different location. Önbellek dosyalarının değiştirilmesi geçersiz sonuçların gösterilmesine neden olabilir.
Ancak, büyük miktarda dosyayı farklı bir konuma taşırken yolu değiştirmek zaman kazandırabilir.
You can copy these files between computers to save time on scanning again for files (of course if they have similar directory structure). Dosyaları tekrar taramaktan zaman kazanmak için bu dosyaları bilgisayarlar arasında
kopyalayabilirsiniz (tabii ki benzer dizin yapısına sahiplerse).
In the case of problems with the cache, these files can be removed. The app will automatically regenerate them. Önbellekte sorun olması durumunda bu dosyalar kaldırılabilir. Uygulama onları
otomatik olarak yeniden oluşturacaktır.
settings_folder_settings_open_tooltip = settings_folder_settings_open_tooltip =
Opens the folder where the Czkawka config is stored. Czkawka yapılandırmasının depolandığı klasörü açar.
WARNING: Manually modifying the config may break your workflow. UYARI: Yapılandırmayı elle değiştirmek iş akışınızı bozabilir.
settings_folder_cache_open = Open cache folder settings_folder_cache_open = Önbellek klasörünü aç
settings_folder_settings_open = Open settings folder settings_folder_settings_open = Ayarlar klasörünü aç
# Compute results # Compute results
compute_stopped_by_user = Searching was stopped by user compute_stopped_by_user = Arama, kullanıcı tarafından durduruldu.
compute_found_duplicates_hash_size = Found { $number_files } duplicates in { $number_groups } groups which took { $size } compute_found_duplicates_hash_size = { $number_groups } grupta, { $size } yer kaplayan, toplam { $number_files } adet kopya bulundu.
compute_found_duplicates_name = Found { $number_files } duplicates in { $number_groups } groups compute_found_duplicates_name = { $number_groups } grupta, { $number_files } adet kopya bulundu.
compute_found_empty_folders = Found { $number_files } empty folders compute_found_empty_folders = { $number_files } adet boş klasör bulundu.
compute_found_empty_files = Found { $number_files } empty files compute_found_empty_files = { $number_files } adet boş dosya bulundu.
compute_found_big_files = Found { $number_files } big files compute_found_big_files = { $number_files } adet büyük/küçük dosya bulundu.
compute_found_temporary_files = Found { $number_files } temporary files compute_found_temporary_files = { $number_files } adet geçici dosya bulundu.
compute_found_images = Found { $number_files } similar images in { $number_groups } groups compute_found_images = { $number_groups } grupta, { $number_files } adet benzer resim bulundu.
compute_found_videos = Found { $number_files } similar videos in { $number_groups } groups compute_found_videos = { $number_groups } grupta, { $number_files } adet benzer video bulundu.
compute_found_music = Found { $number_files } similar music files in { $number_groups } groups compute_found_music = { $number_groups } grupta, { $number_files } adet benzer müzik dosyası bulundu.
compute_found_invalid_symlinks = Found { $number_files } invalid symlinks compute_found_invalid_symlinks = { $number_files } adet geçersiz sembolik bağlantı bulundu.
compute_found_broken_files = Found { $number_files } broken files compute_found_broken_files = { $number_files } adet bozuk dosya bulundu.
compute_found_bad_extensions = Found { $number_files } files with invalid extensions compute_found_bad_extensions = { $number_files } adet geçersiz uzantıya sahip dosya bulundu.
# Progress window # Progress window
progress_scanning_general_file = Scanning { $file_number } file progress_scanning_general_file = { $file_number } dosya tarandı.
progress_scanning_extension_of_files = Checking extension of { $file_checked }/{ $all_files } file progress_scanning_extension_of_files = { $file_checked }/{ $all_files } dosyanın uzantısı kontrol edildi.
progress_scanning_broken_files = Checking { $file_checked }/{ $all_files } file progress_scanning_broken_files = { $file_checked }/{ $all_files } dosya kontrol edildi.
progress_scanning_video = Hashing of { $file_checked }/{ $all_files } video progress_scanning_video = { $file_checked }/{ $all_files } videonun SUÇ kaydı oluşturuldu. ;-)
progress_scanning_image = Hashing of { $file_checked }/{ $all_files } image progress_scanning_image = { $file_checked }/{ $all_files } resmin SURÇ kaydı oluşturuldu. ;-)
progress_comparing_image_hashes = Comparing { $file_checked }/{ $all_files } image hash progress_comparing_image_hashes = { $file_checked }/{ $all_files } resim SURÇ kaydı karşılaştırıldı.
progress_scanning_music_tags_end = Comparing tags of { $file_checked }/{ $all_files } music file progress_scanning_music_tags_end = { $file_checked }/{ $all_files } müzik dosyasının etiketleri karşılaştırıldı.
progress_scanning_music_tags = Reading tags of { $file_checked }/{ $all_files } music file progress_scanning_music_tags = { $file_checked }/{ $all_files } müzik dosyasının etiketleri okundu.
progress_scanning_empty_folders = Scanning { $folder_number } folder progress_scanning_empty_folders = { $folder_number } klasör tarandı.
progress_scanning_size = Scanning size of { $file_number } file progress_scanning_size = { $file_number } dosyanın boyutu tarandı.
progress_scanning_name = Scanning name of { $file_number } file progress_scanning_name = { $file_number } dosyanın adı tarandı.
progress_analyzed_partial_hash = Analyzed partial hash of { $file_checked }/{ $all_files } files progress_analyzed_partial_hash = { $file_checked }/{ $all_files } dosyanın kısmi-SUÇ kaydı analiz edildi. ;-)
progress_analyzed_full_hash = Analyzed full hash of { $file_checked }/{ $all_files } files progress_analyzed_full_hash = { $file_checked }/{ $all_files } dosyanın tam SUÇ kaydı analiz edildi. ;-)
progress_current_stage = Current Stage:{ " " } progress_current_stage = Geçerli Aşama: { " " }
progress_all_stages = All Stages:{ " " } progress_all_stages = Tüm Aşamalar: { " " }
# Saving loading # Saving loading
saving_loading_saving_success = Saved configuration to file { $name }. saving_loading_saving_success = Yapılandırma { $name } dosyasına kaydedildi.
saving_loading_saving_failure = Failed to save configuration data to file { $name }. saving_loading_saving_failure = Yapılandırma verileri { $name } dosyasına kaydedilemedi.
saving_loading_reset_configuration = Current configuration was cleared. saving_loading_reset_configuration = Geçerli yapılandırma temizlendi.
saving_loading_loading_success = Properly loaded app configuration. saving_loading_loading_success = Uygulama yapılandırması düzgünce yüklendi.
saving_loading_invalid_string = For key "{ $key }" found invalid result - "{ $result }" which is not a string. saving_loading_invalid_string = "{ $key }" anahtarı için geçersiz sonuç bulundu. "{ $result }" bir dize(tümce) değil.
saving_loading_invalid_int = For key "{ $key }" found invalid result - "{ $result }" which is not a integer. saving_loading_invalid_int = "{ $key }" anahtarı için geçersiz sonuç bulundu. "{ $result }" tam sayı değil.
saving_loading_invalid_bool = For key "{ $key }" found invalid result - "{ $result }" which is not a bool. saving_loading_invalid_bool = "{ $key }" anahtarı için geçersiz sonuç bulundu. "{ $result }" D/Y türünde değil.
saving_loading_decode_problem_bool = Failed to decode bool from key "{ $key }" found "{ $result }" but allowed values are 0, 1, true or false. saving_loading_decode_problem_bool = "{ $key }" anahtarından D/Y kodu çözülemedi, "{ $result }" bulundu ancak izin verilen değerler 0, 1, doğru veya yanlış.
saving_loading_saving_same_keys = Trying to save setting with duplicated key "{ $key }". saving_loading_saving_same_keys = Ayar, yinelenen "{ $key }" anahtarıyla kaydedilmeye çalışılıyor.
saving_loading_failed_to_get_home_directory = Failed to get home directory to open/save config file. saving_loading_failed_to_get_home_directory = Yapılandırma dosyasını açmak/kaydetmek için /home dizinine erşilemedi.
saving_loading_folder_config_instead_file = Cannot create or open save configuration file in path "{ $path }" because already there is a folder. saving_loading_folder_config_instead_file = "{ $path }" yolunda kaydetme yapılandırma dosyası oluşturulamıyor veya açılamıyor çünkü zaten bir klasör var.
saving_loading_failed_to_create_configuration_folder = Failed configuration to create configuration folder "{ $path }", reason "{ $reason }". saving_loading_failed_to_create_configuration_folder = Yapılandırma klasörü "{ $path }" dizini oluşturulamadı, nedeni: "{ $reason }".
saving_loading_failed_to_create_config_file = Failed to create config file "{ $path }", reason "{ $reason }". saving_loading_failed_to_create_config_file = "{ $path }" dizininde yapılandırma dosyası oluşturulamadı, nedeni: "{ $reason }".
saving_loading_failed_to_read_config_file = Cannot load configuration from "{ $path }" because it does not exist or is not a file. saving_loading_failed_to_read_config_file = "{ $path }" dizininden yapılandırma dosyası yüklenemiyor, böyle dosya yok ya da bir dosya değil.
saving_loading_failed_to_read_data_from_file = Cannot read data from file "{ $path }", reason "{ $reason }". saving_loading_failed_to_read_data_from_file = "{ $path }" dosyasından veri okunamıyor, nedeni: "{ $reason }".
saving_loading_orphan_data = Found orphan data "{ $data }" in line "{ $line }". saving_loading_orphan_data = "{ $line }" satırda "{ $data }" ilişiksiz veri bulundu.
saving_loading_not_valid = Setting "{ $data }" does not exist in current app version. saving_loading_not_valid = "{ $data }" ayarı geçerli uygulama sürümünde bulunmuyor.
# Invalid symlinks # Invalid symlinks
invalid_symlink_infinite_recursion = Infinite recursion invalid_symlink_infinite_recursion = Sonsuz özyineleme
invalid_symlink_non_existent_destination = Non-existent destination file invalid_symlink_non_existent_destination = Var olmayan hedef dosya
# Other # Other
selected_all_reference_folders = Cannot start search, when all directories are set as reference folders selected_all_reference_folders = Tüm dizinler, "Başvuru Klasörü" olarak ayarlandığında arama başlatılamaz.
searching_for_data = Searching data, it may take a while, please wait... searching_for_data = İşleminiz yürütülüyor, bu biraz zaman alabilir, lütfen bekleyin...
text_view_messages = MESAJLAR text_view_messages = MESAJLAR
text_view_warnings = WARNINGS text_view_warnings = UYARILAR
text_view_errors = HATALAR text_view_errors = HATALAR
about_window_motto = This program is free to use and will always be. about_window_motto = Bu programın kullanımı ücretsizdir ve her zaman öyle kalacaktır.
# Various dialog # Various dialog
dialogs_ask_next_time = Ask next time dialogs_ask_next_time = Bir dahaki sefere sor
delete_file_failed = Failed to delete file { $name }, reason { $reason } delete_file_failed = { $name } dosyası silinemedi, nedeni: { $reason }
delete_title_dialog = Silme onayı delete_title_dialog = Silmeyi onaylayın.
delete_question_label = Are you sure that you want to delete files? delete_question_label = Dosyaları silmek istediğinizden emin misiniz?
delete_all_files_in_group_title = Confirmation of deleting all files in group delete_all_files_in_group_title = Gruptaki tüm dosyaları silmeyi onaylayın.
delete_all_files_in_group_label1 = In some groups all records are selected. delete_all_files_in_group_label1 = Kimi gruplarda tüm kayıtlar seçilir.
delete_all_files_in_group_label2 = Are you sure that you want to delete them? delete_all_files_in_group_label2 = Bunları silmek istediğinizden emin misiniz?
delete_folder_failed = Failed to delete folder { $dir } because folder doesn't exist, you don't have permission or the folder isn't empty. delete_folder_failed = { $dir } klasörü; bulunmadığı, izniniz olmadığı veya klasör boş olmadığı için silinemedi.
delete_items_label = { $items } files will be deleted. delete_items_label = { $items } dosya silinecek.
delete_items_groups_label = { $items } files from { $groups } groups will be deleted. delete_items_groups_label = { $groups } gruptan { $items } dosya silinecek.
hardlink_failed = Failed to hardlink hardlink_failed = Sabit bağlantı kurulamadı.
hard_sym_invalid_selection_title_dialog = Invalid selection with some groups hard_sym_invalid_selection_title_dialog = Kimi gruplarda geçersiz seçim
hard_sym_invalid_selection_label_1 = In some groups there is only one record selected and it will be ignored. hard_sym_invalid_selection_label_1 = Bazı gruplarda sadece bir kayıt seçilmiştir ve bu kayıt yok sayılacaktır.
hard_sym_invalid_selection_label_2 = To be able to hard/sym link these files, at least two results in the group need to be selected. hard_sym_invalid_selection_label_2 = Bu dosyaları sabit/sembolik bağlayabilmek için gruptaki en az iki sonucun seçilmesi gerekir.
hard_sym_invalid_selection_label_3 = First in group is recognized as original and is not changed but second and later are modified. hard_sym_invalid_selection_label_3 = Gruptaki ilk resim asıl olarak tanınır ve değiştirilmez, ancak ikinci ve sonrakiler değiştirilir.
hard_sym_link_title_dialog = Link confirmation hard_sym_link_title_dialog = Bağlantı vermeyi onaylayın
hard_sym_link_label = Are you sure that you want to link these files? hard_sym_link_label = Bu dosyaları bağlamak istediğinizden emin misiniz?
move_folder_failed = Failed to move folder { $name }, reason { $reason } move_folder_failed = { $name } klasörü taşınamadı, nedeni: { $reason }
move_file_failed = Failed to move file { $name }, reason { $reason } move_file_failed = { $name } dosyası taşınamadı, nedeni: { $reason }
move_files_title_dialog = Choose folder to which you want to move duplicated files move_files_title_dialog = Eş dosyaları taşımak istediğiniz klasörü seçin
move_files_choose_more_than_1_path = Only one path may be selected to be able to copy their duplicated files, selected { $path_number }. move_files_choose_more_than_1_path = Eş dosyaları taşıyabilmek için yalnızca bir yol seçilebilir, { $path_number } seçildi.
move_stats = Properly moved { $num_files }/{ $all_files } items move_stats = { $num_files }/{ $all_files } öğe düzgün şekilde taşındı.
save_results_to_file = Saved results to file { $name } save_results_to_file = Sonuçlar { $name } dosyasına kaydedildi.
search_not_choosing_any_music = ERROR: You must select at least one checkbox with music searching types. search_not_choosing_any_music = HATA: Müzik araması için en az bir onay kutusu seçmelisiniz.
search_not_choosing_any_broken_files = ERROR: You must select at least one checkbox with type of checked broken files. search_not_choosing_any_broken_files = HATA: Bozuk dosya araması için en az bir onay kutusu seçmelisiniz.
include_folders_dialog_title = Folders to include include_folders_dialog_title = Aranacak Klasörler
exclude_folders_dialog_title = Folders to exclude exclude_folders_dialog_title = Hariç Tutulan Klasörler
include_manually_directories_dialog_title = Add directory manually include_manually_directories_dialog_title = Dizini elle ekle
cache_properly_cleared = Properly cleared cache cache_properly_cleared = Önbellek, uygun şekilde temizlendi.
cache_clear_duplicates_title = Clearing duplicates cache cache_clear_duplicates_title = Eş dosyalar önbelleğini temizle
cache_clear_similar_images_title = Clearing similar images cache cache_clear_similar_images_title = Benzer resimler önbelleğini temizle
cache_clear_similar_videos_title = Clearing similar videos cache cache_clear_similar_videos_title = Benzer videolar önbelleğini temizle
cache_clear_message_label_1 = Do you want to clear the cache of outdated entries? cache_clear_message_label_1 = Güncel olmayan girişleri önbellekten temizlemek istiyor musunuz?
cache_clear_message_label_2 = This operation will remove all cache entries which point to invalid files. cache_clear_message_label_2 = Bu işlem, geçersiz dosyalara işaret eden tüm önbellek girişlerini kaldıracak.
cache_clear_message_label_3 = This may slightly speedup loading/saving to cache. cache_clear_message_label_3 = Bu, önbelleğe yükleme/kaydetme işlemini biraz hızlandırabilir.
cache_clear_message_label_4 = WARNING: Operation will remove all cached data from unplugged external drives. So each hash will need to be regenerated. cache_clear_message_label_4 = UYARI: İşlem, takılı olmayan harici sürücülerden önbelleğe alınmış tüm verileri kaldıracaktır. Yani her SUÇ kaydının yeniden oluşturulması gerekecek. ;-)
# Show preview # Show preview
preview_image_resize_failure = Failed to resize image { $name }. preview_image_resize_failure = { $name } adlı resim yeniden boyutlandırılamadı.
preview_image_opening_failure = Failed to open image { $name }, reason { $reason } preview_image_opening_failure = { $name } adlı resim dosyasıılamadı, nedeni: { $reason }
# Compare images (L is short Left, R is short Right - they can't take too much space) # Compare images (L is short Left, R is short Right - they can't take too much space)
compare_groups_number = Group { $current_group }/{ $all_groups } ({ $images_in_group } images) compare_groups_number = Grup: { $current_group }/{ $all_groups } ({ $images_in_group } resim)
compare_move_left_button = L compare_move_left_button = <-
compare_move_right_button = R compare_move_right_button = ->

View file

@ -225,6 +225,11 @@ bottom_hardlink_button_tooltip =
Створити жорсткі посилання. Створити жорсткі посилання.
Працює лише тоді, коли вибрано не менше двох результатів у групі. Працює лише тоді, коли вибрано не менше двох результатів у групі.
Перший результат залишається, а другий та наступні робляться жорсткими посиланнями на перший. Перший результат залишається, а другий та наступні робляться жорсткими посиланнями на перший.
bottom_hardlink_button_not_available_tooltip =
Create hardlinks.
Button is disabled, because hardlinks cannot be created.
Hardlinks only works with administrator privileges on Windows, so be sure to run app as administrator.
If app already works with such privileges check for similar issues on Github.
bottom_move_button_tooltip = bottom_move_button_tooltip =
Переміщення файлів до вибраного каталогу. Переміщення файлів до вибраного каталогу.
Копіює всі файли в теку без збереження структури дерева каталогів. Копіює всі файли в теку без збереження структури дерева каталогів.
@ -252,6 +257,9 @@ header_about_button_tooltip = Відкриває діалогове вікно
## General ## General
settings_number_of_threads = Number of used threads
settings_number_of_threads_tooltip = Number of used threads, 0 means that all available threads will be used.
settings_label_restart = You need to restart app to apply settings!
settings_ignore_other_filesystems = Ігнорувати інші файлові системи (лише Linux) settings_ignore_other_filesystems = Ігнорувати інші файлові системи (лише Linux)
settings_ignore_other_filesystems_tooltip = settings_ignore_other_filesystems_tooltip =
ігнорує файли, які не знаходяться в одній файловій системі, як пошукові каталоги. ігнорує файли, які не знаходяться в одній файловій системі, як пошукові каталоги.
@ -353,7 +361,7 @@ settings_folder_settings_open = Відкрити папку налаштуван
# Compute results # Compute results
compute_stopped_by_user = Пошук був зупинений користувачем compute_stopped_by_user = Пошук був зупинений користувачем
compute_found_duplicates_hash_size = Знайдено дублікатів: { $number_files } (груп: { $number_groups }), розмір: { $size } compute_found_duplicates_hash_size = Знайдено дублікатів: { $number_files } (груп: { $number_groups }), розмір: { $size }
compute_found_duplicates_name = Знайдено: { $number_files } дубликат (и/ів) (груп: { $number_groups }) compute_found_duplicates_name = Знайдено: { $number_files } дубликат(и/ів) (груп: { $number_groups })
compute_found_empty_folders = Знайдено порожніх папок: { $number_files } compute_found_empty_folders = Знайдено порожніх папок: { $number_files }
compute_found_empty_files = Знайдено порожніх файлів: { $number_files } compute_found_empty_files = Знайдено порожніх файлів: { $number_files }
compute_found_big_files = Знайдено великих файлів: { $number_files } compute_found_big_files = Знайдено великих файлів: { $number_files }

View file

@ -45,11 +45,11 @@ duplicate_check_method_tooltip =
image_hash_size_tooltip = image_hash_size_tooltip =
每张选中的图像都会产生可相互比较的特殊哈希值,而它们之间的小差意味着这张图像是相似的。 每张选中的图像都会产生可相互比较的特殊哈希值,而它们之间的小差意味着这张图像是相似的。
8 个散列尺寸非常适合于找到与原始相似的图像。 随着更大的图像集 (>1000) 将产生大量的虚假正数,因此我建议使用这种更大的散列大小。 8 个散列尺寸非常适合于找到与原始相似的图像。 随着更大的图像集(>1000) 将产生大量的虚假正数,因此我建议使用这种更大的散列大小。
16 是默认的散列大小,它很好地影响了找到哪怕是略类似的图像和少量散列碰撞。 16 是默认的散列大小,它很好地影响了找到哪怕是略类似的图像和少量散列碰撞。
32和64 哈希只找到非常相似的图像,但几乎不应该有任何假正数 (可能只有一些透明通道的图像)。 32和64 哈希只找到非常相似的图像,但几乎不应该有任何假正数(可能只有一些透明通道的图像)。
image_resize_filter_tooltip = image_resize_filter_tooltip =
要计算图像散列,库必须首先调整大小。 要计算图像散列,库必须首先调整大小。
@ -145,11 +145,11 @@ upper_notebook_items_configuration = 项目配置
upper_notebook_excluded_directories = 排除的目录 upper_notebook_excluded_directories = 排除的目录
upper_notebook_included_directories = 包含的目录 upper_notebook_included_directories = 包含的目录
upper_allowed_extensions_tooltip = upper_allowed_extensions_tooltip =
允许的扩展必须用逗号分隔 (默认所有可用)。 允许的扩展必须用逗号分隔(默认所有可用)。
同时添加多个扩展的下列宏也可用: IMAGE, VIDEO, MUSIC, TEXT 同时添加多个扩展的下列宏也可用: IMAGE, VIDEO, MUSIC, TEXT
使用示例".exe, IMAGE, VIDEO, .rar, 7z" - 这意味着图像 (e). . jpg、png、视频 (例如avi、mp4)、ex、rar和7z 文件将被扫描。 使用示例".exe, IMAGE, VIDEO, .rar, 7z" - 这意味着图像(e). . jpg、png、视频(例如avi、mp4)、ex、rar和7z 文件将被扫描。
upper_excluded_items_tooltip = upper_excluded_items_tooltip =
排除的项目必须包含 * 通配符,并且应该用逗号分隔。 排除的项目必须包含 * 通配符,并且应该用逗号分隔。
这比排除的目录慢,所以请仔细使用。 这比排除的目录慢,所以请仔细使用。
@ -225,6 +225,11 @@ bottom_hardlink_button_tooltip =
创建硬链接。 创建硬链接。
只在选定组中至少两个结果时有效。 只在选定组中至少两个结果时有效。
第一个不变,第二个和第二个后来是与第一个联系在一起的。 第一个不变,第二个和第二个后来是与第一个联系在一起的。
bottom_hardlink_button_not_available_tooltip =
Create hardlinks.
Button is disabled, because hardlinks cannot be created.
Hardlinks only works with administrator privileges on Windows, so be sure to run app as administrator.
If app already works with such privileges check for similar issues on Github.
bottom_move_button_tooltip = bottom_move_button_tooltip =
移动文件到选定的目录。 移动文件到选定的目录。
它复制所有文件到目录,而不保留目录树。 它复制所有文件到目录,而不保留目录树。
@ -252,6 +257,9 @@ header_about_button_tooltip = 打开包含应用程序信息的对话框。
## General ## General
settings_number_of_threads = Number of used threads
settings_number_of_threads_tooltip = Number of used threads, 0 means that all available threads will be used.
settings_label_restart = You need to restart app to apply settings!
settings_ignore_other_filesystems = 忽略其它文件系统 (仅限Linux) settings_ignore_other_filesystems = 忽略其它文件系统 (仅限Linux)
settings_ignore_other_filesystems_tooltip = settings_ignore_other_filesystems_tooltip =
忽略与搜索的目录不在同一个文件系统中的文件。 忽略与搜索的目录不在同一个文件系统中的文件。
@ -267,7 +275,7 @@ settings_confirm_link_button_tooltip = 点击硬链接/符号链接按钮时显
settings_confirm_group_deletion_button_tooltip = 尝试从群组中删除所有记录时显示警告对话框。 settings_confirm_group_deletion_button_tooltip = 尝试从群组中删除所有记录时显示警告对话框。
settings_show_text_view_button_tooltip = 在用户界面底部显示文本面板。 settings_show_text_view_button_tooltip = 在用户界面底部显示文本面板。
settings_use_cache_button_tooltip = 使用文件缓存。 settings_use_cache_button_tooltip = 使用文件缓存。
settings_save_also_as_json_button_tooltip = 保存缓存为 (人类可读) JSON 格式。可以修改其内容。 如果缺少二进制格式缓存 (带bin extensional),此文件的缓存将被应用自动读取。 settings_save_also_as_json_button_tooltip = 保存缓存为 (人类可读) JSON 格式。可以修改其内容。 如果缺少二进制格式缓存(带bin extensional),此文件的缓存将被应用自动读取。
settings_use_trash_button_tooltip = 将文件移至回收站,而将其永久删除。 settings_use_trash_button_tooltip = 将文件移至回收站,而将其永久删除。
settings_language_label_tooltip = 用户界面的语言。 settings_language_label_tooltip = 用户界面的语言。
settings_save_at_exit_button = 关闭应用时保存配置 settings_save_at_exit_button = 关闭应用时保存配置
@ -284,7 +292,7 @@ settings_multiple_delete_outdated_cache_checkbutton = 自动删除过时的缓
settings_multiple_delete_outdated_cache_checkbutton_tooltip = settings_multiple_delete_outdated_cache_checkbutton_tooltip =
删除指向不存在文件的过时缓存结果。 删除指向不存在文件的过时缓存结果。
如果启用,应用会确保当加载记录时,所有记录都指向有效的文件 (被忽略的文件)。 如果启用,应用会确保当加载记录时,所有记录都指向有效的文件(被忽略的文件)。
禁用这将有助于扫描外部驱动器上的文件,所以在下次扫描中不会清除有关它们的缓存条目。 禁用这将有助于扫描外部驱动器上的文件,所以在下次扫描中不会清除有关它们的缓存条目。
@ -306,15 +314,15 @@ settings_multiple_clear_cache_button = 从图像缓存中删除过时的结果
## Duplicates ## Duplicates
settings_duplicates_hide_hard_link_button_tooltip = settings_duplicates_hide_hard_link_button_tooltip =
隐藏除一个之外的所有文件,如果所有文件都指向相同的数据 (是硬链接)。 隐藏除一个之外的所有文件,如果所有文件都指向相同的数据(是硬链接)。
示例:在存在 (磁盘) 的情况下,七个文件与特定数据有硬链接,一个不同的文件具有相同的数据但不同的内涵, 然后在重复的查找器中,将只显示一个唯一的文件和一个来自硬链接的文件。 示例:在存在(磁盘) 的情况下,七个文件与特定数据有硬链接,一个不同的文件具有相同的数据但不同的内涵, 然后在重复的查找器中,将只显示一个唯一的文件和一个来自硬链接的文件。
settings_duplicates_minimal_size_entry_tooltip = settings_duplicates_minimal_size_entry_tooltip =
设置将缓存的最小文件大小。 设置将缓存的最小文件大小。
选择一个较小的值将生成更多的记录。 这将加速搜索,但减缓缓缓存加载/保存。 选择一个较小的值将生成更多的记录。 这将加速搜索,但减缓缓缓存加载/保存。
settings_duplicates_prehash_checkbutton_tooltip = settings_duplicates_prehash_checkbutton_tooltip =
启用封存 (从文件的一小部分计算的散列) 的缓存,允许提早撤销不重复的结果。 启用封存(从文件的一小部分计算的散列) 的缓存,允许提早撤销不重复的结果。
默认情况下禁用它,因为它会导致某些情况下的减速。 默认情况下禁用它,因为它会导致某些情况下的减速。
@ -323,7 +331,7 @@ settings_duplicates_prehash_minimal_entry_tooltip = 缓存条目的最小尺寸
settings_duplicates_hide_hard_link_button = 隐藏硬链接 (仅限Linux 和 macOS) settings_duplicates_hide_hard_link_button = 隐藏硬链接 (仅限Linux 和 macOS)
settings_duplicates_prehash_checkbutton = 使用捕捉缓存 settings_duplicates_prehash_checkbutton = 使用捕捉缓存
settings_duplicates_minimal_size_cache_label = 保存到缓存的文件最小大小 (字节) settings_duplicates_minimal_size_cache_label = 保存到缓存的文件最小大小 (字节)
settings_duplicates_minimal_size_cache_prehash_label = 文件最小尺寸 (字节) 保存到逮捕缓存 settings_duplicates_minimal_size_cache_prehash_label = 文件最小尺寸(字节) 保存到逮捕缓存
## Saving/Loading settings ## Saving/Loading settings
@ -341,7 +349,7 @@ settings_folder_cache_open_tooltip =
修改缓存文件可能会导致显示无效结果。 然而,当将大量文件移动到另一个位置时,修改路径可能会节省时间。 修改缓存文件可能会导致显示无效结果。 然而,当将大量文件移动到另一个位置时,修改路径可能会节省时间。
您可以在计算机之间复制这些文件以便在扫描文件时节省时间 (当然,如果它们具有类似的目录结构)。 您可以在计算机之间复制这些文件以便在扫描文件时节省时间(当然,如果它们具有类似的目录结构)。
如果缓存出现问题,这些文件可以被删除。应用程序将自动重新生成它们。 如果缓存出现问题,这些文件可以被删除。应用程序将自动重新生成它们。
settings_folder_settings_open_tooltip = settings_folder_settings_open_tooltip =

View file

@ -11,28 +11,28 @@ pub fn connect_about_buttons(gui_data: &GuiData) {
let button_donation = gui_data.about.button_donation.clone(); let button_donation = gui_data.about.button_donation.clone();
button_donation.connect_clicked(move |_| { button_donation.connect_clicked(move |_| {
if let Err(e) = open::that(SPONSOR_SITE) { if let Err(e) = open::that(SPONSOR_SITE) {
println!("Failed to open sponsor site: {}, reason {}", SPONSOR_SITE, e) println!("Failed to open sponsor site: {SPONSOR_SITE}, reason {e}")
}; };
}); });
let button_instruction = gui_data.about.button_instruction.clone(); let button_instruction = gui_data.about.button_instruction.clone();
button_instruction.connect_clicked(move |_| { button_instruction.connect_clicked(move |_| {
if let Err(e) = open::that(INSTRUCTION_SITE) { if let Err(e) = open::that(INSTRUCTION_SITE) {
println!("Failed to open instruction site: {}, reason {}", INSTRUCTION_SITE, e) println!("Failed to open instruction site: {INSTRUCTION_SITE}, reason {e}")
}; };
}); });
let button_repository = gui_data.about.button_repository.clone(); let button_repository = gui_data.about.button_repository.clone();
button_repository.connect_clicked(move |_| { button_repository.connect_clicked(move |_| {
if let Err(e) = open::that(REPOSITORY_SITE) { if let Err(e) = open::that(REPOSITORY_SITE) {
println!("Failed to open repository site: {}, reason {}", REPOSITORY_SITE, e) println!("Failed to open repository site: {REPOSITORY_SITE}, reason {e}")
}; };
}); });
let button_translation = gui_data.about.button_translation.clone(); let button_translation = gui_data.about.button_translation.clone();
button_translation.connect_clicked(move |_| { button_translation.connect_clicked(move |_| {
if let Err(e) = open::that(TRANSLATION_SITE) { if let Err(e) = open::that(TRANSLATION_SITE) {
println!("Failed to open repository site: {}, reason {}", TRANSLATION_SITE, e) println!("Failed to open repository site: {TRANSLATION_SITE}, reason {e}")
}; };
}); });
} }

View file

@ -389,12 +389,12 @@ fn generate_cache_for_results(vector_with_path: Vec<(String, String, TreePath)>)
pixbuf = t; pixbuf = t;
} }
Err(e) => { Err(e) => {
println!("Failed to open image {}, reason {}", full_path, e); println!("Failed to open image {full_path}, reason {e}");
} }
}; };
} }
Err(e) => { Err(e) => {
println!("Failed to open image {}, reason {}", full_path, e); println!("Failed to open image {full_path}, reason {e}");
} }
}; };
break 'czystka; break 'czystka;
@ -407,7 +407,7 @@ fn generate_cache_for_results(vector_with_path: Vec<(String, String, TreePath)>)
pixbuf = t; pixbuf = t;
} }
Err(e) => { Err(e) => {
println!("Failed to open image {}, reason {}", full_path, e); println!("Failed to open image {full_path}, reason {e}");
} }
}; };
} }
@ -416,14 +416,14 @@ fn generate_cache_for_results(vector_with_path: Vec<(String, String, TreePath)>)
loop { loop {
let pixbuf_big = match resize_pixbuf_dimension(pixbuf, (BIG_PREVIEW_SIZE, BIG_PREVIEW_SIZE), InterpType::Nearest) { let pixbuf_big = match resize_pixbuf_dimension(pixbuf, (BIG_PREVIEW_SIZE, BIG_PREVIEW_SIZE), InterpType::Nearest) {
None => { None => {
println!("Failed to resize image {}.", full_path); println!("Failed to resize image {full_path}.");
break; break;
} }
Some(pixbuf) => pixbuf, Some(pixbuf) => pixbuf,
}; };
let pixbuf_small = match resize_pixbuf_dimension(pixbuf_big.clone(), (SMALL_PREVIEW_SIZE, SMALL_PREVIEW_SIZE), InterpType::Nearest) { let pixbuf_small = match resize_pixbuf_dimension(pixbuf_big.clone(), (SMALL_PREVIEW_SIZE, SMALL_PREVIEW_SIZE), InterpType::Nearest) {
None => { None => {
println!("Failed to resize image {}.", full_path); println!("Failed to resize image {full_path}.");
break; break;
} }
Some(pixbuf) => pixbuf, Some(pixbuf) => pixbuf,

View file

@ -28,7 +28,7 @@ fn change_language(gui_data: &GuiData) {
let lang_identifier = vec![LanguageIdentifier::from_bytes(lang_short.as_bytes()).unwrap()]; let lang_identifier = vec![LanguageIdentifier::from_bytes(lang_short.as_bytes()).unwrap()];
for (lib, localizer) in localizers { for (lib, localizer) in localizers {
if let Err(error) = localizer.select(&lang_identifier) { if let Err(error) = localizer.select(&lang_identifier) {
eprintln!("Error while loadings languages for {} {:?}", lib, error); eprintln!("Error while loadings languages for {lib} {error:?}");
} }
} }
gui_data.update_language(); gui_data.update_language();

View file

@ -452,7 +452,7 @@ fn popover_custom_select_unselect(
need_to_change_thing = true; need_to_change_thing = true;
} }
} else { } else {
if Common::regex_check(&name_wildcard.to_lowercase(), &name.to_lowercase()) { if Common::regex_check(&name_wildcard.to_lowercase(), name.to_lowercase()) {
need_to_change_thing = true; need_to_change_thing = true;
} }
} }
@ -463,7 +463,7 @@ fn popover_custom_select_unselect(
need_to_change_thing = true; need_to_change_thing = true;
} }
} else { } else {
if Common::regex_check(&path_wildcard.to_lowercase(), &path.to_lowercase()) { if Common::regex_check(&path_wildcard.to_lowercase(), path.to_lowercase()) {
need_to_change_thing = true; need_to_change_thing = true;
} }
} }

View file

@ -84,7 +84,7 @@ pub fn connect_settings(gui_data: &GuiData) {
let cache_dir = proj_dirs.cache_dir(); let cache_dir = proj_dirs.cache_dir();
if let Err(e) = open::that(cache_dir) { if let Err(e) = open::that(cache_dir) {
println!("Failed to open config folder {:?}, reason {}", cache_dir, e); println!("Failed to open config folder {cache_dir:?}, reason {e}");
}; };
} }
}); });
@ -97,7 +97,7 @@ pub fn connect_settings(gui_data: &GuiData) {
let config_dir = proj_dirs.config_dir(); let config_dir = proj_dirs.config_dir();
if let Err(e) = open::that(config_dir) { if let Err(e) = open::that(config_dir) {
println!("Failed to open config folder {:?}, reason {}", config_dir, e); println!("Failed to open config folder {config_dir:?}, reason {e}");
}; };
} }
}); });

View file

@ -82,6 +82,9 @@ impl GuiBottomButtons {
buttons_select.set_popover(Some(popover_select)); buttons_select.set_popover(Some(popover_select));
#[cfg(target_family = "windows")]
buttons_hardlink.set_sensitive(test_hardlinks());
Self { Self {
buttons_search, buttons_search,
buttons_select, buttons_select,
@ -105,18 +108,57 @@ impl GuiBottomButtons {
get_custom_label_from_widget(&self.buttons_delete.clone()).set_text(&flg!("bottom_delete_button")); get_custom_label_from_widget(&self.buttons_delete.clone()).set_text(&flg!("bottom_delete_button"));
get_custom_label_from_widget(&self.buttons_save.clone()).set_text(&flg!("bottom_save_button")); get_custom_label_from_widget(&self.buttons_save.clone()).set_text(&flg!("bottom_save_button"));
get_custom_label_from_widget(&self.buttons_symlink.clone()).set_text(&flg!("bottom_symlink_button")); get_custom_label_from_widget(&self.buttons_symlink.clone()).set_text(&flg!("bottom_symlink_button"));
get_custom_label_from_widget(&self.buttons_hardlink.clone()).set_text(&flg!("bottom_hardlink_button"));
get_custom_label_from_widget(&self.buttons_move.clone()).set_text(&flg!("bottom_move_button")); get_custom_label_from_widget(&self.buttons_move.clone()).set_text(&flg!("bottom_move_button"));
get_custom_label_from_widget(&self.buttons_hardlink.clone()).set_text(&flg!("bottom_hardlink_button"));
self.buttons_search.set_tooltip_text(Some(&flg!("bottom_search_button_tooltip"))); self.buttons_search.set_tooltip_text(Some(&flg!("bottom_search_button_tooltip")));
self.buttons_select.set_tooltip_text(Some(&flg!("bottom_select_button_tooltip"))); self.buttons_select.set_tooltip_text(Some(&flg!("bottom_select_button_tooltip")));
self.buttons_delete.set_tooltip_text(Some(&flg!("bottom_delete_button_tooltip"))); self.buttons_delete.set_tooltip_text(Some(&flg!("bottom_delete_button_tooltip")));
self.buttons_save.set_tooltip_text(Some(&flg!("bottom_save_button_tooltip"))); self.buttons_save.set_tooltip_text(Some(&flg!("bottom_save_button_tooltip")));
self.buttons_symlink.set_tooltip_text(Some(&flg!("bottom_symlink_button_tooltip"))); self.buttons_symlink.set_tooltip_text(Some(&flg!("bottom_symlink_button_tooltip")));
self.buttons_hardlink.set_tooltip_text(Some(&flg!("bottom_hardlink_button_tooltip")));
self.buttons_move.set_tooltip_text(Some(&flg!("bottom_move_button_tooltip"))); self.buttons_move.set_tooltip_text(Some(&flg!("bottom_move_button_tooltip")));
if self.buttons_hardlink.is_sensitive() {
self.buttons_hardlink.set_tooltip_text(Some(&flg!("bottom_hardlink_button_tooltip")));
} else {
self.buttons_hardlink.set_tooltip_text(Some(&flg!("bottom_hardlink_button_not_available_tooltip")));
}
self.buttons_show_errors.set_tooltip_text(Some(&flg!("bottom_show_errors_tooltip"))); self.buttons_show_errors.set_tooltip_text(Some(&flg!("bottom_show_errors_tooltip")));
self.buttons_show_upper_notebook.set_tooltip_text(Some(&flg!("bottom_show_upper_notebook_tooltip"))); self.buttons_show_upper_notebook.set_tooltip_text(Some(&flg!("bottom_show_upper_notebook_tooltip")));
} }
} }
#[cfg(target_family = "windows")]
fn test_hardlinks() -> bool {
use directories_next::ProjectDirs;
use std::fs;
use std::io::Write;
use std::path::Path;
if let Some(proj_dirs) = ProjectDirs::from("pl", "Qarmin", "Czkawka") {
let cache_dir = proj_dirs.cache_dir();
let cache_file = cache_dir.join(Path::new("GILLES_FROM_NOSE.temp"));
let cache_file_second = cache_dir.join(Path::new("ROBERCIG_LOWANDOWSKI.temp"));
if cache_file.exists() {
let _ = fs::remove_file(&cache_file);
}
if cache_file_second.exists() {
let _ = fs::remove_file(&cache_file_second);
}
if !cache_file.exists() && !cache_file_second.exists() {
if let Ok(mut file_handler) = fs::OpenOptions::new().write(true).create(true).open(&cache_file) {
let _ = writeln!(file_handler, "GURKA");
}
let _ = fs::hard_link(&cache_file, &cache_file_second);
if cache_file.exists() && cache_file_second.exists() {
return true;
}
}
let _ = fs::remove_file(&cache_file);
let _ = fs::remove_file(&cache_file_second);
}
false
}

View file

@ -303,7 +303,7 @@ pub fn add_text_to_text_view(text_view: &TextView, string_to_append: &str) {
if current_text.is_empty() { if current_text.is_empty() {
buffer.set_text(string_to_append); buffer.set_text(string_to_append);
} else { } else {
buffer.set_text(format!("{}\n{}", current_text, string_to_append).as_str()); buffer.set_text(format!("{current_text}\n{string_to_append}").as_str());
} }
} }
@ -669,7 +669,7 @@ pub fn debug_print_widget<P: IsA<Widget>>(item: &P) {
widgets_to_check.push((next_free_number, current_number, widget)); widgets_to_check.push((next_free_number, current_number, widget));
next_free_number += 1; next_free_number += 1;
} }
println!("{}, {}, {:?} ", current_number, parent_number, widget); println!("{current_number}, {parent_number}, {widget:?} ");
} }
} }

View file

@ -12,7 +12,7 @@ pub fn opening_enter_function_ported_upper_directories(event_controller: &gtk4::
let tree_view = event_controller.widget().downcast::<gtk4::TreeView>().unwrap(); let tree_view = event_controller.widget().downcast::<gtk4::TreeView>().unwrap();
#[cfg(debug_assertions)] #[cfg(debug_assertions)]
{ {
println!("key_code {}", key_code); println!("key_code {key_code}");
} }
match get_notebook_upper_enum_from_tree_view(&tree_view) { match get_notebook_upper_enum_from_tree_view(&tree_view) {
@ -68,7 +68,7 @@ pub fn opening_enter_function_ported(event_controller: &gtk4::EventControllerKey
let tree_view = event_controller.widget().downcast::<gtk4::TreeView>().unwrap(); let tree_view = event_controller.widget().downcast::<gtk4::TreeView>().unwrap();
#[cfg(debug_assertions)] #[cfg(debug_assertions)]
{ {
println!("key_code {}", key_code); println!("key_code {key_code}");
} }
let nt_object = get_notebook_object_from_tree_view(&tree_view); let nt_object = get_notebook_object_from_tree_view(&tree_view);
@ -132,7 +132,7 @@ fn common_open_function(tree_view: &gtk4::TreeView, column_name: i32, column_pat
}; };
if let Err(e) = open::that(&end_path) { if let Err(e) = open::that(&end_path) {
println!("Failed to open file {}, reason {}", end_path, e); println!("Failed to open file {end_path}, reason {e}");
}; };
} }
} }
@ -190,7 +190,7 @@ fn common_open_function_upper_directories(tree_view: &gtk4::TreeView, column_ful
let full_path = tree_model.get::<String>(&tree_model.iter(tree_path).unwrap(), column_full_path); let full_path = tree_model.get::<String>(&tree_model.iter(tree_path).unwrap(), column_full_path);
if let Err(e) = open::that(&full_path) { if let Err(e) = open::that(&full_path) {
println!("Failed to open file {}, reason {}", full_path, e); println!("Failed to open file {full_path}, reason {e}");
}; };
} }
} }

View file

@ -98,7 +98,7 @@ impl LoadSaveStruct {
} }
pub fn get_integer_string(&self, key: String, default_value: String) -> String { pub fn get_integer_string(&self, key: String, default_value: String) -> String {
if default_value.parse::<i64>().is_err() { if default_value.parse::<i64>().is_err() {
println!("Default value {} can't be convert to integer value", default_value); println!("Default value {default_value} can't be convert to integer value");
panic!(); panic!();
} }
let mut returned_value = self.get_string(key, default_value.clone()); let mut returned_value = self.get_string(key, default_value.clone());
@ -119,7 +119,7 @@ impl LoadSaveStruct {
&self.text_view, &self.text_view,
&flg!( &flg!(
"saving_loading_invalid_string", "saving_loading_invalid_string",
generate_translation_hashmap(vec![("key", key), ("result", format!("{:?}", item))]) generate_translation_hashmap(vec![("key", key), ("result", format!("{item:?}"))])
), ),
); );
default_value default_value
@ -145,7 +145,7 @@ impl LoadSaveStruct {
&self.text_view, &self.text_view,
&flg!( &flg!(
"saving_loading_invalid_int", "saving_loading_invalid_int",
generate_translation_hashmap(vec![("key", key), ("result", format!("{:?}", item))]) generate_translation_hashmap(vec![("key", key), ("result", format!("{item:?}"))])
), ),
); );
default_value default_value
@ -178,7 +178,7 @@ impl LoadSaveStruct {
&self.text_view, &self.text_view,
&flg!( &flg!(
"saving_loading_invalid_bool", "saving_loading_invalid_bool",
generate_translation_hashmap(vec![("key", key), ("result", format!("{:?}", item))]) generate_translation_hashmap(vec![("key", key), ("result", format!("{item:?}"))])
), ),
); );
default_value default_value
@ -351,7 +351,7 @@ impl LoadSaveStruct {
if let Some((mut config_file_handler, config_file)) = self.open_save_file(text_view_errors, true, false) { if let Some((mut config_file_handler, config_file)) = self.open_save_file(text_view_errors, true, false) {
let mut data_saved: bool = false; let mut data_saved: bool = false;
for (key, vec_string) in &self.loaded_items { for (key, vec_string) in &self.loaded_items {
match writeln!(config_file_handler, "{}", key) { match writeln!(config_file_handler, "{key}") {
Ok(_inspected) => { Ok(_inspected) => {
data_saved = true; data_saved = true;
} }
@ -361,7 +361,7 @@ impl LoadSaveStruct {
} }
} }
for data in vec_string { for data in vec_string {
match writeln!(config_file_handler, "{}", data) { match writeln!(config_file_handler, "{data}") {
Ok(_inspected) => { Ok(_inspected) => {
data_saved = true; data_saved = true;
} }
@ -492,8 +492,8 @@ fn create_hash_map() -> (HashMap<LoadText, String>, HashMap<String, LoadText>) {
let mut hashmap_sl: HashMap<String, LoadText> = Default::default(); let mut hashmap_sl: HashMap<String, LoadText> = Default::default();
for (load_text, string) in values { for (load_text, string) in values {
hashmap_ls.insert(load_text, format!("--{}", string)); hashmap_ls.insert(load_text, format!("--{string}"));
hashmap_sl.insert(format!("--{}", string), load_text); hashmap_sl.insert(format!("--{string}"), load_text);
} }
(hashmap_ls, hashmap_sl) (hashmap_ls, hashmap_sl)