Ludvig Sandh
a1dfa62e4a
fix: correctly display duration statistic in preview panel ( #1421 )
...
* fix: correctly display duration statistic in preview panel
* style: format file_attributes.py with ruff
* refactor: consolidate preview thumb current file state
* refactor: remove another redundant current file state
* refactor: move generic format_duration function to string formatting util file
* refactor: tighten signal's declared types
2026-07-12 13:16:14 -07:00
Xarvex
aa2d9d4815
fix(ci): misapplied rebase, cont 9d5200b
...
fixes : #1445 (for good)
2026-07-11 19:33:29 -05:00
Xarvex
16cfa8d2ff
chore(ci): ignore translations pushes for reuse
2026-07-11 19:27:21 -05:00
Xarvex
9d5200b2f2
fix(ci): path matching fixes, corrected concurrency
...
Pull requests are now correctly handled and concurrency is per-job.
translations branch can safely be ignored for pushes.
2026-07-11 19:19:42 -05:00
Jann Stute
f252a86fd5
refactor: split out sql migrations from library ( #1432 )
...
* refactor: minor simplification
* refactor: split open_library into new and not new case
Functionality is entirely unchanged, but entire method is duplicated.
Removing dead code from either copy is next.
* refactor: remove dead code
* doc: add todos and remove trivially true assert
* refactor: add assurance 1 version check
Assurance 1 was introduced with library version 101, specifically commmit 12e074b71d .
Thus all libraries created on version 101 and above already fullfill it and don't need it.
Furthermore, it only fails if the library didn't need the assurance, meaning the try-except and warning catching can be removed
* refactor: remove various unnecessary try-except statements in new_lib
All of these were introduced to account for the differences between new libraries and existing ones,
which makes them unnecessary after this split.
* refactor: remove unnecessary check in new_lib
* refactor: move folder assurance after migrations
The folder assurance has been present since the very first SQL commit e5e7b8afc6 ,
and thus only has an effect when the library is moved, meaning that is semantically not part of the migrations.
* refactor: massively simplify open_library
* refactor: move engine creation to static method
* refactor: add version check for assurance 3
Assurance 3 was introduced in commit 47c3d5338f
shortly (24h 20min) after the DB version had been bumped to 200.
Since it was also included in the first release with DB version 200,
all libraries created on DB version 200 and above
can be presumed to have already had this applied on creation.
* refactor: add assurance 3 to DB 200 migration
* refactor: move assurance 1 to a proper migration method
Moving the assurance after the migrations 7, 8, 9, and 100 is fine because it doesn't affect those.
* refactor: update version after every successfull migration
Since every migration migrates the library to a certain DB_VERSION, we can simply update the library version after such a successfull migration.
This way if a migration fails, the previous migrations won't be rerun the next time the library is opened.
* refactor: rewrite migration procedure as loop
* refactor: apply migration and update version in same transaction
None of the content of the migrations is changed, only the `with session:` statements are removed.
* refactor: replace all commits in the migrations with flushes
Also removes various try-except statements in the migrations.
These were introduced to catch the case where the migration is run twice due to a later migration failing,
this is not necessary anymore as every migration will only be executed at most once per library.
* refactor: make sure the migration log statements are consistent
* fix: pass library dir to migrations
* fix(db migration 8): only add colors that are actually new
DB Migration 8 was previously adding all colors except for the neon ones,
however, all but three of those have been around since DB version 4,
meaning that they don't need to be added at all (which caused the tests to fail).
* fix: json migration used outdated interface
* fix(open_library): create TS directory only if not opened in memory
* fix: enable sane transaction behaviour
By default in SQLAlchemy schema changes are automatically committed,
even if auto-commit is turned off.
This commit turns off auto-commit completely,
which caused some schema to not be applied correctly,
but those were fixed here as well.
* refactor: hide 'argument is not accessed' notices
* fix(db migration 9): filename property wasn't written correctly
* fix(db migration 104): include/exclude list was loaded incorrectly
* feat: log start and end of DB migrations
* fix: don't use double transaction in open_sqlite_library
* fix: only commit once when creating new library
* doc: add comment on removing Folder logic
* refactor: remove dunder naming
2026-07-11 12:36:55 -07:00
Xarvex
a0fb679729
fix(ci): more path matching
2026-07-11 01:29:11 -05:00
Xarvex
b182b2ff7e
chore(ci): more paths for pytest to trigger on
2026-07-09 22:23:17 -05:00
purpletennisball
308b36b31e
fix: thumbnail rendering for older pxd files ( #1441 )
2026-07-09 18:03:47 -07:00
Weblate (bot)
1d8817833d
translations: update using Weblate (Spanish) ( #1439 )
...
Currently translated at 100.0% (422 of 422 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (422 of 422 strings)
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/
Translation: TagStudio/Application Strings
Co-authored-by: 2004milenadiaz-source <2004.milena.diaz@gmail.com >
Co-authored-by: Joan <joancanalscrehuet@gmail.com >
v9.6.1
2026-07-09 16:34:19 -07:00
Travis Abendshien
4397e087ef
docs: update install instructions
2026-07-09 16:31:41 -07:00
Travis Abendshien
fee9480cc3
docs: update changelog
2026-07-09 16:30:48 -07:00
Travis Abendshien
1f6aae98ed
ci: update paths for python workflows
2026-07-09 16:30:26 -07:00
Travis Abendshien
8edbb7a258
docs: update README badges
2026-07-08 23:42:26 -07:00
Travis Abendshien
9c3f76ce16
docs: update changelog
2026-07-08 23:13:29 -07:00
Sola-ris
c755894c84
feat: render .pxd thumbnails ( #1430 )
...
* feat: render .pxd thumbnails.
* move .pxd to _DOCUMENT_SET, rename method, fix doc and typos.
* add missing break.
2026-07-08 23:05:48 -07:00
Xarvex
377593b190
feat(ci)!: complete workflows revamp ( #1437 )
...
* chore(ci): move spec-file into scripts
* feat(ci)!: rework workflows and build processes
All Python setups route through one local action, and checks are much
more conditional. There is more to be done, but this is a significant
improvement in processing time and redundancy.
As well, nightly builds are made (though not made as GitHub releases..
yet).
* ci: remove symlinked CHANGELONG.md from build_docs.yml paths
* docs: update location of tagstudio.spec
* ci: enforce single quotes in github yaml files
* ci(tests): remove macOS pytest runner
---------
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com >
2026-07-08 22:49:57 -07:00
Xarvex
993eeff0fc
fix(deps): replace optional dependencies with dependency groups ( #1435 )
...
Definition: https://packaging.python.org/en/latest/specifications/dependency-groups
The optional dependency table ([project.optional-dependencies]) is
supposed to be user-facing for installs of TagStudio. Meanwhile, the
replacement dependency groups is explicitly meant for extra development
tools, so lets use that.
This does mean the command for a full development environment has changed
from:
```sh
pip install -e '.[dev]'
```
To:
```sh
pip install -e . --group all
```
The documentation has been adjusted for a quick replacement, but
probably should have more information on a later time.
2026-07-07 14:36:02 -07:00
Xarvex
faf88a912e
nit(dev): make supplementary configuratios CC0
...
This has the approval of myself and @CyanVoxel, whom are the only
contributors to these files.
2026-07-06 15:30:59 -05:00
Xarvex
3e26b990f7
nit(dev): put filetype clause on top
2026-07-06 15:15:28 -05:00
Xarvex
65cb49e472
fix(dev): use indent_size of 4 by default
2026-07-06 15:05:44 -05:00
Travis Abendshien
3593acdd59
docs: add v9.6.1 changelog
2026-07-06 11:42:30 -07:00
Weblate (bot)
858d433b6f
translations: update from Hosted Weblate ( #1402 )
...
* Translated using Weblate (German)
Currently translated at 85.7% (362 of 422 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/de/
Translation: TagStudio/Application Strings
* Translated using Weblate (Estonian)
Currently translated at 0.7% (3 of 418 strings)
Added translation using Weblate (Estonian)
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: Priit Jõerüüt <jrthwlate@users.noreply.hosted.weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/et/
Translation: TagStudio/Application Strings
* Translated using Weblate (Russian)
Currently translated at 93.7% (392 of 418 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: romandobra <romanreachless@gmail.com >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/
Translation: TagStudio/Application Strings
* Translated using Weblate (Japanese)
Currently translated at 86.1% (360 of 418 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ja/
Translation: TagStudio/Application Strings
* Translated using Weblate (Hungarian)
Currently translated at 100.0% (422 of 422 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (421 of 421 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (418 of 418 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (388 of 388 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: Szíjártó Levente Pál <szijartoleventepal@gmail.com >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/
Translation: TagStudio/Application Strings
Translation: TagStudio/Application Strings [GPLv3]
* Translated using Weblate (Spanish)
Currently translated at 99.7% (387 of 388 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: Joan <joancanalscrehuet@gmail.com >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/es/
Translation: TagStudio/Application Strings [GPLv3]
* Translated using Weblate (French)
Currently translated at 100.0% (387 of 387 strings)
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: Med <45147847+kitsumed@users.noreply.github.com >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/fr/
Translation: TagStudio/Strings
---------
Co-authored-by: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com >
Co-authored-by: Priit Jõerüüt <jrthwlate@users.noreply.hosted.weblate.org >
Co-authored-by: romandobra <romanreachless@gmail.com >
Co-authored-by: Szíjártó Levente Pál <szijartoleventepal@gmail.com >
Co-authored-by: Joan <joancanalscrehuet@gmail.com >
Co-authored-by: Med <45147847+kitsumed@users.noreply.github.com >
2026-07-06 10:25:38 -07:00
TheBobBobs
2965d2056b
fix: Thumbnail Grid not resizing to fill width ( #1433 )
...
* fix: update thumb_grid when row width changes
* fix: prevent index error in thumb_grid
2026-07-05 18:26:41 -07:00
purpletennisball
45b4b57b3a
fix: mouse down selects thumbnail ( #1420 )
...
* fix: mouse down selects thumbnail
* fix: selecting a single item out of a selecting
* fix: multiple file dragging
2026-07-05 16:59:31 -07:00
Travis Abendshien
0ec562929c
chore: bump version to v9.6.1
2026-07-05 16:56:48 -07:00
Travis Abendshien
23ef9964d3
fix/refactor: use generic ModuleStatus class for getting status of optional modules ( #1427 )
...
* fix/refactor: use generic ModuleStatus class for getting status of optional modules
* fix: add and order macOS bin locations by PATH precedence
* ui: add title for optional modules section in the about window
* fix: revert errant license change
* fix: return which(cmd) instead of the original cmd
* refactor: implement review feedback
* feat(ui): add tooltips for module locations on about screen
2026-07-05 15:25:56 -07:00
purpletennisball
85a51f8e2b
feat(ui): organize settings into panels ( #1425 )
...
* feat(ui): organize settings into new panels
* fix: typo
* fix(ui): add localization for setting panels
* fix(ui): move language to localization panel
2026-07-04 17:39:13 -07:00
Travis Abendshien
34814e8723
fix: fix "search for tag" function in tag manager ( #1411 )
...
* fix: set driver for tag manager
* refactor(ui): require titles for TagSearch widgets
2026-07-04 13:35:51 -07:00
Travis Abendshien
95e2fe7b44
fix: remove invalid child_id relationships from tag_parents ( #1423 )
...
* fix: remove invalid child_id relationships from tag_parents
* fix: use single statements in DB 102 & 202 migrations
* fix: remove unnecessary session.scalars() from migrations
2026-07-04 13:35:40 -07:00
purpletennisball
83473379db
feat: on click edit tag while in tag manager ( #1416 )
2026-07-04 13:13:53 -07:00
Travis Abendshien
5af3cc4faf
docs: update library-changes
2026-07-03 10:15:35 -07:00
Andreas Heglingegård
4a543396ae
fix: use optimized SQL when selecting non-hidden entries ( #1240 )
2026-07-02 16:38:29 -07:00
Jann Stute
3ffa012857
fix: make tagstudio python package executable ( #1414 )
...
* fix: make tagstudio python package executable by adding stub __main__.py
* fix: add license note + set exec bit
* Update src/tagstudio/__main__.py
Co-authored-by: Xarvex <60973030+xarvex@users.noreply.github.com >
---------
Co-authored-by: Xarvex <60973030+xarvex@users.noreply.github.com >
2026-07-02 21:44:03 +02:00
Jann Stute
00b6f918f3
fix(nix): add pyright to devshell ( #1415 )
...
---------
Co-authored-by: Xarvex <dev.ellz6@xarvex.simplelogin.com >
2026-07-02 14:15:32 -05:00
Travis Abendshien
7c1c1dd6ae
fix: fix issues with tag alias updating ( #1412 )
2026-07-02 20:16:35 +02:00
Travis Abendshien
d7918fd82c
tests: filter irrelevant SQLAlchemy or_() warning
2026-07-01 23:20:45 -07:00
Travis Abendshien
c062f6b6bd
build: relax Send2Trash version
2026-07-01 23:20:03 -07:00
Travis Abendshien
26e04e829c
docs: update roadmap
2026-07-01 21:37:50 -07:00
Travis Abendshien
4d49e9c270
translations: translate language names
2026-07-01 21:37:16 -07:00
Travis Abendshien
daaae17113
tests: filter irrelevant SQLAlchemy DISTINCT ON warning spam
2026-06-30 14:17:05 -07:00
Xarvex
c38fbb034d
chore(nix): relax more dependencies
...
fixes : #1403
2026-06-30 12:51:39 -05:00
Travis Abendshien
0433908ae8
refactor: remove QPushButtonWrapper
2026-06-30 02:22:48 -07:00
Travis Abendshien
9e04922e7b
fix(docs): fix header levels in changelog
2026-06-29 14:36:10 -07:00
Travis Abendshien
c6f2e3c7d1
docs: update changelog
2026-06-29 14:33:56 -07:00
Travis Abendshien
4e93e953d9
chore: fix missing ext in REUSE.toml
v9.6.0
2026-06-29 13:30:43 -07:00
Travis Abendshien
008cef363d
chore: remove REUSE comments from PULL_REQUEST_TEMPLATE.md and FUNDING.yml
2026-06-29 13:29:12 -07:00
Travis Abendshien
727f441c55
fix(ci): bump pyinstaller version to 6.21
2026-06-29 13:25:07 -07:00
Travis Abendshien
e327dc7ee1
chore: bump version to v9.6.0
2026-06-29 11:56:39 -07:00
Weblate (bot)
8eded29f45
translations: update from Hosted Weblate ( #1401 )
...
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Translated using Weblate (Russian)
Currently translated at 97.0% (362 of 373 strings)
Co-authored-by: Dott-rus <antonamelin8@gmail.com >
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/ru/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Translated using Weblate (Portuguese)
Currently translated at 87.1% (325 of 373 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: ssantos <ssantos@web.de >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/pt/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Translated using Weblate (Hungarian)
Currently translated at 100.0% (373 of 373 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Co-authored-by: Szíjártó Levente Pál <szijartoleventepal@gmail.com >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/hu/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
* Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Update translation files
Updated by "Cleanup translation files" add-on in Weblate.
Co-authored-by: Hosted Weblate <hosted@weblate.org >
Translate-URL: https://hosted.weblate.org/projects/tagstudio/strings/
Translation: TagStudio/Strings
---------
Co-authored-by: Dott-rus <antonamelin8@gmail.com >
Co-authored-by: ssantos <ssantos@web.de >
Co-authored-by: Szíjártó Levente Pál <szijartoleventepal@gmail.com >
2026-06-29 11:55:44 -07:00
Travis Abendshien
a01b5c423b
chore: format with ruff
2026-06-29 11:55:01 -07:00