Compare commits

...

33 commits

Author SHA1 Message Date
1488e2b01b Merge remote-tracking branch 'upstream/master' into local/libcosmic-path-patch
# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	src/app.rs
#	src/dialog.rs
#	src/menu.rs
#	src/tab.rs
2026-08-19 22:02:40 +02:00
chris-010
3c9a78ac9f fix: accept a URI typed into the location bar from any location
The location bar inherits its type from the tab's current location
(Message::EditLocationEnable), and the view has exactly two branches, next
to the existing "TODO: allow editing other locations": a Location::Network
is edited through with_uri, anything else through with_path. Typing
smb://server/share while standing in a local folder therefore produced
Path("smb://server/share"), which is not a directory, and the navigation
was dropped. The reverse direction was broken the same way: from the
Networks view a local path was passed to with_uri and became a bogus
network location.

EditLocationSubmit now decides by parsing the text instead of by the
location it came from:

  * parses as a URL with a scheme other than "file" and has a host
    -> Location::Network, using url::Url::as_str(), which also normalizes
       away surrounding whitespace.
  * fails to parse and the current location is a Network
    -> Location::Path, with the text untrimmed, because a directory name
       may legitimately end in a space.
  * anything else is left as it was, so network:/// and foo:bar keep
    behaving exactly as before.

The reliable indicator for "this is a path" is that parsing fails, not
that the host is missing: network:/// and file:///home both parse with
has_host() == false. Verified against url 2.5.8.

An unmounted share cannot be resolved, since Tab::resolve sends network
locations through mounter.dir_info, so resolve() returns None and the
navigation would be dropped again. Navigating there is what triggers the
mount, because Cmd::NetworkScan mounts the location it is asked to scan,
so the typed URI is used as a fallback. That fallback is restricted to
input recognised by the first rule above; applying it to any network
location would let unparseable text through, and because with_uri keeps
the display name and path of the previous location, the window would look
normal while the listing stayed empty.

Known cosmetic side effect: while the share is not mounted, resolve()
yields nothing and the tab shows the raw URI as its name. It is replaced
by the proper name as soon as the mount completes.

Drafted with AI assistance (Claude Code); the change was reviewed, built
and tested by me on real hardware as described.

