Merge branch 'pop-os:master' into item-display-name

This commit is contained in:
Cheong Lau 2025-11-05 22:49:34 +00:00 committed by GitHub
commit 5aa8a8ff76
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 604 additions and 534 deletions

View file

@ -15,8 +15,6 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- run: sudo apt-get update; sudo apt-get install desktop-file-utils libclang-dev libglib2.0-dev libxkbcommon-dev - run: sudo apt-get update; sudo apt-get install libclang-dev libglib2.0-dev libxkbcommon-dev
# Disable until GitHub Actions uses Ubuntu 26.04.
# - run: desktop-file-validate --no-hints ./res/com.system76.CosmicFiles.desktop
- run: rustup update stable && rustup default stable - run: rustup update stable && rustup default stable
- run: cargo test --verbose - run: cargo test --verbose

View file

@ -0,0 +1,36 @@
name: Validate .desktop files
on:
push:
branches:
- master
pull_request:
jobs:
validate:
runs-on: ubuntu-latest
container:
image: ubuntu:25.10
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install desktop-file-utils
run: |
apt-get update
apt-get install -y desktop-file-utils findutils
- name: Validate .desktop files
run: |
set -e
echo "Checking for .desktop files..."
files=$(find . -type f -name "*.desktop")
if [ -z "$files" ]; then
echo "No .desktop files found."
exit 0
fi
echo "$files" | while read -r file; do
echo "Validating: $file"
desktop-file-validate "$file"
done

