diff --git a/tagstudio/resources/translations/en.json b/tagstudio/resources/translations/en.json index 1d89b4f7..442bf045 100644 --- a/tagstudio/resources/translations/en.json +++ b/tagstudio/resources/translations/en.json @@ -18,7 +18,7 @@ "entries.unlinked.delete.deleting": "Deleting Entries", "entries.unlinked.delete": "Delete Unlinked Entries", "entries.unlinked.delete_alt": "De&lete Unlinked Entries", - "entries.unlinked.description": "Each library entry is linked to a file in one of your directories. If a file linked to an entry is moved or deleted outside of TagStudio, it is then considered unlinked. Unlinked entries may be automatically relinked via searching your directories or deleted if desired.", + "entries.unlinked.description": "Each library entry is linked to a file in one of your directories. If a file linked to an entry is moved or deleted outside of TagStudio, it is then considered unlinked.

Unlinked entries may be automatically relinked via searching your directories or deleted if desired.", "entries.unlinked.refresh_all": "&Refresh All", "entries.unlinked.relink.attempting": "Attempting to Relink {idx}/{missing_count} Entries, {fixed_count} Successfully Relinked", "entries.unlinked.relink.manual": "&Manual Relink", diff --git a/tagstudio/src/qt/main_window.py b/tagstudio/src/qt/main_window.py index 77bf338a..d1125ede 100644 --- a/tagstudio/src/qt/main_window.py +++ b/tagstudio/src/qt/main_window.py @@ -25,7 +25,7 @@ from PySide6.QtWidgets import (QComboBox, QFrame, QGridLayout, from src.qt.pagination import Pagination from src.qt.widgets.landing import LandingWidget -from .translations import Translations +from src.qt.translations import Translations # Only import for type checking/autocompletion, will not be imported at runtime. if typing.TYPE_CHECKING: diff --git a/tagstudio/src/qt/modals/add_field.py b/tagstudio/src/qt/modals/add_field.py index 3e2a94b8..e948e511 100644 --- a/tagstudio/src/qt/modals/add_field.py +++ b/tagstudio/src/qt/modals/add_field.py @@ -14,8 +14,7 @@ from PySide6.QtWidgets import ( QWidget, ) from src.core.library import Library - -from ..translations import Translations +from src.qt.translations import Translations class AddFieldModal(QWidget): diff --git a/tagstudio/src/qt/modals/build_tag.py b/tagstudio/src/qt/modals/build_tag.py index 73687e38..5682c736 100644 --- a/tagstudio/src/qt/modals/build_tag.py +++ b/tagstudio/src/qt/modals/build_tag.py @@ -24,11 +24,10 @@ from src.core.library import Library, Tag from src.core.library.alchemy.enums import TagColor from src.core.palette import ColorType, UiColor, get_tag_color, get_ui_color from src.qt.modals.tag_search import TagSearchPanel +from src.qt.translations import Translations from src.qt.widgets.panel import PanelModal, PanelWidget from src.qt.widgets.tag import TagWidget -from ..translations import Translations - logger = structlog.get_logger(__name__) diff --git a/tagstudio/src/qt/modals/delete_unlinked.py b/tagstudio/src/qt/modals/delete_unlinked.py index 180c6e75..da229c99 100644 --- a/tagstudio/src/qt/modals/delete_unlinked.py +++ b/tagstudio/src/qt/modals/delete_unlinked.py @@ -15,10 +15,9 @@ from PySide6.QtWidgets import ( QWidget, ) from src.core.utils.missing_files import MissingRegistry +from src.qt.translations import Translations from src.qt.widgets.progress import ProgressWidget -from ..translations import Translations - # Only import for type checking/autocompletion, will not be imported at runtime. if typing.TYPE_CHECKING: from src.qt.ts_qt import QtDriver diff --git a/tagstudio/src/qt/modals/drop_import.py b/tagstudio/src/qt/modals/drop_import.py index 7811a46d..92b9f167 100644 --- a/tagstudio/src/qt/modals/drop_import.py +++ b/tagstudio/src/qt/modals/drop_import.py @@ -17,10 +17,9 @@ from PySide6.QtWidgets import ( QVBoxLayout, QWidget, ) +from src.qt.translations import Translations from src.qt.widgets.progress import ProgressWidget -from ..translations import Translations - if TYPE_CHECKING: from src.qt.ts_qt import QtDriver diff --git a/tagstudio/src/qt/modals/file_extension.py b/tagstudio/src/qt/modals/file_extension.py index 45ea0199..49b5b147 100644 --- a/tagstudio/src/qt/modals/file_extension.py +++ b/tagstudio/src/qt/modals/file_extension.py @@ -18,10 +18,9 @@ from PySide6.QtWidgets import ( ) from src.core.enums import LibraryPrefs from src.core.library import Library +from src.qt.translations import Translations from src.qt.widgets.panel import PanelWidget -from ..translations import Translations - class FileExtensionItemDelegate(QStyledItemDelegate): def setModelData(self, editor, model, index): # noqa: N802 @@ -72,7 +71,7 @@ class FileExtensionModal(PanelWidget): lambda text: self.mode_combobox.setItemText(0, text), "ignore_list.mode.include" ) Translations.translate_with_setter( - lambda text: self.mode_combobox.setItemText(0, text), "ignore_list.mode.exclude" + lambda text: self.mode_combobox.setItemText(1, text), "ignore_list.mode.exclude" ) is_exclude_list = int(bool(self.lib.prefs(LibraryPrefs.IS_EXCLUDE_LIST))) diff --git a/tagstudio/src/qt/modals/fix_dupes.py b/tagstudio/src/qt/modals/fix_dupes.py index 12095d9f..76261039 100644 --- a/tagstudio/src/qt/modals/fix_dupes.py +++ b/tagstudio/src/qt/modals/fix_dupes.py @@ -17,8 +17,7 @@ from PySide6.QtWidgets import ( from src.core.library import Library from src.core.utils.dupe_files import DupeRegistry from src.qt.modals.mirror_entities import MirrorEntriesModal - -from ..translations import Translations +from src.qt.translations import Translations # Only import for type checking/autocompletion, will not be imported at runtime. if typing.TYPE_CHECKING: diff --git a/tagstudio/src/qt/modals/fix_unlinked.py b/tagstudio/src/qt/modals/fix_unlinked.py index 3226566f..eafe3297 100644 --- a/tagstudio/src/qt/modals/fix_unlinked.py +++ b/tagstudio/src/qt/modals/fix_unlinked.py @@ -12,10 +12,9 @@ from src.core.utils.missing_files import MissingRegistry from src.qt.modals.delete_unlinked import DeleteUnlinkedEntriesModal from src.qt.modals.merge_dupe_entries import MergeDuplicateEntries from src.qt.modals.relink_unlinked import RelinkUnlinkedEntries +from src.qt.translations import Translations from src.qt.widgets.progress import ProgressWidget -from ..translations import Translations - # Only import for type checking/autocompletion, will not be imported at runtime. if typing.TYPE_CHECKING: from src.qt.ts_qt import QtDriver diff --git a/tagstudio/src/qt/modals/folders_to_tags.py b/tagstudio/src/qt/modals/folders_to_tags.py index 60fcd318..f680fdc1 100644 --- a/tagstudio/src/qt/modals/folders_to_tags.py +++ b/tagstudio/src/qt/modals/folders_to_tags.py @@ -23,8 +23,7 @@ from src.core.library import Library, Tag from src.core.library.alchemy.fields import _FieldID from src.core.palette import ColorType, get_tag_color from src.qt.flowlayout import FlowLayout - -from ..translations import Translations +from src.qt.translations import Translations if typing.TYPE_CHECKING: from src.qt.ts_qt import QtDriver diff --git a/tagstudio/src/qt/modals/merge_dupe_entries.py b/tagstudio/src/qt/modals/merge_dupe_entries.py index 5d2d49af..35bdf7c1 100644 --- a/tagstudio/src/qt/modals/merge_dupe_entries.py +++ b/tagstudio/src/qt/modals/merge_dupe_entries.py @@ -7,10 +7,9 @@ import typing from PySide6.QtCore import QObject, Signal from src.core.library import Library from src.core.utils.dupe_files import DupeRegistry +from src.qt.translations import Translations from src.qt.widgets.progress import ProgressWidget -from ..translations import Translations - # Only import for type checking/autocompletion, will not be imported at runtime. if typing.TYPE_CHECKING: from src.qt.ts_qt import QtDriver diff --git a/tagstudio/src/qt/modals/mirror_entities.py b/tagstudio/src/qt/modals/mirror_entities.py index c872fa58..4cb37a1c 100644 --- a/tagstudio/src/qt/modals/mirror_entities.py +++ b/tagstudio/src/qt/modals/mirror_entities.py @@ -17,10 +17,9 @@ from PySide6.QtWidgets import ( QWidget, ) from src.core.utils.dupe_files import DupeRegistry +from src.qt.translations import Translations from src.qt.widgets.progress import ProgressWidget -from ..translations import Translations - # Only import for type checking/autocompletion, will not be imported at runtime. if typing.TYPE_CHECKING: from src.qt.ts_qt import QtDriver diff --git a/tagstudio/src/qt/modals/relink_unlinked.py b/tagstudio/src/qt/modals/relink_unlinked.py index 366930a7..0363c848 100644 --- a/tagstudio/src/qt/modals/relink_unlinked.py +++ b/tagstudio/src/qt/modals/relink_unlinked.py @@ -5,10 +5,9 @@ from PySide6.QtCore import QObject, Signal from src.core.utils.missing_files import MissingRegistry +from src.qt.translations import Translations from src.qt.widgets.progress import ProgressWidget -from ..translations import Translations - class RelinkUnlinkedEntries(QObject): done = Signal() diff --git a/tagstudio/src/qt/modals/tag_database.py b/tagstudio/src/qt/modals/tag_database.py index b1fbde8e..560611d5 100644 --- a/tagstudio/src/qt/modals/tag_database.py +++ b/tagstudio/src/qt/modals/tag_database.py @@ -18,11 +18,10 @@ from PySide6.QtWidgets import ( from src.core.constants import RESERVED_TAG_END, RESERVED_TAG_START from src.core.library import Library, Tag from src.qt.modals.build_tag import BuildTagPanel +from src.qt.translations import Translations from src.qt.widgets.panel import PanelModal, PanelWidget from src.qt.widgets.tag import TagWidget -from ..translations import Translations - logger = structlog.get_logger(__name__) # TODO: This class shares the majority of its code with tag_search.py. diff --git a/tagstudio/src/qt/modals/tag_search.py b/tagstudio/src/qt/modals/tag_search.py index 63cac736..90932b0d 100644 --- a/tagstudio/src/qt/modals/tag_search.py +++ b/tagstudio/src/qt/modals/tag_search.py @@ -19,11 +19,10 @@ from PySide6.QtWidgets import ( ) from src.core.library import Library from src.core.palette import ColorType, get_tag_color +from src.qt.translations import Translations from src.qt.widgets.panel import PanelWidget from src.qt.widgets.tag import TagWidget -from ..translations import Translations - logger = structlog.get_logger(__name__) diff --git a/tagstudio/src/qt/platform_strings.py b/tagstudio/src/qt/platform_strings.py index 0c586cb4..23851dd4 100644 --- a/tagstudio/src/qt/platform_strings.py +++ b/tagstudio/src/qt/platform_strings.py @@ -6,7 +6,7 @@ import platform -from .translations import Translations +from src.qt.translations import Translations class PlatformStrings: diff --git a/tagstudio/src/qt/translations.py b/tagstudio/src/qt/translations.py index c1fd5ad2..72e232b8 100644 --- a/tagstudio/src/qt/translations.py +++ b/tagstudio/src/qt/translations.py @@ -79,3 +79,4 @@ class Translator: Translations = Translator() +# Translations.change_language("de") diff --git a/tagstudio/src/qt/ts_qt.py b/tagstudio/src/qt/ts_qt.py index 880f9aaa..06c136dc 100644 --- a/tagstudio/src/qt/ts_qt.py +++ b/tagstudio/src/qt/ts_qt.py @@ -84,6 +84,7 @@ from src.qt.modals.fix_unlinked import FixUnlinkedEntriesModal from src.qt.modals.folders_to_tags import FoldersToTagsModal from src.qt.modals.tag_database import TagDatabasePanel from src.qt.resource_manager import ResourceManager +from src.qt.translations import Translations from src.qt.widgets.item_thumb import BadgeType, ItemThumb from src.qt.widgets.migration_modal import JsonMigrationModal from src.qt.widgets.panel import PanelModal @@ -91,8 +92,6 @@ from src.qt.widgets.preview_panel import PreviewPanel from src.qt.widgets.progress import ProgressWidget from src.qt.widgets.thumb_renderer import ThumbRenderer -from .translations import Translations - # SIGQUIT is not defined on Windows if sys.platform == "win32": from signal import SIGINT, SIGTERM, signal diff --git a/tagstudio/src/qt/widgets/item_thumb.py b/tagstudio/src/qt/widgets/item_thumb.py index 78a644b9..f79708ad 100644 --- a/tagstudio/src/qt/widgets/item_thumb.py +++ b/tagstudio/src/qt/widgets/item_thumb.py @@ -30,11 +30,10 @@ from src.core.media_types import MediaCategories, MediaType from src.qt.flowlayout import FlowWidget from src.qt.helpers.file_opener import FileOpenerHelper from src.qt.platform_strings import PlatformStrings +from src.qt.translations import Translations from src.qt.widgets.thumb_button import ThumbButton from src.qt.widgets.thumb_renderer import ThumbRenderer -from ..translations import Translations - if TYPE_CHECKING: from src.qt.ts_qt import QtDriver diff --git a/tagstudio/src/qt/widgets/landing.py b/tagstudio/src/qt/widgets/landing.py index 6f3b6e43..3f6b1594 100644 --- a/tagstudio/src/qt/widgets/landing.py +++ b/tagstudio/src/qt/widgets/landing.py @@ -13,10 +13,9 @@ from PySide6.QtCore import QEasingCurve, QPoint, QPropertyAnimation, Qt from PySide6.QtGui import QPixmap from PySide6.QtWidgets import QLabel, QPushButton, QVBoxLayout, QWidget from src.qt.helpers.color_overlay import gradient_overlay, theme_fg_overlay +from src.qt.translations import Translations from src.qt.widgets.clickable_label import ClickableLabel -from ..translations import Translations - # Only import for type checking/autocompletion, will not be imported at runtime. if typing.TYPE_CHECKING: from src.qt.ts_qt import QtDriver diff --git a/tagstudio/src/qt/widgets/migration_modal.py b/tagstudio/src/qt/widgets/migration_modal.py index 58f60262..6e8aeb06 100644 --- a/tagstudio/src/qt/widgets/migration_modal.py +++ b/tagstudio/src/qt/widgets/migration_modal.py @@ -30,12 +30,11 @@ from src.core.library.json.library import Library as JsonLibrary # type: ignore from src.qt.helpers.custom_runnable import CustomRunnable from src.qt.helpers.function_iterator import FunctionIterator from src.qt.helpers.qbutton_wrapper import QPushButtonWrapper +from src.qt.translations import Translations from src.qt.widgets.paged_panel.paged_body_wrapper import PagedBodyWrapper from src.qt.widgets.paged_panel.paged_panel import PagedPanel from src.qt.widgets.paged_panel.paged_panel_state import PagedPanelState -from ..translations import Translations - logger = structlog.get_logger(__name__) diff --git a/tagstudio/src/qt/widgets/panel.py b/tagstudio/src/qt/widgets/panel.py index 8f11a5be..573f6f48 100755 --- a/tagstudio/src/qt/widgets/panel.py +++ b/tagstudio/src/qt/widgets/panel.py @@ -6,8 +6,7 @@ from typing import Callable from PySide6.QtCore import Qt, Signal from PySide6.QtWidgets import QHBoxLayout, QLabel, QPushButton, QVBoxLayout, QWidget - -from ..translations import Translations +from src.qt.translations import Translations class PanelModal(QWidget): diff --git a/tagstudio/src/qt/widgets/preview_panel.py b/tagstudio/src/qt/widgets/preview_panel.py index 051ed28e..0bb1c181 100644 --- a/tagstudio/src/qt/widgets/preview_panel.py +++ b/tagstudio/src/qt/widgets/preview_panel.py @@ -52,6 +52,7 @@ from src.qt.helpers.qbutton_wrapper import QPushButtonWrapper from src.qt.helpers.rounded_pixmap_style import RoundedPixmapStyle from src.qt.modals.add_field import AddFieldModal from src.qt.platform_strings import PlatformStrings +from src.qt.translations import Translations from src.qt.widgets.fields import FieldContainer from src.qt.widgets.media_player import MediaPlayer from src.qt.widgets.panel import PanelModal @@ -62,8 +63,6 @@ from src.qt.widgets.text_line_edit import EditTextLine from src.qt.widgets.thumb_renderer import ThumbRenderer from src.qt.widgets.video_player import VideoPlayer -from ..translations import Translations - if typing.TYPE_CHECKING: from src.qt.ts_qt import QtDriver diff --git a/tagstudio/src/qt/widgets/tag.py b/tagstudio/src/qt/widgets/tag.py index 7cd7f697..46f5fb9b 100644 --- a/tagstudio/src/qt/widgets/tag.py +++ b/tagstudio/src/qt/widgets/tag.py @@ -20,8 +20,7 @@ from PySide6.QtWidgets import ( from src.core.library import Tag from src.core.library.alchemy.enums import TagColor from src.core.palette import ColorType, get_tag_color - -from ..translations import Translations +from src.qt.translations import Translations class TagAliasWidget(QWidget): diff --git a/tagstudio/src/qt/widgets/tag_box.py b/tagstudio/src/qt/widgets/tag_box.py index 26f666a6..8e095d79 100755 --- a/tagstudio/src/qt/widgets/tag_box.py +++ b/tagstudio/src/qt/widgets/tag_box.py @@ -16,12 +16,11 @@ from src.core.library.alchemy.fields import TagBoxField from src.qt.flowlayout import FlowLayout from src.qt.modals.build_tag import BuildTagPanel from src.qt.modals.tag_search import TagSearchPanel +from src.qt.translations import Translations from src.qt.widgets.fields import FieldWidget from src.qt.widgets.panel import PanelModal from src.qt.widgets.tag import TagWidget -from ..translations import Translations - if typing.TYPE_CHECKING: from src.qt.ts_qt import QtDriver diff --git a/tagstudio/src/qt/widgets/video_player.py b/tagstudio/src/qt/widgets/video_player.py index b1d4be34..7e5e6ba1 100644 --- a/tagstudio/src/qt/widgets/video_player.py +++ b/tagstudio/src/qt/widgets/video_player.py @@ -31,8 +31,7 @@ from PySide6.QtWidgets import QGraphicsScene, QGraphicsView from src.core.enums import SettingItems from src.qt.helpers.file_opener import FileOpenerHelper from src.qt.platform_strings import PlatformStrings - -from ..translations import Translations +from src.qt.translations import Translations if typing.TYPE_CHECKING: from src.qt.ts_qt import QtDriver