Signed-off-by: chris-010 <10660568+chris-010@users.noreply.github.com>
2026-08-18 16:01:32 -06:00
Jeremy Soller
e96b915f63
Epoch 1.6.0 version update (#1985)
Generated by cosmic-epoch scripts/version-update.sh
2026-08-18 15:27:42 -06:00
Jeremy Soller
9ff853c46d Epoch 1.6.0 version update
Generated by cosmic-epoch scripts/version-update.sh
2026-08-18 13:58:04 -06:00
Jeremy Soller
6e210a3753
Add context menu to text fields and Selectable Text widget (#1815)
- Adds context menu to text input fields
- Adds selectable text to context drawer, but only to file name,
created/modified/accessed date. I'm sure more places could use the
selectable text.
- Also pulls the latest changes in Iced and libcosmic that removes
"redraw on any message", which means moving the cursor doesn't
automatically call a redraw, widgets need to ask for it. I have found
all places that previously was working normally because we were
redrawing almost unconditionally. But it is possible that a custom
widget somewhere still isn't asking for a redraw explicitly when its
state changes. So, for QA I'd keep an eye on that.

Depends on:
- [x] https://github.com/pop-os/libcosmic/pull/1288
- [x] https://github.com/pop-os/iced/pull/378
- [x] https://github.com/pop-os/libcosmic/pull/1384
- [x] https://github.com/pop-os/libcosmic/pull/1388


https://github.com/user-attachments/assets/caf8f940-0793-4665-844a-b6153b35d7bb



___
- [x] I have disclosed use of any AI generated code in my commit
messages.
- If you are using an LLM, and do not fully understand the changes it is
making to the code base, do not create a PR.
- In our experience, AI generated code often results in overly complex
code that lacks enough context for a proper fix or feature inclusion.
This results in considerably longer code reviews. Due to this, AI
authored or partially authored PRs may be closed without comment.
- [x] I understand these changes in full and will be able to respond to
review comments.
- [x] My change is accurately described in the commit message.
- [x] My contribution is tested and working as described.
- [x] I have read the [Developer Certificate of
Origin](https://developercertificate.org/) and certify my contribution
under its conditions.
2026-08-18 07:22:09 -06:00
Michael Murphy
9c841dbacd
i18n: translation update from Hosted Weblate (#1948) 2026-08-18 14:10:18 +02:00
Hosted Weblate
991e5b234e
i18n: translation updates from weblate
Co-authored-by: Alex <aleha@users.noreply.hosted.weblate.org>
Co-authored-by: Andi Chandler <andi@gowling.com>
Co-authored-by: CYAXXX <85353920+CYAXXX@users.noreply.github.com>
Co-authored-by: Geeson Wan <wang14240@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jens Peter Nielsen <mail@jp-nielsen.dk>
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
Co-authored-by: Kartik Nayak <65574961+kodebarista@users.noreply.github.com>
Co-authored-by: Martin Meizoso <martinmeizoso@gmail.com>
Co-authored-by: Michael Millet <mikevlet@protonmail.com>
Co-authored-by: Prasanta-Hembram <Prasantahembram720@gmail.com>
Co-authored-by: Quentin PAGÈS <quentinantonin@free.fr>
Co-authored-by: Sproston <ojspr2007@gmail.com>
Co-authored-by: Steen Rabol <steen@rabol.dev>
Co-authored-by: Walter William Beckerleg Bruckman <spayk.99@protonmail.com>
Co-authored-by: Wilbur Lindqvist <william@willmantrade.com>
Co-authored-by: sicKat <giuseppecatillo2003@gmail.com>
Co-authored-by: the-forest-watches <lucastronks@protonmail.com>
Co-authored-by: therealmate <hellogaming91@gmail.com>
Co-authored-by: 김유빈 <k.sein1016@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/da/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/en_GB/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/fi/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/gl/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/hu/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/it/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/kmr/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/ko/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/nl/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/oc/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/ru/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/sat/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/zh_Hans/
Translation: Pop OS/COSMIC Files
2026-08-18 05:51:50 +00:00
Hojjat
78ac96c613 chore: update libcosmic 2026-08-17 11:17:19 -06:00
Hojjat
55c1b0afe0 feat: add context menu to text input and selectable text fields
chore: update libcosmic
2026-08-17 11:17:19 -06:00
Jeremy Soller
5bdfffa494
fix: infinite dialogs with network mount failure (#1956)
Selecting a broken network mount triggers an infinite loop of dialogs
that requires killing the app:

1. Click invalid network mount
2. Try to mount network path
3. Show failure dialog
4. Trigger `NetworkDriveOpenEntityAfterMount`
* BUG: This fires even if the mount failed or the user canceled the
dialog!
6. Goto 2

Fix by having `network_drive(...)` return a Boolean indicating whether
the mount actually happened and using that to break the infinite error
loop.

Fixes #1629 

Sample broken network path that triggers the infinite dialog when
selected:

**~/.config/cosmic/com.system76.CosmicFiles/v1/favorites**

```ron
[
    Home,
    Documents,
    Downloads,
    Network(
        uri: "sftp://myserver/shared",
        name: "",
        path: "/tmp/fake-network/sftp-host=myserver/mnt",
    ),
]
```

- [x] I have disclosed use of any AI generated code in my commit
messages.
- [x] I understand these changes in full and will be able to respond to
review comments.
- [x] My change is accurately described in the commit message.
- [x] My contribution is tested and working as described.
- [x] I have read the [Developer Certificate of
Origin](https://developercertificate.org/) and certify my contribution
under its conditions.
2026-08-11 07:46:35 -06:00
Will Sheehan
95035166d3 fix infinite dialog on network mount failure 2026-08-04 23:09:19 -07:00
Jeremy Soller
24e34eaa0f
Epoch 1.5.0 version update (#1946)
Generated by cosmic-epoch scripts/version-update.sh
2026-07-28 18:07:38 -06:00
Jeremy Soller
0875cda769 Epoch 1.5.0 version update
Generated by cosmic-epoch scripts/version-update.sh
2026-07-28 09:14:14 -06:00
Michael Murphy
ebce599f3a
i18n: translation updates from weblate (#1891)
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/ar/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/ca/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/cs/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/de/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/el/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/fa/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/fr/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/ga/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/hi/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/hu/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/id/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/it/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/kk/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/kmr/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/lt/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/pa/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/pl/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/ru/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/sat/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/sv/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/uk/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/zh_Hant/
Translation: Pop OS/COSMIC Files

Co-authored-by: Ahrakiel <christopherbatrier@gmail.com>
Co-authored-by: Aindriú Mac Giolla Eoin <aindriu80@gmail.com>
Co-authored-by: Alex <aleha@users.noreply.hosted.weblate.org>
Co-authored-by: Aman Alam <aalam@users.noreply.hosted.weblate.org>
Co-authored-by: Arve Eriksson <arve.eriksson@startmail.com>
Co-authored-by: Baurzhan Muftakhidinov <baurthefirst@gmail.com>
Co-authored-by: CYAXXX <85353920+CYAXXX@users.noreply.github.com>
Co-authored-by: Dan <jonweblin2205@protonmail.com>
Co-authored-by: David Carvalho <david.snt.carvalho@gmail.com>
Co-authored-by: Ettore Atalan <atalanttore@googlemail.com>
Co-authored-by: Fedorov Alexei <aleksejfedorov963@gmail.com>
Co-authored-by: Geeson Wan <wang14240@gmail.com>
Co-authored-by: Isaac Subirana <isaacsubiranac@gmail.com>
Co-authored-by: Jim Spentzos <jimspentzos2000@gmail.com>
Co-authored-by: Julien Brouillard <julienbrouillard1@gmail.com>
Co-authored-by: Kartik Nayak <65574961+kodebarista@users.noreply.github.com>
Co-authored-by: Prasanta-Hembram <Prasantahembram720@gmail.com>
Co-authored-by: Saeed <s.zare.org.82@gmail.com>
Co-authored-by: Tadas Misiūnas <tadujo@gmail.com>
Co-authored-by: VandaL <vandalhj@gmail.com>
Co-authored-by: Vilius Paliokas <viliuspaliokas@gmail.com>
Co-authored-by: Wilbur Lindqvist <william@willmantrade.com>
Co-authored-by: Zahid Rizky Fakhri <zahidrizkyfakhri@gmail.com>
Co-authored-by: abdelbasset jabrane <naminio201@users.noreply.hosted.weblate.org>
Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org>
Co-authored-by: lorduskordus <lorduskordus@gmail.com>
Co-authored-by: rbrule <raphaelbrule22@gmail.com>
Co-authored-by: taijuin Lee <taijuin@gmail.com>
Co-authored-by: therealmate <hellogaming91@gmail.com>
Co-authored-by: Димко <Dymkovych@proton.me>
Co-authored-by: 麋麓 BigELK176 <BigELK176@gmail.com>
2026-07-28 16:41:17 +02:00
Hosted Weblate
d6f6179e67
i18n: translation updates from weblate
Co-authored-by: Ahrakiel <christopherbatrier@gmail.com>
Co-authored-by: Aindriú Mac Giolla Eoin <aindriu80@gmail.com>
Co-authored-by: Alex <aleha@users.noreply.hosted.weblate.org>
Co-authored-by: Aman Alam <aalam@users.noreply.hosted.weblate.org>
Co-authored-by: Arve Eriksson <arve.eriksson@startmail.com>
Co-authored-by: Baurzhan Muftakhidinov <baurthefirst@gmail.com>
Co-authored-by: CYAXXX <85353920+CYAXXX@users.noreply.github.com>
Co-authored-by: Dan <jonweblin2205@protonmail.com>
Co-authored-by: David Carvalho <david.snt.carvalho@gmail.com>
Co-authored-by: Ettore Atalan <atalanttore@googlemail.com>
Co-authored-by: Fedorov Alexei <aleksejfedorov963@gmail.com>
Co-authored-by: Geeson Wan <wang14240@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Isaac Subirana <isaacsubiranac@gmail.com>
Co-authored-by: Jim Spentzos <jimspentzos2000@gmail.com>
Co-authored-by: Julien Brouillard <julienbrouillard1@gmail.com>
Co-authored-by: Kartik Nayak <65574961+kodebarista@users.noreply.github.com>
Co-authored-by: Prasanta-Hembram <Prasantahembram720@gmail.com>
Co-authored-by: Saeed <s.zare.org.82@gmail.com>
Co-authored-by: Tadas Misiūnas <tadujo@gmail.com>
Co-authored-by: VandaL <vandalhj@gmail.com>
Co-authored-by: Vilius Paliokas <viliuspaliokas@gmail.com>
Co-authored-by: Wilbur Lindqvist <william@willmantrade.com>
Co-authored-by: Zahid Rizky Fakhri <zahidrizkyfakhri@gmail.com>
Co-authored-by: abdelbasset jabrane <naminio201@users.noreply.hosted.weblate.org>
Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org>
Co-authored-by: lorduskordus <lorduskordus@gmail.com>
Co-authored-by: rbrule <raphaelbrule22@gmail.com>
Co-authored-by: taijuin Lee <taijuin@gmail.com>
Co-authored-by: therealmate <hellogaming91@gmail.com>
Co-authored-by: Димко <Dymkovych@proton.me>
Co-authored-by: 麋麓 BigELK176 <BigELK176@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/ar/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/ca/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/cs/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/de/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/el/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/fa/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/fr/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/ga/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/hi/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/hu/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/id/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/it/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/kk/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/kmr/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/lt/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/pa/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/pl/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/ru/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/sat/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/sv/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/uk/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/zh_Hant/
Translation: Pop OS/COSMIC Files
2026-07-28 07:02:19 +02:00
Jeremy Soller
9a21542825
fix: not all files directory are trash (#1933)
At the moment any directory anywhere named "files" is considered trash
by cosmic-files and shown as empty.
This tightens the check on what is a trash directory with a fallback
where it also expect an info directory next to the files directory(only
used if the system doesn't report any trash directory).

As an added bonus I fixed the let _ = THUMB_SEMAPHORE.acquire() that was
immediately discarded and thus dead code.

- [X] I have disclosed use of any AI generated code in my commit
messages.
- If you are using an LLM, and do not fully understand the changes it is
making to the code base, do not create a PR.
- In our experience, AI generated code often results in overly complex
code that lacks enough context for a proper fix or feature inclusion.
This results in considerably longer code reviews. Due to this, AI
authored or partially authored PRs may be closed without comment.
- [X] I understand these changes in full and will be able to respond to
review comments.
- [X] My change is accurately described in the commit message.
- [X] My contribution is tested and working as described.
- [X] I have read the [Developer Certificate of
Origin](https://developercertificate.org/) and certify my contribution
under its conditions.
2026-07-21 06:55:26 -06:00
Jeremy Soller
7ae2621f70
Epoch 1.4.0 version update (#1938)
Generated by cosmic-epoch scripts/version-update.sh
2026-07-20 18:14:18 -06:00
Jeremy Soller
eb04ae28da Epoch 1.4.0 version update
Generated by cosmic-epoch scripts/version-update.sh
2026-07-20 14:36:15 -06:00
RipleyTom
dc36bdc8d3
fix: fixes original_path_for_trash_child 2026-07-19 14:03:04 +02:00
RipleyTom
8ef1082a4c
fix: not all files directory are trash 2026-07-18 19:13:12 +02:00
Joel
a93fc1d9ee
fix: fall back to GIO on destination open failure for MTP copies
* fix: fall back to GIO on destination open failure for MTP copies
* Preserve error source chain in non-gvfs open failure path
2026-07-15 12:42:17 -06:00
Michael Aaron Murphy
5278c67957 fix(libcosmic): crash when right clicking mounted path in nav bar
Contains fix from https://github.com/pop-os/libcosmic/pull/1354
2026-07-14 10:25:57 -06:00
Jeremy Soller
6c45017b24 Epoch 1.3.0 version update
Generated by cosmic-epoch scripts/version-update.sh
2026-07-13 09:18:38 -06:00
Ashley Wulber
b1fbc1d538 chore: update libcosmic 2026-07-09 17:23:33 -06:00
Ashley Wulber
c4a9096ae2 fix: update iced
popup blur & corner cleanup
2026-07-07 11:36:24 -04:00
Jeremy Soller
fab53e54d6
chore: update libcosmic (#1713)
- [x] I have disclosed use of any AI generated code in my commit
messages.
- If you are using an LLM, and do not fully understand the changes it is
making to the code base, do not create a PR.
- In our experience, AI generated code often results in overly complex
code that lacks enough context for a proper fix or feature inclusion.
This results in considerably longer code reviews. Due to this, AI
authored or partially authored PRs may be closed without comment.
- [x] I understand these changes in full and will be able to respond to
review comments.
- [x] My change is accurately described in the commit message.
- [x] My contribution is tested and working as described.
- [x] I have read the [Developer Certificate of
Origin](https://developercertificate.org/) and certify my contribution
under its conditions.
2026-07-06 07:11:32 -06:00
Ashley Wulber
168ff6d6f8 chore: updated deps 2026-07-02 14:23:12 -04:00
Ashley Wulber
908218e3e0 fix: remove background style for container around tab bar 2026-07-01 15:18:11 -04:00
Ashley Wulber
8fc5182486 fix: popup corner improvements 2026-07-01 15:18:11 -04:00
Ashley Wulber
e00725a450 chore: update for navbar popup 2026-07-01 15:18:11 -04:00
Ashley Wulber
0e761ba811 fix: no blur for desktop mode
fix: desktop blur

chore: update libcosmic

chore: update libcosmic

chore: update libcosmic
2026-07-01 15:18:11 -04:00
Ashley Wulber
674a33e3de cctk 2026-07-01 15:18:11 -04:00
Ashley Wulber
6fe510a67a chore: update libcosmic 2026-07-01 15:18:09 -04:00
43 changed files with 2154 additions and 1007 deletions

1744
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
[package]
name = "cosmic-files"
version = "1.3.0"
version = "1.6.0"
authors = ["Jeremy Soller <jeremy@system76.com>"]
edition = "2024"
license = "GPL-3.0-only"
@ -11,7 +11,7 @@ anyhow = "1"
jiff = "0.2"
jiff-icu = "0.2"
icu = { version = "2.2.0", features = ["compiled_data"] }
cctk = { git = "https://github.com/pop-os/cosmic-protocols", package = "cosmic-client-toolkit", rev = "c253ec1", optional = true }
cctk = { git = "https://github.com/pop-os/cosmic-protocols", package = "cosmic-client-toolkit", rev = "32283d7", optional = true }
cosmic-mime-apps = { git = "https://github.com/pop-os/cosmic-mime-apps.git", optional = true }
dirs = "6.0.0"
gio = { version = "0.21", optional = true }

View file

@ -1,6 +1,6 @@
[package]
name = "cosmic-files-applet"
version = "1.2.0"
version = "1.6.0"
edition = "2024"
[dependencies]

24
debian/changelog vendored
View file

@ -1,3 +1,27 @@
cosmic-files (1.6.0) noble; urgency=medium
* Epoch 1.6.0 version update
-- Jeremy Soller <jeremy@system76.com> Tue, 18 Aug 2026 07:13:48 -0600
cosmic-files (1.5.0) noble; urgency=medium
* Epoch 1.5.0 version update
-- Jeremy Soller <jeremy@system76.com> Tue, 28 Jul 2026 09:14:09 -0600
cosmic-files (1.4.0) noble; urgency=medium
* Epoch 1.4.0 version update
-- Jeremy Soller <jeremy@system76.com> Mon, 20 Jul 2026 14:36:06 -0600
cosmic-files (1.3.0) noble; urgency=medium
* Epoch 1.3.0 version update
-- Jeremy Soller <jeremy@system76.com> Sun, 12 Jul 2026 13:21:18 -0600
cosmic-files (1.2.0) noble; urgency=medium
* Epoch 1.2.0 version update

View file

@ -84,7 +84,7 @@ settings = الإعدادات
### Appearance
appearance = المظهر
theme = النسق
theme = السمة
match-desktop = طابق سطح المكتب
dark = داكن
light = فاتح
@ -110,7 +110,7 @@ new-tab = لسان جديد
new-window = نافذة جديدة
rename = غيِّر الاسم...
close-tab = أغلق اللسان
quit = أنهِ
quit = إنهِ
## Edit
@ -147,7 +147,7 @@ icon-size-and-spacing = حجم الأيقونة والتباعد
icon-size = حجم الأيقونة
grid-spacing = تباعد شبكي
trashed-on = مهمل
details = التفاصيل
details = تفاصيل
pause = ألبث
resume = استئناف
create-archive = أنشئ أرشيف
@ -383,3 +383,7 @@ context-action-confirm-warning =
*[other] عنصر
}.
run = شغِّل
checksum = تدقيق المجموع { $kind }
calculate = احسب
error = خطأ
rename-confirm = أعد التسمية

View file

@ -77,7 +77,7 @@ name-no-slashes = El nom no pot contenir barres.
cancel = Cancel·lar
create = Crea
open = Obre
open-file = Obre el fixer
open-file = Obre el fitxer
open-folder = Obre la carpeta
open-in-new-tab = Obre en una pestanya nova
open-in-new-window = Obre en una finestra nova

View file

@ -428,3 +428,6 @@ context-action-confirm-warning =
}.
run = Spustit
rename-confirm = Přejmenovat
checksum = Kontrolní součet { $kind }
calculate = Vypočítat
error = Chyba

View file

@ -1,35 +1,43 @@
cosmic-files = COSMIC Filer
cosmic-files = COSMIC Filhåndtering
empty-folder = Tom mappe
empty-folder-hidden = Tom mappe (har skjulte filer)
no-results = Ingen resultater
empty-folder-hidden = Tom mappe (har skjulte emner)
no-results = Fandt ingen resultater
filesystem = Filsystem
home = Hjem
networks = Netværk
notification-in-progress = Filoperationer er igangværende.
trash = Skraldespand
notification-in-progress = Fil-operationer er igang.
trash = Papirkurv
recents = Seneste
undo = Fortryd
today = I dag
# Desktop view options
desktop-view-options = Indstillinger for skrivebordsudseende...
show-on-desktop = Vis på Skrivebordet
desktop-folder-content = Indhold på Skrivebordet
desktop-view-options = Valgmuligheder for skrivebordsvisning...
show-on-desktop = Vis på Skrivebord
desktop-folder-content = Skrivebords-mappeindhold
mounted-drives = Monterede drev
trash-folder-icon = Skraldespandsikon
icon-size-and-spacing = Ikonstørrelse og afstand
trash-folder-icon = Papirkurv-ikon
icon-size-and-spacing = Ikonstørrelse og -afstand
icon-size = Ikonstørrelse
# List view
name = Navn
modified = Ændret
trashed-on = Smidt ud
trashed-on = Kasseret
size = Størrelse
# Progress footer
details = Detaljer
dismiss = Afvis besked
operations-running = { $running } operationer er i gang ({ $percent }%)...
operations-running-finished = { $running } operationer er i gang ({ $percent }%), { $finished } færdiggjort...
dismiss = Luk meddelelse
operations-running =
{ $running } { $running ->
[one] operation
*[other] operationer
} kører ({ $percent }%)...
operations-running-finished =
{ $running } { $running ->
[one] operation
*[other] operationer
} kører ({ $percent }%), { $finished } færdig...
pause = Pause
resume = Fortsæt
resume = Genoptag
# Dialogs
@ -40,12 +48,12 @@ create-archive = Opret arkiv
## Empty Trash Dialog
empty-trash = Tøm skraldespand
empty-trash-warning = Er du sikker på du vil slette alle objekter i Skraldespanden permanent?
empty-trash = Tøm papirkurv
empty-trash-warning = Emner i Papirkurv-mappen vil blive slettet permanent
## Mount Error Dialog
mount-error = Kan ikke tilgå drev
mount-error = Ude af stand til at tilgå drev
## New File/Folder Dialog
@ -53,22 +61,22 @@ create-new-file = Opret ny fil
create-new-folder = Opret ny mappe
file-name = Filnavn
folder-name = Mappenavn
file-already-exists = En fil med det navn eksisterer allerede.
folder-already-exists = En mappe med det navn eksisterer allerede.
name-hidden = Navne begyndende med "." vil blive skjult.
name-invalid = Navn kan ikke være "{ $filename }".
name-no-slashes = Navn kan ikke indeholde skråstreg.
file-already-exists = En fil med det navn eksisterer allerede
folder-already-exists = En mappe med det navn eksisterer allerede
name-hidden = Navne begyndende med "." vil være skjulte
name-invalid = Navn må ikke være "{ $filename }"
name-no-slashes = Navn må ikke indeholde skråstreger
## Open/Save Dialog
cancel = Annullér
cancel = Annuller
create = Opret
open = Åbn
open-file = Åbn fil
open-folder = Åbn mappe
open-in-new-tab = Åbn i ny fane
open-in-new-tab = Åbn i nyt faneblad
open-in-new-window = Åbn i nyt vindue
open-item-location = Åbn placering for objekt
open-item-location = Åbn emne-placering
open-multiple-files = Åbn flere filer
open-multiple-folders = Åbn flere mapper
save = Gem
@ -87,20 +95,20 @@ rename-folder = Omdøb mappe
## Replace Dialog
replace = Erstat
replace-title = "{ $filename }" eksisterer allerede på denne placering.
replace-warning = Vil du erstatte den med den du er ved at gemme? Hvis du erstatter den, overskriver du dens indhold.
replace-warning-operation = Vil du erstatte den? Hvis du erstatter den, overskriver du dens indhold.
replace-title = "{ $filename }" eksisterer allerede i denne placering.
replace-warning = Ønsker du at erstatte den med den, du er ved at gemme? Erstatning af den vil overskrive dens indhold.
replace-warning-operation = Ønsker du at erstatte den? Erstatning af den vil overskrive dens indhold.
original-file = Original fil
replace-with = Erstat med
apply-to-all = Anvend for alle
apply-to-all = Anvend på alle
keep-both = Behold begge
skip = Spring over
## Set as Executable and Launch Dialog
set-executable-and-launch = Indstil som eksekverbar fil og start
set-executable-and-launch-description = Vil du indstille "{ $name }" som en eksekverbar fil og starte den?
set-and-launch = Indstil og start
set-executable-and-launch = Angiv som eksekverbar og start
set-executable-and-launch-description = Vil du angive "{ $name }" som eksekverbar og starte den?
set-and-launch = Angiv og start
## Metadata Dialog
@ -239,12 +247,12 @@ settings = Indstillinger
appearance = Udseende
theme = Tema
match-desktop = Match skrivebord
dark = Mørk
light = Lys
match-desktop = Følg skrivebordets indstillinger
dark = Mørkt
light = Lyst
# Context menu
add-to-sidebar = Tilføj til sidebjælke
compress = Komprimér
compress = Komprimer…
extract-here = Extract
new-file = Ny fil...
new-folder = Ny mappe...
@ -280,15 +288,15 @@ quit = Afslut
edit = Redigér
cut = Klip
copy = Kopiér
paste = Sæt ind
select-all = Vælg alt
paste = Indsæt
select-all = Vælg alle
## View
zoom-in = Zoom ind
default-size = Standardstørrelse
zoom-out = Zoom ud
view = Visning
view = Vis
grid-view = Gitter-visning
list-view = Liste-visning
show-hidden-files = Vis skjulte filer
@ -306,3 +314,102 @@ sort-newest-first = Nyeste først
sort-oldest-first = Ældste først
sort-smallest-to-largest = Mindste til største
sort-largest-to-smallest = Største til mindste
delete = Slet
run = Kør
repository = Pakkearkiv
grid-spacing = Gitter-afstand
extract-password-required = Adgangskode påkrævet
extract-to = Udpak Til...
extract-to-title = Udpak til mappe
empty-trash-title = Tøm papirkurv?
keywords = Mappe;Håndtering;
comment = Filhåndteringsprogram til COSMIC-skrivebordet
copy-to-title = Vælg kopi destination
copy-to-button-label = Kopier
move-to-title = Vælg flytte destination
move-to-button-label = Flyt
deleted =
Slettede { $items } { $items ->
[one] element
*[other] elementer
} fra papirkurven
removing-from-recents =
Fjerner { $items } { $items ->
[one] element
*[other] elementer
} fra { recents }
type-to-search-enter-path = Indtast stien til mappen eller filen
permanently-deleting =
Sletter permanent { $items } { $items ->
[one] element
*[other] elementer
}
execute-only = Kun kørsel
removed-from-recents =
Fjernede { $items } { $items ->
[one] element
*[other] elementer
} fra { recents }
permanently-deleted =
Slettede permanent { $items } { $items ->
[one] element
*[other] elementer
}
write-only = Kun skrivning
remove = Fjern
context-action = Konteksthandling
context-action-confirm-title = Kør “{ $name }”?
context-action-confirm-warning =
This will run on { $items } { $items ->
[one] item
*[other] items
}.
selected-items = De { $items } valgte elementer
mixed = Blandet
none = Ingen
write-execute = Skriv og kør
read-only = Kun læsning
read-execute = Læs og kør
read-write = Læs og skriv
read-write-execute = Læs, skriv og kør
keep = Behold
support = Support
progress-failed = { $percent } %, mislykkedes
pasted-image = Indsat billede
pasted-text = Indsat tekst
pasted-video = Indsat video
deleting =
Sletter { $items } { $items ->
[one] element
*[other] elementer
} fra { trash } ({ $progress })...
setting-permissions = Indstiller tilladelser for “{ $name }” til { $mode }
set-permissions = Sæt tilladelser for “{ $name }” til { $mode }
show-recents = Seneste-mappe i sidepanelet
type-to-search = Skriv for at søge
type-to-search-recursive = Søger i den aktuelle mappe og alle undermapper
type-to-search-select = Vælger den første matchende fil eller mappe
clear-recents-history = Ryd seneste historik
copy-to = Kopiér til…
delete-permanently = Slet permanent
eject = Skub ud
move-to = Flyt til…
remove-from-recents = Fjern fra seneste
reload-folder = Genindlæs mappe
copy-path = Kopiér sti
rename-confirm = Omdøb
calculate = Udregn
error = Fejl
checksum = { $kind }-kontrolsum
other-apps = Andre applikationer
related-apps = Relaterede applikationer
permanently-delete-question = Slet permanent?
permanently-delete-warning = { $target } vil blive slettet permanent. Denne handling kan ikke fortrydes.
open-with = Åbn med
favorite-path-error = Fejl ved åbning af sti
favorite-path-error-description =
Ude af stand til at åbne "{ $path }"
"{ $path }" Eksisterer muligvis ikke, eller du har måske ikketilladelse til at åbne den
Ønsker du at fjerne den fra sidebjælken?
single-click = Enkelt klik for at åbne

View file

@ -11,7 +11,7 @@ recents = Zuletzt verwendet
undo = Rückgängig
today = Heute
# Optionen für die Desktop-Ansicht
desktop-view-options = Optionen für die Desktop-Ansicht…
desktop-view-options = Optionen für die Desktop-Ansicht ...
show-on-desktop = Auf Desktop anzeigen
desktop-folder-content = Inhalt des Desktop-Ordners
mounted-drives = Eingehängte Laufwerke
@ -31,12 +31,12 @@ operations-running =
{ $running } { $running ->
[one] laufender Vorgang
*[other] laufende Vorgänge
} ({ $percent } %)...
} ({ $percent } %) ...
operations-running-finished =
{ $running } { $running ->
[one] laufender Vorgang
*[other] laufende Vorgänge
} ({ $percent } %), { $finished } abgeschlossen...
} ({ $percent } %), { $finished } abgeschlossen ...
pause = Pause
resume = Fortsetzen
@ -50,7 +50,7 @@ create-archive = Archiv erstellen
## Entpacken-Dialog
extract-password-required = Passwort erforderlich
extract-to = Entpacken nach...
extract-to = Entpacken nach ...
extract-to-title = In Ordner entpacken
## Dialog zum Leeren des Papierkorbs
@ -179,7 +179,7 @@ keep = Behalten
add-network-drive = Netzlaufwerk hinzufügen
connect = Verbinden
connect-anonymously = Anonym verbinden
connecting = Wird verbunden...
connecting = Wird verbunden ...
domain = Domain
enter-server-address = Serveradresse eingeben
network-drive-description =
@ -218,7 +218,7 @@ compressing =
{ $items } { $items ->
[one] Element wird
*[other] Elemente werden
} von „{ $from }“ nach „{ $to }“ komprimiert ({ $progress })...
} von „{ $from }“ nach „{ $to }“ komprimiert ({ $progress }) ...
compressed =
{ $items } { $items ->
[one] Element wurde
@ -231,7 +231,7 @@ copying =
{ $items } { $items ->
[one] Element wird
*[other] Elemente werden
} von „{ $from }“ nach „{ $to }“ kopiert ({ $progress })...
} von „{ $from }“ nach „{ $to }“ kopiert ({ $progress }) ...
copied =
{ $items } { $items ->
[one] Element wurde
@ -241,19 +241,19 @@ deleting =
{ $items } { $items ->
[one] Element wird
*[other] Elemente werden
} aus dem { trash } gelöscht ({ $progress })...
} aus dem { trash } gelöscht ({ $progress }) ...
deleted =
{ $items } { $items ->
[one] Element wurde
*[other] Elemente wurden
} aus dem { trash } gelöscht
emptying-trash = { trash } wird geleert ({ $progress })...
emptying-trash = { trash } wird geleert ({ $progress }) ...
emptied-trash = { trash } geleert
extracting =
{ $items } { $items ->
[one] Element wird
*[other] Elemente werden
} von „{ $from }“ nach „{ $to }“ entpackt ({ $progress })...
} von „{ $from }“ nach „{ $to }“ entpackt ({ $progress }) ...
extracted =
{ $items } { $items ->
[one] Element wurde
@ -267,7 +267,7 @@ moving =
{ $items } { $items ->
[one] Element wird
*[other] Elemente werden
} von „{ $from }“ nach „{ $to }“ verschoben ({ $progress })...
} von „{ $from }“ nach „{ $to }“ verschoben ({ $progress }) ...
moved =
{ $items } { $items ->
[one] Element wurde
@ -289,7 +289,7 @@ restoring =
{ $items } { $items ->
[one] Element wird
*[other] Elemente werden
} aus dem { trash } wiederhergestellt ({ $progress })...
} aus dem { trash } wiederhergestellt ({ $progress }) ...
restored =
{ $items } { $items ->
[one] Element wurde
@ -299,7 +299,7 @@ unknown-folder = unbekannter Ordner
## Öffnen mit
menu-open-with = Öffnen mit...
menu-open-with = Öffnen mit ...
default-app = { $name } (Standard)
## Details anzeigen
@ -311,7 +311,7 @@ item-size = Größe: { $size }
item-created = Erstellt: { $created }
item-modified = Geändert: { $modified }
item-accessed = Zugegriffen: { $accessed }
calculating = Wird berechnet...
calculating = Wird berechnet ...
## Einstellungen
@ -333,11 +333,11 @@ type-to-search-recursive = Durchsucht den aktuellen Ordner und alle Unterordner
type-to-search-enter-path = Gib den Pfad zum Verzeichnis oder zur Datei ein
# Kontextmenü
add-to-sidebar = Zur Seitenleiste hinzufügen
compress = Komprimieren...
compress = Komprimieren ...
delete-permanently = Endgültig löschen
extract-here = Entpacken
new-file = Neue Datei...
new-folder = Neuer Ordner...
new-file = Neue Datei ...
new-folder = Neuer Ordner ...
open-in-terminal = Im Terminal öffnen
move-to-trash = In den Papierkorb verschieben
restore-from-trash = Aus dem Papierkorb wiederherstellen
@ -349,9 +349,9 @@ sort-by-trashed = Nach Löschzeitpunkt sortieren
## Desktop
change-wallpaper = Hintergrundbild ändern...
desktop-appearance = Desktop-Aussehen...
display-settings = Anzeigeeinstellungen...
change-wallpaper = Hintergrundbild ändern ...
desktop-appearance = Desktop-Aussehen ...
display-settings = Anzeigeeinstellungen ...
# Menü
@ -362,7 +362,7 @@ file = Datei
new-tab = Neuer Tab
new-window = Neues Fenster
reload-folder = Ordner neu laden
rename = Umbenennen...
rename = Umbenennen ...
close-tab = Tab schließen
quit = Beenden
@ -385,8 +385,8 @@ list-view = Listenansicht
show-hidden-files = Versteckte Dateien anzeigen
list-directories-first = Verzeichnisse zuerst auflisten
gallery-preview = Galerie-Vorschau
menu-settings = Einstellungen...
menu-about = Über COSMIC Dateien...
menu-settings = Einstellungen ...
menu-about = Über COSMIC Dateien ...
## Sortieren
@ -397,7 +397,7 @@ sort-newest-first = Neueste zuerst
sort-oldest-first = Älteste zuerst
sort-smallest-to-largest = Von klein nach groß
sort-largest-to-smallest = Von groß nach klein
repository = Repository
repository = Repositorium
empty-trash-title = Papierkorb leeren?
copy-to-title = Kopierziel auswählen
copy-to-button-label = Kopieren
@ -418,7 +418,7 @@ type-to-search-select = Wählt die erste übereinstimmende Datei oder den ersten
pasted-image = Eingefügtes Bild
pasted-text = Eingefügter Text
pasted-video = Eingefügtes Video
copy-to = Kopieren nach...
copy-to = Kopieren nach ...
show-recents = Ordner zuletzt verwendeter Elemente in der Seitenleiste
clear-recents-history = Verlauf zuletzt verwendeter Elemente leeren
comment = Dateimanager für den COSMIC Desktop
@ -426,7 +426,7 @@ keywords = Ordner;Manager;
move-to-button-label = Verschieben
move-to-title = Verschiebeziel auswählen
remove-from-recents = Aus den zuletzt verwendeten Elementen entfernen
move-to = Verschieben nach...
move-to = Verschieben nach ...
copy-path = Pfad kopieren
mixed = Gemischt
context-action = Kontextaktion
@ -438,3 +438,6 @@ context-action-confirm-warning =
}.
run = Ausführen
rename-confirm = Umbenennen
checksum = { $kind } Prüfsumme
calculate = Berechnen
error = Fehler

View file

@ -22,7 +22,7 @@ password = Κωδικός πρόσβασης
remove = Αφαίρεση
create = Δημιουργία
pause = Παύση
quit = Έξοδος
quit = Τερματισμός
calculating = Υπολογισμός...
keep = Διατήρηση
edit = Επεξεργασία
@ -328,3 +328,6 @@ context-action-confirm-warning =
*[other] στοιχεία
}.
rename-confirm = Μετονομασία
checksum = Άθροισμα ελέγχου { $kind }
calculate = Υπολογισμός
error = Σφάλμα

View file

@ -0,0 +1,100 @@
save = Save
quit = Quit
name = Name
delete = Delete
cancel = Cancel
run = Run
new-window = New window
theme = Theme
appearance = Appearance
light = Light
repository = Repository
support = Support
dark = Dark
match-desktop = Match desktop
settings = Settings
replace = Replace
file = File
zoom-in = Zoom in
select-all = Select all
zoom-out = Zoom out
default-size = Default size
edit = Edit
copy = Copy
paste = Paste
view = View
undo = Undo
cut = Cut
icon-size-and-spacing = Icon size and spacing
cosmic-files = COSMIC Files
trash = Rubbish
empty-folder-hidden = Empty folder (has hidden items)
no-results = No results found
empty-folder = Empty folder
menu-settings = Settings...
recents = Recents
mounted-drives = Mounted drives
filesystem = Filesystem
home = Home
desktop-view-options = Desktop view options...
show-on-desktop = Show on Desktop
trash-folder-icon = Bin folder icon
desktop-folder-content = Desktop folder content
networks = Networks
today = Today
notification-in-progress = File operations are in progress
comment = File manager for the COSMIC desktop
keywords = Folder;Manager;
size = Size
dismiss = Dismiss message
trashed-on = Binned
create-archive = Create archive
pause = Pause
resume = Resume
grid-spacing = Grid spacing
details = Details
operations-running-finished =
{ $running } { $running ->
[one] operation
*[other] operations
} running ({ $percent }%), { $finished } finished...
icon-size = Icon size
modified = Modified
operations-running =
{ $running } { $running ->
[one] operation
*[other] operations
} running ({ $percent }%)...
copy-to-title = Select copy destination
open-file = Open file
open-multiple-files = Open multiple files
create-new-folder = Create new folder
create = Create
other-apps = Other applications
open-multiple-folders = Open multiple folders
extract-to = Extract To...
create-new-file = Create new file
open-in-new-window = Open in new window
folder-name = Folder name
browse-store = Browse { $store }
open-item-location = Open item location
mount-error = Unable to access drive
open = Open
extract-to-title = Extract to folder
open-with-title = How do you want to open "{ $name }"?
extract-password-required = Password required
open-folder = Open folder
open-in-new-tab = Open in new tab
file-name = File name
save-file = Save file
file-already-exists = A file with that name already exists
name-hidden = Names starting with "." will be hidden
folder-already-exists = A folder with that name already exists
empty-trash = Empty bin
empty-trash-title = Empty bin?
name-no-slashes = Name cannot contain slashes
name-invalid = Name cannot be "{ $filename }"
copy-to-button-label = Copy
move-to-title = Select move destination
move-to-button-label = Move
context-action = Context action

View file

@ -345,3 +345,4 @@ sort-newest-first = جدیدترین در ابتدا
sort-oldest-first = قدیمی‌ترین در ابتدا
sort-smallest-to-largest = کوچک‌ترین به بزرگ‌ترین
sort-largest-to-smallest = بزرگ‌ترین به کوچک‌ترین
run = اجرا

View file

@ -225,7 +225,7 @@ settings = Asetukset
appearance = Ulkoasu
theme = Teema
match-desktop = Sovita työpöytään
match-desktop = Sama kuin työpöytä
dark = Tumma
light = Vaalea
@ -415,3 +415,6 @@ context-action-confirm-warning =
}.
run = Suorita
rename-confirm = Nimeä uudelleen
checksum = { $kind }-tarkistussumma
calculate = Laske
error = Virhe

View file

@ -80,14 +80,14 @@ cancel = Annuler
create = Créer
open = Ouvrir
open-file = Ouvrir le fichier
open-folder = Ouvrir dossier
open-folder = Ouvrir le dossier
open-in-new-tab = Ouvrir dans un nouvel onglet
open-in-new-window = Ouvrir dans une nouvelle fenêtre
open-item-location = Ouvrir l'emplacement de l'élément
open-multiple-files = Ouvrir plusieurs fichiers
open-multiple-folders = Ouvrir plusieurs dossiers
save = Enregistrer
save-file = Enregistrer fichier
save-file = Enregistrer le fichier
## Open With Dialog
@ -189,7 +189,7 @@ keep = Conserver
## Add Network Drive
add-network-drive = Ajouter un lecteur réseau
connect = Connecter
connect = Se connecter
connect-anonymously = Se connecter anonymement
connecting = Connexion...
domain = Domaine
@ -206,8 +206,8 @@ network-drive-schemes =
File Transfer Protocol,ftp:// or ftps://
Network File System,nfs://
Server Message Block,smb://
SSH File Transfer Protocol,sftp:// or ssh://
WebDav,dav:// or davs://
SSH File Transfer Protocol,sftp:// ou ssh://
WebDAV,dav:// ou davs://
network-drive-error = Impossible d'accéder au lecteur réseau
password = Mot de passe
remember-password = Se souvenir du mot de passe
@ -222,7 +222,7 @@ history = Historique
no-history = Aucun élément dans l'historique.
pending = En attente
progress = { $percent }%
progress-cancelled = { $percent }%, annulation
progress-cancelled = { $percent }%, annulé
progress-paused = { $percent }%, en pause
failed = Échoué
complete = Terminé
@ -259,7 +259,7 @@ deleted =
[one] élément supprimé
*[other] éléments supprimés
} depuis { trash }
emptying-trash = { trash } en cours de nettoyage ({ $progress })...
emptying-trash = Nettoyage en cours de { trash } ({ $progress })...
emptied-trash = { trash } vidée
extracting =
Extraction de { $items } { $items ->
@ -271,7 +271,7 @@ extracted =
[one] élément extrait
*[other] éléments extraits
} depuis "{ $from }" vers "{ $to }"
setting-executable-and-launching = Paramétrage de "{ $name }" comme exécutable et prêt à être lancé
setting-executable-and-launching = Définition de "{ $name }" comme exécutable et lancement en cours
set-executable-and-launched = Défini "{ $name }" comme exécutable et lancé
moving =
Déplacement de { $items } { $items ->
@ -282,7 +282,7 @@ moved =
{ $items } { $items ->
[one] élément déplacé
*[other] éléments déplacés
} de "{ $from }" à "{ $to }"
} de "{ $from }" vers "{ $to }"
permanently-deleting =
Suppression définitive de { $items } { $items ->
[one] élément
@ -310,7 +310,7 @@ unknown-folder = Dossier inconnu
## Open with
menu-open-with = Ouvrir avec...
default-app = { $name } (défaut)
default-app = { $name } (par défaut)
## Show details
@ -352,7 +352,7 @@ open-in-terminal = Ouvrir dans le terminal
edit-desktop-entry = Modifier le fichier .desktop
move-to-trash = Déplacer vers la corbeille
restore-from-trash = Restaurer depuis la corbeille
remove-from-sidebar = Supprimer de la barre latérale
remove-from-sidebar = Retirer de la barre latérale
sort-by-name = Trier par nom
sort-by-modified = Trier par date de modification
sort-by-size = Trier par taille
@ -415,11 +415,11 @@ removing-from-recents =
*[other] éléments
} de { recents }
other-apps = Autres applications
set-permissions = Définir les permissions pour "{ $name }" à { $mode }
set-permissions = Permissions définies pour "{ $name }" à { $mode }
repository = Dépôt
support = Support
eject = Éjecter
remove-from-recents = Supprimer des récents
remove-from-recents = Retirer des récents
empty-trash-title = Vider la corbeille ?
setting-permissions = Définition des permissions pour "{ $name }" à { $mode }
removed-from-recents =
@ -428,9 +428,9 @@ removed-from-recents =
*[other] éléments supprimés
} de { recents }
progress-failed = { $percent }%, échec
type-to-search-select = Sélectionne le premier fichier ou dossier qui convient
type-to-search-select = Sélectionne le premier fichier ou dossier correspondant
pasted-image = Image collée
pasted-text = Text collé
pasted-text = Texte collé
pasted-video = Vidéo collée
copy-to-title = Sélectionner la destination de la copie
copy-to-button-label = Copier
@ -453,3 +453,6 @@ context-action-confirm-warning =
run = Exécuter
context-action = Action contextuelle
rename-confirm = Renommer
calculate = Calculer
error = Erreur
checksum = Somme de contrôle { $kind }

View file

@ -307,7 +307,7 @@ single-click = Cliceáil amháin le hoscailt
### Appearance
appearance = Cuma
appearance = Dealramh
theme = Téama
match-desktop = Meaitseáil deasc
dark = Dorcha
@ -443,3 +443,6 @@ context-action-confirm-warning =
}.
run = Rith
rename-confirm = Athainmnigh
checksum = { $kind } suim sheiceála
calculate = Ríomh
error = Earráid

333
i18n/gl/cosmic_files.ftl Normal file
View file

@ -0,0 +1,333 @@
name = Nome
save = Gardar
cancel = Cancelar
run = Executar
delete = Eliminar
repository = Repositorio
support = Soporte
settings = Axustes
appearance = Apariencia
theme = Tema
match-desktop = Axustar ao escritorio
dark = Escuro
light = Claro
replace = Remplazar
file = Ficheiro
new-window = Nova xanela
quit = Pechar
edit = Editar
undo = Desfacer
cut = Cortar
copy = Copiar
paste = Pegar
select-all = Seleccionar todo
view = Ver
zoom-in = Aumentar Zoom
default-size = Tamaño por defecto
zoom-out = Afastar Zoom
menu-settings = Axustes...
cosmic-files = Ficheiros COSMIC
comment = Xestor de ficheiros para o escritorio COSMIC
keywords = Cartafol;Xestor;
empty-folder = Cartafol baleiro
empty-folder-hidden = Cartafol baleiro (contén elementos agochados)
no-results = Non se atoparon resultados
filesystem = Sistema de ficheiros
home = Inicio
networks = Redes
notification-in-progress = Operacións de ficheiros en progreso
trash = Lixo
recents = Recentes
today = Hoxe
desktop-view-options = Axustes da vista do escritorio…
show-on-desktop = Amosar no Escritorio
desktop-folder-content = Contido do cartafol Escritorio
mounted-drives = Unidades montadas
trash-folder-icon = Icona do cartafol do Lixo
icon-size-and-spacing = Tamaño e espazado das iconas
icon-size = Tamaño de icona
grid-spacing = Espazado da grella
modified = Modificado
trashed-on = No lixo
size = Tamaño
details = Detalles
dismiss = Descartar a mensaxe
operations-running =
{ $running } { $executandose ->
[unha] operacion
*[outra] operacions
} executandose ({ $percent }%)...
operations-running-finished =
{ $running } { $executandose ->
[unha] operacion
*[outra] operacions
} executandose ({ $percent }%), { $finished } rematadas...
pause = Pausa
resume = Retomar
create-archive = Crear arquivo comprimido
copy-to-title = Seleccionar o destino da copia
copy-to-button-label = Copiar
extract-password-required = Contrasinal necesario
extract-to = Extraer en…
extract-to-title = Extraer a cartafol
empty-trash = Baleirar Lixo
empty-trash-title = Baleirar o lixo?
empty-trash-warning = Os elementos do cartafol do lixo eliminaranse de forma permanente
mount-error = Non é posible acceder a unidade
move-to-title = Seleccionar o destino do movemento
move-to-button-label = Mover
create-new-file = Crear un novo ficheiro
create-new-folder = Crear novo cartafol
file-name = Nome do ficheiro
folder-name = Nome do cartafol
file-already-exists = Existe un ficheiro co mesmo nome
folder-already-exists = Existe un cartafol co mesmo nome
name-hidden = Os nomes que comecen por "." agocharanse
name-invalid = O nome non pode ser "{ $filename }"
name-no-slashes = O nome non pode conter barras
create = Crear
open = Abrir
open-file = Abrir ficheiro
open-folder = Abrir cartafol
open-in-new-tab = Abrir nunha nova lapela
open-in-new-window = Abrir nunha nova xanela
open-item-location = Abrir ubicación do ítem
open-multiple-files = Abrir multiples ficheiros
open-multiple-folders = Abrir multiples cartafoles
save-file = Gardar ficheiro
open-with-title = Como queres abrir «{ $name }»?
browse-store = Atopar { $store }
other-apps = Outras aplicacións
related-apps = Aplicacións relacionadas
context-action = Acción contextual
context-action-confirm-title = Executar "{ $name }"?
context-action-confirm-warning =
Esto vaise executar en { $items } { $items ->
[un] item
*[outro] items
}.
selected-items = Os { $items } elementos seleccionados
permanently-delete-question = Eliminar permanentemente?
permanently-delete-warning = { $target } será eliminado permanentemente. Esta acción non se poderá desfacer.
rename-file = Renomear ficheiro
rename-folder = Renomear cartafol
rename-confirm = Renomear
replace-title = "{ $filename }" xa existe nesta ubicación
replace-warning = Queres substituílo polo que estás a gardar? Ao substituílo sobrescribirase o seu contido.
replace-warning-operation = Queres substituílo? Ao substituílo sobrescribirase o seu contido.
original-file = Ficheiro orixinal
replace-with = Remplazar con
apply-to-all = Aplicar a todo
keep-both = Manter ambos
skip = Saltar
set-executable-and-launch = Marcar como executable e lanzalo
set-executable-and-launch-description = Queres marcar «{ $name }» como executábel e lanzalo?
set-and-launch = Marcar e executar
open-with = Abrir con
owner = Propietario
group = Grupo
other = Outro
mixed = Mesturar
none = Ningún
execute-only = Só execución
write-only = Só escritura
write-execute = Escritura e execución
read-only = Só lectura
read-execute = Lectura e execución
read-write = Lectura e escritura
read-write-execute = Lectura, escritura e execución
favorite-path-error = Erro abrindo o directorio
favorite-path-error-description =
Non foi posíbel abrir «{ $path }».
É posíbel que «{ $path }» non exista ou que non teñas permisos para abrilo.
Queres retiralo da barra lateral?
remove = Eliminar
keep = Manter
add-network-drive = Engadir unidade de rede
connect = Conectar
connect-anonymously = Conectar de xeito anonimo
connecting = Conectando...
domain = Dominio
enter-server-address = Introducir a dirección do servidor
network-drive-description =
Os enderezos dos servidores inclúen un prefixo de protocolo e un enderezo.
Exemplos: ssh://192.168.0.1, ftp://[2001:db8::1]
network-drive-schemes =
Protocolos dispoñíbeis,Prefixo
AppleTalk,afp://
Protocolo de transferencia de ficheiros,ftp:// ou ftps://
Sistema de ficheiros en rede,nfs://
Server Message Block,smb://
Protocolo de transferencia de ficheiros por SSH,sftp:// ou ssh://
WebDAV,dav:// ou davs://
network-drive-error = Non foi posible acceder a unidade de rede
password = Contrasinal
remember-password = Recordar o contrasinal
try-again = Voltar a intentar
username = Nome de usuario
cancelled = Cancelado
edit-history = Editar historial
history = Historial
no-history = Non hai elementos no historial.
pending = Pendente
progress = { $percent }%
progress-cancelled = { $percent }%, cancelado
progress-failed = { $percent }%, fallou
progress-paused = { $percent }%, pausado
failed = Fallou
complete = Completado
compressing =
Comprimindo { $items } { $items ->
[one] elemento
*[other] elementos
} de «{ $from }» a «{ $to }» ({ $progress })...
compressed =
Comprimidos { $items } { $items ->
[one] elemento
*[other] elementos
} de «{ $from }» a «{ $to }»
copy_noun = Copiar
pasted-image = Imaxe pegada
pasted-text = Texto Pegado
pasted-video = Video pegado
creating = Creando "{ $name }" en "{ $parent }"
created = Creado "{ $name }" en "{ $parent }"
copying =
Copiando { $items } { $items ->
[one] elemento
*[other] elementos
} de «{ $from }» a «{ $to }» ({ $progress })...
copied =
Copiados { $items } { $items ->
[one] elemento
*[other] elementos
} de «{ $from }» a «{ $to }»
deleted =
Eliminando { $items } { $items ->
[one] elemento
*[other] elementos
} do lixo ({ $progress })
emptying-trash = Baleirando { trash } ({ $progress })...
emptied-trash = Baleirado o { trash }
extracting =
Extraendo { $items } { $items ->
[one] elemento
*[other] elementos
} de «{ $from }» a «{ $to }» ({ $progress })...
extracted =
Extraídos { $items } { $items ->
[one] elemento
*[other] elementos
} de «{ $from }» a «{ $to }»
setting-executable-and-launching = Marcando «{ $name }» como executábel e executándoo
set-executable-and-launched = «{ $name }» marcouse como executábel e executouse
setting-permissions = Establecendo os permisos de «{ $name }» en { $mode }
set-permissions = Establecéronse os permisos de «{ $name }» en { $mode }
moving =
Movendo { $items } { $items ->
[one] elemento
*[other] elementos
} de «{ $from }» a «{ $to }» ({ $progress })...
moved =
Movidos { $items } { $items ->
[one] elemento
*[other] elementos
} de «{ $from }» a «{ $to }»
permanently-deleting =
Eliminando permanentemente { $items } { $items ->
[one] elemento
*[other] elementos
}
permanently-deleted =
Eliminados permanentemente { $items } { $items ->
[one] elemento
*[other] elementos
}
removing-from-recents =
Retirando { $items } { $items ->
[one] elemento
*[other] elementos
} dos { recents }
removed-from-recents =
Retirado { $items } { $items ->
[one] elemento
*[other] elementos
} de { recents }
renaming = Renomeando "{ $from }" a "{ $to }"
renamed = Renomeado "{ $from }" a "{ $to }"
restoring =
Restaurando { $items } { $items ->
[one] elemento
*[other] elementos
} de { trash } ({ $progress })...
restored =
Restaurado { $items } { $items ->
[one] elemento
*[other] elementos
} de { trash }
unknown-folder = cartafol descoñecido
menu-open-with = Abrir con...
default-app = { $name } (por defecto)
show-details = Amosar detalles
type = Tipo: { $mime }
items = Elementos: { $items }
item-size = Tamaño: { $size }
item-created = Creado: { $created }
item-modified = Modificado: { $modified }
item-accessed = Accedido: { $accessed }
calculating = Calculando...
checksum = { $kind } checksum
calculate = Calculado
error = Erro
single-click = Clic único para abrir
show-recents = Cartafol de recentes no panel lateral
type-to-search = Escribe para atopar
type-to-search-recursive = Busca no cartafol actual e en todos os subcartafoles
type-to-search-enter-path = Introduce a ruta do cartafol ou ficheiro
type-to-search-select = Selecciona o primeiro ficheiro ou cartafol coincidente
add-to-sidebar = Engadir o panel lateral
clear-recents-history = Limpar historial de recentes
compress = Comprimir...
copy-to = Copiar a...
delete-permanently = Eliminar permanentemente
eject = Expulsar
extract-here = Extraer
new-file = Novo ficheiro...
new-folder = Novo cartafol...
open-in-terminal = Abrir no terminal
move-to = Mover a...
move-to-trash = Mover ao lixo
restore-from-trash = Recuperar do lixo
remove-from-sidebar = Eliminar do panel lateral
sort-by-name = Ordenar por nome
sort-by-modified = Ordenar por modificación
sort-by-size = Ordenar por tamaño
sort-by-trashed = Ordenar pola data de eliminación
remove-from-recents = Eliminar de recentes
change-wallpaper = Cambiar fondo de pantalla...
desktop-appearance = Apariencia do Escritorio...
display-settings = Axustes de pantalla...
new-tab = Nova lapela
reload-folder = Recargar cartafol
rename = Renomear...
close-tab = Pechar lapela
copy-path = Copiar ruta
grid-view = Vista de grella
list-view = Vista de lista
show-hidden-files = Amosar ficheiros ocultos
list-directories-first = Listar primeiro os directorios
gallery-preview = Vista previa da galería
menu-about = Sobre Ficheiros COSMIC...
sort = Ordenar
sort-a-z = A-Z
sort-z-a = Z-A
sort-newest-first = Novos primeiro
sort-oldest-first = Antigos primeiro
sort-smallest-to-largest = Do máis pequeno ao máis grande
sort-largest-to-smallest = Do máis grande ao máis pequeno
deleting =
Eliminando { $items } { $items ->
[one] elemento
*[other] elementos
} da { trash } ({ $progress })...

View file

@ -5,7 +5,7 @@ no-results = कोई परिणाम नहीं
filesystem = फाइल सिस्टम
home = होम
networks = नेटवर्क्स
notification-in-progress = फाइल संचालन प्रगति पर है।
notification-in-progress = फ़ाइल संचालन प्रगति पर हैं
trash = कचरा
recents = हाल के
undo = पूर्ववत करें
@ -33,8 +33,8 @@ create-archive = संग्रह बनाएँ
## Empty Trash Dialog
empty-trash = कचरा खाली करें
empty-trash-warning = क्या आप वाकई कचरे में सभी आइटमों को स्थायी रूप से हटाना चाहते हैं?
empty-trash = रद्दी साफ़ करें
empty-trash-warning = रद्दी फ़ोल्डर में मौजूद आइटम स्थायी रूप से हटा दिए जाएंगे
## New File/Folder Dialog
@ -42,11 +42,11 @@ create-new-file = नई फाइल बनाएँ
create-new-folder = नया फ़ोल्डर बनाएँ
file-name = फाइल का नाम
folder-name = फ़ोल्डर का नाम
file-already-exists = इसी नाम की फाइल पहले से मौजूद है।
folder-already-exists = इसी नाम का फ़ोल्डर पहले से मौजूद है।
name-hidden = "." से शुरू होने वाले नाम छिपे रहेंगे।
name-invalid = नाम "{ $filename }" मान्य नहीं है।
name-no-slashes = नाम में स्लैश का उपयोग नहीं किया जा सकता है।
file-already-exists = उस नाम की फ़ाइल पहले से मौजूद है
folder-already-exists = उस नाम का फ़ोल्डर पहले से मौजूद है
name-hidden = "." से शुरू होने वाले नाम छिपे होंगे
name-invalid = नाम "{ $filename }" नहीं हो सकता
name-no-slashes = नाम में स्लैश नहीं हो सकते
## Open/Save Dialog
@ -75,8 +75,8 @@ rename-folder = फ़ोल्डर का नाम बदलें
## Replace Dialog
replace = प्रतिस्थापित करें
replace-title = { $filename } पहले से इस स्थान पर मौजूद है।
replace = बदलें
replace-title = { $filename } पहले से इस स्थान पर मौजूद है
replace-warning = क्या आप इसे प्रतिस्थापित करना चाहते हैं? यदि प्रतिस्थापित किया गया, तो मौजूदा फ़ाइल को ओवरराइट किया जाएगा।
replace-warning-operation = क्या आप इसे बदलना चाहते हैं? प्रतिस्थापित करने पर मौजूदा फ़ाइल ओवरराइट हो जाएगी।
original-file = मूल फ़ाइल
@ -211,13 +211,13 @@ show-details = विवरण दिखाएँ
## Settings
settings = सेटिंग
settings = सेटिंग्स
### Appearance
appearance = रूप
theme = थीम
match-desktop = सिस्टम सेटिंग्स से मेल खाएँ
appearance = रुप-रंग
theme = प्रसंग
match-desktop = डेस्कटॉप से मेल खाएँ
dark = डार्क
light = लाइट
# Context menu
@ -251,27 +251,27 @@ new-tab = नया टैब
new-window = नई विंडो
rename = नाम बदलें...
close-tab = टैब बंद करें
quit = बंद करें
quit = बाहर जाएँ
## Edit
edit = संपादित करें
cut = कट करें
copy = नकल करें
edit = संपादन
cut = काटें
copy = कॉपी करें
paste = चिपकाएँ
select-all = सभी चुनें
## View
zoom-in = ज़ूम इन करें
default-size = डिफ़ॉल्ट आकार
zoom-out = ज़ूम आउट करें
zoom-in = बड़ा करें
default-size = मूल आकार
zoom-out = छोटा करें
view = दृश्य
grid-view = ग्रिड दृश्य
list-view = सूची दृश्य
show-hidden-files = छिपी हुई फाइलें दिखाएँ
list-directories-first = सबसे पहले डाइरेक्ट्री दिखाएँ
menu-settings = सेटिंग्स...
menu-settings = सेटिंग्स..।
menu-about = कॉस्मिक फाइल्स के बारे में...
## Sort
@ -284,4 +284,98 @@ sort-oldest-first = पुराने से नए
sort-smallest-to-largest = छोटे से बड़े
sort-largest-to-smallest = बड़े से छोटे
repository = रिपॉजिटरी
support = सहायता
support = समर्थन
read-execute = पढ़ें और निष्पादित करें
deleted =
{ trash } से { $items } { $items ->
[one] आइटम मिटाया गया
*[other] आइटम मिटाए गए
}
dismiss = संदेश खारिज करें
favorite-path-error = निर्देशिका खोलने में त्रुटि
progress = { $percent }%
related-apps = संबंधित ऐप्स
removing-from-recents =
{ recents } से { $items } { $items ->
[one] आइटम हटाया जा रहा है
*[other] आइटम हटाए जा रहे हैं
}
remove = हटाएँ
read-write-execute = पढ़ें, लिखें और निष्पादित करें
other-apps = अन्य ऐप्स
pause = विराम
keep = रखें
permanently-deleting =
{ $items } { $items ->
[one] आइटम स्थायी रूप से मिटाया जा रहा है
*[other] आइटम स्थायी रूप से मिटाए जा रहे हैं
}
read-write = पढ़ें और लिखें
none = कोई नहीं
resume = फिर से शुरू करें
grid-spacing = ग्रिड स्पेसिंग
extract-to = इस रूप में निकालें..।
delete = हटाएं
read-only = केवल पढ़ने के लिए
deleting =
{ trash } से { $items } { $items ->
[one] आइटम मिटाया जा रहा है
*[other] आइटम मिटाए जा रहे हैं
} ({ $progress })..।
execute-only = केवल निष्पादित करें
details = विवरण
mount-error = ड्राइव तक पहुँचने में असमर्थ
removed-from-recents =
{ recents } से { $items } { $items ->
[one] आइटम हटाया गया
*[other] आइटम हटाए गए
}
progress-paused = { $percent }%, रुका हुआ
cancelled = रद्द किया गया
operations-running-finished =
{ $running } { $running ->
[one] ऑपरेशन
*[other] ऑपरेशन
} चल रहा है ({ $percent }%), { $finished } समाप्त..।
progress-failed = { $percent }%, विफल
extract-to-title = फ़ोल्डर में निकालें
open-with = इससे खोलें
permanently-deleted =
{ $items } { $items ->
[one] आइटम स्थायी रूप से मिटाया गया
*[other] आइटम स्थायी रूप से मिटाए गए
}
write-execute = लिखें और निष्पादित करें
extract-password-required = पासवर्ड आवश्यक है
progress-cancelled = { $percent }%, रद्द किया गया
write-only = केवल लिखने के लिए
permanently-delete-warning = { $target } को स्थाई रूप से हटा दिया जाएगा। इस कार्रवाई को पूर्ववत नहीं किया जा सकता है।
favorite-path-error-description =
"{ $path }" को खोला नहीं जा सकता
"{ $path }" मौजूद नहीं हो सकता है या आपके पास इसे खोलने की अनुमति नहीं हो सकती है
क्या आप इसे साइडबार से हटाना चाहते हैं?
empty-trash-title = रद्दी साफ़ करें?
permanently-delete-question = स्थाई रूप से हटाएं?
operations-running =
{ $running } { $running ->
[one] ऑपरेशन
*[other] ऑपरेशन
} चल रहा है ({ $percent }%)..।
copy-to-title = कॉपी गंतव्य चुनें
copy-to-button-label = कॉपी
move-to-title = मूव गंतव्य चुनें
move-to-button-label = मूव
context-action = संदर्भ क्रिया
context-action-confirm-title = "{ $name }" चलाएँ?
context-action-confirm-warning =
यह { $items } { $items ->
[one] आइटम
*[other] आइटम
} पर चलेगा।
run = चलाएँ
rename-confirm = नाम बदलें
mixed = मिश्रित
pasted-image = चिपकाई गई छवि
pasted-text = चिपकाया गया पाठ
pasted-video = चिपकाया गया वीडियो

View file

@ -326,7 +326,7 @@ default-app = { $name } (alapértelmezett)
show-details = Részletek megjelenítése
type = Típus: { $mime }
items = Elemek: { $items }
items = Elemek száma: { $items }
item-size = Méret: { $size }
item-created = Létrehozva: { $created }
item-modified = Módosítva: { $modified }
@ -446,3 +446,6 @@ context-action-confirm-warning =
} fog lefutni.
run = Futtatás
rename-confirm = Átnevezés
checksum = { $kind } ellenőrzőösszeg
calculate = Számítás
error = Hiba

View file

@ -249,7 +249,7 @@ settings = Pengaturan
single-click = Klik sekali untuk membuka
appearance = Tampilan
theme = Tema
match-desktop = Cocokkan desktop
match-desktop = Cocok desktop
dark = Gelap
light = Terang
type-to-search = Ketik untuk mencari
@ -328,3 +328,6 @@ context-action-confirm-warning =
*[other] item
}.
rename-confirm = Ganti nama
checksum = { $kind } checksum
calculate = Hitung
error = Galat

View file

@ -1,5 +1,5 @@
cosmic-files = COSMIC Files
comment = File manager di COSMIC
comment = File manager per il desktop COSMIC
keywords = File;Archivi;Cartelle;Explorer;
empty-folder = Cartella vuota
empty-folder-hidden = Cartella vuota (con elementi nascosti)
@ -7,7 +7,7 @@ no-results = Nessun risultato trovato
filesystem = Filesystem
home = Home
networks = Reti
notification-in-progress = Operazioni sui file in corso.
notification-in-progress = Operazioni sui file in corso
trash = Cestino
recents = Recenti
undo = Annulla
@ -322,7 +322,7 @@ single-click = Click singolo per aprire
appearance = Aspetto
theme = Tema
match-desktop = Sistema
match-desktop = Abbina al desktop
dark = Scuro
light = Chiaro
@ -422,3 +422,4 @@ removed-from-recents =
[one] elemento
*[other] elementi
} da { recents }
run = Esegui