665
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -9,7 +9,7 @@ rust-version = "1.85"
[dependencies] [dependencies]
anyhow = "1" anyhow = "1"
chrono = { version = "0.4", features = ["unstable-locales"] } chrono = { version = "0.4", features = ["unstable-locales"] }
icu = { version = "2.0.0", features = ["compiled_data"] } icu = { version = "2.1.1", features = ["compiled_data"] }
cctk = { git = "https://github.com/pop-os/cosmic-protocols", package = "cosmic-client-toolkit", rev = "d0e95be", optional = true } cctk = { git = "https://github.com/pop-os/cosmic-protocols", package = "cosmic-client-toolkit", rev = "d0e95be", optional = true }
cosmic-mime-apps = { git = "https://github.com/pop-os/cosmic-mime-apps.git", optional = true } cosmic-mime-apps = { git = "https://github.com/pop-os/cosmic-mime-apps.git", optional = true }
dirs = "6.0.0" dirs = "6.0.0"
@ -45,8 +45,8 @@ xdg-mime = { git = "https://github.com/ebassi/xdg-mime-rs" }
bzip2 = { version = "0.6", optional = true } #TODO: replace with pure Rust crate bzip2 = { version = "0.6", optional = true } #TODO: replace with pure Rust crate
flate2 = "1.1" flate2 = "1.1"
tar = "0.4.44" tar = "0.4.44"
lzma-rust2 = { version = "0.14", optional = true } lzma-rust2 = { version = "0.15", optional = true }
ordermap = { version = "0.5.12", features = ["serde"] } ordermap = { version = "1.0.0", features = ["serde"] }
# Internationalization # Internationalization
i18n-embed = { version = "0.16", features = [ i18n-embed = { version = "0.16", features = [
"fluent-system", "fluent-system",
@ -56,7 +56,7 @@ i18n-embed-fl = "0.10"
rust-embed = "8" rust-embed = "8"
slotmap = "1.0.7" slotmap = "1.0.7"
recently-used-xbel = { git = "https://github.com/pop-os/recently-used-xbel.git" } recently-used-xbel = { git = "https://github.com/pop-os/recently-used-xbel.git" }
zip = "5.1.1" zip = "6.0"
uzers = "0.12.1" uzers = "0.12.1"
md-5 = "0.10.6" md-5 = "0.10.6"
png = "0.18" png = "0.18"
@ -70,7 +70,7 @@ default-features = false
features = ["io", "macros", "polling", "runtime"] features = ["io", "macros", "polling", "runtime"]
[dependencies.io-uring] [dependencies.io-uring]
version = "0.7.10" version = "0.7.11"
default-features = false default-features = false
optional = true optional = true
@ -111,7 +111,7 @@ inherits = "release"
debug = true debug = true
[target.'cfg(unix)'.dependencies] [target.'cfg(unix)'.dependencies]
fork = "0.2" fork = "0.4"
[target.'cfg(target_os = "linux")'.dependencies] [target.'cfg(target_os = "linux")'.dependencies]
procfs = "0.18" procfs = "0.18"

View file

@ -110,7 +110,7 @@ rename-folder = Преименуване на папката
## Replace Dialog ## Replace Dialog
replace = Замяна replace = Заменяне
replace-title = „{ $filename }“ вече съществува на това местоположение. replace-title = „{ $filename }“ вече съществува на това местоположение.
replace-warning = Искате ли да го замените с този, който запазвате? Ако го замените, ще презапишете съдържанието му. replace-warning = Искате ли да го замените с този, който запазвате? Ако го замените, ще презапишете съдържанието му.
replace-warning-operation = Искате ли да го замените? Ако го замените, ще презапишете съдържанието му. replace-warning-operation = Искате ли да го замените? Ако го замените, ще презапишете съдържанието му.
@ -342,7 +342,7 @@ single-click = Отваряне с едно натискане
### Appearance ### Appearance
appearance = Външен вид appearance = Външен вид
theme = Стил theme = Тема
match-desktop = Системен match-desktop = Системен
dark = Тъмен dark = Тъмен
light = Светъл light = Светъл

View file

@ -184,11 +184,14 @@ deleting =
} z { trash } ({ $progress })... } z { trash } ({ $progress })...
sort-by-trashed = Seřadit podle času smazání sort-by-trashed = Seřadit podle času smazání
deleted = deleted =
{ $items } { $items -> { $items ->
[one] položka smazána [one] Smazána
[few] položky smazány [few] Smazány
[many] položek smazáno *[other] Smazáno
*[other] položek smazáno } { $items } { $items ->
[one] položka
[few] položky
*[other] položek
} z { trash } } z { trash }
emptying-trash = Vysypávám { trash } ({ $progress })... emptying-trash = Vysypávám { trash } ({ $progress })...
emptied-trash = { trash } byl vysypán emptied-trash = { trash } byl vysypán
@ -198,18 +201,24 @@ restoring =
*[other] položek *[other] položek
} z { trash } ({ $progress })... } z { trash } ({ $progress })...
restored = restored =
{ $items } { $items -> { $items ->
[one] položka obnovena [one] Obnovena
[few] položky obnoveny [few] Obnoveny
[many] položek obnoveno *[other] Obnoveno
*[other] položek obnoveno } { $items } { $items ->
[one] položka
[few] položky
*[other] položek
} z { trash } } z { trash }
permanently-deleted = permanently-deleted =
{ $items } { $items -> Trvale { $items ->
[one] položka trvale smazána [one] smazána
[few] položky trvale smazány [few] smazány
[many] položek trvale smazáno *[other] smazáno
*[other] položek trvale smazáno } { $items } { $items ->
[one] položka
[few] položky
*[other] položek
} }
delete-permanently = Smazat trvale delete-permanently = Smazat trvale
trashed-on = Smazáno trashed-on = Smazáno
@ -218,19 +227,16 @@ operations-running =
Běží { $running } { $running -> Běží { $running } { $running ->
[one] operace [one] operace
[few] operace [few] operace
[many] operací
*[other] operací *[other] operací
} ({ $percent }%)... } ({ $percent }%)...
operations-running-finished = operations-running-finished =
Běží { $running } { $running -> Běží { $running } { $running ->
[one] operace [one] operace
[few] operace [few] operace
[many] operací
*[other] operací *[other] operací
} ({ $percent }%), { $finished } { $finished -> } ({ $percent }%), { $finished } { $finished ->
[one] dokončena... [one] dokončena...
[few] dokončeny... [few] dokončeny...
[many] dokončeno...
*[other] dokončeno... *[other] dokončeno...
} }
apply-to-all = Použít na vše apply-to-all = Použít na vše
@ -274,11 +280,14 @@ compressing =
*[other] položek *[other] položek
} z "{ $from }" do "{ $to }" ({ $progress })... } z "{ $from }" do "{ $to }" ({ $progress })...
compressed = compressed =
{ $items } { $items -> { $items ->
[one] položka zkomprimována [one] Zkomprimována
[few] položky zkomprimovány [few] Zkomprimovány
[many] položek zkomprimováno *[other] Zkomprimováno
*[other] položek zkomprimováno } { $items } { $items ->
[one] položka
[few] položky
*[other] položek
} z "{ $from }" do "{ $to }" } z "{ $from }" do "{ $to }"
creating = Vytváření "{ $name }" v "{ $parent }" creating = Vytváření "{ $name }" v "{ $parent }"
created = Vytvořen "{ $name }" v "{ $parent }" created = Vytvořen "{ $name }" v "{ $parent }"
@ -288,11 +297,14 @@ copying =
*[other] položek *[other] položek
} z "{ $from }" do "{ $to }" ({ $progress })... } z "{ $from }" do "{ $to }" ({ $progress })...
copied = copied =
{ $items } { $items -> { $items ->
[one] položka zkopírována [one] Zkopírována
[few] položky zkopírovány [few] Zkopírovány
[many] položek zkopírováno *[other] Zkopírováno
*[other] položek zkopírováno } { $items } { $items ->
[one] položka
[few] položky
*[other] položek
} z "{ $from }" do "{ $to }" } z "{ $from }" do "{ $to }"
extracting = extracting =
Extrahování { $items } { $items -> Extrahování { $items } { $items ->
@ -310,11 +322,14 @@ read-write-execute = Čtení, zápis a spouštění
read-write = Čtení a zápis read-write = Čtení a zápis
favorite-path-error = Chyba otevírání složky favorite-path-error = Chyba otevírání složky
extracted = extracted =
{ $items } { $items -> { $items ->
[one] položka extrahována [one] Extrahována
[few] položky extrahovány [few] Extrahovány
[many] položek extrahováno *[other] Extrahováno
*[other] položek extrahováno } { $items } { $items ->
[one] položka
[few] položky
*[other] položek
} z "{ $from }" do "{ $to }" } z "{ $from }" do "{ $to }"
setting-executable-and-launching = Nastavování "{ $name }" jako spustitelného souboru a spouštění setting-executable-and-launching = Nastavování "{ $name }" jako spustitelného souboru a spouštění
set-executable-and-launched = "{ $name }" nastaven jako spustitelný soubor a spuštěn set-executable-and-launched = "{ $name }" nastaven jako spustitelný soubor a spuštěn
@ -326,11 +341,14 @@ moving =
*[other] položek *[other] položek
} z "{ $from }" do "{ $to }" ({ $progress })... } z "{ $from }" do "{ $to }" ({ $progress })...
moved = moved =
{ $items } { $items -> { $items ->
[one] položka přesunuta [one] Přesunuta
[few] položky přesunuty [few] Přesunuty
[many] položek přesunuto *[other] Přesunuto
*[other] položek přesunuto } { $items } { $items ->
[one] položka
[few] položky
*[other] položek
} z "{ $from }" do "{ $to }" } z "{ $from }" do "{ $to }"
permanently-deleting = permanently-deleting =
Trvalé mazání { $items } { $items -> Trvalé mazání { $items } { $items ->
@ -343,11 +361,14 @@ removing-from-recents =
*[other] položek *[other] položek
} z { recents } } z { recents }
removed-from-recents = removed-from-recents =
{ $items } { $items -> { $items ->
[one] položka odstraněna [one] Odstraněna
[few] položky odstraněny [few] Odstraněny
[many] položek odstraněno *[other] Odstraněno
*[other] položek odstraněno } { $items } { $items ->
[one] položka
[few] položky
*[other] položek
} z { recents } } z { recents }
remove-from-recents = Odstranit z nedávných remove-from-recents = Odstranit z nedávných
renaming = Přejmenování "{ $from }" na "{ $to }" renaming = Přejmenování "{ $from }" na "{ $to }"

