Compare commits

..

3 Commits

Author SHA1 Message Date
Travis Abendshien
0ea33d1ac0 chore: bump ruff to 0.15.17 2026-06-16 10:39:54 -07:00
Travis Abendshien
6f3c66efd9 chore: update .gitignore 2026-06-16 08:14:57 -07:00
Trigam
2c85c082b7 fix: match against the correct path in the ignore registry (#1382)
* fix: match against the correct path in the ignore registry

* fix: match against the correct path in the ignore registry
2026-06-13 14:05:00 -07:00
17 changed files with 94 additions and 180 deletions

41
.gitignore vendored
View File

@@ -7,10 +7,10 @@ __pycache__/
*.py[cod]
*$py.class
# C extensions
# C Extensions
*.so
# Distribution / packaging
# Distribution / Packaging
.Python
build/
develop-eggs/
@@ -41,7 +41,7 @@ MANIFEST
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
# Unit test / Coverage reports
htmlcov/
.tox/
.nox/
@@ -88,6 +88,8 @@ profile_default/
ipython_config.py
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
.python-version
# pipenv
@@ -95,14 +97,21 @@ ipython_config.py
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
Pipfile.lock
# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock
poetry.lock
poetry.toml
# uv
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
uv.lock
# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
@@ -111,6 +120,8 @@ ipython_config.py
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml
.pdm-python
.pdm-build/
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/
@@ -138,8 +149,24 @@ venv.bak/
# Rope project settings
.ropeproject
# macoS
*.DS_Store
# macOS
.DocumentRevisions-V100
.DS_Store
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
# Linux
.directory
.fuse_hidden*
.nfs*
.Trash-*
# Windows
[Dd]esktop.ini
$RECYCLE.BIN/
# mkdocs documentation
/site

View File

@@ -54,7 +54,7 @@ pytest = [
"pytest-qt==4.4.0",
"syrupy==5.1.0",
]
ruff = ["ruff==0.11.8"]
ruff = ["ruff==0.15.17"]
[project.gui-scripts]
tagstudio = "tagstudio.main:main"

View File

@@ -5,14 +5,14 @@
import enum
class SettingItems(str, enum.Enum):
class SettingItems(enum.StrEnum):
"""List of setting item names."""
LAST_LIBRARY = "last_library"
LIBS_LIST = "libs_list"
class ShowFilepathOption(int, enum.Enum):
class ShowFilepathOption(enum.IntEnum):
"""Values representing the options for the "show_filenames" setting."""
SHOW_FULL_PATHS = 0
@@ -21,7 +21,7 @@ class ShowFilepathOption(int, enum.Enum):
DEFAULT = SHOW_RELATIVE_PATHS
class TagClickActionOption(int, enum.Enum):
class TagClickActionOption(enum.IntEnum):
"""Values representing the options for the "tag_click_action" setting."""
OPEN_EDIT = 0
@@ -30,7 +30,7 @@ class TagClickActionOption(int, enum.Enum):
DEFAULT = OPEN_EDIT
class Theme(str, enum.Enum):
class Theme(enum.StrEnum):
COLOR_BG_DARK = "#65000000"
COLOR_BG_LIGHT = "#22000000"
COLOR_DARK_LABEL = "#DD000000"
@@ -49,7 +49,7 @@ class OpenStatus(enum.IntEnum):
CORRUPTED = 2
class MacroID(enum.Enum):
class MacroID(enum.StrEnum):
AUTOFILL = "autofill"
SIDECAR = "sidecar"
BUILD_URL = "build_url"

View File

@@ -4,14 +4,12 @@
from collections.abc import Iterator
from dataclasses import dataclass, field
from pathlib import Path
import structlog
from tagstudio.core.library.alchemy.library import Library
from tagstudio.core.library.alchemy.models import Entry
from tagstudio.core.library.ignore import Ignore
from tagstudio.core.utils.types import unwrap
logger = structlog.get_logger(__name__)
@@ -35,13 +33,12 @@ class IgnoredRegistry:
logger.info("[IgnoredRegistry] Refreshing ignored entries...")
self.ignored_entries = []
library_dir: Path = unwrap(self.lib.library_dir)
for i, entry in enumerate(self.lib.all_entries()):
if not Ignore.compiled_patterns:
# If the compiled_patterns has malfunctioned, don't consider that a false positive
yield i
elif Ignore.compiled_patterns.match(library_dir / entry.path):
elif Ignore.compiled_patterns.match(entry.path):
self.ignored_entries.append(entry)
yield i

View File

@@ -2,9 +2,9 @@
# SPDX-License-Identifier: GPL-3.0-only
import enum
import mimetypes
from dataclasses import dataclass
from enum import Enum
from pathlib import Path
import structlog
@@ -23,7 +23,7 @@ FILETYPE_EQUIVALENTS = [
]
class MediaType(str, Enum):
class MediaType(enum.StrEnum):
"""Names of media types."""
ADOBE_PHOTOSHOP = "adobe_photoshop"

View File

@@ -24,7 +24,7 @@ class ConstraintType(Enum):
"filetype": ConstraintType.FileType,
"path": ConstraintType.Path,
"special": ConstraintType.Special,
}.get(text.lower(), None)
}.get(text.lower())
class AST:

View File

@@ -2,12 +2,7 @@
# SPDX-License-Identifier: GPL-3.0-only
from typing import TypeVar
T = TypeVar("T")
def unwrap(optional: T | None, default: T | None = None) -> T:
def unwrap[T](optional: T | None, default: T | None = None) -> T:
if optional is not None:
return optional
if default is not None:

