diff --git a/src/tagstudio/qt/main_window.py b/src/tagstudio/qt/main_window.py index 485a7a1cf..3267b84b4 100644 --- a/src/tagstudio/qt/main_window.py +++ b/src/tagstudio/qt/main_window.py @@ -24,6 +24,7 @@ QStatusBar, QVBoxLayout, QWidget, + QLabel, ) from tagstudio.qt.pagination import Pagination @@ -76,15 +77,22 @@ def setupUi(self, MainWindow): self.horizontalLayout_3.addItem(spacerItem) # Sorting Dropdowns + self.sorting_mode_label = QLabel(Translations["home.sorting_mode"]) self.sorting_mode_combobox = QComboBox(self.centralwidget) self.sorting_mode_combobox.setObjectName(u"sortingModeComboBox") + self.horizontalLayout_3.addWidget(self.sorting_mode_label) self.horizontalLayout_3.addWidget(self.sorting_mode_combobox) + self.sorting_mode_label.setBuddy(self.sorting_mode_combobox) + self.sorting_direction_label = QLabel(Translations["home.sorting_direction"]) self.sorting_direction_combobox = QComboBox(self.centralwidget) self.sorting_direction_combobox.setObjectName(u"sortingDirectionCombobox") + self.horizontalLayout_3.addWidget(self.sorting_direction_label) self.horizontalLayout_3.addWidget(self.sorting_direction_combobox) + self.sorting_direction_label.setBuddy(self.sorting_direction_combobox) # Thumbnail Size placeholder + self.thumb_size_label = QLabel(Translations["home.thumbnail_size_label"]) self.thumb_size_combobox = QComboBox(self.centralwidget) self.thumb_size_combobox.setObjectName(u"thumbSizeComboBox") self.thumb_size_combobox.setPlaceholderText(Translations["home.thumbnail_size"]) @@ -97,7 +105,9 @@ def setupUi(self, MainWindow): self.thumb_size_combobox.setSizePolicy(sizePolicy) self.thumb_size_combobox.setMinimumWidth(128) self.thumb_size_combobox.setMaximumWidth(352) + self.horizontalLayout_3.addWidget(self.thumb_size_label) self.horizontalLayout_3.addWidget(self.thumb_size_combobox) + self.thumb_size_label.setBuddy(self.thumb_size_combobox) self.gridLayout.addLayout(self.horizontalLayout_3, 5, 0, 1, 1) self.splitter = QSplitter() diff --git a/src/tagstudio/qt/modals/build_tag.py b/src/tagstudio/qt/modals/build_tag.py index 42250ec7f..65e453999 100644 --- a/src/tagstudio/qt/modals/build_tag.py +++ b/src/tagstudio/qt/modals/build_tag.py @@ -91,6 +91,7 @@ def __init__(self, library: Library, tag: Tag | None = None) -> None: self.name_title = QLabel(Translations["tag.name"]) self.name_layout.addWidget(self.name_title) self.name_field = QLineEdit() + self.name_title.setBuddy(self.name_field) self.name_field.setFixedHeight(24) self.name_field.textChanged.connect(self.on_name_changed) self.name_field.setPlaceholderText(Translations["tag.tag_name_required"]) @@ -106,6 +107,7 @@ def __init__(self, library: Library, tag: Tag | None = None) -> None: self.shorthand_title = QLabel(Translations["tag.shorthand"]) self.shorthand_layout.addWidget(self.shorthand_title) self.shorthand_field = QLineEdit() + self.shorthand_title.setBuddy(self.shorthand_field) self.shorthand_layout.addWidget(self.shorthand_field) # Aliases -------------------------------------------------------------- @@ -119,6 +121,7 @@ def __init__(self, library: Library, tag: Tag | None = None) -> None: self.aliases_layout.addWidget(self.aliases_title) self.aliases_table = QTableWidget(0, 2) + self.aliases_title.setBuddy(self.aliases_table) self.aliases_table.horizontalHeader().setVisible(False) self.aliases_table.verticalHeader().setVisible(False) self.aliases_table.horizontalHeader().setStretchLastSection(True) @@ -127,7 +130,7 @@ def __init__(self, library: Library, tag: Tag | None = None) -> None: self.aliases_table.setFocusPolicy(Qt.FocusPolicy.NoFocus) self.aliases_add_button = QPushButton() - self.aliases_add_button.setText("+") + self.aliases_add_button.setText(Translations["tag.alias.new"]) self.aliases_add_button.clicked.connect(self.add_alias_callback) # Parent Tags ---------------------------------------------------------- @@ -146,6 +149,7 @@ def __init__(self, library: Library, tag: Tag | None = None) -> None: self.scroll_contents = QWidget() self.parent_tags_scroll_layout = QVBoxLayout(self.scroll_contents) + self.parent_tags_title.setBuddy(self.scroll_contents) self.parent_tags_scroll_layout.setContentsMargins(6, 6, 6, 0) self.parent_tags_scroll_layout.setAlignment(Qt.AlignmentFlag.AlignTop) @@ -159,7 +163,7 @@ def __init__(self, library: Library, tag: Tag | None = None) -> None: self.parent_tags_add_button = QPushButton() self.parent_tags_add_button.setCursor(Qt.CursorShape.PointingHandCursor) - self.parent_tags_add_button.setText("+") + self.parent_tags_add_button.setText(Translations["tag.parent_tags.add.button"]) self.parent_tags_layout.addWidget(self.parent_tags_add_button) exclude_ids: list[int] = list() @@ -201,6 +205,7 @@ def __init__(self, library: Library, tag: Tag | None = None) -> None: ) self.color_button.button.clicked.connect(self.choose_color_modal.show) self.color_layout.addWidget(self.color_button) + self.color_title.setBuddy(self.color_button) # Category ------------------------------------------------------------- self.cat_widget = QWidget() @@ -211,6 +216,7 @@ def __init__(self, library: Library, tag: Tag | None = None) -> None: self.cat_layout.setAlignment(Qt.AlignmentFlag.AlignLeft) self.cat_title = QLabel(Translations["tag.is_category"]) self.cat_checkbox = QCheckBox() + self.cat_title.setBuddy(self.cat_checkbox) self.cat_checkbox.setFixedSize(22, 22) primary_color = QColor(get_tag_color(ColorType.PRIMARY, TagColorEnum.DEFAULT)) diff --git a/src/tagstudio/qt/modals/delete_unlinked.py b/src/tagstudio/qt/modals/delete_unlinked.py index f3902cce8..95df86093 100644 --- a/src/tagstudio/qt/modals/delete_unlinked.py +++ b/src/tagstudio/qt/modals/delete_unlinked.py @@ -59,12 +59,12 @@ def __init__(self, driver: "QtDriver", tracker: MissingRegistry): self.button_layout.setContentsMargins(6, 6, 6, 6) self.button_layout.addStretch(1) - self.cancel_button = QPushButton(Translations["generic.cancel_alt"]) + self.cancel_button = QPushButton(Translations["generic.cancel"]) self.cancel_button.setDefault(True) self.cancel_button.clicked.connect(self.hide) self.button_layout.addWidget(self.cancel_button) - self.delete_button = QPushButton(Translations["generic.delete_alt"]) + self.delete_button = QPushButton(Translations["generic.delete"]) self.delete_button.clicked.connect(self.hide) self.delete_button.clicked.connect(lambda: self.delete_entries()) self.button_layout.addWidget(self.delete_button) diff --git a/src/tagstudio/qt/modals/drop_import.py b/src/tagstudio/qt/modals/drop_import.py index 495740e70..772cef452 100644 --- a/src/tagstudio/qt/modals/drop_import.py +++ b/src/tagstudio/qt/modals/drop_import.py @@ -74,7 +74,7 @@ def __init__(self, driver: "QtDriver"): self.skip_button.clicked.connect(lambda: self.begin_transfer(DuplicateChoice.SKIP)) self.button_layout.addWidget(self.skip_button) - self.overwrite_button = QPushButton(Translations["generic.overwrite_alt"]) + self.overwrite_button = QPushButton(Translations["generic.overwrite"]) self.overwrite_button.clicked.connect( lambda: self.begin_transfer(DuplicateChoice.OVERWRITE) ) @@ -84,7 +84,7 @@ def __init__(self, driver: "QtDriver"): self.rename_button.clicked.connect(lambda: self.begin_transfer(DuplicateChoice.RENAME)) self.button_layout.addWidget(self.rename_button) - self.cancel_button = QPushButton(Translations["generic.cancel_alt"]) + self.cancel_button = QPushButton(Translations["generic.cancel"]) self.cancel_button.clicked.connect(lambda: self.begin_transfer(DuplicateChoice.CANCEL)) self.button_layout.addWidget(self.cancel_button) diff --git a/src/tagstudio/qt/modals/file_extension.py b/src/tagstudio/qt/modals/file_extension.py index 02b02b586..8f301ed86 100644 --- a/src/tagstudio/qt/modals/file_extension.py +++ b/src/tagstudio/qt/modals/file_extension.py @@ -63,6 +63,7 @@ def __init__(self, library: "Library"): self.mode_layout.setSpacing(12) self.mode_label = QLabel(Translations["ignore_list.mode.label"]) self.mode_combobox = QComboBox() + self.mode_label.setBuddy(self.mode_combobox) self.mode_combobox.setEditable(False) self.mode_combobox.addItem("") self.mode_combobox.addItem("") diff --git a/src/tagstudio/qt/modals/fix_dupes.py b/src/tagstudio/qt/modals/fix_dupes.py index be8fb3de8..7c0a8bf84 100644 --- a/src/tagstudio/qt/modals/fix_dupes.py +++ b/src/tagstudio/qt/modals/fix_dupes.py @@ -74,7 +74,7 @@ def __init__(self, library: "Library", driver: "QtDriver"): self.button_layout.setContentsMargins(6, 6, 6, 6) self.button_layout.addStretch(1) - self.done_button = QPushButton(Translations["generic.done_alt"]) + self.done_button = QPushButton(Translations["generic.done"]) self.done_button.setDefault(True) self.done_button.clicked.connect(self.hide) self.button_layout.addWidget(self.done_button) diff --git a/src/tagstudio/qt/modals/fix_unlinked.py b/src/tagstudio/qt/modals/fix_unlinked.py index 23b7c4d26..d139ed33f 100644 --- a/src/tagstudio/qt/modals/fix_unlinked.py +++ b/src/tagstudio/qt/modals/fix_unlinked.py @@ -88,7 +88,7 @@ def __init__(self, library: "Library", driver: "QtDriver"): self.button_layout.setContentsMargins(6, 6, 6, 6) self.button_layout.addStretch(1) - self.done_button = QPushButton(Translations["generic.done_alt"]) + self.done_button = QPushButton(Translations["generic.done"]) self.done_button.setDefault(True) self.done_button.clicked.connect(self.hide) self.button_layout.addWidget(self.done_button) diff --git a/src/tagstudio/qt/modals/folders_to_tags.py b/src/tagstudio/qt/modals/folders_to_tags.py index 11fb3b335..2d8aa89fc 100644 --- a/src/tagstudio/qt/modals/folders_to_tags.py +++ b/src/tagstudio/qt/modals/folders_to_tags.py @@ -212,7 +212,7 @@ def __init__(self, library: "Library", driver: "QtDriver"): self.scroll_area.setFrameShape(QFrame.Shape.NoFrame) self.scroll_area.setWidget(self.scroll_contents) - self.apply_button = QPushButton(Translations["generic.apply_alt"]) + self.apply_button = QPushButton(Translations["generic.apply"]) self.apply_button.setMinimumWidth(100) self.apply_button.clicked.connect(self.on_apply) diff --git a/src/tagstudio/qt/modals/mirror_entities.py b/src/tagstudio/qt/modals/mirror_entities.py index 198b2aea2..80a4560e8 100644 --- a/src/tagstudio/qt/modals/mirror_entities.py +++ b/src/tagstudio/qt/modals/mirror_entities.py @@ -48,7 +48,7 @@ def __init__(self, driver: "QtDriver", tracker: DupeRegistry): self.button_layout.setContentsMargins(6, 6, 6, 6) self.button_layout.addStretch(1) - self.cancel_button = QPushButton(Translations["generic.cancel_alt"]) + self.cancel_button = QPushButton(Translations["generic.cancel"]) self.cancel_button.setDefault(True) self.cancel_button.clicked.connect(self.hide) self.button_layout.addWidget(self.cancel_button) diff --git a/src/tagstudio/qt/modals/settings_panel.py b/src/tagstudio/qt/modals/settings_panel.py index 378397892..06f095f76 100644 --- a/src/tagstudio/qt/modals/settings_panel.py +++ b/src/tagstudio/qt/modals/settings_panel.py @@ -52,6 +52,7 @@ def __init__(self, driver): "Turkish": "tr", } self.language_combobox = QComboBox() + language_label.setBuddy(self.language_combobox) self.language_combobox.addItems(list(self.languages.keys())) current_lang: str = str( driver.settings.value(SettingItems.LANGUAGE, defaultValue="en", type=str) diff --git a/src/tagstudio/qt/modals/tag_color_manager.py b/src/tagstudio/qt/modals/tag_color_manager.py index 3f2fe0af4..7465164b2 100644 --- a/src/tagstudio/qt/modals/tag_color_manager.py +++ b/src/tagstudio/qt/modals/tag_color_manager.py @@ -102,7 +102,7 @@ def __init__( self.button_layout.addStretch(1) - self.done_button = QPushButton(Translations["generic.done_alt"]) + self.done_button = QPushButton(Translations["generic.done"]) self.done_button.clicked.connect(self.hide) self.button_layout.addWidget(self.done_button) @@ -195,10 +195,10 @@ def delete_namespace_dialog(self, prompt: str, callback: Callable) -> None: message_box.setWindowTitle(Translations["color.namespace.delete.title"]) message_box.setIcon(QMessageBox.Icon.Warning) cancel_button = message_box.addButton( - Translations["generic.cancel_alt"], QMessageBox.ButtonRole.RejectRole + Translations["generic.cancel"], QMessageBox.ButtonRole.RejectRole ) message_box.addButton( - Translations["generic.delete_alt"], QMessageBox.ButtonRole.DestructiveRole + Translations["generic.delete"], QMessageBox.ButtonRole.DestructiveRole ) message_box.setEscapeButton(cancel_button) result = message_box.exec_() diff --git a/src/tagstudio/qt/modals/tag_search.py b/src/tagstudio/qt/modals/tag_search.py index f7413764b..0ab49a5af 100644 --- a/src/tagstudio/qt/modals/tag_search.py +++ b/src/tagstudio/qt/modals/tag_search.py @@ -81,6 +81,7 @@ def __init__( self.limit_layout.addWidget(self.limit_title) self.limit_combobox = QComboBox() + self.limit_title.setBuddy(self.limit_combobox) self.limit_combobox.setEditable(False) self.limit_combobox.addItems([str(x) for x in TagSearchPanel._limit_items]) self.limit_combobox.setCurrentIndex(TagSearchPanel._default_limit_idx) diff --git a/src/tagstudio/qt/ts_qt.py b/src/tagstudio/qt/ts_qt.py index da8931661..1c702e2d7 100644 --- a/src/tagstudio/qt/ts_qt.py +++ b/src/tagstudio/qt/ts_qt.py @@ -343,7 +343,7 @@ def start(self) -> None: menu_bar.setNativeMenuBar(True) file_menu = QMenu(Translations["menu.file"], menu_bar) - edit_menu = QMenu(Translations["generic.edit_alt"], menu_bar) + edit_menu = QMenu(Translations["generic.edit"], menu_bar) view_menu = QMenu(Translations["menu.view"], menu_bar) tools_menu = QMenu(Translations["menu.tools"], menu_bar) macros_menu = QMenu(Translations["menu.macros"], menu_bar) @@ -1777,13 +1777,13 @@ def update_recent_lib_menu(self): settings.endGroup() # Create actions for each library - for library_key in libs_sorted: + for index, library_key in enumerate(libs_sorted): path = Path(library_key[1][0]) action = QAction(self.open_recent_library_menu) if filepath_option == ShowFilepathOption.SHOW_FULL_PATHS: - action.setText(str(path)) + action.setText(f"&{index + 1}: {str(path)}") else: - action.setText(str(Path(path).name)) + action.setText(f"&{index + 1}: {str(Path(path).name)}") action.triggered.connect(lambda checked=False, p=path: self.open_library(p)) actions.append(action) diff --git a/src/tagstudio/qt/widgets/color_box.py b/src/tagstudio/qt/widgets/color_box.py index f92254393..5d4bd875a 100644 --- a/src/tagstudio/qt/widgets/color_box.py +++ b/src/tagstudio/qt/widgets/color_box.py @@ -150,10 +150,10 @@ def delete_color(self, color_group: TagColorGroup): Translations.format("color.confirm_delete", color_name=color_group.name), ) cancel_button = message_box.addButton( - Translations["generic.cancel_alt"], QMessageBox.ButtonRole.RejectRole + Translations["generic.cancel"], QMessageBox.ButtonRole.RejectRole ) message_box.addButton( - Translations["generic.delete_alt"], QMessageBox.ButtonRole.DestructiveRole + Translations["generic.delete"], QMessageBox.ButtonRole.DestructiveRole ) message_box.setEscapeButton(cancel_button) result = message_box.exec_() diff --git a/src/tagstudio/qt/widgets/preview/field_containers.py b/src/tagstudio/qt/widgets/preview/field_containers.py index 76dc48600..a45316530 100644 --- a/src/tagstudio/qt/widgets/preview/field_containers.py +++ b/src/tagstudio/qt/widgets/preview/field_containers.py @@ -509,7 +509,7 @@ def remove_message_box(self, prompt: str, callback: Callable) -> None: remove_mb.setWindowTitle("Remove Field") remove_mb.setIcon(QMessageBox.Icon.Warning) cancel_button = remove_mb.addButton( - Translations["generic.cancel_alt"], QMessageBox.ButtonRole.DestructiveRole + Translations["generic.cancel"], QMessageBox.ButtonRole.DestructiveRole ) remove_mb.addButton("&Remove", QMessageBox.ButtonRole.RejectRole) remove_mb.setEscapeButton(cancel_button) diff --git a/src/tagstudio/qt/widgets/preview_panel.py b/src/tagstudio/qt/widgets/preview_panel.py index 5af5c5bc0..8a7ad7cd0 100644 --- a/src/tagstudio/qt/widgets/preview_panel.py +++ b/src/tagstudio/qt/widgets/preview_panel.py @@ -94,13 +94,13 @@ def __init__(self, library: Library, driver: "QtDriver"): add_buttons_layout.setContentsMargins(0, 0, 0, 0) add_buttons_layout.setSpacing(6) - self.add_tag_button = QPushButton(Translations["tag.add"]) + self.add_tag_button = QPushButton(Translations["tag.add.button"]) self.add_tag_button.setEnabled(False) self.add_tag_button.setCursor(Qt.CursorShape.PointingHandCursor) self.add_tag_button.setMinimumHeight(28) self.add_tag_button.setStyleSheet(PreviewPanel.button_style) - self.add_field_button = QPushButton(Translations["library.field.add"]) + self.add_field_button = QPushButton(Translations["library.field.add.button"]) self.add_field_button.setEnabled(False) self.add_field_button.setCursor(Qt.CursorShape.PointingHandCursor) self.add_field_button.setMinimumHeight(28) diff --git a/src/tagstudio/resources/translations/de.json b/src/tagstudio/resources/translations/de.json index ef32101bb..9105ffec9 100644 --- a/src/tagstudio/resources/translations/de.json +++ b/src/tagstudio/resources/translations/de.json @@ -92,30 +92,23 @@ "folders_to_tags.open_all": "Alle öffnen", "folders_to_tags.title": "Aus Verzeichnissen Tags erstellen", "generic.add": "Hinzufügen", - "generic.apply": "Anwenden", - "generic.apply_alt": "&Anwenden", + "generic.apply": "&Anwenden", "generic.cancel": "Abbrechen", - "generic.cancel_alt": "Abbre&chen", "generic.close": "Schließen", "generic.continue": "Fortfahren", "generic.copy": "Kopieren", "generic.cut": "Ausschneiden", "generic.delete": "Löschen", - "generic.delete_alt": "Löschen", "generic.done": "Fertig", - "generic.done_alt": "Fertig", - "generic.edit": "Bearbeiten", - "generic.edit_alt": "B&earbeiten", + "generic.edit": "B&earbeiten", "generic.filename": "Dateiname", "generic.navigation.back": "Zurück", "generic.navigation.next": "Weiter", "generic.none": "Kein(e)", "generic.overwrite": "Überschreibem", - "generic.overwrite_alt": "Überschreiben", "generic.paste": "Einfügen", "generic.recent_libraries": "Aktuelle Bibliotheken", "generic.rename": "Umbenennen", - "generic.rename_alt": "Umbenennen", "generic.reset": "Zurücksetzen", "generic.save": "Speichern", "generic.skip": "Überspringen", @@ -125,11 +118,14 @@ "home.search_library": "Bibliothek durchsuchen", "home.search_tags": "Tags suchen", "home.thumbnail_size": "Größe des Vorschaubildes", + "home.sorting_mode": "", + "home.sorting_direction": "", "home.thumbnail_size.extra_large": "Extra Große Vorschau", "home.thumbnail_size.large": "Große Vorschau", "home.thumbnail_size.medium": "Mittelgroße Vorschau", "home.thumbnail_size.mini": "Mini Vorschau", "home.thumbnail_size.small": "Kleine Vorschau", + "home.thumbnail_size_label": "", "ignore_list.add_extension": "D&ateiendung hinzufügen", "ignore_list.mode.exclude": "Ausschliessen", "ignore_list.mode.include": "Einschließen", @@ -164,6 +160,7 @@ "json_migration.title.old_lib": "