View file

@ -397,3 +397,4 @@ sort-newest-first = Neueste zuerst
sort-oldest-first = Älteste zuerst sort-oldest-first = Älteste zuerst
sort-smallest-to-largest = Kleinste bis größte sort-smallest-to-largest = Kleinste bis größte
sort-largest-to-smallest = Größte bis kleinste sort-largest-to-smallest = Größte bis kleinste
repository = Repository

0
i18n/gu/cosmic_files.ftl Normal file
View file

View file

@ -211,7 +211,7 @@ show-details = विवरण दिखाएँ
## Settings ## Settings
settings = सेटिंग्स settings = सेटिंग
### Appearance ### Appearance
@ -283,5 +283,5 @@ sort-newest-first = नए से पुराने
sort-oldest-first = पुराने से नए sort-oldest-first = पुराने से नए
sort-smallest-to-largest = छोटे से बड़े sort-smallest-to-largest = छोटे से बड़े
sort-largest-to-smallest = बड़े से छोटे sort-largest-to-smallest = बड़े से छोटे
repository = रिपाॅज़िटरी repository = रिपॉजिटरी
support = सहायता support = सहायता

View file

@ -2,7 +2,7 @@ cosmic-files = Gestor de Arquivos COSMIC
empty-folder = Pasta vazia empty-folder = Pasta vazia
empty-folder-hidden = Pasta vazia (contém itens ocultos) empty-folder-hidden = Pasta vazia (contém itens ocultos)
no-results = Nenhum item encontrado no-results = Nenhum item encontrado
filesystem = Sistema de Arquivos filesystem = Sistema de arquivos
home = Pasta pessoal home = Pasta pessoal
networks = Redes networks = Redes
notification-in-progress = Há operações de arquivo em andamento. notification-in-progress = Há operações de arquivo em andamento.
@ -12,7 +12,7 @@ undo = Desfazer
today = Hoje today = Hoje
# Desktop view options # Desktop view options
desktop-view-options = Opções de visualização da área de trabalho... desktop-view-options = Opções de visualização da área de trabalho...
show-on-desktop = Mostrar na área de trabalho show-on-desktop = Mostrar na Área de trabalho
desktop-folder-content = Conteúdo da pasta da área de trabalho desktop-folder-content = Conteúdo da pasta da área de trabalho
mounted-drives = Dispositivos montados mounted-drives = Dispositivos montados
trash-folder-icon = Ícone da lixeira trash-folder-icon = Ícone da lixeira
@ -21,7 +21,7 @@ icon-size = Tamanho do ícone
grid-spacing = Espaçamento entre ícones grid-spacing = Espaçamento entre ícones
# List view # List view
name = Nome name = Nome
modified = Modificação modified = Modificado
trashed-on = Enviado à lixeira trashed-on = Enviado à lixeira
size = Tamanho size = Tamanho
# Progress footer # Progress footer
@ -56,11 +56,11 @@ extract-to-title = Extrair para pasta
## Empty Trash Dialog ## Empty Trash Dialog
empty-trash = Esvaziar a lixeira empty-trash = Esvaziar a lixeira
empty-trash-warning = Tem certeza de que deseja apagar permanentemente todos os itens da lixeira? empty-trash-warning = Tem certeza de que deseja excluir permanentemente todos os itens da lixeira?
## Mount Error Dialog ## Mount Error Dialog
mount-error = Não foi possível acessar o dispositivo mount-error = Não é possível acessar a unidade
## New File/Folder Dialog ## New File/Folder Dialog
@ -68,16 +68,16 @@ create-new-file = Criar novo arquivo
create-new-folder = Criar nova pasta create-new-folder = Criar nova pasta
file-name = Nome do arquivo file-name = Nome do arquivo
folder-name = Nome da pasta folder-name = Nome da pasta
file-already-exists = Já existe um arquivo com este nome. file-already-exists = Já existe um arquivo com esse nome.
folder-already-exists = Já existe uma pasta com este nome. folder-already-exists = Já existe uma pasta com esse nome.
name-hidden = Nomes iniciando com "." serão ocultados. name-hidden = Os nomes que começam com "." serão ocultados.
name-invalid = O nome não pode ser "{ $filename }". name-invalid = O nome não pode ser "{ $filename }".
name-no-slashes = O nome não pode conter barras. name-no-slashes = O nome não pode conter barras.
## Open/Save Dialog ## Open/Save Dialog
cancel = Cancelar cancel = Cancelar
create = Confirmar create = Criar
open = Abrir open = Abrir
open-file = Abrir arquivo open-file = Abrir arquivo
open-folder = Abrir pasta open-folder = Abrir pasta
@ -112,8 +112,8 @@ rename-folder = Renomear pasta
replace = Substituir replace = Substituir
replace-title = "{ $filename }" já existe neste local. replace-title = "{ $filename }" já existe neste local.
replace-warning = Deseja substituir o arquivo com o que você está salvando? Substituí-lo irá sobrescrever seu conteúdo. replace-warning = Deseja substituí-lo por aquele que está salvando? Ao substituí-lo, seu conteúdo será sobrescrito.
replace-warning-operation = Deseja substituir o arquivo? Substituí-lo irá sobrescrever seu conteúdo. replace-warning-operation = Deseja substituí-lo? Ao substituí-lo, seu conteúdo será sobrescrito.
original-file = Arquivo original original-file = Arquivo original
replace-with = Substituir por replace-with = Substituir por
apply-to-all = Aplicar a todos apply-to-all = Aplicar a todos
@ -122,8 +122,8 @@ skip = Ignorar
## Set as Executable and Launch Dialog ## Set as Executable and Launch Dialog
set-executable-and-launch = Marcar como executável e iniciar set-executable-and-launch = Definir como executável e iniciar
set-executable-and-launch-description = Deseja marcar "{ $name }" como executável e iniciá-lo? set-executable-and-launch-description = Deseja definir "{ $name }" como executável e iniciá-lo?
set-and-launch = Marcar e iniciar set-and-launch = Marcar e iniciar
## Metadata Dialog ## Metadata Dialog