View File

@@ -447,7 +447,7 @@ class FieldContainers(QWidget):
inner_widget.set_tags(tags)
inner_widget.on_update.connect(
lambda: (self.update_from_entry(self.cached_entries[0].id, update_badges=True))
lambda: self.update_from_entry(self.cached_entries[0].id, update_badges=True)
)
else:
text = "<i>Mixed Data</i>"

View File

@@ -366,8 +366,8 @@ class QtDriver(DriverMixin, QObject):
self.tag_manager_panel = PanelModal(
widget=TagDatabasePanel(self, self.lib),
title=Translations["tag_manager.title"],
done_callback=lambda checked=False: (
self.main_window.preview_panel.set_selection(self.selected, update_preview=False)
done_callback=lambda checked=False: self.main_window.preview_panel.set_selection(
self.selected, update_preview=False
),
has_save=False,
)

View File

@@ -6,8 +6,8 @@
"about.module.found": "Encontrado",
"about.title": "Acerca de TagStudio",
"about.website": "Página web",
"app.git": "Commit de Git",
"app.pre_release": "Pre-Lanzamiento",
"app.git": "Git Commit",
"app.pre_release": "Pre-lanzamiento",
"app.title": "{base_title} - Biblioteca '{library_dir}'",
"color.color_border": "Usar color secundario para el Borde",
"color.confirm_delete": "¿Estás seguro de que quieres eliminar el color \"{color_name}\"?",
@@ -71,17 +71,14 @@
"entries.unlinked.unlinked_count": "Entradas no vinculadas: {count}",
"ffmpeg.missing.description": "No se ha encontrado FFmpeg y/o FFprobe. Se requiere de FFmpeg para la reproducción de contenido multimedia y las miniaturas.",
"ffmpeg.missing.status": "{ffmpeg}: {ffmpeg_status}<br>{ffprobe}: {ffprobe_status}",
"field.copy": "Copiar Campo",
"field.edit": "Editar Campo",
"field.paste": "Pegar Campo",
"field_type.datetime": "Fecha y Hora",
"field_type.text": "Texto",
"field_type.unknown": "Tipo Desconocido",
"file.date_added": "Fecha de Adición",
"file.date_created": "Fecha de Creación",
"file.date_modified": "Fecha de Modificación",
"field.copy": "Copiar campo",
"field.edit": "Editar campo",
"field.paste": "Pegar campo",
"file.date_added": "Fecha de adición",
"file.date_created": "Fecha de creación",
"file.date_modified": "Fecha de modificación",
"file.dimensions": "Dimensiones",
"file.duplicates.description": "TagStudio es compatible con importación de resultados de DupeGuru para administrar archivos duplicados.",
"file.duplicates.description": "TagStudio es compatible con Importación de resultados de DupeGuru para administrar archivos duplicados.",
"file.duplicates.dupeguru.advice": "Después de la duplicación, puede utilizar DupeGuru para eliminar los archivos no deseados. Luego, utilice la función \"Reparar entradas no vinculadas\" de TagStudio en el menú Herramientas para eliminar las entradas no vinculadas.",
"file.duplicates.dupeguru.file_extension": "Archivos de DupeGuru (*.dupeguru)",
"file.duplicates.dupeguru.load_file": "&Cargar archivo DupeGuru",
@@ -160,7 +157,6 @@
"json_migration.heading.aliases": "Alias:",
"json_migration.heading.colors": "Colores:",
"json_migration.heading.differ": "Discrepancia",
"json_migration.heading.extensions": "Extensiones:",
"json_migration.heading.match": "Igualado",
"json_migration.heading.names": "Nombres:",
"json_migration.heading.parent_tags": "Etiquetas principales:",
@@ -275,7 +271,6 @@
"settings.open_library_on_start": "Abrir biblioteca al iniciar",
"settings.page_size": "Tamaño de la página",
"settings.restart_required": "Por favor, reinicia TagStudio para que se los cambios surtan efecto.",
"settings.scan_files_on_open": "Cargar Nuevos Archivos Automáticamente",
"settings.show_filenames_in_grid": "Mostrar el nombre de archivo en la cuadrícula",
"settings.show_recent_libraries": "Mostrar bibliotecas recientes",
"settings.splash.label": "Pantalla de Bienvenida",

View File

@@ -74,9 +74,6 @@
"field.copy": "Copier le Champ",
"field.edit": "Modifier le Champ",
"field.paste": "Coller le Champ",
"field_type.datetime": "Date et temps",
"field_type.text": "Texte",
"field_type.unknown": "Type inconnu",
"file.date_added": "Date Ajoutée",
"file.date_created": "Date de Création",
"file.date_modified": "Date de Modification",
@@ -275,7 +272,6 @@
"settings.open_library_on_start": "Ouvrir la Bibliothèque au Démarrage",
"settings.page_size": "Entités par page",
"settings.restart_required": "Veuillez redémarré TagStudio pour que les changements prenne effet.",
"settings.scan_files_on_open": "Charger automatiquement les nouveaux fichiers",
"settings.show_filenames_in_grid": "Afficher les Noms de Fichiers en Grille",
"settings.show_recent_libraries": "Afficher les Bibliothèques Récentes",
"settings.splash.label": "Page de guarde",

View File

@@ -1,12 +0,0 @@
{
"about.license": "רישיון",
"about.website": "אתר",
"color.delete": "מחק תגית",
"color.name": "שם",
"color.new": "צבע חדש",
"color.placeholder": "צבע",
"color.primary": "צבע ראשי",
"color.secondary": "צבע משני",
"color.title.no_color": "ללא צבע",
"color_manager.title": "שנה צבע תגית"
}

View File

@@ -74,9 +74,6 @@
"field.copy": "Copia Campo",
"field.edit": "Modifica Campo",
"field.paste": "Incolla Campo",
"field_type.datetime": "Data e Ora",
"field_type.text": "Testo",
"field_type.unknown": "Tipo Sconosciuto",
"file.date_added": "Data Aggiunta",
"file.date_created": "Data di Creazione",
"file.date_modified": "Data di Modifica",
@@ -160,7 +157,6 @@
"json_migration.heading.aliases": "Alias:",
"json_migration.heading.colors": "Colori:",
"json_migration.heading.differ": "Discrepanze",
"json_migration.heading.extensions": "Estensioni:",
"json_migration.heading.match": "Abbinato",
"json_migration.heading.names": "Nomi:",
"json_migration.heading.parent_tags": "Etichette Genitore:",
@@ -275,7 +271,6 @@
"settings.open_library_on_start": "Apri Biblioteca all'Avvio",
"settings.page_size": "Dimensione Pagina",
"settings.restart_required": "Riavvia TagStudio affinchè le modifiche abbiano effetto.",
"settings.scan_files_on_open": "Carica Automaticamente i Nuovi File",
"settings.show_filenames_in_grid": "Mostra Nomi dei File nella Griglia",
"settings.show_recent_libraries": "Mostra Biblioteche Recenti",
"settings.splash.label": "Schermata Iniziale",

View File

@@ -59,7 +59,7 @@
"entries.running.dialog.new_entries": "{total} 件の新しいファイル エントリを追加しています...",
"entries.running.dialog.title": "新しいファイルエントリを追加",
"entries.tags": "タグ",
"entries.unlinked.description": "ライブラリの各エントリは、ディレクトリ内のファイルにリンクされています。エントリにリンクされたファイルが TagStudio 以外で移動または削除された場合、そのエントリはリンク切れとして扱われます。<br><br>リンク切れのエントリは、ディレクトリを検索して自動的に再リンクすることも、必要に応じて削除することもできます。",
"entries.unlinked.description": "ライブラリの各エントリは、ディレクトリ内のファイルにリンクされています。エントリにリンクされたファイルがTagStudio以外で移動または削除された場合、そのエントリはリンク切れとして扱われます。<br><br>リンク切れのエントリは、ディレクトリを検索して自動的に再リンクすることも、必要に応じて削除することもできます。",
"entries.unlinked.relink.attempting": "{unlinked_count} 件中 {index} 件のエントリを再リンク中、{fixed_count} 件を正常に再リンクしました",
"entries.unlinked.relink.manual": "手動で再リンク(&M)",
"entries.unlinked.relink.title": "エントリの再リンク",

View File

@@ -1,6 +1,6 @@
{
"about.config_path": "Mlafuplas fu sentakuzma",
"about.description": "TagStudio - apli per parjat mlafu au riso mit festaretol, hadafsui per anta sentakuzma au mange dekizma brukdjin made. Nil kinijena apli os mlafufal, nil mare fu flankamlafu, au na nilraz ti kawri hel parjat fu kompyu.",
"about.description": "TagStudio zeting ke parjat mlafu au riso mit festaretol, hadafvui per anta sentakuzma au mange dekizma brukdjin made. Nil kinijena zeting os mlafufal, jamnai mare fu flanka mlafu au perpa tumam fu kompyu.",
"about.documentation": "Mahaklarazma",
"about.license": "Brukruuru",
"about.module.found": "Finnajena",
@@ -10,11 +10,11 @@
"app.pre_release": "De-Gvir",
"app.title": "{base_title} - Mlafuhuomi '{library_dir}'",
"color.color_border": "Bruk minusvikti varge per flanka",
"color.confirm_delete": "Du kestetsa varge \"{color_name}\" we?",
"color.confirm_delete": "Du kestetsa varge \"{color_name}\"?",
"color.delete": "Keste festaretol",
"color.import_pack": "Nasii klaani fu varge",
"color.name": "Namae",
"color.namespace.delete.prompt": "Du kestetsa afto vargetumam we? Afto zol keste ALTING ine vargetumam au sebja!",
"color.namespace.delete.prompt": "Du kestetsa afto vargetumam? Afto zol keste alting ine vargetumam au sebja!",
"color.namespace.delete.title": "Keste vargetumam",
"color.new": "Neo varge",
"color.placeholder": "Varge",
@@ -36,61 +36,47 @@
"edit.copy_fields": "Mverm shiruzmafal",
"edit.paste_fields": "Nasii shiru",
"edit.tag_manager": "Jewalt festaretol",
"entries.duplicate.merge": "Visk blisnets shiruzmakaban",
"entries.duplicate.merge.label": "Visk blisnets shiruzmakaban ima...",
"entries.duplicate.refresh": "Gotova blisnets shiruzmakaban gen",
"entries.duplicates.description": "Blisnets shiruzmakaban implajena na plus ka ein shiruzmakaban ke tsunaga na sama mlafu na shiruzmabaksu. Na visk afto, zol festa festaretol au mlafushiruzma al mverm fu mlafu kara ine ein stuur shiruzmakaban. Hej nai sama \"mverm fu mlafu\", ke mverm fu mlafu fu du, ekso TagStudio.",
"entries.generic.refresh_alt": "&Gengotova",
"entries.duplicate.merge": "Visk sama shiruzmakaban",
"entries.duplicate.merge.label": "Visk sama shiruzmakaban ima...",
"entries.duplicate.refresh": "Gotova sama shiruzmakaban gen",
"entries.duplicates.description": "Mverm fu shiruzmakaban implajena na plus ka ein shiruzmakaban ke tsunaga na sama mlafu na shiruzmabaksu. Na visk afto, zol festa festaretol au mlafushiruzma al mverm fu mlafu kara ine ein stuur shiruzmakaban. Hej nai sama \"mverm fu mlafu\", ke mverm fu mlafu fu du, ekso TagStudio.",
"entries.generic.remove.removing": "Keste shiruzmakaban ima",
"entries.generic.remove.removing_count": "Keste {count} shiruzmakaban...",
"entries.ignored.description": "Mlafu shiruzmakaban bli \"hestujena\" li antadan na mlafuhuomi de hesturuuru fu brukdjin (na '.ts_ignore' mlafu) kawaridan per nai eku sore. Hestujena mlafu long mlafuhuomi na snano sit kemuske mlafu na lasazma kesa kawari hesturuuru.",
"entries.ignored.ignored_count": "Hestujena Shiruzmakaban: {count}",
"entries.ignored.remove": "Keste hestujena shiruzmakaban",
"entries.ignored.remove_alt": "Keste hestujena shiruzmakaban (&v)",
"entries.ignored.scanning": "Taskame mlafuhuomi grun hestujena shiruzmakaban...",
"entries.ignored.title": "Fiks hestujena shiruzmakaban",
"entries.mirror": "&Maha melon fu",
"entries.mirror.confirmation": "Du mahatsa melon fu afto {count} shiruzmakaban we?",
"entries.mirror.confirmation": "Du mahatsa melon fu afto {count} shiruzmakaban?",
"entries.mirror.label": "Maha melon fu {idx}/{total} shiruzmakaban ima...",
"entries.mirror.title": "Maha melon fu shiruzmakaban ima",
"entries.mirror.window_title": "Maha melon fu shiruzmakaban",
"entries.remove.plural.confirm": "Du kestetsa afto <b>{count}</b> shiruzmakaban we? Nil mlafu na shiruzmabaksu bli kestejena.",
"entries.remove.singular.confirm": "Du kestetsa afto shiruzmakaban long mlafuhuomi we? Nil mlafu na shiruzmabaksu bli kestejena.",
"entries.remove.plural.confirm": "Du kestetsa afto {count} shiruzmakaban?",
"entries.running.dialog.new_entries": "Nasii {total} neo shiruzmakaban fu mlafu ima...",
"entries.running.dialog.title": "Nasii neo shiruzmakaban fu mlafu ima",
"entries.tags": "Festaretol",
"entries.unlinked.description": "Tont shiruzmakaban fu mlafuhuomi tsunagajena na mlafu ine joku mlafukaban fu du. Li mlafu tsunagajena na shiruzmakaban ugokijena os kestejena ekso TagStudio, sit sore kntsunagajena.<br><br>Tsunaganaijena shiruzmakaban deki tsunaga gen na suha per mlafukaban fu du os keste li du vil.",
"entries.unlinked.description": "Tont shiruzmakaban fu mlafuhuomi tsunagajena na mlafu ine joku mlafukaban fu du. Li mlafu tsunagajena na shiruzmakaban ugokijena os kestejena ekso TagStudio, sit sore tsunaganaijena.<br><br>Tsunaganaijena shiruzmakaban deki tsunaga gen na suha per mlafukaban fu du os keste li du vil.",
"entries.unlinked.relink.attempting": "Iskat ima na tsunaga gen {index}/{unlinked_count} shiruzmakaban, {fixed_count} tsunagajena gen",
"entries.unlinked.relink.manual": "&Tsunaga gen mit hant",
"entries.unlinked.relink.title": "Tsunaga shiruzmakaban gen",
"entries.unlinked.remove": "Keste kntsunagajena shiruzmakaban",
"entries.unlinked.remove_alt": "Keste kntsunagajena shiruzmakaban (&v)",
"entries.unlinked.scanning": "Taskame mlafuhuomi ima grun kntsunagajena shiruzmakaban...",
"entries.unlinked.scanning": "Suha mlafuhuomi ima per tsunaganaijena shiruzmakaban...",
"entries.unlinked.search_and_relink": "&Suha &&Tsunaga gen",
"entries.unlinked.title": "Fiks kntsunagajena shiruzmakaban",
"entries.unlinked.unlinked_count": "Kntsunagajena shiruzmakaban: {count}",
"entries.unlinked.title": "Fiks tsunaganaijena shiruzmakaban",
"entries.unlinked.unlinked_count": "Tsunaganaijena shiruzmakaban: {count}",
"ffmpeg.missing.description": "FFmpeg au/os FFprobe nai finnajena. TagStudio treng FFmpeg per mahase riso.",
"ffmpeg.missing.status": "{ffmpeg}: {ffmpeg_status}<br>{ffprobe}: {ffprobe_status}",
"field.copy": "Mverm shiruzmafal",
"field.edit": "Kawari shiruzmafal",
"field.paste": "Nasii shiruzmafal",
"field_type.datetime": "Dag-tid",
"field_type.text": "Tekst",
"field_type.unknown": "Fal nai shirujena",
"file.date_added": "Dag antajena",
"file.date_created": "Dag mahajena",
"file.date_modified": "Dag kawarijena",
"file.date_added": "Dag nasiijenadan",
"file.date_created": "Dag mahajenadan",
"file.date_modified": "Dag kawarijenadan",
"file.dimensions": "Stuuratailasku",
"file.duplicates.description": "TagStudio kjoka nasii shiruzma DupeGuru kara per jewalt blisnets mlafu.",
"file.duplicates.dupeguru.advice": "Za melon mahajena, du deki bruk DupeGuru per keste nai vilena mlafu. Sit, bruk tel fu TagStudio, haisa \"Fiks kntsunagajena shiruzmakaban\" na tropos sentakutumam per keste kntsunagajena shiruzmakaban.",
"file.duplicates.description": "TagStudio kjoka nasii shiruzma DupeGuru kara per jewalt mverm.",
"file.duplicates.dupeguru.advice": "Za melon mahajena, du deki bruk DupeGuru per keste nai vilena mlafu. Sit, bruk tel fu TagStudio, haisa \"Fiks tsunaganaijena shiruzmakaban\" na tropos sentakutumam per keste tsunaganaijena shiruzmakaban.",
"file.duplicates.dupeguru.file_extension": "DupeGuru mlafu (*.dupeguru)",
"file.duplicates.dupeguru.load_file": "&Gotova mlafu fu DupeGuru",
"file.duplicates.dupeguru.no_file": "Jamnai sentakujena mlafu fu DupeGuru",
"file.duplicates.dupeguru.open_file": "Auki sitan mlafu fu Dupeguru",
"file.duplicates.fix": "Fiks blisnets mlafu",
"file.duplicates.matches": "Blisnets-atai: {count}",
"file.duplicates.matches_uninitialized": "blisntes-atai: N/A",
"file.duplicates.mirror.description": "Maha melon fu shiruzma shiruzmakaban kara na al blisnets fu samakaban, afto zol visk al shiruzma, men zolnai keste os mverm shiruzmafal. Afto zolnai keste joku mlafu os shiruzma.",
"file.duplicates.dupeguru.open_file": "Auki shiruzma mlafu fu Dupeguru",
"file.duplicates.fix": "Fiks mverm",
"file.duplicates.matches": "Mverm-atai: {count}",
"file.duplicates.matches_uninitialized": "Mverm-atai: N/A",
"file.duplicates.mirror.description": "Maha melon fu shiruzma shiruzmakaban kara na al mverm fu samakaban, afto zol visk al shiruzma, men zolnai keste os mverm shiruzmafal. Afto zolnai keste joku mlafu os shiruzma.",
"file.duplicates.mirror_entries": "&Maha melon fu shiruzmakaban",
"file.duration": "Pitkatai",
"file.not_found": "Mlafu nai finnajena",
@@ -124,43 +110,33 @@
"generic.missing": "Harnai",
"generic.navigation.back": "Suruk",
"generic.navigation.next": "Mirai",
"generic.no": "Nai",
"generic.none": "Nil",
"generic.overwrite": "Vasu",
"generic.overwrite_alt": "&Vasu",
"generic.paste": "Nasii",
"generic.recent_libraries": "Moloda mlafuhuomi",
"generic.remove": "Keste",
"generic.remove_alt": "&Keste",
"generic.rename": "Haisagen",
"generic.rename_alt": "&Haisagen",
"generic.reset": "Gensintua",
"generic.save": "Ufne",
"generic.skip": "Pal",
"generic.skip_alt": "&Pal",
"generic.yes": "Akk",
"home.search": "Suha",
"home.search_entries": "Suha shiruzmakaban",
"home.search_library": "Suha mlafuhuomi",
"home.search_tags": "Suha festaretol",
"home.show_hidden_entries": "Mahase furijena shiruzmakaban",
"home.thumbnail_size": "Stuuratai fu risonen",
"home.thumbnail_size.extra_large": "Plusstuur risonen",
"home.thumbnail_size.large": "Stuur risonen",
"home.thumbnail_size.medium": "Mellan risonen",
"home.thumbnail_size.mini": "Chisai risonen",
"home.thumbnail_size.small": "Chisaidai risonen",
"ignore.open_file": "Mahase \"{ts_ignore}\" mlafu na shiruzmabaksu",
"json_migration.checking_for_parity": "Taskama per chigauzma ima...",
"json_migration.creating_database_tables": "Maha tumam na SQL Database ima...",
"json_migration.description": "<br>Hadji au de se shiruzma fu",
"json_migration.discrepancies_found": "Chiguazma finnajena na mlafuhuomi",
"json_migration.discrepancies_found.description": "Chiguazma finnajena mellan ranja au kjannos. Bitte gense au sentaku per beng na dlabdel os yamete.",
"json_migration.finish_migration": "Owari dlabdel",
"json_migration.heading.aliases": "Andrnamae:",
"json_migration.heading.colors": "Varge:",
"json_migration.heading.differ": "Tchigauzma",
"json_migration.heading.extensions": "Andr ilo:",
"json_migration.heading.match": "Finnajena sama",
"json_migration.heading.names": "Namae:",
"json_migration.heading.parent_tags": "Atama festaretol:",
@@ -180,22 +156,13 @@
"library.field.remove": "Keste shiruzmafal",
"library.missing": "Mlafuplas fu mlafuhuomi nai finnajenadan",
"library.name": "Mlafuhuomi",
"library.refresh.scanning.plural": "Taskame mlafukaban fu neo mlafu ima...\n{searched_count} mlafu suhajenadan, {found_count} neo mlafu finnajenadan",
"library.refresh.scanning.singular": "Taskame mlafukaban fu neo mlafu ima...\n{searched_count} mlafu suhajenadan, {found_count} neo mlafu finnajenadan",
"library.refresh.scanning_preparing": "Taskame mlafukaban fu neo mlafu ima...\nGotova ima...",
"library.refresh.scanning.plural": "Taskama mlafukaban fu neo mlafu ima...\n{searched_count} mlafu suhajenadan, {found_count} neo mlafu finnajenadan",
"library.refresh.scanning.singular": "Taskama mlafukaban fu neo mlafu ima...\n{searched_count} mlafu suhajenadan, {found_count} neo mlafu finnajenadan",
"library.refresh.scanning_preparing": "Taskama mlafukaban fu neo mlafu ima...\nGotova ima...",
"library.refresh.title": "Gengotova al mlafukaban",
"library.scan_library.title": "Taskame mlafuhuomi ima",
"library_info.cleanup": "Parjat",
"library_info.cleanup.backups": "Mverm long mlafuhuomi:",
"library_info.cleanup.dupe_files": "Blisnets mlafu:",
"library_info.cleanup.ignored": "Hestujena shiruzmakaban:",
"library_info.cleanup.legacy_json": "Gammel verso fu mlafuhuomi:",
"library_info.cleanup.unlinked": "Kntsunagajena shiruzmakaban:",
"library_info.stats.colors": "Varge fu festaretol:",
"library.scan_library.title": "Taskama mlafuhuomi ima",
"library_info.stats.entries": "Shiruzmakaban:",
"library_info.stats.fields": "Shiruzmafal:",
"library_info.stats.macros": "Aplinen:",
"library_info.stats.namespaces": "Tumam:",
"library_info.stats.tags": "Festaretol:",
"library_object.name": "Namae",
"library_object.name_required": "Namae (Trengjena)",
@@ -223,16 +190,15 @@
"menu.file.save_library": "Ufne mlafuhuomi",
"menu.help": "&Aputsa",
"menu.help.about": "Shiruplus",
"menu.macros": "&Aplinen",
"menu.macros": "&Zetingnen",
"menu.macros.folders_to_tags": "Mlafukaban festaretol made",
"menu.select": "Sentaku",
"menu.settings": "Sentakuzma...",
"menu.tools": "&Tropos",
"menu.tools.fix_duplicate_files": "Fiks &blisnets mlafu",
"menu.tools.fix_duplicate_files": "Fiks sama &mlafu",
"menu.tools.fix_unlinked_entries": "Fiks &tsunagajenanai shiruzmakaban",
"menu.view": "&Anse",
"menu.window": "Ekrannen",
"namespace.create.description_color": "Varge fu festaretol bruk tumam na vargekaban. Al neo varge mus long tumamklaani na eins.",
"namespace.create.title": "Maha vargetumam",
"namespace.new.button": "Neo vargetumam",
"namespace.new.prompt": "Maha neo vargetumam per nasii varge fu sebja!",
@@ -256,17 +222,17 @@
"settings.show_filenames_in_grid": "Mahase namae fu mlafu ine karta",
"settings.show_recent_libraries": "Mahase moloda mlafuhuomi",
"settings.theme.dark": "Kirai",
"settings.theme.label": "Ekran klea:",
"settings.theme.label": "Klea fu zeting:",
"settings.theme.light": "Kirkas",
"settings.theme.system": "Kompyu",
"settings.title": "Sentakuzma",
"sorting.direction.ascending": "Plus made",
"sorting.direction.descending": "Minus made",
"sorting.direction.ascending": "Leste owaris",
"sorting.direction.descending": "Leste eins",
"splash.opening_library": "Auki mlafuhuomi \"{library_path}\" ima...",
"status.deleted_file_plural": "Kestejenadan {count} mlafu!",
"status.deleted_file_singular": "Kestejenadan 1 mlafu!",
"status.deleted_none": "Nil mlafu kestejenadan.",
"status.deleted_partial_warning": "Mono kestejenadan {count} mlafu! Bitte taskamatsa li du dekinai finna mlafu os ke ima brukjena na andr apli.",
"status.deleted_partial_warning": "Mono kestejenadan {count} mlafu! Bitte taskamatsa li du dekinai finna mlafu os ke ima brukjena na andr zeting.",
"status.deleting_file": "Keste mlafu [{i}/{count}]: \"{path}\" ima...",
"status.library_closing": "Kini mlafuhuomi ima...",
"status.library_save_success": "Mlafuhuomi ufnejenadan au kinijenadan!",
@@ -284,7 +250,7 @@
"tag.all_tags": "Al festaretol",
"tag.choose_color": "Sentaku varge fu festaretol",
"tag.color": "Varge",
"tag.confirm_delete": "Du kestetsa festaretol \"{tag_name}\" we?",
"tag.confirm_delete": "Du kestetsa festaretol \"{tag_name}\"?",
"tag.create": "Maha festaretol",
"tag.create_add": "Maha && Nasii \"{query}\"",
"tag.disambiguation.tooltip": "Bruk afto festaretol grun plusklar",
@@ -306,8 +272,8 @@
"trash.context.singular": "Ugoki mlafu {trash_term} made",
"trash.dialog.disambiguation_warning.plural": "Afto zol keste tuo TagStudio kara <i>AU</i> kompyu fu du kara!",
"trash.dialog.disambiguation_warning.singular": "Afto zol keste sore TagStudio kara <i>AU</i> kompyu fu du kara!",
"trash.dialog.move.confirmation.plural": "Du ugokitsa afto {count} mlafu {trash_term} made we?",
"trash.dialog.move.confirmation.singular": "Du ugokitsa afto mlafu {trash_term} made we?",
"trash.dialog.move.confirmation.plural": "Du ugokitsa afto {count} mlafu {trash_term} made?",
"trash.dialog.move.confirmation.singular": "Du ugokitsa afto mlafu {trash_term} made?",
"trash.dialog.permanent_delete_warning": "<b>VIKTI!</b> Li afto mlafu nai dekijena ugoki {trash_term} made, sore zol <b>kestejena!!</b>",
"trash.dialog.title.plural": "Keste mlafu",
"trash.dialog.title.singular": "Keste mlafu",

View File

@@ -43,7 +43,6 @@
"entries.generic.refresh_alt": "&Обновить",
"entries.generic.remove.removing": "Удаление записей",
"entries.generic.remove.removing_count": "Удаление {count} записей...",
"entries.ignored.description": "Записи файлов будут считаться \"проигнорированными\", если они были добавлены в библиотеку до обновления пользовательских правил игнора (через файл \".ts_ignore\") для исключения записей. Проигнорированные файлы остаются в библиотеке по умолчанию с целью предотвращения случайной потери данных при обновления правил.",
"entries.ignored.ignored_count": "Проигнорированных записей: {count}",
"entries.ignored.remove": "Удалить игнорируемые записи",
"entries.ignored.scanning": "Поиск игнорируемых записей...",
@@ -72,9 +71,6 @@
"field.copy": "Копировать поле",
"field.edit": "Редактировать поле",
"field.paste": "Вставить поле",
"field_type.datetime": "Дата",
"field_type.text": "Текст",
"field_type.unknown": "Неизвестный тип",
"file.date_added": "Дата добавления",
"file.date_created": "Дата создания",
"file.date_modified": "Дата изменения",
@@ -122,33 +118,27 @@
"generic.missing": "Отсутствует",
"generic.navigation.back": "Назад",
"generic.navigation.next": "Далее",
"generic.no": "Нет",
"generic.none": "Ничего",
"generic.overwrite": "Перезаписать",
"generic.overwrite_alt": "&Перезаписать",
"generic.paste": "Вставить",
"generic.recent_libraries": "Недавние библиотеки",
"generic.remove": "Убрать",
"generic.remove_alt": "&Убрать",
"generic.rename": "Переименовать",
"generic.rename_alt": "&Переименовать",
"generic.reset": "Cбросить",
"generic.save": "Сохранить",
"generic.skip": "Пропустить",
"generic.skip_alt": "&Пропустить",
"generic.yes": "Да",
"home.search": "Поиск",
"home.search_entries": "Поиск записей",
"home.search_library": "Поиск по библиотеке",
"home.search_tags": "Поиск тегов",
"home.show_hidden_entries": "Показать скрытые записи",
"home.thumbnail_size": "Размер иконок",
"home.thumbnail_size.extra_large": "Очень большие иконки",
"home.thumbnail_size.large": "Большие иконки",
"home.thumbnail_size.medium": "Средние иконки",
"home.thumbnail_size.mini": "Крохотные иконки",
"home.thumbnail_size.small": "Маленькие иконки",
"ignore.open_file": "Показать файл \"{ts_ignore}\" на диске",
"json_migration.checking_for_parity": "Проверка целостности...",
"json_migration.creating_database_tables": "Создание таблиц базы данных SQL...",
"json_migration.description": "<br>Начните и просмотрите результаты процесса миграции библиотеки. Конвертированная библиотека <i>не</i> будет использоваться, если вы не нажмете \"Завершить миграцию\". Данные библиотеки должны либо иметь совпадающие значения, либо содержать метку \"Совпало\". Значения, которые не совпадают, будут отображаться красным цветом и сопровождаться символом \"<b>(!)</b>\" рядом с ними. <br><center><i>Этот процесс может занять несколько минут для больших библиотек.</i></center>",
@@ -158,7 +148,6 @@
"json_migration.heading.aliases": "Псевдонимы:",
"json_migration.heading.colors": "Цвета:",
"json_migration.heading.differ": "Несоответствие",
"json_migration.heading.extensions": "Расширения:",
"json_migration.heading.match": "Совпало",
"json_migration.heading.names": "Имена:",
"json_migration.heading.parent_tags": "Родительские теги:",
@@ -184,20 +173,9 @@
"library.refresh.scanning_preparing": "Сканирование папок на наличие новых файлов...\nПодготовка...",
"library.refresh.title": "Обновление папок",
"library.scan_library.title": "Сканирование библиотеки",
"library_info.cleanup.backups": "Резервные копии библиотек:",
"library_info.cleanup.dupe_files": "Файлы-дубликаты:",
"library_info.cleanup.ignored": "Проигнорированные записи:",
"library_info.cleanup.legacy_json": "Оставшиеся устаревшие библиотеки:",
"library_info.cleanup.unlinked": "Несвязанные записи:",
"library_info.stats": "Статистика",
"library_info.stats.colors": "Цвета тегов:",
"library_info.stats.entries": "Записи:",
"library_info.stats.fields": "Поля:",
"library_info.stats.macros": "Макросы:",
"library_info.stats.namespaces": "Пространства:",
"library_info.stats.tags": "Теги:",
"library_info.title": "Библиотека \"{library_dir}\"",
"library_info.version": "Версия библиотеки: {version}",
"library_object.name": "Название",
"library_object.name_required": "Название (Обязательно)",
"library_object.slug": "Уникальный ID",
@@ -219,7 +197,6 @@
"menu.file.missing_library.message": "Не найдено расположение библиотеки \"{library}\".",
"menu.file.missing_library.title": "Отсутствующая библиотека",
"menu.file.new_library": "Новая библиотека",
"menu.file.open_backups_folder": "Открыть папку резервных копий",
"menu.file.open_create_library": "&Открыть/создать библиотеку",
"menu.file.open_library": "Открыть библиотеку",
"menu.file.open_recent_library": "Открыть последнюю",
@@ -234,22 +211,18 @@
"menu.settings": "Настройки...",
"menu.tools": "&Инструменты",
"menu.tools.fix_duplicate_files": "Исправить дубликаты &файлов",
"menu.tools.fix_ignored_entries": "Исправленные &Проигнорированные записи",
"menu.tools.fix_unlinked_entries": "Исправить &откреплённые записи",
"menu.view": "&Вид",
"menu.view.decrease_thumbnail_size": "Уменьшить размер иконок",
"menu.view.increase_thumbnail_size": "Увеличить размер иконок",
"menu.view.library_info": "&Информация о библиотеке",
"menu.window": "Окно",
"namespace.create.description": "TagStudio использует пространства имён, чтобы категоризировать цвета и теги для удобства их экспорта и передачи. Пространства имён, начинающиеся с \"tagstudio\", зарезервированы TagStudio для внутреннего использования.",
"namespace.create.description_color": "Именные пространства используются в качестве палитр для цветов тегов. Все пользовательские цвета хранятся в именных пространствах.",
"namespace.create.title": "Создать пространство имён",
"namespace.new.button": "Новое пространство имён",
"namespace.new.prompt": "Создайте пространство имён, чтобы добавить пользовательские цвета!",
"preview.ignored": "Проигнорированные",
"preview.multiple_selection": "Выбрано <b>{count}</b> элементов",
"preview.no_selection": "Ничего не выбрано",
"preview.unlinked": "Несвязанные",
"select.add_tag_to_selected": "Добавить тег к выбранному",
"select.all": "Выбрать всё",
"select.clear": "Отменить выбор",
@@ -263,24 +236,15 @@
"settings.filepath.option.full": "Показывать путь полностью",
"settings.filepath.option.name": "Показывать только имена файлов",
"settings.filepath.option.relative": "Показывать относительные пути",
"settings.generate_thumbs": "Создание обложек",
"settings.global": "Глобальные настройки",
"settings.hourformat.label": "24-часовое время",
"settings.infinite_scroll": "Бесконечное пролистывание",
"settings.language": "Язык",
"settings.library": "Настройки библиотеки",
"settings.open_library_on_start": "Открывать библиотеку при запуске",
"settings.page_size": "Размер страницы",
"settings.restart_required": "Пожалуйста, перезапустите TagStudio для применения изменений.",
"settings.scan_files_on_open": "Автоматически загружать новые файлы",
"settings.show_filenames_in_grid": "Показывать имена файлов",
"settings.show_recent_libraries": "Показывать недавние библиотеки",
"settings.splash.label": "Экран приветствия",
"settings.splash.option.classic": "Классика (9.0)",
"settings.splash.option.default": "По умолчанию",
"settings.splash.option.goo_gears": "Открытый код (9.4)",
"settings.splash.option.ninety_five": "'95 (9.5)",
"settings.splash.option.random": "Случайный",
"settings.tag_click_action.add_to_search": "Добавить тег в поиск",
"settings.tag_click_action.label": "Действие по нажатию на тег",
"settings.tag_click_action.open_edit": "Редактировать тег",
@@ -289,12 +253,10 @@
"settings.theme.label": "Тема:",
"settings.theme.light": "Светлая",
"settings.theme.system": "Системная",
"settings.thumb_cache_size.label": "Размер кэша обложек",
"settings.title": "Настройки",
"settings.zeropadding.label": "Ведущие нули",
"sorting.direction.ascending": "По возрастанию",
"sorting.direction.descending": "По убыванию",
"sorting.mode.random": "Случайный",
"splash.opening_library": "Открытие библиотеки \"{library_path}\"...",
"status.deleted_file_plural": "{count} файлов удалено!",
"status.deleted_file_singular": "Файл удалён!",
@@ -326,7 +288,6 @@
"tag.disambiguation.tooltip": "Использовать этот тег для пояснения",
"tag.edit": "Редактировать тег",
"tag.is_category": "Является категорией",
"tag.is_hidden": "Спрятан",
"tag.name": "Название",
"tag.new": "Новый тег",
"tag.parent_tags": "Родительский тег",
@@ -350,9 +311,6 @@
"trash.dialog.title.singular": "Удалить файл",
"trash.name.generic": "Корзина",
"trash.name.windows": "Корзина",
"version_modal.description": "Новая версия TagStudio доступна! Вы можете скачать последний релиз из <a href=\"{github_url}\">GitHub</a>'а.",
"version_modal.status": "Установленная версия: {installed_version}<br>Последняя доступная версия: {latest_release_version}",
"version_modal.title": "Доступно обновление TagStudio",
"view.size.0": "Крохотный",
"view.size.1": "Маленький",
"view.size.2": "Средний",

View File

@@ -73,9 +73,6 @@
"field.copy": "o kama jo e ma sama",
"field.edit": "o ante e ma",
"field.paste": "o pana e ma sama",
"field_type.datetime": "tenpo",
"field_type.text": "toki",
"field_type.unknown": "nasa",
"file.date_added": "tenpo pi kama namako",
"file.date_created": "tenpo pi kama sin",
"file.date_modified": "tenpo pi kama ante",