View file

@ -22,7 +22,7 @@ name = Аты
modified = Өзгертілген
trashed-on = Қоқыс шелегіне тасталған
size = Өлшемі
details = Ақпараты
details = Толық ақпарат
dismiss = Хабарламаны елемеу
operations-running =
{ $running } { $running ->
@ -246,10 +246,10 @@ item-accessed = Қол жеткізілген: { $accessed }
calculating = Есептеу...
settings = Баптаулар
single-click = Ашу үшін бір рет шерту
appearance = Сыртқы түрі
theme = Тақырып
match-desktop = Жұмыс үстеліне сәйкес келу
dark = Күңгірт
appearance = Сыртқы көрініс
theme = Тема
match-desktop = Жұмыс үстеліне сәйкес болу
dark = Қою
light = Ашық
type-to-search = Іздеу үшін теру
type-to-search-recursive = Ағымдағы бума мен барлық ішкі бумаларды іздейді
@ -328,3 +328,6 @@ context-action-confirm-warning =
}.
run = Орындау
rename-confirm = Атын өзгерту
checksum = { $kind } бақылау сомасы
calculate = Есептеу
error = Қате

View file

@ -30,10 +30,10 @@ new-window = Çarçoveya nû
remove = Rake
zoom-out = Dûr bike
compressing =
{ $items } tê guvaştin { $items ->
{ $items } { $items ->
[one] hêman
*[other] hêman
} ji "{ $from }" bo "{ $to }" ({ $progress })...
} tê guvaştin ji "{ $from }" bo "{ $to }" ({ $progress })...
move-to-trash = Bilivîne bo jêbirdankê
menu-about = Derbarê Pelên COSMIC...
file-already-exists = Pelek bi heman navî jixwe heye
@ -42,10 +42,10 @@ open-multiple-files = Gelek pelan veke
default-size = Mezinahiya berdest
name-hidden = Navên ku bi "." tê destpêkirin wê werin veşartin
extracted =
{ $items } hate derxistin { $items ->
{ $items } { $items ->
[one] hêman
*[other] hêman
} ji "{ $from }" bo "{ $to }"
} hate derxistin ji "{ $from }" bo "{ $to }"
create-new-folder = Peldanka nû biafrîne
folder-already-exists = Peldankek bi heman navî jixwe heye
create-archive = Erşîvê biafrîne
@ -79,10 +79,10 @@ none = Ne yek
no-results = Tu encam nehatin dîtin
theme = Rûkar
compressed =
{ $items } hate guvaştin{ $items ->
{ $items } { $items ->
[one] hêman
*[other] hêman
} ji "{ $from }" bo "{ $to }"
} hate guvaştin ji "{ $from }" bo "{ $to }"
appearance = Xuyang
rename-folder = Navê peldankê biguherîne
new-file = Pela nû...
@ -95,20 +95,20 @@ light = Ronî
extract-to = Derxîne bo...
add-network-drive = Ajokarê torê tevlî bike
copying =
{ $items } tê jêgirtin{ $items ->
{ $items } { $items ->
[one] hêman
*[other] hêman
} ji "{ $from }" bo "{ $to }" ({ $progress })...
} tê jêgirtin ji "{ $from }" bo "{ $to }" ({ $progress })...
create-new-file = Pelê nû biafrîne
sort-by-trashed = Li gorî demê rêz bike
support = Piştgirî
try-again = Dîsa hewl bide
eject = Biavêje
copied =
{ $items } hate jêgirtin { $items ->
{ $items } { $items ->
[one] hêman
*[other] hêman
} ji "{ $from }" bo "{ $to }"
} hate jêgirtin ji "{ $from }" bo "{ $to }"
open-in-new-window = Di çarçoveyeke nû de veke
empty-folder = Peldanka vala
empty-trash = Jêbirdankê vala bike
@ -121,10 +121,10 @@ paste = Pêve bike
empty-trash-title = Jêbirdankê vala bike?
menu-settings = Sazkarî...
moving =
{ $items } tê livandin{ $items ->
{ $items } { $items ->
[one] hêman
*[other] hêman
} ji "{ $from }" bo "{ $to }" ({ $progress })...
} tê livandin ji "{ $from }" bo "{ $to }" ({ $progress })...
change-wallpaper = Wêneyê dîwêr biguhêrîne...
network-drive-description =
Di nav navnîşanên rajekarê de pêşgira protokolekê û navnîşanek heye.
@ -158,8 +158,8 @@ progress-paused = { $percent }%, hate rawestandin
desktop-view-options = Vebijêrkên dîtina sermaseyê...
show-on-desktop = Li ser sermaseyê nîşan bide
cancelled = Têkbirî
new-folder = Peldankan nû...
match-desktop = Li gorî sermaseyê
new-folder = Peldanka nû...
match-desktop = Bi sermaseyê re li hev bîne
name-no-slashes = Nav nabe ku "/" tê de hebe
operations-running-finished =
{ $running } { $running ->
@ -175,10 +175,10 @@ extract-to-title = Derxîne bo peldankê
icon-size = Mezinahiya îkonê
open-with-title = Tu çawa dixwazî "{ $name }" vekî?
extracting =
{ $items } tê derxistin { $items ->
{ $items } { $items ->
[one] hêman
*[other] hêman
} ji "{ $from }" bo"{ $to }" ({ $progress })...
} tê derxistin ji "{ $from }" bo"{ $to }" ({ $progress })...
settings = Sazkarî
complete = Qediya
permanently-delete-question = Bi mayînde jê bibe?
@ -193,10 +193,10 @@ sort-largest-to-smallest = Mezintir bo biçûktir
restore-from-trash = Ji jêbirdankê vegerîne
cut = Jê bike
moved =
{ $items } hate livandin { $items ->
{ $items } { $items ->
[one] hêman
*[other] hêman
} ji "{ $from }" bo "{ $to }"
} hate livandin ji "{ $from }" bo "{ $to }"
progress-cancelled = { $percent }%, hat têkbirin
open-in-new-tab = Di rûgerê nû de veke
file = Pel
@ -220,7 +220,7 @@ trash = Jêbirdank
undo = Vegerîne
today = Îro
name = Nav
modified = Guhertî
modified = Guhertin
size = Mezinahî
details = Hûrgilî
pause = Rawestîne
@ -229,7 +229,7 @@ copy-to-title = Rêgeha jêgirtinê hilbijêre
copy-to-button-label = Jê bigire
move-to-title = Rêgeha livandinê hilbijêre
move-to-button-label = Bilivîne
create = Biafrîne
create = Afirandin
save = Tomar bike
context-action = Çalakiya naverokê
context-action-confirm-title = "{ $name }" bixebtîne?
@ -263,7 +263,7 @@ restoring =
} ji { trash } ({ $progress })...
icon-size-and-spacing = Mezinahiya îkonan û valahiya di navbera wan de
type-to-search-enter-path = Riya rêgehê yan jî pelê têdixîne
menu-open-with = Veke bi...
menu-open-with = Veke bi riya...
original-file = Pelê resen
read-write-execute = Xwendin, nivîsandin û xebitandin
calculating = Tê jimartin...
@ -311,7 +311,7 @@ restored =
domain = Navper
sort = Rêz bike
item-accessed = Gihîştin: { $accessed }
open-with = Veke bi
open-with = Veke bi riya
keep-both = Herduyan bihêle
permanently-deleted =
{ $items } bi mayînde hate jêbirin{ $items ->
@ -328,3 +328,6 @@ write-only = Tenê nivîsandin
trashed-on = Li Jêbirdankê hatiye avêtin
mixed = Tevlihev
type-to-search-select = Pel an peldanka yekem a lihevhatî hildibijêre
calculate = Bijmêre
error = Şaşetî
checksum = Tevahiya { $kind } kontrol bike

View file

@ -278,3 +278,12 @@ move-to-button-label = 이동
clear-recents-history = 최근 기록 비우기
copy-path = 복사 경로
move-to-title = 이동 위치 선택
copy-to-title = 복사 경로 선택
run = 실행
rename-confirm = 이름 변경
mixed = 혼합됨
pasted-image = 붙여넣은 이미지
pasted-text = 붙여넣은 텍스트
pasted-video = 붙여넣은 영상
copy-to = 복사하기...
move-to = 이동하기...

View file

@ -244,7 +244,7 @@ item-created = Sukurtas: { $created }
item-modified = Modifikuota: { $modified }
item-accessed = Paskutinė prieiga: { $accessed }
calculating = Skaičiuojama...
settings = Nuostatos
settings = Nuostatai
single-click = Vieno paspaudimo atidarymas
appearance = Išvaizda
match-desktop = Pagal darbalaukio temą
@ -276,7 +276,7 @@ new-window = Naujas langas
reload-folder = Perkrauti aplanką
rename = Pervadinti...
close-tab = Uždaryti skirtuką
quit = Išeiti
quit = Išjungti
edit = Redaguoti
cut = Iškirpti
copy = Kopijuoti
@ -291,7 +291,7 @@ list-view = Sąrašo išdėstymas
show-hidden-files = Rodyti paslėptus failus
list-directories-first = Pirmiau pateikti aplankus
gallery-preview = Galerijos peržiūra
menu-settings = Nuostatos...
menu-settings = Nuostatai...
menu-about = Apie COSMIC Files...
sort = Rikiuoti
sort-a-z = A-Ž
@ -318,3 +318,9 @@ copy-to = Kopijuoti į...
move-to = Perkeltiį į...
copy-path = Kopijuoti kelią
theme = Stilius
context-action = Konteksto veiksmas
context-action-confirm-title = Paleisti „{ $name }“?
run = Paleisti
rename-confirm = Pervadinti
calculate = Skaičiuoti
error = Klaida

View file

@ -425,7 +425,7 @@ removed-from-recents =
} uit { recents } verwijderd
remove-from-recents = Uit recente verwijderen
type-to-search-select = Dit selecteert het eerst overeenkomende bestand of map
comment = Bestandsbeheerder voor COSMIC desktop
comment = Bestandsbeheerder voor COSMIC
copy-to-title = Kopieerbestemming aanwijzen
copy-to-button-label = Kopiëren
move-to-button-label = Verplaatsen