View file

@ -5,7 +5,7 @@ no-results = Inga resultat hittades
filesystem = Filsystem filesystem = Filsystem
home = Hem home = Hem
networks = Nätverk networks = Nätverk
notification-in-progress = Filoperationer pågår. notification-in-progress = Filåtgärder pågår.
trash = Papperskorg trash = Papperskorg
recents = Senaste recents = Senaste
undo = Ångra undo = Ångra
@ -47,7 +47,7 @@ folder-name = Mappnamn
file-already-exists = En fil med det namnet finns redan. file-already-exists = En fil med det namnet finns redan.
folder-already-exists = En mapp med det namnet finns redan. folder-already-exists = En mapp med det namnet finns redan.
name-hidden = Namn som börjar med "." kommer att vara dolda. name-hidden = Namn som börjar med "." kommer att vara dolda.
name-invalid = Namnet kan inte vara "{ $filename }". name-invalid = Namnet får inte vara "{ $filename }".
name-no-slashes = Namnet får inte innehålla snedstreck. name-no-slashes = Namnet får inte innehålla snedstreck.
## Öppna/Spara dialogruta ## Öppna/Spara dialogruta
@ -77,9 +77,9 @@ rename-folder = Byt namn på mapp
## Ersätt dialogruta ## Ersätt dialogruta
replace = Ersätt replace = Byt ut
replace-title = "{ $filename }" existerar redan på den här platsen. replace-title = "{ $filename }" finns redan på den här platsen.
replace-warning = Vill du ersätta den med den du sparar? Om du ersätter den kommer dess innehåll att skrivas över. replace-warning = Vill du ersätta filen med den du sparar? Om du ersätter den kommer dess innehåll att skrivas över.
replace-warning-operation = Vill du ersätta den? Om du ersätter den kommer dess innehåll att skrivas över. replace-warning-operation = Vill du ersätta den? Om du ersätter den kommer dess innehåll att skrivas över.
original-file = Originalfil original-file = Originalfil
replace-with = Ersätt med replace-with = Ersätt med
@ -109,15 +109,15 @@ details = Detaljer
dismiss = Avfärda meddelande dismiss = Avfärda meddelande
operations-running = operations-running =
{ $running } { $running -> { $running } { $running ->
[one] operation [one] åtgärd
*[other] operationer *[other] åtgärder
} kör ({ $percent }%)... } kör ({ $percent }%)...
operations-running-finished = operations-running-finished =
{ $running } { $running -> { $running } { $running ->
[one] operation [one] åtgärd
*[other] operationer *[other] åtgärder
} kör ({ $percent }%), { $finished } slutförda... } kör ({ $percent }%), { $finished } slutförda...
pause = Paus pause = Pausa
resume = Återuppta resume = Återuppta
# Kontextsidor # Kontextsidor
@ -168,15 +168,15 @@ failed = Misslyckad
complete = Färdig complete = Färdig
compressing = compressing =
Komprimerar { $items } { $items -> Komprimerar { $items } { $items ->
[one] item [one] objekt
*[other] items *[other] objekt
} from "{ $from }" to "{ $to }" ({ $progress })... } från "{ $from }" till "{ $to }" ({ $progress })...
compressed = compressed =
Komprimerade { $items } { $items -> Komprimerade { $items } { $items ->
[one] item [one] objekt
*[other] items *[other] objekt
} from "{ $from }" to "{ $to }" } från "{ $from }" till "{ $to }"
copy_noun = Koperia copy_noun = Kopiera
creating = Skapar "{ $name }" i "{ $parent }" creating = Skapar "{ $name }" i "{ $parent }"
created = Skapade "{ $name }" i "{ $parent }" created = Skapade "{ $name }" i "{ $parent }"
copying = copying =
@ -202,7 +202,7 @@ extracted =
*[other] flera objekt *[other] flera objekt
} från "{ $from }" till "{ $to }" } från "{ $from }" till "{ $to }"
setting-executable-and-launching = Gör "{ $name }" körbar och startar setting-executable-and-launching = Gör "{ $name }" körbar och startar
set-executable-and-launched = Gör "{ $name }" körbar och startar set-executable-and-launched = Gjorde "{ $name }" körbar och startade
moving = moving =
Flyttar { $items } { $items -> Flyttar { $items } { $items ->
[one] objekt [one] objekt
@ -213,8 +213,8 @@ moved =
[one] objekt [one] objekt
*[other] flera objekt *[other] flera objekt
} från "{ $from }" till "{ $to }" } från "{ $from }" till "{ $to }"
renaming = Byter namn "{ $from }" till "{ $to }" renaming = Byter namn "{ $from }" till "{ $to }"
renamed = Bytt namn "{ $from }" till "{ $to }" renamed = Bytt namn "{ $from }" till "{ $to }"
restoring = restoring =
Återställer { $items } { $items -> Återställer { $items } { $items ->
[one] objekt [one] objekt
@ -256,8 +256,8 @@ single-click = Ett enkelklick för att öppna
appearance = Utseende appearance = Utseende
theme = Tema theme = Tema
match-desktop = Matcha skrivbordet match-desktop = Matcha skrivbordet
dark = Mörk dark = Mörkt
light = Ljus light = Ljust
### Skriv för att söka ### Skriv för att söka
@ -316,14 +316,14 @@ list-view = Listvy
show-hidden-files = Visa dolda filer show-hidden-files = Visa dolda filer
list-directories-first = Lista mappar först list-directories-first = Lista mappar först
gallery-preview = Galleri förhandsvisning gallery-preview = Galleri förhandsvisning
menu-settings = Inställningar... menu-settings = Inställningar
menu-about = Om COSMIC Filer... menu-about = Om COSMIC Filer...
## Sortera ## Sortera
sort = Sortera sort = Sortera
sort-a-z = A-Z sort-a-z = A-Ö
sort-z-a = Z-A sort-z-a = Ö-A
sort-newest-first = Nyaste först sort-newest-first = Nyaste först
sort-oldest-first = Äldst först sort-oldest-first = Äldst först
sort-smallest-to-largest = Minsta till största sort-smallest-to-largest = Minsta till största
@ -362,7 +362,7 @@ deleting =
*[other] objekt *[other] objekt
} från { trash } ({ $progress })... } från { trash } ({ $progress })...
deleted = deleted =
Raderade { $items } { $items -> Borttagna { $items } { $items ->
[one] objekt [one] objekt
*[other] objekt *[other] objekt
} från { trash } } från { trash }
@ -374,10 +374,10 @@ permanently-deleting =
*[other] objekt *[other] objekt
} permanent } permanent
permanently-deleted = permanently-deleted =
Raderade { $items } { $items -> Permanent borttagna { $items } { $items ->
[one] objekt [one] objekt
*[other] objekt *[other] objekt
} permanent }
removing-from-recents = removing-from-recents =
Tar bort { $items } { $items -> Tar bort { $items } { $items ->
[one] objekt [one] objekt
@ -388,7 +388,7 @@ removed-from-recents =
[one] objekt [one] objekt
*[other] objekt *[other] objekt
} från { recents } } från { recents }
delete-permanently = Radera permanent delete-permanently = Ta bort permanent
eject = Mata ut eject = Mata ut
remove-from-recents = Ta bort från senaste remove-from-recents = Ta bort från senaste
reload-folder = Ladda om mapp reload-folder = Ladda om mapp