v9.4 Bibliothek

", "landing.open_create_library": "Bibliothek öffnen/erstellen {shortcut}", "library.field.add": "Feld hinzufügen", + "library.field.add.button": "", "library.field.confirm_remove": "Wollen Sie dieses \"{name}\" Feld wirklich entfernen?", "library.field.mixed_data": "Gemischte Daten", "library.field.remove": "Feld entfernen", @@ -250,7 +247,9 @@ "tag.add": "Tag hinzufügen", "tag.add.plural": "Tags hinzufügen", "tag.add_to_search": "Zur Suche hinzufügen", + "tag.add.button": "", "tag.aliases": "Aliase", + "tag.alias.new": "", "tag.all_tags": "Alle Tags", "tag.choose_color": "Tag-Farbe auswählen", "tag.color": "Farbe", @@ -264,6 +263,7 @@ "tag.new": "Neuer Tag", "tag.parent_tags": "Übergeordnete Tags", "tag.parent_tags.add": "Übergeordnete Tags hinzufügen", + "tag.parent_tags.add.button": "", "tag.parent_tags.description": "Dieser Tag kann bei der Suche als Ersatz für jeden dieser übergeordneten Tags verwendet werden.", "tag.remove": "Tag entfernen", "tag.search_for_tag": "Nach Tag suchen", diff --git a/src/tagstudio/resources/translations/en.json b/src/tagstudio/resources/translations/en.json index 6829e601b..92153fe91 100644 --- a/src/tagstudio/resources/translations/en.json +++ b/src/tagstudio/resources/translations/en.json @@ -32,9 +32,9 @@ "drop_import.progress.label.singular": "Importing New Files...\n1 File imported.{suffix}", "drop_import.progress.window_title": "Import Files", "drop_import.title": "Conflicting File(s)", - "edit.color_manager": "Manage Tag Colors", - "edit.copy_fields": "Copy Fields", - "edit.paste_fields": "Paste Fields", + "edit.color_manager": "Manage Tag C&olors", + "edit.copy_fields": "&Copy Fields", + "edit.paste_fields": "&Paste Fields", "edit.tag_manager": "Manage Tags", "entries.duplicate.merge.label": "Merging Duplicate Entries...", "entries.duplicate.merge": "Merge Duplicate Entries", @@ -48,7 +48,7 @@ "entries.running.dialog.new_entries": "Adding {total} New File Entries...", "entries.running.dialog.title": "Adding New File Entries", "entries.tags": "Tags", - "entries.unlinked.delete_alt": "De&lete Unlinked Entries", + "entries.unlinked.delete_alt": "&Delete Unlinked Entries", "entries.unlinked.delete.confirm": "Are you sure you want to delete the following {count} entries?", "entries.unlinked.delete.deleting_count": "Deleting {idx}/{count} Unlinked Entries", "entries.unlinked.delete.deleting": "Deleting Entries", @@ -91,37 +91,30 @@ "file.open_location.generic": "Show file in file explorer", "file.open_location.mac": "Reveal in Finder", "file.open_location.windows": "Show in File Explorer", - "folders_to_tags.close_all": "Close All", + "folders_to_tags.close_all": "&Close All", "folders_to_tags.converting": "Converting folders to Tags", "folders_to_tags.description": "Creates tags based on your folder structure and applies them to your entries.\n The structure below shows all the tags that will be created and what entries they will be applied to.", - "folders_to_tags.open_all": "Open All", + "folders_to_tags.open_all": "&Open All", "folders_to_tags.title": "Create Tags From Folders", "generic.add": "Add", - "generic.apply_alt": "&Apply", - "generic.apply": "Apply", - "generic.cancel_alt": "&Cancel", + "generic.apply": "&Apply", "generic.cancel": "Cancel", "generic.close": "Close", "generic.continue": "Continue", "generic.copy": "Copy", "generic.cut": "Cut", - "generic.delete_alt": "&Delete", "generic.delete": "Delete", - "generic.done_alt": "&Done", "generic.done": "Done", - "generic.edit_alt": "&Edit", - "generic.edit": "Edit", + "generic.edit": "&Edit", "generic.filename": "Filename", "generic.missing": "Missing", "generic.navigation.back": "Back", "generic.navigation.next": "Next", "generic.none": "None", - "generic.overwrite_alt": "&Overwrite", "generic.overwrite": "Overwrite", "generic.paste": "Paste", "generic.recent_libraries": "Recent Libraries", - "generic.rename_alt": "&Rename", - "generic.rename": "Rename", + "generic.rename": "&Rename", "generic.reset": "Reset", "generic.save": "Save", "generic.skip_alt": "&Skip", @@ -130,16 +123,19 @@ "home.search_library": "Search Library", "home.search_tags": "Search Tags", "home.search": "Search", - "home.thumbnail_size.extra_large": "Extra Large Thumbnails", - "home.thumbnail_size.large": "Large Thumbnails", - "home.thumbnail_size.medium": "Medium Thumbnails", - "home.thumbnail_size.mini": "Mini Thumbnails", - "home.thumbnail_size.small": "Small Thumbnails", + "home.sorting_mode": "&Sort By:", + "home.sorting_direction": "&Order:", + "home.thumbnail_size.extra_large": "Extra Large", + "home.thumbnail_size.large": "Large", + "home.thumbnail_size.medium": "Medium", + "home.thumbnail_size.mini": "Mini", + "home.thumbnail_size.small": "Small", "home.thumbnail_size": "Thumbnail Size", + "home.thumbnail_size_label": "T&humbnail Size:", "ignore_list.add_extension": "&Add Extension", "ignore_list.mode.exclude": "Exclude", "ignore_list.mode.include": "Include", - "ignore_list.mode.label": "List Mode:", + "ignore_list.mode.label": "&List Mode:", "ignore_list.title": "File Extensions", "json_migration.checking_for_parity": "Checking for Parity...", "json_migration.creating_database_tables": "Creating SQL Database Tables...", @@ -168,12 +164,13 @@ "json_migration.title.new_lib": "