View file

@ -0,0 +1,6 @@
appearance = Aparéncia
theme = Tèma
match-desktop = Assortir al burèu
dark = Fosc
light = Clar
file = Fichièr

View file

@ -146,7 +146,7 @@ new-tab = ਨਵੀਂ ਟੈਬ
new-window = ਨਵੀਂ ਵਿੰਡੋ
rename = ਨਾਂ ਨੂੰ ਬਦਲੋ...
close-tab = ਟੈਬ ਨੂੰ ਬੰਦ ਕਰੋ
quit = ਬਾਹਰ
quit = ਸਮਾਪਤ
edit = ਸੋਧੋ
cut = ਕੱਟੋ
copy = ਕਾਪੀ ਕਰੋ
@ -188,9 +188,9 @@ item-accessed = ਪਹੁੰਚ: { $accessed }
calculating = ਗਿਣਤੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ...
single-click = ਇੱਕ ਵਾਰ ਕਲਿੱਕ ਕਰਕੇ ਖੋਲ੍ਹੋ
show-recents = ਬਾਹੀ ਵਿੱਚ ਸੱਜਰੇ ਫੋਲਡਰ
match-desktop = ਡੈਸਕਟਾਪ ਨਾਲ ਮਿਲਦਾ
match-desktop = ਡੈਸਕਟਾਪ ਨਾਲ ਮਿਲਾਓ
dark = ਗੂੜ੍ਹਾ
light = ਹਲਕਾ
light = ਫਿੱਕਾ
type-to-search = ਖੋਜਣ ਲਈ ਲਿਖੋ
type-to-search-recursive = ਮੌਜੂਦਾ ਫੋਲਡਰ ਅਤੇ ਸਭ ਅਧੀਨ-ਫੋਲਡਰਾਂ ਵਿੱਚ ਖੋਜੋ
add-to-sidebar = ਬਾਹੀ ਵਿੱਚ ਜੋੜੋ

