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
steps:
- uses: actions/checkout@v4
- run: sudo apt-get update; sudo apt-get install desktop-file-utils 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: sudo apt-get update; sudo apt-get install libclang-dev libglib2.0-dev libxkbcommon-dev
- run: rustup update stable && rustup default stable
- 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]
anyhow = "1"
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 }
cosmic-mime-apps = { git = "https://github.com/pop-os/cosmic-mime-apps.git", optional = true }
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
flate2 = "1.1"
tar = "0.4.44"
lzma-rust2 = { version = "0.14", optional = true }
ordermap = { version = "0.5.12", features = ["serde"] }
lzma-rust2 = { version = "0.15", optional = true }
ordermap = { version = "1.0.0", features = ["serde"] }
# Internationalization
i18n-embed = { version = "0.16", features = [
"fluent-system",
@ -56,7 +56,7 @@ i18n-embed-fl = "0.10"
rust-embed = "8"
slotmap = "1.0.7"
recently-used-xbel = { git = "https://github.com/pop-os/recently-used-xbel.git" }
zip = "5.1.1"
zip = "6.0"
uzers = "0.12.1"
md-5 = "0.10.6"
png = "0.18"
@ -70,7 +70,7 @@ default-features = false
features = ["io", "macros", "polling", "runtime"]
[dependencies.io-uring]
version = "0.7.10"
version = "0.7.11"
default-features = false
optional = true
@ -111,7 +111,7 @@ inherits = "release"
debug = true
[target.'cfg(unix)'.dependencies]
fork = "0.2"
fork = "0.4"
[target.'cfg(target_os = "linux")'.dependencies]
procfs = "0.18"

View file

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

View file

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

View file

@ -397,3 +397,4 @@ sort-newest-first = Neueste zuerst
sort-oldest-first = Älteste zuerst
sort-smallest-to-largest = Kleinste bis größte
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 = सेटिंग
### Appearance
@ -283,5 +283,5 @@ sort-newest-first = नए से पुराने
sort-oldest-first = पुराने से नए
sort-smallest-to-largest = छोटे से बड़े
sort-largest-to-smallest = बड़े से छोटे
repository = रिपाॅज़िटरी
repository = रिपॉजिटरी
support = सहायता

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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