From 3f9aa87ab64a731f9e9a5ba0e736add74b9a79cb Mon Sep 17 00:00:00 2001
From: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com>
Date: Fri, 29 Aug 2025 13:54:42 -0700
Subject: [PATCH] feat(ui): add LibraryInfoWindow with statistics (#1056)
---
.../widgets/library_info_window_controller.py | 52 ++++++
src/tagstudio/qt/main_window.py | 3 +
src/tagstudio/qt/ts_qt.py | 19 +-
.../view/widgets/library_info_window_view.py | 165 ++++++++++++++++++
src/tagstudio/qt/widgets/migration_modal.py | 6 +-
src/tagstudio/resources/translations/de.json | 6 +-
src/tagstudio/resources/translations/en.json | 12 +-
src/tagstudio/resources/translations/es.json | 6 +-
src/tagstudio/resources/translations/fil.json | 6 +-
src/tagstudio/resources/translations/fr.json | 6 +-
src/tagstudio/resources/translations/hu.json | 6 +-
src/tagstudio/resources/translations/ja.json | 6 +-
.../resources/translations/nb_NO.json | 6 +-
src/tagstudio/resources/translations/nl.json | 4 +-
src/tagstudio/resources/translations/pl.json | 6 +-
.../resources/translations/pt_BR.json | 6 +-
src/tagstudio/resources/translations/qpv.json | 6 +-
src/tagstudio/resources/translations/ru.json | 6 +-
src/tagstudio/resources/translations/ta.json | 6 +-
src/tagstudio/resources/translations/tok.json | 6 +-
src/tagstudio/resources/translations/tr.json | 6 +-
.../resources/translations/zh_Hans.json | 6 +-
.../resources/translations/zh_Hant.json | 8 +-
23 files changed, 299 insertions(+), 60 deletions(-)
create mode 100644 src/tagstudio/qt/controller/widgets/library_info_window_controller.py
create mode 100644 src/tagstudio/qt/view/widgets/library_info_window_view.py
diff --git a/src/tagstudio/qt/controller/widgets/library_info_window_controller.py b/src/tagstudio/qt/controller/widgets/library_info_window_controller.py
new file mode 100644
index 00000000..db1bb0a4
--- /dev/null
+++ b/src/tagstudio/qt/controller/widgets/library_info_window_controller.py
@@ -0,0 +1,52 @@
+# Copyright (C) 2025 Travis Abendshien (CyanVoxel).
+# Licensed under the GPL-3.0 License.
+# Created for TagStudio: https://github.com/CyanVoxel/TagStudio
+
+
+from typing import TYPE_CHECKING
+
+from PySide6 import QtGui
+
+from tagstudio.core.library.alchemy.library import Library
+from tagstudio.qt.translations import Translations
+from tagstudio.qt.view.widgets.library_info_window_view import LibraryInfoWindowView
+
+# Only import for type checking/autocompletion, will not be imported at runtime.
+if TYPE_CHECKING:
+ from tagstudio.qt.ts_qt import QtDriver
+
+
+class LibraryInfoWindow(LibraryInfoWindowView):
+ def __init__(self, library: "Library", driver: "QtDriver"):
+ super().__init__(library, driver)
+
+ self.manage_tags_button.clicked.connect(
+ self.driver.main_window.menu_bar.tag_manager_action.trigger
+ )
+ self.manage_colors_button.clicked.connect(
+ self.driver.main_window.menu_bar.color_manager_action.trigger
+ )
+ self.close_button.clicked.connect(lambda: self.close())
+
+ def update_title(self):
+ assert self.lib.library_dir
+ title: str = Translations.format(
+ "library_info.title", library_dir=self.lib.library_dir.stem
+ )
+ self.title_label.setText(f"
{title}
")
+
+ def update_stats(self):
+ self.entry_count_label.setText(f"{self.lib.entries_count}")
+ self.tag_count_label.setText(f"{len(self.lib.tags)}")
+ self.field_count_label.setText(f"{len(self.lib.field_types)}")
+ self.namespaces_count_label.setText(f"{len(self.lib.namespaces)}")
+ colors_total = 0
+ for c in self.lib.tag_color_groups.values():
+ colors_total += len(c)
+ self.color_count_label.setText(f"{colors_total}")
+
+ self.macros_count_label.setText("1") # TODO: Implement macros system
+
+ def showEvent(self, event: QtGui.QShowEvent): # noqa N802
+ self.update_title()
+ self.update_stats()
diff --git a/src/tagstudio/qt/main_window.py b/src/tagstudio/qt/main_window.py
index 59e86670..1830b940 100644
--- a/src/tagstudio/qt/main_window.py
+++ b/src/tagstudio/qt/main_window.py
@@ -300,6 +300,9 @@ class MainMenuBar(QMenuBar):
def setup_view_menu(self):
self.view_menu = QMenu(Translations["menu.view"], self)
+ self.library_info_action = QAction(Translations["menu.view.library_info"])
+ self.view_menu.addAction(self.library_info_action)
+
# show_libs_list_action = QAction(Translations["settings.show_recent_libraries"], menu_bar)
# show_libs_list_action.setCheckable(True)
# show_libs_list_action.setChecked(self.settings.show_library_list)
diff --git a/src/tagstudio/qt/ts_qt.py b/src/tagstudio/qt/ts_qt.py
index e997cca6..7925a584 100644
--- a/src/tagstudio/qt/ts_qt.py
+++ b/src/tagstudio/qt/ts_qt.py
@@ -69,6 +69,7 @@ from tagstudio.core.utils.refresh_dir import RefreshDirTracker
from tagstudio.core.utils.types import unwrap
from tagstudio.core.utils.web import strip_web_protocol
from tagstudio.qt.cache_manager import CacheManager
+from tagstudio.qt.controller.widgets.library_info_window_controller import LibraryInfoWindow
from tagstudio.qt.helpers.custom_runnable import CustomRunnable
from tagstudio.qt.helpers.file_deleter import delete_file
from tagstudio.qt.helpers.function_iterator import FunctionIterator
@@ -180,6 +181,7 @@ class QtDriver(DriverMixin, QObject):
about_modal: AboutModal
unlinked_modal: FixUnlinkedEntriesModal
dupe_modal: FixDupeFilesModal
+ library_info_window: LibraryInfoWindow
applied_theme: Theme
@@ -348,9 +350,8 @@ class QtDriver(DriverMixin, QObject):
self.tag_manager_panel = PanelModal(
widget=TagDatabasePanel(self, self.lib),
title=Translations["tag_manager.title"],
- done_callback=lambda s=self.selected: self.main_window.preview_panel.set_selection(
- s, update_preview=False
- ),
+ done_callback=lambda checked=False,
+ s=self.selected: self.main_window.preview_panel.set_selection(s, update_preview=False),
has_save=False,
)
@@ -454,6 +455,13 @@ class QtDriver(DriverMixin, QObject):
# region View Menu ============================================================
+ def create_library_info_window():
+ if not hasattr(self, "library_info_window"):
+ self.library_info_window = LibraryInfoWindow(self.lib, self)
+ self.library_info_window.show()
+
+ self.main_window.menu_bar.library_info_action.triggered.connect(create_library_info_window)
+
def on_show_filenames_action(checked: bool):
self.settings.show_filenames_in_grid = checked
self.settings.save()
@@ -734,6 +742,9 @@ class QtDriver(DriverMixin, QObject):
self.set_clipboard_menu_viability()
self.set_select_actions_visibility()
+ if hasattr(self, "library_info_window"):
+ self.library_info_window.close()
+
self.main_window.preview_panel.set_selection(self.selected)
self.main_window.toggle_landing_page(enabled=True)
self.main_window.pagination.setHidden(True)
@@ -749,6 +760,7 @@ class QtDriver(DriverMixin, QObject):
self.main_window.menu_bar.fix_dupe_files_action.setEnabled(False)
self.main_window.menu_bar.clear_thumb_cache_action.setEnabled(False)
self.main_window.menu_bar.folders_to_tags_action.setEnabled(False)
+ self.main_window.menu_bar.library_info_action.setEnabled(False)
except AttributeError:
logger.warning(
"[Library] Could not disable library management menu actions. Is this in a test?"
@@ -1742,6 +1754,7 @@ class QtDriver(DriverMixin, QObject):
self.main_window.menu_bar.fix_dupe_files_action.setEnabled(True)
self.main_window.menu_bar.clear_thumb_cache_action.setEnabled(True)
self.main_window.menu_bar.folders_to_tags_action.setEnabled(True)
+ self.main_window.menu_bar.library_info_action.setEnabled(True)
self.main_window.preview_panel.set_selection(self.selected)
diff --git a/src/tagstudio/qt/view/widgets/library_info_window_view.py b/src/tagstudio/qt/view/widgets/library_info_window_view.py
new file mode 100644
index 00000000..0a6afc88
--- /dev/null
+++ b/src/tagstudio/qt/view/widgets/library_info_window_view.py
@@ -0,0 +1,165 @@
+# Copyright (C) 2025 Travis Abendshien (CyanVoxel).
+# Licensed under the GPL-3.0 License.
+# Created for TagStudio: https://github.com/CyanVoxel/TagStudio
+
+
+from typing import TYPE_CHECKING
+
+from PySide6.QtCore import Qt
+from PySide6.QtWidgets import (
+ QGridLayout,
+ QHBoxLayout,
+ QLabel,
+ QPushButton,
+ QSizePolicy,
+ QSpacerItem,
+ QVBoxLayout,
+ QWidget,
+)
+
+from tagstudio.core.library.alchemy.library import Library
+from tagstudio.qt.translations import Translations
+
+# Only import for type checking/autocompletion, will not be imported at runtime.
+if TYPE_CHECKING:
+ from tagstudio.qt.ts_qt import QtDriver
+
+
+class LibraryInfoWindowView(QWidget):
+ def __init__(self, library: "Library", driver: "QtDriver"):
+ super().__init__()
+ self.lib = library
+ self.driver = driver
+
+ self.setWindowTitle("Library Information")
+ self.setMinimumSize(400, 300)
+ self.root_layout = QVBoxLayout(self)
+ self.root_layout.setContentsMargins(6, 6, 6, 6)
+
+ row_height: int = 22
+ cell_alignment: Qt.AlignmentFlag = (
+ Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter
+ )
+
+ # Title ----------------------------------------------------------------
+ self.title_label = QLabel()
+ self.title_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
+
+ # Body (Stats, etc.) ---------------------------------------------------
+ self.body_widget = QWidget()
+ self.body_layout = QHBoxLayout(self.body_widget)
+ self.body_layout.setContentsMargins(0, 0, 0, 0)
+ self.body_layout.setSpacing(0)
+
+ # Statistics -----------------------------------------------------------
+ self.stats_widget = QWidget()
+ self.stats_layout = QVBoxLayout(self.stats_widget)
+ self.stats_layout.setContentsMargins(0, 0, 0, 0)
+ self.stats_layout.setSpacing(12)
+
+ self.stats_label = QLabel(f"{Translations['library_info.stats']}
")
+ self.stats_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
+
+ self.stats_grid: QWidget = QWidget()
+ self.stats_grid_layout: QGridLayout = QGridLayout(self.stats_grid)
+ self.stats_grid_layout.setContentsMargins(0, 0, 0, 0)
+ self.stats_grid_layout.setSpacing(0)
+ self.stats_grid_layout.setColumnMinimumWidth(1, 12)
+ self.stats_grid_layout.setColumnMinimumWidth(3, 12)
+
+ self.entries_row: int = 0
+ self.tags_row: int = 1
+ self.fields_row: int = 2
+ self.namespaces_row: int = 3
+ self.colors_row: int = 4
+ self.macros_row: int = 5
+
+ self.labels_col: int = 0
+ self.values_col: int = 2
+ self.buttons_col: int = 4
+
+ self.entries_label: QLabel = QLabel(Translations["library_info.stats.entries"])
+ self.entries_label.setAlignment(cell_alignment)
+ self.tags_label: QLabel = QLabel(Translations["library_info.stats.tags"])
+ self.tags_label.setAlignment(cell_alignment)
+ self.fields_label: QLabel = QLabel(Translations["library_info.stats.fields"])
+ self.fields_label.setAlignment(cell_alignment)
+ self.namespaces_label: QLabel = QLabel(Translations["library_info.stats.namespaces"])
+ self.namespaces_label.setAlignment(cell_alignment)
+ self.colors_label: QLabel = QLabel(Translations["library_info.stats.colors"])
+ self.colors_label.setAlignment(cell_alignment)
+ self.macros_label: QLabel = QLabel(Translations["library_info.stats.macros"])
+ self.macros_label.setAlignment(cell_alignment)
+
+ self.stats_grid_layout.addWidget(self.entries_label, self.entries_row, self.labels_col)
+ self.stats_grid_layout.addWidget(self.tags_label, self.tags_row, self.labels_col)
+ self.stats_grid_layout.addWidget(self.fields_label, self.fields_row, self.labels_col)
+ self.stats_grid_layout.addWidget(
+ self.namespaces_label, self.namespaces_row, self.labels_col
+ )
+ self.stats_grid_layout.addWidget(self.colors_label, self.colors_row, self.labels_col)
+ self.stats_grid_layout.addWidget(self.macros_label, self.macros_row, self.labels_col)
+
+ self.stats_grid_layout.setRowMinimumHeight(self.entries_row, row_height)
+ self.stats_grid_layout.setRowMinimumHeight(self.tags_row, row_height)
+ self.stats_grid_layout.setRowMinimumHeight(self.fields_row, row_height)
+ self.stats_grid_layout.setRowMinimumHeight(self.namespaces_row, row_height)
+ self.stats_grid_layout.setRowMinimumHeight(self.colors_row, row_height)
+ self.stats_grid_layout.setRowMinimumHeight(self.macros_row, row_height)
+
+ self.entry_count_label: QLabel = QLabel()
+ self.entry_count_label.setAlignment(cell_alignment)
+ self.tag_count_label: QLabel = QLabel()
+ self.tag_count_label.setAlignment(cell_alignment)
+ self.field_count_label: QLabel = QLabel()
+ self.field_count_label.setAlignment(cell_alignment)
+ self.namespaces_count_label: QLabel = QLabel()
+ self.namespaces_count_label.setAlignment(cell_alignment)
+ self.color_count_label: QLabel = QLabel()
+ self.color_count_label.setAlignment(cell_alignment)
+ self.macros_count_label: QLabel = QLabel()
+ self.macros_count_label.setAlignment(cell_alignment)
+
+ self.stats_grid_layout.addWidget(self.entry_count_label, self.entries_row, self.values_col)
+ self.stats_grid_layout.addWidget(self.tag_count_label, self.tags_row, self.values_col)
+ self.stats_grid_layout.addWidget(self.field_count_label, self.fields_row, self.values_col)
+ self.stats_grid_layout.addWidget(
+ self.namespaces_count_label, self.namespaces_row, self.values_col
+ )
+ self.stats_grid_layout.addWidget(self.color_count_label, self.colors_row, self.values_col)
+ self.stats_grid_layout.addWidget(self.macros_count_label, self.macros_row, self.values_col)
+
+ self.manage_tags_button = QPushButton(Translations["edit.tag_manager"])
+ self.manage_colors_button = QPushButton(Translations["color_manager.title"])
+
+ self.stats_grid_layout.addWidget(self.manage_tags_button, self.tags_row, self.buttons_col)
+ self.stats_grid_layout.addWidget(
+ self.manage_colors_button, self.colors_row, self.buttons_col
+ )
+
+ self.stats_layout.addWidget(self.stats_label)
+ self.stats_layout.addWidget(self.stats_grid)
+
+ self.body_layout.addSpacerItem(
+ QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
+ )
+ self.body_layout.addWidget(self.stats_widget)
+ self.body_layout.addSpacerItem(
+ QSpacerItem(0, 0, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
+ )
+
+ # Buttons
+ self.button_container = QWidget()
+ self.button_layout = QHBoxLayout(self.button_container)
+ self.button_layout.setContentsMargins(6, 6, 6, 6)
+ self.button_layout.addStretch(1)
+
+ self.close_button = QPushButton(Translations["generic.close"])
+ self.button_layout.addWidget(self.close_button)
+
+ # Add to root layout ---------------------------------------------------
+ self.root_layout.addWidget(self.title_label)
+ self.root_layout.addWidget(self.body_widget)
+ self.root_layout.addStretch(1)
+ self.root_layout.addStretch(2)
+ self.root_layout.addWidget(self.button_container)
diff --git a/src/tagstudio/qt/widgets/migration_modal.py b/src/tagstudio/qt/widgets/migration_modal.py
index 765c782a..3702fbb4 100644
--- a/src/tagstudio/qt/widgets/migration_modal.py
+++ b/src/tagstudio/qt/widgets/migration_modal.py
@@ -119,8 +119,8 @@ class JsonMigrationModal(QObject):
self.match_text: str = Translations["json_migration.heading.match"]
self.differ_text: str = Translations["json_migration.heading.differ"]
- entries_text: str = Translations["json_migration.heading.entires"]
- tags_text: str = Translations["json_migration.heading.tags"]
+ entries_text: str = Translations["library_info.stats.entries"]
+ tags_text: str = Translations["library_info.stats.tags"]
names_text: str = tab + Translations["json_migration.heading.names"]
shorthand_text: str = tab + Translations["json_migration.heading.shorthands"]
parent_tags_text: str = tab + Translations["json_migration.heading.parent_tags"]
@@ -130,7 +130,7 @@ class JsonMigrationModal(QObject):
ext_type_text: str = Translations["json_migration.heading.extension_list_type"]
desc_text: str = Translations["json_migration.description"]
path_parity_text: str = tab + Translations["json_migration.heading.paths"]
- field_parity_text: str = tab + Translations["json_migration.heading.fields"]
+ field_parity_text: str = tab + Translations["library_info.stats.fields"]
self.entries_row: int = 0
self.path_row: int = 1
diff --git a/src/tagstudio/resources/translations/de.json b/src/tagstudio/resources/translations/de.json
index c2a5e886..f7d1007b 100644
--- a/src/tagstudio/resources/translations/de.json
+++ b/src/tagstudio/resources/translations/de.json
@@ -150,16 +150,13 @@
"json_migration.heading.aliases": "Aliase:",
"json_migration.heading.colors": "Farben:",
"json_migration.heading.differ": "Diskrepanz",
- "json_migration.heading.entires": "Einträge:",
"json_migration.heading.extension_list_type": "Erweiterungslistentyp:",
- "json_migration.heading.fields": "Felder:",
"json_migration.heading.file_extension_list": "Liste der Dateiendungen:",
"json_migration.heading.match": "Übereinstimmend",
"json_migration.heading.names": "Namen:",
"json_migration.heading.parent_tags": "Übergeordnete Tags:",
"json_migration.heading.paths": "Pfade:",
"json_migration.heading.shorthands": "Kurzformen:",
- "json_migration.heading.tags": "Tags:",
"json_migration.info.description": "Bibliotheksdaten, welche mit TagStudio-Versionen 9.4 und niedriger erstellt wurden, müssen in das neue Format v9.5+ migriert werden.
Was du wissen solltest:
- Deine bestehenden Bibliotheksdaten werden NICHT gelöscht.
- Deine persönlichen Dateien werden NICHT gelöscht, verschoben oder verändert.
- Das neue Format v9.5+ kann nicht von früheren TagStudio-Versionen geöffnet werden.
",
"json_migration.migrating_files_entries": "Migriere {entries:,d} Dateieinträge...",
"json_migration.migration_complete": "Migration abgeschlossen!",
@@ -169,6 +166,9 @@
"json_migration.title.new_lib": "v9.5+ Bibliothek
",
"json_migration.title.old_lib": "v9.4 Bibliothek
",
"landing.open_create_library": "Bibliothek öffnen/erstellen {shortcut}",
+ "library_info.stats.entries": "Einträge:",
+ "library_info.stats.fields": "Felder:",
+ "library_info.stats.tags": "Tags:",
"library.field.add": "Feld hinzufügen",
"library.field.confirm_remove": "Wollen Sie dieses \"{name}\" Feld wirklich entfernen?",
"library.field.mixed_data": "Gemischte Daten",
diff --git a/src/tagstudio/resources/translations/en.json b/src/tagstudio/resources/translations/en.json
index 57bd2588..11b59878 100644
--- a/src/tagstudio/resources/translations/en.json
+++ b/src/tagstudio/resources/translations/en.json
@@ -150,16 +150,13 @@
"json_migration.heading.aliases": "Aliases:",
"json_migration.heading.colors": "Colors:",
"json_migration.heading.differ": "Discrepancy",
- "json_migration.heading.entires": "Entries:",
"json_migration.heading.extension_list_type": "Extension List Type:",
- "json_migration.heading.fields": "Fields:",
"json_migration.heading.file_extension_list": "File Extension List:",
"json_migration.heading.match": "Matched",
"json_migration.heading.names": "Names:",
"json_migration.heading.parent_tags": "Parent Tags:",
"json_migration.heading.paths": "Paths:",
"json_migration.heading.shorthands": "Shorthands:",
- "json_migration.heading.tags": "Tags:",
"json_migration.info.description": "Library save files created with TagStudio versions 9.4 and below will need to be migrated to the new v9.5+ format.
What you need to know:
- Your existing library save file will NOT be deleted
- Your personal files will NOT be deleted, moved, or modified
- The new v9.5+ save format can not be opened in earlier versions of TagStudio
What's changed:
- \"Tag Fields\" have been replaced by \"Tag Categories\". Instead of adding tags to fields first, tags now get added directly to file entries. They're then automatically organized into categories based on parent tags marked with the new \"Is Category\" property in the tag editing menu. Any tag can be marked as a category, and child tags will sort themselves underneath parent tags marked as categories. The \"Favorite\" and \"Archived\" tags now inherit from a new \"Meta Tags\" tag which is marked as a category by default.
- Tag colors have been tweaked and expanded upon. Some colors have been renamed or consolidated, however all tag colors will still convert to exact or close matches in v9.5.
",
"json_migration.migrating_files_entries": "Migrating {entries:,d} File Entries...",
"json_migration.migration_complete_with_discrepancies": "Migration Complete, Discrepancies Found",
@@ -169,6 +166,14 @@
"json_migration.title.old_lib": "v9.4 Library
",
"json_migration.title": "Save Format Migration: \"{path}\"",
"landing.open_create_library": "Open/Create Library {shortcut}",
+ "library_info.stats.colors": "Tag Colors:",
+ "library_info.stats.entries": "Entries:",
+ "library_info.stats.fields": "Fields:",
+ "library_info.stats.macros": "Macros:",
+ "library_info.stats.namespaces": "Namespaces:",
+ "library_info.stats.tags": "Tags:",
+ "library_info.stats": "Statistics",
+ "library_info.title": "Library '{library_dir}'",
"library_object.name_required": "Name (Required)",
"library_object.name": "Name",
"library_object.slug_required": "ID Slug (Required)",
@@ -219,6 +224,7 @@
"menu.tools": "&Tools",
"menu.view.decrease_thumbnail_size": "Decrease Thumbnail Size",
"menu.view.increase_thumbnail_size": "Increase Thumbnail Size",
+ "menu.view.library_info": "Library &Information",
"menu.view": "&View",
"menu.window": "Window",
"namespace.create.description_color": "Tag colors use namespaces as color palette groups. All custom colors must be under a namespace group first.",
diff --git a/src/tagstudio/resources/translations/es.json b/src/tagstudio/resources/translations/es.json
index 9a66f017..4662be2e 100644
--- a/src/tagstudio/resources/translations/es.json
+++ b/src/tagstudio/resources/translations/es.json
@@ -150,16 +150,13 @@
"json_migration.heading.aliases": "Alias:",
"json_migration.heading.colors": "Colores:",
"json_migration.heading.differ": "Discrepancia",
- "json_migration.heading.entires": "Entradas:",
"json_migration.heading.extension_list_type": "Tipo de lista de extensión:",
- "json_migration.heading.fields": "Campos:",
"json_migration.heading.file_extension_list": "Lista de extensiones de archivos:",
"json_migration.heading.match": "Igualado",
"json_migration.heading.names": "Nombres:",
"json_migration.heading.parent_tags": "Etiquetas principales:",
"json_migration.heading.paths": "Rutas:",
"json_migration.heading.shorthands": "Abreviaturas:",
- "json_migration.heading.tags": "Etiquetas:",
"json_migration.info.description": "Los archivos de guardado de la biblioteca con una versión de TagStudio 9.4 e inferior se tendrán que migrar al nuevo formato de la versión v9.5+.
Lo que necesitas saber:
- Tu archivo de guardado de la biblioteca NO se eliminará
- Tus archivos personales NO se eliminarán, moverán, o modificarán
- El archivo con el formato de la nueva v9.5+ no se puede abrir en versiones anteriores de TagStudio
Qué ha cambiado:
- \"Etiquetas Campo\" se han sustituido por \"Etiquetas Categoría\". En vez de añadir campos primero, las etiquetas se añadirán directamente a las entradas de los archivos. Después se organizarán automáticamente en categorías basándose en las etiquetas padre marcadas con la nueva propiedad \"Es Categoría\" en el menú de edición de etiquetas. Cualquier etiqueta se puede marcar como categoría, y las etiquetas hija se ordenarán a sí mismas bajo las etiquetas padre marcadas como categoría. Las etiquetas \"Favorito\" y \"Archivado\" ahora heredan de una \"Metaetiqueta\", que están marcadas por defecto como una categoría.
- Los colores de las etiquetas se han modificado y ampliado. Algunos colores se han renombrado o consolidado, aun así, todas las etiquetas de colores se transformarán al mismo color o similar en la versión v9.5.
",
"json_migration.migrating_files_entries": "Migrando {entries:,d} entradas de archivos...",
"json_migration.migration_complete": "¡Migración completada!",
@@ -169,6 +166,9 @@
"json_migration.title.new_lib": "v9.5+ biblioteca
",
"json_migration.title.old_lib": "v9.4 biblioteca
",
"landing.open_create_library": "Abrir/Crear biblioteca {shortcut}",
+ "library_info.stats.entries": "Entradas:",
+ "library_info.stats.fields": "Campos:",
+ "library_info.stats.tags": "Etiquetas:",
"library.field.add": "Añadir campo",
"library.field.confirm_remove": "¿Está seguro de que desea eliminar el campo \"{name}\"?",
"library.field.mixed_data": "Datos variados",
diff --git a/src/tagstudio/resources/translations/fil.json b/src/tagstudio/resources/translations/fil.json
index 999606ee..675f2516 100644
--- a/src/tagstudio/resources/translations/fil.json
+++ b/src/tagstudio/resources/translations/fil.json
@@ -150,16 +150,13 @@
"json_migration.heading.aliases": "Mga alyas:",
"json_migration.heading.colors": "Mga kulay:",
"json_migration.heading.differ": "May pagkakaiba",
- "json_migration.heading.entires": "Mga entry:",
"json_migration.heading.extension_list_type": "Uri ng Listahan ng Extension:",
- "json_migration.heading.fields": "Mga Field:",
"json_migration.heading.file_extension_list": "Listahan ng Mga File Extension:",
"json_migration.heading.match": "Tumutugma",
"json_migration.heading.names": "Mga pangalan:",
"json_migration.heading.parent_tags": "Mga parent tag:",
"json_migration.heading.paths": "Mga path:",
"json_migration.heading.shorthands": "Mga shorthand:",
- "json_migration.heading.tags": "Mga tag:",
"json_migration.info.description": "Ang mga library save file na ginawa gamit ng mga bersyon ng TagStudio na 9.4 at mas-mababa ay kailangang i-migrate sa bagong 9.5+ format.
Ano ang dapat mong alamin:
- Ang iyong umiiral na library save a HINDI buburahin
- Ang iyong mga personal na file ay HINDI buburahin, ililipat, o babaguhin
- Ang bagong 9.5+ save format ay hindi mabubuksan ng mga lumang bersyon ng TagStudio
Ano ang nagbago:
- Ang \"Mga Field ng Tag\" ay pinalitan sa \"Mga Kategorya ng Tag\". Sa halip ng pagdagdag ng mga tag sa mga field muna, ang mga tag ay direkta nang dinadagdag sa mga file entry. Awtomatiko din silang isasaayos sa mga kategorya base sa mga parent tag na nakamarka bilang \"Isang Kategorya\" na property sa menu ng pag-edit ng tag. Maaring markahan bilang kategorya ang anumang tag, at ang mga child tag ay isasaayos ang sarili nila sa ilalim ng mga parent tag na nakamarka bilang kategorya. Ang \"Paborito\" at \"Naka-archive\" na tag ay magmamana na sa bagong \"Mga Meta Tag\" na tag na nakamarka bilang kategorya bilang default.
- Ang mga kulay ng tag ay na-tweak at pinalawak sa. Ang ilang mga kulay ay na-rename o pinagsama-sama, ngunit ang lahat ng mga kulay ng tag ay mako-convert pa rin sa eksakto o malapit na pagkatugma sa v9.5.
",
"json_migration.migrating_files_entries": "Nililipat ang {entries:,d} mga File Entry…",
"json_migration.migration_complete": "Tapos na ang Pag-migrate!",
@@ -169,6 +166,9 @@
"json_migration.title.new_lib": "v9.5+ na Library
",
"json_migration.title.old_lib": "v9.4 na Library
",
"landing.open_create_library": "Buksan/Gumawa ng Library {shortcut}",
+ "library_info.stats.entries": "Mga entry:",
+ "library_info.stats.fields": "Mga Field:",
+ "library_info.stats.tags": "Mga tag:",
"library.field.add": "Magdagdag ng Field",
"library.field.confirm_remove": "Sigurado ka ba gusto mo tanggalin ang field na \"{name}\"?",
"library.field.mixed_data": "Halo-halong Data",
diff --git a/src/tagstudio/resources/translations/fr.json b/src/tagstudio/resources/translations/fr.json
index d2181f53..6bd43341 100644
--- a/src/tagstudio/resources/translations/fr.json
+++ b/src/tagstudio/resources/translations/fr.json
@@ -150,16 +150,13 @@
"json_migration.heading.aliases": "Alias :",
"json_migration.heading.colors": "Couleurs :",
"json_migration.heading.differ": "Divergence",
- "json_migration.heading.entires": "Entrées :",
"json_migration.heading.extension_list_type": "Type de liste d'extension :",
- "json_migration.heading.fields": "Champs :",
"json_migration.heading.file_extension_list": "Liste des extensions de fichiers :",
"json_migration.heading.match": "Correspondant",
"json_migration.heading.names": "Noms :",
"json_migration.heading.parent_tags": "Tags Parents :",
"json_migration.heading.paths": "Chemins :",
"json_migration.heading.shorthands": "Abréviations :",
- "json_migration.heading.tags": "Tags :",
"json_migration.info.description": "Les fichiers de sauvegarde de bibliothèque créés avec les versions 9.4 et inférieures de TagStudio devront être migrés vers le nouveau format v9.5+.
Ce que vous devez savoir:
- Votre fichier de sauvegarde de bibliothèque existant ne sera PAS supprimé
- Vos fichiers personnels ne seront PAS supprimés, déplacés ou modifié
- Le nouveau format de sauvegarde v9.5+ ne peut pas être ouvert dans les versions antérieures de TagStudio
Ce qui a changé:
- Les \"Tag Fields\" ont été remplacés par \"Tag Categories\". Au lieu d’ajouter d’abord des Tags aux Champs, les Tags sont désormais ajoutées directement aux entrées de fichier. Ils sont ensuite automatiquement organisés en catégories basées sur les tags parent marquées avec la nouvelle propriété \"Is Category\" dans le menu d'édition des tags. N'importe quelle tag peut être marquée comme catégorie, et les tags enfants seront triées sous les tags parents marquées comme catégories. Les tags « Favoris » et « Archivés » héritent désormais d'un nouveaux tag \"Meta Tags\" qui est marquée comme catégorie par défaut.
- La couleur des tags à été modifiées et développées. Certaines couleurs ont été renommées ou consolidées, mais toutes les couleurs des tags seront toujours converties en correspondances exactes ou proches dans la version 9.5.
",
"json_migration.migrating_files_entries": "Migration de {entries:,d} entrées de fichier.",
"json_migration.migration_complete": "Migration Terminée!",
@@ -169,6 +166,9 @@
"json_migration.title.new_lib": "Bibliothèque v9.5+
",
"json_migration.title.old_lib": "Bibliothèque v9.4
",
"landing.open_create_library": "Ouvrir/Créer une Bibliothèque {shortcut}",
+ "library_info.stats.entries": "Entrées :",
+ "library_info.stats.fields": "Champs :",
+ "library_info.stats.tags": "Tags :",
"library.field.add": "Ajouter un Champ",
"library.field.confirm_remove": "Êtes-vous sûr de vouloir supprimer le champ \"{name}\"?",
"library.field.mixed_data": "Données Mélangées",
diff --git a/src/tagstudio/resources/translations/hu.json b/src/tagstudio/resources/translations/hu.json
index befde243..8f82afd0 100644
--- a/src/tagstudio/resources/translations/hu.json
+++ b/src/tagstudio/resources/translations/hu.json
@@ -150,16 +150,13 @@
"json_migration.heading.aliases": "Áljelek:",
"json_migration.heading.colors": "Színek:",
"json_migration.heading.differ": "Eltérés",
- "json_migration.heading.entires": "Elemek:",
"json_migration.heading.extension_list_type": "Kiterjesztési lista típusa:",
- "json_migration.heading.fields": "Mezők:",
"json_migration.heading.file_extension_list": "Fájlkiterjesztési lista:",
"json_migration.heading.match": "Egységesítve",
"json_migration.heading.names": "Nevek:",
"json_migration.heading.parent_tags": "Szülőcímkék:",
"json_migration.heading.paths": "Elérési utak:",
"json_migration.heading.shorthands": "Rövidítések:",
- "json_migration.heading.tags": "Címkék:",
"json_migration.info.description": "A TagStudio 9.4 és korábbi verzióival készült könyvtárakat át kell alakítani a program 9.5 és afölötti verzióval kompatibilis formátummá.
Tudnivalók:
- Az Ön létező könyvtára NEM lesz törölve.
- Az Ön személyes fájljait NEM fogjuk törölni, áthelyezni vagy módosítani.
- Az új formátumot a TagStudio korábbi verzióiban nem lehet megnyitni.
Változások:
- A „címkemezők” „címkekategórákra” lettek kicserélve. A címkék mezőkbe való rendezése helyett mostantól közvetlenül a könyvtárelemekhez lesznek hozzárendelve. Ezután automatikusan kategórákba lesznek rendezve a Kategória-tulajdonsággal felruházott szülőcímkék alá. Bármely címke lehet szülőkategória és a gyermekkategóriák alá lesznek rendelve. Létrehoztunk egy új kategóriát Metacímkék néven, ami alatt az alapértelmezett Kedvenc- és Archivált-címkék szerepelnek.
- A címkeszíneket egy kicsit átrendeztük és bővítettük a kínálatot. Vannak bizonyos színek, amelyeket átneveztünk vagy egybeolvasztottunk, de a program 9.5-ös verziójában minden ilyen átalakított szín legalább hasonlóan fog kinézni a korábbiakhoz képest.
",
"json_migration.migrating_files_entries": "{entries:,d} elem átalakítása folyamatban…",
"json_migration.migration_complete": "Az átalakítási folyamat sikeresen befejeződött!",
@@ -169,6 +166,9 @@
"json_migration.title.new_lib": "9.5 és afölötti könyvtár
",
"json_migration.title.old_lib": "9.4-es könyvtár
",
"landing.open_create_library": "Könyvtár meg&nyitása/létrehozása {shortcut}",
+ "library_info.stats.entries": "Elemek:",
+ "library_info.stats.fields": "Mezők:",
+ "library_info.stats.tags": "Címkék:",
"library.field.add": "Új mező",
"library.field.confirm_remove": "Biztosan el akarja távolítani a(z) „{name}”-mezőt?",
"library.field.mixed_data": "Kevert adatok",
diff --git a/src/tagstudio/resources/translations/ja.json b/src/tagstudio/resources/translations/ja.json
index 66079b49..71ca8bb5 100644
--- a/src/tagstudio/resources/translations/ja.json
+++ b/src/tagstudio/resources/translations/ja.json
@@ -150,16 +150,13 @@
"json_migration.heading.aliases": "エイリアス:",
"json_migration.heading.colors": "色:",
"json_migration.heading.differ": "差異",
- "json_migration.heading.entires": "エントリ:",
"json_migration.heading.extension_list_type": "拡張子リストの種類:",
- "json_migration.heading.fields": "フィールド:",
"json_migration.heading.file_extension_list": "ファイルの拡張子リスト:",
"json_migration.heading.match": "一致",
"json_migration.heading.names": "名前:",
"json_migration.heading.parent_tags": "親タグ:",
"json_migration.heading.paths": "パス:",
"json_migration.heading.shorthands": "略称:",
- "json_migration.heading.tags": "タグ:",
"json_migration.info.description": "TagStudio バージョン9.4 以前で作成されたライブラリ保存ファイルは、新しいバージョン9.5 以降の形式に移行する必要があります。
ご確認ください:
- 既存のライブラリ保存ファイルが削除されることはありません
- 個人ファイルが削除・移動・変更されることはありません
- 新しい v9.5 以降の保存形式は、旧バージョンの TagStudio では開くことができません
変更点:
- 「タグ フィールド」は「タグ カテゴリ」に置き換えられました。従来のようにタグを先にフィールドに追加するのではなく、タグを直接ファイル エントリに追加します。その後、タグ編集メニューで「カテゴリとして扱う」プロパティが有効になっている親タグに基づいて、タグが自動的にカテゴリとして整理されます。どのタグでもカテゴリとして指定でき、カテゴリに指定された親タグの下に子タグが自動で整理されます。「お気に入り」タグおよび「アーカイブ」タグは、新しく追加された「メタタグ」というデフォルトのカテゴリ タグの下に分類されます。
- タグの色が調整・拡張されました。一部の色は名前が変更されたり統合されたりしましたが、すべてのタグの色は v9.5 において同一または類似の色に変換されます。
",
"json_migration.migrating_files_entries": "{entries} 件のファイル エントリを移行しています...",
"json_migration.migration_complete": "移行が完了しました!",
@@ -169,6 +166,9 @@
"json_migration.title.new_lib": "v9.5+ ライブラリ
",
"json_migration.title.old_lib": "v9.4 ライブラリ
",
"landing.open_create_library": "ライブラリを開く/作成する {shortcut}",
+ "library_info.stats.entries": "エントリ:",
+ "library_info.stats.fields": "フィールド:",
+ "library_info.stats.tags": "タグ:",
"library.field.add": "フィールドの追加",
"library.field.confirm_remove": "「{name}」フィールドを削除してもよろしいですか?",
"library.field.mixed_data": "混在データ",
diff --git a/src/tagstudio/resources/translations/nb_NO.json b/src/tagstudio/resources/translations/nb_NO.json
index edb027da..c2c2395b 100644
--- a/src/tagstudio/resources/translations/nb_NO.json
+++ b/src/tagstudio/resources/translations/nb_NO.json
@@ -150,16 +150,13 @@
"json_migration.heading.aliases": "Alternative navn:",
"json_migration.heading.colors": "Farger:",
"json_migration.heading.differ": "Avvik",
- "json_migration.heading.entires": "Oppføringer:",
"json_migration.heading.extension_list_type": "Type av Utvidelsesliste:",
- "json_migration.heading.fields": "Felter:",
"json_migration.heading.file_extension_list": "Filutvidelse Liste:",
"json_migration.heading.match": "Matchet",
"json_migration.heading.names": "Navn:",
"json_migration.heading.parent_tags": "Overordnede Etiketter:",
"json_migration.heading.paths": "Baner:",
"json_migration.heading.shorthands": "Forkortelser:",
- "json_migration.heading.tags": "Etiketter:",
"json_migration.info.description": "Lagringsfiler til biblioteket lagetr med TagStudio av versjoner 9.4 eller under må bli migrert ti ldet nye v9.5+ formatet.
Hva du trenger å vite:
- Din eksisterende lagringsfil vil ikke bli slettet
- Dine personlige filer vil IKKE bli slettet, flyttet, eller modifisert
- Det nye v9.5+ lagringsformatet kan ikke bli åpnet i tidligere versjoner av TagStudio
Hva som har endret seg:
- \"Etikettfelter\" har blitt erstattet av \"Etikettkategorier\". I stedet for å legge til etiketter til felter, så legges etiketter direkte til filoppføringen. De vil da bli automatisk organisert i kategorier basert på overordnede etiketter markert med den nye \"Er Kategori\" egenskapen i etikettredigeringsmenyen. Enhver etikett kan bli markert som en kategori, og underordnede etiketter vil sortere seg selv under overordnede etiketter som er markert som kategorier. \"Favoritt\" og \"Arkivert\" etikettene er nå underordnet en ny \"Meta-Etiketter\" etikett som er markert som en kategori automatisk.
- Etikettfarger har blitt finjustert og utvidet. Enkelte farger har fått nytt navn eller blitt slått sammen, men alle etikettfarger vil fortsatt bli konvertert til eksakte eller lignende farger i v9.5.
",
"json_migration.migrating_files_entries": "Migrerer {entries:,d} Filoppføringer...",
"json_migration.migration_complete": "Migrering Ferdig!",
@@ -169,6 +166,9 @@
"json_migration.title.new_lib": "v9.5+ Bibliotek
",
"json_migration.title.old_lib": "v9.4 Bibliotek
",
"landing.open_create_library": "Åpne/Lag nytt Bibliotek {shortcut}",
+ "library_info.stats.entries": "Oppføringer:",
+ "library_info.stats.fields": "Felter:",
+ "library_info.stats.tags": "Etiketter:",
"library.field.add": "Legg til felt",
"library.field.confirm_remove": "Fjern dette «\"{name}\"»-feltet?",
"library.field.mixed_data": "Blandet data",
diff --git a/src/tagstudio/resources/translations/nl.json b/src/tagstudio/resources/translations/nl.json
index 396e8e9b..b4d9293c 100644
--- a/src/tagstudio/resources/translations/nl.json
+++ b/src/tagstudio/resources/translations/nl.json
@@ -79,13 +79,13 @@
"json_migration.finish_migration": "Migratie Afronden",
"json_migration.heading.aliases": "Aliassen:",
"json_migration.heading.colors": "Kleuren:",
- "json_migration.heading.fields": "Velden:",
"json_migration.heading.names": "Namen:",
"json_migration.heading.paths": "Paden:",
"json_migration.heading.shorthands": "Afkortingen:",
- "json_migration.heading.tags": "Labels:",
"json_migration.migration_complete": "Migratie Afgerond!",
"json_migration.title": "Migratie Formaat Opslaan: \"{path}\"",
+ "library_info.stats.fields": "Velden:",
+ "library_info.stats.tags": "Labels:",
"library.field.add": "Veld Toevoegen",
"library.field.mixed_data": "Gemixte Data",
"library.field.remove": "Veld Weghalen",
diff --git a/src/tagstudio/resources/translations/pl.json b/src/tagstudio/resources/translations/pl.json
index 64d72f49..d0ed6b07 100644
--- a/src/tagstudio/resources/translations/pl.json
+++ b/src/tagstudio/resources/translations/pl.json
@@ -149,16 +149,13 @@
"json_migration.heading.aliases": "Zastępcze nazwy:",
"json_migration.heading.colors": "Kolory:",
"json_migration.heading.differ": "Niezgodność",
- "json_migration.heading.entires": "Wpisy:",
"json_migration.heading.extension_list_type": "Typ listy rozszerzeń:",
- "json_migration.heading.fields": "Pola:",
"json_migration.heading.file_extension_list": "Lista rozszerzeń plików:",
"json_migration.heading.match": "Dopasowane",
"json_migration.heading.names": "Nazwy:",
"json_migration.heading.parent_tags": "Tagi nadrzędne:",
"json_migration.heading.paths": "Ścieżki:",
"json_migration.heading.shorthands": "Skróty:",
- "json_migration.heading.tags": "Tagi:",
"json_migration.migrating_files_entries": "Migrowanie {entries:,d} wpisów plików...",
"json_migration.migration_complete": "Migrowanie skończone!",
"json_migration.migration_complete_with_discrepancies": "Migrowanie skończone, znaleziono niezgodności",
@@ -167,6 +164,9 @@
"json_migration.title.new_lib": "Biblioteka v9.5+
",
"json_migration.title.old_lib": "Biblioteka v9.4
",
"landing.open_create_library": "Otwórz/Stwórz bibliotekę {shortcut}",
+ "library_info.stats.entries": "Wpisy:",
+ "library_info.stats.fields": "Pola:",
+ "library_info.stats.tags": "Tagi:",
"library.field.add": "Dodaj pole",
"library.field.confirm_remove": "Jesteś pewien że chcesz usunąć pole \"{name}\" ?",
"library.field.mixed_data": "Mieszane dane",
diff --git a/src/tagstudio/resources/translations/pt_BR.json b/src/tagstudio/resources/translations/pt_BR.json
index dcdfba70..f7f00fed 100644
--- a/src/tagstudio/resources/translations/pt_BR.json
+++ b/src/tagstudio/resources/translations/pt_BR.json
@@ -141,12 +141,9 @@
"json_migration.heading.aliases": "Pseudônimos:",
"json_migration.heading.colors": "Cores:",
"json_migration.heading.differ": "Discrepância",
- "json_migration.heading.entires": "Registros:",
- "json_migration.heading.fields": "Campos:",
"json_migration.heading.file_extension_list": "Lista de Extensão de Arquivo:",
"json_migration.heading.names": "Nomes:",
"json_migration.heading.parent_tags": "Tags Pai:",
- "json_migration.heading.tags": "Tags:",
"json_migration.migrating_files_entries": "Migrando {entries:,d} Registros de Arquivos...",
"json_migration.migration_complete": "Migração Concluída!",
"json_migration.migration_complete_with_discrepancies": "Migração Concluída, Discrepâncias Encontradas",
@@ -154,6 +151,9 @@
"json_migration.title.new_lib": "Biblioteca v9.5+
",
"json_migration.title.old_lib": "Biblioteca v9.4
",
"landing.open_create_library": "Abrir/Criar Biblioteca {shortcut}",
+ "library_info.stats.entries": "Registros:",
+ "library_info.stats.fields": "Campos:",
+ "library_info.stats.tags": "Tags:",
"library.field.add": "Adicionar Campo",
"library.field.confirm_remove": "Você tem certeza de que quer remover o campo \"{name}\"?",
"library.field.mixed_data": "Dados Mistos",
diff --git a/src/tagstudio/resources/translations/qpv.json b/src/tagstudio/resources/translations/qpv.json
index 4bfde58b..59f3fa08 100644
--- a/src/tagstudio/resources/translations/qpv.json
+++ b/src/tagstudio/resources/translations/qpv.json
@@ -147,16 +147,13 @@
"json_migration.heading.aliases": "Andrnamae:",
"json_migration.heading.colors": "Varge:",
"json_migration.heading.differ": "Tchigauzma",
- "json_migration.heading.entires": "Shiruzmakaban:",
"json_migration.heading.extension_list_type": "Fal fu taksanting tumam:",
- "json_migration.heading.fields": "Shiruzmafal:",
"json_migration.heading.file_extension_list": "Tumam fu mlafufal:",
"json_migration.heading.match": "Finnajena sama",
"json_migration.heading.names": "Namae:",
"json_migration.heading.parent_tags": "Atama festaretol:",
"json_migration.heading.paths": "Mlafuplas:",
"json_migration.heading.shorthands": "Namaenen:",
- "json_migration.heading.tags": "Festaretol:",
"json_migration.migrating_files_entries": "Ugoki {entries:,d} shiruzmakaban ima...",
"json_migration.migration_complete": "Ugokizma owari!",
"json_migration.migration_complete_with_discrepancies": "Ugokizma owari, chigauzma finnajena",
@@ -165,6 +162,9 @@
"json_migration.title.new_lib": "v9.5+ Mlafuhuomi
",
"json_migration.title.old_lib": "v9.4 Mlafuhuomi
",
"landing.open_create_library": "Auki/Maha mlafuhuomi {shortcut}",
+ "library_info.stats.entries": "Shiruzmakaban:",
+ "library_info.stats.fields": "Shiruzmafal:",
+ "library_info.stats.tags": "Festaretol:",
"library.field.add": "Nasii shiruzmafal",
"library.field.confirm_remove": "Du kestetsa afto \"{name}\" shiruzmafal we?",
"library.field.mixed_data": "Viskena shiruzma",
diff --git a/src/tagstudio/resources/translations/ru.json b/src/tagstudio/resources/translations/ru.json
index 04d6503c..3b93121f 100644
--- a/src/tagstudio/resources/translations/ru.json
+++ b/src/tagstudio/resources/translations/ru.json
@@ -150,16 +150,13 @@
"json_migration.heading.aliases": "Псевдонимы:",
"json_migration.heading.colors": "Цвета:",
"json_migration.heading.differ": "Несоответствие",
- "json_migration.heading.entires": "Записи:",
"json_migration.heading.extension_list_type": "Тип списка расширений:",
- "json_migration.heading.fields": "Поля:",
"json_migration.heading.file_extension_list": "Список расширений файлов:",
"json_migration.heading.match": "Совпало",
"json_migration.heading.names": "Имена:",
"json_migration.heading.parent_tags": "Родительские теги:",
"json_migration.heading.paths": "Пути:",
"json_migration.heading.shorthands": "Сокращения:",
- "json_migration.heading.tags": "Теги:",
"json_migration.info.description": "Файлы библиотеки, созданные в TagStudio версий 9.4 и ниже, необходимо перенести в новый формат v9.5+.Что важно знать:
- Ваш текущий файл библиотеки НЕ будет удалён
- Ваши личные файлы НЕ будут удалены, перемещены или изменены
- Новый формат сохранения v9.5+ несовместим с предыдущими версиями TagStudio
Что изменилось:
- \"Поля тегов\" заменены на \"Категории тегов\". Теперь теги добавляются напрямую к файлам, а не через поля, и автоматически организуются в категории на основе родительских тегов, отмеченных новым свойством \"Является категорией\" в меню редактирования тегов. Любой тег можно сделать категорией, а дочерние теги будут автоматически группироваться под родительскими тегами, помеченными как категории. Теги \"Избранное\" и \"Архив\" теперь наследуются от нового тега \"Мета-теги\", который по умолчанию помечен как категория.
- Цвета тегов были доработаны и расширены. Некоторые цвета переименованы или объединены, но все существующие цвета будут преобразованы в точные или близкие аналоги в v9.5.
",
"json_migration.migrating_files_entries": "Мигрируется {entries:,d} записей...",
"json_migration.migration_complete": "Миграция завершена!",
@@ -169,6 +166,9 @@
"json_migration.title.new_lib": "Библиотека версии 9.5+
",
"json_migration.title.old_lib": "Библиотека версии 9.4
",
"landing.open_create_library": "Открыть/создать библиотеку {shortcut}",
+ "library_info.stats.entries": "Записи:",
+ "library_info.stats.fields": "Поля:",
+ "library_info.stats.tags": "Теги:",
"library.field.add": "Добавить поле",
"library.field.confirm_remove": "Вы уверены, что хотите удалить поле \"{name}\"?",
"library.field.mixed_data": "Смешанные данные",
diff --git a/src/tagstudio/resources/translations/ta.json b/src/tagstudio/resources/translations/ta.json
index f2f935f0..43fc8190 100644
--- a/src/tagstudio/resources/translations/ta.json
+++ b/src/tagstudio/resources/translations/ta.json
@@ -150,16 +150,13 @@
"json_migration.heading.aliases": "மாற்றுப்பெயர்கள்:",
"json_migration.heading.colors": "நிறங்கள்:",
"json_migration.heading.differ": "முரண்பாடு",
- "json_migration.heading.entires": "உள்ளீடுகள்:",
"json_migration.heading.extension_list_type": "நீட்டிப்பு பட்டியல் வகை:",
- "json_migration.heading.fields": "புலங்கள்:",
"json_migration.heading.file_extension_list": "கோப்பு நீட்டிப்பு பட்டியல்:",
"json_migration.heading.match": "பொருந்தியது",
"json_migration.heading.names": "பெயர்கள்:",
"json_migration.heading.parent_tags": "பெற்றோர் குறிச்சொற்கள்:",
"json_migration.heading.paths": "பாதைகள்:",
"json_migration.heading.shorthands": "சுருக்கெழுத்து:",
- "json_migration.heading.tags": "குறிச்சொற்கள்:",
"json_migration.info.description": "டேக்ச்டுடியோ பதிப்புகளுடன் உருவாக்கப்பட்ட கோப்புகளை நூலகம் சேமிக்கவும் 9.4 மற்றும் கீழே புதிய v9.5+ வடிவத்திற்கு இடம்பெயர வேண்டும். இல்லை நீக்கப்பட வேண்டும், நகர்த்தப்படும் அல்லது மாற்றியமைக்கப்பட வேண்டும் - புதிய V9.5+ சேமிக்கும் வடிவமைப்பை டேக்ச்டுடியோவின் முந்தைய பதிப்புகளில் திறக்க முடியாது
என்ன மாற்றப்பட்டுள்ளது:
- \"குறிச்சொற்கள்\" குறிச்சொற்களால் மாற்றப்பட்டுள்ளன. முதலில் புலங்களில் குறிச்சொற்களைச் சேர்ப்பதற்கு பதிலாக, குறிச்சொற்கள் இப்போது கோப்பு உள்ளீடுகளில் நேரடியாக சேர்க்கப்படுகின்றன. குறிச்சொல் திருத்துதல் பட்டியலில் புதிய \"வகை\" சொத்துடன் குறிக்கப்பட்ட பெற்றோர் குறிச்சொற்களின் அடிப்படையில் அவை தானாகவே வகைகளாக ஒழுங்கமைக்கப்படுகின்றன. எந்தவொரு குறிச்சொல்லையும் ஒரு வகையாகக் குறிக்க முடியும், மேலும் குழந்தை குறிச்சொற்கள் வகைகளாக குறிக்கப்பட்ட பெற்றோர் குறிச்சொற்களுக்கு அடியில் தங்களை வரிசைப்படுத்தும். \"பிடித்த\" மற்றும் \"காப்பகப்படுத்தப்பட்ட\" குறிச்சொற்கள் இப்போது ஒரு புதிய \"மேவு குறிச்சொற்கள்\" குறிச்சொல்லிலிருந்து பெறப்படுகின்றன, இது இயல்புநிலையாக ஒரு வகையாக குறிக்கப்பட்டுள்ளது.
- குறிச்சொல் வண்ணங்கள் மாற்றப்பட்டு விரிவாக்கப்பட்டுள்ளன. சில வண்ணங்கள் மறுபெயரிடப்பட்டுள்ளன அல்லது ஒருங்கிணைக்கப்பட்டுள்ளன, இருப்பினும் எல்லா குறிச்சொல் வண்ணங்களும் V9.5 இல் உள்ள சரியான அல்லது நெருக்கமான போட்டிகளாக மாறும்.
",
"json_migration.migrating_files_entries": "இடம்பெயர்வு {entries:,d} கோப்பு உள்ளீடுகள் ...",
"json_migration.migration_complete": "இடம்பெயர்வு முடிந்தது!",
@@ -169,6 +166,9 @@
"json_migration.title.new_lib": " V9.5+ நூலகம்
",
"json_migration.title.old_lib": " V9.4 நூலகம்
",
"landing.open_create_library": "நூலகத்தைத் திறக்கவும்/உருவாக்கவும் {shortcut}",
+ "library_info.stats.entries": "உள்ளீடுகள்:",
+ "library_info.stats.fields": "புலங்கள்:",
+ "library_info.stats.tags": "குறிச்சொற்கள்:",
"library.field.add": "புலத்தைச் சேர்க்க",
"library.field.confirm_remove": "இந்த \"{name}\" புலத்தை நிச்சயமாக அகற்ற விரும்புகிறீர்களா?",
"library.field.mixed_data": "கலப்பு தரவு",
diff --git a/src/tagstudio/resources/translations/tok.json b/src/tagstudio/resources/translations/tok.json
index 95dcb69f..e2658e66 100644
--- a/src/tagstudio/resources/translations/tok.json
+++ b/src/tagstudio/resources/translations/tok.json
@@ -145,15 +145,12 @@
"json_migration.heading.aliases": "nimi ante:",
"json_migration.heading.colors": "kule:",
"json_migration.heading.differ": "ike",
- "json_migration.heading.entires": "ijo:",
- "json_migration.heading.fields": "ma:",
"json_migration.heading.file_extension_list": "kulupu pi namako lipu:",
"json_migration.heading.match": "sama",
"json_migration.heading.names": "nimi:",
"json_migration.heading.parent_tags": "poki mama:",
"json_migration.heading.paths": "nasin:",
"json_migration.heading.shorthands": "nimi lili:",
- "json_migration.heading.tags": "poki:",
"json_migration.info.description": "lipu awen tomo lon nanpa 9.4 en tawa li wile tawa nasin nanpa 9.5+ sin.
sina o sona e ni:
- lipu awen tomo sina lon li weka ala
- lipu pi jo sina li weka ala, li tawa ala, li ante ala
- sina ken ala open e nasin awen nanpa 9.5+ lon nanpa tawa pi ilo Tagstudio
seme li ante:
- mi kepeken ala \"ma poki\" li kepeken \"poki ijo poki\". sina pana ala e poki tawa ma, poki li tawa pana lipu. la mi lawa e ona tawa poki ijo tan poki mama pi nasin ijo \"poki ala poki\" lon ma pi poki ante. poki ale li ken poki ijo, en poki kili li lawa e ona sama lon anpa poki mama pi nasin ijo \"poki ijo\". poki \"Favorite\" en poki \"Archived\" li lon anpa poki \"Meta Tags\". meso la poki \"Meta Tags\" li poki ijo.
- kule poki li ante li suli. kule li nimi sin li lili, taso kule poki ala li ante tawa sama lon nanpa 9.5.
",
"json_migration.migrating_files_entries": "mi tawa e lipu {entries:,d}...",
"json_migration.migration_complete": "tawa li pini!",
@@ -163,6 +160,9 @@
"json_migration.title.new_lib": "tomo pi ilo nanpa 9.5+
",
"json_migration.title.old_lib": "tomo pi ilo nanpa 9.4
",
"landing.open_create_library": "o open anu pali sin e tomo {shortcut}",
+ "library_info.stats.entries": "ijo:",
+ "library_info.stats.fields": "ma:",
+ "library_info.stats.tags": "poki:",
"library.field.add": "o pana e ma",
"library.field.confirm_remove": "sina wile ala wile weka e ma \"{name}\" ni?",
"library.field.mixed_data": "sona nasa",
diff --git a/src/tagstudio/resources/translations/tr.json b/src/tagstudio/resources/translations/tr.json
index 35ed45cd..e2c801f8 100644
--- a/src/tagstudio/resources/translations/tr.json
+++ b/src/tagstudio/resources/translations/tr.json
@@ -146,16 +146,13 @@
"json_migration.heading.aliases": "Takma Adlar:",
"json_migration.heading.colors": "Renkler:",
"json_migration.heading.differ": "Uyuşmazlık",
- "json_migration.heading.entires": "Kayıtlar:",
"json_migration.heading.extension_list_type": "Uzantı Listesi Türü:",
- "json_migration.heading.fields": "Ek Bilgiler:",
"json_migration.heading.file_extension_list": "Dosya Uzantı Listesi:",
"json_migration.heading.match": "Eşleşti",
"json_migration.heading.names": "Adlar:",
"json_migration.heading.parent_tags": "Üst Etiketler:",
"json_migration.heading.paths": "Konumlar:",
"json_migration.heading.shorthands": "Kısaltmalar:",
- "json_migration.heading.tags": "Etiketler:",
"json_migration.info.description": "TagStudio'nun 9.4 ve altı sürümleriyle oluşturulan kütüphane kayıt dosyaları, yeni v9.5+ formatına dönüştürülmesi gerekecek.
Bilmeniz gerekenler:
- Mevcut kütüphane kayıt dosyanız SİLİNMEYECEK
- Kişisel dosyalarınız SİLİNMEYECEK, taşınmayacak veya değiştirilmeyecek
- Yeni v9.5+ kayıt formatı TagStudio'nun eski sürümlerinde açılamaz
Değişenler:
- \"Etiket Ek Bilgileri\" \"Etiket Kategorileri\" ile değiştirildi. Etiketler artık önce ek bilgilere eklenmek yerine doğrudan dosya kayıtlarına ekleniyor. Daha sonra, etiket düzenleme menüsünde yeni \"Kategori mi\" özelliğiyle işaretlenmiş üst etiketlere göre otomatik olarak kategorilere ayrılırlar. Herhangi bir etiket kategori olarak işaretlenebilir ve alt etiketler, kategori olarak işaretlenmiş üst etiketlerin altına yerleştirilir. \"Favori\" ve \"Arşivlenmiş\" etiketleri artık varsayılan olarak kategori olarak işaretlenmiş yeni bir \"Meta Etiketler\" etiketinden miras alıyor.
- Etiket renkleri ayarlandı ve genişletildi. Bazı renkler yeniden adlandırıldı veya birleştirildi, ancak tüm etiket renkleri hala v9.5'te tam veya yakın eşleşmelere dönüştürülecektir.
",
"json_migration.migrating_files_entries": "{entries:,d} Dosya Kaydı Dönüştürülüyor...",
"json_migration.migration_complete": "Dönüştürme Tamamlandı!",
@@ -165,6 +162,9 @@
"json_migration.title.new_lib": "v9.5+ Kütüphane
",
"json_migration.title.old_lib": "v9.4 Kütüphane
",
"landing.open_create_library": "Kütüphane Aç/Oluştur {shortcut}",
+ "library_info.stats.entries": "Kayıtlar:",
+ "library_info.stats.fields": "Ek Bilgiler:",
+ "library_info.stats.tags": "Etiketler:",
"library.field.add": "Ek Bilgi Ekle",
"library.field.confirm_remove": "Bu \"{name}\" ek bilgisini silmek istediğinden emin misin?",
"library.field.mixed_data": "Karışık Veri",
diff --git a/src/tagstudio/resources/translations/zh_Hans.json b/src/tagstudio/resources/translations/zh_Hans.json
index 52770550..e45b3698 100644
--- a/src/tagstudio/resources/translations/zh_Hans.json
+++ b/src/tagstudio/resources/translations/zh_Hans.json
@@ -150,16 +150,13 @@
"json_migration.heading.aliases": "别名:",
"json_migration.heading.colors": "颜色:",
"json_migration.heading.differ": "差异",
- "json_migration.heading.entires": "项目:",
"json_migration.heading.extension_list_type": "扩展名列表类型:",
- "json_migration.heading.fields": "字段:",
"json_migration.heading.file_extension_list": "文件扩展名列表:",
"json_migration.heading.match": "已匹配",
"json_migration.heading.names": "名字:",
"json_migration.heading.parent_tags": "上级标签:",
"json_migration.heading.paths": "路径:",
"json_migration.heading.shorthands": "缩写:",
- "json_migration.heading.tags": "标签:",
"json_migration.info.description": "在 TagStudio 9.4 和更早版本建立的仓库存档文件需要迁移至新的 v9.5+ 格式.
注意事项:
- 你现有的仓库存档文件不会被删除
- 您的个人文件不会被删除,移动或修改
- 新版 v9.5+ 仓库存档格式无法被早期 TagStudio 读取
主要变更:
- \"标签字段\"变更为\"标签分类\"。现在标签直接添加到文件条目,而非先添加至字段。系统会根据标签编辑菜单中标记为\"作为分类\"的父标签自动归类成普通标签和分类标签。任何标签都可设为分类标签,子标签会自动归至其父分类下。\"收藏\"和\"归档\"标签现在继承自新的默认分类标签\"元标签\"。
- 标签颜色已进行了调整和扩展。部分颜色已被重新命名或合并,但所有标签颜色在 v9.5 中都会转换为完全匹配或最接近的配色。
",
"json_migration.migrating_files_entries": "正在迁移 {entries:,d} 个项目...",
"json_migration.migration_complete": "迁移完成!",
@@ -169,6 +166,9 @@
"json_migration.title.new_lib": "v9.5+ 仓库
",
"json_migration.title.old_lib": "v9.4 仓库
",
"landing.open_create_library": "打开/创建仓库 {shortcut}",
+ "library_info.stats.entries": "项目:",
+ "library_info.stats.fields": "字段:",
+ "library_info.stats.tags": "标签:",
"library.field.add": "新增字段",
"library.field.confirm_remove": "您确定要移除此 \"{name}\" 字段?",
"library.field.mixed_data": "混合数据",
diff --git a/src/tagstudio/resources/translations/zh_Hant.json b/src/tagstudio/resources/translations/zh_Hant.json
index 39c0246d..dbebc212 100644
--- a/src/tagstudio/resources/translations/zh_Hant.json
+++ b/src/tagstudio/resources/translations/zh_Hant.json
@@ -150,16 +150,13 @@
"json_migration.heading.aliases": "別名:",
"json_migration.heading.colors": "顏色:",
"json_migration.heading.differ": "差異",
- "json_migration.heading.entires": "項目:",
"json_migration.heading.extension_list_type": "副檔名清單類型:",
- "json_migration.heading.fields": "欄位:",
"json_migration.heading.file_extension_list": "檔案副檔名清單:",
"json_migration.heading.match": "已一致",
"json_migration.heading.names": "名稱:",
"json_migration.heading.parent_tags": "父標籤:",
"json_migration.heading.paths": "路徑:",
"json_migration.heading.shorthands": "簡寫:",
- "json_migration.heading.tags": "標籤:",
"json_migration.info.description": "TagStudio 版本9.4 以下的文件庫要被轉換至9.5 以上版本的格式。
請注意!
- 您現在的文件庫不會被刪除
- 您個人的檔案不會被刪除、移動或變更
- 新的 9.5 以上版本儲存格式不能在 9.5 版本以前的 TagStudio 開啟
變更內容:
- 「變遷欄位」被「標籤類別」取代。現在,標籤會被直接加入至檔案項目。然後在標籤編輯選單會根據有「是一個類別」標示的父標籤被自動分類至不同的類別。任何標籤可以被標示為一個類別,而在其之下的子標籤會自己分類至被標示為類別的父標籤底下。
- 標籤顏色有經過調整和擴大,有些顏色又被重新命名或合併,但所有的顏色仍會轉換為完全一致或相近的顏色
",
"json_migration.migrating_files_entries": "正在遷移 {entries:,d} 個項目...",
"json_migration.migration_complete_with_discrepancies": "遷移完畢,找到差異",
@@ -169,6 +166,9 @@
"json_migration.title.old_lib": "9.4 版本文件庫
",
"json_migration.title": "保存格式遷移:「{path}」",
"landing.open_create_library": "開啟/建立文件庫 {shortcut}",
+ "library_info.stats.entries": "項目:",
+ "library_info.stats.fields": "欄位:",
+ "library_info.stats.tags": "標籤:",
"library_object.name_required": "名稱 (必填)",
"library_object.name": "名稱",
"library_object.slug_required": "ID Slug (必填)",
@@ -322,4 +322,4 @@
"window.message.error_opening_library": "開啟文件庫時發生錯誤",
"window.title.error": "錯誤",
"window.title.open_create_library": "開啟/建立文件庫"
-}
\ No newline at end of file
+}