v9.5+ Library

", "json_migration.title.old_lib": "

v9.4 Library

", "json_migration.title": "Save Format Migration: \"{path}\"", - "landing.open_create_library": "Open/Create Library {shortcut}", + "landing.open_create_library": "&Open/Create Library {shortcut}", "library_object.name_required": "Name (Required)", "library_object.name": "Name", "library_object.slug_required": "ID Slug (Required)", "library_object.slug": "ID Slug", "library.field.add": "Add Field", + "library.field.add.button": "A&dd Field", "library.field.confirm_remove": "Are you sure you want to remove this \"{name}\" field?", "library.field.mixed_data": "Mixed Data", "library.field.remove": "Remove Field", @@ -187,54 +184,54 @@ "macros.running.dialog.new_entries": "Running Configured Macros on {count}/{total} New File Entries...", "macros.running.dialog.title": "Running Macros on New Entries", "media_player.autoplay": "Autoplay", - "menu.delete_selected_files_ambiguous": "Move File(s) to {trash_term}", - "menu.delete_selected_files_plural": "Move Files to {trash_term}", - "menu.delete_selected_files_singular": "Move File to {trash_term}", - "menu.edit.ignore_list": "Ignore Files and Folders", - "menu.edit.manage_file_extensions": "Manage File Extensions", - "menu.edit.manage_tags": "Manage Tags", - "menu.edit.new_tag": "New &Tag", - "menu.edit": "Edit", - "menu.file.clear_recent_libraries": "Clear Recent", + "menu.delete_selected_files_ambiguous": "&Move File(s) to {trash_term}", + "menu.delete_selected_files_plural": "&Move Files to {trash_term}", + "menu.delete_selected_files_singular": "&Move File to {trash_term}", + "menu.edit.ignore_list": "&Ignore Files and Folders", + "menu.edit.manage_file_extensions": "Manage &File Extensions", + "menu.edit.manage_tags": "Manage &Tags", + "menu.edit.new_tag": "&New Tag", + "menu.edit": "&Edit", + "menu.file.clear_recent_libraries": "&Clear Recent", "menu.file.close_library": "&Close Library", - "menu.file.new_library": "New Library", + "menu.file.new_library": "&New Library", "menu.file.open_create_library": "&Open/Create Library", - "menu.file.open_library": "Open Library", - "menu.file.open_recent_library": "Open Recent", - "menu.file.refresh_directories": "&Refresh Directories", - "menu.file.save_backup": "&Save Library Backup", - "menu.file.save_library": "Save Library", + "menu.file.open_library": "&Open Library", + "menu.file.open_recent_library": "Open &Recent", + "menu.file.refresh_directories": "Refresh &Directories", + "menu.file.save_backup": "Save &Library Backup", + "menu.file.save_library": "&Save Library", "menu.file": "&File", - "menu.help.about": "About", + "menu.help.about": "&About", "menu.help": "&Help", - "menu.macros.folders_to_tags": "Folders to Tags", + "menu.macros.folders_to_tags": "&Folders to Tags", "menu.macros": "&Macros", - "menu.select": "Select", - "menu.settings": "Settings...", - "menu.tools.fix_duplicate_files": "Fix Duplicate &Files", + "menu.select": "&Select", + "menu.settings": "&Settings...", + "menu.tools.fix_duplicate_files": "Fix &Duplicate Files", "menu.tools.fix_unlinked_entries": "Fix &Unlinked Entries", "menu.tools": "&Tools", "menu.view": "&View", - "menu.window": "Window", + "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.", "namespace.create.description": "Namespaces are used by TagStudio to separate groups of items such as tags and colors in a way that makes them easy to export and share. Namespaces starting with \"tagstudio\" are reserved by TagStudio for internal use.", "namespace.create.title": "Create Namespace", - "namespace.new.button": "New Namespace", - "namespace.new.prompt": "Create a New Namespace to Start Adding Custom Colors!", + "namespace.new.button": "&New Namespace", + "namespace.new.prompt": "&Create a New Namespace to Start Adding Custom Colors!", "preview.multiple_selection": "{count} Items Selected", "preview.no_selection": "No Items Selected", - "select.add_tag_to_selected": "Add Tag to Selected", - "select.all": "Select All", - "select.clear": "Clear Selection", - "settings.clear_thumb_cache.title": "Clear Thumbnail Cache", + "select.add_tag_to_selected": "A&dd Tag to Selected", + "select.all": "Select &All", + "select.clear": "Clear &Selection", + "settings.clear_thumb_cache.title": "&Clear Thumbnail Cache", "settings.filepath.label": "Filepath Visibility", "settings.filepath.option.full": "Show Full Paths", "settings.filepath.option.name": "Show Filenames Only", "settings.filepath.option.relative": "Show Relative Paths", - "settings.language": "Language", - "settings.open_library_on_start": "Open Library on Start", + "settings.language": "&Language", + "settings.open_library_on_start": "Op&en Library on Start", "settings.restart_required": "Please restart TagStudio for changes to take effect.", - "settings.show_filenames_in_grid": "Show Filenames in Grid", + "settings.show_filenames_in_grid": "&Show Filenames in Grid", "settings.show_recent_libraries": "Show Recent Libraries", "settings.title": "Settings", "sorting.direction.ascending": "Ascending", @@ -261,26 +258,29 @@ "tag.add_to_search": "Add to Search", "tag.add.plural": "Add Tags", "tag.add": "Add Tag", - "tag.aliases": "Aliases", + "tag.add.button": "&Add Tag", + "tag.aliases": "&Aliases", + "tag.alias.new": "N&ew Alias", "tag.all_tags": "All Tags", "tag.choose_color": "Choose Tag Color", - "tag.color": "Color", + "tag.color": "&Color", "tag.confirm_delete": "Are you sure you want to delete the tag \"{tag_name}\"?", "tag.create_add": "Create && Add \"{query}\"", - "tag.create": "Create Tag", + "tag.create": "&Create Tag", "tag.disambiguation.tooltip": "Use this tag for disambiguation", "tag.edit": "Edit Tag", - "tag.is_category": "Is Category", - "tag.name": "Name", + "tag.is_category": "&Is Category", + "tag.name": "&Name", "tag.new": "New Tag", "tag.parent_tags.add": "Add Parent Tag(s)", + "tag.parent_tags.add.button": "A&dd Parent Tag(s)", "tag.parent_tags.description": "This tag can be treated as a substitute for any of these Parent Tags in searches.", - "tag.parent_tags": "Parent Tags", + "tag.parent_tags": "&Parent Tags", "tag.remove": "Remove Tag", "tag.search_for_tag": "Search for Tag", - "tag.shorthand": "Shorthand", + "tag.shorthand": "&Shorthand", "tag.tag_name_required": "Tag Name (Required)", - "tag.view_limit": "View Limit:", + "tag.view_limit": "&View Limit:", "trash.context.ambiguous": "Move file(s) to {trash_term}", "trash.context.plural": "Move files to {trash_term}", "trash.context.singular": "Move file to {trash_term}", diff --git a/src/tagstudio/resources/translations/es.json b/src/tagstudio/resources/translations/es.json index d8cac2d66..aba352af6 100644 --- a/src/tagstudio/resources/translations/es.json +++ b/src/tagstudio/resources/translations/es.json @@ -94,31 +94,24 @@ "folders_to_tags.open_all": "Abrir todo", "folders_to_tags.title": "Crear etiquetas a partir de carpetas", "generic.add": "Añadir", - "generic.apply": "Aplicar", - "generic.apply_alt": "&Aplicar", + "generic.apply": "&Aplicar", "generic.cancel": "Cancelar", - "generic.cancel_alt": "&Cancelar", "generic.close": "Cerrar", "generic.continue": "Continuar", "generic.copy": "Copiar", "generic.cut": "Cortar", "generic.delete": "Eliminar", - "generic.delete_alt": "&Eliminar", "generic.done": "Terminado", - "generic.done_alt": "&Hecho", - "generic.edit": "Editar", - "generic.edit_alt": "&Editar", + "generic.edit": "&Editar", "generic.filename": "Nombre de archivo", "generic.missing": "Ausente", "generic.navigation.back": "Volver", "generic.navigation.next": "Continuar", "generic.none": "Ninguno", "generic.overwrite": "Sobrescribir", - "generic.overwrite_alt": "&Sobrescribir", "generic.paste": "Pegar", "generic.recent_libraries": "Bibliotecas recientes", - "generic.rename": "Renombrar", - "generic.rename_alt": "&Renombrar", + "generic.rename": "&Renombrar", "generic.reset": "Reiniciar", "generic.save": "Guardar", "generic.skip": "Saltear", @@ -128,11 +121,14 @@ "home.search_library": "Buscar el biblioteca", "home.search_tags": "Buscar etiquetas", "home.thumbnail_size": "Tamaño de la vista previa", + "home.sorting_mode": "", + "home.sorting_direction": "", "home.thumbnail_size.extra_large": "Imágenes extra grandes", "home.thumbnail_size.large": "Imágenes grandes", "home.thumbnail_size.medium": "Imágenes medianas", "home.thumbnail_size.mini": "Imágenes en miniatura", "home.thumbnail_size.small": "Imágenes pequeñas", + "home.thumbnail_size_label": "", "ignore_list.add_extension": "&Añadir extensión", "ignore_list.mode.exclude": "Excluir", "ignore_list.mode.include": "Incluir", @@ -167,6 +163,7 @@ "json_migration.title.old_lib": "