View file

@ -27,7 +27,7 @@ modified = Zmodyfikowano
trashed-on = Wyrzucono do kosza
size = Rozmiar
# Progress footer
details = Detale
details = Szczegóły
dismiss = Odrzuć wiadomość
operations-running =
{ $running } bieżące { $running ->
@ -390,7 +390,7 @@ new-window = Nowe okno
reload-folder = Odśwież katalog
rename = Zmień nazwę…
close-tab = Zamknij kartę
quit = Zamknij
quit = Zakończ
## Edit
@ -447,3 +447,6 @@ context-action-confirm-warning =
}.
run = Uruchom
rename-confirm = Zmień nazwę
checksum = { $kind } suma kontrolna
calculate = Oblicz
error = Błąd

View file

@ -388,7 +388,7 @@ new-window = Nova janela
reload-folder = Recarregar pasta
rename = Renomear...
close-tab = Fechar aba
quit = Sair
quit = Encerrar
## Edit
@ -446,3 +446,6 @@ context-action-confirm-warning =
}.
run = Executar
rename-confirm = Renomear
checksum = Soma de verificação { $kind }
calculate = Calcular
error = Erro

View file

@ -188,7 +188,7 @@ settings = Параметры
### Appearance
appearance = Оформление
appearance = Внешний вид
theme = Тема
match-desktop = Как в системе
dark = Тёмная
@ -218,7 +218,7 @@ new-tab = Новая вкладка
new-window = Новое окно
rename = Переименовать…
close-tab = Закрыть вкладку
quit = Выйти
quit = Завершить
## Edit
@ -271,8 +271,8 @@ extract-to = Распаковать в…
extract-to-title = Распаковать в папку
mount-error = Не удалось получить доступ к диску
create = Создать
open-with-title = Как вы хотите открыть «{ $name }»?
browse-store = Искать в { $store }
open-with-title = Как хотите открыть «{ $name }»?
browse-store = Перейти в { $store }
other-apps = Другие приложения
related-apps = Связанные приложения
selected-items = { $items } выделенных элем.
@ -320,7 +320,7 @@ type-to-search-enter-path = Ввод пути к каталогу или фай
delete-permanently = Удалить навсегда
eject = Извлечь
remove-from-recents = Убрать из недавних
change-wallpaper = Изменить обои…
change-wallpaper = Изменить фон...
desktop-appearance = Параметры оформления…
display-settings = Параметры экрана…
reload-folder = Обновить папку
@ -390,3 +390,6 @@ context-action-confirm-warning =
}.
run = Выполнить
rename-confirm = Переименовать
checksum = Хеш-сумма { $kind }
calculate = Вычислить
error = Ошибка