View file

@ -17,7 +17,7 @@ size = Розмір
## Empty Trash Dialog ## Empty Trash Dialog
empty-trash = Спорожнити Смітник empty-trash = Спорожнити Смітник
empty-trash-warning = Ви впевнені, що хочете остаточно видалити всі обʼєкти зі Смітника? empty-trash-warning = Ви впевнені, що хочете остаточно видалити всі елементи зі Смітника?
## New File/Folder Dialog ## New File/Folder Dialog
@ -53,8 +53,8 @@ rename-folder = Перейменувати теку
replace = Замінити replace = Замінити
replace-title = " { $filename }" вже існує в цьому місці. replace-title = " { $filename }" вже існує в цьому місці.
replace-warning = Бажаєте замінити його на той, що ви зберігаєте зараз? Заміна призведе до перезапису його вмісту. replace-warning = Бажаєте замінити його тим, що зберігаєте? Замінювання перезапише його вміст.
replace-warning-operation = Ви бажаєте замінити його? Заміна призведе до перезапису його вмісту. replace-warning-operation = Бажаєте замінити його? Замінювання перезапише його вміст.
original-file = Початковий файл original-file = Початковий файл
replace-with = Замінити на replace-with = Замінити на
apply-to-all = Застосувати до всіх apply-to-all = Застосувати до всіх
@ -74,32 +74,32 @@ history = Історія
no-history = Немає елементів у історії. no-history = Немає елементів у історії.
pending = В очікуванні pending = В очікуванні
failed = Не вдалося failed = Не вдалося
complete = Завершено complete = Завершити
copy_noun = Копіювати copy_noun = Копіювати
creating = Створення "{ $name }" в " { $parent }" creating = Створення "{ $name }" у " { $parent }"
created = Створено "{ $name }" в "{ $parent }" created = Створено "{ $name }" у "{ $parent }"
copying = copying =
Копіювання { $items } { $items -> Копіювання { $items } { $items ->
[one] обʼєкта [one] обʼєкта
*[other] обʼєктів *[other] обʼєктів
} з "{ $from }" в "{ $to }" ({ $progress })... } з "{ $from }" до "{ $to }" ({ $progress })...
copied = copied =
Скопійовано { $items } { $items -> Скопійовано { $items } { $items ->
[one] обʼєкт [one] обʼєкт
*[other] обʼєктів *[other] обʼєкти
} з "{ $from }" в "{ $to }" } з "{ $from }" до "{ $to }"
emptying-trash = Спорожнення { trash } ({ $progress })... emptying-trash = Спорожнення { trash } ({ $progress })...
emptied-trash = Спорожнено { trash } emptied-trash = Спорожнено { trash }
moving = moving =
Переміщення { $items } { $items -> Переміщення { $items } { $items ->
[one] обʼєкта [one] обʼєкта
*[other] обʼєктів *[other] обʼєктів
} з { $from } в "{ $to }" ({ $progress })... } з { $from } до "{ $to }" ({ $progress })...
moved = moved =
Переміщено { $items } { $items -> Переміщено { $items } { $items ->
[one] обʼєкт [one] обʼєкт
*[other] обʼєкти *[other] обʼєкти
} з "{ $from }" в "{ $to }" } з "{ $from }" до "{ $to }"
renaming = Перейменування "{ $from }" на "{ $to }" renaming = Перейменування "{ $from }" на "{ $to }"
renamed = Перейменовано "{ $from }" на "{ $to }" renamed = Перейменовано "{ $from }" на "{ $to }"
restoring = restoring =
@ -181,7 +181,7 @@ repository = Репозиторій
support = Підтримка support = Підтримка
details = Деталі details = Деталі
dismiss = Закрити повідомлення dismiss = Закрити повідомлення
remove = Видалити remove = Вилучити
cancelled = Скасовані cancelled = Скасовані
no-results = Нічого не знайдено no-results = Нічого не знайдено
networks = Мережі networks = Мережі
@ -192,45 +192,39 @@ show-on-desktop = Показувати на стільниці
desktop-folder-content = Вміст теки Стільниця desktop-folder-content = Вміст теки Стільниця
mounted-drives = Змонтовані диски mounted-drives = Змонтовані диски
trash-folder-icon = Піктограма теки Смітник trash-folder-icon = Піктограма теки Смітник
icon-size-and-spacing = Розмір піктограм та відстань між ними icon-size-and-spacing = Розмір піктограм і відстань між ними
icon-size = Розмір піктограм icon-size = Розмір піктограм
grid-spacing = Відстань між піктограмами grid-spacing = Відстань між піктограмами
trashed-on = У смітнику trashed-on = У смітнику
operations-running = operations-running =
Виконується { $running } { $running -> { $running } { $running ->
[zero] операцій
[one] операція [one] операція
[few] операції *[other] операції
[many] операцій } виконується ({ $percent }%)...
*[other] операцій
} ({ $percent }%)...
operations-running-finished = operations-running-finished =
Виконується { $running } { $running -> { $running } { $running ->
[zero] операцій
[one] операція [one] операція
[few] операції *[other] операціі
[many] операцій } виконується ({ $percent }%), { $finished } завершено...
*[other] операцій pause = Призупинити
} ({ $percent }%), з них { $finished } вже виконано... resume = Продовжити
pause = Зупинити
resume = Відновити
create-archive = Створити архів create-archive = Створити архів
extract-password-required = Потрібен пароль extract-password-required = Потрібен пароль
extract-to = Видобути до... extract-to = Видобути до...
extract-to-title = Видобути до теки extract-to-title = Видобути до теки
mount-error = Неможливо отримати доступ до диска mount-error = Неможливо отримати доступ до диска
create = Створити create = Створити
open-item-location = Відкрити розташування файлу open-item-location = Відкрити розташування елемента
open-with-title = Як ви бажаєте відкрити "{ $name }"? open-with-title = Як ви бажаєте відкрити "{ $name }"?
browse-store = Переглянути { $store } browse-store = Переглянути { $store }
other-apps = Інші застосунки other-apps = Інші застосунки
related-apps = Пов'язані застосунки related-apps = Пов'язані застосунки
permanently-delete-question = Вилучити остаточно permanently-delete-question = Вилучити остаточно
delete = Вилучити delete = Вилучити
permanently-delete-warning = Ви справді бажаєте остаточно видалити { $target }? Це неможливо скасувати. permanently-delete-warning = Ви впевнені, що хочете остаточно вилучити { $target }? Дію неможливо скасувати.
set-executable-and-launch = Зробити виконуваним та запустити set-executable-and-launch = Зробити виконуваним і запустити
set-executable-and-launch-description = Ви справді бажаєте зробити "{ $name }" виконуваним та запустити його? set-executable-and-launch-description = Бажаєте зробити "{ $name }" виконуваним і запустити його?
set-and-launch = Встановити та запустити set-and-launch = Зробити і запустити
open-with = Відкрити за допомогою open-with = Відкрити за допомогою
owner = Власник owner = Власник
group = Група group = Група
@ -238,22 +232,22 @@ other = Інші
none = Немає прав none = Немає прав
execute-only = Тільки виконання execute-only = Тільки виконання
write-only = Тільки запис write-only = Тільки запис
write-execute = Запис та виконання write-execute = Запис і виконання
read-only = Тільки перегляд read-only = Тільки перегляд
read-execute = Перегляд та виконання read-execute = Перегляд і виконання
read-write = Перегляд та запис read-write = Перегляд і запис
read-write-execute = Перегляд, запис та виконання read-write-execute = Перегляд, запис і виконання
favorite-path-error = Помилка відкриття каталогу favorite-path-error = Помилка при відкритті каталогу
favorite-path-error-description = favorite-path-error-description =
Неможливо відкрити "{ $path }". Неможливо відкрити "{ $path }".
Можливо його не існує або у вас немає прав, щоб відкрити його. Можливо, його не існує або у вас немає прав на відкриття.
Бажаєте вилучити його з бічної панелі? Вилучити з бічної панелі?
keep = Залишити keep = Залишити
add-network-drive = Додати мережевий диск add-network-drive = Додати мережевий диск
connect = Під'єднати connect = Під'єднати
connect-anonymously = Під'єднатися анонімно connect-anonymously = Під'єднатися анонімно
connecting = З'єднання... connecting = Під’єднання…
domain = Домен domain = Домен
enter-server-address = Введіть адресу сервера enter-server-address = Введіть адресу сервера
network-drive-description = network-drive-description =
@ -274,55 +268,55 @@ try-again = Спробувати знову
username = Ім'я користувача username = Ім'я користувача
progress = { $percent }% progress = { $percent }%
progress-cancelled = { $percent }%, скасовано progress-cancelled = { $percent }%, скасовано
progress-failed = { $percent }%, невдало progress-failed = { $percent }%, не вдалося
progress-paused = { $percent }%, призупинено progress-paused = { $percent }%, призупинено
compressing = compressing =
Стиснення { $items } { $items -> Стиснення { $items } { $items ->
[one] об'єкта [one] елемента
*[other] об'єктів *[other] елементів
} з "{ $from }" в "{ $to }" ({ $progress })... } з "{ $from }" до "{ $to }" ({ $progress })...
compressed = compressed =
Стиснуто { $items } { $items -> Стиснуто { $items } { $items ->
[one] об'єкт [one] елемент
*[other] об'єктів *[other] елементи
} з "{ $from }" в "{ $to }" } з "{ $from }" до "{ $to }"
deleting = deleting =
Видалення { $items } { $items -> Видалення { $items } { $items ->
[one] об'єкта [one] елемента
*[other] об'єктів *[other] елементів
} з { trash } ({ $progress })... } з { trash } ({ $progress })...
deleted = deleted =
Видалено { $items } { $items -> Видалено { $items } { $items ->
[one] об'єкт [one] елемент
*[other] об'єктів *[other] елементи
} з { trash } } з { trash }
extracting = extracting =
Видобування { $items } { $items -> Видобування { $items } { $items ->
[one] об'єкта [one] елемента
*[other] об'єктів *[other] елементів
} з "{ $from }" в "{ $to }" ({ $progress })... } з "{ $from }" до "{ $to }" ({ $progress })...
extracted = extracted =
Видобуто { $items } { $items -> Видобуто { $items } { $items ->
[one] об'єкт [one] елемент
*[other] об'єктів *[other] елементи
} з "{ $from }" в "{ $to }" } з "{ $from }" до "{ $to }"
setting-executable-and-launching = Встановлення "{ $name }" як виконуваного та запуск setting-executable-and-launching = Встановлення "{ $name }" виконуваним і запуск
set-executable-and-launched = Встановлено "{ $name }" як виконуваний та запущено set-executable-and-launched = Встановлено "{ $name }" виконуваним і запущено
selected-items = { $items } обраних елементів selected-items = { $items } обраних елементів
setting-permissions = Встановлення дозволів { $mode } для "{ $name }" setting-permissions = Встановлення дозволів { $mode } для "{ $name }"
set-permissions = Встановити дозволи { $mode } для "{ $name }" set-permissions = Встановлено дозволи { $mode } для "{ $name }"
show-details = Показати деталі show-details = Показати деталі
type = Тип: { $mime } type = Тип: { $mime }
items = Об'єктів: { $items } items = Елементів: { $items }
item-size = Розмір: { $size } item-size = Розмір: { $size }
item-created = Створено: { $created } item-created = Створено: { $created }
item-modified = Змінено: { $modified } item-modified = Змінено: { $modified }
item-accessed = Останній доступ: { $accessed } item-accessed = Доступ: { $accessed }
calculating = Обчислення... calculating = Обчислення...
single-click = Відкривати одним клацанням single-click = Відкривати одним клацанням
type-to-search = Введіть для пошуку type-to-search = Введіть для пошуку
type-to-search-recursive = Шукає поточну теку та усі підтеки type-to-search-recursive = Шукає у поточній теці та всіх підтеках
type-to-search-enter-path = Вводить шлях до теки або файлу type-to-search-enter-path = Вводить шлях до каталогу або файлу
compress = Стиснути compress = Стиснути
delete-permanently = Остаточно вилучити delete-permanently = Остаточно вилучити
eject = Безпечно вилучити eject = Безпечно вилучити
@ -343,21 +337,21 @@ sort-smallest-to-largest = Від найменшого до найбільшог
sort-largest-to-smallest = Від найбільшого до найменшого sort-largest-to-smallest = Від найбільшого до найменшого
permanently-deleting = permanently-deleting =
Остаточне вилучення { $items } { $items -> Остаточне вилучення { $items } { $items ->
[one] об'єкта [one] елемента
*[other] об'єктів *[other] елементів
} }
permanently-deleted = permanently-deleted =
Остаточно вилучено { $items } { $items -> Остаточно вилучено { $items } { $items ->
[one] об'єкт [one] елемент
*[other] об'єкти *[other] елементи
} }
removing-from-recents = removing-from-recents =
Вилучення { $items } { $items -> Вилучення { $items } { $items ->
[one] об'єкта [one] елемента
*[other] об'єктів *[other] елементів
} з { recents } } з { recents }
removed-from-recents = removed-from-recents =
Вилучено { $items } { $items -> Вилучено { $items } { $items ->
[one] об'єкт [one] елемент
*[other] об'єкти *[other] елементи
} з { recents } } з { recents }