v9.4 biblioteca

", "landing.open_create_library": "Abrir/Crear biblioteca {shortcut}", "library.field.add": "Añadir campo", + "library.field.add.button": "", "library.field.confirm_remove": "¿Está seguro de que desea eliminar el campo \"{name}\"?", "library.field.mixed_data": "Datos variados", "library.field.remove": "Eliminar campo", @@ -257,7 +254,9 @@ "tag.add": "Añadir etiqueta", "tag.add.plural": "Añadir etiquetas", "tag.add_to_search": "Añadir a la búsqueda", + "tag.add.button": "", "tag.aliases": "Alias", + "tag.alias.new": "", "tag.all_tags": "Todas las etiquetas", "tag.choose_color": "Elige el color de la etiqueta", "tag.color": "Color", @@ -271,6 +270,7 @@ "tag.new": "Nueva etiqueta", "tag.parent_tags": "Etiquetas principales", "tag.parent_tags.add": "Añadir etiquetas principales", + "tag.parent_tags.add.button": "", "tag.parent_tags.description": "Esta etiqueta se puede tratar como sustituto de cualquiera de las etiquetas padre en las búsquedas.", "tag.remove": "Eliminar etiqueta", "tag.search_for_tag": "Buscar por etiqueta", diff --git a/src/tagstudio/resources/translations/fil.json b/src/tagstudio/resources/translations/fil.json index 614f394e2..8c453ae6b 100644 --- a/src/tagstudio/resources/translations/fil.json +++ b/src/tagstudio/resources/translations/fil.json @@ -89,30 +89,23 @@ "folders_to_tags.open_all": "Buksan Lahat", "folders_to_tags.title": "Gumawa ng Mga Tag Mula Sa Mga Folder", "generic.add": "Magdagdag", - "generic.apply": "I-apply", - "generic.apply_alt": "&I-apply", + "generic.apply": "&I-apply", "generic.cancel": "Kanselahin", - "generic.cancel_alt": "&Kanselahin", "generic.close": "Isara", "generic.continue": "Magpatuloy", "generic.copy": "Kopyahin", "generic.cut": "I-cut", "generic.delete": "Burahin", - "generic.delete_alt": "&Burahin", "generic.done": "Tapos na", - "generic.done_alt": "&Tapos na", - "generic.edit": "I-edit", - "generic.edit_alt": "&I-edit", + "generic.edit": "&I-edit", "generic.filename": "Pangalan ng file", "generic.navigation.back": "Bumalik", "generic.navigation.next": "Susunod", "generic.none": "Wala", "generic.overwrite": "I-overwrite", - "generic.overwrite_alt": "&I-overwrite", "generic.paste": "I-paste", "generic.recent_libraries": "Mga Kamakailang Library", - "generic.rename": "Palitan ang pangalan", - "generic.rename_alt": "&Palitan ang pangalan", + "generic.rename": "&Palitan ang pangalan", "generic.reset": "I-reset", "generic.save": "I-save", "generic.skip": "Laktawan", @@ -122,11 +115,14 @@ "home.search_library": "Maghanap sa Library", "home.search_tags": "Maghanap ng Mga Tag", "home.thumbnail_size": "Laki ng Thumbnail", + "home.sorting_mode": "", + "home.sorting_direction": "", "home.thumbnail_size.extra_large": "Mas-malaking Thumbnail", "home.thumbnail_size.large": "Malaking Thumbnail", "home.thumbnail_size.medium": "Bahagyang Thumbnail", "home.thumbnail_size.mini": "Maliliit na Thumbnail", "home.thumbnail_size.small": "Maliit na Thumbnail", + "home.thumbnail_size_label": "", "ignore_list.add_extension": "&Magdagdag ng Extension", "ignore_list.mode.exclude": "Huwag isama", "ignore_list.mode.include": "Isama", @@ -153,6 +149,7 @@ "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:

Ano ang nagbago: