diff --git a/tagstudio/resources/translations/de.json b/tagstudio/resources/translations/de.json index 5fbb02f93..dc577843b 100644 --- a/tagstudio/resources/translations/de.json +++ b/tagstudio/resources/translations/de.json @@ -1,5 +1,8 @@ { - "about.content": "
TagStudio ist eine Anwendung zum organisieren von Fotos & Dateien mit einem zugrunde liegendem Tag-basierten System, welches sich darauf konzentriert, dem Nutzer Freiraum und Flexibilität zu bieten. Keine proprietären Programme oder Formate, kein Meer an Hilfsdateien und keine komplette Umwälzung deiner Dateisystemstruktur.
Lizenz: GPLv3GitHub | Dokumentation | Discord
", + "about.config_path": "Konfigurations-Pfad", + "about.description": "TagStudio ist eine Anwendung zum organisieren von Fotos & Dateien mit einem zugrunde liegendem Tag-basierten System, welches sich darauf konzentriert, dem Nutzer Freiraum und Flexibilität zu bieten. Keine proprietären Programme oder Formate, kein Meer an Hilfsdateien und keine komplette Umwälzung deiner Dateisystemstruktur.", + "about.documentation": "Dokumentation", + "about.license": "Lizenz", "about.title": "Über", "app.git": "Git Commit", "app.pre_release": "Pre-Release", @@ -116,7 +119,6 @@ "generic.save": "Speichern", "generic.skip": "Überspringen", "generic.skip_alt": "Über&springen", - "help.visit_github": "GitHub Repository besuchen", "home.search": "Suchen", "home.search_entries": "Nach Einträgen suchen", "home.search_library": "Bibliothek durchsuchen", diff --git a/tagstudio/resources/translations/en.json b/tagstudio/resources/translations/en.json index 77d3f9b05..ece683ad4 100644 --- a/tagstudio/resources/translations/en.json +++ b/tagstudio/resources/translations/en.json @@ -1,4 +1,11 @@ { + "about.config_path": "Config Path", + "about.description": "TagStudio is a photo & file organization application with an underlying tag-based system that focuses on giving freedom and flexibility to the user. No proprietary programs or formats, no sea of sidecar files, and no complete upheaval of your filesystem structure.", + "about.documentation": "Documentation", + "about.license": "License", + "about.module.found": "Found", + "about.title": "About TagStudio", + "about.website": "Website", "app.git": "Git Commit", "app.pre_release": "Pre-Release", "app.title": "{base_title} - Library '{library_dir}'", @@ -83,8 +90,6 @@ "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.title": "Create Tags From Folders", - "about.title": "About TagStudio", - "about.content": "TagStudio is a photo & file organization application with an underlying tag-based system that focuses on giving freedom and flexibility to the user. No proprietary programs or formats, no sea of sidecar files, and no complete upheaval of your filesystem structure.
License: GPLv3GitHub | Documentation | Discord
", "generic.add": "Add", "generic.apply_alt": "&Apply", "generic.apply": "Apply", @@ -101,6 +106,7 @@ "generic.edit_alt": "&Edit", "generic.edit": "Edit", "generic.filename": "Filename", + "generic.missing": "Missing", "generic.navigation.back": "Back", "generic.navigation.next": "Next", "generic.none": "None", @@ -114,7 +120,6 @@ "generic.save": "Save", "generic.skip_alt": "&Skip", "generic.skip": "Skip", - "help.visit_github": "Visit GitHub Repository", "home.search_entries": "Search Entries", "home.search_library": "Search Library", "home.search_tags": "Search Tags", diff --git a/tagstudio/resources/translations/es.json b/tagstudio/resources/translations/es.json index d56bb72b4..1ddce9b9d 100644 --- a/tagstudio/resources/translations/es.json +++ b/tagstudio/resources/translations/es.json @@ -1,5 +1,8 @@ { - "about.content": "TagStudio es una aplicación de fotografías y archivos con un sistema de etiquetas subyacentes que se centra en dar libertad y flexibilidad al usuario. Sin programas ni formatos propios, ni un mar de archivos y sin trastornar completamente tu sistema de estructurar los archivos.
. Licencia: GPLv3GitHub | Documentación | Discord
", + "about.config_path": "Archivo de configuración", + "about.description": "TagStudio es una aplicación de fotografías y archivos con un sistema de etiquetas subyacentes que se centra en dar libertad y flexibilidad al usuario. Sin programas ni formatos propios, ni un mar de archivos y sin trastornar completamente tu sistema de estructurar los archivos.", + "about.documentation": "Documentación", + "about.license": "Licencia", "about.title": "Acerca de", "app.git": "Git Commit", "app.pre_release": "Previas al lanzamiento", @@ -116,7 +119,6 @@ "generic.save": "Guardar", "generic.skip": "Saltear", "generic.skip_alt": "&Saltear", - "help.visit_github": "Visitar el repositorio en GitHub", "home.search": "Buscar", "home.search_entries": "Buscar entradas", "home.search_library": "Buscar el biblioteca", diff --git a/tagstudio/resources/translations/fil.json b/tagstudio/resources/translations/fil.json index 5e06eeeae..ea1114d5c 100644 --- a/tagstudio/resources/translations/fil.json +++ b/tagstudio/resources/translations/fil.json @@ -1,5 +1,8 @@ { - "about.content": "Ang TagStudio ay isang application ng pagsasaayos ng file at larawan na may pinagbabatayan na tag-based na sistema na nakatutok sa pagbibigay ng kalayaan at kakayahang umangkop sa user. Walang mga proprietary na format o program, walang dagat ng mga sidecar file, at walang kaguluhan ng iyong estruktura ng filesystem.
Lisensya: GPLv3GitHub | Dokumentasyon | Discord
", + "about.config_path": "Path ng Config", + "about.description": "Ang TagStudio ay isang application ng pagsasaayos ng file at larawan na may pinagbabatayan na tag-based na sistema na nakatutok sa pagbibigay ng kalayaan at kakayahang umangkop sa user. Walang mga proprietary na format o program, walang dagat ng mga sidecar file, at walang kaguluhan ng iyong estruktura ng filesystem.", + "about.documentation": "Dokumentasyon", + "about.license": "Lisensya", "about.title": "Tungkol sa", "app.git": "Git Commit", "app.pre_release": "Pre-Release", diff --git a/tagstudio/resources/translations/fr.json b/tagstudio/resources/translations/fr.json index b4a8a0dda..8e399eb0e 100644 --- a/tagstudio/resources/translations/fr.json +++ b/tagstudio/resources/translations/fr.json @@ -1,5 +1,6 @@ { - "about.content": "TagStudio est une application d'organisation de photos et de fichiers avec un système de tags qui mets en avant la liberté et flexibilité à l'utilisateur. Pas de programmes ou de formats propriétaires, pas la moindre trace de fichiers secondaires, et pas de bouleversement complet de la structure de votre système de fichiers.
License: GPLv3GitHub | Documentation | Discord
", + "about.config_path": "Chemin de Configuration", + "about.description": "TagStudio est une application d'organisation de photos et de fichiers avec un système de tags qui mets en avant la liberté et flexibilité à l'utilisateur. Pas de programmes ou de formats propriétaires, pas la moindre trace de fichiers secondaires, et pas de bouleversement complet de la structure de votre système de fichiers.", "about.title": "À propos", "app.git": "Git Commit", "app.pre_release": "Version Préliminaire", @@ -116,7 +117,6 @@ "generic.save": "Sauvegarder", "generic.skip": "Passer", "generic.skip_alt": "&Passer", - "help.visit_github": "Visiter le Dépôt GitHub", "home.search": "Rechercher", "home.search_entries": "Recherche", "home.search_library": "Rechercher dans la Bibliothèque", diff --git a/tagstudio/resources/translations/hu.json b/tagstudio/resources/translations/hu.json index 68a08e93c..9c9b3e6f6 100644 --- a/tagstudio/resources/translations/hu.json +++ b/tagstudio/resources/translations/hu.json @@ -1,5 +1,8 @@ { - "about.content": "A TagStudio egy fénykép- és fájlkezelő program, mely címkék segítségével nyújt felhasználói szabadságot és rugalmasságot. A TagStudio nem használ jogvédett formátumokat, társfájlokat és nem fordítja a feje tetejére a már létező fájlrendszert.
Licenc: GPLv3GitHub-adattár | Dokumentáció | Discord-szerver
", + "about.config_path": "Konfigurációs fájl", + "about.description": "A TagStudio egy fénykép- és fájlkezelő program, mely címkék segítségével nyújt felhasználói szabadságot és rugalmasságot. A TagStudio nem használ jogvédett formátumokat, társfájlokat és nem fordítja a feje tetejére a már létező fájlrendszert.", + "about.documentation": "Dokumentáció", + "about.license": "Licenc", "about.title": "Névjegy", "app.git": "Git-véglegesítés", "app.pre_release": "Kísérleti verzió", @@ -116,7 +119,6 @@ "generic.save": "Mentés", "generic.skip": "Kihagyás", "generic.skip_alt": "&Kihagyás", - "help.visit_github": "&GitHub-adattár megnyitása", "home.search": "Keresés", "home.search_entries": "Tételek keresése", "home.search_library": "Keresés a könyvtárban", @@ -275,7 +277,7 @@ "trash.dialog.disambiguation_warning.singular": "Ezzel a fájl nem csak a TagStudióból, hanem a fájlrendszerből is el lesz távolítva!", "trash.dialog.move.confirmation.plural": "Biztosan a {trash_term} akarod helyezni ezt a(z) {count} elemet?", "trash.dialog.move.confirmation.singular": "Biztosan a {trash_term} akarod helyezni ezt az elemet?", - "trash.dialog.permanent_delete_warning": "FIGYELMEZTETÉS: Ha a fájlt nem lehet a {trash_term} helyezni, akkor véglegesen törlésre kerül!", + "trash.dialog.permanent_delete_warning": "FIGYELMEZTETÉS: Ha a fájlt nem lehet a {trash_term} helyezni, akkor véglegesen törlésre kerül!", "trash.dialog.title.plural": "Fájlok törlése", "trash.dialog.title.singular": "Fájl törlése", "trash.name.generic": "Kukába", diff --git a/tagstudio/resources/translations/pl.json b/tagstudio/resources/translations/pl.json index 6f6ca2fbe..05261b5aa 100644 --- a/tagstudio/resources/translations/pl.json +++ b/tagstudio/resources/translations/pl.json @@ -115,7 +115,6 @@ "generic.save": "Zapisz", "generic.skip": "Pomiń", "generic.skip_alt": "&Pomiń", - "help.visit_github": "Odwiedź repozytorium GitHub", "home.search": "Szukaj", "home.search_entries": "Przeszukaj wpisy", "home.search_library": "Przeszukaj bibliotekę", @@ -268,7 +267,7 @@ "trash.dialog.disambiguation_warning.singular": "To usunie go z TagStudio ORAZ z twojego systemu plików!", "trash.dialog.move.confirmation.plural": "Czy na pewno chcesz przenieść te {count} plików do {trash_term}?", "trash.dialog.move.confirmation.singular": "Czy na pewno chcesz przenieść ten plik do {trash_term}?", - "trash.dialog.permanent_delete_warning": "WARNING! Jeśli ten plik nie może być przeniesiony do {trash_term}, Zostanie usunięty na stałe!", + "trash.dialog.permanent_delete_warning": "WARNING! Jeśli ten plik nie może być przeniesiony do {trash_term}, Zostanie usunięty na stałe!", "trash.dialog.title.plural": "Usuń pliki", "trash.dialog.title.singular": "Usuń plik", "trash.name.generic": "Kosz", diff --git a/tagstudio/resources/translations/pt_BR.json b/tagstudio/resources/translations/pt_BR.json index aabff1305..790b76f6e 100644 --- a/tagstudio/resources/translations/pt_BR.json +++ b/tagstudio/resources/translations/pt_BR.json @@ -1,5 +1,8 @@ { - "about.content": "TagStudio é uma aplicação de organização de fotos e arquivos com um sistema de tags que tem como foco conceder liberdade e flexibilidade ao usuário. Sem programas ou formatos proprietários, sem imensidão de arquivos Sidecar, e sem total transtorno de sua estrutura de sistema de arquivos.
Licença: GPLv3GitHub | Documentação | Discord
", + "about.config_path": "Diretório de Configuração", + "about.description": "TagStudio é uma aplicação de organização de fotos e arquivos com um sistema de tags que tem como foco conceder liberdade e flexibilidade ao usuário. Sem programas ou formatos proprietários, sem imensidão de arquivos Sidecar, e sem total transtorno de sua estrutura de sistema de arquivos.", + "about.documentation": "Documentação", + "about.license": "Licença", "about.title": "Sobre", "app.git": "Confirmação do Git", "app.pre_release": "Pré-Lançamento", @@ -116,7 +119,6 @@ "generic.save": "Salvar", "generic.skip": "Pular", "generic.skip_alt": "&Pular", - "help.visit_github": "Visite o Repositório no GitHub", "home.search": "Buscar", "home.search_entries": "Buscar Registros", "home.search_library": "Buscar na Biblioteca", @@ -249,7 +251,7 @@ "trash.context.singular": "Mover arquivo para {trash_term}", "trash.dialog.move.confirmation.plural": "Tem certeza que quer remover esses {count} arquivos para o {trash_term}?", "trash.dialog.move.confirmation.singular": "Tem certeza que quer mover esse arquivo para o {trash_term}?", - "trash.dialog.permanent_delete_warning": "AVISO! Se esse arquivo não puder ser movido para o {trash_term}, ele será apagado permanentemente!", + "trash.dialog.permanent_delete_warning": "AVISO! Se esse arquivo não puder ser movido para o {trash_term}, ele será apagado permanentemente!", "trash.dialog.title.plural": "Apagar Arquivos", "trash.dialog.title.singular": "Apagar Arquivo", "trash.name.windows": "Lixeira", diff --git a/tagstudio/resources/translations/ru.json b/tagstudio/resources/translations/ru.json index 0006f2ed2..fcbf626f2 100644 --- a/tagstudio/resources/translations/ru.json +++ b/tagstudio/resources/translations/ru.json @@ -105,7 +105,6 @@ "generic.save": "Сохранить", "generic.skip": "Пропустить", "generic.skip_alt": "&Пропустить", - "help.visit_github": "Посетить GitHub-репозиторий", "home.search": "Поиск", "home.search_entries": "Поиск записей", "home.search_library": "Поиск по библиотеке", diff --git a/tagstudio/resources/translations/tok.json b/tagstudio/resources/translations/tok.json index c86fa9d8c..01b9f28f0 100644 --- a/tagstudio/resources/translations/tok.json +++ b/tagstudio/resources/translations/tok.json @@ -64,7 +64,6 @@ "generic.navigation.next": "o tawa poka", "generic.paste": "o pana e sona sama", "generic.recent_libraries": "tomo pi tenpo poka", - "help.visit_github": "o tawa linluwi GitHub Repository", "home.search": "alasa", "home.search_entries": "ijo alasa", "home.search_library": "o alasa lon tomo", diff --git a/tagstudio/resources/translations/zh_Hant.json b/tagstudio/resources/translations/zh_Hant.json index c421c3c14..4976f9bc7 100644 --- a/tagstudio/resources/translations/zh_Hant.json +++ b/tagstudio/resources/translations/zh_Hant.json @@ -92,7 +92,6 @@ "generic.save": "儲存", "generic.skip": "略過", "generic.skip_alt": "&略過", - "help.visit_github": "訪問 GitHub 儲存庫", "home.search": "搜尋", "home.search_entries": "搜尋項目", "home.search_library": "搜尋資料庫", diff --git a/tagstudio/src/qt/modals/about.py b/tagstudio/src/qt/modals/about.py index 87264f6c5..bcb0ec4b3 100644 --- a/tagstudio/src/qt/modals/about.py +++ b/tagstudio/src/qt/modals/about.py @@ -3,10 +3,12 @@ # Created for TagStudio: https://github.com/CyanVoxel/TagStudio +import math + from PIL import ImageQt from PySide6.QtCore import Qt from PySide6.QtGui import QPixmap -from PySide6.QtWidgets import QHBoxLayout, QLabel, QPushButton, QVBoxLayout, QWidget +from PySide6.QtWidgets import QFormLayout, QHBoxLayout, QLabel, QPushButton, QVBoxLayout, QWidget from src.core.constants import VERSION, VERSION_BRANCH from src.core.palette import ColorType, UiColor, get_ui_color from src.qt.modals.ffmpeg_checker import FfmpegChecker @@ -24,49 +26,91 @@ def __init__(self, config_path): self.setWindowModality(Qt.WindowModality.ApplicationModal) self.setMinimumSize(360, 480) + self.setMaximumSize(480, 540) self.root_layout = QVBoxLayout(self) - self.root_layout.setContentsMargins(24, 24, 24, 6) - self.root_layout.setSpacing(12) - self.root_layout.setAlignment(Qt.AlignmentFlag.AlignTop) + self.root_layout.setContentsMargins(0, 0, 0, 0) + self.root_layout.setSpacing(0) + self.root_layout.setAlignment(Qt.AlignmentFlag.AlignTop | Qt.AlignmentFlag.AlignCenter) + + self.content_widget = QWidget() + self.content_layout = QVBoxLayout(self.content_widget) + self.content_layout.setContentsMargins(0, 0, 0, 0) + self.content_layout.setSpacing(12) + # TagStudio Icon Logo -------------------------------------------------- self.logo_widget = QLabel() - self.logo_widget.setObjectName("logo") self.logo_pixmap = QPixmap.fromImage(ImageQt.ImageQt(self.rm.get("logo"))) + self.logo_pixmap.setDevicePixelRatio(self.devicePixelRatio()) self.logo_pixmap = self.logo_pixmap.scaledToWidth( - 128, Qt.TransformationMode.SmoothTransformation + math.floor(128 * self.devicePixelRatio()), Qt.TransformationMode.SmoothTransformation ) self.logo_widget.setPixmap(self.logo_pixmap) - self.logo_widget.setAlignment(Qt.AlignmentFlag.AlignHCenter) - self.logo_widget.setContentsMargins(0, 0, 0, 24) + self.logo_widget.setContentsMargins(0, 0, 0, 0) + self.logo_widget.setAlignment(Qt.AlignmentFlag.AlignCenter) + # Title ---------------------------------------------------------------- + branch: str = (" (" + VERSION_BRANCH + ")") if VERSION_BRANCH else "" + self.title_label = QLabel(f"GitHub | ' + f'{Translations["about.documentation"]} | ' + f'Discord
' ) - self.content_label.setObjectName("contentLabel") - self.content_label.setWordWrap(True) - self.content_label.setOpenExternalLinks(True) - self.content_label.setAlignment(Qt.AlignmentFlag.AlignHCenter) + self.links_label.setWordWrap(True) + self.links_label.setOpenExternalLinks(True) + self.links_label.setAlignment(Qt.AlignmentFlag.AlignCenter) + # Buttons -------------------------------------------------------------- self.button_widget = QWidget() self.button_layout = QHBoxLayout(self.button_widget) + self.content_layout.setContentsMargins(12, 12, 12, 12) self.button_layout.addStretch(1) self.close_button = QPushButton(Translations["generic.close"]) @@ -74,8 +118,14 @@ def __init__(self, config_path): self.button_layout.addWidget(self.close_button) - self.root_layout.addWidget(self.logo_widget) - self.root_layout.addWidget(self.title_label) - self.root_layout.addWidget(self.content_label) - self.root_layout.addStretch(1) + # Add Widgets to Layouts ----------------------------------------------- + self.content_layout.addWidget(self.logo_widget) + self.content_layout.addWidget(self.title_label) + self.content_layout.addWidget(self.desc_label) + self.content_layout.addWidget(self.system_info_widget) + self.content_layout.addWidget(self.links_label) + self.content_layout.addStretch(1) + self.content_layout.setAlignment(Qt.AlignmentFlag.AlignCenter) + + self.root_layout.addWidget(self.content_widget) self.root_layout.addWidget(self.button_widget)