View file

@ -4732,26 +4732,26 @@ impl Application for App {
])) ]))
} }
ContextPage::Preview(entity_opt, kind) => { ContextPage::Preview(entity_opt, kind) => {
let mut actions = Vec::with_capacity(3);
let entity = entity_opt.unwrap_or_else(|| self.tab_model.active()); let entity = entity_opt.unwrap_or_else(|| self.tab_model.active());
if let Some(tab) = self.tab_model.data::<Tab>(entity) { let actions = self
if let Some(items) = tab.items_opt() { .tab_model
for item in items { .data::<Tab>(entity)
if item.selected { .and_then(|tab| {
actions.extend(item.preview_header().into_iter().map(|element| { tab.items_opt()?
element.map(move |x| Message::TabMessage(Some(entity), x)) .iter()
})); .find(|item| item.selected)
break; .map(|item| {
} item.preview_actions()
} .map(move |x| Message::TabMessage(Some(entity), x))
} })
} })
.unwrap_or_else(|| widget::horizontal_space().into());
context_drawer::context_drawer( context_drawer::context_drawer(
self.preview(entity_opt, kind, true) self.preview(entity_opt, kind, true)
.map(move |x| Message::TabMessage(Some(entity), x)), .map(move |x| Message::TabMessage(Some(entity), x)),
Message::ToggleContextPage(ContextPage::Preview(Some(entity), kind.clone())), Message::ToggleContextPage(ContextPage::Preview(Some(entity), kind.clone())),
) )
.header_actions(actions) .actions(actions)
} }
ContextPage::Settings => context_drawer::context_drawer( ContextPage::Settings => context_drawer::context_drawer(
self.settings(), self.settings(),

View file

@ -1004,24 +1004,22 @@ impl Application for App {
match &self.context_page { match &self.context_page {
ContextPage::Preview(_, kind) => { ContextPage::Preview(_, kind) => {
let mut actions = Vec::with_capacity(3); let actions = self
if let Some(items) = self.tab.items_opt() { .tab
for item in items { .items_opt()
if item.selected { .and_then(|items| {
actions.extend( items
item.preview_header() .iter()
.into_iter() .find(|item| item.selected)
.map(|element| element.map(Message::TabMessage)), .map(|item| item.preview_actions().map(Message::TabMessage))
); })
} .unwrap_or_else(|| widget::horizontal_space().into());
}
}
Some( Some(
context_drawer::context_drawer( context_drawer::context_drawer(
self.preview(kind).map(Message::TabMessage), self.preview(kind).map(Message::TabMessage),
Message::Preview, Message::Preview,
) )
.header_actions(actions), .actions(actions),
) )
} }
_ => None, _ => None,

View file

@ -2094,28 +2094,27 @@ impl Item {
} }
} }
pub fn preview_header(&self) -> Vec<Element<'_, Message>> { pub fn preview_actions(&self) -> Element<'_, Message> {
let mut row = Vec::with_capacity(3); let mut row = widget::row::with_capacity(3)
row.push( .align_y(Alignment::Center)
widget::button::icon(widget::icon::from_name("go-previous-symbolic")) .spacing(theme::spacing().space_xxs)
.on_press(Message::ItemLeft) .push(
.into(), widget::button::icon(widget::icon::from_name("go-previous-symbolic"))
); .on_press(Message::ItemLeft),
row.push( )
widget::button::icon(widget::icon::from_name("go-next-symbolic")) .push(
.on_press(Message::ItemRight) widget::button::icon(widget::icon::from_name("go-next-symbolic"))
.into(), .on_press(Message::ItemRight),
); );
if self.can_gallery() { if self.can_gallery() {
if let Some(_path) = self.path_opt() { if let Some(_path) = self.path_opt() {
row.push( row = row.push(
widget::button::icon(widget::icon::from_name("view-fullscreen-symbolic")) widget::button::icon(widget::icon::from_name("view-fullscreen-symbolic"))
.on_press(Message::Gallery(true)) .on_press(Message::Gallery(true)),
.into(),
); );
} }
} }
row row.into()
} }
pub fn preview_view<'a>( pub fn preview_view<'a>(