View file

@ -0,0 +1,3 @@
cancel = ᱵᱟᱹᱛᱤᱞ
name = ᱧᱩᱛᱩᱢ
save = ᱥᱟᱧᱪᱟᱣ

View file

@ -319,7 +319,7 @@ 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
@ -419,3 +419,6 @@ context-action-confirm-warning =
}.
run = Kör
rename-confirm = Byt namn
checksum = { $kind }-kontrollsumma
calculate = Beräkna
error = Fel

View file

@ -158,7 +158,7 @@ new-tab = Нова вкладка
new-window = Нове вікно
rename = Перейменувати...
close-tab = Закрити вкладку
quit = Вийти
quit = Завершити
## Edit
@ -182,7 +182,7 @@ menu-settings = Налаштування...
menu-about = Про Файли COSMIC...
repository = Сховище
support = Підтримка
details = Деталі
details = Подробиці
dismiss = Закрити повідомлення
remove = Вилучити
cancelled = Скасовані
@ -389,3 +389,6 @@ context-action-confirm-warning =
context-action = Контекстна дія
rename-confirm = Перейменувати
mixed = Змішано
checksum = контрольна сума { $kind }
calculate = Вирахувати
error = Помилка

View file

@ -25,7 +25,7 @@ modified = 修改时间
trashed-on = 删除时间
size = 大小
# Progress footer
details = 详细信息
details = 详情
dismiss = 清除消息
operations-running =
正在进行 { $running } { $running ->
@ -169,8 +169,8 @@ read-write-execute = 读取、写入和执行
favorite-path-error = 打开目录时出错
favorite-path-error-description =
无法打开 "{ $path }" 。
"{ $path }" 可能不存在或您没有权限打开它。
无法打开“{ $path }” 。
“{ $path }”可能不存在或您没有权限打开它。
您想要从侧边栏中移除它吗?
remove = 移除
@ -267,10 +267,10 @@ extracted =
[one] 项目
*[other] 项目
}到“{ $to }”
setting-executable-and-launching = 设置 "{ $name }" 为可执行文件并启动
set-executable-and-launched = 已设 "{ $name }" 为可执行文件并且启动
setting-permissions = 正在设置 "{ $name }" 的权限为 { $mode }
set-permissions = 设置 "{ $name }" 的权限为 { $mode }
setting-executable-and-launching = 设置 “{ $name }” 为可执行文件并启动
set-executable-and-launched = 已设 “{ $name }” 为可执行文件并且启动
setting-permissions = 正在设置 “{ $name }” 的权限为 { $mode }
set-permissions = 设置 “{ $name }” 的权限为 { $mode }
moving =
正在从“{ $from }”移动 { $items } { $items ->
[one] 项目
@ -302,7 +302,7 @@ removed-from-recents =
*[other] 项目
}
renaming = 正在将“{ $from }”重命名为“{ $to }”
renamed = 已重命名"{ $from }"为"{ $to }"
renamed = 已重命名 “{ $from }” 为 “{ $to }”
restoring =
正在从{ trash }中还原 { $items } { $items ->
[one] 项目
@ -446,3 +446,6 @@ context-action-confirm-warning =
} 上运行。
context-action = 环境行动
rename-confirm = 重命名
calculate = 计算
error = 错误
checksum = { $kind } 校验和

View file

@ -12,7 +12,7 @@ undo = 復原
today = 今天
# List view
name = 名稱
modified = 修改日期
modified = 修改時間
size = 大小
# Dialogs
@ -161,8 +161,8 @@ moved =
[one] 項目
*[other] 項目
} 從「{ $from }」至「{ $to }」
renaming = 正在重新命名「{ $from }」至「{ $to }」
renamed = 已經重新命名「{ $from }」至「{ $to }」
renaming = 正在將「{ $from }」重新命名為「{ $to }」
renamed = 已將「{ $from }」重新命名為「{ $to }」
restoring =
正在還原 { $items } 項目 { $items ->
[one] 項目
@ -182,7 +182,7 @@ default-app = { $name } (預設)
## Show details
show-details = 顯示詳細資料
show-details = 顯示詳細資訊
## Settings
@ -196,13 +196,13 @@ match-desktop = 符合桌面
dark = 深色
light = 淺色
# Context menu
add-to-sidebar = 添加至側邊欄
add-to-sidebar = 加入側邊欄
compress = 壓縮…
extract-here = 解壓縮
new-file = 新建檔案...
new-folder = 新建資料夾...
new-file = 新增檔案...
new-folder = 新增資料夾...
open-in-terminal = 在終端機中開啟
move-to-trash = 移動至垃圾桶
move-to-trash = 丟入垃圾桶
restore-from-trash = 從垃圾桶還原
remove-from-sidebar = 從側邊欄移除
sort-by-name = 依名稱排序
@ -215,11 +215,11 @@ sort-by-size = 依大小排序
## File
file = 檔案
new-tab = 新建分頁
new-window = 新建視窗
new-tab = 新增分頁
new-window = 新增視窗
rename = 重新命名...
close-tab = 關閉分頁
quit = 退出
quit = 結束
## Edit
@ -258,18 +258,18 @@ deleted =
}從 { trash }
permanently-deleting =
正在永久刪除 { $items } { $items ->
[one] 项目
*[other] 项目
[one] 項目
*[other] 項目
}
permanently-deleted =
已經永久刪除 { $items } { $items ->
[one] 项目
*[other] 项目
[one] 項目
*[other] 項目
}
removing-from-recents =
正在從 { recents } 中移除 { $items } { $items ->
[one] 项目
*[other] 项目
[one] 項目
*[other] 項目
}
deleting =
正在刪除 { $items } { $items ->
@ -278,21 +278,21 @@ deleting =
}從 { trash }({ $progress })…
removed-from-recents =
已經從 { recents } 中移除 { $items } { $items ->
[one] 项目
*[other] 项目
[one] 項目
*[other] 項目
}
repository = 軟體庫源
repository = 軟體庫
desktop-view-options = 桌面檢視選項...
show-on-desktop = 顯示在桌面
desktop-folder-content = 桌面資料夾內容
mounted-drives = 已經掛載的磁碟機
trash-folder-icon = 垃圾桶圖示
trashed-on = 遺棄時間
trashed-on = 丟入時間
icon-size-and-spacing = 圖示大小與間距
icon-size = 圖示大小
grid-spacing = 網格間距
details = 詳情
dismiss = 撤停訊息
details = 詳細資訊
dismiss = 關閉訊息
delete = 刪除
remove = 移除
support = 支援
@ -393,3 +393,6 @@ context-action-confirm-warning =
} 上執行。
run = 執行
rename-confirm = 重新命名
checksum = { $kind } 核對和
calculate = 計算
error = 錯誤

View file

@ -2,6 +2,7 @@
// SPDX-License-Identifier: GPL-3.0-only
use cosmic::app::{self, Core, Task, context_drawer};
use cosmic::core::Auto;
use cosmic::cosmic_config::{self, ConfigSet};
use cosmic::iced::clipboard::dnd::DndAction;
use cosmic::iced::core::SmolStr;
@ -27,7 +28,7 @@ use cosmic::iced::{
IcedMargin, IcedOutput, SctkLayerSurfaceSettings,
},
platform_specific::shell::wayland::commands::layer_surface::{
Anchor, KeyboardInteractivity, Layer, destroy_layer_surface, get_layer_surface,
Anchor, KeyboardInteractivity, Layer, destroy_layer_surface,
},
};
use cosmic::widget::about::About;
@ -2718,6 +2719,9 @@ impl Application for App {
),
]);
if matches!(flags.mode, Mode::Desktop) {
core.set_auto_blur(Auto::Window | Auto::Popup);
}
let mut app = Self {
core,
about,
@ -2836,8 +2840,16 @@ impl Application for App {
cosmic::Action::App(Message::NavMenuAction(NavMenuAction::OpenInNewTab(entity)))
})
.context_menu(self.nav_context_menu())
.close_icon(icon::from_name("media-eject-symbolic").size(16).icon())
.into_container();
.close_icon(icon::from_name("media-eject-symbolic").size(16).icon());
#[cfg(feature = "wayland")]
{
nav = nav
.window_id_maybe(self.core().main_window_id())
.on_surface_action(|m| cosmic::Action::Cosmic(cosmic::app::Action::Surface(m)))
}
let mut nav = nav.into_container();
if !self.core.is_condensed() {
nav = nav.max_width(280);
@ -2848,14 +2860,12 @@ impl Application for App {
))
}
fn nav_context_menu(
&self,
) -> Option<Vec<widget::menu::Tree<cosmic::Action<Self::Message>>>> {
fn nav_context_menu(&self) -> Option<Vec<widget::menu::Tree<cosmic::Action<Self::Message>>>> {
let items = self.nav_model.iter().map(|entity| {
let favorite_index_opt = self.nav_model.data::<FavoriteIndex>(entity);
let location_opt = self.nav_model.data::<Location>(entity);
let mut items = Vec::with_capacity(7);
let mut items: Vec<widget::menu::Item<NavMenuAction, String>> = Vec::with_capacity(7);
if location_opt
.and_then(Location::path_opt)
@ -2982,10 +2992,14 @@ impl Application for App {
})
&& let Some(mounter) = MOUNTERS.get(&key)
{
return mounter.network_drive(uri.clone()).map(move |()| {
cosmic::Action::App(Message::NetworkDriveOpenEntityAfterMount {
entity,
})
return mounter.network_drive(uri.clone()).map(move |mounted| {
if mounted {
cosmic::Action::App(Message::NetworkDriveOpenEntityAfterMount {
entity,
})
} else {
cosmic::action::none()
}
});
}
@ -3896,7 +3910,7 @@ impl Application for App {
Some((*mounter_key, self.network_drive_input.clone()));
return mounter
.network_drive(self.network_drive_input.clone())
.map(|()| cosmic::action::none());
.map(|_| cosmic::action::none());
}
log::warn!(
"no mounter found for connecting to {:?}",
@ -4909,9 +4923,10 @@ impl Application for App {
use cctk::wayland_protocols::xdg::shell::client::xdg_positioner::{
Anchor, Gravity,
};
use cosmic::iced::runtime::platform_specific::wayland::popup::{
use cosmic::{iced::runtime::platform_specific::wayland::popup::{
SctkPopupSettings, SctkPositioner,
};
}, widget::menu::StyleSheet as _};
let window_id = WindowId::unique();
self.windows.insert(
window_id,
@ -4921,10 +4936,24 @@ impl Application for App {
)),
);
commands.push(self.update(Message::CheckClipboard));
let t = self.core.system_theme();
let styling = t.appearance(
&cosmic::theme::menu_bar::MenuBarStyle::Default,
false,
);
let rad = styling.menu_border_radius;
commands.push(self.update(Message::Surface(
cosmic::surface::action::app_popup(
|_: &Self| cosmic::surface::action::LiveSettings::default(),
move |app: &mut Self| -> SctkPopupSettings {
move |_| cosmic::surface::action::LiveSettings {
corners: Some(iced::runtime::platform_specific::wayland::CornerRadius {
top_left: rad[0] as u32,
top_right: rad[1] as u32,
bottom_left: rad[2] as u32,
bottom_right: rad[3] as u32,
}),
..Default::default()
}, move |app: &mut Self| -> SctkPopupSettings {
let anchor_rect = Rectangle {
x: point.x as i32,
y: point.y as i32,
@ -5694,24 +5723,37 @@ impl Application for App {
.insert(surface_id, Window::new(WindowKind::Desktop(entity)));
return Task::batch([
command,
get_layer_surface(SctkLayerSurfaceSettings {
id: surface_id,
layer: Layer::Bottom,
keyboard_interactivity: KeyboardInteractivity::OnDemand,
input_zone: None,
anchor: Anchor::TOP | Anchor::BOTTOM | Anchor::LEFT | Anchor::RIGHT,
output: IcedOutput::Output(output),
namespace: "cosmic-files-applet".into(),
size: Some((None, None)),
margin: IcedMargin {
top: 0,
bottom: 0,
left: 0,
right: 0,
},
exclusive_zone: 0,
size_limits: Limits::NONE.min_width(1.0).min_height(1.0),
}),
cosmic::task::message(cosmic::action::cosmic(
cosmic::app::Action::Surface(
cosmic::surface::action::app_layer_shell(
|_| Default::default(),
move |_: &mut App| SctkLayerSurfaceSettings {
id: surface_id,
layer: Layer::Bottom,
keyboard_interactivity: KeyboardInteractivity::OnDemand,
input_zone: None,
anchor: Anchor::TOP
| Anchor::BOTTOM
| Anchor::LEFT
| Anchor::RIGHT,
output: IcedOutput::Output(output.clone()),
namespace: "cosmic-files-applet".into(),
size: Some((None, None)),
margin: IcedMargin {
top: 0,
bottom: 0,
left: 0,
right: 0,
},
exclusive_zone: 0,
size_limits: Limits::NONE
.min_width(1.0)
.min_height(1.0),
},
None,
),
),
)),
#[cfg(all(feature = "wayland", feature = "desktop-applet"))]
overlap_notify(surface_id, true),
]);
@ -6898,7 +6940,6 @@ impl Application for App {
})
.drag_id(self.tab_drag_id),
)
.class(style::Container::Background)
.width(Length::Fill)
.padding([0, space_s]),
);

View file

@ -1796,12 +1796,28 @@ impl Application for App {
SctkPopupSettings, SctkPositioner,
};
use cosmic::iced::Rectangle;
use cosmic::widget::menu::StyleSheet as _;
let window_id = window::Id::unique();
self.context_menu_window = Some(window_id);
let autosize_id = widget::Id::unique();
let t = self.core.system_theme();
let styling = t.appearance(
&cosmic::theme::menu_bar::MenuBarStyle::Default,
false,
);
let rad = styling.menu_border_radius;
commands.push(self.update(Message::Surface(
cosmic::surface::action::app_popup(
|_: &Self| cosmic::surface::action::LiveSettings::default(),
move |_| cosmic::surface::action::LiveSettings {
corners: Some(iced::runtime::platform_specific::wayland::CornerRadius {
top_left: rad[0] as u32,
top_right: rad[1] as u32,
bottom_left: rad[2] as u32,
bottom_right: rad[3] as u32,
}),
..Default::default()
},
move |app: &mut Self| -> SctkPopupSettings {
let anchor_rect = Rectangle {
x: point.x as i32,

View file

@ -70,7 +70,7 @@ pub fn context_menu<'a>(
String::new()
};
fn key_style(theme: &cosmic::Theme) -> TextStyle {
let mut color = theme.cosmic().background(false).component.on;
let mut color = theme.cosmic().background(theme.transparent).component.on;
color.alpha *= 0.75;
TextStyle {
color: Some(color.into()),
@ -78,7 +78,7 @@ pub fn context_menu<'a>(
}
}
fn disabled_style(theme: &cosmic::Theme) -> TextStyle {
let mut color = theme.cosmic().background(false).component.on;
let mut color = theme.cosmic().background(theme.transparent).component.on;
color.alpha *= 0.5;
TextStyle {
color: Some(color.into()),
@ -445,12 +445,12 @@ pub fn context_menu<'a>(
}
}
container(column::with_children(children))
container(cosmic::widget::menu::menu_column::MenuColumn::with_children(children))
.padding(1)
//TODO: move style to libcosmic
.style(|theme| {
let cosmic = theme.cosmic();
let component = &cosmic.background(false).component;
let component = &cosmic.background(theme.transparent);
container::Style {
icon_color: Some(component.on.into()),
text_color: Some(component.on.into()),
@ -844,7 +844,7 @@ pub fn location_context_menu<'a>(ancestor_index: usize) -> Element<'a, tab::Mess
.padding(1)
.style(|theme| {
let cosmic = theme.cosmic();
let component = &cosmic.background(false).component;
let component = &cosmic.background(theme.transparent).component;
container::Style {
icon_color: Some(component.on.into()),
text_color: Some(component.on.into()),

View file

@ -659,7 +659,7 @@ impl Mounter for Gvfs {
)
}
fn network_drive(&self, uri: String) -> Task<()> {
fn network_drive(&self, uri: String) -> Task<bool> {
let command_tx = self.command_tx.clone();
Task::perform(
async move {
@ -668,9 +668,15 @@ impl Mounter for Gvfs {
command_tx.send(Cmd::NetworkDrive(uri, res_tx)).unwrap();
res_rx.await
},
|x| {
if let Err(err) = x {
|result| match result {
Ok(Ok(())) => true,
Ok(Err(err)) => {
log::error!("{err:?}");
false
}
Err(err) => {
log::error!("{err:?}");
false
}
},
)

View file

@ -115,7 +115,7 @@ pub trait Mounter: Send + Sync {
fn items(&self, sizes: IconSizes) -> Option<MounterItems>;
//TODO: send result
fn mount(&self, item: MounterItem) -> Task<()>;
fn network_drive(&self, uri: String) -> Task<()>;
fn network_drive(&self, uri: String) -> Task<bool>;
fn network_scan(&self, uri: &str, sizes: IconSizes) -> Option<Result<Vec<tab::Item>, String>>;
fn dir_info(&self, uri: &str) -> Option<(String, String, Option<PathBuf>)>;
fn unmount(&self, item: MounterItem) -> Task<()>;

View file

@ -454,7 +454,7 @@ impl Op {
}
}
let (from_file, metadata, to_file) = cosmic::iced::futures::join!(
let (from_file_open_result, metadata, to_file_open_result) = cosmic::iced::futures::join!(
async {
compio::fs::OpenOptions::new()
.read(true)
@ -470,12 +470,28 @@ impl Op {
.write(true)
.open(&self.to)
.await
.with_context(|| format!("failed to open {} for writing", self.to.display()))
}
);
let from_file = from_file?;
let mut to_file = to_file?;
let from_file = from_file_open_result?;
let mut to_file = match to_file_open_result {
Ok(file) => file,
#[cfg(not(feature = "gvfs"))]
Err(why) => {
_ = from_file.close().await;
return Err(why).with_context(|| format!("failed to open {} for writing", self.to.display())).map_err(Into::into);
}
#[cfg(feature = "gvfs")]
Err(_why) => {
_ = from_file.close().await;
return self
.gio_file_copy(ctx, progress)
.await
.map(|()| true)
.map_err(Into::into);
}
};
progress.total_bytes = metadata.as_ref().map(|m| m.len());
(ctx.on_progress)(self, &progress);

View file

@ -181,7 +181,9 @@ fn button_appearance(
appearance.icon_color = Some(Color::from(cosmic.on_bg_component_color()));
appearance.text_color = Some(Color::from(cosmic.on_bg_component_color()));
if cut {
appearance.text_color = Some(Color::from(cosmic.background(false).component.on_disabled));
appearance.text_color = Some(Color::from(
cosmic.background(theme.transparent).component.on_disabled,
));
} else {
appearance.text_color = Some(Color::from(cosmic.on_bg_component_color()));
}
@ -192,12 +194,16 @@ fn button_appearance(
appearance.background = Some(Color::from(cosmic.bg_color()).into());
appearance.icon_color = Some(Color::from(cosmic.on_bg_color()));
if cut {
appearance.text_color = Some(Color::from(cosmic.background(false).component.disabled));
appearance.text_color = Some(Color::from(
cosmic.background(theme.transparent).component.disabled,
));
} else {
appearance.text_color = Some(Color::from(cosmic.on_bg_color()));
}
} else if cut {
appearance.text_color = Some(Color::from(cosmic.background(false).component.on_disabled));
appearance.text_color = Some(Color::from(
cosmic.background(theme.transparent).component.on_disabled,
));
}
if focused && accent {
appearance.outline_width = 1.0;
@ -945,11 +951,24 @@ fn item_from_trash_child(
metadata: fs::Metadata,
sizes: IconSizes,
) -> Option<Item> {
let original_path = crate::trash::original_path_for_trash_child(&path)?;
let Some(original_path) = crate::trash::original_path_for_trash_child(&path) else {
log::warn!(
"failed to resolve original path for trash item {}, skipping entry",
path.display()
);
return None;
};
let Some(original_parent) = original_path.parent() else {
log::warn!(
"trash item {} has no original parent, skipping entry",
path.display()
);
return None;
};
let entry = trash::TrashItem {
id: path.as_os_str().to_os_string(),
name: std::ffi::OsString::from(&name),
original_parent: original_path.parent()?.to_path_buf(),
original_parent: original_parent.to_path_buf(),
time_deleted: 0,
};
let size = if metadata.is_dir() {
@ -1042,6 +1061,7 @@ pub fn scan_path(tab_path: &PathBuf, sizes: IconSizes) -> Vec<Item> {
if !remote_scannable {
match fs::read_dir(tab_path) {
Ok(entries) => {
let trash = crate::trash::is_trash_path(tab_path);
items = entries
.filter_map(|entry_res| {
let entry = entry_res
@ -1082,7 +1102,6 @@ pub fn scan_path(tab_path: &PathBuf, sizes: IconSizes) -> Vec<Item> {
})
.ok()?;
let trash = crate::trash::is_trash_path(tab_path);
if trash {
item_from_trash_child(path, name, metadata, sizes)
} else {
@ -2382,10 +2401,8 @@ impl Item {
widget::image(handle.clone()).into()
}
ItemThumbnail::Svg(handle) => widget::svg(handle.clone()).into(),
ItemThumbnail::Text(content) => widget::text_editor(content)
.class(cosmic::theme::iced::TextEditor::Custom(Box::new(
text_editor_class,
)))
ItemThumbnail::Text(content) => widget::text_editor::text_editor(content)
.style(text_editor_class)
.width(THUMBNAIL_SIZE as f32)
.height(Length::Fixed(THUMBNAIL_SIZE as f32))
.padding(spacing.space_xxs)
@ -2436,7 +2453,7 @@ impl Item {
);
let mut details = widget::column::with_capacity(8).spacing(space_xxxs);
details = details.push(widget::text::heading(self.name.clone()));
details = details.push(widget::selectable_text::heading(self.name.clone()));
details = details.push(widget::text::body(fl!(
"type",
mime = self.mime.to_string()
@ -2493,21 +2510,21 @@ impl Item {
let time_formatter = time_formatter(military_time);
if let Ok(time) = metadata.created() {
details = details.push(widget::text::body(fl!(
details = details.push(widget::selectable_text::body(fl!(
"item-created",
created = format_time(time, &date_time_formatter, &time_formatter).to_string()
)));
}
if let Ok(time) = metadata.modified() {
details = details.push(widget::text::body(fl!(
details = details.push(widget::selectable_text::body(fl!(
"item-modified",
modified = format_time(time, &date_time_formatter, &time_formatter).to_string()
)));
}
if let Ok(time) = metadata.accessed() {
details = details.push(widget::text::body(fl!(
details = details.push(widget::selectable_text::body(fl!(
"item-accessed",
accessed = format_time(time, &date_time_formatter, &time_formatter).to_string()
)));
@ -3859,6 +3876,28 @@ impl Tab {
}
Message::EditLocationSubmit => {
if let Some(mut edit_location) = self.edit_location.take() {
let typed_opt = match &edit_location.location {
Location::Path(path) => path.to_str().map(str::to_string),
Location::Network(uri, ..) => Some(uri.clone()),
_ => None,
};
let mut typed_uri = false;
if let Some(typed) = typed_opt {
match typed.trim().parse::<url::Url>() {
Ok(url) if url.scheme() != "file" && url.has_host() => {
let uri = url.as_str().to_string();
edit_location =
Location::Network(uri.clone(), uri, None).normalize().into();
typed_uri = true;
}
Err(_) if matches!(edit_location.location, Location::Network(..)) => {
edit_location =
Location::Path(PathBuf::from(typed)).normalize().into();
}
_ => {}
}
}
// Select first completion if current location does not exist
if edit_location.selected.is_none()
&& edit_location
@ -3874,6 +3913,9 @@ impl Tab {
}
cd = edit_location.resolve();
if cd.is_none() && typed_uri {
cd = Some(edit_location.location);
}
}
}
Message::EditLocationTab => {
@ -5174,9 +5216,11 @@ impl Tab {
}
ItemThumbnail::Text(text) => {
element_opt = Some(
widget::container(widget::text_editor(text).padding(space_xxs).class(
cosmic::theme::iced::TextEditor::Custom(Box::new(text_editor_class)),
))
widget::container(
widget::text_editor::text_editor(text)
.padding(space_xxs)
.style(text_editor_class),
)
.center(Length::Fill)
.into(),
);
@ -7012,7 +7056,8 @@ impl Tab {
let path = path.clone();
// Acquire semaphore permit
_ = THUMB_SEMAPHORE.acquire().await;
let _permit =
THUMB_SEMAPHORE.acquire().await.unwrap();
tokio::task::spawn_blocking(move || {
let start = Instant::now();

View file

@ -2,6 +2,7 @@ use cosmic::widget;
use regex::Regex;
use std::collections::HashSet;
use std::path::{Path, PathBuf};
use std::sync::LazyLock;
use crate::config::IconSizes;
use crate::tab::{Item, SearchItem};
@ -89,11 +90,12 @@ pub fn trash_item_path(item: &trash::TrashItem) -> Option<PathBuf> {
/// - Read `~/.local/share/Trash/info/folder.trashinfo` to get the original path
/// - Compute: `<original_path>/sub/file.txt`
pub fn original_path_for_trash_child(p: &Path) -> Option<PathBuf> {
let files = p.ancestors().find(|a| a.ends_with("files"))?;
let files = trash_files_dir(p)?;
let root = files.parent()?;
let top = p.strip_prefix(files).ok()?.components().next()?;
let info =
std::fs::read_to_string(root.join("info").join(top).with_extension("trashinfo")).ok()?;
let mut trashinfo_name = top.as_os_str().to_os_string();
trashinfo_name.push(".trashinfo");
let info = std::fs::read_to_string(root.join("info").join(trashinfo_name)).ok()?;
let orig = percent_decode(info.lines().find_map(|l| l.strip_prefix("Path="))?.trim())?;
let rel = p.strip_prefix(files.join(top)).ok()?;
let mut result = PathBuf::from(&orig);
@ -103,9 +105,29 @@ pub fn original_path_for_trash_child(p: &Path) -> Option<PathBuf> {
Some(result)
}
static TRASH_FOLDERS: LazyLock<HashSet<PathBuf>> = LazyLock::new(|| {
Trash::folders().unwrap_or_else(|e| {
log::warn!("failed to list trash folders: {}", e);
HashSet::new()
})
});
fn is_trash_root(root: &Path) -> bool {
if TRASH_FOLDERS.is_empty() {
root.join("info").is_dir()
} else {
TRASH_FOLDERS.contains(root)
}
}
fn trash_files_dir(path: &Path) -> Option<&Path> {
path.ancestors()
.find(|a| a.ends_with("files") && a.parent().is_some_and(is_trash_root))
}
/// Check whether a path is inside any trash `files/` directory.
pub fn is_trash_path(path: &Path) -> bool {
path.ancestors().any(|a| a.ends_with("files"))
trash_files_dir(path).is_some()
}
pub struct Trash;